@buoy-gg/shared-ui 7.0.39 → 7.0.41
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 +6 -0
- package/lib/commonjs/JsModal.js +13 -61
- package/lib/commonjs/JsModal.web.js +32 -95
- package/lib/commonjs/clipboard/autoDetectClipboard.js +1 -1
- package/lib/commonjs/clipboard/clipboard-impl.web.js +21 -0
- package/lib/commonjs/dataViewer/tree/TreeDiffViewer.js +4 -2
- package/lib/commonjs/hooks/index.js +1 -1
- package/lib/commonjs/hooks/safe-area-impl.js +1 -1
- package/lib/commonjs/hooks/usePersistedState.js +1 -1
- package/lib/commonjs/hooks/useSafeAreaInsets.web.js +41 -0
- package/lib/commonjs/icons/index.js +14 -0
- package/lib/commonjs/index.js +34 -0
- package/lib/commonjs/license/AccountSetup.js +4 -25
- package/lib/commonjs/license/AccountSetup.web.js +78 -64
- package/lib/commonjs/license/AccountSetupContent.js +482 -0
- package/lib/commonjs/license/FreeAccountPrompt.js +32 -178
- package/lib/commonjs/license/LicenseEntryModal.js +5 -12
- package/lib/commonjs/license/accountRuntime.js +8 -0
- package/lib/commonjs/license/accountRuntime.web.js +9 -0
- package/lib/commonjs/license/licenseModule.js +2 -0
- package/lib/commonjs/settings/components/BubbleSettingsSection.js +1 -1
- package/lib/commonjs/storage/definePersistedSetting.js +1 -1
- package/lib/commonjs/stores/ignoredPatternsCore.js +8 -1
- package/lib/commonjs/stores/ignoredPatternsStore.js +10 -199
- package/lib/commonjs/stores/ignoredPatternsStore.shared.js +205 -0
- package/lib/commonjs/stores/ignoredPatternsStore.web.js +10 -230
- package/lib/commonjs/ui/backgrounds/backgroundStore.js +1 -1
- package/lib/commonjs/ui/backgrounds/variants/wormhole.js +3 -0
- package/lib/commonjs/ui/components/CopyButton.js +1 -1
- package/lib/commonjs/ui/components/EventStepperFooter.js +1 -1
- package/lib/commonjs/ui/components/ToolFooter.js +1 -1
- package/lib/commonjs/ui/floating/FloatingTool.web.js +12 -2
- package/lib/commonjs/ui/night/primitives.js +10 -3
- package/lib/commonjs/ui/otto/OttoSprite.js +1 -1
- package/lib/commonjs/utils/browserAsyncStorage.js +157 -0
- package/lib/commonjs/utils/browserNavigation.js +116 -0
- package/lib/commonjs/utils/devServer.js +8 -4
- package/lib/commonjs/utils/devServer.web.js +10 -0
- package/lib/commonjs/utils/domRuntime.js +143 -0
- package/lib/commonjs/utils/expoRouterModule.js +51 -0
- package/lib/commonjs/utils/expoRouterModule.web.js +14 -0
- package/lib/commonjs/utils/getSafeAreaInsets.web.js +35 -0
- package/lib/commonjs/utils/index.js +111 -4
- package/lib/commonjs/utils/loadToolModule.js +46 -0
- package/lib/commonjs/utils/loadToolModule.web.js +12 -0
- package/lib/commonjs/utils/modalStorage.js +42 -0
- package/lib/commonjs/utils/nativeWeb.js +454 -0
- package/lib/commonjs/utils/persistentStorage.web.js +78 -0
- package/lib/commonjs/utils/reloadApp.js +18 -57
- package/lib/commonjs/utils/reloadPlatform.js +37 -0
- package/lib/commonjs/utils/reloadPlatform.web.js +17 -0
- package/lib/commonjs/utils/safeExpoRouter.js +3 -53
- package/lib/commonjs/utils/safeExpoRouter.web.js +48 -0
- package/lib/commonjs/utils/toolModules.js +25 -0
- package/lib/module/JsModal.js +11 -59
- package/lib/module/JsModal.web.js +28 -91
- package/lib/module/clipboard/autoDetectClipboard.js +2 -2
- package/lib/module/clipboard/clipboard-impl.web.js +14 -0
- package/lib/module/dataViewer/tree/TreeDiffViewer.js +4 -2
- package/lib/module/hooks/index.js +2 -2
- package/lib/module/hooks/safe-area-impl.js +1 -1
- package/lib/module/hooks/usePersistedState.js +1 -1
- package/lib/module/hooks/useSafeAreaInsets.web.js +30 -0
- package/lib/module/icons/index.js +2 -1
- package/lib/module/index.js +3 -0
- package/lib/module/license/AccountSetup.js +5 -26
- package/lib/module/license/AccountSetup.web.js +79 -65
- package/lib/module/license/AccountSetupContent.js +476 -0
- package/lib/module/license/FreeAccountPrompt.js +27 -176
- package/lib/module/license/LicenseEntryModal.js +6 -13
- package/lib/module/license/accountRuntime.js +3 -0
- package/lib/module/license/accountRuntime.web.js +4 -0
- package/lib/module/license/licenseModule.js +2 -0
- package/lib/module/settings/components/BubbleSettingsSection.js +1 -1
- package/lib/module/storage/definePersistedSetting.js +1 -1
- package/lib/module/stores/ignoredPatternsCore.js +8 -1
- package/lib/module/stores/ignoredPatternsStore.js +1 -187
- package/lib/module/stores/ignoredPatternsStore.shared.js +189 -0
- package/lib/module/stores/ignoredPatternsStore.web.js +1 -219
- package/lib/module/ui/backgrounds/backgroundStore.js +1 -1
- package/lib/module/ui/backgrounds/variants/wormhole.js +3 -0
- package/lib/module/ui/components/CopyButton.js +1 -1
- package/lib/module/ui/components/EventStepperFooter.js +1 -1
- package/lib/module/ui/components/ToolFooter.js +1 -1
- package/lib/module/ui/floating/FloatingTool.web.js +12 -2
- package/lib/module/ui/night/primitives.js +11 -4
- package/lib/module/ui/otto/OttoSprite.js +1 -1
- package/lib/module/utils/browserAsyncStorage.js +151 -0
- package/lib/module/utils/browserNavigation.js +108 -0
- package/lib/module/utils/devServer.js +8 -4
- package/lib/module/utils/devServer.web.js +6 -0
- package/lib/module/utils/domRuntime.js +134 -0
- package/lib/module/utils/expoRouterModule.js +46 -0
- package/lib/module/utils/expoRouterModule.web.js +9 -0
- package/lib/module/utils/getSafeAreaInsets.web.js +31 -0
- package/lib/module/utils/index.js +9 -4
- package/lib/module/utils/loadToolModule.js +42 -0
- package/lib/module/utils/loadToolModule.web.js +8 -0
- package/lib/module/utils/modalStorage.js +37 -0
- package/lib/module/utils/nativeWeb.js +107 -0
- package/lib/module/utils/persistentStorage.web.js +72 -0
- package/lib/module/utils/reloadApp.js +13 -51
- package/lib/module/utils/reloadPlatform.js +31 -0
- package/lib/module/utils/reloadPlatform.web.js +11 -0
- package/lib/module/utils/safeExpoRouter.js +3 -53
- package/lib/module/utils/safeExpoRouter.web.js +37 -0
- package/lib/module/utils/toolModules.js +19 -0
- package/lib/typescript/commonjs/JsModal.d.ts.map +1 -1
- package/lib/typescript/commonjs/JsModal.web.d.ts +7 -18
- package/lib/typescript/commonjs/JsModal.web.d.ts.map +1 -1
- package/lib/typescript/commonjs/clipboard/clipboard-impl.web.d.ts +5 -0
- package/lib/typescript/commonjs/clipboard/clipboard-impl.web.d.ts.map +1 -0
- package/lib/typescript/commonjs/dataViewer/tree/TreeDiffViewer.d.ts.map +1 -1
- package/lib/typescript/commonjs/hooks/safe-area-impl.d.ts +1 -1
- package/lib/typescript/commonjs/hooks/useSafeAreaInsets.web.d.ts +6 -0
- package/lib/typescript/commonjs/hooks/useSafeAreaInsets.web.d.ts.map +1 -0
- package/lib/typescript/commonjs/icons/index.d.ts +1 -0
- package/lib/typescript/commonjs/icons/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/index.d.ts +2 -0
- package/lib/typescript/commonjs/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/license/AccountSetup.d.ts.map +1 -1
- package/lib/typescript/commonjs/license/AccountSetup.web.d.ts +1 -1
- package/lib/typescript/commonjs/license/AccountSetup.web.d.ts.map +1 -1
- package/lib/typescript/commonjs/license/AccountSetupContent.d.ts +11 -0
- package/lib/typescript/commonjs/license/AccountSetupContent.d.ts.map +1 -0
- package/lib/typescript/commonjs/license/FreeAccountPrompt.d.ts +3 -15
- package/lib/typescript/commonjs/license/FreeAccountPrompt.d.ts.map +1 -1
- package/lib/typescript/commonjs/license/LicenseEntryModal.d.ts.map +1 -1
- package/lib/typescript/commonjs/license/accountRuntime.d.ts +2 -0
- package/lib/typescript/commonjs/license/accountRuntime.d.ts.map +1 -0
- package/lib/typescript/commonjs/license/accountRuntime.web.d.ts +2 -0
- package/lib/typescript/commonjs/license/accountRuntime.web.d.ts.map +1 -0
- package/lib/typescript/commonjs/license/licenseModule.d.ts +3 -1
- package/lib/typescript/commonjs/license/licenseModule.d.ts.map +1 -1
- package/lib/typescript/commonjs/stores/ignoredPatternsCore.d.ts +5 -1
- package/lib/typescript/commonjs/stores/ignoredPatternsCore.d.ts.map +1 -1
- package/lib/typescript/commonjs/stores/ignoredPatternsStore.d.ts +1 -59
- package/lib/typescript/commonjs/stores/ignoredPatternsStore.d.ts.map +1 -1
- package/lib/typescript/commonjs/stores/ignoredPatternsStore.shared.d.ts +60 -0
- package/lib/typescript/commonjs/stores/ignoredPatternsStore.shared.d.ts.map +1 -0
- package/lib/typescript/commonjs/stores/ignoredPatternsStore.web.d.ts +1 -71
- package/lib/typescript/commonjs/stores/ignoredPatternsStore.web.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/floating/FloatingTool.web.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/night/primitives.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/otto/ottoEngine.d.ts +1 -1
- package/lib/typescript/commonjs/utils/browserAsyncStorage.d.ts +25 -0
- package/lib/typescript/commonjs/utils/browserAsyncStorage.d.ts.map +1 -0
- package/lib/typescript/commonjs/utils/browserNavigation.d.ts +31 -0
- package/lib/typescript/commonjs/utils/browserNavigation.d.ts.map +1 -0
- package/lib/typescript/commonjs/utils/devServer.d.ts.map +1 -1
- package/lib/typescript/commonjs/utils/devServer.web.d.ts +2 -0
- package/lib/typescript/commonjs/utils/devServer.web.d.ts.map +1 -0
- package/lib/typescript/commonjs/utils/domRuntime.d.ts +27 -0
- package/lib/typescript/commonjs/utils/domRuntime.d.ts.map +1 -0
- package/lib/typescript/commonjs/utils/expoRouterModule.d.ts +3 -0
- package/lib/typescript/commonjs/utils/expoRouterModule.d.ts.map +1 -0
- package/lib/typescript/commonjs/utils/expoRouterModule.web.d.ts +3 -0
- package/lib/typescript/commonjs/utils/expoRouterModule.web.d.ts.map +1 -0
- package/lib/typescript/commonjs/utils/getSafeAreaInsets.web.d.ts +8 -0
- package/lib/typescript/commonjs/utils/getSafeAreaInsets.web.d.ts.map +1 -0
- package/lib/typescript/commonjs/utils/index.d.ts +5 -0
- package/lib/typescript/commonjs/utils/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/utils/loadToolModule.d.ts +3 -0
- package/lib/typescript/commonjs/utils/loadToolModule.d.ts.map +1 -0
- package/lib/typescript/commonjs/utils/loadToolModule.web.d.ts +2 -0
- package/lib/typescript/commonjs/utils/loadToolModule.web.d.ts.map +1 -0
- package/lib/typescript/commonjs/utils/modalStorage.d.ts +21 -0
- package/lib/typescript/commonjs/utils/modalStorage.d.ts.map +1 -0
- package/lib/typescript/commonjs/utils/nativeWeb.d.ts +22 -0
- package/lib/typescript/commonjs/utils/nativeWeb.d.ts.map +1 -0
- package/lib/typescript/commonjs/utils/persistentStorage.web.d.ts +6 -0
- package/lib/typescript/commonjs/utils/persistentStorage.web.d.ts.map +1 -0
- package/lib/typescript/commonjs/utils/reloadApp.d.ts +7 -25
- package/lib/typescript/commonjs/utils/reloadApp.d.ts.map +1 -1
- package/lib/typescript/commonjs/utils/reloadPlatform.d.ts +8 -0
- package/lib/typescript/commonjs/utils/reloadPlatform.d.ts.map +1 -0
- package/lib/typescript/commonjs/utils/reloadPlatform.web.d.ts +4 -0
- package/lib/typescript/commonjs/utils/reloadPlatform.web.d.ts.map +1 -0
- package/lib/typescript/commonjs/utils/safeExpoRouter.d.ts.map +1 -1
- package/lib/typescript/commonjs/utils/safeExpoRouter.web.d.ts +43 -0
- package/lib/typescript/commonjs/utils/safeExpoRouter.web.d.ts.map +1 -0
- package/lib/typescript/commonjs/utils/toolModules.d.ts +5 -0
- package/lib/typescript/commonjs/utils/toolModules.d.ts.map +1 -0
- package/lib/typescript/module/JsModal.d.ts.map +1 -1
- package/lib/typescript/module/JsModal.web.d.ts +7 -18
- package/lib/typescript/module/JsModal.web.d.ts.map +1 -1
- package/lib/typescript/module/clipboard/clipboard-impl.web.d.ts +5 -0
- package/lib/typescript/module/clipboard/clipboard-impl.web.d.ts.map +1 -0
- package/lib/typescript/module/dataViewer/tree/TreeDiffViewer.d.ts.map +1 -1
- package/lib/typescript/module/hooks/safe-area-impl.d.ts +1 -1
- package/lib/typescript/module/hooks/useSafeAreaInsets.web.d.ts +6 -0
- package/lib/typescript/module/hooks/useSafeAreaInsets.web.d.ts.map +1 -0
- package/lib/typescript/module/icons/index.d.ts +1 -0
- package/lib/typescript/module/icons/index.d.ts.map +1 -1
- package/lib/typescript/module/index.d.ts +2 -0
- package/lib/typescript/module/index.d.ts.map +1 -1
- package/lib/typescript/module/license/AccountSetup.d.ts.map +1 -1
- package/lib/typescript/module/license/AccountSetup.web.d.ts +1 -1
- package/lib/typescript/module/license/AccountSetup.web.d.ts.map +1 -1
- package/lib/typescript/module/license/AccountSetupContent.d.ts +11 -0
- package/lib/typescript/module/license/AccountSetupContent.d.ts.map +1 -0
- package/lib/typescript/module/license/FreeAccountPrompt.d.ts +3 -15
- package/lib/typescript/module/license/FreeAccountPrompt.d.ts.map +1 -1
- package/lib/typescript/module/license/LicenseEntryModal.d.ts.map +1 -1
- package/lib/typescript/module/license/accountRuntime.d.ts +2 -0
- package/lib/typescript/module/license/accountRuntime.d.ts.map +1 -0
- package/lib/typescript/module/license/accountRuntime.web.d.ts +2 -0
- package/lib/typescript/module/license/accountRuntime.web.d.ts.map +1 -0
- package/lib/typescript/module/license/licenseModule.d.ts +3 -1
- package/lib/typescript/module/license/licenseModule.d.ts.map +1 -1
- package/lib/typescript/module/stores/ignoredPatternsCore.d.ts +5 -1
- package/lib/typescript/module/stores/ignoredPatternsCore.d.ts.map +1 -1
- package/lib/typescript/module/stores/ignoredPatternsStore.d.ts +1 -59
- package/lib/typescript/module/stores/ignoredPatternsStore.d.ts.map +1 -1
- package/lib/typescript/module/stores/ignoredPatternsStore.shared.d.ts +60 -0
- package/lib/typescript/module/stores/ignoredPatternsStore.shared.d.ts.map +1 -0
- package/lib/typescript/module/stores/ignoredPatternsStore.web.d.ts +1 -71
- package/lib/typescript/module/stores/ignoredPatternsStore.web.d.ts.map +1 -1
- package/lib/typescript/module/ui/floating/FloatingTool.web.d.ts.map +1 -1
- package/lib/typescript/module/ui/night/primitives.d.ts.map +1 -1
- package/lib/typescript/module/ui/otto/ottoEngine.d.ts +1 -1
- package/lib/typescript/module/utils/browserAsyncStorage.d.ts +25 -0
- package/lib/typescript/module/utils/browserAsyncStorage.d.ts.map +1 -0
- package/lib/typescript/module/utils/browserNavigation.d.ts +31 -0
- package/lib/typescript/module/utils/browserNavigation.d.ts.map +1 -0
- package/lib/typescript/module/utils/devServer.d.ts.map +1 -1
- package/lib/typescript/module/utils/devServer.web.d.ts +2 -0
- package/lib/typescript/module/utils/devServer.web.d.ts.map +1 -0
- package/lib/typescript/module/utils/domRuntime.d.ts +27 -0
- package/lib/typescript/module/utils/domRuntime.d.ts.map +1 -0
- package/lib/typescript/module/utils/expoRouterModule.d.ts +3 -0
- package/lib/typescript/module/utils/expoRouterModule.d.ts.map +1 -0
- package/lib/typescript/module/utils/expoRouterModule.web.d.ts +3 -0
- package/lib/typescript/module/utils/expoRouterModule.web.d.ts.map +1 -0
- package/lib/typescript/module/utils/getSafeAreaInsets.web.d.ts +8 -0
- package/lib/typescript/module/utils/getSafeAreaInsets.web.d.ts.map +1 -0
- package/lib/typescript/module/utils/index.d.ts +5 -0
- package/lib/typescript/module/utils/index.d.ts.map +1 -1
- package/lib/typescript/module/utils/loadToolModule.d.ts +3 -0
- package/lib/typescript/module/utils/loadToolModule.d.ts.map +1 -0
- package/lib/typescript/module/utils/loadToolModule.web.d.ts +2 -0
- package/lib/typescript/module/utils/loadToolModule.web.d.ts.map +1 -0
- package/lib/typescript/module/utils/modalStorage.d.ts +21 -0
- package/lib/typescript/module/utils/modalStorage.d.ts.map +1 -0
- package/lib/typescript/module/utils/nativeWeb.d.ts +22 -0
- package/lib/typescript/module/utils/nativeWeb.d.ts.map +1 -0
- package/lib/typescript/module/utils/persistentStorage.web.d.ts +6 -0
- package/lib/typescript/module/utils/persistentStorage.web.d.ts.map +1 -0
- package/lib/typescript/module/utils/reloadApp.d.ts +7 -25
- package/lib/typescript/module/utils/reloadApp.d.ts.map +1 -1
- package/lib/typescript/module/utils/reloadPlatform.d.ts +8 -0
- package/lib/typescript/module/utils/reloadPlatform.d.ts.map +1 -0
- package/lib/typescript/module/utils/reloadPlatform.web.d.ts +4 -0
- package/lib/typescript/module/utils/reloadPlatform.web.d.ts.map +1 -0
- package/lib/typescript/module/utils/safeExpoRouter.d.ts.map +1 -1
- package/lib/typescript/module/utils/safeExpoRouter.web.d.ts +43 -0
- package/lib/typescript/module/utils/safeExpoRouter.web.d.ts.map +1 -0
- package/lib/typescript/module/utils/toolModules.d.ts +5 -0
- package/lib/typescript/module/utils/toolModules.d.ts.map +1 -0
- package/lib/web/asyncStorage.mjs +2 -0
- package/lib/web/chunks/chunk-2MHKRRQW.mjs +8 -0
- package/lib/web/chunks/chunk-2Q3SDPH2.mjs +14 -0
- package/lib/web/chunks/chunk-34YQ42KI.mjs +2 -0
- package/lib/web/chunks/chunk-3NNNCQYP.mjs +14 -0
- package/lib/web/chunks/chunk-3UTMGIUG.mjs +2 -0
- package/lib/web/chunks/chunk-46CXXOQB.mjs +2 -0
- package/lib/web/chunks/chunk-475BSDCB.mjs +2 -0
- package/lib/web/chunks/chunk-53J2FMUD.mjs +2 -0
- package/lib/web/chunks/chunk-552W4COI.mjs +2 -0
- package/lib/web/chunks/chunk-56TTTMX4.mjs +6145 -0
- package/lib/web/chunks/chunk-5LOQZINQ.mjs +14 -0
- package/lib/web/chunks/chunk-5NOIO6ZM.mjs +16 -0
- package/lib/web/chunks/chunk-5NZOQR6Q.mjs +2 -0
- package/lib/web/chunks/chunk-6CCRCSA2.mjs +2 -0
- package/lib/web/chunks/chunk-6Q52HRBL.mjs +2 -0
- package/lib/web/chunks/chunk-6TEDFSNM.mjs +655 -0
- package/lib/web/chunks/chunk-7BMRSMHN.mjs +2 -0
- package/lib/web/chunks/chunk-A2SOFE47.mjs +24 -0
- package/lib/web/chunks/chunk-A7KJCK4R.mjs +14 -0
- package/lib/web/chunks/chunk-AEXGGXS7.mjs +2 -0
- package/lib/web/chunks/chunk-AGD7ZT6O.mjs +15 -0
- package/lib/web/chunks/chunk-AIEOQWNG.mjs +2 -0
- package/lib/web/chunks/chunk-ASTM35HG.mjs +16 -0
- package/lib/web/chunks/chunk-AZBMFPMX.mjs +1421 -0
- package/lib/web/chunks/chunk-B2V2UDCU.mjs +16 -0
- package/lib/web/chunks/chunk-BFGKGTAC.mjs +2 -0
- package/lib/web/chunks/chunk-BHW6AFO6.mjs +2 -0
- package/lib/web/chunks/chunk-BWRW3NJ2.mjs +16 -0
- package/lib/web/chunks/chunk-CBM2IZAK.mjs +2 -0
- package/lib/web/chunks/chunk-CDLCFF44.mjs +2 -0
- package/lib/web/chunks/chunk-CE5U3CSQ.mjs +2 -0
- package/lib/web/chunks/chunk-CI5CO7FQ.mjs +2 -0
- package/lib/web/chunks/chunk-CIB4U2YK.mjs +2 -0
- package/lib/web/chunks/chunk-CLLTZQGD.mjs +596 -0
- package/lib/web/chunks/chunk-D5HQLRFW.mjs +655 -0
- package/lib/web/chunks/chunk-DZDTNXXK.mjs +2 -0
- package/lib/web/chunks/chunk-FDOZ6YSS.mjs +2 -0
- package/lib/web/chunks/chunk-FMEWNGQO.mjs +2 -0
- package/lib/web/chunks/chunk-G4DH7GMT.mjs +2 -0
- package/lib/web/chunks/chunk-GBUZCZE4.mjs +2 -0
- package/lib/web/chunks/chunk-GF5C5DVX.mjs +2 -0
- package/lib/web/chunks/chunk-GLMS5ZLJ.mjs +445 -0
- package/lib/web/chunks/chunk-GNGMIA7V.mjs +2 -0
- package/lib/web/chunks/chunk-GTYIS7H7.mjs +15 -0
- package/lib/web/chunks/chunk-HJ36IONA.mjs +15 -0
- package/lib/web/chunks/chunk-HXPTZMAZ.mjs +2 -0
- package/lib/web/chunks/chunk-I27M4JCS.mjs +2 -0
- package/lib/web/chunks/chunk-IVCT27JB.mjs +2 -0
- package/lib/web/chunks/chunk-JG4QSK5B.mjs +2 -0
- package/lib/web/chunks/chunk-JR7BJW6B.mjs +389 -0
- package/lib/web/chunks/chunk-K46ZJUXJ.mjs +90 -0
- package/lib/web/chunks/chunk-K4LXMO4D.mjs +2 -0
- package/lib/web/chunks/chunk-K7CGIEFU.mjs +2 -0
- package/lib/web/chunks/chunk-KBTYK5YE.mjs +662 -0
- package/lib/web/chunks/chunk-KHP6CSSM.mjs +2 -0
- package/lib/web/chunks/chunk-KRDRIW7T.mjs +14 -0
- package/lib/web/chunks/chunk-L2DTKDER.mjs +2 -0
- package/lib/web/chunks/chunk-LFDFDGHY.mjs +655 -0
- package/lib/web/chunks/chunk-LZ7FZZ7R.mjs +2 -0
- package/lib/web/chunks/chunk-MAIUUK4E.mjs +2 -0
- package/lib/web/chunks/chunk-MKJKS3IG.mjs +275 -0
- package/lib/web/chunks/chunk-MRQKVLXG.mjs +2 -0
- package/lib/web/chunks/chunk-NK3OISOL.mjs +14 -0
- package/lib/web/chunks/chunk-NLJDDIXW.mjs +2 -0
- package/lib/web/chunks/chunk-OENR3XFI.mjs +11 -0
- package/lib/web/chunks/chunk-OZB3VKZE.mjs +2 -0
- package/lib/web/chunks/chunk-P64PFJT3.mjs +17618 -0
- package/lib/web/chunks/chunk-PACPGYH7.mjs +2 -0
- package/lib/web/chunks/chunk-PART6HOE.mjs +14 -0
- package/lib/web/chunks/chunk-PMRXUQRH.mjs +2 -0
- package/lib/web/chunks/chunk-PTK5FO6C.mjs +2 -0
- package/lib/web/chunks/chunk-PZ45TQ55.mjs +14 -0
- package/lib/web/chunks/chunk-Q5LN7GET.mjs +17624 -0
- package/lib/web/chunks/chunk-QCD6T6L4.mjs +297 -0
- package/lib/web/chunks/chunk-QD5EUANU.mjs +2 -0
- package/lib/web/chunks/chunk-QJTECJCO.mjs +2 -0
- package/lib/web/chunks/chunk-QPIZURPZ.mjs +2 -0
- package/lib/web/chunks/chunk-QPY45R5F.mjs +274 -0
- package/lib/web/chunks/chunk-R2SGZIG5.mjs +2 -0
- package/lib/web/chunks/chunk-S3GYQYVJ.mjs +16 -0
- package/lib/web/chunks/chunk-SCCXVTDM.mjs +2 -0
- package/lib/web/chunks/chunk-SHJHD646.mjs +2 -0
- package/lib/web/chunks/chunk-TCRVZ55E.mjs +2 -0
- package/lib/web/chunks/chunk-TJ6ZVV2L.mjs +15 -0
- package/lib/web/chunks/chunk-TPSY4RC3.mjs +14 -0
- package/lib/web/chunks/chunk-U5KNX5O6.mjs +17624 -0
- package/lib/web/chunks/chunk-UCKELQSM.mjs +2 -0
- package/lib/web/chunks/chunk-UGGCYHRH.mjs +15 -0
- package/lib/web/chunks/chunk-UNYQJZET.mjs +16 -0
- package/lib/web/chunks/chunk-VE72SWLV.mjs +15 -0
- package/lib/web/chunks/chunk-VKONO6MI.mjs +2 -0
- package/lib/web/chunks/chunk-W4BGMPJO.mjs +2 -0
- package/lib/web/chunks/chunk-WHNEEKLR.mjs +2 -0
- package/lib/web/chunks/chunk-WLGUP3KY.mjs +16 -0
- package/lib/web/chunks/chunk-WY7D4WBZ.mjs +2 -0
- package/lib/web/chunks/chunk-XRNB2MHO.mjs +107 -0
- package/lib/web/chunks/chunk-XXTIAXQY.mjs +2 -0
- package/lib/web/chunks/chunk-XYUAUO57.mjs +2 -0
- package/lib/web/chunks/chunk-YG6DIKQD.mjs +2 -0
- package/lib/web/chunks/chunk-YIZFMU66.mjs +2 -0
- package/lib/web/chunks/chunk-YOGAPOGC.mjs +2 -0
- package/lib/web/chunks/chunk-Z7373DS5.mjs +2 -0
- package/lib/web/chunks/chunk-Z76GRN66.mjs +17627 -0
- package/lib/web/chunks/persistentStorage.web-4FBAOYJ4.mjs +12 -0
- package/lib/web/chunks/persistentStorage.web-7W3Y6Q24.mjs +12 -0
- package/lib/web/chunks/persistentStorage.web-GOWNFMVT.mjs +2 -0
- package/lib/web/chunks/persistentStorage.web-RF47FXIK.mjs +12 -0
- package/lib/web/colors.mjs +2 -0
- package/lib/web/dataViewer.mjs +3 -0
- package/lib/web/floating.mjs +2 -0
- package/lib/web/history.mjs +2 -0
- package/lib/web/hooks.mjs +2 -0
- package/lib/web/index.mjs +15 -0
- package/lib/web/native.mjs +2 -0
- package/lib/web/ui.mjs +2 -0
- package/lib/web/utils.mjs +2 -0
- package/package.json +118 -36
|
@@ -0,0 +1,389 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
// src/storage/devToolsStorageKeys.ts
|
|
4
|
+
var devToolsStorageKeys = {
|
|
5
|
+
/**
|
|
6
|
+
* Base dev tools key - all dev tool storage keys start with this
|
|
7
|
+
*/
|
|
8
|
+
base: "@react_buoy",
|
|
9
|
+
/**
|
|
10
|
+
* Bubble-related storage keys
|
|
11
|
+
*/
|
|
12
|
+
bubble: {
|
|
13
|
+
root: () => `${devToolsStorageKeys.base}_bubble`,
|
|
14
|
+
settings: () => `${devToolsStorageKeys.bubble.root()}_settings`,
|
|
15
|
+
userPreferences: () => `${devToolsStorageKeys.bubble.root()}_user_preferences`,
|
|
16
|
+
position: () => `${devToolsStorageKeys.bubble.root()}_position`
|
|
17
|
+
},
|
|
18
|
+
/**
|
|
19
|
+
* Modal-related storage keys
|
|
20
|
+
*/
|
|
21
|
+
modal: {
|
|
22
|
+
root: () => `${devToolsStorageKeys.base}_modal`,
|
|
23
|
+
state: () => `${devToolsStorageKeys.modal.root()}_state`,
|
|
24
|
+
position: () => `${devToolsStorageKeys.modal.root()}_position`,
|
|
25
|
+
dimensions: () => `${devToolsStorageKeys.modal.root()}_dimensions`,
|
|
26
|
+
hintAcknowledged: () => `${devToolsStorageKeys.modal.root()}_hint_acknowledged`
|
|
27
|
+
},
|
|
28
|
+
/**
|
|
29
|
+
* Namespace factory for third-party custom tools. Keys share the
|
|
30
|
+
* `@react_buoy` prefix, so `isDevToolsStorageKey` filtering (and the Storage
|
|
31
|
+
* tool's internal-key handling) covers custom-tool persistence for free.
|
|
32
|
+
*
|
|
33
|
+
* ```ts
|
|
34
|
+
* const keys = devToolsStorageKeys.custom("feature-flags");
|
|
35
|
+
* keys.modal(); // "@react_buoy_custom_feature-flags_modal"
|
|
36
|
+
* keys.key("overrides"); // "@react_buoy_custom_feature-flags_overrides"
|
|
37
|
+
* ```
|
|
38
|
+
*/
|
|
39
|
+
custom: (toolId) => {
|
|
40
|
+
const root = `${devToolsStorageKeys.base}_custom_${toolId}`;
|
|
41
|
+
return {
|
|
42
|
+
root: () => root,
|
|
43
|
+
/** JsModal `persistenceKey` for this tool's window dimensions. */
|
|
44
|
+
modal: () => `${root}_modal`,
|
|
45
|
+
settings: () => `${root}_settings`,
|
|
46
|
+
/** Arbitrary tool-scoped key. */
|
|
47
|
+
key: (suffix) => `${root}_${suffix}`
|
|
48
|
+
};
|
|
49
|
+
},
|
|
50
|
+
/**
|
|
51
|
+
* Settings-related storage keys
|
|
52
|
+
*/
|
|
53
|
+
settings: {
|
|
54
|
+
root: () => `${devToolsStorageKeys.base}_settings`,
|
|
55
|
+
theme: () => `${devToolsStorageKeys.settings.root()}_theme`,
|
|
56
|
+
preferences: () => `${devToolsStorageKeys.settings.root()}_preferences`,
|
|
57
|
+
wifiEnabled: () => `${devToolsStorageKeys.settings.root()}_wifi_enabled`,
|
|
58
|
+
/** Global settings that apply to all dev tools */
|
|
59
|
+
global: () => `${devToolsStorageKeys.settings.root()}_global`,
|
|
60
|
+
/** Settings modal active tab */
|
|
61
|
+
activeTab: () => `${devToolsStorageKeys.settings.root()}_active_tab`,
|
|
62
|
+
/** Settings modal open state */
|
|
63
|
+
modalOpen: () => `${devToolsStorageKeys.settings.root()}_modal_open`
|
|
64
|
+
},
|
|
65
|
+
/**
|
|
66
|
+
* Dial-related storage keys
|
|
67
|
+
*/
|
|
68
|
+
dial: {
|
|
69
|
+
root: () => `${devToolsStorageKeys.base}_dial`,
|
|
70
|
+
/** Whether dial is open/visible */
|
|
71
|
+
isOpen: () => `${devToolsStorageKeys.dial.root()}_is_open`,
|
|
72
|
+
/** Recency-weighted usage scores used to rank/paginate dial tools */
|
|
73
|
+
usage: () => `${devToolsStorageKeys.dial.root()}_usage`
|
|
74
|
+
},
|
|
75
|
+
/**
|
|
76
|
+
* Clipboard-related storage keys
|
|
77
|
+
*/
|
|
78
|
+
clipboard: {
|
|
79
|
+
root: () => `${devToolsStorageKeys.base}_clipboard`,
|
|
80
|
+
hintAcknowledged: () => `${devToolsStorageKeys.clipboard.root()}_hint_acknowledged`
|
|
81
|
+
},
|
|
82
|
+
/**
|
|
83
|
+
* Environment-related storage keys
|
|
84
|
+
*/
|
|
85
|
+
env: {
|
|
86
|
+
root: () => `${devToolsStorageKeys.base}_env`,
|
|
87
|
+
modal: () => `${devToolsStorageKeys.env.root()}_modal`,
|
|
88
|
+
currentEnv: () => `${devToolsStorageKeys.env.root()}_current`,
|
|
89
|
+
overrides: () => `${devToolsStorageKeys.env.root()}_overrides`
|
|
90
|
+
},
|
|
91
|
+
/**
|
|
92
|
+
* Sentry-related storage keys
|
|
93
|
+
*/
|
|
94
|
+
sentry: {
|
|
95
|
+
root: () => `${devToolsStorageKeys.base}_sentry`,
|
|
96
|
+
modal: () => `${devToolsStorageKeys.sentry.root()}_modal`,
|
|
97
|
+
filters: () => `${devToolsStorageKeys.sentry.root()}_filters`,
|
|
98
|
+
preferences: () => `${devToolsStorageKeys.sentry.root()}_preferences`
|
|
99
|
+
},
|
|
100
|
+
/**
|
|
101
|
+
* Storage browser-related keys
|
|
102
|
+
*/
|
|
103
|
+
storage: {
|
|
104
|
+
root: () => `${devToolsStorageKeys.base}_storage`,
|
|
105
|
+
modal: () => `${devToolsStorageKeys.storage.root()}_modal`,
|
|
106
|
+
eventsModal: () => `${devToolsStorageKeys.storage.root()}_events_modal`,
|
|
107
|
+
filters: () => `${devToolsStorageKeys.storage.root()}_filters`,
|
|
108
|
+
eventFilters: () => `${devToolsStorageKeys.storage.root()}_event_filters`,
|
|
109
|
+
keyFilters: () => `${devToolsStorageKeys.storage.root()}_key_filters`,
|
|
110
|
+
pinnedKeys: () => `${devToolsStorageKeys.storage.root()}_pinned_keys`,
|
|
111
|
+
preferences: () => `${devToolsStorageKeys.storage.root()}_preferences`,
|
|
112
|
+
activeTab: () => `${devToolsStorageKeys.storage.root()}_active_tab`,
|
|
113
|
+
isMonitoring: () => `${devToolsStorageKeys.storage.root()}_is_monitoring`,
|
|
114
|
+
diffViewerMode: () => `${devToolsStorageKeys.storage.root()}_diff_viewer_mode`
|
|
115
|
+
// 'split' | 'tree'
|
|
116
|
+
},
|
|
117
|
+
/**
|
|
118
|
+
* Time Machine storage keys. NOTE: the snapshot VAULT keys
|
|
119
|
+
* (`@react_buoy_time_machine:index` / `:snap:*`) predate this namespace and
|
|
120
|
+
* stay as-is — only preferences live here.
|
|
121
|
+
*/
|
|
122
|
+
timeMachine: {
|
|
123
|
+
root: () => `${devToolsStorageKeys.base}_time_machine`,
|
|
124
|
+
diffViewerMode: () => `${devToolsStorageKeys.timeMachine.root()}_diff_viewer_mode`,
|
|
125
|
+
// 'split' | 'tree'
|
|
126
|
+
/** The restore point the floating restore bar restores on tap (snapshot id). */
|
|
127
|
+
armedPoint: () => `${devToolsStorageKeys.timeMachine.root()}_armed_point`,
|
|
128
|
+
/** "1" when the action bar restores in reload mode (storage, then a JS reload). */
|
|
129
|
+
barReloadMode: () => `${devToolsStorageKeys.timeMachine.root()}_bar_reload_mode`,
|
|
130
|
+
/** Source ids switched OFF in the Sources strip (JSON string array). */
|
|
131
|
+
disabledSources: () => `${devToolsStorageKeys.timeMachine.root()}_disabled_sources`
|
|
132
|
+
},
|
|
133
|
+
/**
|
|
134
|
+
* Scenarios storage keys. The library (saved + draft scenarios) and the
|
|
135
|
+
* active-scenario record live in separate keys deliberately: the active
|
|
136
|
+
* record is written on every run and deactivation, while the library changes
|
|
137
|
+
* rarely, and a single blob would rewrite the whole library each run.
|
|
138
|
+
*/
|
|
139
|
+
scenarios: {
|
|
140
|
+
root: () => `${devToolsStorageKeys.base}_scenarios`,
|
|
141
|
+
modal: () => `${devToolsStorageKeys.scenarios.root()}_modal`,
|
|
142
|
+
library: () => `${devToolsStorageKeys.scenarios.root()}_library`,
|
|
143
|
+
active: () => `${devToolsStorageKeys.scenarios.root()}_active`
|
|
144
|
+
},
|
|
145
|
+
/**
|
|
146
|
+
* React Query-related storage keys
|
|
147
|
+
*/
|
|
148
|
+
reactQuery: {
|
|
149
|
+
root: () => `${devToolsStorageKeys.base}_rq`,
|
|
150
|
+
modal: () => `${devToolsStorageKeys.reactQuery.root()}_modal`,
|
|
151
|
+
browserModal: () => `${devToolsStorageKeys.reactQuery.root()}_browser_modal`,
|
|
152
|
+
mutationModal: () => `${devToolsStorageKeys.reactQuery.root()}_mutation_modal`,
|
|
153
|
+
filters: () => `${devToolsStorageKeys.reactQuery.root()}_filters`,
|
|
154
|
+
ignoredPatterns: () => `${devToolsStorageKeys.reactQuery.root()}_ignored_patterns`,
|
|
155
|
+
includedPatterns: () => `${devToolsStorageKeys.reactQuery.root()}_included_patterns`,
|
|
156
|
+
preferences: () => `${devToolsStorageKeys.reactQuery.root()}_preferences`
|
|
157
|
+
},
|
|
158
|
+
/**
|
|
159
|
+
* Network-related storage keys
|
|
160
|
+
*/
|
|
161
|
+
network: {
|
|
162
|
+
root: () => `${devToolsStorageKeys.base}_network`,
|
|
163
|
+
modal: () => `${devToolsStorageKeys.network.root()}_modal`,
|
|
164
|
+
copyModal: () => `${devToolsStorageKeys.network.root()}_copy_modal`,
|
|
165
|
+
filters: () => `${devToolsStorageKeys.network.root()}_filters`,
|
|
166
|
+
ignoredDomains: () => `${devToolsStorageKeys.network.root()}_ignored_domains`,
|
|
167
|
+
ignoredUrls: () => `${devToolsStorageKeys.network.root()}_ignored_urls`,
|
|
168
|
+
preferences: () => `${devToolsStorageKeys.network.root()}_preferences`,
|
|
169
|
+
copyOptions: () => `${devToolsStorageKeys.network.root()}_copy_options`,
|
|
170
|
+
/**
|
|
171
|
+
* Pinned + saved requests (snapshots, not IDs — request IDs are
|
|
172
|
+
* per-runtime counters and collide across app launches).
|
|
173
|
+
*/
|
|
174
|
+
saved: () => `${devToolsStorageKeys.network.root()}_saved`,
|
|
175
|
+
/**
|
|
176
|
+
* Response-override rules + their master switch.
|
|
177
|
+
*
|
|
178
|
+
* Persisted because a rule has to survive the reload it is usually there to
|
|
179
|
+
* test ("make this endpoint 500, then restart and watch the boot path").
|
|
180
|
+
*/
|
|
181
|
+
overrides: () => `${devToolsStorageKeys.network.root()}_overrides`
|
|
182
|
+
},
|
|
183
|
+
/**
|
|
184
|
+
* Route events-related storage keys
|
|
185
|
+
*/
|
|
186
|
+
routeEvents: {
|
|
187
|
+
root: () => `${devToolsStorageKeys.base}_route_events`,
|
|
188
|
+
modal: () => `${devToolsStorageKeys.routeEvents.root()}_modal`,
|
|
189
|
+
eventFilters: () => `${devToolsStorageKeys.routeEvents.root()}_event_filters`,
|
|
190
|
+
activeTab: () => `${devToolsStorageKeys.routeEvents.root()}_active_tab`,
|
|
191
|
+
isMonitoring: () => `${devToolsStorageKeys.routeEvents.root()}_is_monitoring`,
|
|
192
|
+
detailView: () => `${devToolsStorageKeys.routeEvents.root()}_detail_view`,
|
|
193
|
+
// 'current' | 'diff'
|
|
194
|
+
diffViewerMode: () => `${devToolsStorageKeys.routeEvents.root()}_diff_viewer_mode`
|
|
195
|
+
// 'split' | 'tree'
|
|
196
|
+
},
|
|
197
|
+
/**
|
|
198
|
+
* Highlight updates-related storage keys
|
|
199
|
+
*/
|
|
200
|
+
highlightUpdates: {
|
|
201
|
+
root: () => `${devToolsStorageKeys.base}_highlight_updates`,
|
|
202
|
+
modal: () => `${devToolsStorageKeys.highlightUpdates.root()}_modal`,
|
|
203
|
+
isTracking: () => `${devToolsStorageKeys.highlightUpdates.root()}_is_tracking`,
|
|
204
|
+
filters: () => `${devToolsStorageKeys.highlightUpdates.root()}_filters`,
|
|
205
|
+
settings: () => `${devToolsStorageKeys.highlightUpdates.root()}_settings`,
|
|
206
|
+
/** Copy/export settings */
|
|
207
|
+
copySettings: () => `${devToolsStorageKeys.highlightUpdates.root()}_copy_settings`
|
|
208
|
+
},
|
|
209
|
+
/**
|
|
210
|
+
* Benchmark-related storage keys
|
|
211
|
+
*/
|
|
212
|
+
benchmark: {
|
|
213
|
+
root: () => `${devToolsStorageKeys.base}_benchmark`,
|
|
214
|
+
modal: () => `${devToolsStorageKeys.benchmark.root()}_modal`,
|
|
215
|
+
isRecording: () => `${devToolsStorageKeys.benchmark.root()}_is_recording`,
|
|
216
|
+
activeTab: () => `${devToolsStorageKeys.benchmark.root()}_active_tab`,
|
|
217
|
+
settings: () => `${devToolsStorageKeys.benchmark.root()}_settings`,
|
|
218
|
+
selectedReports: () => `${devToolsStorageKeys.benchmark.root()}_selected_reports`
|
|
219
|
+
},
|
|
220
|
+
/**
|
|
221
|
+
* Debug Borders overlay keys
|
|
222
|
+
*/
|
|
223
|
+
debugBorders: {
|
|
224
|
+
root: () => `${devToolsStorageKeys.base}_debug_borders`,
|
|
225
|
+
/** JsModal `persistenceKey` for the overlay's info window. */
|
|
226
|
+
infoModal: () => `${devToolsStorageKeys.debugBorders.root()}_info_modal`
|
|
227
|
+
},
|
|
228
|
+
/**
|
|
229
|
+
* Unified events-related storage keys
|
|
230
|
+
*/
|
|
231
|
+
events: {
|
|
232
|
+
root: () => `${devToolsStorageKeys.base}_events`,
|
|
233
|
+
/**
|
|
234
|
+
* NOT what the Events tool uses. Its preset passes the literal
|
|
235
|
+
* `"buoy-events-modal"` to JsModal, and three things outside this repo's
|
|
236
|
+
* runtime now pin that string: the website's live tour, its QA script, and
|
|
237
|
+
* the e2e runner's reset. `isDevToolsStorageKey` treats the `buoy-` prefix
|
|
238
|
+
* as internal, so nothing leaks — this is a naming inconsistency, not a
|
|
239
|
+
* bug, and moving the key would cost a coordinated change across four
|
|
240
|
+
* surfaces to buy tidiness. Kept so the shape of this file stays uniform.
|
|
241
|
+
*/
|
|
242
|
+
modal: () => `${devToolsStorageKeys.events.root()}_modal`,
|
|
243
|
+
/** Selected badge/source filters */
|
|
244
|
+
enabledSources: () => `${devToolsStorageKeys.events.root()}_enabled_sources`,
|
|
245
|
+
/** Whether event capturing is active */
|
|
246
|
+
isCapturing: () => `${devToolsStorageKeys.events.root()}_is_capturing`,
|
|
247
|
+
/**
|
|
248
|
+
* When capture was last switched off (ms epoch). Persisted with the
|
|
249
|
+
* capturing flag so a remount/relaunch while paused keeps hiding events
|
|
250
|
+
* captured into the shared store after the ORIGINAL pause moment (a
|
|
251
|
+
* watching dashboard keeps sources alive through the device's pause).
|
|
252
|
+
*/
|
|
253
|
+
pausedAt: () => `${devToolsStorageKeys.events.root()}_paused_at`,
|
|
254
|
+
/** Copy/export settings */
|
|
255
|
+
copySettings: () => `${devToolsStorageKeys.events.root()}_copy_settings`
|
|
256
|
+
},
|
|
257
|
+
/**
|
|
258
|
+
* Desktop/MCP sync identity
|
|
259
|
+
*/
|
|
260
|
+
sync: {
|
|
261
|
+
root: () => `${devToolsStorageKeys.base}_sync`,
|
|
262
|
+
/**
|
|
263
|
+
* The per-install id minted the first time this app dials the broker.
|
|
264
|
+
* It is what makes two devices on the same build register as two
|
|
265
|
+
* devices — see core's deviceIdentity.ts.
|
|
266
|
+
*/
|
|
267
|
+
deviceId: () => `${devToolsStorageKeys.sync.root()}_device_id`
|
|
268
|
+
}
|
|
269
|
+
};
|
|
270
|
+
var LEGACY_DEV_TOOL_PATTERNS = [
|
|
271
|
+
"@devtools",
|
|
272
|
+
"@dev_tools_",
|
|
273
|
+
"@modal_state_",
|
|
274
|
+
// Old modal state keys
|
|
275
|
+
"@react_query_browser_modal",
|
|
276
|
+
"@react_query_modal",
|
|
277
|
+
"@react_query_mutation_modal",
|
|
278
|
+
"@sentry_logs_modal",
|
|
279
|
+
"@floating_rn_better_dev_tools_",
|
|
280
|
+
"@floating_tools_",
|
|
281
|
+
"@apphost_",
|
|
282
|
+
"@bubble_settings_",
|
|
283
|
+
"@env_vars_modal",
|
|
284
|
+
"@storage_modal",
|
|
285
|
+
"@floating_@devtools_",
|
|
286
|
+
// Double @ migration issue
|
|
287
|
+
"dev_last_route"
|
|
288
|
+
// Old key without @ prefix
|
|
289
|
+
];
|
|
290
|
+
function isDevToolsStorageKey(key) {
|
|
291
|
+
if (!key) return false;
|
|
292
|
+
if (key.startsWith(devToolsStorageKeys.base)) {
|
|
293
|
+
return true;
|
|
294
|
+
}
|
|
295
|
+
if (key.startsWith("buoy-")) {
|
|
296
|
+
return true;
|
|
297
|
+
}
|
|
298
|
+
if (key.startsWith("@buoy")) {
|
|
299
|
+
return true;
|
|
300
|
+
}
|
|
301
|
+
for (const pattern of LEGACY_DEV_TOOL_PATTERNS) {
|
|
302
|
+
if (key.startsWith(pattern)) {
|
|
303
|
+
return true;
|
|
304
|
+
}
|
|
305
|
+
}
|
|
306
|
+
return false;
|
|
307
|
+
}
|
|
308
|
+
|
|
309
|
+
// src/utils/persistentStorage.web.ts
|
|
310
|
+
var pending = /* @__PURE__ */ new Map();
|
|
311
|
+
function storage() {
|
|
312
|
+
try {
|
|
313
|
+
return typeof window === "undefined" ? null : window.localStorage;
|
|
314
|
+
} catch {
|
|
315
|
+
return null;
|
|
316
|
+
}
|
|
317
|
+
}
|
|
318
|
+
var persistentStorage = {
|
|
319
|
+
async getItem(key) {
|
|
320
|
+
if (pending.has(key)) return pending.get(key) ?? null;
|
|
321
|
+
try {
|
|
322
|
+
return storage()?.getItem(key) ?? null;
|
|
323
|
+
} catch {
|
|
324
|
+
return null;
|
|
325
|
+
}
|
|
326
|
+
},
|
|
327
|
+
async setItem(key, value) {
|
|
328
|
+
pending.set(key, value);
|
|
329
|
+
try {
|
|
330
|
+
const backend = storage();
|
|
331
|
+
if (backend) {
|
|
332
|
+
backend.setItem(key, value);
|
|
333
|
+
pending.delete(key);
|
|
334
|
+
}
|
|
335
|
+
} catch {
|
|
336
|
+
}
|
|
337
|
+
},
|
|
338
|
+
async removeItem(key) {
|
|
339
|
+
pending.set(key, null);
|
|
340
|
+
try {
|
|
341
|
+
const backend = storage();
|
|
342
|
+
if (backend) {
|
|
343
|
+
backend.removeItem(key);
|
|
344
|
+
pending.delete(key);
|
|
345
|
+
}
|
|
346
|
+
} catch {
|
|
347
|
+
}
|
|
348
|
+
},
|
|
349
|
+
async getAllKeys() {
|
|
350
|
+
const keys = /* @__PURE__ */ new Set();
|
|
351
|
+
try {
|
|
352
|
+
const backend = storage();
|
|
353
|
+
if (backend) for (let i = 0; i < backend.length; i++) {
|
|
354
|
+
const key = backend.key(i);
|
|
355
|
+
if (key?.startsWith(devToolsStorageKeys.base)) keys.add(key);
|
|
356
|
+
}
|
|
357
|
+
} catch {
|
|
358
|
+
}
|
|
359
|
+
for (const [key, value] of pending) {
|
|
360
|
+
if (!key.startsWith(devToolsStorageKeys.base)) continue;
|
|
361
|
+
if (value === null) keys.delete(key);
|
|
362
|
+
else keys.add(key);
|
|
363
|
+
}
|
|
364
|
+
return [...keys];
|
|
365
|
+
},
|
|
366
|
+
async multiGet(keys) {
|
|
367
|
+
return Promise.all(keys.map(async (key) => [key, await persistentStorage.getItem(key)]));
|
|
368
|
+
},
|
|
369
|
+
async multiRemove(keys) {
|
|
370
|
+
await Promise.all(keys.map((key) => persistentStorage.removeItem(key)));
|
|
371
|
+
},
|
|
372
|
+
async clear() {
|
|
373
|
+
await persistentStorage.multiRemove(await persistentStorage.getAllKeys());
|
|
374
|
+
}
|
|
375
|
+
};
|
|
376
|
+
async function isUsingPersistentStorage() {
|
|
377
|
+
return storage() !== null;
|
|
378
|
+
}
|
|
379
|
+
async function getStorageBackendType() {
|
|
380
|
+
return storage() ? "localstorage" : "memory";
|
|
381
|
+
}
|
|
382
|
+
|
|
383
|
+
export {
|
|
384
|
+
devToolsStorageKeys,
|
|
385
|
+
isDevToolsStorageKey,
|
|
386
|
+
persistentStorage,
|
|
387
|
+
isUsingPersistentStorage,
|
|
388
|
+
getStorageBackendType
|
|
389
|
+
};
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import {
|
|
3
|
+
getSafeAreaInsets
|
|
4
|
+
} from "./chunk-A2SOFE47.mjs";
|
|
5
|
+
|
|
6
|
+
// src/hooks/useFilterManager.ts
|
|
7
|
+
import { useState, useCallback } from "react";
|
|
8
|
+
function useFilterManager(initialFilters = /* @__PURE__ */ new Set()) {
|
|
9
|
+
const [filters, setFilters] = useState(initialFilters);
|
|
10
|
+
const [showAddInput, setShowAddInput] = useState(false);
|
|
11
|
+
const [newFilter, setNewFilter] = useState("");
|
|
12
|
+
const addFilter = useCallback((filter) => {
|
|
13
|
+
const trimmedFilter = filter.trim();
|
|
14
|
+
if (trimmedFilter) {
|
|
15
|
+
setFilters((prev) => /* @__PURE__ */ new Set([...prev, trimmedFilter]));
|
|
16
|
+
setNewFilter("");
|
|
17
|
+
setShowAddInput(false);
|
|
18
|
+
}
|
|
19
|
+
}, []);
|
|
20
|
+
const removeFilter = useCallback((filter) => {
|
|
21
|
+
setFilters((prev) => {
|
|
22
|
+
const next = new Set(prev);
|
|
23
|
+
next.delete(filter);
|
|
24
|
+
return next;
|
|
25
|
+
});
|
|
26
|
+
}, []);
|
|
27
|
+
const toggleFilter = useCallback((filter) => {
|
|
28
|
+
setFilters((prev) => {
|
|
29
|
+
const next = new Set(prev);
|
|
30
|
+
if (next.has(filter)) {
|
|
31
|
+
next.delete(filter);
|
|
32
|
+
} else {
|
|
33
|
+
next.add(filter);
|
|
34
|
+
}
|
|
35
|
+
return next;
|
|
36
|
+
});
|
|
37
|
+
}, []);
|
|
38
|
+
const clearFilters = useCallback(() => {
|
|
39
|
+
setFilters(/* @__PURE__ */ new Set());
|
|
40
|
+
setNewFilter("");
|
|
41
|
+
setShowAddInput(false);
|
|
42
|
+
}, []);
|
|
43
|
+
const hasFilter = useCallback(
|
|
44
|
+
(filter) => {
|
|
45
|
+
return filters.has(filter);
|
|
46
|
+
},
|
|
47
|
+
[filters]
|
|
48
|
+
);
|
|
49
|
+
return {
|
|
50
|
+
// State
|
|
51
|
+
filters,
|
|
52
|
+
showAddInput,
|
|
53
|
+
newFilter,
|
|
54
|
+
// Actions
|
|
55
|
+
setNewFilter,
|
|
56
|
+
setShowAddInput,
|
|
57
|
+
addFilter,
|
|
58
|
+
removeFilter,
|
|
59
|
+
toggleFilter,
|
|
60
|
+
clearFilters,
|
|
61
|
+
hasFilter
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
// src/hooks/useSafeAreaInsets.web.ts
|
|
66
|
+
import { useEffect, useState as useState2 } from "react";
|
|
67
|
+
function useSafeAreaInsets(options = {}) {
|
|
68
|
+
const [insets, setInsets] = useState2({ top: 0, bottom: 0, left: 0, right: 0 });
|
|
69
|
+
useEffect(() => {
|
|
70
|
+
const update = () => setInsets(getSafeAreaInsets());
|
|
71
|
+
update();
|
|
72
|
+
window.addEventListener("resize", update);
|
|
73
|
+
window.visualViewport?.addEventListener("resize", update);
|
|
74
|
+
return () => {
|
|
75
|
+
window.removeEventListener("resize", update);
|
|
76
|
+
window.visualViewport?.removeEventListener("resize", update);
|
|
77
|
+
};
|
|
78
|
+
}, []);
|
|
79
|
+
return {
|
|
80
|
+
top: Math.max(insets.top, options.minTop ?? 0),
|
|
81
|
+
bottom: Math.max(insets.bottom, options.minBottom ?? 0),
|
|
82
|
+
left: Math.max(insets.left, options.minLeft ?? 0),
|
|
83
|
+
right: Math.max(insets.right, options.minRight ?? 0)
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
export {
|
|
88
|
+
useFilterManager,
|
|
89
|
+
useSafeAreaInsets
|
|
90
|
+
};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
export*from"react-native-web";import{unstable_createElement as y,NativeModules as v,AccessibilityInfo as w,Animated as A,Appearance as C,AppRegistry as E,AppState as T,BackHandler as k,Clipboard as B,Dimensions as S,Easing as I,I18nManager as L,Keyboard as M,InteractionManager as N,LayoutAnimation as P,Linking as H,NativeEventEmitter as V,PanResponder as D,PixelRatio as O,Platform as R,Share as K,StyleSheet as W,UIManager as z,Vibration as F,ActivityIndicator as j,Button as U,CheckBox as Y,FlatList as _,Image as $,ImageBackground as q,KeyboardAvoidingView as G,Modal as J,Picker as Q,Pressable as X,ProgressBar as Z,RefreshControl as ee,SafeAreaView as te,ScrollView as oe,SectionList as ne,StatusBar as ie,Switch as ae,Text as re,TextInput as se,Touchable as de,TouchableHighlight as le,TouchableNativeFeedback as ce,TouchableOpacity as pe,TouchableWithoutFeedback as ue,View as xe,VirtualizedList as me,YellowBox as be,LogBox as fe,DeviceEventEmitter as he,useColorScheme as ge,useLocaleContext as ye,useWindowDimensions as ve}from"react-native-web";import*as c from"react-native-web";var x=c.findNodeHandle,m={alert(a,r,s,d){if(typeof document>"u")return;let e=document.createElement("dialog");e.dataset.buoyRoot="",e.setAttribute("aria-label",a),e.style.cssText="position:fixed;inset:0;margin:auto;width:min(440px,90vw);padding:24px;border:1px solid #475569;border-radius:14px;background:#17212e;color:#f1f5f9;font:14px system-ui;box-shadow:0 20px 80px #0008;z-index:2147483647";let n=document.createElement("h2");if(n.textContent=a,n.style.cssText="font-size:18px;margin:0 0 12px",e.appendChild(n),r){let t=document.createElement("p");t.textContent=r,t.style.cssText="line-height:1.5;white-space:pre-wrap;margin:0 0 20px",e.appendChild(t)}let i=document.createElement("div");i.style.cssText="display:flex;justify-content:flex-end;flex-wrap:wrap;gap:8px";let p=s?.length?s:[{text:"OK"}],l=()=>{e.close?.(),e.remove()};for(let t of p){let o=document.createElement("button");o.type="button",o.textContent=t.text??"OK",o.style.cssText=`padding:9px 14px;border:1px solid #64748b;border-radius:7px;color:white;background:${t.style==="destructive"?"#a52b38":"#283a4d"};cursor:pointer;font:inherit`,o.onclick=()=>{l(),t.onPress?.()},i.appendChild(o)}e.addEventListener("cancel",t=>{t.preventDefault(),d?.cancelable!==!1&&(l(),d?.onDismiss?.())}),e.appendChild(i),document.body.appendChild(e),e.showModal?e.showModal():e.setAttribute("open","")}};export{x as a,m as b,y as c,v as d,w as e,A as f,C as g,E as h,T as i,k as j,B as k,S as l,I as m,L as n,M as o,N as p,P as q,H as r,V as s,D as t,O as u,R as v,K as w,W as x,z as y,F as z,j as A,U as B,Y as C,_ as D,$ as E,q as F,G,J as H,Q as I,X as J,Z as K,ee as L,te as M,oe as N,ne as O,ie as P,ae as Q,re as R,se as S,de as T,le as U,ce as V,pe as W,ue as X,xe as Y,me as Z,be as _,fe as $,he as aa,ge as ba,ye as ca,ve as da};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import{a as d}from"./chunk-PTK5FO6C.mjs";import{useState as g,useCallback as o}from"react";function I(n=new Set){let[r,i]=g(n),[s,l]=g(!1),[m,f]=g(""),u=o(e=>{let a=e.trim();a&&(i(t=>new Set([...t,a])),f(""),l(!1))},[]),c=o(e=>{i(a=>{let t=new Set(a);return t.delete(e),t})},[]),p=o(e=>{i(a=>{let t=new Set(a);return t.has(e)?t.delete(e):t.add(e),t})},[]),S=o(()=>{i(new Set),f(""),l(!1)},[]),w=o(e=>r.has(e),[r]);return{filters:r,showAddInput:s,newFilter:m,setNewFilter:f,setShowAddInput:l,addFilter:u,removeFilter:c,toggleFilter:p,clearFilters:S,hasFilter:w}}import{useEffect as h,useState as v}from"react";function L(n={}){let[r,i]=v({top:0,bottom:0,left:0,right:0});return h(()=>{let s=()=>i(d());return s(),window.addEventListener("resize",s),window.visualViewport?.addEventListener("resize",s),()=>{window.removeEventListener("resize",s),window.visualViewport?.removeEventListener("resize",s)}},[]),{top:Math.max(r.top,n.minTop??0),bottom:Math.max(r.bottom,n.minBottom??0),left:Math.max(r.left,n.minLeft??0),right:Math.max(r.right,n.minRight??0)}}export{I as a,L as b};
|