@buoy-gg/shared-ui 7.0.36 → 7.0.39
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/README.md +33 -26
- package/floating.d.ts +1 -0
- package/floating.js +2 -0
- package/lib/commonjs/JsModal.js +16 -1
- package/lib/commonjs/JsModal.web.js +16 -1
- package/lib/commonjs/dataViewer/CyberpunkInput.js +6 -1
- package/lib/commonjs/dataViewer/LiveExplorer.js +28 -16
- package/lib/commonjs/hooks/safe-area-impl.js +1 -1
- package/lib/commonjs/icons/ReactQueryIcon.js +9 -161
- package/lib/commonjs/icons/SentryBugIcon.js +9 -171
- package/lib/commonjs/index.js +57 -6
- package/lib/commonjs/license/AccountSetup.js +56 -0
- package/lib/commonjs/license/AccountSetup.web.js +81 -0
- package/lib/commonjs/license/FeatureGate.js +10 -43
- package/lib/commonjs/license/FreeAccountPrompt.js +35 -12
- package/lib/commonjs/license/index.js +0 -6
- package/lib/commonjs/license/licenseModule.js +56 -36
- package/lib/commonjs/license/tierLimits.js +12 -63
- package/lib/commonjs/storage/devToolsStorageKeys.js +8 -1
- package/lib/commonjs/stores/BaseEventStore.js +21 -5
- package/lib/commonjs/stores/createToolStore.js +21 -3
- package/lib/commonjs/stores/floatingToolStore.js +71 -0
- package/lib/commonjs/stores/floatingToolStore.test.js +112 -0
- package/lib/commonjs/sync/toolActionRegistry.js +85 -2
- package/lib/commonjs/ui/backgrounds/README.md +52 -0
- package/lib/commonjs/ui/backgrounds/ToolBackground.js +4 -2
- package/lib/commonjs/ui/backgrounds/index.js +8 -1
- package/lib/commonjs/ui/backgrounds/registry.js +8 -0
- package/lib/commonjs/ui/backgrounds/variants/wormhole/motion.js +48 -0
- package/lib/commonjs/ui/backgrounds/variants/wormhole/textures.js +3 -0
- package/lib/commonjs/ui/backgrounds/variants/wormhole.js +133 -0
- package/lib/commonjs/ui/components/ClipboardHintBanner.js +5 -6
- package/lib/commonjs/ui/components/CompactRow.js +94 -74
- package/lib/commonjs/ui/components/DraggableHeader.js +16 -1
- package/lib/commonjs/ui/components/HeaderSearchButton.js +17 -4
- package/lib/commonjs/ui/floating/FloatingTool.js +1010 -0
- package/lib/commonjs/ui/floating/FloatingTool.web.js +591 -0
- package/lib/commonjs/ui/floating/FloatingToolHost.js +32 -0
- package/lib/commonjs/ui/floating/FloatingToolHost.web.js +28 -0
- package/lib/commonjs/ui/floating/index.js +105 -0
- package/lib/commonjs/ui/floating/index.web.js +105 -0
- package/lib/commonjs/ui/floating/onboardingConstants.js +70 -0
- package/lib/commonjs/ui/floating/onboardingConstants.web.js +34 -0
- package/lib/commonjs/ui/gameUI/constants/gameUIColors.js +3 -1
- package/lib/commonjs/ui/index.js +118 -2
- package/lib/commonjs/ui/night/nightTheme.js +10 -0
- package/lib/commonjs/ui/night/primitives.js +22 -5
- package/lib/commonjs/ui/otto/OttoSceneView.js +69 -0
- package/lib/commonjs/ui/otto/index.js +22 -0
- package/lib/commonjs/ui/otto/ottoEngine.js +10 -7
- package/lib/commonjs/ui/otto/ottoScenes.js +949 -0
- package/lib/commonjs/utils/minimalSuperJSON.js +13 -3
- package/lib/module/JsModal.js +16 -1
- package/lib/module/JsModal.web.js +16 -1
- package/lib/module/dataViewer/CyberpunkInput.js +6 -1
- package/lib/module/dataViewer/LiveExplorer.js +28 -16
- package/lib/module/hooks/safe-area-impl.js +1 -1
- package/lib/module/icons/ReactQueryIcon.js +9 -161
- package/lib/module/icons/SentryBugIcon.js +9 -171
- package/lib/module/index.js +4 -1
- package/lib/module/license/AccountSetup.js +52 -0
- package/lib/module/license/AccountSetup.web.js +77 -0
- package/lib/module/license/FeatureGate.js +10 -43
- package/lib/module/license/FreeAccountPrompt.js +35 -12
- package/lib/module/license/index.js +1 -1
- package/lib/module/license/licenseModule.js +50 -35
- package/lib/module/license/tierLimits.js +13 -63
- package/lib/module/storage/devToolsStorageKeys.js +8 -1
- package/lib/module/stores/BaseEventStore.js +21 -5
- package/lib/module/stores/createToolStore.js +21 -3
- package/lib/module/stores/floatingToolStore.js +61 -0
- package/lib/module/stores/floatingToolStore.test.js +111 -0
- package/lib/module/sync/toolActionRegistry.js +84 -2
- package/lib/module/ui/backgrounds/README.md +52 -0
- package/lib/module/ui/backgrounds/ToolBackground.js +4 -2
- package/lib/module/ui/backgrounds/index.js +2 -1
- package/lib/module/ui/backgrounds/registry.js +8 -0
- package/lib/module/ui/backgrounds/variants/wormhole/motion.js +44 -0
- package/lib/module/ui/backgrounds/variants/wormhole/textures.js +3 -0
- package/lib/module/ui/backgrounds/variants/wormhole.js +129 -0
- package/lib/module/ui/components/ClipboardHintBanner.js +5 -6
- package/lib/module/ui/components/CompactRow.js +94 -74
- package/lib/module/ui/components/DraggableHeader.js +16 -1
- package/lib/module/ui/components/HeaderSearchButton.js +17 -4
- package/lib/module/ui/floating/FloatingTool.js +1003 -0
- package/lib/module/ui/floating/FloatingTool.web.js +590 -0
- package/lib/module/ui/floating/FloatingToolHost.js +29 -0
- package/lib/module/ui/floating/FloatingToolHost.web.js +25 -0
- package/lib/module/ui/floating/index.js +6 -0
- package/lib/module/ui/floating/index.web.js +6 -0
- package/lib/module/ui/floating/onboardingConstants.js +64 -0
- package/lib/module/ui/floating/onboardingConstants.web.js +27 -0
- package/lib/module/ui/gameUI/constants/gameUIColors.js +3 -1
- package/lib/module/ui/index.js +5 -1
- package/lib/module/ui/night/nightTheme.js +10 -0
- package/lib/module/ui/night/primitives.js +22 -5
- package/lib/module/ui/otto/OttoSceneView.js +64 -0
- package/lib/module/ui/otto/index.js +3 -1
- package/lib/module/ui/otto/ottoEngine.js +10 -7
- package/lib/module/ui/otto/ottoScenes.js +942 -0
- package/lib/module/utils/minimalSuperJSON.js +13 -3
- package/lib/typescript/commonjs/JsModal.d.ts +43 -2
- package/lib/typescript/commonjs/JsModal.d.ts.map +1 -1
- package/lib/typescript/commonjs/JsModal.web.d.ts +5 -2
- package/lib/typescript/commonjs/JsModal.web.d.ts.map +1 -1
- package/lib/typescript/commonjs/dataViewer/CyberpunkInput.d.ts.map +1 -1
- package/lib/typescript/commonjs/dataViewer/LiveExplorer.d.ts.map +1 -1
- package/lib/typescript/commonjs/hooks/safe-area-impl.d.ts +1 -1
- package/lib/typescript/commonjs/icons/ReactQueryIcon.d.ts +1 -2
- package/lib/typescript/commonjs/icons/ReactQueryIcon.d.ts.map +1 -1
- package/lib/typescript/commonjs/icons/SentryBugIcon.d.ts +1 -2
- package/lib/typescript/commonjs/icons/SentryBugIcon.d.ts.map +1 -1
- package/lib/typescript/commonjs/index.d.ts +4 -1
- package/lib/typescript/commonjs/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/license/AccountSetup.d.ts +4 -0
- package/lib/typescript/commonjs/license/AccountSetup.d.ts.map +1 -0
- package/lib/typescript/commonjs/license/AccountSetup.web.d.ts +2 -0
- package/lib/typescript/commonjs/license/AccountSetup.web.d.ts.map +1 -0
- package/lib/typescript/commonjs/license/FeatureGate.d.ts +3 -19
- package/lib/typescript/commonjs/license/FeatureGate.d.ts.map +1 -1
- package/lib/typescript/commonjs/license/FreeAccountPrompt.d.ts +8 -11
- package/lib/typescript/commonjs/license/FreeAccountPrompt.d.ts.map +1 -1
- package/lib/typescript/commonjs/license/index.d.ts +1 -1
- package/lib/typescript/commonjs/license/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/license/licenseModule.d.ts +18 -31
- package/lib/typescript/commonjs/license/licenseModule.d.ts.map +1 -1
- package/lib/typescript/commonjs/license/tierLimits.d.ts +9 -52
- package/lib/typescript/commonjs/license/tierLimits.d.ts.map +1 -1
- package/lib/typescript/commonjs/storage/devToolsStorageKeys.d.ts +6 -0
- package/lib/typescript/commonjs/storage/devToolsStorageKeys.d.ts.map +1 -1
- package/lib/typescript/commonjs/stores/BaseEventStore.d.ts.map +1 -1
- package/lib/typescript/commonjs/stores/createToolStore.d.ts.map +1 -1
- package/lib/typescript/commonjs/stores/floatingToolStore.d.ts +27 -0
- package/lib/typescript/commonjs/stores/floatingToolStore.d.ts.map +1 -0
- package/lib/typescript/commonjs/stores/floatingToolStore.test.d.ts +2 -0
- package/lib/typescript/commonjs/stores/floatingToolStore.test.d.ts.map +1 -0
- package/lib/typescript/commonjs/sync/toolActionRegistry.d.ts +4 -32
- package/lib/typescript/commonjs/sync/toolActionRegistry.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/backgrounds/ToolBackground.d.ts +7 -1
- package/lib/typescript/commonjs/ui/backgrounds/ToolBackground.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/backgrounds/index.d.ts +2 -1
- package/lib/typescript/commonjs/ui/backgrounds/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/backgrounds/registry.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/backgrounds/types.d.ts +11 -1
- package/lib/typescript/commonjs/ui/backgrounds/types.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/backgrounds/variants/wormhole/motion.d.ts +24 -0
- package/lib/typescript/commonjs/ui/backgrounds/variants/wormhole/motion.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/backgrounds/variants/wormhole/textures.d.ts +13 -0
- package/lib/typescript/commonjs/ui/backgrounds/variants/wormhole/textures.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/backgrounds/variants/wormhole.d.ts +3 -0
- package/lib/typescript/commonjs/ui/backgrounds/variants/wormhole.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/components/ClipboardHintBanner.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/CompactRow.d.ts +8 -1
- package/lib/typescript/commonjs/ui/components/CompactRow.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/DraggableHeader.d.ts +4 -1
- package/lib/typescript/commonjs/ui/components/DraggableHeader.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/HeaderSearchButton.d.ts +7 -1
- package/lib/typescript/commonjs/ui/components/HeaderSearchButton.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/floating/FloatingTool.d.ts +79 -0
- package/lib/typescript/commonjs/ui/floating/FloatingTool.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/floating/FloatingTool.web.d.ts +64 -0
- package/lib/typescript/commonjs/ui/floating/FloatingTool.web.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/floating/FloatingToolHost.d.ts +3 -0
- package/lib/typescript/commonjs/ui/floating/FloatingToolHost.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/floating/FloatingToolHost.web.d.ts +3 -0
- package/lib/typescript/commonjs/ui/floating/FloatingToolHost.web.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/floating/index.d.ts +7 -0
- package/lib/typescript/commonjs/ui/floating/index.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/floating/index.web.d.ts +7 -0
- package/lib/typescript/commonjs/ui/floating/index.web.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/floating/onboardingConstants.d.ts +30 -0
- package/lib/typescript/commonjs/ui/floating/onboardingConstants.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/floating/onboardingConstants.web.d.ts +13 -0
- package/lib/typescript/commonjs/ui/floating/onboardingConstants.web.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/gameUI/constants/gameUIColors.d.ts +2 -0
- package/lib/typescript/commonjs/ui/gameUI/constants/gameUIColors.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/index.d.ts +6 -0
- package/lib/typescript/commonjs/ui/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/night/nightTheme.d.ts +10 -0
- package/lib/typescript/commonjs/ui/night/nightTheme.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/night/primitives.d.ts +10 -3
- package/lib/typescript/commonjs/ui/night/primitives.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/otto/OttoSceneView.d.ts +30 -0
- package/lib/typescript/commonjs/ui/otto/OttoSceneView.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/otto/index.d.ts +2 -0
- package/lib/typescript/commonjs/ui/otto/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/otto/ottoEngine.d.ts +1 -1
- package/lib/typescript/commonjs/ui/otto/ottoEngine.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/otto/ottoScenes.d.ts +75 -0
- package/lib/typescript/commonjs/ui/otto/ottoScenes.d.ts.map +1 -0
- package/lib/typescript/commonjs/utils/minimalSuperJSON.d.ts.map +1 -1
- package/lib/typescript/module/JsModal.d.ts +43 -2
- package/lib/typescript/module/JsModal.d.ts.map +1 -1
- package/lib/typescript/module/JsModal.web.d.ts +5 -2
- package/lib/typescript/module/JsModal.web.d.ts.map +1 -1
- package/lib/typescript/module/dataViewer/CyberpunkInput.d.ts.map +1 -1
- package/lib/typescript/module/dataViewer/LiveExplorer.d.ts.map +1 -1
- package/lib/typescript/module/hooks/safe-area-impl.d.ts +1 -1
- package/lib/typescript/module/icons/ReactQueryIcon.d.ts +1 -2
- package/lib/typescript/module/icons/ReactQueryIcon.d.ts.map +1 -1
- package/lib/typescript/module/icons/SentryBugIcon.d.ts +1 -2
- package/lib/typescript/module/icons/SentryBugIcon.d.ts.map +1 -1
- package/lib/typescript/module/index.d.ts +4 -1
- package/lib/typescript/module/index.d.ts.map +1 -1
- package/lib/typescript/module/license/AccountSetup.d.ts +4 -0
- package/lib/typescript/module/license/AccountSetup.d.ts.map +1 -0
- package/lib/typescript/module/license/AccountSetup.web.d.ts +2 -0
- package/lib/typescript/module/license/AccountSetup.web.d.ts.map +1 -0
- package/lib/typescript/module/license/FeatureGate.d.ts +3 -19
- package/lib/typescript/module/license/FeatureGate.d.ts.map +1 -1
- package/lib/typescript/module/license/FreeAccountPrompt.d.ts +8 -11
- package/lib/typescript/module/license/FreeAccountPrompt.d.ts.map +1 -1
- package/lib/typescript/module/license/index.d.ts +1 -1
- package/lib/typescript/module/license/index.d.ts.map +1 -1
- package/lib/typescript/module/license/licenseModule.d.ts +18 -31
- package/lib/typescript/module/license/licenseModule.d.ts.map +1 -1
- package/lib/typescript/module/license/tierLimits.d.ts +9 -52
- package/lib/typescript/module/license/tierLimits.d.ts.map +1 -1
- package/lib/typescript/module/storage/devToolsStorageKeys.d.ts +6 -0
- package/lib/typescript/module/storage/devToolsStorageKeys.d.ts.map +1 -1
- package/lib/typescript/module/stores/BaseEventStore.d.ts.map +1 -1
- package/lib/typescript/module/stores/createToolStore.d.ts.map +1 -1
- package/lib/typescript/module/stores/floatingToolStore.d.ts +27 -0
- package/lib/typescript/module/stores/floatingToolStore.d.ts.map +1 -0
- package/lib/typescript/module/stores/floatingToolStore.test.d.ts +2 -0
- package/lib/typescript/module/stores/floatingToolStore.test.d.ts.map +1 -0
- package/lib/typescript/module/sync/toolActionRegistry.d.ts +4 -32
- package/lib/typescript/module/sync/toolActionRegistry.d.ts.map +1 -1
- package/lib/typescript/module/ui/backgrounds/ToolBackground.d.ts +7 -1
- package/lib/typescript/module/ui/backgrounds/ToolBackground.d.ts.map +1 -1
- package/lib/typescript/module/ui/backgrounds/index.d.ts +2 -1
- package/lib/typescript/module/ui/backgrounds/index.d.ts.map +1 -1
- package/lib/typescript/module/ui/backgrounds/registry.d.ts.map +1 -1
- package/lib/typescript/module/ui/backgrounds/types.d.ts +11 -1
- package/lib/typescript/module/ui/backgrounds/types.d.ts.map +1 -1
- package/lib/typescript/module/ui/backgrounds/variants/wormhole/motion.d.ts +24 -0
- package/lib/typescript/module/ui/backgrounds/variants/wormhole/motion.d.ts.map +1 -0
- package/lib/typescript/module/ui/backgrounds/variants/wormhole/textures.d.ts +13 -0
- package/lib/typescript/module/ui/backgrounds/variants/wormhole/textures.d.ts.map +1 -0
- package/lib/typescript/module/ui/backgrounds/variants/wormhole.d.ts +3 -0
- package/lib/typescript/module/ui/backgrounds/variants/wormhole.d.ts.map +1 -0
- package/lib/typescript/module/ui/components/ClipboardHintBanner.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/CompactRow.d.ts +8 -1
- package/lib/typescript/module/ui/components/CompactRow.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/DraggableHeader.d.ts +4 -1
- package/lib/typescript/module/ui/components/DraggableHeader.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/HeaderSearchButton.d.ts +7 -1
- package/lib/typescript/module/ui/components/HeaderSearchButton.d.ts.map +1 -1
- package/lib/typescript/module/ui/floating/FloatingTool.d.ts +79 -0
- package/lib/typescript/module/ui/floating/FloatingTool.d.ts.map +1 -0
- package/lib/typescript/module/ui/floating/FloatingTool.web.d.ts +64 -0
- package/lib/typescript/module/ui/floating/FloatingTool.web.d.ts.map +1 -0
- package/lib/typescript/module/ui/floating/FloatingToolHost.d.ts +3 -0
- package/lib/typescript/module/ui/floating/FloatingToolHost.d.ts.map +1 -0
- package/lib/typescript/module/ui/floating/FloatingToolHost.web.d.ts +3 -0
- package/lib/typescript/module/ui/floating/FloatingToolHost.web.d.ts.map +1 -0
- package/lib/typescript/module/ui/floating/index.d.ts +7 -0
- package/lib/typescript/module/ui/floating/index.d.ts.map +1 -0
- package/lib/typescript/module/ui/floating/index.web.d.ts +7 -0
- package/lib/typescript/module/ui/floating/index.web.d.ts.map +1 -0
- package/lib/typescript/module/ui/floating/onboardingConstants.d.ts +30 -0
- package/lib/typescript/module/ui/floating/onboardingConstants.d.ts.map +1 -0
- package/lib/typescript/module/ui/floating/onboardingConstants.web.d.ts +13 -0
- package/lib/typescript/module/ui/floating/onboardingConstants.web.d.ts.map +1 -0
- package/lib/typescript/module/ui/gameUI/constants/gameUIColors.d.ts +2 -0
- package/lib/typescript/module/ui/gameUI/constants/gameUIColors.d.ts.map +1 -1
- package/lib/typescript/module/ui/index.d.ts +6 -0
- package/lib/typescript/module/ui/index.d.ts.map +1 -1
- package/lib/typescript/module/ui/night/nightTheme.d.ts +10 -0
- package/lib/typescript/module/ui/night/nightTheme.d.ts.map +1 -1
- package/lib/typescript/module/ui/night/primitives.d.ts +10 -3
- package/lib/typescript/module/ui/night/primitives.d.ts.map +1 -1
- package/lib/typescript/module/ui/otto/OttoSceneView.d.ts +30 -0
- package/lib/typescript/module/ui/otto/OttoSceneView.d.ts.map +1 -0
- package/lib/typescript/module/ui/otto/index.d.ts +2 -0
- package/lib/typescript/module/ui/otto/index.d.ts.map +1 -1
- package/lib/typescript/module/ui/otto/ottoEngine.d.ts +1 -1
- package/lib/typescript/module/ui/otto/ottoEngine.d.ts.map +1 -1
- package/lib/typescript/module/ui/otto/ottoScenes.d.ts +75 -0
- package/lib/typescript/module/ui/otto/ottoScenes.d.ts.map +1 -0
- package/lib/typescript/module/utils/minimalSuperJSON.d.ts.map +1 -1
- package/package.json +25 -5
- package/scripts/generate-wormhole-textures.cjs +261 -0
- package/scripts/test-wormhole-motion.cjs +59 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AccountSetup.d.ts","sourceRoot":"","sources":["../../../../src/license/AccountSetup.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAC;AAMxC,uEAAuE;AACvE,wBAAgB,YAAY,sBAU3B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AccountSetup.web.d.ts","sourceRoot":"","sources":["../../../../src/license/AccountSetup.web.tsx"],"names":[],"mappings":"AAGA,wBAAgB,YAAY,gCAiB3B"}
|
|
@@ -4,7 +4,6 @@
|
|
|
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 TierLimitKey } from "./tierLimits";
|
|
8
7
|
import type { ProAccessReason } from "@buoy-gg/license";
|
|
9
8
|
export declare const WEEKEND_PASS_LABEL = "WEEKEND PASS";
|
|
10
9
|
/**
|
|
@@ -25,10 +24,8 @@ export interface ProUpgradeModalProps {
|
|
|
25
24
|
visible: boolean;
|
|
26
25
|
onClose: () => void;
|
|
27
26
|
featureName?: string;
|
|
28
|
-
/** See {@link UpgradeModalProps.limitKey}. */
|
|
29
|
-
limitKey?: TierLimitKey;
|
|
30
27
|
}
|
|
31
|
-
export declare const ProUpgradeModal: ({ visible, onClose, featureName,
|
|
28
|
+
export declare const ProUpgradeModal: ({ visible, onClose, featureName, }: ProUpgradeModalProps) => React.JSX.Element;
|
|
32
29
|
export interface FeatureGateProps {
|
|
33
30
|
/**
|
|
34
31
|
* Content to render when user has Pro access
|
|
@@ -58,12 +55,10 @@ export interface FeatureGateProps {
|
|
|
58
55
|
* Default upgrade prompt shown when user doesn't have Pro access
|
|
59
56
|
* Opens LicenseEntryModal when clicked (unless custom onUpgradePress provided)
|
|
60
57
|
*/
|
|
61
|
-
export declare const UpgradePrompt: ({ featureName, onUpgradePress, compact,
|
|
58
|
+
export declare const UpgradePrompt: ({ featureName, onUpgradePress, compact, }: {
|
|
62
59
|
featureName?: string;
|
|
63
60
|
onUpgradePress?: () => void;
|
|
64
61
|
compact?: boolean;
|
|
65
|
-
/** See {@link UpgradeModalProps.limitKey}. */
|
|
66
|
-
limitKey?: TierLimitKey;
|
|
67
62
|
}) => React.JSX.Element;
|
|
68
63
|
/**
|
|
69
64
|
* Wraps content that requires Pro license.
|
|
@@ -136,17 +131,6 @@ export interface UpgradeModalProps {
|
|
|
136
131
|
* List of Pro benefits to highlight
|
|
137
132
|
*/
|
|
138
133
|
benefits?: string[];
|
|
139
|
-
/**
|
|
140
|
-
* The tier limit the user just hit, if this upsell is about a limit rather
|
|
141
|
-
* than a Pro-exclusive feature.
|
|
142
|
-
*
|
|
143
|
-
* Supplying it is what lets an anonymous user be offered a FREE key instead
|
|
144
|
-
* of a paid upgrade — but only when a free key would genuinely raise that
|
|
145
|
-
* limit. Omit it for Pro-only features (copy, state editing, storage
|
|
146
|
-
* mutations, navigation): those are locked for free users too, so promising
|
|
147
|
-
* a free key would be a lie.
|
|
148
|
-
*/
|
|
149
|
-
limitKey?: TierLimitKey;
|
|
150
134
|
}
|
|
151
|
-
export declare const UpgradeModal: ({ visible, onClose, featureName, description, benefits,
|
|
135
|
+
export declare const UpgradeModal: ({ visible, onClose, featureName, description, benefits, }: UpgradeModalProps) => React.JSX.Element | null;
|
|
152
136
|
//# sourceMappingURL=FeatureGate.d.ts.map
|
|
@@ -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,6BAgInB,CAAC"}
|
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* The
|
|
2
|
+
* The account setup sheet — what a locked manager shows instead of the tools.
|
|
3
3
|
*
|
|
4
|
-
* Deliberately not the Pro modal.
|
|
5
|
-
* thirty seconds, so asking
|
|
6
|
-
* at the wrong moment
|
|
7
|
-
* produce. Pro is still offered, as a secondary action.
|
|
4
|
+
* Deliberately not the Pro modal. The next step is a free account and takes
|
|
5
|
+
* about thirty seconds, so asking for money here would be asking the wrong
|
|
6
|
+
* question at the wrong moment. Pro is still offered, as a secondary action.
|
|
8
7
|
*
|
|
9
|
-
* The command is shown inline and copyable rather than linked, because
|
|
10
|
-
*
|
|
11
|
-
*
|
|
8
|
+
* The command is shown inline and copyable rather than linked, because
|
|
9
|
+
* someone who cannot open the tools needs the fix in front of them, not a link
|
|
10
|
+
* to a page that has a link to a command.
|
|
12
11
|
*/
|
|
13
12
|
import React from "react";
|
|
14
13
|
/** The one thing a reader has to be able to act on. */
|
|
@@ -16,8 +15,6 @@ export declare const LOGIN_COMMAND = "npx buoy login";
|
|
|
16
15
|
export interface FreeAccountPromptProps {
|
|
17
16
|
visible: boolean;
|
|
18
17
|
onClose: () => void;
|
|
19
|
-
/** What the user just bumped into, e.g. "Network requests". */
|
|
20
|
-
featureName?: string;
|
|
21
18
|
}
|
|
22
|
-
export declare const FreeAccountPrompt: ({ visible, onClose,
|
|
19
|
+
export declare const FreeAccountPrompt: ({ visible, onClose, }: FreeAccountPromptProps) => React.JSX.Element | null;
|
|
23
20
|
//# sourceMappingURL=FreeAccountPrompt.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FreeAccountPrompt.d.ts","sourceRoot":"","sources":["../../../../src/license/FreeAccountPrompt.tsx"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"FreeAccountPrompt.d.ts","sourceRoot":"","sources":["../../../../src/license/FreeAccountPrompt.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAmD,MAAM,OAAO,CAAC;AAexE,uDAAuD;AACvD,eAAO,MAAM,aAAa,mBAAmB,CAAC;AAE9C,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAED,eAAO,MAAM,iBAAiB,GAAI,uBAG/B,sBAAsB,6BAgGxB,CAAC"}
|
|
@@ -6,6 +6,6 @@ export type { FreeAccountPromptProps } from "./FreeAccountPrompt";
|
|
|
6
6
|
export type { LicenseEntryModalProps, LicenseState } from "./LicenseEntryModal";
|
|
7
7
|
export { getUseIsPro, getUseLicense, getUseTier, } from "./licenseModule";
|
|
8
8
|
export type { BuoyTier } from "./licenseModule";
|
|
9
|
-
export { TIER_LIMITS, useLimit, resolveEffectiveTier
|
|
9
|
+
export { TIER_LIMITS, useLimit, resolveEffectiveTier } from "./tierLimits";
|
|
10
10
|
export type { TierLimitKey } from "./tierLimits";
|
|
11
11
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/license/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,cAAc,EAAE,gBAAgB,EAAE,YAAY,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACtI,YAAY,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAEtH,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACvE,YAAY,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAClE,YAAY,EAAE,sBAAsB,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAIhF,OAAO,EACL,WAAW,EACX,aAAa,EACb,UAAU,GACX,MAAM,iBAAiB,CAAC;AACzB,YAAY,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAEhD,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,oBAAoB,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/license/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,cAAc,EAAE,gBAAgB,EAAE,YAAY,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACtI,YAAY,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAEtH,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACvE,YAAY,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAClE,YAAY,EAAE,sBAAsB,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAIhF,OAAO,EACL,WAAW,EACX,aAAa,EACb,UAAU,GACX,MAAM,iBAAiB,CAAC;AACzB,YAAY,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAEhD,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAC3E,YAAY,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC"}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Centralized
|
|
2
|
+
* Centralized access of `@buoy-gg/license`.
|
|
3
3
|
*
|
|
4
4
|
* This is the SINGLE place any package resolves license hooks — tools must not
|
|
5
|
-
*
|
|
5
|
+
* resolve the license module themselves. Lives in its own module (rather
|
|
6
6
|
* than `./index`) so `tierLimits` can consume it without an import cycle.
|
|
7
7
|
*/
|
|
8
8
|
import type { LicenseState as LicenseStateType } from "./LicenseEntryModal";
|
|
9
|
-
/**
|
|
10
|
-
export type BuoyTier = "
|
|
9
|
+
/** Tier. Mirrors BuoyTier in @buoy-gg/license. */
|
|
10
|
+
export type BuoyTier = "free" | "pro";
|
|
11
11
|
/**
|
|
12
12
|
* Get the useIsPro hook from @buoy-gg/license.
|
|
13
13
|
* Falls back to () => false if the license package is not available.
|
|
@@ -23,33 +23,20 @@ export declare function getUseIsPro(): () => boolean;
|
|
|
23
23
|
*/
|
|
24
24
|
export declare function getUseLicense(): (() => LicenseStateType) | null;
|
|
25
25
|
/**
|
|
26
|
-
*
|
|
27
|
-
*
|
|
28
|
-
*
|
|
29
|
-
* be resolved. That deliberately matches the existing `getUseIsPro()` fallback,
|
|
30
|
-
* which yields free-tier behavior today, and it picks the safer failure:
|
|
31
|
-
*
|
|
32
|
-
* - falling back to "anonymous" would let one bundler quirk silently cut every
|
|
33
|
-
* legitimate user's limits by ~80%;
|
|
34
|
-
* - falling back to "free" costs no revenue, because Pro still requires a key
|
|
35
|
-
* that a live license server validated — this path can never grant Pro.
|
|
36
|
-
*
|
|
37
|
-
* Reaching it at all requires `@buoy-gg/license` to be missing, and it is a
|
|
38
|
-
* hard dependency of `@buoy-gg/core`.
|
|
26
|
+
* Falls back to "free" without the license package. That grants nothing: a
|
|
27
|
+
* missing license module also means no account admission, and nothing is
|
|
28
|
+
* exposed without it.
|
|
39
29
|
*/
|
|
40
30
|
export declare function getUseTier(): () => BuoyTier;
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
* resolve the license package must never take limits AWAY from someone.
|
|
53
|
-
*/
|
|
54
|
-
export declare function isAnonymousTierEnabled(): boolean;
|
|
31
|
+
export type AccountAccess = {
|
|
32
|
+
status: "initializing" | "locked" | "admitted";
|
|
33
|
+
reason: string | null;
|
|
34
|
+
validUntil: number | null;
|
|
35
|
+
};
|
|
36
|
+
export declare function getAccountAccess(): AccountAccess;
|
|
37
|
+
export declare function hasAccountAccess(): boolean;
|
|
38
|
+
export declare function assertAccountAccess(): void;
|
|
39
|
+
export declare function subscribeAccountAccess(listener: () => void): () => void;
|
|
40
|
+
export declare function getUseAccountAccess(): () => AccountAccess;
|
|
41
|
+
export declare function retryAccountAccess(): Promise<void>;
|
|
55
42
|
//# sourceMappingURL=licenseModule.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"licenseModule.d.ts","sourceRoot":"","sources":["../../../../src/license/licenseModule.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;
|
|
1
|
+
{"version":3,"file":"licenseModule.d.ts","sourceRoot":"","sources":["../../../../src/license/licenseModule.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,KAAK,EAAE,YAAY,IAAI,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAE5E,kDAAkD;AAClD,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,KAAK,CAAC;AAuBtC;;;;;GAKG;AACH,wBAAgB,WAAW,IAAI,MAAM,OAAO,CAG3C;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,IAAI,CAAC,MAAM,gBAAgB,CAAC,GAAG,IAAI,CAG/D;AAED;;;;GAIG;AACH,wBAAgB,UAAU,IAAI,MAAM,QAAQ,CAG3C;AAED,MAAM,MAAM,aAAa,GAAG;IAC1B,MAAM,EAAE,cAAc,GAAG,QAAQ,GAAG,UAAU,CAAC;IAC/C,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B,CAAC;AAYF,wBAAgB,gBAAgB,IAAI,aAAa,CAEhD;AACD,wBAAgB,gBAAgB,IAAI,OAAO,CAAqD;AAChG,wBAAgB,mBAAmB,IAAI,IAAI,CAE1C;AACD,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI,CAEvE;AACD,wBAAgB,mBAAmB,IAAI,MAAM,aAAa,CAGzD;AACD,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC,CAKxD"}
|
|
@@ -1,111 +1,89 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Per-tier numeric limits — the ONLY thing that separates
|
|
2
|
+
* Per-tier numeric limits — the ONLY thing that separates free from pro on a
|
|
3
|
+
* count.
|
|
3
4
|
*
|
|
4
|
-
*
|
|
5
|
-
* navigation)
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
* The governing rule: **the free column never moves.** Anonymous is carved out
|
|
9
|
-
* BELOW today's free tier — nothing is ever added to free in exchange for an
|
|
10
|
-
* account, because that would come straight out of the Pro upgrade.
|
|
5
|
+
* Binary Pro gates (copy-to-clipboard, state editing, storage mutations,
|
|
6
|
+
* navigation) live in the tools themselves; this table is only for "how many".
|
|
7
|
+
* Whether the tools are usable at all is account admission, which is a
|
|
8
|
+
* separate question from the tier and is never expressed as a limit.
|
|
11
9
|
*/
|
|
12
10
|
import { type BuoyTier } from "./licenseModule";
|
|
13
11
|
interface TierLimit {
|
|
14
|
-
/**
|
|
15
|
-
readonly anonymous: number;
|
|
16
|
-
/** A validated key on the Free policy. Today's free tier, unchanged. */
|
|
12
|
+
/** A validated key on the Free policy. */
|
|
17
13
|
readonly free: number;
|
|
18
14
|
/** A validated key on the Solo or Business policy. */
|
|
19
15
|
readonly pro: number;
|
|
20
16
|
}
|
|
21
17
|
declare const LIMITS: {
|
|
22
18
|
"network.requests": {
|
|
23
|
-
anonymous: number;
|
|
24
19
|
free: number;
|
|
25
20
|
pro: number;
|
|
26
21
|
};
|
|
27
22
|
"network.saved": {
|
|
28
|
-
anonymous: number;
|
|
29
23
|
free: number;
|
|
30
24
|
pro: number;
|
|
31
25
|
};
|
|
32
26
|
"network.overrideRules": {
|
|
33
|
-
anonymous: number;
|
|
34
27
|
free: number;
|
|
35
28
|
pro: number;
|
|
36
29
|
};
|
|
37
30
|
"storage.events": {
|
|
38
|
-
anonymous: number;
|
|
39
31
|
free: number;
|
|
40
32
|
pro: number;
|
|
41
33
|
};
|
|
42
34
|
"storage.keys": {
|
|
43
|
-
anonymous: number;
|
|
44
35
|
free: number;
|
|
45
36
|
pro: number;
|
|
46
37
|
};
|
|
47
38
|
"storage.mmkvInstances": {
|
|
48
|
-
anonymous: number;
|
|
49
39
|
free: number;
|
|
50
40
|
pro: number;
|
|
51
41
|
};
|
|
52
42
|
"redux.actions": {
|
|
53
|
-
anonymous: number;
|
|
54
43
|
free: number;
|
|
55
44
|
pro: number;
|
|
56
45
|
};
|
|
57
46
|
"zustand.changes": {
|
|
58
|
-
anonymous: number;
|
|
59
47
|
free: number;
|
|
60
48
|
pro: number;
|
|
61
49
|
};
|
|
62
50
|
"jotai.changes": {
|
|
63
|
-
anonymous: number;
|
|
64
51
|
free: number;
|
|
65
52
|
pro: number;
|
|
66
53
|
};
|
|
67
54
|
"events.entries": {
|
|
68
|
-
anonymous: number;
|
|
69
55
|
free: number;
|
|
70
56
|
pro: number;
|
|
71
57
|
};
|
|
72
58
|
"highlightUpdates.components": {
|
|
73
|
-
anonymous: number;
|
|
74
59
|
free: number;
|
|
75
60
|
pro: number;
|
|
76
61
|
};
|
|
77
62
|
"highlightUpdates.historyEvents": {
|
|
78
|
-
anonymous: number;
|
|
79
63
|
free: number;
|
|
80
64
|
pro: number;
|
|
81
65
|
};
|
|
82
66
|
"highlightUpdates.detailEvents": {
|
|
83
|
-
anonymous: number;
|
|
84
67
|
free: number;
|
|
85
68
|
pro: number;
|
|
86
69
|
};
|
|
87
70
|
"routeEvents.entries": {
|
|
88
|
-
anonymous: number;
|
|
89
71
|
free: number;
|
|
90
72
|
pro: number;
|
|
91
73
|
};
|
|
92
74
|
"timeMachine.snapshots": {
|
|
93
|
-
anonymous: number;
|
|
94
75
|
free: number;
|
|
95
76
|
pro: number;
|
|
96
77
|
};
|
|
97
78
|
"perfMonitor.automationCases": {
|
|
98
|
-
anonymous: number;
|
|
99
79
|
free: number;
|
|
100
80
|
pro: number;
|
|
101
81
|
};
|
|
102
82
|
"scenarios.saved": {
|
|
103
|
-
anonymous: number;
|
|
104
83
|
free: number;
|
|
105
84
|
pro: number;
|
|
106
85
|
};
|
|
107
86
|
"scenarios.active": {
|
|
108
|
-
anonymous: number;
|
|
109
87
|
free: number;
|
|
110
88
|
pro: number;
|
|
111
89
|
};
|
|
@@ -116,10 +94,8 @@ export declare const TIER_LIMITS: Record<TierLimitKey, TierLimit>;
|
|
|
116
94
|
* The tier whose limits actually apply.
|
|
117
95
|
*
|
|
118
96
|
* `hasProAccess` is `useIsPro()`, which is true for a real Pro license OR the
|
|
119
|
-
*
|
|
120
|
-
*
|
|
121
|
-
* now. When the Weekend Pass is later gated to key-holders, that change lands
|
|
122
|
-
* here for free — no limit call site has to know about it.
|
|
97
|
+
* Weekend Pass. Routing the Weekend Pass through here is what gives weekend
|
|
98
|
+
* users Pro limits without any limit call site having to know about it.
|
|
123
99
|
*/
|
|
124
100
|
export declare function resolveEffectiveTier(tier: BuoyTier, hasProAccess: boolean): BuoyTier;
|
|
125
101
|
/**
|
|
@@ -130,24 +106,5 @@ export declare function resolveEffectiveTier(tier: BuoyTier, hasProAccess: boole
|
|
|
130
106
|
* directly in `slice(0, limit)` and `length >= limit` comparisons.
|
|
131
107
|
*/
|
|
132
108
|
export declare function useLimit(key: TierLimitKey): number;
|
|
133
|
-
/**
|
|
134
|
-
* Whether claiming a FREE key would actually raise this limit right now.
|
|
135
|
-
*
|
|
136
|
-
* The anonymous upsell must never promise something a free key won't deliver.
|
|
137
|
-
* Two ways it could lie, and this closes both:
|
|
138
|
-
*
|
|
139
|
-
* - **Pro-exclusive features.** Copy-to-clipboard, state editing, storage
|
|
140
|
-
* mutations and navigation are locked for anonymous AND free alike. Telling
|
|
141
|
-
* an anonymous user a free key opens them would be false.
|
|
142
|
-
* - **Limits that are already equal.** Override rules and MMKV instances sit
|
|
143
|
-
* at 1 for both tiers, so a key changes nothing there either.
|
|
144
|
-
*
|
|
145
|
-
* It also respects `ANONYMOUS_TIER_ENABLED`: while the anonymous tier is off,
|
|
146
|
-
* an anonymous user is *already* getting the free limits, so there is nothing
|
|
147
|
-
* to claim and this correctly returns false everywhere. That falls out of
|
|
148
|
-
* asking `resolveEffectiveTier` rather than reading the table directly, so the
|
|
149
|
-
* switch and the copy can never disagree.
|
|
150
|
-
*/
|
|
151
|
-
export declare function freeKeyRaises(key: TierLimitKey): boolean;
|
|
152
109
|
export {};
|
|
153
110
|
//# sourceMappingURL=tierLimits.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tierLimits.d.ts","sourceRoot":"","sources":["../../../../src/license/tierLimits.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"tierLimits.d.ts","sourceRoot":"","sources":["../../../../src/license/tierLimits.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAA2B,KAAK,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAEzE,UAAU,SAAS;IACjB,0CAA0C;IAC1C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,sDAAsD;IACtD,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;CACtB;AAED,QAAA,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiCX,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG,MAAM,OAAO,MAAM,CAAC;AAE/C,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,YAAY,EAAE,SAAS,CAAU,CAAC;AAEnE;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,QAAQ,EACd,YAAY,EAAE,OAAO,GACpB,QAAQ,CAEV;AAED;;;;;;GAMG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,YAAY,GAAG,MAAM,CAIlD"}
|
|
@@ -122,6 +122,12 @@ export declare const devToolsStorageKeys: {
|
|
|
122
122
|
readonly timeMachine: {
|
|
123
123
|
readonly root: () => "@react_buoy_time_machine";
|
|
124
124
|
readonly diffViewerMode: () => "@react_buoy_time_machine_diff_viewer_mode";
|
|
125
|
+
/** The restore point the floating restore bar restores on tap (snapshot id). */
|
|
126
|
+
readonly armedPoint: () => "@react_buoy_time_machine_armed_point";
|
|
127
|
+
/** "1" when the action bar restores in reload mode (storage, then a JS reload). */
|
|
128
|
+
readonly barReloadMode: () => "@react_buoy_time_machine_bar_reload_mode";
|
|
129
|
+
/** Source ids switched OFF in the Sources strip (JSON string array). */
|
|
130
|
+
readonly disabledSources: () => "@react_buoy_time_machine_disabled_sources";
|
|
125
131
|
};
|
|
126
132
|
/**
|
|
127
133
|
* Scenarios storage keys. The library (saved + draft scenarios) and the
|
|
@@ -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;;;;;;;;;;OAUG;8BACc,MAAM;;QAInB,kEAAkE;;;QAGlE,iCAAiC;sBACnB,MAAM;;IAIxB;;OAEG;;;;;;QAQD,kDAAkD;;QAElD,gCAAgC;;QAGhC,gCAAgC;;;IAKlC;;OAEG;;;QAGD,mCAAmC;;QAEnC,qEAAqE;;;IAIvE;;OAEG;;;;;IAOH;;OAEG;;;;;;;IAQH;;OAEG;;;;;;;IASH;;OAEG;;;;;;;;;;;;;;IAuBH;;;;OAIG;;;;;
|
|
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;;;;;;;;;;OAUG;8BACc,MAAM;;QAInB,kEAAkE;;;QAGlE,iCAAiC;sBACnB,MAAM;;IAIxB;;OAEG;;;;;;QAQD,kDAAkD;;QAElD,gCAAgC;;QAGhC,gCAAgC;;;IAKlC;;OAEG;;;QAGD,mCAAmC;;QAEnC,qEAAqE;;;IAIvE;;OAEG;;;;;IAOH;;OAEG;;;;;;;IAQH;;OAEG;;;;;;;IASH;;OAEG;;;;;;;;;;;;;;IAuBH;;;;OAIG;;;;QAKD,gFAAgF;;QAGhF,mFAAmF;;QAGnF,wEAAwE;;;IAK1E;;;;;OAKG;;;;;;;IAQH;;OAEG;;;;;;;;;;;IAiBH;;OAEG;;;;;;;;;;QAcD;;;WAGG;;QAEH;;;;;WAKG;;;IAIL;;OAEG;;;;;;;;;;IAgBH;;OAEG;;;;;;;QAUD,2BAA2B;;;IAK7B;;OAEG;;;;;;;;;IAcH;;OAEG;;;QAGD,8DAA8D;;;IAKhE;;OAEG;;;QAGD;;;;;;;;WAQG;;QAEH,oCAAoC;;QAGpC,wCAAwC;;QAGxC;;;;;WAKG;;QAEH,2BAA2B;;;IAK7B;;OAEG;;;QAGD;;;;WAIG;;;CAGG,CAAC;AAwBX;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CA0BzD;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAE9D;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,IAAI,MAAM,EAAE,CAsBpD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseEventStore.d.ts","sourceRoot":"","sources":["../../../../src/stores/BaseEventStore.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"BaseEventStore.d.ts","sourceRoot":"","sources":["../../../../src/stores/BaseEventStore.ts"],"names":[],"mappings":"AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;IAwB1C;;;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;IAYvC;;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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createToolStore.d.ts","sourceRoot":"","sources":["../../../../src/stores/createToolStore.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"createToolStore.d.ts","sourceRoot":"","sources":["../../../../src/stores/createToolStore.ts"],"names":[],"mappings":"AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,mEAAmE;AACnE,MAAM,MAAM,iBAAiB,GAAG,MAAM,IAAI,CAAC;AAE3C,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,SAAS,CAAC;AAElD,MAAM,WAAW,gBAAgB;IAC/B;qEACiE;IACjE,EAAE,EAAE,MAAM,CAAC;IACX,yBAAyB;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,8DAA8D;IAC9D,KAAK,CAAC,EAAE,cAAc,CAAC;IACvB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAC5B,oFAAoF;IACpF,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,iDAAiD;IACjD,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,SAAS,CAAC,CAAC;IAC1B,6EAA6E;IAC7E,SAAS,CAAC,QAAQ,EAAE,iBAAiB,GAAG,MAAM,IAAI,CAAC;IACnD,yDAAyD;IACzD,WAAW,IAAI,CAAC,EAAE,CAAC;IACnB,uBAAuB;IACvB,IAAI,IAAI,MAAM,CAAC;IACf,uFAAuF;IACvF,GAAG,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC;IACnB,iFAAiF;IACjF,GAAG,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,IAAI,CAAC;IACrB,gFAAgF;IAChF,MAAM,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,CAAC,EAAE,GAAG,IAAI,CAAC;IACtC,iEAAiE;IACjE,KAAK,IAAI,IAAI,CAAC;IACd,sFAAsF;IACtF,OAAO,CAAC,QAAQ,EAAE,iBAAiB,GAAG,MAAM,IAAI,CAAC;IACjD,2EAA2E;IAC3E,MAAM,IAAI,IAAI,CAAC;IACf;;;;OAIG;IACH,SAAS,CAAC,KAAK,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IACjC,4EAA4E;IAC5E,SAAS,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI,CAAC;IACjC,QAAQ,IAAI,OAAO,CAAC;IACpB,oEAAoE;IACpE,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,MAAM,IAAI,MAAM,CAAC;IACjB,oDAAoD;IACpD,OAAO,IAAI,MAAM,CAAC;IAClB,2EAA2E;IAC3E,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,mDAAmD;IACnD,aAAa,IAAI,MAAM,CAAC;IACxB,+CAA+C;IAC/C,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;CACrB;AAYD,wBAAgB,eAAe,CAAC,CAAC,EAAE,OAAO,EAAE,gBAAgB,GAAG,SAAS,CAAC,CAAC,CAAC,CA8K1E"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { ReactNode } from "react";
|
|
2
|
+
export interface FloatingToolRenderContext {
|
|
3
|
+
id: string;
|
|
4
|
+
/** Changes when an existing tool is opened again, so its grip can restore it. */
|
|
5
|
+
revealToken: number;
|
|
6
|
+
dismiss(): void;
|
|
7
|
+
}
|
|
8
|
+
export interface FloatingToolRegistration {
|
|
9
|
+
/** Unique across the app; also use this id on FloatingTool for isolated position storage. */
|
|
10
|
+
id: string;
|
|
11
|
+
render(context: FloatingToolRenderContext): ReactNode;
|
|
12
|
+
}
|
|
13
|
+
export interface FloatingToolEntry extends FloatingToolRegistration {
|
|
14
|
+
revealToken: number;
|
|
15
|
+
}
|
|
16
|
+
export declare const getFloatingTools: () => readonly FloatingToolEntry[];
|
|
17
|
+
export declare const subscribeFloatingTools: (listener: () => void) => () => void;
|
|
18
|
+
/** Open or restore one tool. Mount FloatingToolHost once at the application root. */
|
|
19
|
+
export declare function openFloatingTool(tool: FloatingToolRegistration): void;
|
|
20
|
+
/** Removes the UI only. Tool actions such as Stop belong to the tool's own controller. */
|
|
21
|
+
export declare function dismissFloatingTool(id: string): void;
|
|
22
|
+
/** Register at app startup to restore an open tool using its existing position storage. */
|
|
23
|
+
export declare function registerPersistentFloatingTool(tool: FloatingToolRegistration, storage: {
|
|
24
|
+
getItem(key: string): Promise<string | null>;
|
|
25
|
+
setItem(key: string, value: string): Promise<unknown>;
|
|
26
|
+
}): () => void;
|
|
27
|
+
//# sourceMappingURL=floatingToolStore.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"floatingToolStore.d.ts","sourceRoot":"","sources":["../../../../src/stores/floatingToolStore.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,MAAM,WAAW,yBAAyB;IACxC,EAAE,EAAE,MAAM,CAAC;IACX,iFAAiF;IACjF,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,IAAI,IAAI,CAAC;CACjB;AACD,MAAM,WAAW,wBAAwB;IACvC,6FAA6F;IAC7F,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,CAAC,OAAO,EAAE,yBAAyB,GAAG,SAAS,CAAC;CACvD;AACD,MAAM,WAAW,iBAAkB,SAAQ,wBAAwB;IAAG,WAAW,EAAE,MAAM,CAAA;CAAE;AAK3F,eAAO,MAAM,gBAAgB,oCAAgB,CAAC;AAC9C,eAAO,MAAM,sBAAsB,GAAI,UAAU,MAAM,IAAI,eAA+E,CAAC;AAE3I,qFAAqF;AACrF,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,wBAAwB,GAAG,IAAI,CAOrE;AAED,0FAA0F;AAC1F,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAIpD;AAED,2FAA2F;AAC3F,wBAAgB,8BAA8B,CAC5C,IAAI,EAAE,wBAAwB,EAC9B,OAAO,EAAE;IAAE,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAAC,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;CAAE,GAC/G,MAAM,IAAI,CAqBZ"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"floatingToolStore.test.d.ts","sourceRoot":"","sources":["../../../../src/stores/floatingToolStore.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,38 +1,8 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* toolActionRegistry — the on-device twin of the broker's action dispatch.
|
|
3
|
-
*
|
|
4
|
-
* Buoy already has exactly one place where `{toolId, action, params}` becomes a
|
|
5
|
-
* real call into a tool: `handleAction` in external-sync, fed by the adapter
|
|
6
|
-
* map that `autoExternalSync` assembles. That map was private to the React
|
|
7
|
-
* tree, so anything running ON the device (the Scenarios runner) had no way to
|
|
8
|
-
* reach it and would have had to duplicate the map — two dispatch paths that
|
|
9
|
-
* drift the first time an adapter changes.
|
|
10
|
-
*
|
|
11
|
-
* This module publishes the SAME map through a global seam, so a scenario step,
|
|
12
|
-
* a desktop click and an MCP call are one code path with two entry points.
|
|
13
|
-
*
|
|
14
|
-
* WHY A GLOBAL, NOT AN IMPORT: the map is built inside a component (the
|
|
15
|
-
* react-query adapter is a hook, the env adapter is a factory closed over a
|
|
16
|
-
* prop, and custom tools arrive as props), so it cannot be a module constant.
|
|
17
|
-
* Meanwhile the consumer must not import `@buoy-gg/core` — that package imports
|
|
18
|
-
* the tools, and a tool importing it back is the require cycle that puts a
|
|
19
|
-
* LogBox on every reload. Same reasoning, and the same shape, as
|
|
20
|
-
* `crashFlush.ts` in external-sync.
|
|
21
|
-
*
|
|
22
|
-
* WE STORE A GETTER, NOT A SNAPSHOT, for the reason `attachDeviceSync` does:
|
|
23
|
-
* the adapter map is re-created on renders that change its inputs, and a stale
|
|
24
|
-
* captured copy would keep dispatching into adapters the tree has replaced.
|
|
25
|
-
*
|
|
26
|
-
* SAFETY: this registry is populated only while `AutoExternalSync` is mounted,
|
|
27
|
-
* which is itself gated (dev, or release + an explicit opt-in + a real Pro
|
|
28
|
-
* license). It is deliberately NOT a substitute for a caller's own production
|
|
29
|
-
* gate — anything that bends app state through it must check `__DEV__` itself,
|
|
30
|
-
* because the actions reachable here (network overrides, storage writes,
|
|
31
|
-
* impersonation) have no business running in a shipped app.
|
|
32
|
-
*/
|
|
33
1
|
/** The duck-typed adapter shape, matching external-sync's `ToolSyncAdapter`. */
|
|
34
2
|
export interface RegisteredToolAdapter {
|
|
35
3
|
version?: number;
|
|
4
|
+
/** Internal teardown of resources this adapter owns. Never exposed as an action. */
|
|
5
|
+
dispose?: (cleanup: (toolId: string, action: string, params?: unknown) => Promise<unknown>) => void | Promise<void>;
|
|
36
6
|
getSnapshot?: () => unknown;
|
|
37
7
|
subscribe?: (onChange: () => void) => () => void;
|
|
38
8
|
actions?: Record<string, (params: unknown) => unknown | Promise<unknown>>;
|
|
@@ -82,4 +52,6 @@ export declare function dispatchToolAction(toolId: string, action: string, param
|
|
|
82
52
|
* caller can say "Buoy tools are still starting up" instead of "unknown tool".
|
|
83
53
|
*/
|
|
84
54
|
export declare function waitForToolRegistry(timeoutMs?: number): Promise<boolean>;
|
|
55
|
+
/** Guard retained references too, and discard results completed after revocation. */
|
|
56
|
+
export declare function guardToolAdapter<T extends RegisteredToolAdapter>(adapter: T): T;
|
|
85
57
|
//# sourceMappingURL=toolActionRegistry.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toolActionRegistry.d.ts","sourceRoot":"","sources":["../../../../src/sync/toolActionRegistry.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"toolActionRegistry.d.ts","sourceRoot":"","sources":["../../../../src/sync/toolActionRegistry.ts"],"names":[],"mappings":"AAoCA,gFAAgF;AAChF,MAAM,WAAW,qBAAqB;IACpC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,oFAAoF;IACpF,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACpH,WAAW,CAAC,EAAE,MAAM,OAAO,CAAC;IAC5B,SAAS,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,IAAI,KAAK,MAAM,IAAI,CAAC;IACjD,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;CAC3E;AAED,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;AAenE;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,MAAM,cAAc,GAC7B,MAAM,IAAI,CAkCZ;AAED,uDAAuD;AACvD,wBAAgB,eAAe,IAAI,cAAc,CAWhD;AAED,uCAAuC;AACvC,wBAAgB,WAAW,IAAI,MAAM,EAAE,CAEtC;AAED,kFAAkF;AAClF,wBAAgB,eAAe,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAM1D;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,EAAE,CAI9C;AAED;;;;;;GAMG;AACH,wBAAsB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CASvE;AAED,wBAAgB,mBAAmB,IAAI,OAAO,CAE7C;AAED;;;;GAIG;AACH,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,OAAO,GACf,OAAO,CAAC,OAAO,CAAC,CAalB;AAED;;;;GAIG;AACH,wBAAsB,mBAAmB,CAAC,SAAS,SAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAQ5E;AAED,qFAAqF;AACrF,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,qBAAqB,EAAE,OAAO,EAAE,CAAC,GAAG,CAAC,CAgC/E"}
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
* selection (`backgroundStore`), so switching it in one tool switches it in all
|
|
15
15
|
* of them.
|
|
16
16
|
*/
|
|
17
|
-
import type { BackgroundId } from "./types";
|
|
17
|
+
import type { BackgroundFocus, BackgroundId } from "./types";
|
|
18
18
|
export interface ToolBackgroundProps {
|
|
19
19
|
/**
|
|
20
20
|
* Force a specific preset instead of following the shared selection. The
|
|
@@ -25,6 +25,12 @@ export interface ToolBackgroundProps {
|
|
|
25
25
|
motion?: boolean;
|
|
26
26
|
/** Multiplied into the whole layer's opacity — dial it down per tool. */
|
|
27
27
|
opacity?: number;
|
|
28
|
+
/**
|
|
29
|
+
* Pin the preset's point of interest (Wormhole's eye) to a spot on this
|
|
30
|
+
* surface, as fractions of its size. The dial passes the centre so the eye
|
|
31
|
+
* sits under the hub; tools omit it and get the preset's own framing.
|
|
32
|
+
*/
|
|
33
|
+
focus?: BackgroundFocus;
|
|
28
34
|
}
|
|
29
35
|
export declare const ToolBackground: import("react").NamedExoticComponent<ToolBackgroundProps>;
|
|
30
36
|
//# sourceMappingURL=ToolBackground.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ToolBackground.d.ts","sourceRoot":"","sources":["../../../../../src/ui/backgrounds/ToolBackground.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAOH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"ToolBackground.d.ts","sourceRoot":"","sources":["../../../../../src/ui/backgrounds/ToolBackground.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAOH,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAU7D,MAAM,WAAW,mBAAmB;IAClC;;;OAGG;IACH,EAAE,CAAC,EAAE,YAAY,CAAC;IAClB,yDAAyD;IACzD,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,yEAAyE;IACzE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,KAAK,CAAC,EAAE,eAAe,CAAC;CACzB;AAED,eAAO,MAAM,cAAc,2DAiCzB,CAAC"}
|
|
@@ -2,7 +2,7 @@ export { ToolBackground, type ToolBackgroundProps } from "./ToolBackground";
|
|
|
2
2
|
export { BackgroundSwitcher } from "./BackgroundSwitcher";
|
|
3
3
|
export { backgroundStore, BACKGROUND_STORAGE_KEY, useToolBackground, type UseToolBackgroundResult, } from "./backgroundStore";
|
|
4
4
|
export { BACKGROUND_PRESETS, DEFAULT_BACKGROUND, getPreset, presetAt, presetIndex, type BackgroundPreset, } from "./registry";
|
|
5
|
-
export type { BackgroundId, BackgroundVariantProps } from "./types";
|
|
5
|
+
export type { BackgroundFocus, BackgroundId, BackgroundVariantProps } from "./types";
|
|
6
6
|
export { LinearFade, RadialGlow, RasterLayer, useLoop, usePulse, } from "./primitives";
|
|
7
7
|
export { scatter, withAlpha as withBgAlpha } from "./rng";
|
|
8
8
|
export { DeepFieldTunable, type DeepFieldTuning, type HaloMode, type TwinkleMode, } from "./variants/deepField";
|
|
@@ -10,4 +10,5 @@ export { MoonlightTunable, type MoonlightTuning } from "./variants/moonlight";
|
|
|
10
10
|
export { DaylightTunable, type DaylightTuning } from "./variants/daylight";
|
|
11
11
|
export { LiveSkyTunable, type LiveSkyTuning } from "./variants/liveSky";
|
|
12
12
|
export { getSkyScrub, setSkyScrub, useSkyScrub } from "./skyClock";
|
|
13
|
+
export { Wormhole } from "./variants/wormhole";
|
|
13
14
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/ui/backgrounds/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,KAAK,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAC5E,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EACL,eAAe,EACf,sBAAsB,EACtB,iBAAiB,EACjB,KAAK,uBAAuB,GAC7B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,SAAS,EACT,QAAQ,EACR,WAAW,EACX,KAAK,gBAAgB,GACtB,MAAM,YAAY,CAAC;AACpB,YAAY,EAAE,YAAY,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/ui/backgrounds/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,KAAK,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAC5E,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EACL,eAAe,EACf,sBAAsB,EACtB,iBAAiB,EACjB,KAAK,uBAAuB,GAC7B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,SAAS,EACT,QAAQ,EACR,WAAW,EACX,KAAK,gBAAgB,GACtB,MAAM,YAAY,CAAC;AACpB,YAAY,EAAE,eAAe,EAAE,YAAY,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;AAIrF,OAAO,EACL,UAAU,EACV,UAAU,EACV,WAAW,EACX,OAAO,EACP,QAAQ,GACT,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,OAAO,EAAE,SAAS,IAAI,WAAW,EAAE,MAAM,OAAO,CAAC;AAG1D,OAAO,EACL,gBAAgB,EAChB,KAAK,eAAe,EACpB,KAAK,QAAQ,EACb,KAAK,WAAW,GACjB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,gBAAgB,EAAE,KAAK,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC9E,OAAO,EAAE,eAAe,EAAE,KAAK,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC3E,OAAO,EAAE,cAAc,EAAE,KAAK,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEnE,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../../../src/ui/backgrounds/registry.tsx"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../../../src/ui/backgrounds/registry.tsx"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAM3C,OAAO,KAAK,EAAE,YAAY,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;AAEpE,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,YAAY,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,sDAAsD;IACtD,KAAK,EAAE,MAAM,CAAC;IACd,gEAAgE;IAChE,KAAK,EAAE,MAAM,CAAC;IACd,mEAAmE;IACnE,KAAK,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,WAAW,CAAC,EAAE;QAAE,EAAE,EAAE,YAAY,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAClD,SAAS,EAAE,aAAa,CAAC,sBAAsB,CAAC,GAAG,IAAI,CAAC;CACzD;AAED,eAAO,MAAM,kBAAkB,EAAE,gBAAgB,EAmEhD,CAAC;AAIF,eAAO,MAAM,kBAAkB,EAAE,YAAoB,CAAC;AAEtD,wBAAgB,WAAW,CAAC,EAAE,EAAE,YAAY,GAAG,MAAM,CAGpD;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,gBAAgB,CAGxD;AAED,wBAAgB,SAAS,CAAC,EAAE,EAAE,YAAY,GAAG,gBAAgB,CAE5D"}
|
|
@@ -9,6 +9,16 @@ export interface BackgroundVariantProps {
|
|
|
9
9
|
* of disappearing.
|
|
10
10
|
*/
|
|
11
11
|
animated: boolean;
|
|
12
|
+
/**
|
|
13
|
+
* Where the preset's point of interest should sit, as fractions of the
|
|
14
|
+
* surface (0–1 each). Omitted → the preset's own composition. Presets with
|
|
15
|
+
* no focal point ignore it; Wormhole puts the eye of the tunnel here.
|
|
16
|
+
*/
|
|
17
|
+
focus?: BackgroundFocus;
|
|
18
|
+
}
|
|
19
|
+
export interface BackgroundFocus {
|
|
20
|
+
x: number;
|
|
21
|
+
y: number;
|
|
12
22
|
}
|
|
13
|
-
export type BackgroundId = "off" | "deepfield" | "hyperspace" | "livesky" | "abyss" | "bubbles" | "jellyfish";
|
|
23
|
+
export type BackgroundId = "off" | "deepfield" | "hyperspace" | "livesky" | "abyss" | "bubbles" | "jellyfish" | "wormhole";
|
|
14
24
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/ui/backgrounds/types.ts"],"names":[],"mappings":"AAAA,mDAAmD;AACnD,MAAM,WAAW,sBAAsB;IACrC,+EAA+E;IAC/E,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf;;;;OAIG;IACH,QAAQ,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/ui/backgrounds/types.ts"],"names":[],"mappings":"AAAA,mDAAmD;AACnD,MAAM,WAAW,sBAAsB;IACrC,+EAA+E;IAC/E,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf;;;;OAIG;IACH,QAAQ,EAAE,OAAO,CAAC;IAClB;;;;OAIG;IACH,KAAK,CAAC,EAAE,eAAe,CAAC;CACzB;AAED,MAAM,WAAW,eAAe;IAC9B,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX;AAED,MAAM,MAAM,YAAY,GACpB,KAAK,GACL,WAAW,GACX,YAAY,GACZ,SAAS,GACT,OAAO,GACP,SAAS,GACT,WAAW,GACX,UAAU,CAAC"}
|