@buoy-gg/shared-ui 7.0.36 → 7.0.38
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
package/README.md
CHANGED
|
@@ -1,34 +1,41 @@
|
|
|
1
|
-
# @buoy/shared-ui
|
|
1
|
+
# @buoy-gg/shared-ui
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
Design system pieces shared across the React Buoy dev tools.
|
|
3
|
+
Shared components, colors, hooks, and utilities used by Buoy's React Native tools. Use this package when implementing a custom tool or a compatible internal interface. To install the existing tool suite, start with [@buoy-gg/core](https://www.npmjs.com/package/@buoy-gg/core).
|
|
7
4
|
|
|
8
5
|
## Install
|
|
6
|
+
|
|
9
7
|
```bash
|
|
10
|
-
|
|
8
|
+
npm install @buoy-gg/shared-ui
|
|
11
9
|
```
|
|
12
10
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
11
|
+
Keep peer dependencies compatible with your other Buoy packages, including the license package. This is the `@buoy-gg` scope.
|
|
12
|
+
|
|
13
|
+
## Public entry points
|
|
14
|
+
|
|
15
|
+
| Import | Contents |
|
|
16
|
+
| --- | --- |
|
|
17
|
+
| `@buoy-gg/shared-ui` | Main component and utility exports. |
|
|
18
|
+
| `@buoy-gg/shared-ui/colors` | Palette exports for initialization before component modules load. |
|
|
19
|
+
| `@buoy-gg/shared-ui/ui` | UI components and styling helpers. |
|
|
20
|
+
| `@buoy-gg/shared-ui/hooks` | Shared hooks. |
|
|
21
|
+
| `@buoy-gg/shared-ui/utils` | Utility functions. |
|
|
22
|
+
| `@buoy-gg/shared-ui/dataViewer` | Data inspection components. |
|
|
23
|
+
| `@buoy-gg/shared-ui/history` | History-related exports. |
|
|
24
|
+
|
|
25
|
+
For example, read the shared palette through its dedicated entry point:
|
|
26
|
+
|
|
27
|
+
```ts
|
|
28
|
+
import { macOSColors } from "@buoy-gg/shared-ui/colors";
|
|
29
|
+
|
|
30
|
+
const panelBackground = macOSColors.background.card;
|
|
32
31
|
```
|
|
33
32
|
|
|
34
|
-
|
|
33
|
+
Use the installed declarations to select components and their props. Avoid private source imports. Some components and stores depend on account state or provider context; importing a primitive does not initialize the surrounding tool lifecycle.
|
|
34
|
+
|
|
35
|
+
Follow the [custom-tool guide](https://buoy.gg/buoy/latest/docs/custom-tools) to register a tool and its adapter. Verify your panel with empty data, a known populated state, and the supported app theme before connecting remote actions.
|
|
36
|
+
|
|
37
|
+
## Custom floating tools
|
|
38
|
+
|
|
39
|
+
`FloatingTool` provides the same drag, hide/restore and position behavior used by the DevTools bubble. Use `FloatingToolHost` with `openFloatingTool` to keep compact custom controls mounted across navigation. Each tool supplies its own content and actions. Set `dragFromSurface` to make the background draggable while buttons keep their gestures; the default uses the grip only.
|
|
40
|
+
|
|
41
|
+
See the [custom floating tools guide](https://buoy.gg/buoy/latest/docs/custom-tools/floating-tools) for native and browser integration, lifecycle rules and examples. Browser consumers can import the dedicated `@buoy-gg/shared-ui/floating` entry.
|
package/floating.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./lib/typescript/module/ui/floating/index";
|
package/floating.js
ADDED
package/lib/commonjs/JsModal.js
CHANGED
|
@@ -4,6 +4,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.JsModal = void 0;
|
|
7
|
+
var _licenseModule = require("./license/licenseModule.js");
|
|
8
|
+
var _AccountSetup = require("./license/AccountSetup");
|
|
7
9
|
var _react = require("react");
|
|
8
10
|
var _reactNative = require("react-native");
|
|
9
11
|
var _absoluteFill = require("./utils/absoluteFill.js");
|
|
@@ -381,6 +383,7 @@ const JsModalComponent = ({
|
|
|
381
383
|
footerHeight = 0,
|
|
382
384
|
onBack,
|
|
383
385
|
onMinimize,
|
|
386
|
+
minimizeRequest = 0,
|
|
384
387
|
minimizeTargetPosition,
|
|
385
388
|
initialModalState,
|
|
386
389
|
zIndex,
|
|
@@ -688,6 +691,12 @@ const JsModalComponent = ({
|
|
|
688
691
|
});
|
|
689
692
|
}
|
|
690
693
|
}, [mode, onMinimize, minimizeTargetPosition, visibilityProgress, bottomSheetTranslateY, floatingScale, floatingPosition]);
|
|
694
|
+
const lastMinimizeRequest = (0, _react.useRef)(minimizeRequest);
|
|
695
|
+
(0, _react.useEffect)(() => {
|
|
696
|
+
if (lastMinimizeRequest.current === minimizeRequest) return;
|
|
697
|
+
lastMinimizeRequest.current = minimizeRequest;
|
|
698
|
+
handleMinimize();
|
|
699
|
+
}, [minimizeRequest, handleMinimize]);
|
|
691
700
|
|
|
692
701
|
// Apply initial modal state when restoring from minimized
|
|
693
702
|
(0, _react.useEffect)(() => {
|
|
@@ -1796,4 +1805,10 @@ const footerStyles = _reactNative.StyleSheet.create({
|
|
|
1796
1805
|
// ============================================================================
|
|
1797
1806
|
// EXPORT - Memoized modal component for optimal performance
|
|
1798
1807
|
// ============================================================================
|
|
1799
|
-
const JsModal = exports.JsModal = /*#__PURE__*/(0, _react.memo)(
|
|
1808
|
+
const JsModal = exports.JsModal = /*#__PURE__*/(0, _react.memo)(props => {
|
|
1809
|
+
const access = (0, _licenseModule.getUseAccountAccess)()();
|
|
1810
|
+
if (access.status !== "admitted") return props.visible ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_AccountSetup.AccountSetup, {}) : null;
|
|
1811
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(JsModalComponent, {
|
|
1812
|
+
...props
|
|
1813
|
+
});
|
|
1814
|
+
});
|
|
@@ -4,6 +4,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.JsModal = void 0;
|
|
7
|
+
var _licenseModule = require("./license/licenseModule.js");
|
|
8
|
+
var _AccountSetup = require("./license/AccountSetup");
|
|
7
9
|
var _react = require("react");
|
|
8
10
|
var _devToolsStorageKeys = require("./storage/devToolsStorageKeys.js");
|
|
9
11
|
var _index = require("./context/index.js");
|
|
@@ -757,6 +759,7 @@ const JsModalComponent = ({
|
|
|
757
759
|
onBack: _onBack,
|
|
758
760
|
// native never invokes it from JsModal either
|
|
759
761
|
onMinimize,
|
|
762
|
+
minimizeRequest = 0,
|
|
760
763
|
minimizeTargetPosition,
|
|
761
764
|
initialModalState,
|
|
762
765
|
zIndex,
|
|
@@ -962,6 +965,12 @@ const JsModalComponent = ({
|
|
|
962
965
|
}, () => onMinimize(currentState)));
|
|
963
966
|
}
|
|
964
967
|
}, [mode, onMinimize, minimizeTargetPosition, cancelAnims]);
|
|
968
|
+
const lastMinimizeRequest = (0, _react.useRef)(minimizeRequest);
|
|
969
|
+
(0, _react.useEffect)(() => {
|
|
970
|
+
if (lastMinimizeRequest.current === minimizeRequest) return;
|
|
971
|
+
lastMinimizeRequest.current = minimizeRequest;
|
|
972
|
+
handleMinimize();
|
|
973
|
+
}, [minimizeRequest, handleMinimize]);
|
|
965
974
|
|
|
966
975
|
// Apply initial modal state when restoring from minimized (native parity).
|
|
967
976
|
(0, _react.useEffect)(() => {
|
|
@@ -1634,4 +1643,10 @@ const JsModalComponent = ({
|
|
|
1634
1643
|
// ============================================================================
|
|
1635
1644
|
// EXPORT — memoized like native
|
|
1636
1645
|
// ============================================================================
|
|
1637
|
-
const JsModal = exports.JsModal = /*#__PURE__*/(0, _react.memo)(
|
|
1646
|
+
const JsModal = exports.JsModal = /*#__PURE__*/(0, _react.memo)(props => {
|
|
1647
|
+
const access = (0, _licenseModule.getUseAccountAccess)()();
|
|
1648
|
+
if (access.status !== "admitted") return props.visible ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_AccountSetup.AccountSetup, {}) : null;
|
|
1649
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(JsModalComponent, {
|
|
1650
|
+
...props
|
|
1651
|
+
});
|
|
1652
|
+
});
|
|
@@ -226,7 +226,12 @@ function CyberpunkInput({
|
|
|
226
226
|
}), showDeleteButton && /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.TouchableOpacity, {
|
|
227
227
|
style: [styles.deleteButton, isFocused && styles.deleteButtonFocused],
|
|
228
228
|
onPress: onDelete,
|
|
229
|
-
activeOpacity: 0.7
|
|
229
|
+
activeOpacity: 0.7
|
|
230
|
+
// The same handle scheme container nodes use (`<node>-delete`):
|
|
231
|
+
// the input is `<node>-input`, so its delete is `<node>-delete`.
|
|
232
|
+
,
|
|
233
|
+
testID: typeof props.testID === "string" && props.testID.endsWith("-input") ? `${props.testID.slice(0, -"-input".length)}-delete` : undefined,
|
|
234
|
+
accessibilityLabel: "Delete item",
|
|
230
235
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_index.Trash, {
|
|
231
236
|
size: 14,
|
|
232
237
|
strokeWidth: 2,
|
|
@@ -194,22 +194,29 @@ function ToggleValueButton({
|
|
|
194
194
|
// Pre-compute styles based on value state
|
|
195
195
|
const badgeStyle = value ? styles.toggleBadgeTrue : styles.toggleBadgeFalse;
|
|
196
196
|
const textStyle = value ? styles.toggleTextTrue : styles.toggleTextFalse;
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
style: styles.
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
197
|
+
|
|
198
|
+
// Two sibling buttons: on web each renders a real <button>, and a delete
|
|
199
|
+
// button inside the toggle button is invalid HTML (its press would also
|
|
200
|
+
// flip the toggle).
|
|
201
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
|
|
202
|
+
style: styles.toggleRow,
|
|
203
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.TouchableOpacity, {
|
|
204
|
+
"sentry-label": "ignore devtools explorer toggle button",
|
|
205
|
+
testID: `${testID}-toggle`,
|
|
206
|
+
accessibilityRole: "button",
|
|
207
|
+
accessibilityLabel: `${dataPath[dataPath.length - 1] ?? "value"}, ${value ? "true" : "false"}`,
|
|
208
|
+
style: styles.modernToggleButton,
|
|
209
|
+
onPress: handleClick,
|
|
210
|
+
hitSlop: HIT_SLOP_OPTIMIZED,
|
|
211
|
+
activeOpacity: 0.8,
|
|
212
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
213
|
+
style: [styles.toggleBadge, badgeStyle],
|
|
214
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
|
|
215
|
+
style: [styles.toggleBadgeText, textStyle],
|
|
216
|
+
children: value ? "TRUE" : "FALSE"
|
|
217
|
+
})
|
|
211
218
|
})
|
|
212
|
-
}), removable && writer.remove
|
|
219
|
+
}), removable && writer.remove ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.TouchableOpacity, {
|
|
213
220
|
"sentry-label": "ignore devtools explorer delete button in toggle",
|
|
214
221
|
testID: `${testID}-delete`,
|
|
215
222
|
accessibilityRole: "button",
|
|
@@ -223,7 +230,7 @@ function ToggleValueButton({
|
|
|
223
230
|
strokeWidth: 2,
|
|
224
231
|
color: _nightTheme.night.color.danger + "CC"
|
|
225
232
|
})
|
|
226
|
-
})]
|
|
233
|
+
}) : null]
|
|
227
234
|
});
|
|
228
235
|
}
|
|
229
236
|
// Optimized Explorer component following rule2 guidelines [[memory:4875251]]
|
|
@@ -866,6 +873,11 @@ const styles = _reactNative.StyleSheet.create({
|
|
|
866
873
|
borderColor: _nightTheme.night.color.textTertiary + "66",
|
|
867
874
|
minHeight: 34
|
|
868
875
|
},
|
|
876
|
+
toggleRow: {
|
|
877
|
+
flexDirection: "row",
|
|
878
|
+
alignItems: "center",
|
|
879
|
+
gap: 6
|
|
880
|
+
},
|
|
869
881
|
modernToggleButton: {
|
|
870
882
|
flexDirection: "row",
|
|
871
883
|
alignItems: "center",
|
|
@@ -7,7 +7,7 @@ exports.useNativeSafeAreaInsets = exports.safeAreaType = exports.hasSafeAreaPack
|
|
|
7
7
|
/**
|
|
8
8
|
* Auto-generated safe area implementation
|
|
9
9
|
* Detected: none
|
|
10
|
-
* Generated at: 2026-09-
|
|
10
|
+
* Generated at: 2026-09-17T23:44:21.398Z
|
|
11
11
|
*
|
|
12
12
|
* DO NOT EDIT - This file is generated by scripts/detect-safe-area.js
|
|
13
13
|
*
|
|
@@ -3,167 +3,15 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.ReactQueryIcon =
|
|
7
|
-
var
|
|
8
|
-
var _IconBackground = require("./IconBackground.js");
|
|
6
|
+
exports.ReactQueryIcon = ReactQueryIcon;
|
|
7
|
+
var _floatingToolsCore = require("@buoy-gg/floating-tools-core");
|
|
9
8
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
10
|
-
|
|
11
|
-
red: {
|
|
12
|
-
color: "#FF3366",
|
|
13
|
-
glow: "#FF3366"
|
|
14
|
-
},
|
|
15
|
-
orange: {
|
|
16
|
-
color: "#FF8800",
|
|
17
|
-
glow: "#FF8800"
|
|
18
|
-
},
|
|
19
|
-
yellow: {
|
|
20
|
-
color: "#FFD700",
|
|
21
|
-
glow: "#FFD700"
|
|
22
|
-
},
|
|
23
|
-
purple: {
|
|
24
|
-
color: "#9945FF",
|
|
25
|
-
glow: "#9945FF"
|
|
26
|
-
},
|
|
27
|
-
cyan: {
|
|
28
|
-
color: "#00D4FF",
|
|
29
|
-
glow: "#00D4FF"
|
|
30
|
-
},
|
|
31
|
-
pink: {
|
|
32
|
-
color: "#FF45FF",
|
|
33
|
-
glow: "#FF45FF"
|
|
34
|
-
}
|
|
35
|
-
};
|
|
9
|
+
// Compatibility export: all tool surfaces use the approved raster artwork.
|
|
36
10
|
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
x: 0.92,
|
|
43
|
-
y: 0.5
|
|
44
|
-
}, {
|
|
45
|
-
x: 0.5,
|
|
46
|
-
y: 0.2
|
|
47
|
-
}, {
|
|
48
|
-
x: 0.5,
|
|
49
|
-
y: 0.8
|
|
50
|
-
}];
|
|
51
|
-
const ReactQueryIcon = ({
|
|
52
|
-
size = 24,
|
|
53
|
-
color,
|
|
54
|
-
glowColor,
|
|
55
|
-
colorPreset = "red",
|
|
56
|
-
variant = "circuit",
|
|
57
|
-
noBackground = true
|
|
58
|
-
}) => {
|
|
59
|
-
const scale = noBackground ? size / 24 : size / 60;
|
|
60
|
-
const preset = ColorPresets[colorPreset] || ColorPresets.red;
|
|
61
|
-
const activeColor = color || preset.color;
|
|
62
|
-
const activeGlow = glowColor || preset.glow;
|
|
63
|
-
|
|
64
|
-
// Simplified hexagon using loop
|
|
65
|
-
const renderHexagon = () => {
|
|
66
|
-
const hexWidth = 8 * scale;
|
|
67
|
-
const hexHeight = 2.5 * scale;
|
|
68
|
-
const hexLeft = size / 2 - hexWidth / 2;
|
|
69
|
-
const hexTop = size / 2 - hexHeight / 2;
|
|
70
|
-
const rotations = [0, 60, -60];
|
|
71
|
-
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
|
|
72
|
-
children: [rotations.map((rotation, i) => /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
73
|
-
style: {
|
|
74
|
-
position: "absolute",
|
|
75
|
-
width: hexWidth,
|
|
76
|
-
height: hexHeight,
|
|
77
|
-
backgroundColor: activeColor,
|
|
78
|
-
left: hexLeft,
|
|
79
|
-
top: hexTop,
|
|
80
|
-
transform: rotation !== 0 ? [{
|
|
81
|
-
rotate: `${rotation}deg`
|
|
82
|
-
}] : undefined,
|
|
83
|
-
opacity: 0.9
|
|
84
|
-
}
|
|
85
|
-
}, `hex-${i}`)), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
86
|
-
style: {
|
|
87
|
-
position: "absolute",
|
|
88
|
-
width: 10 * scale,
|
|
89
|
-
height: 10 * scale,
|
|
90
|
-
borderRadius: 2 * scale,
|
|
91
|
-
backgroundColor: activeGlow,
|
|
92
|
-
left: size / 2 - 5 * scale,
|
|
93
|
-
top: size / 2 - 5 * scale,
|
|
94
|
-
opacity: 0.15
|
|
95
|
-
}
|
|
96
|
-
})]
|
|
97
|
-
});
|
|
98
|
-
};
|
|
99
|
-
|
|
100
|
-
// Simplified orbital lines using loop
|
|
101
|
-
const renderOrbitalLines = () => {
|
|
102
|
-
const lineLength = 18 * scale;
|
|
103
|
-
const lineThickness = 2 * scale;
|
|
104
|
-
const orbitRadius = lineThickness / 2;
|
|
105
|
-
const rotations = [0, 60, -60];
|
|
106
|
-
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
|
|
107
|
-
children: [rotations.map((rotation, i) => /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
108
|
-
style: {
|
|
109
|
-
position: "absolute",
|
|
110
|
-
width: lineLength,
|
|
111
|
-
height: lineThickness,
|
|
112
|
-
backgroundColor: activeColor,
|
|
113
|
-
borderRadius: orbitRadius,
|
|
114
|
-
left: size / 2 - lineLength / 2,
|
|
115
|
-
top: size / 2 - lineThickness / 2,
|
|
116
|
-
transform: rotation !== 0 ? [{
|
|
117
|
-
rotate: `${rotation}deg`
|
|
118
|
-
}] : undefined,
|
|
119
|
-
opacity: 0.7
|
|
120
|
-
}
|
|
121
|
-
}, `orbit-${i}`)), ORBITAL_DOTS.map((dot, i) => /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
122
|
-
style: {
|
|
123
|
-
position: "absolute",
|
|
124
|
-
width: 2.5 * scale,
|
|
125
|
-
height: 2.5 * scale,
|
|
126
|
-
borderRadius: 1.25 * scale,
|
|
127
|
-
backgroundColor: activeGlow,
|
|
128
|
-
left: dot.x * size - 1.25 * scale,
|
|
129
|
-
top: dot.y * size - 1.25 * scale,
|
|
130
|
-
opacity: 0.5
|
|
131
|
-
}
|
|
132
|
-
}, `dot-${i}`))]
|
|
133
|
-
});
|
|
134
|
-
};
|
|
135
|
-
const iconContent = /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
|
|
136
|
-
children: [renderOrbitalLines(), renderHexagon(), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
137
|
-
style: {
|
|
138
|
-
position: "absolute",
|
|
139
|
-
width: size * 0.7,
|
|
140
|
-
height: size * 0.7,
|
|
141
|
-
borderRadius: size * 0.35,
|
|
142
|
-
borderWidth: 0.5 * scale,
|
|
143
|
-
borderColor: activeGlow,
|
|
144
|
-
left: size * 0.15,
|
|
145
|
-
top: size * 0.15,
|
|
146
|
-
opacity: 0.2
|
|
147
|
-
}
|
|
148
|
-
})]
|
|
149
|
-
});
|
|
150
|
-
if (noBackground) {
|
|
151
|
-
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
152
|
-
style: {
|
|
153
|
-
width: size,
|
|
154
|
-
height: size,
|
|
155
|
-
position: "relative",
|
|
156
|
-
alignItems: "center",
|
|
157
|
-
justifyContent: "center"
|
|
158
|
-
},
|
|
159
|
-
children: iconContent
|
|
160
|
-
});
|
|
161
|
-
}
|
|
162
|
-
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_IconBackground.IconBackground, {
|
|
163
|
-
size: size,
|
|
164
|
-
glowColor: activeGlow,
|
|
165
|
-
variant: variant,
|
|
166
|
-
children: iconContent
|
|
11
|
+
function ReactQueryIcon({
|
|
12
|
+
size = 24
|
|
13
|
+
}) {
|
|
14
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_floatingToolsCore.QueryIcon, {
|
|
15
|
+
size: size
|
|
167
16
|
});
|
|
168
|
-
}
|
|
169
|
-
exports.ReactQueryIcon = ReactQueryIcon;
|
|
17
|
+
}
|
|
@@ -3,179 +3,17 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.SentryBugIcon =
|
|
7
|
-
var
|
|
8
|
-
var _reactNative = require("react-native");
|
|
9
|
-
var _IconBackground = require("./IconBackground.js");
|
|
6
|
+
exports.SentryBugIcon = SentryBugIcon;
|
|
7
|
+
var _floatingToolsCore = require("@buoy-gg/floating-tools-core");
|
|
10
8
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
11
|
-
|
|
12
|
-
red: {
|
|
13
|
-
color: "#FF3366",
|
|
14
|
-
glow: "#FF3366"
|
|
15
|
-
},
|
|
16
|
-
purple: {
|
|
17
|
-
color: "#9945FF",
|
|
18
|
-
glow: "#9945FF"
|
|
19
|
-
},
|
|
20
|
-
orange: {
|
|
21
|
-
color: "#FF8800",
|
|
22
|
-
glow: "#FF8800"
|
|
23
|
-
},
|
|
24
|
-
pink: {
|
|
25
|
-
color: "#FF45FF",
|
|
26
|
-
glow: "#FF45FF"
|
|
27
|
-
},
|
|
28
|
-
cyan: {
|
|
29
|
-
color: "#00D4FF",
|
|
30
|
-
glow: "#00D4FF"
|
|
31
|
-
},
|
|
32
|
-
green: {
|
|
33
|
-
color: "#00FF88",
|
|
34
|
-
glow: "#00FF88"
|
|
35
|
-
}
|
|
36
|
-
};
|
|
9
|
+
// Compatibility export: all tool surfaces use the approved raster artwork.
|
|
37
10
|
|
|
38
|
-
|
|
39
|
-
const LEGS = [{
|
|
40
|
-
y: 0.3,
|
|
41
|
-
side: "left",
|
|
42
|
-
rotation: -20
|
|
43
|
-
}, {
|
|
44
|
-
y: 0.5,
|
|
45
|
-
side: "left",
|
|
46
|
-
rotation: -20
|
|
47
|
-
}, {
|
|
48
|
-
y: 0.7,
|
|
49
|
-
side: "left",
|
|
50
|
-
rotation: -20
|
|
51
|
-
}, {
|
|
52
|
-
y: 0.3,
|
|
53
|
-
side: "right",
|
|
54
|
-
rotation: 20
|
|
55
|
-
}, {
|
|
56
|
-
y: 0.5,
|
|
57
|
-
side: "right",
|
|
58
|
-
rotation: 20
|
|
59
|
-
}, {
|
|
60
|
-
y: 0.7,
|
|
61
|
-
side: "right",
|
|
62
|
-
rotation: 20
|
|
63
|
-
}];
|
|
64
|
-
const SentryBugIcon = ({
|
|
11
|
+
function SentryBugIcon({
|
|
65
12
|
size = 24,
|
|
66
|
-
color
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
variant = "circuit",
|
|
70
|
-
noBackground = true
|
|
71
|
-
}) => {
|
|
72
|
-
const scale = noBackground ? size / 24 : size / 60;
|
|
73
|
-
const preset = ColorPresets[colorPreset] || ColorPresets.red;
|
|
74
|
-
const activeColor = color || preset.color;
|
|
75
|
-
const activeGlow = glowColor || preset.glow;
|
|
76
|
-
const iconContent = /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
|
|
77
|
-
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
78
|
-
style: {
|
|
79
|
-
position: "absolute",
|
|
80
|
-
width: 12 * scale,
|
|
81
|
-
height: 14 * scale,
|
|
82
|
-
borderRadius: 6 * scale,
|
|
83
|
-
backgroundColor: activeColor,
|
|
84
|
-
left: size / 2 - 6 * scale,
|
|
85
|
-
top: size / 2 - 5 * scale,
|
|
86
|
-
opacity: 0.9
|
|
87
|
-
}
|
|
88
|
-
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
89
|
-
style: {
|
|
90
|
-
position: "absolute",
|
|
91
|
-
width: 8 * scale,
|
|
92
|
-
height: 6 * scale,
|
|
93
|
-
borderRadius: 4 * scale,
|
|
94
|
-
backgroundColor: activeColor,
|
|
95
|
-
left: size / 2 - 4 * scale,
|
|
96
|
-
top: size / 2 - 9 * scale,
|
|
97
|
-
opacity: 0.95
|
|
98
|
-
}
|
|
99
|
-
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
100
|
-
style: {
|
|
101
|
-
position: "absolute",
|
|
102
|
-
width: 14 * scale,
|
|
103
|
-
height: 16 * scale,
|
|
104
|
-
borderRadius: 7 * scale,
|
|
105
|
-
backgroundColor: activeGlow,
|
|
106
|
-
left: size / 2 - 7 * scale,
|
|
107
|
-
top: size / 2 - 6 * scale,
|
|
108
|
-
opacity: 0.15
|
|
109
|
-
}
|
|
110
|
-
}), LEGS.map((leg, i) => /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
111
|
-
style: {
|
|
112
|
-
position: "absolute",
|
|
113
|
-
width: 4 * scale,
|
|
114
|
-
height: 0.8 * scale,
|
|
115
|
-
backgroundColor: activeColor,
|
|
116
|
-
[leg.side]: size / 2 - 10 * scale,
|
|
117
|
-
top: size / 2 - 4 * scale + leg.y * 10 * scale,
|
|
118
|
-
transform: [{
|
|
119
|
-
rotate: `${leg.rotation}deg`
|
|
120
|
-
}],
|
|
121
|
-
opacity: 0.8
|
|
122
|
-
}
|
|
123
|
-
}, `leg-${i}`)), [-15, 15].map((rotation, i) => /*#__PURE__*/(0, _jsxRuntime.jsxs)(_react.Fragment, {
|
|
124
|
-
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
125
|
-
style: {
|
|
126
|
-
position: "absolute",
|
|
127
|
-
width: 0.5 * scale,
|
|
128
|
-
height: 4 * scale,
|
|
129
|
-
backgroundColor: activeColor,
|
|
130
|
-
[i === 0 ? "left" : "right"]: size / 2 - 2 * scale,
|
|
131
|
-
top: size / 2 - 11 * scale,
|
|
132
|
-
transform: [{
|
|
133
|
-
rotate: `${rotation}deg`
|
|
134
|
-
}],
|
|
135
|
-
opacity: 0.7
|
|
136
|
-
}
|
|
137
|
-
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
138
|
-
style: {
|
|
139
|
-
position: "absolute",
|
|
140
|
-
width: 1.5 * scale,
|
|
141
|
-
height: 1.5 * scale,
|
|
142
|
-
borderRadius: 0.75 * scale,
|
|
143
|
-
backgroundColor: activeGlow,
|
|
144
|
-
[i === 0 ? "left" : "right"]: size / 2 - 3 * scale,
|
|
145
|
-
top: size / 2 - 12 * scale,
|
|
146
|
-
opacity: 0.6
|
|
147
|
-
}
|
|
148
|
-
})]
|
|
149
|
-
}, `antenna-${i}`)), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
150
|
-
style: {
|
|
151
|
-
position: "absolute",
|
|
152
|
-
width: 1 * scale,
|
|
153
|
-
height: 1 * scale,
|
|
154
|
-
borderRadius: 0.5 * scale,
|
|
155
|
-
backgroundColor: "#fff",
|
|
156
|
-
left: size / 2 - 0.5 * scale,
|
|
157
|
-
top: size / 2,
|
|
158
|
-
opacity: 0.3
|
|
159
|
-
}
|
|
160
|
-
})]
|
|
161
|
-
});
|
|
162
|
-
if (noBackground) {
|
|
163
|
-
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
164
|
-
style: {
|
|
165
|
-
width: size,
|
|
166
|
-
height: size,
|
|
167
|
-
position: "relative",
|
|
168
|
-
alignItems: "center",
|
|
169
|
-
justifyContent: "center"
|
|
170
|
-
},
|
|
171
|
-
children: iconContent
|
|
172
|
-
});
|
|
173
|
-
}
|
|
174
|
-
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_IconBackground.IconBackground, {
|
|
13
|
+
color
|
|
14
|
+
}) {
|
|
15
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_floatingToolsCore.SentryIcon, {
|
|
175
16
|
size: size,
|
|
176
|
-
|
|
177
|
-
variant: variant,
|
|
178
|
-
children: iconContent
|
|
17
|
+
color: color ?? "#9945FF"
|
|
179
18
|
});
|
|
180
|
-
}
|
|
181
|
-
exports.SentryBugIcon = SentryBugIcon;
|
|
19
|
+
}
|