@buoy-gg/core 7.0.45 → 7.0.47
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/commonjs/floatingMenu/FloatingDevTools.js +1 -1
- package/lib/commonjs/floatingMenu/FloatingDevTools.web.js +1 -1
- package/lib/commonjs/version.js +1 -1
- package/lib/module/floatingMenu/FloatingDevTools.js +1 -1
- package/lib/module/floatingMenu/FloatingDevTools.web.js +1 -1
- package/lib/module/version.js +1 -1
- package/lib/typescript/commonjs/version.d.ts +1 -1
- package/lib/typescript/module/version.d.ts +1 -1
- package/lib/web/index.mjs +2 -2
- package/package.json +5 -5
- package/lib/web/chunks/chunk-5NZOQR6Q.mjs +0 -1
- package/lib/web/chunks/chunk-CGDSLLZF.mjs +0 -1
- package/lib/web/chunks/chunk-DCJDUSNR.mjs +0 -1
- package/lib/web/chunks/chunk-IDSHFS6G.mjs +0 -1
- package/lib/web/chunks/chunk-JOAMJGCS.mjs +0 -1
- package/lib/web/chunks/chunk-KYKZ2N52.mjs +0 -1
- package/lib/web/chunks/chunk-NGM7JGGS.mjs +0 -1
- package/lib/web/chunks/chunk-Z3XWDDIO.mjs +0 -1
- package/lib/web/chunks/chunk-ZTGQ6TTY.mjs +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.FloatingDevTools=void 0;var _sharedUi=require("@buoy-gg/shared-ui");var _react=_interopRequireWildcard(require("react"));var _reactNative=require("react-native");var _AppHost=require("./AppHost");var _FloatingMenu=require("./FloatingMenu.js");var _ToolOpenerBridge=require("./ToolOpenerBridge.js");var _autoDiscoverPresets=require("./autoDiscoverPresets.js");var _installPing=require("../telemetry/installPing.js");var _Buoy=require("../Buoy.js");var _AppIcon=require("./AppIcon");var _DevToolsVisibilityContext=require("./DevToolsVisibilityContext.js");var _optionalRequire=require("./optionalRequire.js");var _MinimizedToolsContext=require("./MinimizedToolsContext.js");var _defaultConfig=require("./defaultConfig.js");var _DefaultConfigContext=require("./DefaultConfigContext.js");var _license=require("@buoy-gg/license");var _autoExternalSync=require("./autoExternalSync.js");var _externalSyncGate=require("./externalSyncGate.js");var _jsxRuntime=require("react/jsx-runtime");function _interopRequireWildcard(n,s){if("function"==typeof WeakMap)var l=new WeakMap,v=new WeakMap;return(_interopRequireWildcard=function(r,x){if(!x&&r&&r.__esModule)return r;var u,i,c={__proto__:null,default:r};if(null===r||"object"!=typeof r&&"function"!=typeof r)return c;if(u=x?v:l){if(u.has(r))return u.get(r);u.set(r,c)}for(const o in r)"default"!==o&&{}.hasOwnProperty.call(r,o)&&((i=(u=Object.defineProperty)&&Object.getOwnPropertyDescriptor(r,o))&&(i.get||i.set)?u(c,o,i):c[o]=r[o]);return c})(n,s)}let warnedReleaseTransport=null;function warnReleaseTransportOnce(n){if(!n||n===warnedReleaseTransport)return;warnedReleaseTransport=n;console.warn(n)}const FloatingDevTools=({apps:n,requiredEnvVars:s,requiredStorageKeys:l,askBuoy:v,children:r,disableHints:x=false,defaultFloatingTools:u,defaultDialTools:i,requireLicense:c,licenseKey:o,zustandStores:m,environment:B,externalSync:b=true,headless:
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.FloatingDevTools=void 0;var _sharedUi=require("@buoy-gg/shared-ui");var _react=_interopRequireWildcard(require("react"));var _reactNative=require("react-native");var _AppHost=require("./AppHost");var _FloatingMenu=require("./FloatingMenu.js");var _ToolOpenerBridge=require("./ToolOpenerBridge.js");var _autoDiscoverPresets=require("./autoDiscoverPresets.js");var _installPing=require("../telemetry/installPing.js");var _Buoy=require("../Buoy.js");var _AppIcon=require("./AppIcon");var _DevToolsVisibilityContext=require("./DevToolsVisibilityContext.js");var _optionalRequire=require("./optionalRequire.js");var _MinimizedToolsContext=require("./MinimizedToolsContext.js");var _defaultConfig=require("./defaultConfig.js");var _DefaultConfigContext=require("./DefaultConfigContext.js");var _license=require("@buoy-gg/license");var _autoExternalSync=require("./autoExternalSync.js");var _externalSyncGate=require("./externalSyncGate.js");var _jsxRuntime=require("react/jsx-runtime");function _interopRequireWildcard(n,s){if("function"==typeof WeakMap)var l=new WeakMap,v=new WeakMap;return(_interopRequireWildcard=function(r,x){if(!x&&r&&r.__esModule)return r;var u,i,c={__proto__:null,default:r};if(null===r||"object"!=typeof r&&"function"!=typeof r)return c;if(u=x?v:l){if(u.has(r))return u.get(r);u.set(r,c)}for(const o in r)"default"!==o&&{}.hasOwnProperty.call(r,o)&&((i=(u=Object.defineProperty)&&Object.getOwnPropertyDescriptor(r,o))&&(i.get||i.set)?u(c,o,i):c[o]=r[o]);return c})(n,s)}let warnedReleaseTransport=null;function warnReleaseTransportOnce(n){if(!n||n===warnedReleaseTransport)return;warnedReleaseTransport=n;console.warn(n)}const FloatingDevTools=({apps:n,requiredEnvVars:s,requiredStorageKeys:l,askBuoy:v,children:r,disableHints:x=false,defaultFloatingTools:u,defaultDialTools:i,requireLicense:c,licenseKey:o,zustandStores:m,environment:B,externalSync:b=true,headless:D=false,...P})=>{const W=B??(0,_sharedUi.normalizeEnvironment)(process.env.NODE_ENV??"dev");const{isLicensed:j}=(0,_license.useProAccess)();const{licenseKey:q,isInitialized:C,tier:h,access:a}=(0,_license.useLicense)();const U=o===void 0||(0,_license.sameLicenseKey)(o,q);const O=U&&a.status==="admitted";(0,_react.useEffect)(()=>{if(!C||a.status==="initializing")return;void(0,_installPing.sendInstallPing)({tier:a.status==="admitted"?h:"locked",enabled:(0,_Buoy.isTelemetryEnabled)()})},[C,a.status,h]);(0,_react.useEffect)(()=>{void _license.LicenseManager.configure(o).catch(()=>{})},[o]);(0,_react.useEffect)(()=>{if(O)(0,_sharedUi.startSettingsSync)()},[O]);(0,_react.useEffect)(()=>{if(!m||a.status==="locked")return;try{const{watchStores:e}=require("@buoy-gg/zustand");return e(m)}catch(e){(0,_optionalRequire.reportOptionalRequireError)("@buoy-gg/zustand",e)}},[m,a.status]);const N=(0,_react.useMemo)(()=>{if(i){return(0,_defaultConfig.validateDialConfig)(i)}return i},[i]);const _=(0,_react.useMemo)(()=>{const e=[];if(s&&s.length>0){try{const{createEnvTool:t,createEnvVarConfig:A}=require("@buoy-gg/env");e.push(t({requiredEnvVars:A(s)}))}catch(t){(0,_optionalRequire.reportOptionalRequireError)("@buoy-gg/env",t)}}if(l&&l.length>0){try{const{createStorageTool:t}=require("@buoy-gg/storage");e.push(t({requiredStorageKeys:l}))}catch(t){(0,_optionalRequire.reportOptionalRequireError)("@buoy-gg/storage",t)}}if(v){try{const{createAskBuoyTool:t}=require("@buoy-gg/ask-buoy");e.push(t(v))}catch(t){(0,_optionalRequire.reportOptionalRequireError)("@buoy-gg/ask-buoy",t)}}return e},[s,l,v]);const E=(0,_react.useMemo)(()=>{if(!n&&_.length===0)return void 0;return[...n||[],..._]},[n,_]);const f=(0,_react.useMemo)(()=>E?(0,_autoDiscoverPresets.autoDiscoverPresetsWithCustom)(E):(0,_autoDiscoverPresets.autoDiscoverPresets)(),[E]);const R=(0,_react.useMemo)(()=>f.filter(e=>e.sync),[f]);const S=(0,_react.useMemo)(()=>{try{const{DebugBordersStandaloneOverlay:e}=require("@buoy-gg/debug-borders");return e}catch(e){(0,_optionalRequire.reportOptionalRequireError)("@buoy-gg/debug-borders",e);return null}},[]);const I=(0,_react.useMemo)(()=>{try{const{HighlightUpdatesOverlay:e}=require("@buoy-gg/highlight-updates");return e}catch(e){(0,_optionalRequire.reportOptionalRequireError)("@buoy-gg/highlight-updates",e);return null}},[]);const k=(0,_react.useMemo)(()=>{try{const{ImageOverlayStandalone:e}=require("@buoy-gg/image-overlay");return e}catch(e){(0,_optionalRequire.reportOptionalRequireError)("@buoy-gg/image-overlay",e);return null}},[]);const F=(0,_react.useMemo)(()=>{try{const{PerfMonitorOverlay:e}=require("@buoy-gg/perf-monitor");return e}catch(e){(0,_optionalRequire.reportOptionalRequireError)("@buoy-gg/perf-monitor",e);return null}},[]);const w=(0,_react.useMemo)(()=>{try{const{JsTopHudOverlay:e}=require("@buoy-gg/js-top");return e}catch(e){(0,_optionalRequire.reportOptionalRequireError)("@buoy-gg/js-top",e);return null}},[]);const g=(0,_react.useMemo)(()=>{try{const{RouteTracker:e}=require("@buoy-gg/route-events");return e}catch(e){(0,_optionalRequire.reportOptionalRequireError)("@buoy-gg/route-events",e);return null}},[]);const y=(0,_react.useMemo)(()=>{try{const{ReactQueryTracker:e}=require("@buoy-gg/react-query");return e}catch(e){(0,_optionalRequire.reportOptionalRequireError)("@buoy-gg/react-query",e);return null}},[]);const z=(0,_react.useMemo)(()=>{try{const{ImpersonateOverlay:e}=require("@buoy-gg/impersonate");return e}catch(e){(0,_optionalRequire.reportOptionalRequireError)("@buoy-gg/impersonate",e);return null}},[]);const H=(0,_react.useMemo)(()=>{try{const{ScenariosOverlay:e}=require("@buoy-gg/scenarios");return e}catch(e){(0,_optionalRequire.reportOptionalRequireError)("@buoy-gg/scenarios",e);return null}},[]);const p=(0,_react.useMemo)(()=>{try{const{ReduxAutoInstrument:e}=require("@buoy-gg/redux");return e??null}catch(e){(0,_optionalRequire.reportOptionalRequireError)("@buoy-gg/redux",e);return null}},[]);const d=(0,_react.useMemo)(()=>{try{const{ConsoleRoot:e}=require("@buoy-gg/console");return e??null}catch(e){(0,_optionalRequire.reportOptionalRequireError)("@buoy-gg/console",e);return null}},[]);const G=(0,_react.useCallback)(e=>{const t=f.find(A=>A.id===e);if(!t)return null;return(0,_AppIcon.renderAppIcon)(t.icon,{slot:"dial",size:20,color:t.color})},[f]);const M=typeof __DEV__!=="undefined"&&__DEV__;if(!M&&!j){return null}const L=(0,_externalSyncGate.shouldMountExternalSync)({isDevelopment:M,isLicensed:j,externalSync:b,isAvailable:(0,_autoExternalSync.isExternalSyncAvailable)()});const T=(0,_externalSyncGate.externalSyncOptions)(b);if(!M&&T?.enableInRelease){warnReleaseTransportOnce((0,_externalSyncGate.releaseTransportProblem)(T.socketURL,T))}const V=(0,_jsxRuntime.jsx)(_autoExternalSync.ToolRegistryPublisher,{requiredEnvVars:s,customApps:R});if(!O){return(0,_jsxRuntime.jsxs)(_jsxRuntime.Fragment,{children:[a.status==="initializing"&&(0,_jsxRuntime.jsxs)(_jsxRuntime.Fragment,{children:[p&&(0,_jsxRuntime.jsx)(p,{}),d&&(0,_jsxRuntime.jsx)(d,{}),g&&(0,_jsxRuntime.jsx)(g,{}),y&&(0,_jsxRuntime.jsx)(y,{})]}),!D&&(0,_jsxRuntime.jsx)(_sharedUi.AccountSetup,{})]})}if(D){return(0,_jsxRuntime.jsxs)(_jsxRuntime.Fragment,{children:[p&&(0,_jsxRuntime.jsx)(p,{}),d&&(0,_jsxRuntime.jsx)(d,{}),g&&(0,_jsxRuntime.jsx)(g,{}),y&&(0,_jsxRuntime.jsx)(y,{}),V,L&&(0,_jsxRuntime.jsx)(_autoExternalSync.AutoExternalSync,{options:(0,_externalSyncGate.externalSyncOptions)(b),requiredEnvVars:s,isPro:j,tier:h,licenseKey:q,customApps:R})]})}return(0,_jsxRuntime.jsx)(_DefaultConfigContext.DefaultConfigProvider,{defaultFloatingTools:u,defaultDialTools:N,children:(0,_jsxRuntime.jsx)(_sharedUi.HintsProvider,{disableHints:x,children:(0,_jsxRuntime.jsx)(_reactNative.View,{style:styles.container,pointerEvents:"box-none",__buoyDevToolsRoot:true,children:(0,_jsxRuntime.jsxs)(_DevToolsVisibilityContext.DevToolsVisibilityProvider,{children:[k&&(0,_jsxRuntime.jsx)(_reactNative.View,{style:_reactNative.StyleSheet.absoluteFill,pointerEvents:"box-none",collapsable:false,children:(0,_jsxRuntime.jsx)(k,{})}),(0,_jsxRuntime.jsx)(_AppHost.AppHostProvider,{children:(0,_jsxRuntime.jsxs)(_MinimizedToolsContext.MinimizedToolsProvider,{getToolIcon:G,children:[(0,_jsxRuntime.jsx)(_FloatingMenu.FloatingMenu,{...P,apps:f,environment:W}),P.hidden?null:(0,_jsxRuntime.jsxs)(_jsxRuntime.Fragment,{children:[(0,_jsxRuntime.jsx)(_AppHost.AppOverlay,{}),(0,_jsxRuntime.jsx)(_sharedUi.FloatingToolHost,{})]}),(0,_jsxRuntime.jsx)(_ToolOpenerBridge.ToolOpenerBridge,{})]})}),r,S&&(0,_jsxRuntime.jsx)(S,{}),I&&(0,_jsxRuntime.jsx)(I,{}),F&&(0,_jsxRuntime.jsx)(F,{}),w&&(0,_jsxRuntime.jsx)(w,{}),z&&(0,_jsxRuntime.jsx)(z,{}),H&&(0,_jsxRuntime.jsx)(H,{}),p&&(0,_jsxRuntime.jsx)(p,{}),d&&(0,_jsxRuntime.jsx)(d,{}),g&&(0,_jsxRuntime.jsx)(g,{}),y&&(0,_jsxRuntime.jsx)(y,{}),V,L&&(0,_jsxRuntime.jsx)(_autoExternalSync.AutoExternalSync,{options:(0,_externalSyncGate.externalSyncOptions)(b),requiredEnvVars:s,isPro:j,tier:h,licenseKey:q,customApps:R})]})})})})};exports.FloatingDevTools=FloatingDevTools;const styles=_reactNative.StyleSheet.create({container:{position:"absolute",top:0,left:0,right:0,bottom:0,zIndex:9999}});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.FloatingDevTools=FloatingDevTools;var _floating=require("@buoy-gg/shared-ui/floating");var _license=require("@buoy-gg/license");var _sharedUi=require("@buoy-gg/shared-ui");var _react=require("react");var _floatingToolsReact=require("@buoy-gg/floating-tools-react");var _autoDiscoverPresetsWeb=require("../utils/autoDiscoverPresets.web.js");var _floatingToolsWeb=require("./floatingTools.web.js");var _DialDevToolsWeb=require("./dial/DialDevTools.web.js");var _dialUsageStore=require("./dial/dialUsageStore.js");var _OnboardingTooltipWeb=require("./dial/OnboardingTooltip.web.js");var _DevToolsSettingsModalWeb=require("./DevToolsSettingsModal.web.js");var _AppHostWeb=require("./AppHost.web.js");var _MinimizedToolsStackWeb=require("./MinimizedToolsStack.web.js");var _createWebTools=require("../utils/createWebTools.js");var _BrowserToolRuntime=require("./BrowserToolRuntime.js");var _releaseOptIn=require("../releaseOptIn.js");var _BuoySignInWeb=require("./BuoySignIn.web.js");var _DevToolsVisibilityContext=require("./DevToolsVisibilityContext.js");var _jsxRuntime=require("react/jsx-runtime");const EMPTY_MODULES={};const MENU_TOOLTIP_KEY="@react_buoy_floating_menu_tooltip_shown";const webSettingsStorage=_sharedUi.persistentStorage;function MenuLauncherIcon({size:t=14,color:l="#20C997"}){const o=Math.max(2,t/4);const
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.FloatingDevTools=FloatingDevTools;var _floating=require("@buoy-gg/shared-ui/floating");var _license=require("@buoy-gg/license");var _sharedUi=require("@buoy-gg/shared-ui");var _react=require("react");var _floatingToolsReact=require("@buoy-gg/floating-tools-react");var _autoDiscoverPresetsWeb=require("../utils/autoDiscoverPresets.web.js");var _floatingToolsWeb=require("./floatingTools.web.js");var _DialDevToolsWeb=require("./dial/DialDevTools.web.js");var _dialUsageStore=require("./dial/dialUsageStore.js");var _OnboardingTooltipWeb=require("./dial/OnboardingTooltip.web.js");var _DevToolsSettingsModalWeb=require("./DevToolsSettingsModal.web.js");var _AppHostWeb=require("./AppHost.web.js");var _MinimizedToolsStackWeb=require("./MinimizedToolsStack.web.js");var _createWebTools=require("../utils/createWebTools.js");var _BrowserToolRuntime=require("./BrowserToolRuntime.js");var _releaseOptIn=require("../releaseOptIn.js");var _BuoySignInWeb=require("./BuoySignIn.web.js");var _DevToolsVisibilityContext=require("./DevToolsVisibilityContext.js");var _jsxRuntime=require("react/jsx-runtime");const EMPTY_MODULES={};const MENU_TOOLTIP_KEY="@react_buoy_floating_menu_tooltip_shown";const webSettingsStorage=_sharedUi.persistentStorage;function MenuLauncherIcon({size:t=14,color:l="#20C997"}){const o=Math.max(2,t/4);const u=Math.max(1,t/16);return(0,_jsxRuntime.jsx)("div",{style:{display:"grid",gridTemplateColumns:`repeat(3, ${o}px)`,gap:u,width:t,height:t,alignContent:"center",justifyContent:"center"},children:Array.from({length:9}).map((d,a)=>(0,_jsxRuntime.jsx)("div",{style:{width:o,height:o,borderRadius:o/2,backgroundColor:l}},a))})}function AdmittedFloatingDevTools(t){return(0,_jsxRuntime.jsx)(_DevToolsVisibilityContext.DevToolsVisibilityProvider,{children:(0,_jsxRuntime.jsx)(_AppHostWeb.AppHostProvider,{children:(0,_jsxRuntime.jsx)(FloatingDevToolsInner,{...t})})})}function FloatingDevToolsInner({environment:t,userRole:l,availableEnvironments:o,onEnvironmentSwitch:u,apps:d,modules:a=EMPTY_MODULES,externalSync:c,requiredEnvVars:W,sentryGetClient:L,disableHints:h=false,headless:D=false}){const[i,b]=(0,_react.useState)(false);const[g,T]=(0,_react.useState)(false);const j=(0,_react.useRef)(false);const p=(0,_AppHostWeb.useAppHost)();const r=(0,_react.useMemo)(()=>(0,_autoDiscoverPresetsWeb.autoDiscoverWithCustom)([...(0,_createWebTools.createWebTools)(a),...d??[]]),[d,a]);const y=(0,_DevToolsVisibilityContext.useDevToolsVisibility)();const O=p.openApps.some(e=>!e.minimized);(0,_react.useEffect)(()=>{y.setDialOpen(i)},[i,y.setDialOpen]);(0,_react.useEffect)(()=>{y.setToolOpen(O||g)},[O,g,y.setToolOpen]);const{registerApps:w}=p;(0,_react.useEffect)(()=>{w(r.map(e=>{const n=e.icon;return{...e,icon:typeof n==="function"?({size:s})=>n(s):n}}))},[w,r]);const A=(0,_react.useMemo)(()=>r.map(e=>({id:e.id,name:e.name,description:e.description,slot:e.slot})),[r]);const{settings:x}=(0,_floatingToolsReact.useSettings)({availableTools:A,storage:webSettingsStorage});(0,_react.useEffect)(()=>{let e=false;const n=async()=>{const[s,v]=await Promise.all([_sharedUi.persistentStorage.getItem(_sharedUi.devToolsStorageKeys.dial.isOpen()),_sharedUi.persistentStorage.getItem(_sharedUi.devToolsStorageKeys.settings.modalOpen())]);if(e)return;if(s==="true")b(true);if(v==="true"){b(true);T(true)}j.current=true};void n();return()=>{e=true}},[]);(0,_react.useEffect)(()=>{if(!j.current)return;void _sharedUi.persistentStorage.setItem(_sharedUi.devToolsStorageKeys.dial.isOpen(),i?"true":"false")},[i]);(0,_react.useEffect)(()=>{if(!j.current)return;void _sharedUi.persistentStorage.setItem(_sharedUi.devToolsStorageKeys.settings.modalOpen(),g?"true":"false")},[g]);const _=(0,_react.useCallback)(e=>{void(0,_dialUsageStore.recordToolUsage)(e.id);if(e.launchMode==="toggle-only"){e.onPress?.();return}if(e.component){const n=typeof e.icon==="function"?e.icon(20):e.icon;p.open({id:e.id,title:e.name||(0,_floatingToolsReact.getToolLabel)(e.id),component:e.component,props:e.props,modal:e.modal,launchMode:e.launchMode||"self-modal",singleton:e.singleton??true,icon:n,color:e.color||(0,_floatingToolsReact.getToolColor)(e.id)})}else{e.onPress?.()}},[p]);const S=(0,_react.useMemo)(()=>{const e=(0,_autoDiscoverPresetsWeb.getToolsBySlot)(r,"dial");return e.map(n=>{const s=n.color||(0,_floatingToolsReact.getToolColor)(n.id);let v;if(typeof n.icon==="string"){v=n.icon}else if(typeof n.icon==="function"){v=n.icon(32)}else{v=null}return{id:n.id,name:n.name||(0,_floatingToolsReact.getToolLabel)(n.id),icon:v,unavailable:!n.component&&!n.onPress,color:s,onPress:()=>{_(n);b(false)}}})},[r,_]);const R=(0,_react.useMemo)(()=>{if(!i)return S;const e=new Map(S.map(n=>[n.id,n]));return(0,_dialUsageStore.getRankedToolIds)(S.map(n=>n.id)).map(n=>e.get(n)).filter(n=>Boolean(n))},[i,S]);const B=(0,_react.useMemo)(()=>(0,_autoDiscoverPresetsWeb.getToolsBySlot)(r,"row").filter(e=>x.floatingTools[e.id]===true&&(e.component||e.onPress)),[r,x.floatingTools]);const K=(0,_react.useMemo)(()=>r.map(e=>({id:e.id,name:e.name||(0,_floatingToolsReact.getToolLabel)(e.id),description:e.description||(0,_floatingToolsReact.getToolDescription)(e.id),slot:e.slot,icon:e.icon,color:e.color})),[r]);const[V,E]=(0,_react.useState)(false);const C=p.openApps.some(e=>!e.minimized);(0,_react.useEffect)(()=>{if(h)return;let e=false;const n=setTimeout(async()=>{const s=await _sharedUi.persistentStorage.getItem(MENU_TOOLTIP_KEY);if(!e&&!s)E(true)},1e3);return()=>{e=true;clearTimeout(n)}},[h]);const f=(0,_react.useCallback)(()=>{E(false);void _sharedUi.persistentStorage.setItem(MENU_TOOLTIP_KEY,"true")},[]);const I=(0,_react.useCallback)(()=>{f();b(true)},[f]);const z=(0,_react.useCallback)(()=>{b(false);T(false)},[]);const U=(0,_react.useCallback)(()=>{T(e=>!e)},[]);const F=(0,_react.useCallback)(()=>T(false),[]);const M=Boolean(o?.length&&u);const k=x.floatingTools.environment!==false;const m=V&&!i&&!C;(0,_react.useEffect)(()=>{if(!m)return;const e=s=>{if(!(s.target instanceof Element)||!s.target.closest("[data-buoy-root]"))f()};const n=s=>{if(s.key==="Escape")f()};document.addEventListener("pointerdown",e,true);document.addEventListener("keydown",n);return()=>{document.removeEventListener("pointerdown",e,true);document.removeEventListener("keydown",n)}},[m,f]);const P=p.openApps.some(e=>e.minimized&&e.launchMode!=="toggle-only");const q=(0,_jsxRuntime.jsx)(_BrowserToolRuntime.BrowserToolRuntime,{modules:a,apps:d,requiredEnvVars:W,externalSync:c,headless:D,sentryGetClient:L});if(D)return q;return(0,_jsxRuntime.jsxs)("div",{"data-buoy-root":"",style:{display:"contents"},children:[q,m&&(0,_jsxRuntime.jsx)("div",{style:{position:"fixed",inset:0,backgroundColor:"rgba(0,0,0,0.85)",zIndex:1e4,pointerEvents:"none"}}),(0,_jsxRuntime.jsxs)(_floatingToolsWeb.FloatingTools,{enablePositionPersistence:!m,pushToSide:i||C,suspendPointerEvents:i,centerOnboarding:m,minimizedStack:P?(0,_jsxRuntime.jsx)(_MinimizedToolsStackWeb.MinimizedToolsStack,{}):void 0,hasMinimizedStack:P,children:[t&&k&&!M&&(0,_jsxRuntime.jsx)(_sharedUi.EnvironmentIndicator,{environment:t}),M&&k&&(0,_jsxRuntime.jsx)(_sharedUi.EnvironmentSelectorInline,{currentEnvironment:t??"local",availableEnvironments:o,onSelect:u}),l?(0,_jsxRuntime.jsx)(_floatingToolsWeb.UserStatus,{userRole:l,onPress:I}):(0,_jsxRuntime.jsx)("button",{"aria-label":"Open dev tools",onClick:I,style:{display:"flex",alignItems:"center",justifyContent:"center",padding:"6px 8px",background:"none",border:"none",cursor:"pointer"},children:(0,_jsxRuntime.jsx)(MenuLauncherIcon,{})}),B.map(e=>(0,_jsxRuntime.jsx)("button",{"aria-label":e.name||(0,_floatingToolsReact.getToolLabel)(e.id),title:e.description,onClick:()=>_(e),style:{display:"flex",alignItems:"center",justifyContent:"center",padding:"4px 6px",borderRadius:6,background:"none",border:"none",cursor:"pointer"},children:typeof e.icon==="function"?e.icon(16):e.icon},e.id))]}),m&&(0,_jsxRuntime.jsx)(_OnboardingTooltipWeb.OnboardingTooltip,{title:"Welcome to Buoy!",message:"Grab and position this menu wherever you want, then tap the icon to open your tools.",onDismiss:f}),i&&(0,_jsxRuntime.jsx)(_DialDevToolsWeb.DialMenu,{icons:R,onClose:z,centerLabel:"BUOY",onCenterPress:U,settingsOpen:g,hintsDisabled:h}),(0,_jsxRuntime.jsx)(_DevToolsSettingsModalWeb.SettingsModal,{visible:g,onClose:F,availableTools:K,onSettingsChange:e=>{}}),(0,_jsxRuntime.jsx)(_AppHostWeb.AppOverlay,{}),(0,_jsxRuntime.jsx)(_floating.FloatingToolHost,{})]})}function FloatingDevTools(t){const{access:l,isPro:o,licenseKey:u}=(0,_license.useLicense)();(0,_react.useEffect)(()=>{void _license.LicenseManager.configure(t.licenseKey)},[t.licenseKey]);const d=t.licenseKey===void 0||(0,_license.sameLicenseKey)(t.licenseKey,u);const a=typeof __DEV__!=="undefined"?__DEV__:process.env.NODE_ENV!=="production";const c=d&&l.status==="admitted";(0,_react.useEffect)(()=>{if(c)(0,_sharedUi.startSettingsSync)()},[c]);(0,_react.useEffect)(()=>{if(a||l.status==="initializing")return;if(o&&c)(0,_releaseOptIn.markReleaseOptIn)();else(0,_releaseOptIn.clearReleaseOptIn)()},[a,o,c,l.status]);if(!a&&!o)return t.signIn&&!t.headless?(0,_jsxRuntime.jsx)(_BuoySignInWeb.BuoySignIn,{}):null;if(!c)return t.headless?null:(0,_jsxRuntime.jsx)(_sharedUi.AccountSetup,{});return(0,_jsxRuntime.jsx)(AdmittedFloatingDevTools,{...t})}
|
package/lib/commonjs/version.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.SDK_VERSION=void 0;const SDK_VERSION=exports.SDK_VERSION="7.0.
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.SDK_VERSION=void 0;const SDK_VERSION=exports.SDK_VERSION="7.0.47";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";import{FloatingToolHost as oe}from"@buoy-gg/shared-ui";import{AccountSetup as ne}from"@buoy-gg/shared-ui";import
|
|
1
|
+
"use strict";import{FloatingToolHost as oe}from"@buoy-gg/shared-ui";import{AccountSetup as ne,startSettingsSync as se}from"@buoy-gg/shared-ui";import Fe,{useMemo as t,useCallback as ie,useEffect as O}from"react";import{View as N,StyleSheet as Q}from"react-native";import{AppHostProvider as ue}from"./AppHost";import{FloatingMenu as ce}from"./FloatingMenu.js";import{AppOverlay as le}from"./AppHost";import{ToolOpenerBridge as ae}from"./ToolOpenerBridge.js";import{autoDiscoverPresets as ge,autoDiscoverPresetsWithCustom as ye}from"./autoDiscoverPresets.js";import{sendInstallPing as me}from"../telemetry/installPing.js";import{isTelemetryEnabled as de}from"../Buoy.js";import{renderAppIcon as pe}from"./AppIcon";import{DevToolsVisibilityProvider as fe}from"./DevToolsVisibilityContext.js";import{reportOptionalRequireError as n}from"./optionalRequire.js";import{HintsProvider as be,normalizeEnvironment as ve}from"@buoy-gg/shared-ui";import{MinimizedToolsProvider as he}from"./MinimizedToolsContext.js";import{validateDialConfig as Oe}from"./defaultConfig.js";import{DefaultConfigProvider as Te}from"./DefaultConfigContext.js";import{LicenseManager as Ae,useProAccess as Re,useLicense as qe,sameLicenseKey as Ee}from"@buoy-gg/license";import{AutoExternalSync as W,ToolRegistryPublisher as _e,isExternalSyncAvailable as Ie}from"./autoExternalSync.js";import{externalSyncOptions as z,releaseTransportProblem as xe,shouldMountExternalSync as De}from"./externalSyncGate.js";import{jsx as r,Fragment as T,jsxs as y}from"react/jsx-runtime";let G=null;function Pe(s){if(!s||s===G)return;G=s;console.warn(s)}export const FloatingDevTools=({apps:s,requiredEnvVars:i,requiredStorageKeys:d,askBuoy:A,children:X,disableHints:Y=false,defaultFloatingTools:Z,defaultDialTools:p,requireLicense:ze,licenseKey:f,zustandStores:R,environment:$,externalSync:b=true,headless:M=false,...S})=>{const K=$??ve(process.env.NODE_ENV??"dev");const{isLicensed:v}=Re();const{licenseKey:q,isInitialized:C,tier:h,access:u}=qe();const ee=f===void 0||Ee(f,q);const E=ee&&u.status==="admitted";O(()=>{if(!C||u.status==="initializing")return;void me({tier:u.status==="admitted"?h:"locked",enabled:de()})},[C,u.status,h]);O(()=>{void Ae.configure(f).catch(()=>{})},[f]);O(()=>{if(E)se()},[E]);O(()=>{if(!R||u.status==="locked")return;try{const{watchStores:e}=require("@buoy-gg/zustand");return e(R)}catch(e){n("@buoy-gg/zustand",e)}},[R,u.status]);const re=t(()=>{if(p){return Oe(p)}return p},[p]);const _=t(()=>{const e=[];if(i&&i.length>0){try{const{createEnvTool:o,createEnvVarConfig:k}=require("@buoy-gg/env");e.push(o({requiredEnvVars:k(i)}))}catch(o){n("@buoy-gg/env",o)}}if(d&&d.length>0){try{const{createStorageTool:o}=require("@buoy-gg/storage");e.push(o({requiredStorageKeys:d}))}catch(o){n("@buoy-gg/storage",o)}}if(A){try{const{createAskBuoyTool:o}=require("@buoy-gg/ask-buoy");e.push(o(A))}catch(o){n("@buoy-gg/ask-buoy",o)}}return e},[i,d,A]);const I=t(()=>{if(!s&&_.length===0)return void 0;return[...s||[],..._]},[s,_]);const m=t(()=>I?ye(I):ge(),[I]);const x=t(()=>m.filter(e=>e.sync),[m]);const F=t(()=>{try{const{DebugBordersStandaloneOverlay:e}=require("@buoy-gg/debug-borders");return e}catch(e){n("@buoy-gg/debug-borders",e);return null}},[]);const H=t(()=>{try{const{HighlightUpdatesOverlay:e}=require("@buoy-gg/highlight-updates");return e}catch(e){n("@buoy-gg/highlight-updates",e);return null}},[]);const L=t(()=>{try{const{ImageOverlayStandalone:e}=require("@buoy-gg/image-overlay");return e}catch(e){n("@buoy-gg/image-overlay",e);return null}},[]);const j=t(()=>{try{const{PerfMonitorOverlay:e}=require("@buoy-gg/perf-monitor");return e}catch(e){n("@buoy-gg/perf-monitor",e);return null}},[]);const w=t(()=>{try{const{JsTopHudOverlay:e}=require("@buoy-gg/js-top");return e}catch(e){n("@buoy-gg/js-top",e);return null}},[]);const c=t(()=>{try{const{RouteTracker:e}=require("@buoy-gg/route-events");return e}catch(e){n("@buoy-gg/route-events",e);return null}},[]);const l=t(()=>{try{const{ReactQueryTracker:e}=require("@buoy-gg/react-query");return e}catch(e){n("@buoy-gg/react-query",e);return null}},[]);const V=t(()=>{try{const{ImpersonateOverlay:e}=require("@buoy-gg/impersonate");return e}catch(e){n("@buoy-gg/impersonate",e);return null}},[]);const U=t(()=>{try{const{ScenariosOverlay:e}=require("@buoy-gg/scenarios");return e}catch(e){n("@buoy-gg/scenarios",e);return null}},[]);const a=t(()=>{try{const{ReduxAutoInstrument:e}=require("@buoy-gg/redux");return e??null}catch(e){n("@buoy-gg/redux",e);return null}},[]);const g=t(()=>{try{const{ConsoleRoot:e}=require("@buoy-gg/console");return e??null}catch(e){n("@buoy-gg/console",e);return null}},[]);const te=ie(e=>{const o=m.find(k=>k.id===e);if(!o)return null;return pe(o.icon,{slot:"dial",size:20,color:o.color})},[m]);const D=typeof __DEV__!=="undefined"&&__DEV__;if(!D&&!v){return null}const B=De({isDevelopment:D,isLicensed:v,externalSync:b,isAvailable:Ie()});const P=z(b);if(!D&&P?.enableInRelease){Pe(xe(P.socketURL,P))}const J=r(_e,{requiredEnvVars:i,customApps:x});if(!E){return y(T,{children:[u.status==="initializing"&&y(T,{children:[a&&r(a,{}),g&&r(g,{}),c&&r(c,{}),l&&r(l,{})]}),!M&&r(ne,{})]})}if(M){return y(T,{children:[a&&r(a,{}),g&&r(g,{}),c&&r(c,{}),l&&r(l,{}),J,B&&r(W,{options:z(b),requiredEnvVars:i,isPro:v,tier:h,licenseKey:q,customApps:x})]})}return r(Te,{defaultFloatingTools:Z,defaultDialTools:re,children:r(be,{disableHints:Y,children:r(N,{style:ke.container,pointerEvents:"box-none",__buoyDevToolsRoot:true,children:y(fe,{children:[L&&r(N,{style:Q.absoluteFill,pointerEvents:"box-none",collapsable:false,children:r(L,{})}),r(ue,{children:y(he,{getToolIcon:te,children:[r(ce,{...S,apps:m,environment:K}),S.hidden?null:y(T,{children:[r(le,{}),r(oe,{})]}),r(ae,{})]})}),X,F&&r(F,{}),H&&r(H,{}),j&&r(j,{}),w&&r(w,{}),V&&r(V,{}),U&&r(U,{}),a&&r(a,{}),g&&r(g,{}),c&&r(c,{}),l&&r(l,{}),J,B&&r(W,{options:z(b),requiredEnvVars:i,isPro:v,tier:h,licenseKey:q,customApps:x})]})})})})};const ke=Q.create({container:{position:"absolute",top:0,left:0,right:0,bottom:0,zIndex:9999}});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";import{FloatingToolHost as oe}from"@buoy-gg/shared-ui/floating";import{LicenseManager as ie,useLicense as se}from"@buoy-gg/license";import{AccountSetup as
|
|
1
|
+
"use strict";import{FloatingToolHost as oe}from"@buoy-gg/shared-ui/floating";import{LicenseManager as ie,useLicense as se,sameLicenseKey as re}from"@buoy-gg/license";import{AccountSetup as ae,startSettingsSync as ce}from"@buoy-gg/shared-ui";import{useState as x,useMemo as b,useCallback as O,useEffect as r,useRef as le}from"react";import{useSettings as de,getToolLabel as C,getToolDescription as me,getToolColor as U}from"@buoy-gg/floating-tools-react";import{persistentStorage as u,devToolsStorageKeys as E,EnvironmentIndicator as ue,EnvironmentSelectorInline as pe}from"@buoy-gg/shared-ui";import{autoDiscoverWithCustom as fe,getToolsBySlot as N}from"../utils/autoDiscoverPresets.web.js";import{FloatingTools as ge,UserStatus as ye}from"./floatingTools.web.js";import{DialMenu as ve}from"./dial/DialDevTools.web.js";import{getRankedToolIds as he,recordToolUsage as Te}from"./dial/dialUsageStore.js";import{OnboardingTooltip as be}from"./dial/OnboardingTooltip.web.js";import{SettingsModal as Oe}from"./DevToolsSettingsModal.web.js";import{AppHostProvider as Se,AppOverlay as Ie,useAppHost as De}from"./AppHost.web.js";import{MinimizedToolsStack as we}from"./MinimizedToolsStack.web.js";import{createWebTools as Ce}from"../utils/createWebTools.js";import{BrowserToolRuntime as Ee}from"./BrowserToolRuntime.js";import{clearReleaseOptIn as _e,markReleaseOptIn as Me}from"../releaseOptIn.js";import{BuoySignIn as Pe}from"./BuoySignIn.web.js";import{DevToolsVisibilityProvider as ke,useDevToolsVisibility as xe}from"./DevToolsVisibilityContext.js";import{jsx as t,jsxs as Y}from"react/jsx-runtime";const Ae={};const G="@react_buoy_floating_menu_tooltip_shown";const Le=u;function Ke({size:o=14,color:d="#20C997"}){const s=Math.max(2,o/4);const p=Math.max(1,o/16);return t("div",{style:{display:"grid",gridTemplateColumns:`repeat(3, ${s}px)`,gap:p,width:o,height:o,alignContent:"center",justifyContent:"center"},children:Array.from({length:9}).map((f,l)=>t("div",{style:{width:s,height:s,borderRadius:s/2,backgroundColor:d}},l))})}function Re(o){return t(ke,{children:t(Se,{children:t(je,{...o})})})}function je({environment:o,userRole:d,availableEnvironments:s,onEnvironmentSwitch:p,apps:f,modules:l=Ae,externalSync:m,requiredEnvVars:H,sentryGetClient:q,disableHints:_=false,headless:A=false}){const[a,S]=x(false);const[g,I]=x(false);const M=le(false);const y=De();const c=b(()=>fe([...Ce(l),...f??[]]),[f,l]);const D=xe();const L=y.openApps.some(e=>!e.minimized);r(()=>{D.setDialOpen(a)},[a,D.setDialOpen]);r(()=>{D.setToolOpen(L||g)},[L,g,D.setToolOpen]);const{registerApps:K}=y;r(()=>{K(c.map(e=>{const n=e.icon;return{...e,icon:typeof n==="function"?({size:i})=>n(i):n}}))},[K,c]);const $=b(()=>c.map(e=>({id:e.id,name:e.name,description:e.description,slot:e.slot})),[c]);const{settings:P}=de({availableTools:$,storage:Le});r(()=>{let e=false;const n=async()=>{const[i,T]=await Promise.all([u.getItem(E.dial.isOpen()),u.getItem(E.settings.modalOpen())]);if(e)return;if(i==="true")S(true);if(T==="true"){S(true);I(true)}M.current=true};void n();return()=>{e=true}},[]);r(()=>{if(!M.current)return;void u.setItem(E.dial.isOpen(),a?"true":"false")},[a]);r(()=>{if(!M.current)return;void u.setItem(E.settings.modalOpen(),g?"true":"false")},[g]);const k=O(e=>{void Te(e.id);if(e.launchMode==="toggle-only"){e.onPress?.();return}if(e.component){const n=typeof e.icon==="function"?e.icon(20):e.icon;y.open({id:e.id,title:e.name||C(e.id),component:e.component,props:e.props,modal:e.modal,launchMode:e.launchMode||"self-modal",singleton:e.singleton??true,icon:n,color:e.color||U(e.id)})}else{e.onPress?.()}},[y]);const w=b(()=>{const e=N(c,"dial");return e.map(n=>{const i=n.color||U(n.id);let T;if(typeof n.icon==="string"){T=n.icon}else if(typeof n.icon==="function"){T=n.icon(32)}else{T=null}return{id:n.id,name:n.name||C(n.id),icon:T,unavailable:!n.component&&!n.onPress,color:i,onPress:()=>{k(n);S(false)}}})},[c,k]);const J=b(()=>{if(!a)return w;const e=new Map(w.map(n=>[n.id,n]));return he(w.map(n=>n.id)).map(n=>e.get(n)).filter(n=>Boolean(n))},[a,w]);const Q=b(()=>N(c,"row").filter(e=>P.floatingTools[e.id]===true&&(e.component||e.onPress)),[c,P.floatingTools]);const X=b(()=>c.map(e=>({id:e.id,name:e.name||C(e.id),description:e.description||me(e.id),slot:e.slot,icon:e.icon,color:e.color})),[c]);const[Z,R]=x(false);const j=y.openApps.some(e=>!e.minimized);r(()=>{if(_)return;let e=false;const n=setTimeout(async()=>{const i=await u.getItem(G);if(!e&&!i)R(true)},1e3);return()=>{e=true;clearTimeout(n)}},[_]);const v=O(()=>{R(false);void u.setItem(G,"true")},[]);const B=O(()=>{v();S(true)},[v]);const ee=O(()=>{S(false);I(false)},[]);const ne=O(()=>{I(e=>!e)},[]);const te=O(()=>I(false),[]);const V=Boolean(s?.length&&p);const z=P.floatingTools.environment!==false;const h=Z&&!a&&!j;r(()=>{if(!h)return;const e=i=>{if(!(i.target instanceof Element)||!i.target.closest("[data-buoy-root]"))v()};const n=i=>{if(i.key==="Escape")v()};document.addEventListener("pointerdown",e,true);document.addEventListener("keydown",n);return()=>{document.removeEventListener("pointerdown",e,true);document.removeEventListener("keydown",n)}},[h,v]);const W=y.openApps.some(e=>e.minimized&&e.launchMode!=="toggle-only");const F=t(Ee,{modules:l,apps:f,requiredEnvVars:H,externalSync:m,headless:A,sentryGetClient:q});if(A)return F;return Y("div",{"data-buoy-root":"",style:{display:"contents"},children:[F,h&&t("div",{style:{position:"fixed",inset:0,backgroundColor:"rgba(0,0,0,0.85)",zIndex:1e4,pointerEvents:"none"}}),Y(ge,{enablePositionPersistence:!h,pushToSide:a||j,suspendPointerEvents:a,centerOnboarding:h,minimizedStack:W?t(we,{}):void 0,hasMinimizedStack:W,children:[o&&z&&!V&&t(ue,{environment:o}),V&&z&&t(pe,{currentEnvironment:o??"local",availableEnvironments:s,onSelect:p}),d?t(ye,{userRole:d,onPress:B}):t("button",{"aria-label":"Open dev tools",onClick:B,style:{display:"flex",alignItems:"center",justifyContent:"center",padding:"6px 8px",background:"none",border:"none",cursor:"pointer"},children:t(Ke,{})}),Q.map(e=>t("button",{"aria-label":e.name||C(e.id),title:e.description,onClick:()=>k(e),style:{display:"flex",alignItems:"center",justifyContent:"center",padding:"4px 6px",borderRadius:6,background:"none",border:"none",cursor:"pointer"},children:typeof e.icon==="function"?e.icon(16):e.icon},e.id))]}),h&&t(be,{title:"Welcome to Buoy!",message:"Grab and position this menu wherever you want, then tap the icon to open your tools.",onDismiss:v}),a&&t(ve,{icons:J,onClose:ee,centerLabel:"BUOY",onCenterPress:ne,settingsOpen:g,hintsDisabled:_}),t(Oe,{visible:g,onClose:te,availableTools:X,onSettingsChange:e=>{}}),t(Ie,{}),t(oe,{})]})}export function FloatingDevTools(o){const{access:d,isPro:s,licenseKey:p}=se();r(()=>{void ie.configure(o.licenseKey)},[o.licenseKey]);const f=o.licenseKey===void 0||re(o.licenseKey,p);const l=typeof __DEV__!=="undefined"?__DEV__:process.env.NODE_ENV!=="production";const m=f&&d.status==="admitted";r(()=>{if(m)ce()},[m]);r(()=>{if(l||d.status==="initializing")return;if(s&&m)Me();else _e()},[l,s,m,d.status]);if(!l&&!s)return o.signIn&&!o.headless?t(Pe,{}):null;if(!m)return o.headless?null:t(ae,{});return t(Re,{...o})}
|
package/lib/module/version.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";export const SDK_VERSION="7.0.
|
|
1
|
+
"use strict";export const SDK_VERSION="7.0.47";
|
|
@@ -9,5 +9,5 @@
|
|
|
9
9
|
* Drift is prevented by a test that fails when this disagrees with
|
|
10
10
|
* package.json, so a version bump that forgets this file cannot ship.
|
|
11
11
|
*/
|
|
12
|
-
export declare const SDK_VERSION = "7.0.
|
|
12
|
+
export declare const SDK_VERSION = "7.0.47";
|
|
13
13
|
//# sourceMappingURL=version.d.ts.map
|
|
@@ -9,5 +9,5 @@
|
|
|
9
9
|
* Drift is prevented by a test that fails when this disagrees with
|
|
10
10
|
* package.json, so a version bump that forgets this file cannot ship.
|
|
11
11
|
*/
|
|
12
|
-
export declare const SDK_VERSION = "7.0.
|
|
12
|
+
export declare const SDK_VERSION = "7.0.47";
|
|
13
13
|
//# sourceMappingURL=version.d.ts.map
|
package/lib/web/index.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use client";import{$ as En,A as Bn,Aa as On,B as Fn,Ba as Ln,C as Pn,Ca as $n,D as jn,Da as Hn,E as Wn,Ea as Nn,F as Vn,Fa as Un,G as Kn,Ga as _n,H as
|
|
1
|
+
"use client";import{$ as En,A as Bn,Aa as On,B as Fn,Ba as Ln,C as Pn,Ca as $n,D as jn,Da as Hn,E as Wn,Ea as Nn,F as Vn,Fa as Un,G as Kn,Ga as _n,H as Gn,Ha as qn,I as Jn,Ia as Xn,J as Yn,Ja as Qn,K as Zn,Ka as ea,L as ta,La as oa,M as na,Ma as aa,N as ia,Na as ra,O as sa,Oa as la,P as ca,Pa as da,Q as ua,Qa as pa,R as ma,Ra as ga,S as fa,Sa as ha,T as ya,Ta as ba,U as Sa,Ua as va,V as wa,Va as xa,W as Ca,Wa as Ta,X as za,Xa as ka,Y as Ia,Ya as Ma,Z as Ra,_ as Aa,a as H,aa as Da,b as N,ba as Ea,c as et,ca as Ba,d as Nt,da as Oa,e as oc,ea as Fa,f as xe,fa as La,g as Vt,ga as Pa,h as Be,ha as $a,i as Ut,ia as ja,j as Ha,ja as Wa,k as Na,ka as Va,l as Ua,la as Ka,m as _a,ma as Ga,n as qa,na as Ja,o as Xa,oa as Ya,p as Qa,pa as Za,q as ei,qa as ti,r as oi,ra as ni,s as ai,sa as ii,t as ri,ta as si,u as li,ua as ci,v as di,va as ui,w as pi,wa as mi,x as gi,xa as fi,y as hi,ya as yi,z as bi,za as Si}from"./chunks/chunk-QZDVCMCT.mjs";import{b as vi,c as Kt}from"./chunks/chunk-5SGL6QL4.mjs";import{a as _t,d as tt}from"./chunks/chunk-R7RGRTY5.mjs";import{FloatingToolHost as wi}from"@buoy-gg/shared-ui/web/floating";import{LicenseManager as xi,useLicense as Ci,sameLicenseKey as Ti}from"@buoy-gg/license/web";import{AccountSetup as zi,startSettingsSync as ki}from"@buoy-gg/shared-ui/web";import{useState as wt,useMemo as Oe,useCallback as Fe,useEffect as le,useRef as Ii}from"react";import{useSettings as Mi,getToolLabel as ot,getToolDescription as Ri,getToolColor as Gt}from"@buoy-gg/floating-tools-react/web";import{persistentStorage as Ce,devToolsStorageKeys as nt,EnvironmentIndicator as Ai,EnvironmentSelectorInline as Di}from"@buoy-gg/shared-ui/web";var Ei=[];function Bi(){return[]}function qt(e=[]){return[...new Map(e.map(t=>[t.id,t])).values()]}function xt(e,t){return e.filter(o=>{let a=o.slot||"both";return a==="both"||a===t})}function Oi(e,t){let o=t instanceof Set?t:new Set(t);return e.filter(a=>o.has(a.id))}import{FloatingTool as Jt,FloatingToolDivider as Fi,FloatingToolUserStatus as Xt,getBubbleAnchorPosition as Li}from"@buoy-gg/shared-ui/web/floating";import{useState as Q,useEffect as Te,useMemo as at,useRef as it,useCallback as rt}from"react";import{getDialLayout as Pi,getAllIconPositions as $i,getGridLineRotations as ji,getIconStaggerInputRange as Hi,MAX_DIAL_SLOTS as We,DIAL_ICON_SIZE as Wi,dialAnimationConfig as Yt,getDialCSSKeyframesString as Ni,getDialCSSAnimationStyles as Vi,dialColors as F,dialStyles as S,withAlpha as Qt,floatingToolsColors as Ui}from"@buoy-gg/floating-tools-react/web";import{persistentStorage as Zt,monoFont as eo,ToolBackground as Ki,useToolBackground as _i}from"@buoy-gg/shared-ui/web";import{memo as Gi}from"react";import{RasterLayer as qi,scatter as Ji,useLoop as Xi,withBgAlpha as Yi}from"@buoy-gg/shared-ui/web";import{Fragment as Qi,jsx as Ne}from"react/jsx-runtime";var Zi=.94,er=6,tr=2400,st=3,to=16,or=Array.from({length:st},(e,t)=>Ji(22343^t*40503,to*4)),oo=["#FFFFFF","#B3D9FF","#8CB3FF"],no=Math.PI/3,ao=14*Math.PI/180;function nr(e){let t=Math.min(5,Math.floor(e*6)),o=e*6-t;return t*no+ao/2+o*(no-ao)}function ar(e){return Math.min(er,1/(1-e*Zi))}function ir(e){let t=.15+.85*e*e;return e<.06?t*=e/.06:e>.94&&(t*=(1-e)/.06),Math.min(.7,t)}function rr(e){let t=e/st,o=[],a=12;for(let d=0;d<=a;d++)o.push(d/a);let n=(1-t)%1;n>.001&&n<1-.001&&o.push(n-1e-4,n+1e-4),o.sort((d,p)=>d-p);let i=[],l=[],u=[];for(let d of o){let p=t===0&&d===1?1:(d+t)%1;i.push(d),l.push(ar(p)),u.push(ir(p))}return{input:i,scale:l,opacity:u}}var sr=Array.from({length:st},(e,t)=>rr(t)),lr=Gi(function({size:e}){let t=Xi(tr),o=e/2,a=[];for(let n=0;n<st;n++){let i=or[n],l=sr[n],u=[];for(let d=0;d<to;d++){let p=nr(i[d*4]),m=(.15+.85*Math.sqrt(i[d*4+1]))*.5*o,x=oo[Math.floor(i[d*4+3]*oo.length)%3],g=o+Math.cos(p)*m,R=o+Math.sin(p)*m,v=.6,I=v*2.4;u.push(Ne(H,{style:{position:"absolute",left:g-I/2,top:R-I/2,width:I,height:I,borderRadius:I/2,backgroundColor:Yi(x,.3)}},`${d}-h`),Ne(H,{style:{position:"absolute",left:g-v/2,top:R-v/2,width:v,height:v,borderRadius:v/2,backgroundColor:x}},d))}a.push(Ne(xe.View,{style:{position:"absolute",left:0,top:0,width:e,height:e,opacity:t.interpolate({inputRange:l.input,outputRange:l.opacity}),transform:[{scale:t.interpolate({inputRange:l.input,outputRange:l.scale})}]},pointerEvents:"none",children:Ne(qi,{style:{width:e,height:e},raster:false,children:u})},n))}return Ne(Qi,{children:a})});import{useEffect as cr,useState as io}from"react";import{dialColors as Le,withAlpha as ro}from"@buoy-gg/floating-tools-react/web";import{ARROW_BOTTOM_OFFSET as dr,ARROW_HEIGHT as ur,SPACING_GAP as wc,getScreenCenterY as xc,calculateTooltipPosition as pr,calculateTargetPosition as Cc}from"@buoy-gg/shared-ui/web/floating";import{monoFont as so}from"@buoy-gg/shared-ui/web";import{jsx as Pe,jsxs as lo}from"react/jsx-runtime";var co=false;function mr(){if(co||typeof document>"u")return;let e=document.createElement("style");e.textContent=`
|
|
2
2
|
@keyframes buoyOnboardPulse {
|
|
3
3
|
0%, 100% { transform: scale(1); }
|
|
4
4
|
50% { transform: scale(1.02); }
|
|
@@ -7,4 +7,4 @@
|
|
|
7
7
|
0%, 100% { transform: translateY(0); }
|
|
8
8
|
50% { transform: translateY(-8px); }
|
|
9
9
|
}
|
|
10
|
-
`,document.head.appendChild(e),co=true}var Ct=Le.accent;function uo({title:e,message:t,onDismiss:o,showArrow:a=true}){let[n,i]=io(false),[l,u]=io(false);sr(()=>{ur();let p=requestAnimationFrame(()=>i(true));return()=>cancelAnimationFrame(p)},[]);let d={fontFamily:so,textTransform:"uppercase"};return Pe("div",{style:{position:"fixed",left:"50%",bottom:dr(),transform:`translateX(-50%) scale(${n?1:.8})`,opacity:n?1:0,transition:"transform 300ms cubic-bezier(0.34, 1.3, 0.64, 1), opacity 300ms ease",zIndex:10002,pointerEvents:"auto"},children:lo("div",{style:{position:"relative",animation:n?"buoyOnboardPulse 3s ease-in-out infinite":"none"},children:[Pe("div",{style:{position:"absolute",inset:-4,borderRadius:18,backgroundColor:"#FFFFFF",opacity:.06}}),lo("div",{style:{position:"relative",maxWidth:280,backgroundColor:Le.dialBackground,borderRadius:16,border:`1px solid ${Le.dialBorder}`,padding:20,boxShadow:`0 0 20px ${ro(Le.dialShadow,.6)}`,display:"flex",flexDirection:"column",alignItems:"center",gap:8},children:[Pe("span",{style:{...d,fontSize:16,fontWeight:900,letterSpacing:1,color:Ct,textAlign:"center"},children:e}),Pe("span",{style:{fontFamily:so,fontSize:13,lineHeight:"20px",color:Le.centerText,textAlign:"center"},children:t}),Pe("button",{onClick:o,onMouseDown:()=>u(true),onMouseUp:()=>u(false),onMouseLeave:()=>u(false),style:{...d,marginTop:8,borderRadius:8,border:"none",backgroundColor:Ct,padding:"10px 24px",fontSize:14,fontWeight:900,letterSpacing:1.5,color:"#000000",cursor:"pointer",opacity:l?.7:1,transform:l?"scale(0.96)":"scale(1)",transition:"transform 100ms ease, opacity 100ms ease"},children:"Got it!"})]}),a&&Pe("div",{style:{position:"absolute",left:"50%",bottom:lr,marginLeft:-12,width:0,height:0,borderLeft:"12px solid transparent",borderRight:"12px solid transparent",borderTop:`${cr}px solid ${Ct}`,filter:`drop-shadow(0 0 10px ${ro(Le.dialShadow,.5)})`,animation:n?"buoyOnboardArrowBounce 1.6s ease-in-out infinite":"none"}})]})})}import{Fragment as pr,jsx as B,jsxs as ge}from"react/jsx-runtime";var mr={x:.5,y:.5},po="@react_buoy_settings_tooltip_shown",mo=false;function gr(){if(mo||typeof document>"u")return;let e=document.createElement("style");e.textContent=Hi(),document.head.appendChild(e),mo=true}var $e=e=>1-Math.pow(1-e,3),Tt=e=>e*e*e;function fr({icon:e,index:t,totalIcons:o,position:a,progress:n,onPress:i}){let[l,u]=Q(false),[d,p]=Q(false),m=!e.icon&&e.id.startsWith("empty-"),x=!m&&e.unavailable===true,g=!m&&!x,{icons:R}=Yt,v=$i(t,o),I=0;n<=v[1]?I=0:n<=v[2]?I=(n-v[1])/(v[2]-v[1]):I=1,I=Math.max(0,Math.min(1,I));let T=ji,k=R.pressIn.scale,z=I*(d?k:l?1.1:1),O=0;I<=0?O=0:I<=.3?O=I:O=.3+(I-.3)*(.7/.7);let b=a.x*I,M=a.y*I;return B("button",{role:"menuitem","aria-label":m?"Empty slot":e.name,"aria-disabled":!g,tabIndex:g?0:-1,onClick:g?i:void 0,onMouseEnter:()=>g&&u(true),onMouseLeave:()=>{u(false),p(false)},onMouseDown:()=>g&&p(true),onMouseUp:()=>p(false),style:{position:"absolute",left:"50%",top:"50%",width:T,height:T,marginLeft:-T/2,marginTop:-T/2,display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",cursor:g?"pointer":"default",transform:`translate(${b}px, ${M}px) scale(${z})`,opacity:O,transition:l||d?"transform 100ms ease":"none",background:"none",border:"none",padding:0},children:m?B("div",{style:{width:S.emptySlot.dotSize,height:S.emptySlot.dotSize,borderRadius:S.emptySlot.dotSize/2,backgroundColor:F.emptyDotBackground,border:`${S.emptySlot.borderWidth}px solid ${F.emptyDotBorder}`}}):ge(pr,{children:[B("div",{style:{position:"absolute",width:`${S.icon.gradientBgSizePercent}%`,height:`${S.icon.gradientBgSizePercent}%`,borderRadius:S.icon.gradientBgBorderRadius,backgroundColor:"rgba(0, 0, 0, 0.2)",opacity:S.icon.gradientBgOpacity}}),B("div",{style:{position:"absolute",width:`${S.icon.innerGlowSizePercent}%`,height:`${S.icon.innerGlowSizePercent}%`,borderRadius:S.icon.innerGlowBorderRadius,backgroundColor:"rgba(255, 255, 255, 0.02)",opacity:S.icon.innerGlowOpacity}}),B("div",{style:{marginBottom:S.icon.wrapperMarginBottom,display:"flex",alignItems:"center",justifyContent:"center",fontSize:32,filter:l?"brightness(1.2)":"none"},children:e.icon}),B("span",{style:{fontSize:e.name.length>8?Math.max(S.icon.label.fontSize*.7,S.icon.label.fontSize*8/e.name.length):S.icon.label.fontSize,fontWeight:S.icon.label.fontWeight,fontFamily:S.icon.label.fontFamily,color:F.iconLabel,letterSpacing:S.icon.label.letterSpacing,marginTop:S.icon.label.marginTop,textTransform:"uppercase",whiteSpace:"nowrap"},children:e.name}),x&&B("span",{style:{fontSize:S.icon.label.fontSize-1,fontWeight:S.icon.label.fontWeight,fontFamily:S.icon.label.fontFamily,letterSpacing:S.icon.label.letterSpacing,color:Ni.muted,textTransform:"uppercase",whiteSpace:"nowrap"},children:"Unavailable"})]})})}function go({side:e,color:t}){return B("svg",{width:18,height:18,viewBox:"0 0 24 24","aria-hidden":"true",focusable:"false",children:(e==="prev"?[[15,18,9,12],[9,12,15,6]]:[[9,18,15,12],[15,12,9,6]]).map(([o,a,n,i],l)=>B("line",{x1:o,y1:a,x2:n,y2:i,stroke:t,strokeWidth:2},l))})}function fo({side:e,disabled:t,onClick:o}){let[a,n]=Q(false),i=t?F.emptyDotBorder:F.accent;return ge("button",{type:"button","aria-label":`${e==="prev"?"Previous":"Next"} dial page`,disabled:t,onClick:o,onMouseDown:()=>!t&&n(true),onMouseUp:()=>n(false),onMouseLeave:()=>n(false),style:{display:"flex",alignItems:"center",gap:4,padding:"10px 16px",borderRadius:10,border:`1px solid ${F.dialBorder}`,backgroundColor:F.dialBackground,color:t?F.iconLabelMuted:F.centerText,fontSize:12,fontWeight:900,fontFamily:eo,letterSpacing:1.5,textTransform:"uppercase",cursor:t?"default":"pointer",opacity:t?.4:1,boxShadow:t?"none":`0 0 8px ${Qt(F.dialShadow,.4)}`,transform:a?"scale(0.92)":"scale(1)",transition:"transform 100ms ease"},children:[e==="prev"&&B(go,{side:"prev",color:i}),e==="prev"?"PREV":"NEXT",e==="next"&&B(go,{side:"next",color:i})]})}function ho({icons:e,onClose:t,centerLabel:o="MENU",onCenterPress:a,settingsOpen:n=false,hintsDisabled:i=false}){let{id:l}=Ui(),[u,d]=Q(0),[p,m]=Q(0),[x,g]=Q(0),[R,v]=Q(0),[I,T]=Q(0),[k,z]=Q(1),[O,b]=Q(false),[M,$]=Q(false),[C,A]=Q(false),ee=it(null),Z=it(null),G=it(null),le=it(false),{entrance:K,exit:ne,interaction:J}=Yt,Se=Wi(),[me,ve]=Q(()=>({width:window.innerWidth,height:window.innerHeight}));Te(()=>{let D=()=>ve({width:window.innerWidth,height:window.innerHeight});return window.addEventListener("resize",D),()=>window.removeEventListener("resize",D)},[]);let j=at(()=>Fi({screenWidth:me.width,maxCircleSize:Math.max(120,Math.min(320,me.height-96))}),[me]),Re=at(()=>Pi(),[]),fe=at(()=>Li(We,j.iconRadius),[j.iconRadius]),[se,we]=Q(0),ae=Math.max(1,Math.ceil(e.length/We)),r=Math.min(se,ae-1),L=at(()=>{let D=r*We,w=[...e.slice(D,D+We)];for(;w.length<We;)w.push({id:`empty-${w.length}`,name:"",icon:null,onPress:()=>{}});return w},[e,r]);Te(()=>{gr()},[]),Te(()=>{let D=K.backdrop.duration,w=K.dial.rotation.duration,X=K.centerButton.delay,V=K.icons.delay,q=K.icons.duration,_=performance.now(),te=ce=>{let s=ce-_;d(Math.min(1,s/D));let f=Math.min(1,s/400),E=$e(f)*1.1;f>.7&&(E-=(f-.7)*.33),f>=1&&(E=1),m(Math.max(0,Math.min(1.05,E)));let Y=Math.min(1,s/w);if(g($e(Y)*360),s>=X){let ye=Math.min(1,(s-X)/300),Ee=$e(ye)*1.15;ye>.6&&(Ee-=(ye-.6)*.375),ye>=1&&(Ee=1),v(Math.max(0,Math.min(1.05,Ee)))}if(s>=V){let ye=Math.min(1,(s-V)/q);T($e(ye))}let he=V+q;s<he?G.current=requestAnimationFrame(te):(d(1),m(1),g(360),v(1),T(1),A(true))};return G.current=requestAnimationFrame(te),()=>{G.current&&cancelAnimationFrame(G.current)}},[]);let W=rt(()=>{if(le.current)return;le.current=true,$(true),G.current&&cancelAnimationFrame(G.current);let D=performance.now(),w=ne.icons.duration,X=ne.centerButton.duration,V=ne.dialScale.duration,q=Math.max(X,V),_=ne.backdrop.duration,te=ce=>{let s=ce-D;if(s<w){let Y=Tt(s/w);T(1-Y),G.current=requestAnimationFrame(te);return}let f=w;if(s<f+q){T(0);let Y=Math.min(1,(s-f)/X),he=Math.min(1,(s-f)/V);v(1-Tt(Y)),m(1-Tt(he)),G.current=requestAnimationFrame(te);return}let E=f+q;if(s<E+_){m(0),v(0);let Y=(s-E)/_;d(1-Y),G.current=requestAnimationFrame(te);return}d(0),t()};G.current=requestAnimationFrame(te)},[ne,t]);Te(()=>{let D=document.activeElement,w=ee.current;return()=>{D?.isConnected&&(document.activeElement===document.body||w?.contains(document.activeElement))&&D.focus()}},[]),Te(()=>{if(n)return;Z.current?.focus();let D=w=>{let X=ee.current;if(X){if(w.key==="Escape")w.preventDefault(),W();else if(w.key==="Tab"){let V=Array.from(X.querySelectorAll('button:not(:disabled):not([aria-disabled="true"]), [tabindex="0"]')).filter(te=>te.getClientRects().length>0),q=V[0],_=V[V.length-1];(!X.contains(document.activeElement)||(w.shiftKey?document.activeElement===q:document.activeElement===_))&&(w.preventDefault(),(w.shiftKey?_:q)?.focus())}else if(["ArrowRight","ArrowDown","ArrowLeft","ArrowUp","Home","End"].includes(w.key)){let V=Array.from(X.querySelectorAll('[role="menuitem"]:not([aria-disabled="true"])')),q=V.indexOf(document.activeElement);if(q<0||!V.length)return;w.preventDefault();let _=w.key==="Home"?0:w.key==="End"?V.length-1:(q+(w.key==="ArrowRight"||w.key==="ArrowDown"?1:-1)+V.length)%V.length;V[_].focus()}}};return document.addEventListener("keydown",D),()=>document.removeEventListener("keydown",D)},[W,n]);let[He,Xe]=Q(false);Te(()=>{if(i)return;let D=false,w=setTimeout(async()=>{let X=await Zt.getItem(po);!D&&!X&&Xe(true)},1200);return()=>{D=true,clearTimeout(w)}},[i]);let Ae=rt(()=>{Xe(false),Zt.setItem(po,"true")},[]);Te(()=>{n&&He&&Ae()},[n,He,Ae]);let Ye=rt(D=>{if(D.id.startsWith("empty-")||le.current)return;let[w,X]=J.iconSelect.pulse,V=performance.now(),q=150,_=te=>{let ce=te-V;if(ce<q){let s=$e(ce/q);z(1-(1-w.scale)*s),requestAnimationFrame(_)}else if(ce<q*2){let s=$e((ce-q)/q);z(w.scale+(X.scale-w.scale)*s),requestAnimationFrame(_)}else z(1)};requestAnimationFrame(_),setTimeout(()=>{D.onPress(),W()},J.iconSelect.actionDelay)},[J.iconSelect,W]),Qe=rt(D=>{if(le.current)return;let w=Math.max(0,Math.min(D,ae-1));w!==r&&we(w)},[ae,r]),De=j.buttonSize*S.centerButton.containerRatio,Ze=j.buttonSize*S.centerButton.borderRatio,St=j.buttonSize*S.centerButton.containerRatio/2+6,vt=C&&!M;return ge("div",{ref:ee,role:"dialog","aria-label":"Dial Menu","aria-modal":"true",style:{position:"fixed",inset:0,zIndex:1e4},children:[B("button",{type:"button","aria-label":"Close dial menu",tabIndex:0,onClick:W,style:{position:"absolute",inset:0,border:0,padding:0,backgroundColor:F.dialBackdrop,opacity:u}}),ge("div",{style:{position:"absolute",left:"50%",marginLeft:-j.circleSize/2,bottom:80,width:j.circleSize,height:j.circleSize,borderRadius:"50%",backgroundColor:F.dialBackground,border:`${S.circle.borderWidth}px solid ${F.dialBorder}`,boxShadow:`0 0 ${S.circle.shadowRadius}px ${Qt(F.dialShadow,S.circle.shadowOpacity)}`,transform:`scale(${p}) rotate(${x}deg)`,opacity:p>.01?1:0,overflow:"hidden"},children:[B("div",{style:{position:"absolute",inset:0,borderRadius:"50%",backgroundColor:F.dialGradient1,opacity:S.gradientLayers[0].opacity}}),B("div",{style:{position:"absolute",inset:0,top:"30%",left:"30%",borderRadius:"50%",backgroundColor:F.dialGradient2,opacity:S.gradientLayers[1].opacity}}),B("div",{style:{position:"absolute",inset:0,top:"50%",left:"50%",borderRadius:"50%",backgroundColor:F.dialGradient3,opacity:S.gradientLayers[2].opacity}}),Re.map(D=>B("div",{style:{position:"absolute",top:"50%",left:0,right:0,height:S.grid.lineHeight,transform:`rotate(${D}deg)`,transformOrigin:"center"},children:["left","right"].map(w=>B("div",{style:{position:"absolute",top:0,[w]:0,width:`calc(50% - ${St}px)`,height:S.grid.lineHeight,backgroundColor:F.dialGridLine}},w))},D)),B("div",{"data-testid":"dial-background","data-background":l,style:{position:"absolute",inset:0,pointerEvents:"none"},children:l==="hyperspace"?B(rr,{size:j.circleSize}):B(Vi,{focus:mr})}),L.map((D,w)=>B(fr,{icon:D,index:w,totalIcons:L.length,position:fe[w],progress:I,onPress:()=>Ye(D)},w)),ge("div",{style:{position:"absolute",left:"50%",top:"50%",width:De,height:De,marginLeft:-De/2,marginTop:-De/2,display:"flex",alignItems:"center",justifyContent:"center",backgroundColor:F.hubHalo,borderRadius:j.buttonSize,overflow:"hidden",transform:`scale(${R*k})`,opacity:R>.01?1:0},children:[B("div",{style:{position:"absolute",inset:0,backgroundColor:F.dialGradient1,opacity:.5,borderRadius:j.buttonSize}}),B("div",{style:{position:"absolute",inset:0,top:"20%",left:"20%",backgroundColor:F.dialGradient2,opacity:.3,borderRadius:j.buttonSize}}),B("div",{style:{position:"absolute",inset:0,top:"40%",left:"40%",backgroundColor:F.dialGradient3,opacity:.2,borderRadius:j.buttonSize}}),B("div",{style:{width:Ze,height:Ze,borderRadius:j.buttonSize*S.centerButton.borderRadiusRatio,backgroundColor:F.hubFill,display:"flex",alignItems:"center",justifyContent:"center"},children:B("button",{ref:Z,type:"button","aria-label":n?"Close settings":"Open settings",disabled:!a,onClick:a,onMouseEnter:()=>b(true),onMouseLeave:()=>b(false),style:{border:0,padding:0,background:"transparent",width:j.buttonSize,height:j.buttonSize,borderRadius:j.buttonSize/2,display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",cursor:a?"pointer":"default",transform:O?`scale(${J.centerHover.scale})`:"scale(1)",transition:`transform ${J.centerHover.duration}ms ease`,animation:vt&&!O?Se.pulse:"none"},children:n?ge("span",{style:{display:"flex",flexDirection:"column",alignItems:"center",fontSize:S.centerButton.text.fontSize-2,fontWeight:S.centerButton.text.fontWeight,fontFamily:S.centerButton.text.fontFamily,color:F.centerText,letterSpacing:S.centerButton.text.letterSpacing,textAlign:"center",textShadow:`0 0 4px ${F.centerTextGlow}`,textTransform:"uppercase",lineHeight:1.2},children:[B("span",{style:{marginBottom:-2},children:"CLOSE"}),B("span",{style:{marginTop:-2},children:"SETTINGS"})]}):B("span",{style:{fontSize:S.centerButton.text.fontSize,fontWeight:S.centerButton.text.fontWeight,fontFamily:S.centerButton.text.fontFamily,color:F.centerText,letterSpacing:S.centerButton.text.letterSpacing,textAlign:"center",textShadow:`0 0 4px ${F.centerTextGlow}`,textTransform:"uppercase"},children:o})})})]})]}),ae>1&&ge("div",{style:{position:"absolute",left:"50%",marginLeft:-j.circleSize/2,top:"calc(100% - 64px)",width:j.circleSize,display:"flex",alignItems:"center",justifyContent:"space-between",opacity:Math.min(1,p),transform:`scale(${Math.min(1,p)})`},children:[B(fo,{side:"prev",disabled:r<=0,onClick:()=>Qe(r-1)}),ge("span",{style:{padding:"6px 12px",fontSize:13,fontWeight:900,fontFamily:eo,letterSpacing:2,color:F.centerText,textShadow:`0 0 6px ${F.centerTextGlow}`},children:[String(r+1).padStart(2,"0"),ge("span",{style:{color:F.iconLabelMuted,textShadow:"none"},children:[" / ",String(ae).padStart(2,"0")]})]}),B(fo,{side:"next",disabled:r>=ae-1,onClick:()=>Qe(r+1)})]}),He&&!n&&B(uo,{title:"Welcome to Buoy!",message:"Tap the center button to configure and add tools to your dial menu.",onDismiss:Ae,showArrow:false})]})}import{persistentStorage as yo,devToolsStorageKeys as hr}from"@buoy-gg/shared-ui/web";import{recordUsage as yr,pruneUsage as br}from"@buoy-gg/floating-tools-core/web";var bo=hr.dial.usage(),je={},So=false,zt=null;function vo(){return zt||(zt=(async()=>{try{let e=await yo.getItem(bo);if(e){let t=JSON.parse(e);t&&typeof t=="object"&&(je=t)}}catch{}finally{So=true}})(),zt)}vo();function Sr(e){return e.map((t,o)=>({id:t,index:o,lastUsed:je[t]?.lastUsed??0})).sort((t,o)=>o.lastUsed-t.lastUsed||t.index-o.index).map(({id:t})=>t)}async function vr(e){if(!e)return;So||await vo();let t=Math.max(Date.now(),...Object.values(je).map(o=>o.lastUsed+1));je=br(yr(je,e,t),t);try{await yo.setItem(bo,JSON.stringify(je))}catch{}}import{useCallback as wr,useMemo as wo}from"react";import{persistentStorage as xr}from"@buoy-gg/shared-ui/web";import{useState as oe,useEffect as ze,useCallback as lt,useMemo as ct}from"react";import{settingsEventBus as dt}from"@buoy-gg/floating-tools-core/web";import{useSyncExternalStore as Cr}from"react";import{getRegisteredToolModule as Tr}from"@buoy-gg/shared-ui/web";var zr=()=>()=>{},kr=()=>null;function Ir(){let e=Tr("@buoy-gg/external-sync");return Cr(e?.subscribeSyncStatus??zr,()=>e?.getSyncStatus?.()??null,kr)}import{SentryIcon as Mr,WifiCircuitIcon as Rr,ImageOverlayIcon as Ar,RenderCountIcon as Dr,Info as kt,Layers as Er,ChevronRightIcon as xo,ChevronDown as Co,getStorageBackendType as Br,getUseLicense as Or,signOutOfBuoy as Fr,persistentStorage as ke,Trash2 as Lr,CheckCircle2 as To,LicenseEntryModal as Pr,BackgroundSwitcher as $r,night as h,NightCard as Ie,NightRows as It,NightSectionLabel as jr,NightFootnote as zo,NightSwitch as ko,NightButton as Mt,NightSegmented as Hr,NightBadge as ue,NightSeparator as Wr,monoFont as Io}from"@buoy-gg/shared-ui/web";import{EnvIcon as Mo,StorageIcon as Nr,RoutesIcon as Vr,NetworkIcon as Ur,QueryIcon as Kr,HighlighterIcon as _r,ReduxIcon as qr,EventsIcon as Gr}from"@buoy-gg/floating-tools-core/web";import Jr,{createContext as Xr,useContext as Yr}from"react";import{jsx as Qr}from"react/jsx-runtime";var Ro=Xr({});function Zr({children:e,defaultFloatingTools:t,defaultDialTools:o}){let a=Jr.useMemo(()=>({defaultFloatingTools:t,defaultDialTools:o}),[t,o]);return Qr(Ro.Provider,{value:a,children:e})}function Ao(){return Yr(Ro)}import es from"react";import{toolTheme as ts}from"@buoy-gg/shared-ui/web";import{jsx as Do}from"react/jsx-runtime";function os({label:e,size:t,color:o=ts.colors.text}){let a=Math.max(Array.from(e.replace(/[\uFE00-\uFE0F\u200D]/g,"")).length,1),n=a<=2?t:t*1.6,i=Math.max(7,Math.min(t*(a===1?.7:.62),n/(.62*a)));return Do("span",{style:{display:"inline-flex",minWidth:t,maxWidth:n,height:t,alignItems:"center",justifyContent:"center",color:o,fontSize:i,fontWeight:800,letterSpacing:.5,whiteSpace:"nowrap",overflow:"hidden"},children:e})}function Eo(e,t){return e==null?e:typeof e=="function"?es.createElement(e,{slot:t.slot,size:t.size,state:t.state,actions:t.actions}):typeof e=="string"||typeof e=="number"?Do(os,{label:String(e),size:t.size,color:t.color}):e}import{JsModal as ns,devToolsStorageKeys as Rt}from"@buoy-gg/shared-ui/web";import{useSafeAreaInsets as as}from"@buoy-gg/shared-ui/web";import{Fragment as Ve,jsx as c,jsxs as P}from"react/jsx-runtime";var ut="@react_buoy_dev_tools_settings",is=6,pt=e=>{let t=is,o={};for(let[a,n]of Object.entries(e))n&&t>0?(o[a]=true,t-=1):o[a]=false;return o},rs=(e,t)=>{let{userStatus:o,environment:a,...n}=e,i=t?Object.entries(n).filter(([l])=>t.includes(l)):Object.entries(n);return{...Object.fromEntries(i),environment:a??false}},Bo=(e,t,o)=>{if(!t)return e;let a={...e.dialTools,...t.dialTools??{}},n=o?.allowedDialKeys?Object.entries(a).filter(([i])=>o.allowedDialKeys?.includes(i)):Object.entries(a);return{dialTools:pt(Object.fromEntries(n)),floatingTools:rs({...e.floatingTools,...t.floatingTools??{}},o?.allowedFloatingKeys),globalSettings:{enableSharedModalDimensions:false,expandableWindowControls:true,...t.globalSettings??{}}}},ss=(e=[],t,o)=>{let a={},n={},i=new Set(t??[]),l=new Set(o??[]),u=!o||o.length===0;for(let d of e){let{id:p,slot:m="both"}=d;(m==="dial"||m==="both")&&(a[p]=u?true:l.has(p)),(m==="row"||m==="both")&&(n[p]=i.has(p))}return{dialTools:pt(a),floatingTools:{...n,environment:i.has("environment")},globalSettings:{enableSharedModalDimensions:false,expandableWindowControls:true}}},ls=({visible:e,onClose:t,onSettingsChange:o,initialSettings:a,availableApps:n=[],storage:i=ke,zIndex:l})=>{let{defaultFloatingTools:u,defaultDialTools:d}=Ao(),p=ct(()=>ss(n,u,d),[n,u,d]),m=ct(()=>Object.keys(p.dialTools),[p]),x=ct(()=>Object.keys(p.floatingTools).filter(s=>s!=="environment"),[p]),[g,R]=oe(a||Ue||p),[v,I]=oe(At??"floating"),[T,k]=oe(At!==null),[z,O]=oe(new Set),[b,M]=oe(false),[$,C]=oe(false);ze(()=>{let s=requestAnimationFrame(()=>C(true));return()=>cancelAnimationFrame(s)},[]);let A=Ir();ze(()=>{(async()=>{try{let s=await ke.getItem(Rt.settings.activeTab());if(s&&["floating","settings","pro"].includes(s)){let f=s;At=f,I(E=>E===f?E:f)}}catch{}finally{k(true)}})()},[]),ze(()=>{T&&ke.setItem(Rt.settings.activeTab(),v).catch(s=>{console.warn("Failed to save settings active tab:",s)})},[v,T]);let ee=Or()?.(),Z=ee?.isPro??false,G=!Z&&ee?.licenseKey?ee.error:null,le=ee?.errorKind==="transport",[K,ne]=oe(Oo),[J,Se]=oe(false),[me,ve]=oe(false),[j,Re]=oe(false),[fe,se]=oe([]),[we,ae]=oe(false),r=as(),L=Vt.get("window").height,W=Vt.get("window").width,He=Math.floor(L*.33),Xe=Math.min(W-32,400),Ae=lt(async()=>{try{let s=await i.getItem(ut);if(s){let f=JSON.parse(s),E=Bo(p,f,{allowedDialKeys:m,allowedFloatingKeys:x});Ue=E,R(Y=>Fo(Y,E)?Y:E);return}Ue=p,R(f=>Fo(f,p)?f:p)}catch(s){console.error("Failed to load dev tools settings:",s),R(p)}},[p,m,x,i]);ze(()=>{Ae()},[Ae]),ze(()=>{Br().then(s=>{Oo=s,ne(f=>f===s?f:s)})},[]),ze(()=>{j&&(ae(true),ke.getAllKeys().then(s=>{se(s.sort())}).catch(()=>{se([])}).finally(()=>{ae(false)}))},[j]);let Ye=async s=>{try{let f={...s,dialTools:pt(s.dialTools)};await i.setItem(ut,JSON.stringify(f)),Ue=f,R(f),o?.(f),dt.emit(f)}catch(f){console.error("Failed to save dev tools settings:",f)}},Qe=s=>{let f={...g,floatingTools:{...g.floatingTools,[s]:!g.floatingTools[s]}};Ye(f)},De=s=>{let f={...g,globalSettings:{...g.globalSettings,[s]:!g.globalSettings?.[s]}};Ye(f)},Ze=async()=>{Se(true),ve(false);try{await ke.clear(),ve(true),R(p),i!==ke&&await i.setItem(ut,JSON.stringify(p)),o?.(p),dt.emit(p),setTimeout(()=>ve(false),2e3)}catch(s){console.error("Failed to clear storage:",s)}finally{Se(false)}},St=lt(s=>{},[]),vt=s=>{let f=n.find(E=>E.id===s);return f?.description?f.description:s==="environment"?"Environment badge.":""},D=s=>s==="environment"?"Env Badge":n.find(f=>f.id===s)?.name??s.toUpperCase().replace(/_/g," "),w=s=>{if(!$)return null;switch(s){case"query":return c(Kr,{size:18});case"env":return c(Mo,{size:18});case"sentry":return c(Mr,{size:18,color:"#9945FF"});case"storage":return c(Nr,{size:18,bgColor:h.color.surface});case"wifi":case"query-wifi-toggle":return c(Rr,{size:18,colorPreset:"green",strength:4,noBackground:true});case"route-events":return c(Vr,{size:18,bgColor:h.color.surface});case"network":return c(Ur,{size:18});case"environment":return c(Mo,{size:18});case"debug-borders":return c(Er,{size:18,color:h.color.accent});case"highlight-updates":return c(Dr,{size:18,color:h.color.accent});case"highlight-updates-modal":return c(_r,{size:18});case"redux":return c(qr,{size:18});case"image-overlay":return c(Ar,{size:18});case"events":return c(Gr,{size:18});case"zustand":try{let{ZustandIcon:f}=_t("@buoy-gg/zustand/web");return c(f,{size:18})}catch{return c(kt,{size:18,color:h.color.textSecondary})}case"jotai":try{let{JotaiIcon:f}=_t("@buoy-gg/jotai/web");return c(f,{size:18})}catch{return c(kt,{size:18,color:h.color.textSecondary})}default:{let f=n.find(E=>E.id===s);return f?.icon!=null?Eo(f.icon,{slot:"row",size:18,color:f.color}):c(kt,{size:18,color:h.color.textSecondary})}}},X=(s,f,E,Y)=>{let he=vt(s);return P(et,{activeOpacity:E?1:.7,onPress:()=>!E&&Y(),accessibilityLabel:D(s),accessibilityRole:"button",style:[y.toolRow,E&&y.rowDisabled],children:[c(H,{style:y.toolIconSlot,children:w(s)}),P(H,{style:y.rowInfo,children:[P(N,{style:y.rowLabel,children:[D(s),E?" \xB7 max 6":""]}),he?c(N,{style:y.rowCaption,numberOfLines:1,children:he}):null]}),c(ko,{value:f,disabled:E,onValueChange:()=>Y()})]},s)},V=s=>{O(f=>{let E=new Set(f);return E.has(s)?E.delete(s):E.add(s),E})},q=(s,f,E,Y,he)=>{let ye=g.globalSettings?.[s]??false,Ee=z.has(s);return P(H,{children:[P(et,{activeOpacity:.7,onPress:()=>V(s),accessibilityLabel:f,style:y.settingRow,children:[P(H,{style:y.rowInfo,children:[c(N,{style:y.rowLabel,children:f}),c(N,{style:y.rowCaption,numberOfLines:Ee?0:1,children:E})]}),c(ko,{value:ye,onValueChange:()=>De(s)})]}),Ee&&P(H,{style:y.settingRowBody,children:[c(N,{style:y.settingRowBodyText,children:Y}),c(N,{style:y.settingRowBodyHint,children:he})]})]},s)},_=(s,f,E)=>P(H,{children:[c(jr,{children:s}),f,E]}),te=K==="filesystem"?c(ue,{label:"File System",tone:"accent"}):K==="asyncstorage"?c(ue,{label:"Async Storage",tone:"warning"}):K==="localstorage"?c(ue,{label:"Local Storage",tone:"accent"}):K==="memory"?c(ue,{label:"Memory",tone:"danger"}):c(ue,{label:"Loading\u2026",tone:"neutral"}),ce=()=>P(H,{style:y.container,children:[P(Nt,{style:y.scrollContent,showsVerticalScrollIndicator:false,contentContainerStyle:y.scrollContainer,children:[v==="floating"&&c(Ve,{children:_("Floating Tools",c(Ie,{glass:true,children:c(It,{children:Object.entries(g.floatingTools).map(([s,f])=>X(s,f,false,()=>Qe(s)))})}),c(zo,{children:"Tools switched on here appear in the floating bubble row."}))}),v==="settings"&&P(Ve,{children:[_("Background",c(Ie,{glass:true,padded:true,children:c($r,{embedded:true})})),_("Storage",P(Ie,{glass:true,children:[P(et,{activeOpacity:.7,onPress:()=>Re(!j),accessibilityLabel:"Storage Type",style:y.settingRow,children:[c(H,{style:y.rowInfo,children:c(N,{style:y.rowLabel,children:"Storage Type"})}),te,j?c(Co,{size:16,color:h.color.textTertiary}):c(xo,{size:16,color:h.color.textTertiary})]}),j&&P(Ve,{children:[P(H,{style:y.settingRowBody,children:[c(N,{style:y.settingRowBodyText,children:K==="filesystem"?"Settings persist independently and survive AsyncStorage.clear() calls during logout.":K==="asyncstorage"?"Settings may be lost if AsyncStorage is cleared during logout.":K==="localstorage"?"Settings are saved in this browser. Clearing site data removes them.":K==="memory"?"Settings are stored in memory only and will be lost on app restart.":"Checking storage backend\u2026"}),K==="asyncstorage"&&c(N,{style:[y.settingRowBodyText,y.bodyWarning],children:"Install expo-file-system to persist settings through logout flows."}),K==="memory"&&c(N,{style:[y.settingRowBodyText,y.bodyDanger],children:"No persistent storage available \u2014 install expo-file-system (best) or @react-native-async-storage/async-storage."})]}),c(Wr,{}),P(H,{style:y.storageExpanded,children:[P(H,{style:y.storageExpandedHeader,children:[c(N,{style:y.storageExpandedTitle,children:"SAVED SETTINGS"}),c(N,{style:y.storageExpandedCount,children:we?"\u2026":`${fe.length} keys`})]}),we?c(N,{style:y.storageKeyEmpty,children:"Loading\u2026"}):fe.length===0?c(N,{style:y.storageKeyEmpty,children:"No settings saved yet"}):c(Nt,{style:y.storageKeysList,nestedScrollEnabled:true,showsVerticalScrollIndicator:true,children:fe.map(s=>c(H,{style:y.storageKeyItem,children:c(N,{style:y.storageKeyText,numberOfLines:1,children:s.replace("@react_buoy_","")})},s))})]}),c(H,{style:y.cardButtonWrap,children:c(Mt,{label:me?"Cleared":J?"Clearing\u2026":"Clear All Settings",variant:me?"secondary":"destructive",size:"md",disabled:J,onPress:Ze,icon:me?c(To,{size:15,color:h.color.accent}):c(Lr,{size:15,color:J?h.color.textTertiary:h.color.danger})})})]})]})),A&&A.state!=="idle"&&_("Desktop Sync",P(Ie,{glass:true,children:[P(et,{activeOpacity:.7,onPress:()=>V("desktopSync"),accessibilityLabel:"Buoy Desktop",style:y.settingRow,children:[c(H,{style:y.rowInfo,children:c(N,{style:y.rowLabel,children:"Buoy Desktop"})}),A.state==="connected"?c(ue,{label:"Connected",tone:"accent"}):A.state==="connecting"?c(ue,{label:"Connecting\u2026",tone:"neutral"}):c(ue,{label:"Retrying",tone:"warning"}),z.has("desktopSync")?c(Co,{size:16,color:h.color.textTertiary}):c(xo,{size:16,color:h.color.textTertiary})]}),z.has("desktopSync")&&P(H,{style:y.settingRowBody,children:[P(N,{style:y.settingRowBodyText,children:[A.state==="connected"?"Streaming tool data to Buoy Desktop at ":"Trying to reach Buoy Desktop at ",c(N,{style:y.footnoteMono,children:A.targetURL??"(unknown URL)"}),A.state!=="connected"&&" \u2014 is the desktop app running? Override with the externalSync socketURL option if it runs elsewhere."]}),A.state==="retrying"&&A.lastError&&P(N,{style:[y.settingRowBodyText,y.bodyWarning],children:["Last error: ",A.lastError]})]})]})),_("Modal Behavior",c(Ie,{glass:true,children:P(It,{children:[q("enableSharedModalDimensions","Shared Modal Size","Sync dimensions across all tools","When enabled, all tool modals will share the same size and position. Resizing one modal will affect all others. When disabled, each tool remembers its own size and position independently.","Keep OFF for the best experience. This allows you to customize each tool's modal size separately."),Be.OS!=="web"?q("expandableWindowControls","Expand Controls","iPad-style expandable window buttons","When enabled, the window control buttons (minimize, toggle mode, close) start as small dots and expand into larger, easy-to-tap buttons when pressed. When disabled, buttons are directly tappable at their small size.","Keep ON for touch devices where the small buttons are hard to press. Turn OFF if you prefer direct single-tap access."):null]})}))]}),v==="pro"&&P(Ve,{children:[_("License",P(Ie,{glass:true,children:[P(H,{style:y.settingRow,children:[c(H,{style:y.rowInfo,children:c(N,{style:y.rowLabel,children:"License Status"})}),c(H,{testID:"buoy-settings-license-status",accessibilityLabel:Z?"License: Active":"License: Free",children:Z?c(ue,{label:"Active",tone:"accent"}):c(ue,{label:"Free",tone:"neutral"})})]}),ee?.tierSource==="session"?P(H,{style:y.settingRow,children:[c(H,{style:y.rowInfo,children:c(N,{style:y.rowLabel,children:"Signed in with Buoy"})}),c(Mt,{label:"Sign out",variant:"secondary",size:"md",onPress:()=>void Fr(),testID:"buoy-settings-signout"})]}):null]}),c(zo,{children:Z?"You have full access to all Buoy DevTools features.":G?le?`Couldn't reach the license server (${G}). A VPN or corporate proxy can block buoy.gg \u2014 turn it off and reload. Your key hasn't been rejected.`:`License check failed: ${G}.`:"Upgrade to Pro to unlock all features and support development."})),!Z&&P(Ve,{children:[_("Pro Features",c(Ie,{glass:true,children:c(It,{children:["Advanced Settings","Priority Support"].map(s=>P(H,{style:y.featureRow,children:[c(To,{size:16,color:h.color.accent}),c(N,{style:y.rowLabel,children:s})]},s))})})),c(Mt,{label:"Upgrade to Pro",variant:"primary",size:"lg",onPress:()=>M(true)})]})]})]}),c(Pr,{visible:b,onClose:()=>M(false),onSuccess:()=>M(false)})]});return c(ns,{visible:e,onClose:t,zIndex:l,variant:"night",header:{showToggleButton:false,customContent:c(H,{style:y.headerRow,children:c(Hr,{glass:true,tabs:[{key:"floating",label:"Floating"},{key:"settings",label:"Settings"},{key:"pro",label:"Pro"}],activeKey:v,onChange:s=>I(s)})})},initialMode:"bottomSheet",onModeChange:St,persistenceKey:Rt.settings.root(),enablePersistence:true,maxHeight:L-r.top,initialHeight:He,initialFloatingPosition:{x:(W-Xe)/2,y:r.top+20},enableGlitchEffects:true,children:ce()})},cs={dialTools:{},floatingTools:{environment:false},globalSettings:{enableSharedModalDimensions:false}},ds=(e,t)=>{let o=new Set(e??[]),a=new Set(t??[]),n={};for(let l of a)n[l]=true;let i={environment:o.has("environment")};for(let l of o)l!=="environment"&&(i[l]=true);return{dialTools:pt(n),floatingTools:i,globalSettings:{enableSharedModalDimensions:false}}},Ue=null,At=null,Oo=null,Fo=(e,t)=>JSON.stringify(e)===JSON.stringify(t);dt.addListener(e=>{e&&(Ue=e)});var us=()=>{let{defaultFloatingTools:e,defaultDialTools:t}=Ao(),o=ct(()=>!e&&!t?cs:ds(e,t),[e,t]),[a,n]=oe(o),i=lt(async()=>{try{let u=await ke.getItem(ut);if(u){let d=JSON.parse(u),p=Bo(o,d);n(p);return}n(o)}catch(u){console.error("Failed to load dev tools settings:",u),n(o)}},[o]);ze(()=>{i();let u=dt.addListener(d=>{try{d&&n(d)}catch{}});return()=>{u()}},[i]);let l=lt(()=>{i()},[i]);return{settings:a,refreshSettings:l}},y=Ut.create({container:{flex:1,backgroundColor:"transparent"},headerRow:{flexDirection:"row",alignItems:"center",paddingLeft:h.gutter,paddingRight:h.gutter,paddingBottom:8},scrollContent:{flex:1},scrollContainer:{paddingHorizontal:h.gutter,paddingTop:8,paddingBottom:24,gap:h.groupGap},toolRow:{flexDirection:"row",alignItems:"center",gap:12,paddingHorizontal:h.rowPadH,paddingVertical:12},settingRow:{flexDirection:"row",alignItems:"center",gap:10,paddingHorizontal:h.rowPadH,paddingVertical:h.rowPadV,minHeight:52},featureRow:{flexDirection:"row",alignItems:"center",gap:10,paddingHorizontal:h.rowPadH,paddingVertical:12},rowDisabled:{opacity:.4},toolIconSlot:{width:24,alignItems:"center"},rowInfo:{flex:1,gap:2},rowLabel:{color:h.color.text,fontSize:h.font.row,fontWeight:"500"},rowCaption:{color:h.color.textTertiary,fontSize:h.font.label},settingRowBody:{paddingHorizontal:h.rowPadH,paddingBottom:h.rowPadV,gap:6},settingRowBodyText:{color:h.color.textSecondary,fontSize:h.font.caption,lineHeight:h.font.caption*1.45},settingRowBodyHint:{color:h.color.textTertiary,fontSize:h.font.caption,lineHeight:h.font.caption*1.45},bodyWarning:{color:h.color.warning},bodyDanger:{color:h.color.danger},cardButtonWrap:{paddingHorizontal:h.cardPad,paddingTop:10,paddingBottom:h.cardPad},storageExpanded:{paddingHorizontal:h.rowPadH,paddingVertical:12,gap:8},storageExpandedHeader:{flexDirection:"row",alignItems:"center"},storageExpandedTitle:{flex:1,color:h.color.textSecondary,fontSize:h.font.micro,fontWeight:"600",letterSpacing:.5},storageExpandedCount:{color:h.color.textTertiary,fontSize:h.font.micro},storageKeysList:{maxHeight:150},storageKeyItem:{backgroundColor:h.color.glassElevated,borderRadius:h.radius.segment,paddingHorizontal:10,paddingVertical:7,marginBottom:4},storageKeyText:{color:h.color.textSecondary,fontSize:h.font.micro,fontFamily:Io},storageKeyEmpty:{color:h.color.textTertiary,fontSize:h.font.caption,fontStyle:"italic"},footnoteMono:{fontFamily:Io,fontSize:h.font.label,color:h.color.textSecondary}});import{jsx as Lo}from"react/jsx-runtime";var ps=[];function Po({visible:e,onClose:t,availableTools:o=ps,defaultFloatingTools:a,defaultDialTools:n,storage:i=xr,onSettingsChange:l}){let u=wo(()=>({getItem:async m=>i.getItem(m),setItem:async(m,x)=>i.setItem(m,x)}),[i]),d=wo(()=>o.map(m=>({...m,name:m.name??m.id,icon:typeof m.icon=="function"?x=>m.icon(x.size):m.icon})),[o]),p=wr(m=>{l?.(m)},[l]);return Lo(Zr,{defaultFloatingTools:a,defaultDialTools:n,children:Lo(ls,{visible:e,onClose:t,zIndex:11e3,availableApps:d,storage:u,onSettingsChange:p})})}import{persistentStorage as $o}from"@buoy-gg/shared-ui/web";import{createContext as ms,useCallback as be,useContext as gs,useEffect as Dt,useMemo as fs,useRef as Ke,useState as jo}from"react";var hs=(e,t,o)=>{if(t.singleton){let n=e.find(i=>i.id===t.id);if(n){let i=n.minimized??false;return{instanceId:n.instanceId,wasMinimized:i,apps:[...e.filter(l=>l.instanceId!==n.instanceId),{...n,minimized:false}]}}}let a=o();return{instanceId:a,wasMinimized:false,apps:[...e,{...t,instanceId:a}]}};import{createContext as ys,useCallback as Ho,useContext as bs,useEffect as mt,useMemo as Ss,useRef as Wo,useState as gt}from"react";import{JsModal as vs,ModalHeader as _e,HeaderSearchButton as ws,TickProvider as xs,ToolScreenHeaderContext as Cs,devToolsStorageKeys as No,buoyColors as Vo,gameUIColors as Et}from"@buoy-gg/shared-ui/web";import{jsx as ie,jsxs as ft}from"react/jsx-runtime";var qe=()=>{},Ts={search:"",isSearchActive:false,clearSearch:qe,close:qe,minimize:qe,showToast:qe,setHeaderOverride:qe},Uo=ys(null);function Ko(){return bs(Uo)??Ts}function zs(e,t){let{setHeaderOverride:o}=Ko();mt(()=>(o(e),()=>o(null)),t)}var _o=2200,ks={success:Et.success,error:Et.error,info:Et.info};function Is({message:e,type:t,nonce:o}){let a=Wo(new xe.Value(0)).current;mt(()=>{a.setValue(0),xe.sequence([xe.timing(a,{toValue:1,duration:150,useNativeDriver:true}),xe.delay(_o-450),xe.timing(a,{toValue:0,duration:300,useNativeDriver:true})]).start()},[o,a]);let n=ks[t];return ft(xe.View,{pointerEvents:"none",style:[ht.toast,{opacity:a,borderColor:n+"60"}],children:[ie(H,{style:[ht.toastDot,{backgroundColor:n}]}),ie(N,{style:ht.toastText,numberOfLines:2,children:e})]})}function Ms({app:e,config:t,visible:o,zIndex:a,onClose:n,onMinimize:i,initialModalState:l,enableSharedModalDimensions:u,bodyProps:d}){let p=e.component,[m,x]=gt(false),[g,R]=gt(""),[v,I]=gt(null),[T,k]=gt(null),z=Wo(null),O=Ho(()=>{x(false),R("")},[]),b=Ho((K,ne="info")=>{z.current&&clearTimeout(z.current),k(J=>({message:K,type:ne,nonce:(J?.nonce??0)+1})),z.current=setTimeout(()=>k(null),_o)},[]);mt(()=>()=>{z.current&&clearTimeout(z.current)},[]);let M=Ss(()=>({search:m?g:"",isSearchActive:m,clearSearch:O,close:n,minimize:()=>i(),showToast:b,setHeaderOverride:I,instanceId:e.instanceId}),[g,m,O,n,i,b,e.instanceId]),$=v?.title??t.title??e.title??e.id,C=v?.subtitle??t.subtitle,A=v?.onBack,ee=v?.actions??t.headerActions,Z=v?.searchable??t.searchable;mt(()=>{!Z&&m&&O()},[Z,m,O]);let G=u?No.modal.root():No.custom(e.id).modal(),le=ft(_e,{children:[A&&!m&&ie(_e.Navigation,{onBack:A}),m?ie(_e.Search,{value:g,onChangeText:R,onCancel:O,placeholder:t.searchPlaceholder,testID:`tool-search-field-${e.id}`}):ie(_e.Content,{title:$,subtitle:C}),ft(_e.Actions,{children:[!m&&ee,Z&&!m&&ie(ws,{variant:"chip",testID:`tool-search-${e.id}`,onPress:()=>x(true)})]})]});return ie(Uo.Provider,{value:M,children:ie(vs,{visible:o,onClose:n,onBack:A,onMinimize:i,initialModalState:l,zIndex:a,persistenceKey:G,enablePersistence:true,initialMode:t.initialMode??"bottomSheet",header:{customContent:le,showToggleButton:true},disableScrollWrapper:true,styles:{},children:ft(H,{style:ht.bodyRoot,children:[ie(xs,{children:ie(Cs.Provider,{value:I,children:ie(p,{...d})})}),T&&ie(Is,{message:T.message,type:T.type,nonce:T.nonce})]})})})}var ht=Ut.create({bodyRoot:{flex:1,minHeight:0,backgroundColor:"transparent"},toast:{position:"absolute",bottom:16,alignSelf:"center",flexDirection:"row",alignItems:"center",gap:8,maxWidth:"86%",backgroundColor:Vo.card,borderWidth:1,borderRadius:8,paddingHorizontal:12,paddingVertical:8,shadowColor:"#000",shadowOpacity:.4,shadowRadius:8,shadowOffset:{width:0,height:2},elevation:6},toastDot:{width:6,height:6,borderRadius:3},toastText:{flex:1,fontSize:12,color:Vo.text}});import{Fragment as Rs,jsx as pe}from"react/jsx-runtime";var qo=ms(null),Go="@react_buoy_open_apps",Bt=44,As=12,Ds=100,Es=16,Bs=e=>({x:window.innerWidth-Bt-Es,y:window.innerHeight-Ds-Bt-e*(Bt+As)}),Jo=({children:e})=>{let[t,o]=jo([]),[a,n]=jo(false),i=Ke([]),l=Ke(null),u=Ke(false),d=Ke(false),p=Ke(false),m=be(b=>{let M="";return o($=>{let{apps:C,instanceId:A}=hs($,b,()=>`${b.id}-${Date.now()}-${Math.random().toString(36).slice(2)}`);return M=A,C}),M},[]),x=be(()=>{if(u.current||!d.current||!p.current)return;u.current=true;let b=l.current;if(!b||b.length===0){n(true);return}l.current=null,b.forEach(({id:M,minimized:$})=>{let C=i.current.find(A=>A.id===M);if(C&&C.component){let A=Eo(C.icon,{slot:"dial",size:20,color:C.color});m({id:C.id,title:C.name,component:C.component,props:C.props,modal:C.modal,launchMode:C.launchMode||"self-modal",singleton:C.singleton??true,icon:A,color:C.color,minimized:$})}}),n(true)},[m]);Dt(()=>{let b=false;return(async()=>{try{let M=await $o.getItem(Go);if(b)return;if(M){let $=JSON.parse(M),C;Array.isArray($)&&$.length>0&&(typeof $[0]=="string"?C=$.map(A=>({id:A,minimized:false})):C=$.filter(A=>typeof A=="object"&&A!==null&&typeof A.id=="string"),C.length&&(l.current=C))}}catch{}b||(d.current=true,x())})(),()=>{b=true}},[x]),Dt(()=>{if(!a)return;let b=t.map(M=>({id:M.id,minimized:M.minimized??false}));$o.setItem(Go,JSON.stringify(b))},[t,a]);let g=be(b=>{i.current=b,p.current=true,x()},[x]),R=be(b=>{o(M=>M.length?b?M.filter($=>$.instanceId!==b):M.slice(0,-1):M)},[]),v=be(()=>o([]),[]),I=be((b,M)=>{o($=>$.map(C=>C.instanceId===b?{...C,minimized:true,restoreState:M}:C))},[]),T=be((b,M)=>{o($=>$.map(C=>C.instanceId===b?{...C,minimized:false,restoreState:M??C.restoreState}:C))},[]),k=be(b=>t.find(M=>M.instanceId===b)?.minimized??false,[t]),z=t.some(b=>b.launchMode!=="toggle-only"&&!b.minimized);Dt(()=>{if(!z)return;let b=M=>{if(M.key!=="Escape"||M.defaultPrevented)return;let $=[...t].reverse().find(C=>C.launchMode!=="toggle-only"&&!C.minimized);$&&R($.instanceId)};return window.addEventListener("keydown",b),()=>window.removeEventListener("keydown",b)},[z,R,t]);let O=fs(()=>({openApps:t,isAnyOpen:z,open:m,close:R,closeAll:v,registerApps:g,minimize:I,restore:T,isMinimized:k}),[t,z,m,R,v,g,I,T,k]);return pe(qo.Provider,{value:O,children:e})},yt=()=>{let e=gs(qo);return e||{openApps:[],isAnyOpen:false,open:()=>"",close:()=>{},closeAll:()=>{},registerApps:()=>{},minimize:()=>{},restore:()=>{},isMinimized:()=>false}},Os=9e3,Fs={position:"fixed",inset:0,backgroundColor:"rgba(0,0,0,0.28)",display:"flex",alignItems:"center",justifyContent:"center"},Ls={maxHeight:"90%",width:"94%",borderRadius:12,backgroundColor:"white",overflow:"hidden"},Ps=({app:e,zIndex:t,onClose:o,onMinimize:a,minimizeTargetPosition:n,enableSharedModalDimensions:i})=>{let l=e.component,u=!e.minimized,d={...e.props??{},...i?{enableSharedModalDimensions:true}:{}};return e.modal&&(!e.launchMode||e.launchMode==="self-modal")?pe(Ms,{app:e,config:e.modal,visible:u,zIndex:t,onClose:o,onMinimize:a,initialModalState:e.restoreState,enableSharedModalDimensions:i,bodyProps:d}):e.launchMode==="self-modal"?pe(l,{...d,visible:u,onClose:o,onRequestClose:o,onMinimize:a,minimizeTargetPosition:n,instanceId:e.instanceId,zIndex:t,initialModalState:e.restoreState}):e.launchMode==="inline"?u?pe("div",{style:{position:"fixed",inset:0,zIndex:t,pointerEvents:"none"},children:pe(l,{...d,onClose:o,onMinimize:a,minimizeTargetPosition:n,instanceId:e.instanceId})}):null:pe("div",{style:{...Fs,zIndex:t,display:u?"flex":"none"},children:pe("div",{style:Ls,children:pe(l,{...d,onClose:o,onMinimize:a,minimizeTargetPosition:n,instanceId:e.instanceId})})})},Xo=()=>{let{openApps:e,close:t,minimize:o}=yt(),{settings:a}=us(),n=e.filter(u=>u.launchMode!=="toggle-only");if(n.length===0)return null;let i=n.filter(u=>u.minimized).length,l=Oi()??Bs(i);return pe(Rs,{children:n.map((u,d)=>pe(Ps,{app:u,zIndex:Os+d,onClose:()=>t(u.instanceId),onMinimize:p=>o(u.instanceId,p),enableSharedModalDimensions:a.globalSettings?.enableSharedModalDimensions===true,minimizeTargetPosition:l},u.instanceId))})};import{useCallback as $s,useEffect as Ot,useRef as js,useState as Yo,useSyncExternalStore as Qo}from"react";import{persistentStorage as Zo,getToolAttention as Ft,subscribeToolAttention as en}from"@buoy-gg/shared-ui/web";import{jsx as re,jsxs as bt}from"react/jsx-runtime";function Hs(e){return Qo(en,()=>Ft(e),()=>Ft(e))}var tn={needsInput:"#FF8329",done:"#20C997",failed:"#FF3B30"},on={needsInput:3,failed:2,done:1},nn=new Map;function an(e){let t=null;for(let a of e?e.split("|"):[]){let n=Ft(a);n&&(!t||on[n.kind]>on[t.kind])&&(t=n)}let o=nn.get(e);return o&&t&&o.kind===t.kind&&o.label===t.label?o:!o&&!t?null:(nn.set(e,t),t)}function Ws(e){let t=e.join("|");return Qo(en,()=>an(t),()=>an(t))}var rn=28,Lt=32,Pt=6,sn=8,ln=24,cn="@react_buoy_minimized_stack_expanded",Ns=80,dn=2e3,Vs=6e3,Us="#1A1A1A",Ge="#888888";function un({down:e=false}){return re("svg",{width:12,height:12,viewBox:"0 0 24 24","aria-hidden":"true",style:{transform:e?"rotate(180deg)":void 0},children:re("path",{d:"M18 15l-6-6-6 6",fill:"none",stroke:Ge,strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})})}function Ks({id:e,title:t,icon:o,index:a,onPress:n}){let i=Hs(e),l=js(null);return Ot(()=>{let u=true,d,p=()=>{l.current?.animate([{transform:"translateX(0) scale(1)",opacity:1,offset:0},{transform:"translateX(3px) scale(1.05)",opacity:.4,offset:.2},{transform:"translateX(-3px) scale(1.1)",opacity:1,offset:.4},{transform:"translateX(2px) scale(1.0)",opacity:.6,offset:.6},{transform:"translateX(-1px) scale(0.95)",opacity:1,offset:.8},{transform:"translateX(0) scale(1)",opacity:1,offset:1}],{duration:Ns,easing:"linear"})},m=x=>{let g=x?500+Math.random()*1500+a*200:dn+Math.random()*(Vs-dn)+a*300;d=setTimeout(()=>{u&&(p(),m(false))},g)};return m(true),()=>{u=false,clearTimeout(d)}},[a]),bt("button",{type:"button","aria-label":i?`${t} \u2014 ${i.label}. Restore`:`Restore ${t}`,onClick:n,style:{width:Lt,height:Lt,display:"flex",alignItems:"center",justifyContent:"center",background:"none",border:"none",padding:0,cursor:"pointer",position:"relative"},children:[re("div",{ref:l,style:{display:"flex",alignItems:"center",justifyContent:"center"},children:o}),i?re("span",{"aria-hidden":true,"data-testid":`buoy-dock-badge-${e}-${i.kind}`,style:{position:"absolute",top:0,right:0,minWidth:12,height:12,borderRadius:6,padding:"0 2px",boxSizing:"border-box",background:tn[i.kind],border:"1.5px solid #0C0C0C",color:"#000",fontSize:8,fontWeight:800,lineHeight:"9px",display:"flex",alignItems:"center",justifyContent:"center"},children:i.kind==="needsInput"?"!":""}):null]})}function _s({containerWidth:e=32}){let{openApps:t,restore:o}=yt(),a=t.filter(g=>g.minimized&&g.launchMode!=="toggle-only"),[n,i]=Yo(false),[l,u]=Yo(false),d=Ws(a.map(g=>g.id));Ot(()=>{let g=false;return(async()=>{let R=await Zo.getItem(cn);!g&&R==="true"&&i(true),g||u(true)})(),()=>{g=true}},[]),Ot(()=>{l&&Zo.setItem(cn,n?"true":"false")},[n,l]);let p=$s(g=>{o(g)},[o]);if(a.length===0)return null;let m=sn+a.length*Lt+(a.length-1)*Pt+Pt+ln+4,x={backgroundColor:Us,borderTopLeftRadius:6,borderTopRightRadius:6,borderTop:`1px solid ${Ge}66`,borderLeft:`1px solid ${Ge}66`,borderRight:`1px solid ${Ge}66`,borderBottom:"none",boxSizing:"border-box"};return bt("div",{style:{height:rn,overflow:"visible",position:"relative"},children:[re("div",{style:{position:"absolute",bottom:"var(--buoy-stack-bottom, 0px)",top:"var(--buoy-stack-top, auto)",left:0,width:e,maxHeight:"var(--buoy-stack-space, calc(100vh - 48px))",visibility:n?"visible":"hidden",height:n?m:0,opacity:n?1:0,overflowY:"auto",overflowX:"hidden",transition:"height 200ms ease, opacity 200ms ease",pointerEvents:n?"auto":"none",...x},children:bt("div",{style:{height:m,display:"flex",flexDirection:"column",alignItems:"center",paddingTop:sn,gap:Pt,boxSizing:"border-box"},children:[[...a].reverse().map((g,R)=>re(Ks,{id:g.id,title:g.title||g.id,icon:g.icon??re("span",{style:{color:"#fff",fontSize:13},children:(g.title||g.id).slice(0,1).toUpperCase()}),index:R,onPress:()=>p(g.instanceId)},g.instanceId)),re("button",{type:"button","aria-label":"Collapse",onClick:()=>i(false),style:{width:"100%",height:ln,marginTop:3,display:"flex",alignItems:"center",justifyContent:"center",background:"none",border:"none",cursor:"pointer",padding:0},children:re(un,{down:true})})]})}),bt("button",{type:"button","aria-label":`Show ${a.length} minimized tools`,tabIndex:n?-1:0,"aria-hidden":n,onClick:()=>i(true),style:{position:"absolute",bottom:0,left:0,width:e,height:rn,display:"flex",flexDirection:"row",alignItems:"center",justifyContent:"center",gap:2,cursor:"pointer",padding:0,opacity:n?0:1,transform:n?"scale(0.9)":"scale(1)",transition:"opacity 200ms ease, transform 200ms ease",pointerEvents:n?"none":"auto",...x},children:[re(un,{}),d?re("span",{"aria-hidden":true,"data-testid":"buoy-dock-peek-attention",style:{position:"absolute",top:2,right:2,minWidth:11,height:11,borderRadius:6,padding:"0 2px",boxSizing:"border-box",background:tn[d.kind],border:"1.5px solid #0C0C0C",color:"#000",fontSize:8,fontWeight:800,lineHeight:"9px",display:"flex",alignItems:"center",justifyContent:"center"},children:d.kind==="needsInput"?"!":""}):null,a.length>1&&re("span",{style:{fontSize:9,fontWeight:600,color:Ge,marginLeft:1},children:a.length})]})]})}import{registerToolModules as qs}from"@buoy-gg/shared-ui/web";import{createElement as Gs}from"react";function pn(e){let t=e.icon;return{...e,icon:typeof t=="function"?o=>Gs(t,{size:o,slot:e.slot??"both",color:e.color}):()=>t}}import{createContext as Js,useContext as Xs,useState as mn,useMemo as gn}from"react";import{jsx as Ys}from"react/jsx-runtime";var fn=Js(null);function hn({children:e}){let[t,o]=mn(false),[a,n]=mn(false),i=gn(()=>t||a,[t,a]),l=gn(()=>({isDialOpen:t,isToolOpen:a,isDevToolsActive:i,setDialOpen:o,setToolOpen:n}),[t,a,i]);return Ys(fn.Provider,{value:l,children:e})}function $t(){let e=Xs(fn);return e||{isDialOpen:false,isToolOpen:false,isDevToolsActive:false,setDialOpen:()=>{},setToolOpen:()=>{}}}import*as Qs from"@buoy-gg/license/web";import*as Zs from"@buoy-gg/shared-ui/web";import*as el from"@buoy-gg/shared-ui/web/dataViewer";function yn(e){qs({core:{useDevToolsVisibility:$t},license:Qs,"shared-ui":Zs,"shared-ui/dataViewer":el,...e});let t=new Set;return Object.values(e).flatMap(o=>Object.entries(o).flatMap(([a,n])=>!a.endsWith("Preset")||!n||typeof n.id!="string"||!n.component||t.has(n.id)?[]:(t.add(n.id),[pn(n)])))}import{useEffect as jt,useMemo as Ht,useRef as tl}from"react";import{LicenseManager as ol,useLicense as nl}from"@buoy-gg/license/web";import{registerToolAdapters as al}from"@buoy-gg/shared-ui/web";function bn(e){return typeof e=="object"&&e!==null?e:void 0}function il({isDevelopment:e,isLicensed:t,externalSync:o,isAvailable:a}){if(o===false||!a)return false;if(e)return true;let n=bn(o);return t&&n?.enableInRelease===true&&vn(n.socketURL,n)===null}var Sn="http://localhost:42831";function rl(e){return e==="localhost"||e.endsWith(".localhost")||/^127\.\d+\.\d+\.\d+$/.test(e)||e==="[::1]"||e==="::1"||e==="10.0.2.2"}function vn(e,t){let o=e??Sn;if(t?.allowInsecureNetwork===true)return null;let a;try{a=new URL(o)}catch{return`[Buoy] externalSync.socketURL "${o}" isn't a valid URL, so this release build won't connect to Buoy Desktop.`}return a.protocol==="https:"||a.protocol==="wss:"||rl(a.hostname)?null:`[Buoy] This release build won't connect to ${o}: release sync carries real user data, and plain http to another machine is readable by anyone on the same network. Use a simulator, an emulator or adb reverse (localhost), an https:// broker, or set externalSync.allowInsecureNetwork: true for a network you trust.`}var sl={impersonate:["searchUsers","startImpersonation","resumeImpersonation","updateSettings","removeFromHistory","clearHistory"]};function ll(e,t,o){if(t)return e;let a=null;for(let[n,i]of Object.entries(sl)){if(o?.includes(n))continue;let l=e[n];if(!l?.actions)continue;let u={...l.actions};for(let d of i)d in u&&(u[d]=()=>{throw new Error(`${n}.${d} is off in release builds. To allow it from Buoy Desktop and the MCP, pass externalSync={{ enableInRelease: true, releaseActions: ["${n}"] }}.`)});a??(a={...e}),a[n]={...l,actions:u}}return a??e}import{useEffect as cl,useMemo as dl,useState as ul}from"react";import{devToolsStorageKeys as pl,persistentStorage as ml}from"@buoy-gg/shared-ui/web";var gl=8;function fl(){let e="";for(;e.length<gl;)e+=(Math.random()*16|0).toString(16);return e}function hl(e){return e.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/(^-|-$)/g,"")}function yl({appName:e,hardwareName:t,platform:o,installId:a,deviceId:n}){let i=hl(e??"buoy")||"buoy",l=e??"Buoy Device",u=t?.trim()||o;return n?{deviceId:n,deviceName:`${l} (${u})`}:{deviceId:`${i}-${o}-${a}`,deviceName:`${l} (${u} \xB7 ${a.slice(-4)})`}}function bl(){let e=globalThis;try{return e.sessionStorage??null}catch{return null}}async function Sl({platform:e=Be.OS,store:t,mint:o=fl}={}){let a=pl.sync.deviceId(),n=t===void 0?e==="web"?bl():ml:t;if(!n)return o();try{let i=await n.getItem(a);if(i&&i.length>0)return i;let l=o();return await n.setItem(a,l),l}catch{return o()}}var Wt=null;function vl(){return Wt||(Wt=Sl()),Wt}function wl(e,t){let o=e?.deviceId,a=e?.deviceName,n=t.loadId??vl,i=t.platform??Be.OS,[l,u]=ul(null);return cl(()=>{if(o)return;let d=false;return n().then(p=>{d||u(p)}),()=>{d=true}},[o,n]),dl(()=>{if(!o&&!l)return null;let d=yl({appName:t.appName,hardwareName:t.hardwareName,platform:i,installId:l??"",deviceId:o});return a?{...d,deviceName:a}:d},[o,a,l,t.appName,t.hardwareName,i])}import{getDevServerOrigin as xl,resolveReloadStrategy as Cl,scheduleReloadApp as Tl}from"@buoy-gg/shared-ui/web";var wn=Date.now(),xn=xl(),zl={platform:Be.OS,isTV:Be.isTV===true,isTVOS:Be.isTVOS===true},Cn={version:3,getSnapshot:()=>{let e=Cl("auto");return{startedAt:wn,devServerOrigin:xn,device:zl,reload:{available:e!==null,strategy:e}}},subscribe:e=>()=>{},actions:{ping:()=>({ok:true,startedAt:wn,devServerOrigin:xn}),reloadApp:e=>{let t=e??{},{strategy:o,delayMs:a}=Tl({strategy:t.strategy,delayMs:t.delayMs});return{scheduled:true,strategy:o,delayMs:a}}}};import{Fragment as kl,jsx as Me,jsxs as Il}from"react/jsx-runtime";var Ml=["ConsoleRoot","RouteTracker","ReactQueryTracker","ReduxAutoInstrument","PerfMonitorRoot","AutomationResumer","ImagesRoot"],Rl=["DebugBordersStandaloneOverlay","HighlightUpdatesOverlay","ImageOverlayStandalone","PerfMonitorOverlay","JsTopHudOverlay","ImpersonateOverlay","ScenariosOverlay"];function Al(e){let t=Ht(()=>Object.fromEntries(Object.entries(e.modules).map(([a,n])=>[a.replace(/^@buoy-gg\//,"").replace(/\/web$/,""),n])),[e.modules]),o=t["react-query"];return o?.useReactQuerySyncAdapter?Me(Dl,{...e,modules:t,query:o}):Me(Tn,{...e,modules:t})}function Dl(e){let t=e.query.useReactQuerySyncAdapter();return Me(Tn,{...e,queryAdapter:t})}function Tn({modules:e,apps:t,requiredEnvVars:o,externalSync:a,headless:n,sentryGetClient:i,queryAdapter:l}){let{isPro:u,tier:d}=nl(),p=Ht(()=>{let T={app:Cn};for(let[k,z]of Object.entries(e))for(let[O,b]of Object.entries(z))O.endsWith("SyncAdapter")&&b&&typeof b=="object"&&(T[k]=b);l&&(T.query=l),e.env?.createEnvSyncAdapter&&(T.env=e.env.createEnvSyncAdapter(o??[]));for(let k of t??[])k.sync&&(T[`custom:${k.id}`]=k.sync);return T},[e,t,o,l]),m=tl(p);m.current=p,jt(()=>al(()=>m.current),[]),jt(()=>{let T=[],k=z=>{let O=z?.();typeof O=="function"&&T.push(O)};return k(e.network?.startNetworkCapture),k(e.storage?.startBrowserStorageCapture),k(e.assets?.startBrowserAssetCapture),e.storage?.storageSyncAdapter?.subscribe&&k(()=>e.storage.storageSyncAdapter.subscribe(()=>{})),e["focus-inspector"]?.focusInspectorSyncAdapter?.subscribe&&k(()=>e["focus-inspector"].focusInspectorSyncAdapter.subscribe(()=>{})),()=>{for(let z of T.reverse())z()}},[e]);let x=e["external-sync"],g=typeof tt<"u"?tt:process.env.NODE_ENV!=="production",R=il({isDevelopment:g,isLicensed:u,externalSync:a,isAvailable:!!x}),v=bn(a);!g&&v?.enableInRelease&&El(vn(v.socketURL,v));let I=e.sentry?.SentryRoot;return Il(kl,{children:[Object.entries(e).flatMap(([T,k])=>Ml.map(z=>{let O=k[z];return O?Me(O,{},`${T}:${z}`):null})),I&&Me(I,{getClient:i}),Object.entries(e).flatMap(([T,k])=>Rl.map(z=>{let O=k[z];return O&&(!n||z==="ScenariosOverlay"||z==="ImpersonateOverlay")?Me(O,{},`${T}:${z}`):null})),R&&Me(Bl,{module:x,tools:p,options:v,isPro:u,tier:d,dev:g})]})}var zn=null;function El(e){!e||e===zn||(zn=e,console.warn(e))}function Bl({module:e,tools:t,options:o,isPro:a,tier:n,dev:i}){let l=wl(o,{appName:typeof document>"u"?null:document.title||location.hostname,hardwareName:"Browser",platform:"web"}),{socket:u}=e.useExternalSyncSocket({deviceName:l?.deviceName??"Buoy Browser",socketURL:o?.socketURL??(i?e.getDefaultSocketURL():Sn),persistentDeviceId:l?.deviceId??null,platform:"web",enableLogs:o?.enableLogs});jt(()=>{if(!u)return;let m=()=>{u.connected&&ol.hasAccountAccess()&&u.emit("device-license",{isPro:a?"1":"0",tier:n})};return m(),u.on("connect",m),()=>{u.off("connect",m)}},[u,a,n]);let d=o?.releaseActions?.join(",")??"",p=Ht(()=>ll(t,i,d?d.split(","):void 0),[t,i,d]);return e.useExternalSync({tools:p,socket:u,deviceId:l?.deviceId??null,enableLogs:o?.enableLogs}),null}import{useState as kn}from"react";import{createPortal as Ol}from"react-dom";import{useBuoySession as Fl}from"@buoy-gg/license/web";import{Fragment as In,jsx as Je,jsxs as Mn}from"react/jsx-runtime";var Rn="#20C997";function Ll(){let{status:e,signIn:t,signOut:o}=Fl(),[a,n]=kn(false),[i,l]=kn(null);if(typeof document>"u")return null;let u=()=>{l(null),n(true),t().catch(p=>l(p instanceof Error?p.message:"Sign-in did not work. Try again.")).finally(()=>n(false))},d=e.state==="active";return Ol(Je("div",{"data-buoy-signin":"",style:{position:"fixed",right:"max(16px, env(safe-area-inset-right))",bottom:"max(20px, env(safe-area-inset-bottom))",zIndex:99999,maxWidth:"min(320px, calc(100vw - 32px))",padding:d||i?"12px 14px":0,borderRadius:16,background:d||i?"#0f1419":"transparent",color:"#e6edf3",boxShadow:d||i?"0 10px 30px rgba(0,0,0,.35)":"none",fontFamily:"system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif",fontSize:14,lineHeight:1.45},children:d?Mn(In,{children:[Je("div",{"data-testid":"buoy-signin-needs-plan",children:"Buoy on a live site needs a Pro or Business plan."}),Je("button",{type:"button",onClick:()=>void o(),style:Pl,"data-testid":"buoy-signout",children:"Sign out"})]}):Mn(In,{children:[i?Je("div",{role:"alert",style:{marginBottom:10},"data-testid":"buoy-signin-error",children:i}):null,Je("button",{type:"button",onClick:u,disabled:a,"data-testid":"buoy-signin",style:{display:"inline-flex",alignItems:"center",gap:8,padding:"10px 16px",border:"none",borderRadius:999,background:Rn,color:"#04130d",fontWeight:600,fontSize:14,cursor:a?"wait":"pointer",boxShadow:"0 8px 24px rgba(0,0,0,.3)"},children:a?"Signing in\u2026":"Sign in to Buoy"})]})}),document.body)}var Pl={marginTop:8,padding:0,border:"none",background:"none",color:Rn,fontSize:14,cursor:"pointer",textDecoration:"underline"};import{jsx as U,jsxs as An}from"react/jsx-runtime";var $l={},Dn="@react_buoy_floating_menu_tooltip_shown",jl=Ce;function Hl({size:e=14,color:t="#20C997"}){let o=Math.max(2,e/4),a=Math.max(1,e/16);return U("div",{style:{display:"grid",gridTemplateColumns:`repeat(3, ${o}px)`,gap:a,width:e,height:e,alignContent:"center",justifyContent:"center"},children:Array.from({length:9}).map((n,i)=>U("div",{style:{width:o,height:o,borderRadius:o/2,backgroundColor:t}},i))})}function Wl(e){return U(hn,{children:U(Jo,{children:U(Nl,{...e})})})}function Nl({environment:e,userRole:t,availableEnvironments:o,onEnvironmentSwitch:a,apps:n,modules:i=$l,externalSync:l,requiredEnvVars:u,sentryGetClient:d,disableHints:p=false,headless:m=false}){let[x,g]=wt(false),[R,v]=wt(false),I=zi(false),T=yt(),k=Oe(()=>Gt([...yn(i),...n??[]]),[n,i]),z=$t(),O=T.openApps.some(r=>!r.minimized);de(()=>{z.setDialOpen(x)},[x,z.setDialOpen]),de(()=>{z.setToolOpen(O||R)},[O,R,z.setToolOpen]);let{registerApps:b}=T;de(()=>{b(k.map(r=>{let L=r.icon;return{...r,icon:typeof L=="function"?({size:W})=>L(W):L}}))},[b,k]);let M=Oe(()=>k.map(r=>({id:r.id,name:r.name,description:r.description,slot:r.slot})),[k]),{settings:$}=ki({availableTools:M,storage:jl});de(()=>{let r=false;return(async()=>{let[L,W]=await Promise.all([Ce.getItem(nt.dial.isOpen()),Ce.getItem(nt.settings.modalOpen())]);r||(L==="true"&&g(true),W==="true"&&(g(true),v(true)),I.current=true)})(),()=>{r=true}},[]),de(()=>{I.current&&Ce.setItem(nt.dial.isOpen(),x?"true":"false")},[x]),de(()=>{I.current&&Ce.setItem(nt.settings.modalOpen(),R?"true":"false")},[R]);let C=Fe(r=>{if(vr(r.id),r.launchMode==="toggle-only"){r.onPress?.();return}if(r.component){let L=typeof r.icon=="function"?r.icon(20):r.icon;T.open({id:r.id,title:r.name||ot(r.id),component:r.component,props:r.props,modal:r.modal,launchMode:r.launchMode||"self-modal",singleton:r.singleton??true,icon:L,color:r.color||qt(r.id)})}else r.onPress?.()},[T]),A=Oe(()=>xt(k,"dial").map(r=>{let L=r.color||qt(r.id),W;return typeof r.icon=="string"?W=r.icon:typeof r.icon=="function"?W=r.icon(32):W=null,{id:r.id,name:r.name||ot(r.id),icon:W,unavailable:!r.component&&!r.onPress,color:L,onPress:()=>{C(r),g(false)}}}),[k,C]),ee=Oe(()=>{if(!x)return A;let r=new Map(A.map(L=>[L.id,L]));return Sr(A.map(L=>L.id)).map(L=>r.get(L)).filter(L=>!!L)},[x,A]),Z=Oe(()=>xt(k,"row").filter(r=>$.floatingTools[r.id]===true&&(r.component||r.onPress)),[k,$.floatingTools]),G=Oe(()=>k.map(r=>({id:r.id,name:r.name||ot(r.id),description:r.description||Ii(r.id),slot:r.slot,icon:r.icon,color:r.color})),[k]),[le,K]=wt(false),ne=T.openApps.some(r=>!r.minimized);de(()=>{if(p)return;let r=false,L=setTimeout(async()=>{let W=await Ce.getItem(Dn);!r&&!W&&K(true)},1e3);return()=>{r=true,clearTimeout(L)}},[p]);let J=Fe(()=>{K(false),Ce.setItem(Dn,"true")},[]),Se=Fe(()=>{J(),g(true)},[J]),me=Fe(()=>{g(false),v(false)},[]),ve=Fe(()=>{v(r=>!r)},[]),j=Fe(()=>v(false),[]),Re=!!(o?.length&&a),fe=$.floatingTools.environment!==false,se=le&&!x&&!ne;de(()=>{if(!se)return;let r=W=>{(!(W.target instanceof Element)||!W.target.closest("[data-buoy-root]"))&&J()},L=W=>{W.key==="Escape"&&J()};return document.addEventListener("pointerdown",r,true),document.addEventListener("keydown",L),()=>{document.removeEventListener("pointerdown",r,true),document.removeEventListener("keydown",L)}},[se,J]);let we=T.openApps.some(r=>r.minimized&&r.launchMode!=="toggle-only"),ae=U(Al,{modules:i,apps:n,requiredEnvVars:u,externalSync:l,headless:m,sentryGetClient:d});return m?ae:An("div",{"data-buoy-root":"",style:{display:"contents"},children:[ae,se&&U("div",{style:{position:"fixed",inset:0,backgroundColor:"rgba(0,0,0,0.85)",zIndex:1e4,pointerEvents:"none"}}),An(Jt,{enablePositionPersistence:!se,pushToSide:x||ne,suspendPointerEvents:x,centerOnboarding:se,minimizedStack:we?U(_s,{}):void 0,hasMinimizedStack:we,children:[e&&fe&&!Re&&U(Mi,{environment:e}),Re&&fe&&U(Ri,{currentEnvironment:e??"local",availableEnvironments:o,onSelect:a}),t?U(Xt,{userRole:t,onPress:Se}):U("button",{"aria-label":"Open dev tools",onClick:Se,style:{display:"flex",alignItems:"center",justifyContent:"center",padding:"6px 8px",background:"none",border:"none",cursor:"pointer"},children:U(Hl,{})}),Z.map(r=>U("button",{"aria-label":r.name||ot(r.id),title:r.description,onClick:()=>C(r),style:{display:"flex",alignItems:"center",justifyContent:"center",padding:"4px 6px",borderRadius:6,background:"none",border:"none",cursor:"pointer"},children:typeof r.icon=="function"?r.icon(16):r.icon},r.id))]}),se&&U(uo,{title:"Welcome to Buoy!",message:"Grab and position this menu wherever you want, then tap the icon to open your tools.",onDismiss:J}),x&&U(ho,{icons:ee,onClose:me,centerLabel:"BUOY",onCenterPress:ve,settingsOpen:R,hintsDisabled:p}),U(Po,{visible:R,onClose:j,availableTools:G,onSettingsChange:r=>{}}),U(Xo,{}),U(wi,{})]})}function Vl(e){let{access:t,isPro:o,licenseKey:a}=Ci();de(()=>{xi.configure(e.licenseKey)},[e.licenseKey]);let n=e.licenseKey===void 0||e.licenseKey.trim().toUpperCase()===(a??""),i=typeof tt<"u"?tt:process.env.NODE_ENV!=="production",l=n&&t.status==="admitted";return de(()=>{i||t.status==="initializing"||(o&&l?vi():Kt())},[i,o,l,t.status]),!i&&!o?e.signIn&&!e.headless?U(Ll,{}):null:l?U(Wl,{...e}):e.headless?null:U(Ti,{})}import{useSettings as Ul,useFloatingTools as Kl,getToolLabel as _l,getToolDescription as ql,getToolColor as Gl,settingsColors as Jl,settingsStyles as Xl,dialColors as Yl,dialStyles as Ql}from"@buoy-gg/floating-tools-react/web";export{ua as Activity,Si as AlertCircle,ma as AlertTriangle,Jo as AppHostProvider,Xo as AppOverlay,_a as Badge,On as BarChart3,jn as BaseEventStore,Ln as Bookmark,fa as Bug,oi as Button,di as Card,ya as Check,Sa as CheckCircle,ba as CheckSquare,wa as ChevronDown,Ca as ChevronLeft,za as ChevronRight,Ia as ChevronUp,Ra as Clock,$n as Cloud,gi as CollapsibleSection,Aa as Copy,ai as CopyButton,Pn as DataViewer,En as Database,hn as DevToolsVisibilityProvider,ho as DialMenu,Qa as DiffViewer,Bi as Divider,Hn as Download,Nn as Edit3,bi as EmptyState,Fn as EventStepperFooter,Da as Eye,Ea as EyeOff,Ba as FileJson,Oa as FileText,Fa as Filter,La as FlaskConical,Vl as FloatingDevTools,Jt as FloatingTools,Un as GitBranch,Pa as Globe,_n as HardDrive,$a as Hash,Gn as HelpCircle,Xn as Home,Qn as Image,ja as Info,Xa as InfoRow,ca as JsModal,Wa as Key,Va as Layers,ea as Link,Ka as Lock,oa as Maximize2,aa as Minus,ra as Palette,qa as Pause,la as Pin,Ja as Play,Ya as Plus,Za as Power,ri as PowerToggle,ti as RefreshCw,Wn as RelativeTime,da as Route,li as Row,ni as Search,Bn as SearchBar,pi as SectionHeader,pa as Server,ii as Settings,Po as SettingsModal,si as Shield,ga as Smartphone,ha as Square,Ga as StatusDot,hi as TabSelector,va as Timer,ci as Trash2,xa as Unlock,Ta as Upload,ui as User,Xt as UserStatus,ka as Users,mi as Wifi,fi as X,Ma as XCircle,yi as Zap,Cn as appSyncAdapter,Di as autoDiscoverWebPresets,Gt as autoDiscoverWithCustom,Kt as clearReleaseOptIn,sa as copyToClipboard,pn as createWebTool,yn as createWebTools,Ai as defaultToolPresets,na as devToolsStorageKeys,Yl as dialColors,Ql as dialStyles,Vn as formatBytes,Kn as formatDuration,qn as formatNumber,Ei as getEnabledTools,Gl as getToolColor,ql as getToolDescription,_l as getToolLabel,xt as getToolsBySlot,Na as methodColor,ta as persistentStorage,Yn as safeStringify,Jl as settingsColors,Xl as settingsStyles,Ha as statusColor,ei as toolTheme,Jn as truncateMiddle,Ua as typeColor,yt as useAppHost,$t as useDevToolsVisibility,Kl as useFloatingTools,Zn as usePersistedState,ia as useSafeAreaInsets,Ul as useSettings,zs as useToolHeader,Ko as useToolHost};
|
|
10
|
+
`,document.head.appendChild(e),co=true}var Ct=Le.accent;function uo({title:e,message:t,onDismiss:o,showArrow:a=true}){let[n,i]=io(false),[l,u]=io(false);cr(()=>{mr();let p=requestAnimationFrame(()=>i(true));return()=>cancelAnimationFrame(p)},[]);let d={fontFamily:so,textTransform:"uppercase"};return Pe("div",{style:{position:"fixed",left:"50%",bottom:pr(),transform:`translateX(-50%) scale(${n?1:.8})`,opacity:n?1:0,transition:"transform 300ms cubic-bezier(0.34, 1.3, 0.64, 1), opacity 300ms ease",zIndex:10002,pointerEvents:"auto"},children:lo("div",{style:{position:"relative",animation:n?"buoyOnboardPulse 3s ease-in-out infinite":"none"},children:[Pe("div",{style:{position:"absolute",inset:-4,borderRadius:18,backgroundColor:"#FFFFFF",opacity:.06}}),lo("div",{style:{position:"relative",maxWidth:280,backgroundColor:Le.dialBackground,borderRadius:16,border:`1px solid ${Le.dialBorder}`,padding:20,boxShadow:`0 0 20px ${ro(Le.dialShadow,.6)}`,display:"flex",flexDirection:"column",alignItems:"center",gap:8},children:[Pe("span",{style:{...d,fontSize:16,fontWeight:900,letterSpacing:1,color:Ct,textAlign:"center"},children:e}),Pe("span",{style:{fontFamily:so,fontSize:13,lineHeight:"20px",color:Le.centerText,textAlign:"center"},children:t}),Pe("button",{onClick:o,onMouseDown:()=>u(true),onMouseUp:()=>u(false),onMouseLeave:()=>u(false),style:{...d,marginTop:8,borderRadius:8,border:"none",backgroundColor:Ct,padding:"10px 24px",fontSize:14,fontWeight:900,letterSpacing:1.5,color:"#000000",cursor:"pointer",opacity:l?.7:1,transform:l?"scale(0.96)":"scale(1)",transition:"transform 100ms ease, opacity 100ms ease"},children:"Got it!"})]}),a&&Pe("div",{style:{position:"absolute",left:"50%",bottom:dr,marginLeft:-12,width:0,height:0,borderLeft:"12px solid transparent",borderRight:"12px solid transparent",borderTop:`${ur}px solid ${Ct}`,filter:`drop-shadow(0 0 10px ${ro(Le.dialShadow,.5)})`,animation:n?"buoyOnboardArrowBounce 1.6s ease-in-out infinite":"none"}})]})})}import{Fragment as gr,jsx as B,jsxs as ge}from"react/jsx-runtime";var fr={x:.5,y:.5},po="@react_buoy_settings_tooltip_shown",mo=false;function hr(){if(mo||typeof document>"u")return;let e=document.createElement("style");e.textContent=Ni(),document.head.appendChild(e),mo=true}var $e=e=>1-Math.pow(1-e,3),Tt=e=>e*e*e;function yr({icon:e,index:t,totalIcons:o,position:a,progress:n,onPress:i}){let[l,u]=Q(false),[d,p]=Q(false),m=!e.icon&&e.id.startsWith("empty-"),x=!m&&e.unavailable===true,g=!m&&!x,{icons:R}=Yt,v=Hi(t,o),I=0;n<=v[1]?I=0:n<=v[2]?I=(n-v[1])/(v[2]-v[1]):I=1,I=Math.max(0,Math.min(1,I));let T=Wi,k=R.pressIn.scale,z=I*(d?k:l?1.1:1),O=0;I<=0?O=0:I<=.3?O=I:O=.3+(I-.3)*(.7/.7);let b=a.x*I,M=a.y*I;return B("button",{role:"menuitem","aria-label":m?"Empty slot":e.name,"aria-disabled":!g,tabIndex:g?0:-1,onClick:g?i:void 0,onMouseEnter:()=>g&&u(true),onMouseLeave:()=>{u(false),p(false)},onMouseDown:()=>g&&p(true),onMouseUp:()=>p(false),style:{position:"absolute",left:"50%",top:"50%",width:T,height:T,marginLeft:-T/2,marginTop:-T/2,display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",cursor:g?"pointer":"default",transform:`translate(${b}px, ${M}px) scale(${z})`,opacity:O,transition:l||d?"transform 100ms ease":"none",background:"none",border:"none",padding:0},children:m?B("div",{style:{width:S.emptySlot.dotSize,height:S.emptySlot.dotSize,borderRadius:S.emptySlot.dotSize/2,backgroundColor:F.emptyDotBackground,border:`${S.emptySlot.borderWidth}px solid ${F.emptyDotBorder}`}}):ge(gr,{children:[B("div",{style:{position:"absolute",width:`${S.icon.gradientBgSizePercent}%`,height:`${S.icon.gradientBgSizePercent}%`,borderRadius:S.icon.gradientBgBorderRadius,backgroundColor:"rgba(0, 0, 0, 0.2)",opacity:S.icon.gradientBgOpacity}}),B("div",{style:{position:"absolute",width:`${S.icon.innerGlowSizePercent}%`,height:`${S.icon.innerGlowSizePercent}%`,borderRadius:S.icon.innerGlowBorderRadius,backgroundColor:"rgba(255, 255, 255, 0.02)",opacity:S.icon.innerGlowOpacity}}),B("div",{style:{marginBottom:S.icon.wrapperMarginBottom,display:"flex",alignItems:"center",justifyContent:"center",fontSize:32,filter:l?"brightness(1.2)":"none"},children:e.icon}),B("span",{style:{fontSize:e.name.length>8?Math.max(S.icon.label.fontSize*.7,S.icon.label.fontSize*8/e.name.length):S.icon.label.fontSize,fontWeight:S.icon.label.fontWeight,fontFamily:S.icon.label.fontFamily,color:F.iconLabel,letterSpacing:S.icon.label.letterSpacing,marginTop:S.icon.label.marginTop,textTransform:"uppercase",whiteSpace:"nowrap"},children:e.name}),x&&B("span",{style:{fontSize:S.icon.label.fontSize-1,fontWeight:S.icon.label.fontWeight,fontFamily:S.icon.label.fontFamily,letterSpacing:S.icon.label.letterSpacing,color:Ui.muted,textTransform:"uppercase",whiteSpace:"nowrap"},children:"Unavailable"})]})})}function go({side:e,color:t}){return B("svg",{width:18,height:18,viewBox:"0 0 24 24","aria-hidden":"true",focusable:"false",children:(e==="prev"?[[15,18,9,12],[9,12,15,6]]:[[9,18,15,12],[15,12,9,6]]).map(([o,a,n,i],l)=>B("line",{x1:o,y1:a,x2:n,y2:i,stroke:t,strokeWidth:2},l))})}function fo({side:e,disabled:t,onClick:o}){let[a,n]=Q(false),i=t?F.emptyDotBorder:F.accent;return ge("button",{type:"button","aria-label":`${e==="prev"?"Previous":"Next"} dial page`,disabled:t,onClick:o,onMouseDown:()=>!t&&n(true),onMouseUp:()=>n(false),onMouseLeave:()=>n(false),style:{display:"flex",alignItems:"center",gap:4,padding:"10px 16px",borderRadius:10,border:`1px solid ${F.dialBorder}`,backgroundColor:F.dialBackground,color:t?F.iconLabelMuted:F.centerText,fontSize:12,fontWeight:900,fontFamily:eo,letterSpacing:1.5,textTransform:"uppercase",cursor:t?"default":"pointer",opacity:t?.4:1,boxShadow:t?"none":`0 0 8px ${Qt(F.dialShadow,.4)}`,transform:a?"scale(0.92)":"scale(1)",transition:"transform 100ms ease"},children:[e==="prev"&&B(go,{side:"prev",color:i}),e==="prev"?"PREV":"NEXT",e==="next"&&B(go,{side:"next",color:i})]})}function ho({icons:e,onClose:t,centerLabel:o="MENU",onCenterPress:a,settingsOpen:n=false,hintsDisabled:i=false}){let{id:l}=_i(),[u,d]=Q(0),[p,m]=Q(0),[x,g]=Q(0),[R,v]=Q(0),[I,T]=Q(0),[k,z]=Q(1),[O,b]=Q(false),[M,$]=Q(false),[C,A]=Q(false),ee=it(null),Z=it(null),q=it(null),ce=it(false),{entrance:K,exit:ne,interaction:J}=Yt,Se=Vi(),[me,ve]=Q(()=>({width:window.innerWidth,height:window.innerHeight}));Te(()=>{let D=()=>ve({width:window.innerWidth,height:window.innerHeight});return window.addEventListener("resize",D),()=>window.removeEventListener("resize",D)},[]);let j=at(()=>Pi({screenWidth:me.width,maxCircleSize:Math.max(120,Math.min(320,me.height-96))}),[me]),Re=at(()=>ji(),[]),fe=at(()=>$i(We,j.iconRadius),[j.iconRadius]),[se,we]=Q(0),ae=Math.max(1,Math.ceil(e.length/We)),r=Math.min(se,ae-1),L=at(()=>{let D=r*We,w=[...e.slice(D,D+We)];for(;w.length<We;)w.push({id:`empty-${w.length}`,name:"",icon:null,onPress:()=>{}});return w},[e,r]);Te(()=>{hr()},[]),Te(()=>{let D=K.backdrop.duration,w=K.dial.rotation.duration,X=K.centerButton.delay,V=K.icons.delay,G=K.icons.duration,_=performance.now(),te=de=>{let s=de-_;d(Math.min(1,s/D));let f=Math.min(1,s/400),E=$e(f)*1.1;f>.7&&(E-=(f-.7)*.33),f>=1&&(E=1),m(Math.max(0,Math.min(1.05,E)));let Y=Math.min(1,s/w);if(g($e(Y)*360),s>=X){let ye=Math.min(1,(s-X)/300),Ee=$e(ye)*1.15;ye>.6&&(Ee-=(ye-.6)*.375),ye>=1&&(Ee=1),v(Math.max(0,Math.min(1.05,Ee)))}if(s>=V){let ye=Math.min(1,(s-V)/G);T($e(ye))}let he=V+G;s<he?q.current=requestAnimationFrame(te):(d(1),m(1),g(360),v(1),T(1),A(true))};return q.current=requestAnimationFrame(te),()=>{q.current&&cancelAnimationFrame(q.current)}},[]);let W=rt(()=>{if(ce.current)return;ce.current=true,$(true),q.current&&cancelAnimationFrame(q.current);let D=performance.now(),w=ne.icons.duration,X=ne.centerButton.duration,V=ne.dialScale.duration,G=Math.max(X,V),_=ne.backdrop.duration,te=de=>{let s=de-D;if(s<w){let Y=Tt(s/w);T(1-Y),q.current=requestAnimationFrame(te);return}let f=w;if(s<f+G){T(0);let Y=Math.min(1,(s-f)/X),he=Math.min(1,(s-f)/V);v(1-Tt(Y)),m(1-Tt(he)),q.current=requestAnimationFrame(te);return}let E=f+G;if(s<E+_){m(0),v(0);let Y=(s-E)/_;d(1-Y),q.current=requestAnimationFrame(te);return}d(0),t()};q.current=requestAnimationFrame(te)},[ne,t]);Te(()=>{let D=document.activeElement,w=ee.current;return()=>{D?.isConnected&&(document.activeElement===document.body||w?.contains(document.activeElement))&&D.focus()}},[]),Te(()=>{if(n)return;Z.current?.focus();let D=w=>{let X=ee.current;if(X){if(w.key==="Escape")w.preventDefault(),W();else if(w.key==="Tab"){let V=Array.from(X.querySelectorAll('button:not(:disabled):not([aria-disabled="true"]), [tabindex="0"]')).filter(te=>te.getClientRects().length>0),G=V[0],_=V[V.length-1];(!X.contains(document.activeElement)||(w.shiftKey?document.activeElement===G:document.activeElement===_))&&(w.preventDefault(),(w.shiftKey?_:G)?.focus())}else if(["ArrowRight","ArrowDown","ArrowLeft","ArrowUp","Home","End"].includes(w.key)){let V=Array.from(X.querySelectorAll('[role="menuitem"]:not([aria-disabled="true"])')),G=V.indexOf(document.activeElement);if(G<0||!V.length)return;w.preventDefault();let _=w.key==="Home"?0:w.key==="End"?V.length-1:(G+(w.key==="ArrowRight"||w.key==="ArrowDown"?1:-1)+V.length)%V.length;V[_].focus()}}};return document.addEventListener("keydown",D),()=>document.removeEventListener("keydown",D)},[W,n]);let[He,Xe]=Q(false);Te(()=>{if(i)return;let D=false,w=setTimeout(async()=>{let X=await Zt.getItem(po);!D&&!X&&Xe(true)},1200);return()=>{D=true,clearTimeout(w)}},[i]);let Ae=rt(()=>{Xe(false),Zt.setItem(po,"true")},[]);Te(()=>{n&&He&&Ae()},[n,He,Ae]);let Ye=rt(D=>{if(D.id.startsWith("empty-")||ce.current)return;let[w,X]=J.iconSelect.pulse,V=performance.now(),G=150,_=te=>{let de=te-V;if(de<G){let s=$e(de/G);z(1-(1-w.scale)*s),requestAnimationFrame(_)}else if(de<G*2){let s=$e((de-G)/G);z(w.scale+(X.scale-w.scale)*s),requestAnimationFrame(_)}else z(1)};requestAnimationFrame(_),setTimeout(()=>{D.onPress(),W()},J.iconSelect.actionDelay)},[J.iconSelect,W]),Qe=rt(D=>{if(ce.current)return;let w=Math.max(0,Math.min(D,ae-1));w!==r&&we(w)},[ae,r]),De=j.buttonSize*S.centerButton.containerRatio,Ze=j.buttonSize*S.centerButton.borderRatio,St=j.buttonSize*S.centerButton.containerRatio/2+6,vt=C&&!M;return ge("div",{ref:ee,role:"dialog","aria-label":"Dial Menu","aria-modal":"true",style:{position:"fixed",inset:0,zIndex:1e4},children:[B("button",{type:"button","aria-label":"Close dial menu",tabIndex:0,onClick:W,style:{position:"absolute",inset:0,border:0,padding:0,backgroundColor:F.dialBackdrop,opacity:u}}),ge("div",{style:{position:"absolute",left:"50%",marginLeft:-j.circleSize/2,bottom:80,width:j.circleSize,height:j.circleSize,borderRadius:"50%",backgroundColor:F.dialBackground,border:`${S.circle.borderWidth}px solid ${F.dialBorder}`,boxShadow:`0 0 ${S.circle.shadowRadius}px ${Qt(F.dialShadow,S.circle.shadowOpacity)}`,transform:`scale(${p}) rotate(${x}deg)`,opacity:p>.01?1:0,overflow:"hidden"},children:[B("div",{style:{position:"absolute",inset:0,borderRadius:"50%",backgroundColor:F.dialGradient1,opacity:S.gradientLayers[0].opacity}}),B("div",{style:{position:"absolute",inset:0,top:"30%",left:"30%",borderRadius:"50%",backgroundColor:F.dialGradient2,opacity:S.gradientLayers[1].opacity}}),B("div",{style:{position:"absolute",inset:0,top:"50%",left:"50%",borderRadius:"50%",backgroundColor:F.dialGradient3,opacity:S.gradientLayers[2].opacity}}),Re.map(D=>B("div",{style:{position:"absolute",top:"50%",left:0,right:0,height:S.grid.lineHeight,transform:`rotate(${D}deg)`,transformOrigin:"center"},children:["left","right"].map(w=>B("div",{style:{position:"absolute",top:0,[w]:0,width:`calc(50% - ${St}px)`,height:S.grid.lineHeight,backgroundColor:F.dialGridLine}},w))},D)),B("div",{"data-testid":"dial-background","data-background":l,style:{position:"absolute",inset:0,pointerEvents:"none"},children:l==="hyperspace"?B(lr,{size:j.circleSize}):B(Ki,{focus:fr})}),L.map((D,w)=>B(yr,{icon:D,index:w,totalIcons:L.length,position:fe[w],progress:I,onPress:()=>Ye(D)},w)),ge("div",{style:{position:"absolute",left:"50%",top:"50%",width:De,height:De,marginLeft:-De/2,marginTop:-De/2,display:"flex",alignItems:"center",justifyContent:"center",backgroundColor:F.hubHalo,borderRadius:j.buttonSize,overflow:"hidden",transform:`scale(${R*k})`,opacity:R>.01?1:0},children:[B("div",{style:{position:"absolute",inset:0,backgroundColor:F.dialGradient1,opacity:.5,borderRadius:j.buttonSize}}),B("div",{style:{position:"absolute",inset:0,top:"20%",left:"20%",backgroundColor:F.dialGradient2,opacity:.3,borderRadius:j.buttonSize}}),B("div",{style:{position:"absolute",inset:0,top:"40%",left:"40%",backgroundColor:F.dialGradient3,opacity:.2,borderRadius:j.buttonSize}}),B("div",{style:{width:Ze,height:Ze,borderRadius:j.buttonSize*S.centerButton.borderRadiusRatio,backgroundColor:F.hubFill,display:"flex",alignItems:"center",justifyContent:"center"},children:B("button",{ref:Z,type:"button","aria-label":n?"Close settings":"Open settings",disabled:!a,onClick:a,onMouseEnter:()=>b(true),onMouseLeave:()=>b(false),style:{border:0,padding:0,background:"transparent",width:j.buttonSize,height:j.buttonSize,borderRadius:j.buttonSize/2,display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",cursor:a?"pointer":"default",transform:O?`scale(${J.centerHover.scale})`:"scale(1)",transition:`transform ${J.centerHover.duration}ms ease`,animation:vt&&!O?Se.pulse:"none"},children:n?ge("span",{style:{display:"flex",flexDirection:"column",alignItems:"center",fontSize:S.centerButton.text.fontSize-2,fontWeight:S.centerButton.text.fontWeight,fontFamily:S.centerButton.text.fontFamily,color:F.centerText,letterSpacing:S.centerButton.text.letterSpacing,textAlign:"center",textShadow:`0 0 4px ${F.centerTextGlow}`,textTransform:"uppercase",lineHeight:1.2},children:[B("span",{style:{marginBottom:-2},children:"CLOSE"}),B("span",{style:{marginTop:-2},children:"SETTINGS"})]}):B("span",{style:{fontSize:S.centerButton.text.fontSize,fontWeight:S.centerButton.text.fontWeight,fontFamily:S.centerButton.text.fontFamily,color:F.centerText,letterSpacing:S.centerButton.text.letterSpacing,textAlign:"center",textShadow:`0 0 4px ${F.centerTextGlow}`,textTransform:"uppercase"},children:o})})})]})]}),ae>1&&ge("div",{style:{position:"absolute",left:"50%",marginLeft:-j.circleSize/2,top:"calc(100% - 64px)",width:j.circleSize,display:"flex",alignItems:"center",justifyContent:"space-between",opacity:Math.min(1,p),transform:`scale(${Math.min(1,p)})`},children:[B(fo,{side:"prev",disabled:r<=0,onClick:()=>Qe(r-1)}),ge("span",{style:{padding:"6px 12px",fontSize:13,fontWeight:900,fontFamily:eo,letterSpacing:2,color:F.centerText,textShadow:`0 0 6px ${F.centerTextGlow}`},children:[String(r+1).padStart(2,"0"),ge("span",{style:{color:F.iconLabelMuted,textShadow:"none"},children:[" / ",String(ae).padStart(2,"0")]})]}),B(fo,{side:"next",disabled:r>=ae-1,onClick:()=>Qe(r+1)})]}),He&&!n&&B(uo,{title:"Welcome to Buoy!",message:"Tap the center button to configure and add tools to your dial menu.",onDismiss:Ae,showArrow:false})]})}import{persistentStorage as yo,devToolsStorageKeys as br}from"@buoy-gg/shared-ui/web";import{recordUsage as Sr,pruneUsage as vr}from"@buoy-gg/floating-tools-core/web";var bo=br.dial.usage(),je={},So=false,zt=null;function vo(){return zt||(zt=(async()=>{try{let e=await yo.getItem(bo);if(e){let t=JSON.parse(e);t&&typeof t=="object"&&(je=t)}}catch{}finally{So=true}})(),zt)}vo();function wr(e){return e.map((t,o)=>({id:t,index:o,lastUsed:je[t]?.lastUsed??0})).sort((t,o)=>o.lastUsed-t.lastUsed||t.index-o.index).map(({id:t})=>t)}async function xr(e){if(!e)return;So||await vo();let t=Math.max(Date.now(),...Object.values(je).map(o=>o.lastUsed+1));je=vr(Sr(je,e,t),t);try{await yo.setItem(bo,JSON.stringify(je))}catch{}}import{useCallback as Cr,useMemo as wo}from"react";import{persistentStorage as Tr}from"@buoy-gg/shared-ui/web";import{useState as oe,useEffect as ze,useCallback as lt,useMemo as ct}from"react";import{settingsEventBus as dt}from"@buoy-gg/floating-tools-core/web";import{useSyncExternalStore as zr}from"react";import{getRegisteredToolModule as kr}from"@buoy-gg/shared-ui/web";var Ir=()=>()=>{},Mr=()=>null;function Rr(){let e=kr("@buoy-gg/external-sync");return zr(e?.subscribeSyncStatus??Ir,()=>e?.getSyncStatus?.()??null,Mr)}import{SentryIcon as Ar,WifiCircuitIcon as Dr,ImageOverlayIcon as Er,RenderCountIcon as Br,Info as kt,Layers as Or,ChevronRightIcon as xo,ChevronDown as Co,getStorageBackendType as Fr,getUseLicense as Lr,signOutOfBuoy as Pr,persistentStorage as ke,Trash2 as $r,CheckCircle2 as To,LicenseEntryModal as jr,BackgroundSwitcher as Hr,night as h,NightCard as Ie,NightRows as It,NightSectionLabel as Wr,NightFootnote as zo,NightSwitch as ko,NightButton as Mt,NightSegmented as Nr,NightBadge as ue,NightSeparator as Vr,monoFont as Io}from"@buoy-gg/shared-ui/web";import{EnvIcon as Mo,StorageIcon as Ur,RoutesIcon as Kr,NetworkIcon as _r,QueryIcon as Gr,HighlighterIcon as qr,ReduxIcon as Jr,EventsIcon as Xr}from"@buoy-gg/floating-tools-core/web";import Yr,{createContext as Qr,useContext as Zr}from"react";import{jsx as es}from"react/jsx-runtime";var Ro=Qr({});function ts({children:e,defaultFloatingTools:t,defaultDialTools:o}){let a=Yr.useMemo(()=>({defaultFloatingTools:t,defaultDialTools:o}),[t,o]);return es(Ro.Provider,{value:a,children:e})}function Ao(){return Zr(Ro)}import os from"react";import{toolTheme as ns}from"@buoy-gg/shared-ui/web";import{jsx as Do}from"react/jsx-runtime";function as({label:e,size:t,color:o=ns.colors.text}){let a=Math.max(Array.from(e.replace(/[\uFE00-\uFE0F\u200D]/g,"")).length,1),n=a<=2?t:t*1.6,i=Math.max(7,Math.min(t*(a===1?.7:.62),n/(.62*a)));return Do("span",{style:{display:"inline-flex",minWidth:t,maxWidth:n,height:t,alignItems:"center",justifyContent:"center",color:o,fontSize:i,fontWeight:800,letterSpacing:.5,whiteSpace:"nowrap",overflow:"hidden"},children:e})}function Eo(e,t){return e==null?e:typeof e=="function"?os.createElement(e,{slot:t.slot,size:t.size,state:t.state,actions:t.actions}):typeof e=="string"||typeof e=="number"?Do(as,{label:String(e),size:t.size,color:t.color}):e}import{JsModal as is,devToolsStorageKeys as Rt}from"@buoy-gg/shared-ui/web";import{useSafeAreaInsets as rs}from"@buoy-gg/shared-ui/web";import{Fragment as Ve,jsx as c,jsxs as P}from"react/jsx-runtime";var ut="@react_buoy_dev_tools_settings",ss=6,pt=e=>{let t=ss,o={};for(let[a,n]of Object.entries(e))n&&t>0?(o[a]=true,t-=1):o[a]=false;return o},ls=(e,t)=>{let{userStatus:o,environment:a,...n}=e,i=t?Object.entries(n).filter(([l])=>t.includes(l)):Object.entries(n);return{...Object.fromEntries(i),environment:a??false}},Bo=(e,t,o)=>{if(!t)return e;let a={...e.dialTools,...t.dialTools??{}},n=o?.allowedDialKeys?Object.entries(a).filter(([i])=>o.allowedDialKeys?.includes(i)):Object.entries(a);return{dialTools:pt(Object.fromEntries(n)),floatingTools:ls({...e.floatingTools,...t.floatingTools??{}},o?.allowedFloatingKeys),globalSettings:{enableSharedModalDimensions:false,expandableWindowControls:true,...t.globalSettings??{}}}},cs=(e=[],t,o)=>{let a={},n={},i=new Set(t??[]),l=new Set(o??[]),u=!o||o.length===0;for(let d of e){let{id:p,slot:m="both"}=d;(m==="dial"||m==="both")&&(a[p]=u?true:l.has(p)),(m==="row"||m==="both")&&(n[p]=i.has(p))}return{dialTools:pt(a),floatingTools:{...n,environment:i.has("environment")},globalSettings:{enableSharedModalDimensions:false,expandableWindowControls:true}}},ds=({visible:e,onClose:t,onSettingsChange:o,initialSettings:a,availableApps:n=[],storage:i=ke,zIndex:l})=>{let{defaultFloatingTools:u,defaultDialTools:d}=Ao(),p=ct(()=>cs(n,u,d),[n,u,d]),m=ct(()=>Object.keys(p.dialTools),[p]),x=ct(()=>Object.keys(p.floatingTools).filter(s=>s!=="environment"),[p]),[g,R]=oe(a||Ue||p),[v,I]=oe(At??"floating"),[T,k]=oe(At!==null),[z,O]=oe(new Set),[b,M]=oe(false),[$,C]=oe(false);ze(()=>{let s=requestAnimationFrame(()=>C(true));return()=>cancelAnimationFrame(s)},[]);let A=Rr();ze(()=>{(async()=>{try{let s=await ke.getItem(Rt.settings.activeTab());if(s&&["floating","settings","pro"].includes(s)){let f=s;At=f,I(E=>E===f?E:f)}}catch{}finally{k(true)}})()},[]),ze(()=>{T&&ke.setItem(Rt.settings.activeTab(),v).catch(s=>{console.warn("Failed to save settings active tab:",s)})},[v,T]);let ee=Lr()?.(),Z=ee?.isPro??false,q=!Z&&ee?.licenseKey?ee.error:null,ce=ee?.errorKind==="transport",[K,ne]=oe(Oo),[J,Se]=oe(false),[me,ve]=oe(false),[j,Re]=oe(false),[fe,se]=oe([]),[we,ae]=oe(false),r=rs(),L=Vt.get("window").height,W=Vt.get("window").width,He=Math.floor(L*.33),Xe=Math.min(W-32,400),Ae=lt(async()=>{try{let s=await i.getItem(ut);if(s){let f=JSON.parse(s),E=Bo(p,f,{allowedDialKeys:m,allowedFloatingKeys:x});Ue=E,R(Y=>Fo(Y,E)?Y:E);return}Ue=p,R(f=>Fo(f,p)?f:p)}catch(s){console.error("Failed to load dev tools settings:",s),R(p)}},[p,m,x,i]);ze(()=>{Ae()},[Ae]),ze(()=>{Fr().then(s=>{Oo=s,ne(f=>f===s?f:s)})},[]),ze(()=>{j&&(ae(true),ke.getAllKeys().then(s=>{se(s.sort())}).catch(()=>{se([])}).finally(()=>{ae(false)}))},[j]);let Ye=async s=>{try{let f={...s,dialTools:pt(s.dialTools)};await i.setItem(ut,JSON.stringify(f)),Ue=f,R(f),o?.(f),dt.emit(f)}catch(f){console.error("Failed to save dev tools settings:",f)}},Qe=s=>{let f={...g,floatingTools:{...g.floatingTools,[s]:!g.floatingTools[s]}};Ye(f)},De=s=>{let f={...g,globalSettings:{...g.globalSettings,[s]:!g.globalSettings?.[s]}};Ye(f)},Ze=async()=>{Se(true),ve(false);try{await ke.clear(),ve(true),R(p),i!==ke&&await i.setItem(ut,JSON.stringify(p)),o?.(p),dt.emit(p),setTimeout(()=>ve(false),2e3)}catch(s){console.error("Failed to clear storage:",s)}finally{Se(false)}},St=lt(s=>{},[]),vt=s=>{let f=n.find(E=>E.id===s);return f?.description?f.description:s==="environment"?"Environment badge.":""},D=s=>s==="environment"?"Env Badge":n.find(f=>f.id===s)?.name??s.toUpperCase().replace(/_/g," "),w=s=>{if(!$)return null;switch(s){case"query":return c(Gr,{size:18});case"env":return c(Mo,{size:18});case"sentry":return c(Ar,{size:18,color:"#9945FF"});case"storage":return c(Ur,{size:18,bgColor:h.color.surface});case"wifi":case"query-wifi-toggle":return c(Dr,{size:18,colorPreset:"green",strength:4,noBackground:true});case"route-events":return c(Kr,{size:18,bgColor:h.color.surface});case"network":return c(_r,{size:18});case"environment":return c(Mo,{size:18});case"debug-borders":return c(Or,{size:18,color:h.color.accent});case"highlight-updates":return c(Br,{size:18,color:h.color.accent});case"highlight-updates-modal":return c(qr,{size:18});case"redux":return c(Jr,{size:18});case"image-overlay":return c(Er,{size:18});case"events":return c(Xr,{size:18});case"zustand":try{let{ZustandIcon:f}=_t("@buoy-gg/zustand/web");return c(f,{size:18})}catch{return c(kt,{size:18,color:h.color.textSecondary})}case"jotai":try{let{JotaiIcon:f}=_t("@buoy-gg/jotai/web");return c(f,{size:18})}catch{return c(kt,{size:18,color:h.color.textSecondary})}default:{let f=n.find(E=>E.id===s);return f?.icon!=null?Eo(f.icon,{slot:"row",size:18,color:f.color}):c(kt,{size:18,color:h.color.textSecondary})}}},X=(s,f,E,Y)=>{let he=vt(s);return P(et,{activeOpacity:E?1:.7,onPress:()=>!E&&Y(),accessibilityLabel:D(s),accessibilityRole:"button",style:[y.toolRow,E&&y.rowDisabled],children:[c(H,{style:y.toolIconSlot,children:w(s)}),P(H,{style:y.rowInfo,children:[P(N,{style:y.rowLabel,children:[D(s),E?" \xB7 max 6":""]}),he?c(N,{style:y.rowCaption,numberOfLines:1,children:he}):null]}),c(ko,{value:f,disabled:E,onValueChange:()=>Y()})]},s)},V=s=>{O(f=>{let E=new Set(f);return E.has(s)?E.delete(s):E.add(s),E})},G=(s,f,E,Y,he)=>{let ye=g.globalSettings?.[s]??false,Ee=z.has(s);return P(H,{children:[P(et,{activeOpacity:.7,onPress:()=>V(s),accessibilityLabel:f,style:y.settingRow,children:[P(H,{style:y.rowInfo,children:[c(N,{style:y.rowLabel,children:f}),c(N,{style:y.rowCaption,numberOfLines:Ee?0:1,children:E})]}),c(ko,{value:ye,onValueChange:()=>De(s)})]}),Ee&&P(H,{style:y.settingRowBody,children:[c(N,{style:y.settingRowBodyText,children:Y}),c(N,{style:y.settingRowBodyHint,children:he})]})]},s)},_=(s,f,E)=>P(H,{children:[c(Wr,{children:s}),f,E]}),te=K==="filesystem"?c(ue,{label:"File System",tone:"accent"}):K==="asyncstorage"?c(ue,{label:"Async Storage",tone:"warning"}):K==="localstorage"?c(ue,{label:"Local Storage",tone:"accent"}):K==="memory"?c(ue,{label:"Memory",tone:"danger"}):c(ue,{label:"Loading\u2026",tone:"neutral"}),de=()=>P(H,{style:y.container,children:[P(Nt,{style:y.scrollContent,showsVerticalScrollIndicator:false,contentContainerStyle:y.scrollContainer,children:[v==="floating"&&c(Ve,{children:_("Floating Tools",c(Ie,{glass:true,children:c(It,{children:Object.entries(g.floatingTools).map(([s,f])=>X(s,f,false,()=>Qe(s)))})}),c(zo,{children:"Tools switched on here appear in the floating bubble row."}))}),v==="settings"&&P(Ve,{children:[_("Background",c(Ie,{glass:true,padded:true,children:c(Hr,{embedded:true})})),_("Storage",P(Ie,{glass:true,children:[P(et,{activeOpacity:.7,onPress:()=>Re(!j),accessibilityLabel:"Storage Type",style:y.settingRow,children:[c(H,{style:y.rowInfo,children:c(N,{style:y.rowLabel,children:"Storage Type"})}),te,j?c(Co,{size:16,color:h.color.textTertiary}):c(xo,{size:16,color:h.color.textTertiary})]}),j&&P(Ve,{children:[P(H,{style:y.settingRowBody,children:[c(N,{style:y.settingRowBodyText,children:K==="filesystem"?"Settings persist independently and survive AsyncStorage.clear() calls during logout.":K==="asyncstorage"?"Settings may be lost if AsyncStorage is cleared during logout.":K==="localstorage"?"Settings are saved in this browser. Clearing site data removes them.":K==="memory"?"Settings are stored in memory only and will be lost on app restart.":"Checking storage backend\u2026"}),K==="asyncstorage"&&c(N,{style:[y.settingRowBodyText,y.bodyWarning],children:"Install expo-file-system to persist settings through logout flows."}),K==="memory"&&c(N,{style:[y.settingRowBodyText,y.bodyDanger],children:"No persistent storage available \u2014 install expo-file-system (best) or @react-native-async-storage/async-storage."})]}),c(Vr,{}),P(H,{style:y.storageExpanded,children:[P(H,{style:y.storageExpandedHeader,children:[c(N,{style:y.storageExpandedTitle,children:"SAVED SETTINGS"}),c(N,{style:y.storageExpandedCount,children:we?"\u2026":`${fe.length} keys`})]}),we?c(N,{style:y.storageKeyEmpty,children:"Loading\u2026"}):fe.length===0?c(N,{style:y.storageKeyEmpty,children:"No settings saved yet"}):c(Nt,{style:y.storageKeysList,nestedScrollEnabled:true,showsVerticalScrollIndicator:true,children:fe.map(s=>c(H,{style:y.storageKeyItem,children:c(N,{style:y.storageKeyText,numberOfLines:1,children:s.replace("@react_buoy_","")})},s))})]}),c(H,{style:y.cardButtonWrap,children:c(Mt,{label:me?"Cleared":J?"Clearing\u2026":"Clear All Settings",variant:me?"secondary":"destructive",size:"md",disabled:J,onPress:Ze,icon:me?c(To,{size:15,color:h.color.accent}):c($r,{size:15,color:J?h.color.textTertiary:h.color.danger})})})]})]})),A&&A.state!=="idle"&&_("Desktop Sync",P(Ie,{glass:true,children:[P(et,{activeOpacity:.7,onPress:()=>V("desktopSync"),accessibilityLabel:"Buoy Desktop",style:y.settingRow,children:[c(H,{style:y.rowInfo,children:c(N,{style:y.rowLabel,children:"Buoy Desktop"})}),A.state==="connected"?c(ue,{label:"Connected",tone:"accent"}):A.state==="connecting"?c(ue,{label:"Connecting\u2026",tone:"neutral"}):c(ue,{label:"Retrying",tone:"warning"}),z.has("desktopSync")?c(Co,{size:16,color:h.color.textTertiary}):c(xo,{size:16,color:h.color.textTertiary})]}),z.has("desktopSync")&&P(H,{style:y.settingRowBody,children:[P(N,{style:y.settingRowBodyText,children:[A.state==="connected"?"Streaming tool data to Buoy Desktop at ":"Trying to reach Buoy Desktop at ",c(N,{style:y.footnoteMono,children:A.targetURL??"(unknown URL)"}),A.state!=="connected"&&" \u2014 is the desktop app running? Override with the externalSync socketURL option if it runs elsewhere."]}),A.state==="retrying"&&A.lastError&&P(N,{style:[y.settingRowBodyText,y.bodyWarning],children:["Last error: ",A.lastError]})]})]})),_("Modal Behavior",c(Ie,{glass:true,children:P(It,{children:[G("enableSharedModalDimensions","Shared Modal Size","Sync dimensions across all tools","When enabled, all tool modals will share the same size and position. Resizing one modal will affect all others. When disabled, each tool remembers its own size and position independently.","Keep OFF for the best experience. This allows you to customize each tool's modal size separately."),Be.OS!=="web"?G("expandableWindowControls","Expand Controls","iPad-style expandable window buttons","When enabled, the window control buttons (minimize, toggle mode, close) start as small dots and expand into larger, easy-to-tap buttons when pressed. When disabled, buttons are directly tappable at their small size.","Keep ON for touch devices where the small buttons are hard to press. Turn OFF if you prefer direct single-tap access."):null]})}))]}),v==="pro"&&P(Ve,{children:[_("License",P(Ie,{glass:true,children:[P(H,{style:y.settingRow,children:[c(H,{style:y.rowInfo,children:c(N,{style:y.rowLabel,children:"License Status"})}),c(H,{testID:"buoy-settings-license-status",accessibilityLabel:Z?"License: Active":"License: Free",children:Z?c(ue,{label:"Active",tone:"accent"}):c(ue,{label:"Free",tone:"neutral"})})]}),ee?.tierSource==="session"?P(H,{style:y.settingRow,children:[c(H,{style:y.rowInfo,children:c(N,{style:y.rowLabel,children:"Signed in with Buoy"})}),c(Mt,{label:"Sign out",variant:"secondary",size:"md",onPress:()=>void Pr(),testID:"buoy-settings-signout"})]}):null]}),c(zo,{children:Z?"You have full access to all Buoy DevTools features.":q?ce?`Couldn't reach the license server (${q}). A VPN or corporate proxy can block buoy.gg \u2014 turn it off and reload. Your key hasn't been rejected.`:`License check failed: ${q}.`:"Upgrade to Pro to unlock all features and support development."})),!Z&&P(Ve,{children:[_("Pro Features",c(Ie,{glass:true,children:c(It,{children:["Advanced Settings","Priority Support"].map(s=>P(H,{style:y.featureRow,children:[c(To,{size:16,color:h.color.accent}),c(N,{style:y.rowLabel,children:s})]},s))})})),c(Mt,{label:"Upgrade to Pro",variant:"primary",size:"lg",onPress:()=>M(true)})]})]})]}),c(jr,{visible:b,onClose:()=>M(false),onSuccess:()=>M(false)})]});return c(is,{visible:e,onClose:t,zIndex:l,variant:"night",header:{showToggleButton:false,customContent:c(H,{style:y.headerRow,children:c(Nr,{glass:true,tabs:[{key:"floating",label:"Floating"},{key:"settings",label:"Settings"},{key:"pro",label:"Pro"}],activeKey:v,onChange:s=>I(s)})})},initialMode:"bottomSheet",onModeChange:St,persistenceKey:Rt.settings.root(),enablePersistence:true,maxHeight:L-r.top,initialHeight:He,initialFloatingPosition:{x:(W-Xe)/2,y:r.top+20},enableGlitchEffects:true,children:de()})},us={dialTools:{},floatingTools:{environment:false},globalSettings:{enableSharedModalDimensions:false}},ps=(e,t)=>{let o=new Set(e??[]),a=new Set(t??[]),n={};for(let l of a)n[l]=true;let i={environment:o.has("environment")};for(let l of o)l!=="environment"&&(i[l]=true);return{dialTools:pt(n),floatingTools:i,globalSettings:{enableSharedModalDimensions:false}}},Ue=null,At=null,Oo=null,Fo=(e,t)=>JSON.stringify(e)===JSON.stringify(t);dt.addListener(e=>{e&&(Ue=e)});var ms=()=>{let{defaultFloatingTools:e,defaultDialTools:t}=Ao(),o=ct(()=>!e&&!t?us:ps(e,t),[e,t]),[a,n]=oe(o),i=lt(async()=>{try{let u=await ke.getItem(ut);if(u){let d=JSON.parse(u),p=Bo(o,d);n(p);return}n(o)}catch(u){console.error("Failed to load dev tools settings:",u),n(o)}},[o]);ze(()=>{i();let u=dt.addListener(d=>{try{d&&n(d)}catch{}});return()=>{u()}},[i]);let l=lt(()=>{i()},[i]);return{settings:a,refreshSettings:l}},y=Ut.create({container:{flex:1,backgroundColor:"transparent"},headerRow:{flexDirection:"row",alignItems:"center",paddingLeft:h.gutter,paddingRight:h.gutter,paddingBottom:8},scrollContent:{flex:1},scrollContainer:{paddingHorizontal:h.gutter,paddingTop:8,paddingBottom:24,gap:h.groupGap},toolRow:{flexDirection:"row",alignItems:"center",gap:12,paddingHorizontal:h.rowPadH,paddingVertical:12},settingRow:{flexDirection:"row",alignItems:"center",gap:10,paddingHorizontal:h.rowPadH,paddingVertical:h.rowPadV,minHeight:52},featureRow:{flexDirection:"row",alignItems:"center",gap:10,paddingHorizontal:h.rowPadH,paddingVertical:12},rowDisabled:{opacity:.4},toolIconSlot:{width:24,alignItems:"center"},rowInfo:{flex:1,gap:2},rowLabel:{color:h.color.text,fontSize:h.font.row,fontWeight:"500"},rowCaption:{color:h.color.textTertiary,fontSize:h.font.label},settingRowBody:{paddingHorizontal:h.rowPadH,paddingBottom:h.rowPadV,gap:6},settingRowBodyText:{color:h.color.textSecondary,fontSize:h.font.caption,lineHeight:h.font.caption*1.45},settingRowBodyHint:{color:h.color.textTertiary,fontSize:h.font.caption,lineHeight:h.font.caption*1.45},bodyWarning:{color:h.color.warning},bodyDanger:{color:h.color.danger},cardButtonWrap:{paddingHorizontal:h.cardPad,paddingTop:10,paddingBottom:h.cardPad},storageExpanded:{paddingHorizontal:h.rowPadH,paddingVertical:12,gap:8},storageExpandedHeader:{flexDirection:"row",alignItems:"center"},storageExpandedTitle:{flex:1,color:h.color.textSecondary,fontSize:h.font.micro,fontWeight:"600",letterSpacing:.5},storageExpandedCount:{color:h.color.textTertiary,fontSize:h.font.micro},storageKeysList:{maxHeight:150},storageKeyItem:{backgroundColor:h.color.glassElevated,borderRadius:h.radius.segment,paddingHorizontal:10,paddingVertical:7,marginBottom:4},storageKeyText:{color:h.color.textSecondary,fontSize:h.font.micro,fontFamily:Io},storageKeyEmpty:{color:h.color.textTertiary,fontSize:h.font.caption,fontStyle:"italic"},footnoteMono:{fontFamily:Io,fontSize:h.font.label,color:h.color.textSecondary}});import{jsx as Lo}from"react/jsx-runtime";var gs=[];function Po({visible:e,onClose:t,availableTools:o=gs,defaultFloatingTools:a,defaultDialTools:n,storage:i=Tr,onSettingsChange:l}){let u=wo(()=>({getItem:async m=>i.getItem(m),setItem:async(m,x)=>i.setItem(m,x)}),[i]),d=wo(()=>o.map(m=>({...m,name:m.name??m.id,icon:typeof m.icon=="function"?x=>m.icon(x.size):m.icon})),[o]),p=Cr(m=>{l?.(m)},[l]);return Lo(ts,{defaultFloatingTools:a,defaultDialTools:n,children:Lo(ds,{visible:e,onClose:t,zIndex:11e3,availableApps:d,storage:u,onSettingsChange:p})})}import{persistentStorage as $o}from"@buoy-gg/shared-ui/web";import{createContext as fs,useCallback as be,useContext as hs,useEffect as Dt,useMemo as ys,useRef as Ke,useState as jo}from"react";var bs=(e,t,o)=>{if(t.singleton){let n=e.find(i=>i.id===t.id);if(n){let i=n.minimized??false;return{instanceId:n.instanceId,wasMinimized:i,apps:[...e.filter(l=>l.instanceId!==n.instanceId),{...n,minimized:false}]}}}let a=o();return{instanceId:a,wasMinimized:false,apps:[...e,{...t,instanceId:a}]}};import{createContext as Ss,useCallback as Ho,useContext as vs,useEffect as mt,useMemo as ws,useRef as Wo,useState as gt}from"react";import{JsModal as xs,ModalHeader as _e,HeaderSearchButton as Cs,TickProvider as Ts,ToolScreenHeaderContext as zs,devToolsStorageKeys as No,buoyColors as Vo,gameUIColors as Et}from"@buoy-gg/shared-ui/web";import{jsx as ie,jsxs as ft}from"react/jsx-runtime";var Ge=()=>{},ks={search:"",isSearchActive:false,clearSearch:Ge,close:Ge,minimize:Ge,showToast:Ge,setHeaderOverride:Ge},Uo=Ss(null);function Ko(){return vs(Uo)??ks}function Is(e,t){let{setHeaderOverride:o}=Ko();mt(()=>(o(e),()=>o(null)),t)}var _o=2200,Ms={success:Et.success,error:Et.error,info:Et.info};function Rs({message:e,type:t,nonce:o}){let a=Wo(new xe.Value(0)).current;mt(()=>{a.setValue(0),xe.sequence([xe.timing(a,{toValue:1,duration:150,useNativeDriver:true}),xe.delay(_o-450),xe.timing(a,{toValue:0,duration:300,useNativeDriver:true})]).start()},[o,a]);let n=Ms[t];return ft(xe.View,{pointerEvents:"none",style:[ht.toast,{opacity:a,borderColor:n+"60"}],children:[ie(H,{style:[ht.toastDot,{backgroundColor:n}]}),ie(N,{style:ht.toastText,numberOfLines:2,children:e})]})}function As({app:e,config:t,visible:o,zIndex:a,onClose:n,onMinimize:i,initialModalState:l,enableSharedModalDimensions:u,bodyProps:d}){let p=e.component,[m,x]=gt(false),[g,R]=gt(""),[v,I]=gt(null),[T,k]=gt(null),z=Wo(null),O=Ho(()=>{x(false),R("")},[]),b=Ho((K,ne="info")=>{z.current&&clearTimeout(z.current),k(J=>({message:K,type:ne,nonce:(J?.nonce??0)+1})),z.current=setTimeout(()=>k(null),_o)},[]);mt(()=>()=>{z.current&&clearTimeout(z.current)},[]);let M=ws(()=>({search:m?g:"",isSearchActive:m,clearSearch:O,close:n,minimize:()=>i(),showToast:b,setHeaderOverride:I,instanceId:e.instanceId}),[g,m,O,n,i,b,e.instanceId]),$=v?.title??t.title??e.title??e.id,C=v?.subtitle??t.subtitle,A=v?.onBack,ee=v?.actions??t.headerActions,Z=v?.searchable??t.searchable;mt(()=>{!Z&&m&&O()},[Z,m,O]);let q=u?No.modal.root():No.custom(e.id).modal(),ce=ft(_e,{children:[A&&!m&&ie(_e.Navigation,{onBack:A}),m?ie(_e.Search,{value:g,onChangeText:R,onCancel:O,placeholder:t.searchPlaceholder,testID:`tool-search-field-${e.id}`}):ie(_e.Content,{title:$,subtitle:C}),ft(_e.Actions,{children:[!m&&ee,Z&&!m&&ie(Cs,{variant:"chip",testID:`tool-search-${e.id}`,onPress:()=>x(true)})]})]});return ie(Uo.Provider,{value:M,children:ie(xs,{visible:o,onClose:n,onBack:A,onMinimize:i,initialModalState:l,zIndex:a,persistenceKey:q,enablePersistence:true,initialMode:t.initialMode??"bottomSheet",header:{customContent:ce,showToggleButton:true},disableScrollWrapper:true,styles:{},children:ft(H,{style:ht.bodyRoot,children:[ie(Ts,{children:ie(zs.Provider,{value:I,children:ie(p,{...d})})}),T&&ie(Rs,{message:T.message,type:T.type,nonce:T.nonce})]})})})}var ht=Ut.create({bodyRoot:{flex:1,minHeight:0,backgroundColor:"transparent"},toast:{position:"absolute",bottom:16,alignSelf:"center",flexDirection:"row",alignItems:"center",gap:8,maxWidth:"86%",backgroundColor:Vo.card,borderWidth:1,borderRadius:8,paddingHorizontal:12,paddingVertical:8,shadowColor:"#000",shadowOpacity:.4,shadowRadius:8,shadowOffset:{width:0,height:2},elevation:6},toastDot:{width:6,height:6,borderRadius:3},toastText:{flex:1,fontSize:12,color:Vo.text}});import{Fragment as Ds,jsx as pe}from"react/jsx-runtime";var Go=fs(null),qo="@react_buoy_open_apps",Bt=44,Es=12,Bs=100,Os=16,Fs=e=>({x:window.innerWidth-Bt-Os,y:window.innerHeight-Bs-Bt-e*(Bt+Es)}),Jo=({children:e})=>{let[t,o]=jo([]),[a,n]=jo(false),i=Ke([]),l=Ke(null),u=Ke(false),d=Ke(false),p=Ke(false),m=be(b=>{let M="";return o($=>{let{apps:C,instanceId:A}=bs($,b,()=>`${b.id}-${Date.now()}-${Math.random().toString(36).slice(2)}`);return M=A,C}),M},[]),x=be(()=>{if(u.current||!d.current||!p.current)return;u.current=true;let b=l.current;if(!b||b.length===0){n(true);return}l.current=null,b.forEach(({id:M,minimized:$})=>{let C=i.current.find(A=>A.id===M);if(C&&C.component){let A=Eo(C.icon,{slot:"dial",size:20,color:C.color});m({id:C.id,title:C.name,component:C.component,props:C.props,modal:C.modal,launchMode:C.launchMode||"self-modal",singleton:C.singleton??true,icon:A,color:C.color,minimized:$})}}),n(true)},[m]);Dt(()=>{let b=false;return(async()=>{try{let M=await $o.getItem(qo);if(b)return;if(M){let $=JSON.parse(M),C;Array.isArray($)&&$.length>0&&(typeof $[0]=="string"?C=$.map(A=>({id:A,minimized:false})):C=$.filter(A=>typeof A=="object"&&A!==null&&typeof A.id=="string"),C.length&&(l.current=C))}}catch{}b||(d.current=true,x())})(),()=>{b=true}},[x]),Dt(()=>{if(!a)return;let b=t.map(M=>({id:M.id,minimized:M.minimized??false}));$o.setItem(qo,JSON.stringify(b))},[t,a]);let g=be(b=>{i.current=b,p.current=true,x()},[x]),R=be(b=>{o(M=>M.length?b?M.filter($=>$.instanceId!==b):M.slice(0,-1):M)},[]),v=be(()=>o([]),[]),I=be((b,M)=>{o($=>$.map(C=>C.instanceId===b?{...C,minimized:true,restoreState:M}:C))},[]),T=be((b,M)=>{o($=>$.map(C=>C.instanceId===b?{...C,minimized:false,restoreState:M??C.restoreState}:C))},[]),k=be(b=>t.find(M=>M.instanceId===b)?.minimized??false,[t]),z=t.some(b=>b.launchMode!=="toggle-only"&&!b.minimized);Dt(()=>{if(!z)return;let b=M=>{if(M.key!=="Escape"||M.defaultPrevented)return;let $=[...t].reverse().find(C=>C.launchMode!=="toggle-only"&&!C.minimized);$&&R($.instanceId)};return window.addEventListener("keydown",b),()=>window.removeEventListener("keydown",b)},[z,R,t]);let O=ys(()=>({openApps:t,isAnyOpen:z,open:m,close:R,closeAll:v,registerApps:g,minimize:I,restore:T,isMinimized:k}),[t,z,m,R,v,g,I,T,k]);return pe(Go.Provider,{value:O,children:e})},yt=()=>{let e=hs(Go);return e||{openApps:[],isAnyOpen:false,open:()=>"",close:()=>{},closeAll:()=>{},registerApps:()=>{},minimize:()=>{},restore:()=>{},isMinimized:()=>false}},Ls=9e3,Ps={position:"fixed",inset:0,backgroundColor:"rgba(0,0,0,0.28)",display:"flex",alignItems:"center",justifyContent:"center"},$s={maxHeight:"90%",width:"94%",borderRadius:12,backgroundColor:"white",overflow:"hidden"},js=({app:e,zIndex:t,onClose:o,onMinimize:a,minimizeTargetPosition:n,enableSharedModalDimensions:i})=>{let l=e.component,u=!e.minimized,d={...e.props??{},...i?{enableSharedModalDimensions:true}:{}};return e.modal&&(!e.launchMode||e.launchMode==="self-modal")?pe(As,{app:e,config:e.modal,visible:u,zIndex:t,onClose:o,onMinimize:a,initialModalState:e.restoreState,enableSharedModalDimensions:i,bodyProps:d}):e.launchMode==="self-modal"?pe(l,{...d,visible:u,onClose:o,onRequestClose:o,onMinimize:a,minimizeTargetPosition:n,instanceId:e.instanceId,zIndex:t,initialModalState:e.restoreState}):e.launchMode==="inline"?u?pe("div",{style:{position:"fixed",inset:0,zIndex:t,pointerEvents:"none"},children:pe(l,{...d,onClose:o,onMinimize:a,minimizeTargetPosition:n,instanceId:e.instanceId})}):null:pe("div",{style:{...Ps,zIndex:t,display:u?"flex":"none"},children:pe("div",{style:$s,children:pe(l,{...d,onClose:o,onMinimize:a,minimizeTargetPosition:n,instanceId:e.instanceId})})})},Xo=()=>{let{openApps:e,close:t,minimize:o}=yt(),{settings:a}=ms(),n=e.filter(u=>u.launchMode!=="toggle-only");if(n.length===0)return null;let i=n.filter(u=>u.minimized).length,l=Li()??Fs(i);return pe(Ds,{children:n.map((u,d)=>pe(js,{app:u,zIndex:Ls+d,onClose:()=>t(u.instanceId),onMinimize:p=>o(u.instanceId,p),enableSharedModalDimensions:a.globalSettings?.enableSharedModalDimensions===true,minimizeTargetPosition:l},u.instanceId))})};import{useCallback as Hs,useEffect as Ot,useRef as Ws,useState as Yo,useSyncExternalStore as Qo}from"react";import{persistentStorage as Zo,getToolAttention as Ft,subscribeToolAttention as en}from"@buoy-gg/shared-ui/web";import{jsx as re,jsxs as bt}from"react/jsx-runtime";function Ns(e){return Qo(en,()=>Ft(e),()=>Ft(e))}var tn={needsInput:"#FF8329",done:"#20C997",failed:"#FF3B30"},on={needsInput:3,failed:2,done:1},nn=new Map;function an(e){let t=null;for(let a of e?e.split("|"):[]){let n=Ft(a);n&&(!t||on[n.kind]>on[t.kind])&&(t=n)}let o=nn.get(e);return o&&t&&o.kind===t.kind&&o.label===t.label?o:!o&&!t?null:(nn.set(e,t),t)}function Vs(e){let t=e.join("|");return Qo(en,()=>an(t),()=>an(t))}var rn=28,Lt=32,Pt=6,sn=8,ln=24,cn="@react_buoy_minimized_stack_expanded",Us=80,dn=2e3,Ks=6e3,_s="#1A1A1A",qe="#888888";function un({down:e=false}){return re("svg",{width:12,height:12,viewBox:"0 0 24 24","aria-hidden":"true",style:{transform:e?"rotate(180deg)":void 0},children:re("path",{d:"M18 15l-6-6-6 6",fill:"none",stroke:qe,strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})})}function Gs({id:e,title:t,icon:o,index:a,onPress:n}){let i=Ns(e),l=Ws(null);return Ot(()=>{let u=true,d,p=()=>{l.current?.animate([{transform:"translateX(0) scale(1)",opacity:1,offset:0},{transform:"translateX(3px) scale(1.05)",opacity:.4,offset:.2},{transform:"translateX(-3px) scale(1.1)",opacity:1,offset:.4},{transform:"translateX(2px) scale(1.0)",opacity:.6,offset:.6},{transform:"translateX(-1px) scale(0.95)",opacity:1,offset:.8},{transform:"translateX(0) scale(1)",opacity:1,offset:1}],{duration:Us,easing:"linear"})},m=x=>{let g=x?500+Math.random()*1500+a*200:dn+Math.random()*(Ks-dn)+a*300;d=setTimeout(()=>{u&&(p(),m(false))},g)};return m(true),()=>{u=false,clearTimeout(d)}},[a]),bt("button",{type:"button","aria-label":i?`${t} \u2014 ${i.label}. Restore`:`Restore ${t}`,onClick:n,style:{width:Lt,height:Lt,display:"flex",alignItems:"center",justifyContent:"center",background:"none",border:"none",padding:0,cursor:"pointer",position:"relative"},children:[re("div",{ref:l,style:{display:"flex",alignItems:"center",justifyContent:"center"},children:o}),i?re("span",{"aria-hidden":true,"data-testid":`buoy-dock-badge-${e}-${i.kind}`,style:{position:"absolute",top:0,right:0,minWidth:12,height:12,borderRadius:6,padding:"0 2px",boxSizing:"border-box",background:tn[i.kind],border:"1.5px solid #0C0C0C",color:"#000",fontSize:8,fontWeight:800,lineHeight:"9px",display:"flex",alignItems:"center",justifyContent:"center"},children:i.kind==="needsInput"?"!":""}):null]})}function qs({containerWidth:e=32}){let{openApps:t,restore:o}=yt(),a=t.filter(g=>g.minimized&&g.launchMode!=="toggle-only"),[n,i]=Yo(false),[l,u]=Yo(false),d=Vs(a.map(g=>g.id));Ot(()=>{let g=false;return(async()=>{let R=await Zo.getItem(cn);!g&&R==="true"&&i(true),g||u(true)})(),()=>{g=true}},[]),Ot(()=>{l&&Zo.setItem(cn,n?"true":"false")},[n,l]);let p=Hs(g=>{o(g)},[o]);if(a.length===0)return null;let m=sn+a.length*Lt+(a.length-1)*Pt+Pt+ln+4,x={backgroundColor:_s,borderTopLeftRadius:6,borderTopRightRadius:6,borderTop:`1px solid ${qe}66`,borderLeft:`1px solid ${qe}66`,borderRight:`1px solid ${qe}66`,borderBottom:"none",boxSizing:"border-box"};return bt("div",{style:{height:rn,overflow:"visible",position:"relative"},children:[re("div",{style:{position:"absolute",bottom:"var(--buoy-stack-bottom, 0px)",top:"var(--buoy-stack-top, auto)",left:0,width:e,maxHeight:"var(--buoy-stack-space, calc(100vh - 48px))",visibility:n?"visible":"hidden",height:n?m:0,opacity:n?1:0,overflowY:"auto",overflowX:"hidden",transition:"height 200ms ease, opacity 200ms ease",pointerEvents:n?"auto":"none",...x},children:bt("div",{style:{height:m,display:"flex",flexDirection:"column",alignItems:"center",paddingTop:sn,gap:Pt,boxSizing:"border-box"},children:[[...a].reverse().map((g,R)=>re(Gs,{id:g.id,title:g.title||g.id,icon:g.icon??re("span",{style:{color:"#fff",fontSize:13},children:(g.title||g.id).slice(0,1).toUpperCase()}),index:R,onPress:()=>p(g.instanceId)},g.instanceId)),re("button",{type:"button","aria-label":"Collapse",onClick:()=>i(false),style:{width:"100%",height:ln,marginTop:3,display:"flex",alignItems:"center",justifyContent:"center",background:"none",border:"none",cursor:"pointer",padding:0},children:re(un,{down:true})})]})}),bt("button",{type:"button","aria-label":`Show ${a.length} minimized tools`,tabIndex:n?-1:0,"aria-hidden":n,onClick:()=>i(true),style:{position:"absolute",bottom:0,left:0,width:e,height:rn,display:"flex",flexDirection:"row",alignItems:"center",justifyContent:"center",gap:2,cursor:"pointer",padding:0,opacity:n?0:1,transform:n?"scale(0.9)":"scale(1)",transition:"opacity 200ms ease, transform 200ms ease",pointerEvents:n?"none":"auto",...x},children:[re(un,{}),d?re("span",{"aria-hidden":true,"data-testid":"buoy-dock-peek-attention",style:{position:"absolute",top:2,right:2,minWidth:11,height:11,borderRadius:6,padding:"0 2px",boxSizing:"border-box",background:tn[d.kind],border:"1.5px solid #0C0C0C",color:"#000",fontSize:8,fontWeight:800,lineHeight:"9px",display:"flex",alignItems:"center",justifyContent:"center"},children:d.kind==="needsInput"?"!":""}):null,a.length>1&&re("span",{style:{fontSize:9,fontWeight:600,color:qe,marginLeft:1},children:a.length})]})]})}import{registerToolModules as Js}from"@buoy-gg/shared-ui/web";import{createElement as Xs}from"react";function pn(e){let t=e.icon;return{...e,icon:typeof t=="function"?o=>Xs(t,{size:o,slot:e.slot??"both",color:e.color}):()=>t}}import{createContext as Ys,useContext as Qs,useState as mn,useMemo as gn}from"react";import{jsx as Zs}from"react/jsx-runtime";var fn=Ys(null);function hn({children:e}){let[t,o]=mn(false),[a,n]=mn(false),i=gn(()=>t||a,[t,a]),l=gn(()=>({isDialOpen:t,isToolOpen:a,isDevToolsActive:i,setDialOpen:o,setToolOpen:n}),[t,a,i]);return Zs(fn.Provider,{value:l,children:e})}function $t(){let e=Qs(fn);return e||{isDialOpen:false,isToolOpen:false,isDevToolsActive:false,setDialOpen:()=>{},setToolOpen:()=>{}}}import*as el from"@buoy-gg/license/web";import*as tl from"@buoy-gg/shared-ui/web";import*as ol from"@buoy-gg/shared-ui/web/dataViewer";function yn(e){Js({core:{useDevToolsVisibility:$t},license:el,"shared-ui":tl,"shared-ui/dataViewer":ol,...e});let t=new Set;return Object.values(e).flatMap(o=>Object.entries(o).flatMap(([a,n])=>!a.endsWith("Preset")||!n||typeof n.id!="string"||!n.component||t.has(n.id)?[]:(t.add(n.id),[pn(n)])))}import{useEffect as jt,useMemo as Ht,useRef as nl}from"react";import{LicenseManager as al,useLicense as il}from"@buoy-gg/license/web";import{registerToolAdapters as rl}from"@buoy-gg/shared-ui/web";function bn(e){return typeof e=="object"&&e!==null?e:void 0}function sl({isDevelopment:e,isLicensed:t,externalSync:o,isAvailable:a}){if(o===false||!a)return false;if(e)return true;let n=bn(o);return t&&n?.enableInRelease===true&&vn(n.socketURL,n)===null}var Sn="http://localhost:42831";function ll(e){return e==="localhost"||e.endsWith(".localhost")||/^127\.\d+\.\d+\.\d+$/.test(e)||e==="[::1]"||e==="::1"||e==="10.0.2.2"}function vn(e,t){let o=e??Sn;if(t?.allowInsecureNetwork===true)return null;let a;try{a=new URL(o)}catch{return`[Buoy] externalSync.socketURL "${o}" isn't a valid URL, so this release build won't connect to Buoy Desktop.`}return a.protocol==="https:"||a.protocol==="wss:"||ll(a.hostname)?null:`[Buoy] This release build won't connect to ${o}: release sync carries real user data, and plain http to another machine is readable by anyone on the same network. Use a simulator, an emulator or adb reverse (localhost), an https:// broker, or set externalSync.allowInsecureNetwork: true for a network you trust.`}var cl={impersonate:["searchUsers","startImpersonation","resumeImpersonation","updateSettings","removeFromHistory","clearHistory"]};function dl(e,t,o){if(t)return e;let a=null;for(let[n,i]of Object.entries(cl)){if(o?.includes(n))continue;let l=e[n];if(!l?.actions)continue;let u={...l.actions};for(let d of i)d in u&&(u[d]=()=>{throw new Error(`${n}.${d} is off in release builds. To allow it from Buoy Desktop and the MCP, pass externalSync={{ enableInRelease: true, releaseActions: ["${n}"] }}.`)});a??(a={...e}),a[n]={...l,actions:u}}return a??e}import{useEffect as ul,useMemo as pl,useState as ml}from"react";import{devToolsStorageKeys as gl,persistentStorage as fl}from"@buoy-gg/shared-ui/web";var hl=8;function yl(){let e="";for(;e.length<hl;)e+=(Math.random()*16|0).toString(16);return e}function bl(e){return e.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/(^-|-$)/g,"")}function Sl({appName:e,hardwareName:t,platform:o,installId:a,deviceId:n}){let i=bl(e??"buoy")||"buoy",l=e??"Buoy Device",u=t?.trim()||o;return n?{deviceId:n,deviceName:`${l} (${u})`}:{deviceId:`${i}-${o}-${a}`,deviceName:`${l} (${u} \xB7 ${a.slice(-4)})`}}function vl(){let e=globalThis;try{return e.sessionStorage??null}catch{return null}}async function wl({platform:e=Be.OS,store:t,mint:o=yl}={}){let a=gl.sync.deviceId(),n=t===void 0?e==="web"?vl():fl:t;if(!n)return o();try{let i=await n.getItem(a);if(i&&i.length>0)return i;let l=o();return await n.setItem(a,l),l}catch{return o()}}var Wt=null;function xl(){return Wt||(Wt=wl()),Wt}function Cl(e,t){let o=e?.deviceId,a=e?.deviceName,n=t.loadId??xl,i=t.platform??Be.OS,[l,u]=ml(null);return ul(()=>{if(o)return;let d=false;return n().then(p=>{d||u(p)}),()=>{d=true}},[o,n]),pl(()=>{if(!o&&!l)return null;let d=Sl({appName:t.appName,hardwareName:t.hardwareName,platform:i,installId:l??"",deviceId:o});return a?{...d,deviceName:a}:d},[o,a,l,t.appName,t.hardwareName,i])}import{getDevServerOrigin as Tl,resolveReloadStrategy as zl,scheduleReloadApp as kl}from"@buoy-gg/shared-ui/web";var wn=Date.now(),xn=Tl(),Il={platform:Be.OS,isTV:Be.isTV===true,isTVOS:Be.isTVOS===true},Cn={version:3,getSnapshot:()=>{let e=zl("auto");return{startedAt:wn,devServerOrigin:xn,device:Il,reload:{available:e!==null,strategy:e}}},subscribe:e=>()=>{},actions:{ping:()=>({ok:true,startedAt:wn,devServerOrigin:xn}),reloadApp:e=>{let t=e??{},{strategy:o,delayMs:a}=kl({strategy:t.strategy,delayMs:t.delayMs});return{scheduled:true,strategy:o,delayMs:a}}}};import{Fragment as Ml,jsx as Me,jsxs as Rl}from"react/jsx-runtime";var Al=["ConsoleRoot","RouteTracker","ReactQueryTracker","ReduxAutoInstrument","PerfMonitorRoot","AutomationResumer","ImagesRoot"],Dl=["DebugBordersStandaloneOverlay","HighlightUpdatesOverlay","ImageOverlayStandalone","PerfMonitorOverlay","JsTopHudOverlay","ImpersonateOverlay","ScenariosOverlay"];function El(e){let t=Ht(()=>Object.fromEntries(Object.entries(e.modules).map(([a,n])=>[a.replace(/^@buoy-gg\//,"").replace(/\/web$/,""),n])),[e.modules]),o=t["react-query"];return o?.useReactQuerySyncAdapter?Me(Bl,{...e,modules:t,query:o}):Me(Tn,{...e,modules:t})}function Bl(e){let t=e.query.useReactQuerySyncAdapter();return Me(Tn,{...e,queryAdapter:t})}function Tn({modules:e,apps:t,requiredEnvVars:o,externalSync:a,headless:n,sentryGetClient:i,queryAdapter:l}){let{isPro:u,tier:d}=il(),p=Ht(()=>{let T={app:Cn};for(let[k,z]of Object.entries(e))for(let[O,b]of Object.entries(z))O.endsWith("SyncAdapter")&&b&&typeof b=="object"&&(T[k]=b);l&&(T.query=l),e.env?.createEnvSyncAdapter&&(T.env=e.env.createEnvSyncAdapter(o??[]));for(let k of t??[])k.sync&&(T[`custom:${k.id}`]=k.sync);return T},[e,t,o,l]),m=nl(p);m.current=p,jt(()=>rl(()=>m.current),[]),jt(()=>{let T=[],k=z=>{let O=z?.();typeof O=="function"&&T.push(O)};return k(e.network?.startNetworkCapture),k(e.storage?.startBrowserStorageCapture),k(e.assets?.startBrowserAssetCapture),e.storage?.storageSyncAdapter?.subscribe&&k(()=>e.storage.storageSyncAdapter.subscribe(()=>{})),e["focus-inspector"]?.focusInspectorSyncAdapter?.subscribe&&k(()=>e["focus-inspector"].focusInspectorSyncAdapter.subscribe(()=>{})),()=>{for(let z of T.reverse())z()}},[e]);let x=e["external-sync"],g=typeof tt<"u"?tt:process.env.NODE_ENV!=="production",R=sl({isDevelopment:g,isLicensed:u,externalSync:a,isAvailable:!!x}),v=bn(a);!g&&v?.enableInRelease&&Ol(vn(v.socketURL,v));let I=e.sentry?.SentryRoot;return Rl(Ml,{children:[Object.entries(e).flatMap(([T,k])=>Al.map(z=>{let O=k[z];return O?Me(O,{},`${T}:${z}`):null})),I&&Me(I,{getClient:i}),Object.entries(e).flatMap(([T,k])=>Dl.map(z=>{let O=k[z];return O&&(!n||z==="ScenariosOverlay"||z==="ImpersonateOverlay")?Me(O,{},`${T}:${z}`):null})),R&&Me(Fl,{module:x,tools:p,options:v,isPro:u,tier:d,dev:g})]})}var zn=null;function Ol(e){!e||e===zn||(zn=e,console.warn(e))}function Fl({module:e,tools:t,options:o,isPro:a,tier:n,dev:i}){let l=Cl(o,{appName:typeof document>"u"?null:document.title||location.hostname,hardwareName:"Browser",platform:"web"}),{socket:u}=e.useExternalSyncSocket({deviceName:l?.deviceName??"Buoy Browser",socketURL:o?.socketURL??(i?e.getDefaultSocketURL():Sn),persistentDeviceId:l?.deviceId??null,platform:"web",enableLogs:o?.enableLogs});jt(()=>{if(!u)return;let m=()=>{u.connected&&al.hasAccountAccess()&&u.emit("device-license",{isPro:a?"1":"0",tier:n})};return m(),u.on("connect",m),()=>{u.off("connect",m)}},[u,a,n]);let d=o?.releaseActions?.join(",")??"",p=Ht(()=>dl(t,i,d?d.split(","):void 0),[t,i,d]);return e.useExternalSync({tools:p,socket:u,deviceId:l?.deviceId??null,enableLogs:o?.enableLogs}),null}import{useState as kn}from"react";import{createPortal as Ll}from"react-dom";import{useBuoySession as Pl}from"@buoy-gg/license/web";import{Fragment as In,jsx as Je,jsxs as Mn}from"react/jsx-runtime";var Rn="#20C997";function $l(){let{status:e,signIn:t,signOut:o}=Pl(),[a,n]=kn(false),[i,l]=kn(null);if(typeof document>"u")return null;let u=()=>{l(null),n(true),t().catch(p=>l(p instanceof Error?p.message:"Sign-in did not work. Try again.")).finally(()=>n(false))},d=e.state==="active";return Ll(Je("div",{"data-buoy-signin":"",style:{position:"fixed",right:"max(16px, env(safe-area-inset-right))",bottom:"max(20px, env(safe-area-inset-bottom))",zIndex:99999,maxWidth:"min(320px, calc(100vw - 32px))",padding:d||i?"12px 14px":0,borderRadius:16,background:d||i?"#0f1419":"transparent",color:"#e6edf3",boxShadow:d||i?"0 10px 30px rgba(0,0,0,.35)":"none",fontFamily:"system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif",fontSize:14,lineHeight:1.45},children:d?Mn(In,{children:[Je("div",{"data-testid":"buoy-signin-needs-plan",children:"Buoy on a live site needs a Pro or Business plan."}),Je("button",{type:"button",onClick:()=>void o(),style:jl,"data-testid":"buoy-signout",children:"Sign out"})]}):Mn(In,{children:[i?Je("div",{role:"alert",style:{marginBottom:10},"data-testid":"buoy-signin-error",children:i}):null,Je("button",{type:"button",onClick:u,disabled:a,"data-testid":"buoy-signin",style:{display:"inline-flex",alignItems:"center",gap:8,padding:"10px 16px",border:"none",borderRadius:999,background:Rn,color:"#04130d",fontWeight:600,fontSize:14,cursor:a?"wait":"pointer",boxShadow:"0 8px 24px rgba(0,0,0,.3)"},children:a?"Signing in\u2026":"Sign in to Buoy"})]})}),document.body)}var jl={marginTop:8,padding:0,border:"none",background:"none",color:Rn,fontSize:14,cursor:"pointer",textDecoration:"underline"};import{jsx as U,jsxs as An}from"react/jsx-runtime";var Hl={},Dn="@react_buoy_floating_menu_tooltip_shown",Wl=Ce;function Nl({size:e=14,color:t="#20C997"}){let o=Math.max(2,e/4),a=Math.max(1,e/16);return U("div",{style:{display:"grid",gridTemplateColumns:`repeat(3, ${o}px)`,gap:a,width:e,height:e,alignContent:"center",justifyContent:"center"},children:Array.from({length:9}).map((n,i)=>U("div",{style:{width:o,height:o,borderRadius:o/2,backgroundColor:t}},i))})}function Vl(e){return U(hn,{children:U(Jo,{children:U(Ul,{...e})})})}function Ul({environment:e,userRole:t,availableEnvironments:o,onEnvironmentSwitch:a,apps:n,modules:i=Hl,externalSync:l,requiredEnvVars:u,sentryGetClient:d,disableHints:p=false,headless:m=false}){let[x,g]=wt(false),[R,v]=wt(false),I=Ii(false),T=yt(),k=Oe(()=>qt([...yn(i),...n??[]]),[n,i]),z=$t(),O=T.openApps.some(r=>!r.minimized);le(()=>{z.setDialOpen(x)},[x,z.setDialOpen]),le(()=>{z.setToolOpen(O||R)},[O,R,z.setToolOpen]);let{registerApps:b}=T;le(()=>{b(k.map(r=>{let L=r.icon;return{...r,icon:typeof L=="function"?({size:W})=>L(W):L}}))},[b,k]);let M=Oe(()=>k.map(r=>({id:r.id,name:r.name,description:r.description,slot:r.slot})),[k]),{settings:$}=Mi({availableTools:M,storage:Wl});le(()=>{let r=false;return(async()=>{let[L,W]=await Promise.all([Ce.getItem(nt.dial.isOpen()),Ce.getItem(nt.settings.modalOpen())]);r||(L==="true"&&g(true),W==="true"&&(g(true),v(true)),I.current=true)})(),()=>{r=true}},[]),le(()=>{I.current&&Ce.setItem(nt.dial.isOpen(),x?"true":"false")},[x]),le(()=>{I.current&&Ce.setItem(nt.settings.modalOpen(),R?"true":"false")},[R]);let C=Fe(r=>{if(xr(r.id),r.launchMode==="toggle-only"){r.onPress?.();return}if(r.component){let L=typeof r.icon=="function"?r.icon(20):r.icon;T.open({id:r.id,title:r.name||ot(r.id),component:r.component,props:r.props,modal:r.modal,launchMode:r.launchMode||"self-modal",singleton:r.singleton??true,icon:L,color:r.color||Gt(r.id)})}else r.onPress?.()},[T]),A=Oe(()=>xt(k,"dial").map(r=>{let L=r.color||Gt(r.id),W;return typeof r.icon=="string"?W=r.icon:typeof r.icon=="function"?W=r.icon(32):W=null,{id:r.id,name:r.name||ot(r.id),icon:W,unavailable:!r.component&&!r.onPress,color:L,onPress:()=>{C(r),g(false)}}}),[k,C]),ee=Oe(()=>{if(!x)return A;let r=new Map(A.map(L=>[L.id,L]));return wr(A.map(L=>L.id)).map(L=>r.get(L)).filter(L=>!!L)},[x,A]),Z=Oe(()=>xt(k,"row").filter(r=>$.floatingTools[r.id]===true&&(r.component||r.onPress)),[k,$.floatingTools]),q=Oe(()=>k.map(r=>({id:r.id,name:r.name||ot(r.id),description:r.description||Ri(r.id),slot:r.slot,icon:r.icon,color:r.color})),[k]),[ce,K]=wt(false),ne=T.openApps.some(r=>!r.minimized);le(()=>{if(p)return;let r=false,L=setTimeout(async()=>{let W=await Ce.getItem(Dn);!r&&!W&&K(true)},1e3);return()=>{r=true,clearTimeout(L)}},[p]);let J=Fe(()=>{K(false),Ce.setItem(Dn,"true")},[]),Se=Fe(()=>{J(),g(true)},[J]),me=Fe(()=>{g(false),v(false)},[]),ve=Fe(()=>{v(r=>!r)},[]),j=Fe(()=>v(false),[]),Re=!!(o?.length&&a),fe=$.floatingTools.environment!==false,se=ce&&!x&&!ne;le(()=>{if(!se)return;let r=W=>{(!(W.target instanceof Element)||!W.target.closest("[data-buoy-root]"))&&J()},L=W=>{W.key==="Escape"&&J()};return document.addEventListener("pointerdown",r,true),document.addEventListener("keydown",L),()=>{document.removeEventListener("pointerdown",r,true),document.removeEventListener("keydown",L)}},[se,J]);let we=T.openApps.some(r=>r.minimized&&r.launchMode!=="toggle-only"),ae=U(El,{modules:i,apps:n,requiredEnvVars:u,externalSync:l,headless:m,sentryGetClient:d});return m?ae:An("div",{"data-buoy-root":"",style:{display:"contents"},children:[ae,se&&U("div",{style:{position:"fixed",inset:0,backgroundColor:"rgba(0,0,0,0.85)",zIndex:1e4,pointerEvents:"none"}}),An(Jt,{enablePositionPersistence:!se,pushToSide:x||ne,suspendPointerEvents:x,centerOnboarding:se,minimizedStack:we?U(qs,{}):void 0,hasMinimizedStack:we,children:[e&&fe&&!Re&&U(Ai,{environment:e}),Re&&fe&&U(Di,{currentEnvironment:e??"local",availableEnvironments:o,onSelect:a}),t?U(Xt,{userRole:t,onPress:Se}):U("button",{"aria-label":"Open dev tools",onClick:Se,style:{display:"flex",alignItems:"center",justifyContent:"center",padding:"6px 8px",background:"none",border:"none",cursor:"pointer"},children:U(Nl,{})}),Z.map(r=>U("button",{"aria-label":r.name||ot(r.id),title:r.description,onClick:()=>C(r),style:{display:"flex",alignItems:"center",justifyContent:"center",padding:"4px 6px",borderRadius:6,background:"none",border:"none",cursor:"pointer"},children:typeof r.icon=="function"?r.icon(16):r.icon},r.id))]}),se&&U(uo,{title:"Welcome to Buoy!",message:"Grab and position this menu wherever you want, then tap the icon to open your tools.",onDismiss:J}),x&&U(ho,{icons:ee,onClose:me,centerLabel:"BUOY",onCenterPress:ve,settingsOpen:R,hintsDisabled:p}),U(Po,{visible:R,onClose:j,availableTools:q,onSettingsChange:r=>{}}),U(Xo,{}),U(wi,{})]})}function Kl(e){let{access:t,isPro:o,licenseKey:a}=Ci();le(()=>{xi.configure(e.licenseKey)},[e.licenseKey]);let n=e.licenseKey===void 0||Ti(e.licenseKey,a),i=typeof tt<"u"?tt:process.env.NODE_ENV!=="production",l=n&&t.status==="admitted";return le(()=>{l&&ki()},[l]),le(()=>{i||t.status==="initializing"||(o&&l?vi():Kt())},[i,o,l,t.status]),!i&&!o?e.signIn&&!e.headless?U($l,{}):null:l?U(Vl,{...e}):e.headless?null:U(zi,{})}import{useSettings as _l,useFloatingTools as Gl,getToolLabel as ql,getToolDescription as Jl,getToolColor as Xl,settingsColors as Yl,settingsStyles as Ql,dialColors as Zl,dialStyles as ec}from"@buoy-gg/floating-tools-react/web";export{ua as Activity,Si as AlertCircle,ma as AlertTriangle,Jo as AppHostProvider,Xo as AppOverlay,_a as Badge,On as BarChart3,jn as BaseEventStore,Ln as Bookmark,fa as Bug,oi as Button,di as Card,ya as Check,Sa as CheckCircle,ba as CheckSquare,wa as ChevronDown,Ca as ChevronLeft,za as ChevronRight,Ia as ChevronUp,Ra as Clock,$n as Cloud,gi as CollapsibleSection,Aa as Copy,ai as CopyButton,Pn as DataViewer,En as Database,hn as DevToolsVisibilityProvider,ho as DialMenu,Qa as DiffViewer,Fi as Divider,Hn as Download,Nn as Edit3,bi as EmptyState,Fn as EventStepperFooter,Da as Eye,Ea as EyeOff,Ba as FileJson,Oa as FileText,Fa as Filter,La as FlaskConical,Kl as FloatingDevTools,Jt as FloatingTools,Un as GitBranch,Pa as Globe,_n as HardDrive,$a as Hash,qn as HelpCircle,Xn as Home,Qn as Image,ja as Info,Xa as InfoRow,ca as JsModal,Wa as Key,Va as Layers,ea as Link,Ka as Lock,oa as Maximize2,aa as Minus,ra as Palette,Ga as Pause,la as Pin,Ja as Play,Ya as Plus,Za as Power,ri as PowerToggle,ti as RefreshCw,Wn as RelativeTime,da as Route,li as Row,ni as Search,Bn as SearchBar,pi as SectionHeader,pa as Server,ii as Settings,Po as SettingsModal,si as Shield,ga as Smartphone,ha as Square,qa as StatusDot,hi as TabSelector,va as Timer,ci as Trash2,xa as Unlock,Ta as Upload,ui as User,Xt as UserStatus,ka as Users,mi as Wifi,fi as X,Ma as XCircle,yi as Zap,Cn as appSyncAdapter,Bi as autoDiscoverWebPresets,qt as autoDiscoverWithCustom,Kt as clearReleaseOptIn,sa as copyToClipboard,pn as createWebTool,yn as createWebTools,Ei as defaultToolPresets,na as devToolsStorageKeys,Zl as dialColors,ec as dialStyles,Vn as formatBytes,Kn as formatDuration,Gn as formatNumber,Oi as getEnabledTools,Xl as getToolColor,Jl as getToolDescription,ql as getToolLabel,xt as getToolsBySlot,Na as methodColor,ta as persistentStorage,Yn as safeStringify,Yl as settingsColors,Ql as settingsStyles,Ha as statusColor,ei as toolTheme,Jn as truncateMiddle,Ua as typeColor,yt as useAppHost,$t as useDevToolsVisibility,Gl as useFloatingTools,Zn as usePersistedState,ia as useSafeAreaInsets,_l as useSettings,Is as useToolHeader,Ko as useToolHost};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@buoy-gg/core",
|
|
3
|
-
"version": "7.0.
|
|
3
|
+
"version": "7.0.47",
|
|
4
4
|
"description": "Floating developer menu and account setup for React Native. Add tool packages and configure Desktop or MCP connections separately.",
|
|
5
5
|
"main": "lib/commonjs/index.js",
|
|
6
6
|
"module": "lib/module/index.js",
|
|
@@ -61,10 +61,10 @@
|
|
|
61
61
|
],
|
|
62
62
|
"dependencies": {
|
|
63
63
|
"react-devtools-core": "6.1.5",
|
|
64
|
-
"@buoy-gg/floating-tools-core": "^7.0.
|
|
65
|
-
"@buoy-gg/floating-tools-react": "^7.0.
|
|
66
|
-
"@buoy-gg/license": "^7.0.
|
|
67
|
-
"@buoy-gg/shared-ui": "^7.0.
|
|
64
|
+
"@buoy-gg/floating-tools-core": "^7.0.47",
|
|
65
|
+
"@buoy-gg/floating-tools-react": "^7.0.47",
|
|
66
|
+
"@buoy-gg/license": "^7.0.47",
|
|
67
|
+
"@buoy-gg/shared-ui": "^7.0.47"
|
|
68
68
|
},
|
|
69
69
|
"peerDependencies": {
|
|
70
70
|
"react": "*"
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use client";var o=process.env.NODE_ENV!=="production";typeof window<"u"&&typeof globalThis.global>"u"&&(globalThis.global=globalThis);export{o as a};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use client";var l=Object.defineProperty;var b=Object.getOwnPropertyDescriptor;var p=Object.getOwnPropertyNames;var c=Object.prototype.hasOwnProperty;var f=(r,e)=>{for(var t in e)l(r,t,{get:e[t],enumerable:true})},n=(r,e,t,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of p(e))!c.call(r,a)&&a!==t&&l(r,a,{get:()=>e[a],enumerable:!(o=b(e,a))||o.enumerable});return r},s=(r,e,t)=>(n(r,e,"default"),t&&n(t,e,"default"));var i=process.env.NODE_ENV!=="production";typeof window<"u"&&typeof globalThis.global>"u"&&(globalThis.global=globalThis);export{f as a,s as b,i as c};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use client";import{b as B,c as M}from"./chunk-R7RGRTY5.mjs";import{toolTheme as V}from"@buoy-gg/shared-ui/web";var v={};B(v,{AccessibilityInfo:()=>D,ActivityIndicator:()=>Aa,Alert:()=>Va,Animated:()=>w,AppRegistry:()=>H,AppState:()=>F,Appearance:()=>R,BackHandler:()=>z,Button:()=>Ba,CheckBox:()=>Q,Clipboard:()=>N,DeviceEventEmitter:()=>ha,Dimensions:()=>S,Easing:()=>U,FlatList:()=>Z,I18nManager:()=>O,Image:()=>aa,ImageBackground:()=>ea,Input:()=>ca,InteractionManager:()=>K,Keyboard:()=>W,KeyboardAvoidingView:()=>sa,LayoutAnimation:()=>j,Linking:()=>$,LogBox:()=>fa,Modal:()=>Ea,NativeEventEmitter:()=>G,NativeModules:()=>P,PanResponder:()=>q,Picker:()=>ta,PixelRatio:()=>J,Platform:()=>C,Pressable:()=>Ta,ProgressBar:()=>oa,RefreshControl:()=>ra,SafeAreaView:()=>ia,ScrollView:()=>E,SectionList:()=>na,Share:()=>X,StatusBar:()=>la,StyleSheet:()=>b,Switch:()=>ka,Text:()=>x,TextInput:()=>wa,Touchable:()=>da,TouchableHighlight:()=>Sa,TouchableNativeFeedback:()=>ua,TouchableOpacity:()=>T,TouchableWithoutFeedback:()=>Ca,UIManager:()=>Y,Vibration:()=>_,View:()=>p,VirtualizedList:()=>ma,YellowBox:()=>pa,findNodeHandle:()=>Ma,unstable_createElement:()=>I,useColorScheme:()=>ga,useLocaleContext:()=>xa,useWindowDimensions:()=>ba});M(v,L);import*as L from"react-native-web";import{unstable_createElement as I,NativeModules as P,AccessibilityInfo as D,Animated as w,Appearance as R,AppRegistry as H,AppState as F,BackHandler as z,Clipboard as N,Dimensions as S,Easing as U,I18nManager as O,Keyboard as W,InteractionManager as K,LayoutAnimation as j,Linking as $,NativeEventEmitter as G,PanResponder as q,PixelRatio as J,Platform as C,Share as X,StyleSheet as b,UIManager as Y,Vibration as _,CheckBox as Q,FlatList as Z,Image as aa,ImageBackground as ea,KeyboardAvoidingView as sa,Picker as ta,ProgressBar as oa,RefreshControl as ra,SafeAreaView as ia,SectionList as na,StatusBar as la,Input as ca,Touchable as da,TouchableNativeFeedback as ua,VirtualizedList as ma,YellowBox as pa,LogBox as fa,DeviceEventEmitter as ha,useColorScheme as ga,useLocaleContext as xa,useWindowDimensions as ba}from"react-native-web";import*as i from"react-native-web";import{createElement as ya,forwardRef as va}from"react";function n(e){let t=va((o,r)=>{let{accessibilityState:s,accessibilityValue:d,...l}=o;for(let c of["busy","checked","disabled","expanded","selected"])s?.[c]!==void 0&&l[`aria-${c}`]===void 0&&(l[`aria-${c}`]=s[c]);for(let[c,h]of Object.entries({min:"valuemin",max:"valuemax",now:"valuenow",text:"valuetext"}))d?.[c]!==void 0&&l[`aria-${h}`]===void 0&&(l[`aria-${h}`]=d[c]);return ya(e,{...l,ref:r})});return t.displayName=e.displayName??e.name??"NativeWebView",t}var p=n(i.View),x=n(i.Text),wa=n(i.TextInput),T=n(i.TouchableOpacity),Sa=n(i.TouchableHighlight),Ca=n(i.TouchableWithoutFeedback),Ta=n(i.Pressable),E=n(i.ScrollView),Ea=n(i.Modal),ka=n(i.Switch),Aa=n(i.ActivityIndicator),Ba=n(i.Button),Ma=i.findNodeHandle,Va={alert(e,t,o,r){if(typeof document>"u")return;let s=document.createElement("dialog");s.dataset.buoyRoot="",s.setAttribute("aria-label",e),s.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 d=document.createElement("h2");if(d.textContent=e,d.style.cssText="font-size:18px;margin:0 0 12px",s.appendChild(d),t){let u=document.createElement("p");u.textContent=t,u.style.cssText="line-height:1.5;white-space:pre-wrap;margin:0 0 20px",s.appendChild(u)}let l=document.createElement("div");l.style.cssText="display:flex;justify-content:flex-end;flex-wrap:wrap;gap:8px";let c=o?.length?o:[{text:"OK"}],h=()=>{s.close?.(),s.remove()};for(let u of c){let g=document.createElement("button");g.type="button",g.textContent=u.text??"OK",g.style.cssText=`padding:9px 14px;border:1px solid #64748b;border-radius:7px;color:white;background:${u.style==="destructive"?"#a52b38":"#283a4d"};cursor:pointer;font:inherit`,g.onclick=()=>{h(),u.onPress?.()},l.appendChild(g)}s.addEventListener("cancel",u=>{u.preventDefault(),r?.cancelable!==false&&(h(),r?.onDismiss?.())}),s.appendChild(l),document.body.appendChild(s),s.showModal?s.showModal():s.setAttribute("open","")}};import{CopyButton as La,toolTheme as a}from"@buoy-gg/shared-ui/web";import{TreeDiffViewer as Ia,SplitDiffViewer as Pa}from"@buoy-gg/shared-ui/web/dataViewer";import{jsx as m,jsxs as k}from"react/jsx-runtime";var Da={success:a.colors.success,active:a.colors.success,connected:a.colors.success,error:a.colors.error,failed:a.colors.error,warning:a.colors.warning,stale:a.colors.warning,pending:a.colors.info,loading:a.colors.info,fetching:a.colors.info,info:a.colors.info,inactive:a.colors.textMuted,idle:a.colors.textMuted};function A(e){return Da[e.toLowerCase()]??a.colors.textMuted}var Ra={GET:a.colors.info,POST:a.colors.success,PUT:a.colors.warning,PATCH:a.colors.warning,DELETE:a.colors.error};function Ha(e){return Ra[e.toUpperCase()]??a.colors.textSecondary}var Fa={string:a.colors.success,number:a.colors.info,boolean:a.colors.warning,object:a.colors.accent,array:a.colors.accent,function:a.colors.error,null:a.colors.textMuted,undefined:a.colors.textMuted};function za(e){return Fa[e.toLowerCase()]??a.colors.textSecondary}function Na({children:e,color:t=a.colors.textSecondary,icon:o,size:r="small",pill:s=false,mono:d=false,style:l}){let c=typeof e=="string"||typeof e=="number";return k(p,{style:[f.base,r==="medium"&&f.medium,s&&f.pill,{backgroundColor:t+"1A",borderColor:t+"40"},l],children:[o,c?m(x,{style:[f.text,r==="medium"&&f.textMedium,d&&f.textMono,{color:t}],numberOfLines:1,children:e}):e]})}var f=b.create({base:{flexDirection:"row",alignItems:"center",alignSelf:"flex-start",gap:4,borderWidth:1,borderRadius:a.radius.sm,paddingHorizontal:6,paddingVertical:2},medium:{paddingHorizontal:8,paddingVertical:3},pill:{borderRadius:a.radius.pill,minWidth:20,justifyContent:"center"},text:{fontSize:10,fontWeight:"600",letterSpacing:.3},textMedium:{fontSize:12},textMono:{fontFamily:a.text.mono.fontFamily}});function Ua({status:e,color:t,size:o=8,style:r}){let s=t??(e?A(e):a.colors.textMuted);return m(p,{style:[{width:o,height:o,borderRadius:o/2,backgroundColor:s},r]})}function Oa({label:e,value:t,copyable:o=false,style:r}){let s=typeof t=="string"||typeof t=="number";return k(p,{style:[y.row,r],children:[m(x,{style:y.label,numberOfLines:1,children:e}),m(p,{style:y.value,children:s?m(x,{style:y.valueText,numberOfLines:2,children:String(t)}):t}),o&&t!=null&&m(La,{value:t,size:12})]})}var y=b.create({row:{flexDirection:"row",alignItems:"center",gap:a.spacing.sm,paddingVertical:3},label:{...a.text.label,color:a.colors.textMuted,minWidth:72},value:{flex:1,flexDirection:"row",alignItems:"center"},valueText:{...a.text.mono,color:a.colors.text}});function Wa({oldValue:e,newValue:t,mode:o="tree",showUnchanged:r=true,scrollEnabled:s=false,height:d=220}){return o==="text"?m(Pa,{oldValue:e,newValue:t,height:d}):m(Ia,{oldValue:e,newValue:t,showUnchanged:r,scrollEnabled:s})}import{ToolButton as Ka,CopyButton as ja,PowerToggleButton as $a}from"@buoy-gg/shared-ui/web";import{CompactRow as Ga,DevToolsCard as qa}from"@buoy-gg/shared-ui/web";import{SectionHeader as Ja,CollapsibleSection as Xa,TabSelector as Ya,EmptyState as _a,SearchBar as Qa,EventStepperFooter as Za}from"@buoy-gg/shared-ui/web";import{DataViewer as ae}from"@buoy-gg/shared-ui/web/dataViewer";import{BaseEventStore as ee}from"@buoy-gg/shared-ui/web";import{RelativeTime as se}from"@buoy-gg/shared-ui/web";import{formatBytes as te,formatDuration as oe,formatNumber as re,truncateMiddle as ie,safeStringify as ne}from"@buoy-gg/shared-ui/web";import{usePersistedState as le,persistentStorage as ce,devToolsStorageKeys as de}from"@buoy-gg/shared-ui/web";import{useSafeAreaInsets as ue,copyToClipboard as me}from"@buoy-gg/shared-ui/web";import{JsModal as pe}from"@buoy-gg/shared-ui/web";import{Activity as fe,AlertTriangle as he,Bug as ge,Check as xe,CheckCircle as be,ChevronDown as ye,ChevronLeft as ve,ChevronRight as we,ChevronUp as Se,Clock as Ce,Copy as Te,Database as Ee,Eye as ke,EyeOff as Ae,FileJson as Be,FileText as Me,Filter as Ve,FlaskConical as Le,Globe as Ie,Hash as Pe,Info as De,Key as Re,Layers as He,Lock as Fe,Pause as ze,Play as Ne,Plus as Ue,Power as Oe,RefreshCw as We,Search as Ke,Settings as je,Shield as $e,Trash2 as Ge,User as qe,Wifi as Je,X as Xe,Zap as Ye,AlertCircle as _e,BarChart3 as Qe,Bookmark as Ze,Cloud as as,Download as es,Edit3 as ss,GitBranch as ts,HardDrive as os,HelpCircle as rs,Home as is,Image as ns,Link as ls,Maximize2 as cs,Minus as ds,Palette as us,Pin as ms,Route as ps,Server as fs,Smartphone as hs,Square as gs,CheckSquare as xs,Timer as bs,Unlock as ys,Upload as vs,Users as ws,XCircle as Ss}from"@buoy-gg/shared-ui/web";export{p as a,x as b,T as c,E as d,v as e,w as f,S as g,C as h,b as i,A as j,Ha as k,za as l,Na as m,Ua as n,Oa as o,Wa as p,V as q,Ka as r,ja as s,$a as t,Ga as u,qa as v,Ja as w,Xa as x,Ya as y,_a as z,Qa as A,Za as B,ae as C,ee as D,se as E,te as F,oe as G,re as H,ie as I,ne as J,le as K,ce as L,de as M,ue as N,me as O,pe as P,fe as Q,he as R,ge as S,xe as T,be as U,ye as V,ve as W,we as X,Se as Y,Ce as Z,Te as _,Ee as $,ke as aa,Ae as ba,Be as ca,Me as da,Ve as ea,Le as fa,Ie as ga,Pe as ha,De as ia,Re as ja,He as ka,Fe as la,ze as ma,Ne as na,Ue as oa,Oe as pa,We as qa,Ke as ra,je as sa,$e as ta,Ge as ua,qe as va,Je as wa,Xe as xa,Ye as ya,_e as za,Qe as Aa,Ze as Ba,as as Ca,es as Da,ss as Ea,ts as Fa,os as Ga,rs as Ha,is as Ia,ns as Ja,ls as Ka,cs as La,ds as Ma,us as Na,ms as Oa,ps as Pa,fs as Qa,hs as Ra,gs as Sa,xs as Ta,bs as Ua,ys as Va,vs as Wa,ws as Xa,Ss as Ya};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use client";import{b as B,c as M}from"./chunk-R7RGRTY5.mjs";import{toolTheme as V}from"@buoy-gg/shared-ui/web";var v={};B(v,{AccessibilityInfo:()=>D,ActivityIndicator:()=>ka,Alert:()=>Ma,Animated:()=>w,AppRegistry:()=>H,AppState:()=>F,Appearance:()=>R,BackHandler:()=>z,Button:()=>Aa,CheckBox:()=>Q,Clipboard:()=>N,DeviceEventEmitter:()=>fa,Dimensions:()=>S,Easing:()=>U,FlatList:()=>Z,I18nManager:()=>O,Image:()=>aa,ImageBackground:()=>ea,InteractionManager:()=>K,Keyboard:()=>W,KeyboardAvoidingView:()=>sa,LayoutAnimation:()=>j,Linking:()=>$,LogBox:()=>pa,Modal:()=>Ta,NativeEventEmitter:()=>G,NativeModules:()=>I,PanResponder:()=>q,Picker:()=>ta,PixelRatio:()=>J,Platform:()=>C,Pressable:()=>Ca,ProgressBar:()=>oa,RefreshControl:()=>ra,SafeAreaView:()=>ia,ScrollView:()=>E,SectionList:()=>na,Share:()=>X,StatusBar:()=>la,StyleSheet:()=>b,Switch:()=>Ea,Text:()=>x,TextInput:()=>va,Touchable:()=>ca,TouchableHighlight:()=>wa,TouchableNativeFeedback:()=>da,TouchableOpacity:()=>T,TouchableWithoutFeedback:()=>Sa,UIManager:()=>Y,Vibration:()=>_,View:()=>p,VirtualizedList:()=>ua,YellowBox:()=>ma,findNodeHandle:()=>Ba,unstable_createElement:()=>P,useColorScheme:()=>ha,useLocaleContext:()=>ga,useWindowDimensions:()=>xa});M(v,L);import*as L from"react-native-web";import{unstable_createElement as P,NativeModules as I,AccessibilityInfo as D,Animated as w,Appearance as R,AppRegistry as H,AppState as F,BackHandler as z,Clipboard as N,Dimensions as S,Easing as U,I18nManager as O,Keyboard as W,InteractionManager as K,LayoutAnimation as j,Linking as $,NativeEventEmitter as G,PanResponder as q,PixelRatio as J,Platform as C,Share as X,StyleSheet as b,UIManager as Y,Vibration as _,CheckBox as Q,FlatList as Z,Image as aa,ImageBackground as ea,KeyboardAvoidingView as sa,Picker as ta,ProgressBar as oa,RefreshControl as ra,SafeAreaView as ia,SectionList as na,StatusBar as la,Touchable as ca,TouchableNativeFeedback as da,VirtualizedList as ua,YellowBox as ma,LogBox as pa,DeviceEventEmitter as fa,useColorScheme as ha,useLocaleContext as ga,useWindowDimensions as xa}from"react-native-web";import*as i from"react-native-web";import{createElement as ba,forwardRef as ya}from"react";function n(e){let t=ya((o,r)=>{let{accessibilityState:s,accessibilityValue:d,...l}=o;for(let c of["busy","checked","disabled","expanded","selected"])s?.[c]!==void 0&&l[`aria-${c}`]===void 0&&(l[`aria-${c}`]=s[c]);for(let[c,h]of Object.entries({min:"valuemin",max:"valuemax",now:"valuenow",text:"valuetext"}))d?.[c]!==void 0&&l[`aria-${h}`]===void 0&&(l[`aria-${h}`]=d[c]);return ba(e,{...l,ref:r})});return t.displayName=e.displayName??e.name??"NativeWebView",t}var p=n(i.View),x=n(i.Text),va=n(i.TextInput),T=n(i.TouchableOpacity),wa=n(i.TouchableHighlight),Sa=n(i.TouchableWithoutFeedback),Ca=n(i.Pressable),E=n(i.ScrollView),Ta=n(i.Modal),Ea=n(i.Switch),ka=n(i.ActivityIndicator),Aa=n(i.Button),Ba=i.findNodeHandle,Ma={alert(e,t,o,r){if(typeof document>"u")return;let s=document.createElement("dialog");s.dataset.buoyRoot="",s.setAttribute("aria-label",e),s.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 d=document.createElement("h2");if(d.textContent=e,d.style.cssText="font-size:18px;margin:0 0 12px",s.appendChild(d),t){let u=document.createElement("p");u.textContent=t,u.style.cssText="line-height:1.5;white-space:pre-wrap;margin:0 0 20px",s.appendChild(u)}let l=document.createElement("div");l.style.cssText="display:flex;justify-content:flex-end;flex-wrap:wrap;gap:8px";let c=o?.length?o:[{text:"OK"}],h=()=>{s.close?.(),s.remove()};for(let u of c){let g=document.createElement("button");g.type="button",g.textContent=u.text??"OK",g.style.cssText=`padding:9px 14px;border:1px solid #64748b;border-radius:7px;color:white;background:${u.style==="destructive"?"#a52b38":"#283a4d"};cursor:pointer;font:inherit`,g.onclick=()=>{h(),u.onPress?.()},l.appendChild(g)}s.addEventListener("cancel",u=>{u.preventDefault(),r?.cancelable!==false&&(h(),r?.onDismiss?.())}),s.appendChild(l),document.body.appendChild(s),s.showModal?s.showModal():s.setAttribute("open","")}};import{CopyButton as Va,toolTheme as a}from"@buoy-gg/shared-ui/web";import{TreeDiffViewer as La,SplitDiffViewer as Pa}from"@buoy-gg/shared-ui/web/dataViewer";import{jsx as m,jsxs as k}from"react/jsx-runtime";var Ia={success:a.colors.success,active:a.colors.success,connected:a.colors.success,error:a.colors.error,failed:a.colors.error,warning:a.colors.warning,stale:a.colors.warning,pending:a.colors.info,loading:a.colors.info,fetching:a.colors.info,info:a.colors.info,inactive:a.colors.textMuted,idle:a.colors.textMuted};function A(e){return Ia[e.toLowerCase()]??a.colors.textMuted}var Da={GET:a.colors.info,POST:a.colors.success,PUT:a.colors.warning,PATCH:a.colors.warning,DELETE:a.colors.error};function Ra(e){return Da[e.toUpperCase()]??a.colors.textSecondary}var Ha={string:a.colors.success,number:a.colors.info,boolean:a.colors.warning,object:a.colors.accent,array:a.colors.accent,function:a.colors.error,null:a.colors.textMuted,undefined:a.colors.textMuted};function Fa(e){return Ha[e.toLowerCase()]??a.colors.textSecondary}function za({children:e,color:t=a.colors.textSecondary,icon:o,size:r="small",pill:s=false,mono:d=false,style:l}){let c=typeof e=="string"||typeof e=="number";return k(p,{style:[f.base,r==="medium"&&f.medium,s&&f.pill,{backgroundColor:t+"1A",borderColor:t+"40"},l],children:[o,c?m(x,{style:[f.text,r==="medium"&&f.textMedium,d&&f.textMono,{color:t}],numberOfLines:1,children:e}):e]})}var f=b.create({base:{flexDirection:"row",alignItems:"center",alignSelf:"flex-start",gap:4,borderWidth:1,borderRadius:a.radius.sm,paddingHorizontal:6,paddingVertical:2},medium:{paddingHorizontal:8,paddingVertical:3},pill:{borderRadius:a.radius.pill,minWidth:20,justifyContent:"center"},text:{fontSize:10,fontWeight:"600",letterSpacing:.3},textMedium:{fontSize:12},textMono:{fontFamily:a.text.mono.fontFamily}});function Na({status:e,color:t,size:o=8,style:r}){let s=t??(e?A(e):a.colors.textMuted);return m(p,{style:[{width:o,height:o,borderRadius:o/2,backgroundColor:s},r]})}function Ua({label:e,value:t,copyable:o=false,style:r}){let s=typeof t=="string"||typeof t=="number";return k(p,{style:[y.row,r],children:[m(x,{style:y.label,numberOfLines:1,children:e}),m(p,{style:y.value,children:s?m(x,{style:y.valueText,numberOfLines:2,children:String(t)}):t}),o&&t!=null&&m(Va,{value:t,size:12})]})}var y=b.create({row:{flexDirection:"row",alignItems:"center",gap:a.spacing.sm,paddingVertical:3},label:{...a.text.label,color:a.colors.textMuted,minWidth:72},value:{flex:1,flexDirection:"row",alignItems:"center"},valueText:{...a.text.mono,color:a.colors.text}});function Oa({oldValue:e,newValue:t,mode:o="tree",showUnchanged:r=true,scrollEnabled:s=false,height:d=220}){return o==="text"?m(Pa,{oldValue:e,newValue:t,height:d}):m(La,{oldValue:e,newValue:t,showUnchanged:r,scrollEnabled:s})}import{ToolButton as Wa,CopyButton as Ka,PowerToggleButton as ja}from"@buoy-gg/shared-ui/web";import{CompactRow as $a,DevToolsCard as Ga}from"@buoy-gg/shared-ui/web";import{SectionHeader as qa,CollapsibleSection as Ja,TabSelector as Xa,EmptyState as Ya,SearchBar as _a,EventStepperFooter as Qa}from"@buoy-gg/shared-ui/web";import{DataViewer as Za}from"@buoy-gg/shared-ui/web/dataViewer";import{BaseEventStore as ae}from"@buoy-gg/shared-ui/web";import{RelativeTime as ee}from"@buoy-gg/shared-ui/web";import{formatBytes as se,formatDuration as te,formatNumber as oe,truncateMiddle as re,safeStringify as ie}from"@buoy-gg/shared-ui/web";import{usePersistedState as ne,persistentStorage as le,devToolsStorageKeys as ce}from"@buoy-gg/shared-ui/web";import{useSafeAreaInsets as de,copyToClipboard as ue}from"@buoy-gg/shared-ui/web";import{JsModal as me}from"@buoy-gg/shared-ui/web";import{Activity as pe,AlertTriangle as fe,Bug as he,Check as ge,CheckCircle as xe,ChevronDown as be,ChevronLeft as ye,ChevronRight as ve,ChevronUp as we,Clock as Se,Copy as Ce,Database as Te,Eye as Ee,EyeOff as ke,FileJson as Ae,FileText as Be,Filter as Me,FlaskConical as Ve,Globe as Le,Hash as Pe,Info as Ie,Key as De,Layers as Re,Lock as He,Pause as Fe,Play as ze,Plus as Ne,Power as Ue,RefreshCw as Oe,Search as We,Settings as Ke,Shield as je,Trash2 as $e,User as Ge,Wifi as qe,X as Je,Zap as Xe,AlertCircle as Ye,BarChart3 as _e,Bookmark as Qe,Cloud as Ze,Download as as,Edit3 as es,GitBranch as ss,HardDrive as ts,HelpCircle as os,Home as rs,Image as is,Link as ns,Maximize2 as ls,Minus as cs,Palette as ds,Pin as us,Route as ms,Server as ps,Smartphone as fs,Square as hs,CheckSquare as gs,Timer as xs,Unlock as bs,Upload as ys,Users as vs,XCircle as ws}from"@buoy-gg/shared-ui/web";export{p as a,x as b,T as c,E as d,v as e,w as f,S as g,C as h,b as i,A as j,Ra as k,Fa as l,za as m,Na as n,Ua as o,Oa as p,V as q,Wa as r,Ka as s,ja as t,$a as u,Ga as v,qa as w,Ja as x,Xa as y,Ya as z,_a as A,Qa as B,Za as C,ae as D,ee as E,se as F,te as G,oe as H,re as I,ie as J,ne as K,le as L,ce as M,de as N,ue as O,me as P,pe as Q,fe as R,he as S,ge as T,xe as U,be as V,ye as W,ve as X,we as Y,Se as Z,Ce as _,Te as $,Ee as aa,ke as ba,Ae as ca,Be as da,Me as ea,Ve as fa,Le as ga,Pe as ha,Ie as ia,De as ja,Re as ka,He as la,Fe as ma,ze as na,Ne as oa,Ue as pa,Oe as qa,We as ra,Ke as sa,je as ta,$e as ua,Ge as va,qe as wa,Je as xa,Xe as ya,Ye as za,_e as Aa,Qe as Ba,Ze as Ca,as as Da,es as Ea,ss as Fa,ts as Ga,os as Ha,rs as Ia,is as Ja,ns as Ka,ls as La,cs as Ma,ds as Na,us as Oa,ms as Pa,ps as Qa,fs as Ra,hs as Sa,gs as Ta,xs as Ua,bs as Va,ys as Wa,vs as Xa,ws as Ya};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use client";import{a as S,b as T}from"./chunk-CGDSLLZF.mjs";import{toolTheme as E}from"@buoy-gg/shared-ui/web";var x={};S(x,{AccessibilityInfo:()=>M,ActivityIndicator:()=>X,Alert:()=>ka,Animated:()=>y,AppRegistry:()=>P,AppState:()=>V,Appearance:()=>L,BackHandler:()=>I,Button:()=>Y,CheckBox:()=>_,Clipboard:()=>D,DeviceEventEmitter:()=>wa,Dimensions:()=>R,Easing:()=>H,FlatList:()=>Q,I18nManager:()=>F,Image:()=>Z,ImageBackground:()=>$,InteractionManager:()=>U,Keyboard:()=>z,KeyboardAvoidingView:()=>aa,LayoutAnimation:()=>N,Linking:()=>O,LogBox:()=>ya,Modal:()=>ea,NativeEventEmitter:()=>K,NativeModules:()=>B,PanResponder:()=>W,Picker:()=>sa,PixelRatio:()=>j,Platform:()=>w,Pressable:()=>ta,ProgressBar:()=>oa,RefreshControl:()=>ra,SafeAreaView:()=>ia,ScrollView:()=>na,SectionList:()=>la,Share:()=>G,StatusBar:()=>ca,StyleSheet:()=>f,Switch:()=>da,Text:()=>p,TextInput:()=>ua,Touchable:()=>ma,TouchableHighlight:()=>pa,TouchableNativeFeedback:()=>fa,TouchableOpacity:()=>ha,TouchableWithoutFeedback:()=>ga,UIManager:()=>q,Vibration:()=>J,View:()=>c,VirtualizedList:()=>xa,YellowBox:()=>ba,findNodeHandle:()=>Ea,unstable_createElement:()=>A,useColorScheme:()=>va,useLocaleContext:()=>Ca,useWindowDimensions:()=>Sa});T(x,k);import*as k from"react-native-web";import{unstable_createElement as A,NativeModules as B,AccessibilityInfo as M,Animated as y,Appearance as L,AppRegistry as P,AppState as V,BackHandler as I,Clipboard as D,Dimensions as R,Easing as H,I18nManager as F,Keyboard as z,InteractionManager as U,LayoutAnimation as N,Linking as O,NativeEventEmitter as K,PanResponder as W,PixelRatio as j,Platform as w,Share as G,StyleSheet as f,UIManager as q,Vibration as J,ActivityIndicator as X,Button as Y,CheckBox as _,FlatList as Q,Image as Z,ImageBackground as $,KeyboardAvoidingView as aa,Modal as ea,Picker as sa,Pressable as ta,ProgressBar as oa,RefreshControl as ra,SafeAreaView as ia,ScrollView as na,SectionList as la,StatusBar as ca,Switch as da,Text as p,TextInput as ua,Touchable as ma,TouchableHighlight as pa,TouchableNativeFeedback as fa,TouchableOpacity as ha,TouchableWithoutFeedback as ga,View as c,VirtualizedList as xa,YellowBox as ba,LogBox as ya,DeviceEventEmitter as wa,useColorScheme as va,useLocaleContext as Ca,useWindowDimensions as Sa}from"react-native-web";import*as Ta from"react-native-web";var Ea=Ta.findNodeHandle,ka={alert(e,t,o,r){if(typeof document>"u")return;let s=document.createElement("dialog");s.dataset.buoyRoot="",s.setAttribute("aria-label",e),s.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 l=document.createElement("h2");if(l.textContent=e,l.style.cssText="font-size:18px;margin:0 0 12px",s.appendChild(l),t){let i=document.createElement("p");i.textContent=t,i.style.cssText="line-height:1.5;white-space:pre-wrap;margin:0 0 20px",s.appendChild(i)}let u=document.createElement("div");u.style.cssText="display:flex;justify-content:flex-end;flex-wrap:wrap;gap:8px";let g=o?.length?o:[{text:"OK"}],b=()=>{s.close?.(),s.remove()};for(let i of g){let m=document.createElement("button");m.type="button",m.textContent=i.text??"OK",m.style.cssText=`padding:9px 14px;border:1px solid #64748b;border-radius:7px;color:white;background:${i.style==="destructive"?"#a52b38":"#283a4d"};cursor:pointer;font:inherit`,m.onclick=()=>{b(),i.onPress?.()},u.appendChild(m)}s.addEventListener("cancel",i=>{i.preventDefault(),r?.cancelable!==false&&(b(),r?.onDismiss?.())}),s.appendChild(u),document.body.appendChild(s),s.showModal?s.showModal():s.setAttribute("open","")}};import{CopyButton as Aa,toolTheme as a}from"@buoy-gg/shared-ui/web";import{TreeDiffViewer as Ba,SplitDiffViewer as Ma}from"@buoy-gg/shared-ui/web/dataViewer";import{jsx as n,jsxs as v}from"react/jsx-runtime";var La={success:a.colors.success,active:a.colors.success,connected:a.colors.success,error:a.colors.error,failed:a.colors.error,warning:a.colors.warning,stale:a.colors.warning,pending:a.colors.info,loading:a.colors.info,fetching:a.colors.info,info:a.colors.info,inactive:a.colors.textMuted,idle:a.colors.textMuted};function C(e){return La[e.toLowerCase()]??a.colors.textMuted}var Pa={GET:a.colors.info,POST:a.colors.success,PUT:a.colors.warning,PATCH:a.colors.warning,DELETE:a.colors.error};function Va(e){return Pa[e.toUpperCase()]??a.colors.textSecondary}var Ia={string:a.colors.success,number:a.colors.info,boolean:a.colors.warning,object:a.colors.accent,array:a.colors.accent,function:a.colors.error,null:a.colors.textMuted,undefined:a.colors.textMuted};function Da(e){return Ia[e.toLowerCase()]??a.colors.textSecondary}function Ra({children:e,color:t=a.colors.textSecondary,icon:o,size:r="small",pill:s=false,mono:l=false,style:u}){let g=typeof e=="string"||typeof e=="number";return v(c,{style:[d.base,r==="medium"&&d.medium,s&&d.pill,{backgroundColor:t+"1A",borderColor:t+"40"},u],children:[o,g?n(p,{style:[d.text,r==="medium"&&d.textMedium,l&&d.textMono,{color:t}],numberOfLines:1,children:e}):e]})}var d=f.create({base:{flexDirection:"row",alignItems:"center",alignSelf:"flex-start",gap:4,borderWidth:1,borderRadius:a.radius.sm,paddingHorizontal:6,paddingVertical:2},medium:{paddingHorizontal:8,paddingVertical:3},pill:{borderRadius:a.radius.pill,minWidth:20,justifyContent:"center"},text:{fontSize:10,fontWeight:"600",letterSpacing:.3},textMedium:{fontSize:12},textMono:{fontFamily:a.text.mono.fontFamily}});function Ha({status:e,color:t,size:o=8,style:r}){let s=t??(e?C(e):a.colors.textMuted);return n(c,{style:[{width:o,height:o,borderRadius:o/2,backgroundColor:s},r]})}function Fa({label:e,value:t,copyable:o=false,style:r}){let s=typeof t=="string"||typeof t=="number";return v(c,{style:[h.row,r],children:[n(p,{style:h.label,numberOfLines:1,children:e}),n(c,{style:h.value,children:s?n(p,{style:h.valueText,numberOfLines:2,children:String(t)}):t}),o&&t!=null&&n(Aa,{value:t,size:12})]})}var h=f.create({row:{flexDirection:"row",alignItems:"center",gap:a.spacing.sm,paddingVertical:3},label:{...a.text.label,color:a.colors.textMuted,minWidth:72},value:{flex:1,flexDirection:"row",alignItems:"center"},valueText:{...a.text.mono,color:a.colors.text}});function za({oldValue:e,newValue:t,mode:o="tree",showUnchanged:r=true,scrollEnabled:s=false,height:l=220}){return o==="text"?n(Ma,{oldValue:e,newValue:t,height:l}):n(Ba,{oldValue:e,newValue:t,showUnchanged:r,scrollEnabled:s})}import{ToolButton as Ua,CopyButton as Na,PowerToggleButton as Oa}from"@buoy-gg/shared-ui/web";import{CompactRow as Ka,DevToolsCard as Wa}from"@buoy-gg/shared-ui/web";import{SectionHeader as ja,CollapsibleSection as Ga,TabSelector as qa,EmptyState as Ja,SearchBar as Xa,EventStepperFooter as Ya}from"@buoy-gg/shared-ui/web";import{DataViewer as _a}from"@buoy-gg/shared-ui/web/dataViewer";import{BaseEventStore as Qa}from"@buoy-gg/shared-ui/web";import{RelativeTime as Za}from"@buoy-gg/shared-ui/web";import{formatBytes as $a,formatDuration as ae,formatNumber as ee,truncateMiddle as se,safeStringify as te}from"@buoy-gg/shared-ui/web";import{usePersistedState as oe,persistentStorage as re,devToolsStorageKeys as ie}from"@buoy-gg/shared-ui/web";import{useSafeAreaInsets as ne,copyToClipboard as le}from"@buoy-gg/shared-ui/web";import{JsModal as ce}from"@buoy-gg/shared-ui/web";import{Activity as de,AlertTriangle as ue,Bug as me,Check as pe,CheckCircle as fe,ChevronDown as he,ChevronLeft as ge,ChevronRight as xe,ChevronUp as be,Clock as ye,Copy as we,Database as ve,Eye as Ce,EyeOff as Se,FileJson as Te,FileText as Ee,Filter as ke,FlaskConical as Ae,Globe as Be,Hash as Me,Info as Le,Key as Pe,Layers as Ve,Lock as Ie,Pause as De,Play as Re,Plus as He,Power as Fe,RefreshCw as ze,Search as Ue,Settings as Ne,Shield as Oe,Trash2 as Ke,User as We,Wifi as je,X as Ge,Zap as qe,AlertCircle as Je,BarChart3 as Xe,Bookmark as Ye,Cloud as _e,Download as Qe,Edit3 as Ze,GitBranch as $e,HardDrive as as,HelpCircle as es,Home as ss,Image as ts,Link as os,Maximize2 as rs,Minus as is,Palette as ns,Pin as ls,Route as cs,Server as ds,Smartphone as us,Square as ms,CheckSquare as ps,Timer as fs,Unlock as hs,Upload as gs,Users as xs,XCircle as bs}from"@buoy-gg/shared-ui/web";export{x as a,y as b,w as c,f as d,p as e,c as f,C as g,Va as h,Da as i,Ra as j,Ha as k,Fa as l,za as m,E as n,Ua as o,Na as p,Oa as q,Ka as r,Wa as s,ja as t,Ga as u,qa as v,Ja as w,Xa as x,Ya as y,_a as z,Qa as A,Za as B,$a as C,ae as D,ee as E,se as F,te as G,oe as H,re as I,ie as J,ne as K,le as L,ce as M,de as N,ue as O,me as P,pe as Q,fe as R,he as S,ge as T,xe as U,be as V,ye as W,we as X,ve as Y,Ce as Z,Se as _,Te as $,Ee as aa,ke as ba,Ae as ca,Be as da,Me as ea,Le as fa,Pe as ga,Ve as ha,Ie as ia,De as ja,Re as ka,He as la,Fe as ma,ze as na,Ue as oa,Ne as pa,Oe as qa,Ke as ra,We as sa,je as ta,Ge as ua,qe as va,Je as wa,Xe as xa,Ye as ya,_e as za,Qe as Aa,Ze as Ba,$e as Ca,as as Da,es as Ea,ss as Fa,ts as Ga,os as Ha,rs as Ia,is as Ja,ns as Ka,ls as La,cs as Ma,ds as Na,us as Oa,ms as Pa,ps as Qa,fs as Ra,hs as Sa,gs as Ta,xs as Ua,bs as Va};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use client";import{toolTheme as y}from"@buoy-gg/shared-ui/web";import{StyleSheet as m,Text as d,View as n}from"@buoy-gg/shared-ui/web/native";import{CopyButton as x,toolTheme as a}from"@buoy-gg/shared-ui/web";import{TreeDiffViewer as C,SplitDiffViewer as b}from"@buoy-gg/shared-ui/web/dataViewer";import{jsx as t,jsxs as f}from"react/jsx-runtime";var S={success:a.colors.success,active:a.colors.success,connected:a.colors.success,error:a.colors.error,failed:a.colors.error,warning:a.colors.warning,stale:a.colors.warning,pending:a.colors.info,loading:a.colors.info,fetching:a.colors.info,info:a.colors.info,inactive:a.colors.textMuted,idle:a.colors.textMuted};function p(s){return S[s.toLowerCase()]??a.colors.textMuted}var w={GET:a.colors.info,POST:a.colors.success,PUT:a.colors.warning,PATCH:a.colors.warning,DELETE:a.colors.error};function v(s){return w[s.toUpperCase()]??a.colors.textSecondary}var T={string:a.colors.success,number:a.colors.info,boolean:a.colors.warning,object:a.colors.accent,array:a.colors.accent,function:a.colors.error,null:a.colors.textMuted,undefined:a.colors.textMuted};function M(s){return T[s.toLowerCase()]??a.colors.textSecondary}function D({children:s,color:e=a.colors.textSecondary,icon:o,size:r="small",pill:l=false,mono:u=false,style:g}){let h=typeof s=="string"||typeof s=="number";return f(n,{style:[i.base,r==="medium"&&i.medium,l&&i.pill,{backgroundColor:e+"1A",borderColor:e+"40"},g],children:[o,h?t(d,{style:[i.text,r==="medium"&&i.textMedium,u&&i.textMono,{color:e}],numberOfLines:1,children:s}):s]})}var i=m.create({base:{flexDirection:"row",alignItems:"center",alignSelf:"flex-start",gap:4,borderWidth:1,borderRadius:a.radius.sm,paddingHorizontal:6,paddingVertical:2},medium:{paddingHorizontal:8,paddingVertical:3},pill:{borderRadius:a.radius.pill,minWidth:20,justifyContent:"center"},text:{fontSize:10,fontWeight:"600",letterSpacing:.3},textMedium:{fontSize:12},textMono:{fontFamily:a.text.mono.fontFamily}});function k({status:s,color:e,size:o=8,style:r}){let l=e??(s?p(s):a.colors.textMuted);return t(n,{style:[{width:o,height:o,borderRadius:o/2,backgroundColor:l},r]})}function E({label:s,value:e,copyable:o=false,style:r}){let l=typeof e=="string"||typeof e=="number";return f(n,{style:[c.row,r],children:[t(d,{style:c.label,numberOfLines:1,children:s}),t(n,{style:c.value,children:l?t(d,{style:c.valueText,numberOfLines:2,children:String(e)}):e}),o&&e!=null&&t(x,{value:e,size:12})]})}var c=m.create({row:{flexDirection:"row",alignItems:"center",gap:a.spacing.sm,paddingVertical:3},label:{...a.text.label,color:a.colors.textMuted,minWidth:72},value:{flex:1,flexDirection:"row",alignItems:"center"},valueText:{...a.text.mono,color:a.colors.text}});function V({oldValue:s,newValue:e,mode:o="tree",showUnchanged:r=true,scrollEnabled:l=false,height:u=220}){return o==="text"?t(b,{oldValue:s,newValue:e,height:u}):t(C,{oldValue:s,newValue:e,showUnchanged:r,scrollEnabled:l})}import{ToolButton as B,CopyButton as P,PowerToggleButton as L}from"@buoy-gg/shared-ui/web";import{CompactRow as z,DevToolsCard as H}from"@buoy-gg/shared-ui/web";import{SectionHeader as U,CollapsibleSection as F,TabSelector as R,EmptyState as A,SearchBar as I,EventStepperFooter as O}from"@buoy-gg/shared-ui/web";import{DataViewer as j}from"@buoy-gg/shared-ui/web/dataViewer";import{BaseEventStore as W}from"@buoy-gg/shared-ui/web";import{RelativeTime as G}from"@buoy-gg/shared-ui/web";import{formatBytes as q,formatDuration as J,formatNumber as K,truncateMiddle as N,safeStringify as X}from"@buoy-gg/shared-ui/web";import{usePersistedState as Z,persistentStorage as Q,devToolsStorageKeys as Y}from"@buoy-gg/shared-ui/web";import{useSafeAreaInsets as _,copyToClipboard as $}from"@buoy-gg/shared-ui/web";import{JsModal as aa}from"@buoy-gg/shared-ui/web";import{Activity as sa,AlertTriangle as ea,Bug as oa,Check as ra,CheckCircle as ta,ChevronDown as la,ChevronLeft as ia,ChevronRight as na,ChevronUp as ca,Clock as ua,Copy as da,Database as ma,Eye as fa,EyeOff as pa,FileJson as ga,FileText as ha,Filter as ya,FlaskConical as xa,Globe as Ca,Hash as ba,Info as Sa,Key as wa,Layers as va,Lock as Ta,Pause as Ma,Play as Da,Plus as ka,Power as Ea,RefreshCw as Va,Search as Ba,Settings as Pa,Shield as La,Trash2 as za,User as Ha,Wifi as Ua,X as Fa,Zap as Ra,AlertCircle as Aa,BarChart3 as Ia,Bookmark as Oa,Cloud as ja,Download as Wa,Edit3 as Ga,GitBranch as qa,HardDrive as Ja,HelpCircle as Ka,Home as Na,Image as Xa,Link as Za,Maximize2 as Qa,Minus as Ya,Palette as _a,Pin as $a,Route as as,Server as ss,Smartphone as es,Square as os,CheckSquare as rs,Timer as ts,Unlock as ls,Upload as is,Users as ns,XCircle as cs}from"@buoy-gg/shared-ui/web";export{p as a,v as b,M as c,D as d,k as e,E as f,V as g,y as h,B as i,P as j,L as k,z as l,H as m,U as n,F as o,R as p,A as q,I as r,O as s,j as t,W as u,G as v,q as w,J as x,K as y,N as z,X as A,Z as B,Q as C,Y as D,_ as E,$ as F,aa as G,sa as H,ea as I,oa as J,ra as K,ta as L,la as M,ia as N,na as O,ca as P,ua as Q,da as R,ma as S,fa as T,pa as U,ga as V,ha as W,ya as X,xa as Y,Ca as Z,ba as _,Sa as $,wa as aa,va as ba,Ta as ca,Ma as da,Da as ea,ka as fa,Ea as ga,Va as ha,Ba as ia,Pa as ja,La as ka,za as la,Ha as ma,Ua as na,Fa as oa,Ra as pa,Aa as qa,Ia as ra,Oa as sa,ja as ta,Wa as ua,Ga as va,qa as wa,Ja as xa,Ka as ya,Na as za,Xa as Aa,Za as Ba,Qa as Ca,Ya as Da,_a as Ea,$a as Fa,as as Ga,ss as Ha,es as Ia,os as Ja,rs as Ka,ts as La,ls as Ma,is as Na,ns as Oa,cs as Pa};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use client";import{toolTheme as y}from"@buoy-gg/shared-ui/web";import{StyleSheet as m,Text as d,View as n}from"react-native-web";import{CopyButton as x,toolTheme as a}from"@buoy-gg/shared-ui/web";import{TreeDiffViewer as C,SplitDiffViewer as b}from"@buoy-gg/shared-ui/web/dataViewer";import{jsx as t,jsxs as f}from"react/jsx-runtime";var S={success:a.colors.success,active:a.colors.success,connected:a.colors.success,error:a.colors.error,failed:a.colors.error,warning:a.colors.warning,stale:a.colors.warning,pending:a.colors.info,loading:a.colors.info,fetching:a.colors.info,info:a.colors.info,inactive:a.colors.textMuted,idle:a.colors.textMuted};function p(s){return S[s.toLowerCase()]??a.colors.textMuted}var w={GET:a.colors.info,POST:a.colors.success,PUT:a.colors.warning,PATCH:a.colors.warning,DELETE:a.colors.error};function v(s){return w[s.toUpperCase()]??a.colors.textSecondary}var T={string:a.colors.success,number:a.colors.info,boolean:a.colors.warning,object:a.colors.accent,array:a.colors.accent,function:a.colors.error,null:a.colors.textMuted,undefined:a.colors.textMuted};function M(s){return T[s.toLowerCase()]??a.colors.textSecondary}function D({children:s,color:e=a.colors.textSecondary,icon:o,size:r="small",pill:l=false,mono:u=false,style:g}){let h=typeof s=="string"||typeof s=="number";return f(n,{style:[i.base,r==="medium"&&i.medium,l&&i.pill,{backgroundColor:e+"1A",borderColor:e+"40"},g],children:[o,h?t(d,{style:[i.text,r==="medium"&&i.textMedium,u&&i.textMono,{color:e}],numberOfLines:1,children:s}):s]})}var i=m.create({base:{flexDirection:"row",alignItems:"center",alignSelf:"flex-start",gap:4,borderWidth:1,borderRadius:a.radius.sm,paddingHorizontal:6,paddingVertical:2},medium:{paddingHorizontal:8,paddingVertical:3},pill:{borderRadius:a.radius.pill,minWidth:20,justifyContent:"center"},text:{fontSize:10,fontWeight:"600",letterSpacing:.3},textMedium:{fontSize:12},textMono:{fontFamily:a.text.mono.fontFamily}});function k({status:s,color:e,size:o=8,style:r}){let l=e??(s?p(s):a.colors.textMuted);return t(n,{style:[{width:o,height:o,borderRadius:o/2,backgroundColor:l},r]})}function E({label:s,value:e,copyable:o=false,style:r}){let l=typeof e=="string"||typeof e=="number";return f(n,{style:[c.row,r],children:[t(d,{style:c.label,numberOfLines:1,children:s}),t(n,{style:c.value,children:l?t(d,{style:c.valueText,numberOfLines:2,children:String(e)}):e}),o&&e!=null&&t(x,{value:e,size:12})]})}var c=m.create({row:{flexDirection:"row",alignItems:"center",gap:a.spacing.sm,paddingVertical:3},label:{...a.text.label,color:a.colors.textMuted,minWidth:72},value:{flex:1,flexDirection:"row",alignItems:"center"},valueText:{...a.text.mono,color:a.colors.text}});function V({oldValue:s,newValue:e,mode:o="tree",showUnchanged:r=true,scrollEnabled:l=false,height:u=220}){return o==="text"?t(b,{oldValue:s,newValue:e,height:u}):t(C,{oldValue:s,newValue:e,showUnchanged:r,scrollEnabled:l})}import{ToolButton as B,CopyButton as P,PowerToggleButton as L}from"@buoy-gg/shared-ui/web";import{CompactRow as z,DevToolsCard as H}from"@buoy-gg/shared-ui/web";import{SectionHeader as U,CollapsibleSection as F,TabSelector as R,EmptyState as A,SearchBar as I,EventStepperFooter as O}from"@buoy-gg/shared-ui/web";import{DataViewer as j}from"@buoy-gg/shared-ui/web/dataViewer";import{BaseEventStore as W}from"@buoy-gg/shared-ui/web";import{RelativeTime as G}from"@buoy-gg/shared-ui/web";import{formatBytes as q,formatDuration as J,formatNumber as K,truncateMiddle as N,safeStringify as X}from"@buoy-gg/shared-ui/web";import{usePersistedState as Z,persistentStorage as Q,devToolsStorageKeys as Y}from"@buoy-gg/shared-ui/web";import{useSafeAreaInsets as _,copyToClipboard as $}from"@buoy-gg/shared-ui/web";import{JsModal as aa}from"@buoy-gg/shared-ui/web";import{Activity as sa,AlertTriangle as ea,Bug as oa,Check as ra,CheckCircle as ta,ChevronDown as la,ChevronLeft as ia,ChevronRight as na,ChevronUp as ca,Clock as ua,Copy as da,Database as ma,Eye as fa,EyeOff as pa,FileJson as ga,FileText as ha,Filter as ya,FlaskConical as xa,Globe as Ca,Hash as ba,Info as Sa,Key as wa,Layers as va,Lock as Ta,Pause as Ma,Play as Da,Plus as ka,Power as Ea,RefreshCw as Va,Search as Ba,Settings as Pa,Shield as La,Trash2 as za,User as Ha,Wifi as Ua,X as Fa,Zap as Ra,AlertCircle as Aa,BarChart3 as Ia,Bookmark as Oa,Cloud as ja,Download as Wa,Edit3 as Ga,GitBranch as qa,HardDrive as Ja,HelpCircle as Ka,Home as Na,Image as Xa,Link as Za,Maximize2 as Qa,Minus as Ya,Palette as _a,Pin as $a,Route as as,Server as ss,Smartphone as es,Square as os,CheckSquare as rs,Timer as ts,Unlock as ls,Upload as is,Users as ns,XCircle as cs}from"@buoy-gg/shared-ui/web";export{p as a,v as b,M as c,D as d,k as e,E as f,V as g,y as h,B as i,P as j,L as k,z as l,H as m,U as n,F as o,R as p,A as q,I as r,O as s,j as t,W as u,G as v,q as w,J as x,K as y,N as z,X as A,Z as B,Q as C,Y as D,_ as E,$ as F,aa as G,sa as H,ea as I,oa as J,ra as K,ta as L,la as M,ia as N,na as O,ca as P,ua as Q,da as R,ma as S,fa as T,pa as U,ga as V,ha as W,ya as X,xa as Y,Ca as Z,ba as _,Sa as $,wa as aa,va as ba,Ta as ca,Ma as da,Da as ea,ka as fa,Ea as ga,Va as ha,Ba as ia,Pa as ja,La as ka,za as la,Ha as ma,Ua as na,Fa as oa,Ra as pa,Aa as qa,Ia as ra,Oa as sa,ja as ta,Wa as ua,Ga as va,qa as wa,Ja as xa,Ka as ya,Na as za,Xa as Aa,Za as Ba,Qa as Ca,Ya as Da,_a as Ea,$a as Fa,as as Ga,ss as Ha,es as Ia,os as Ja,rs as Ka,ts as La,ls as Ma,is as Na,ns as Oa,cs as Pa};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use client";import{b as k,c as A}from"./chunk-R7RGRTY5.mjs";import{toolTheme as B}from"@buoy-gg/shared-ui/web";var x={};k(x,{AccessibilityInfo:()=>V,ActivityIndicator:()=>_,Alert:()=>ka,Animated:()=>y,AppRegistry:()=>D,AppState:()=>R,Appearance:()=>I,BackHandler:()=>H,Button:()=>Q,CheckBox:()=>Z,Clipboard:()=>F,DeviceEventEmitter:()=>wa,Dimensions:()=>w,Easing:()=>z,FlatList:()=>$,I18nManager:()=>U,Image:()=>aa,ImageBackground:()=>ea,InteractionManager:()=>O,Keyboard:()=>N,KeyboardAvoidingView:()=>sa,LayoutAnimation:()=>W,Linking:()=>K,LogBox:()=>ya,Modal:()=>ta,NativeEventEmitter:()=>j,NativeModules:()=>P,PanResponder:()=>G,Picker:()=>oa,PixelRatio:()=>q,Platform:()=>v,Pressable:()=>ra,ProgressBar:()=>ia,RefreshControl:()=>na,SafeAreaView:()=>la,ScrollView:()=>C,SectionList:()=>ca,Share:()=>J,StatusBar:()=>da,StyleSheet:()=>f,Switch:()=>ua,Text:()=>p,TextInput:()=>ma,Touchable:()=>pa,TouchableHighlight:()=>fa,TouchableNativeFeedback:()=>ha,TouchableOpacity:()=>S,TouchableWithoutFeedback:()=>ga,UIManager:()=>X,Vibration:()=>Y,View:()=>c,VirtualizedList:()=>xa,YellowBox:()=>ba,findNodeHandle:()=>Ea,unstable_createElement:()=>L,useColorScheme:()=>va,useLocaleContext:()=>Ca,useWindowDimensions:()=>Sa});A(x,M);import*as M from"react-native-web";import{unstable_createElement as L,NativeModules as P,AccessibilityInfo as V,Animated as y,Appearance as I,AppRegistry as D,AppState as R,BackHandler as H,Clipboard as F,Dimensions as w,Easing as z,I18nManager as U,Keyboard as N,InteractionManager as O,LayoutAnimation as W,Linking as K,NativeEventEmitter as j,PanResponder as G,PixelRatio as q,Platform as v,Share as J,StyleSheet as f,UIManager as X,Vibration as Y,ActivityIndicator as _,Button as Q,CheckBox as Z,FlatList as $,Image as aa,ImageBackground as ea,KeyboardAvoidingView as sa,Modal as ta,Picker as oa,Pressable as ra,ProgressBar as ia,RefreshControl as na,SafeAreaView as la,ScrollView as C,SectionList as ca,StatusBar as da,Switch as ua,Text as p,TextInput as ma,Touchable as pa,TouchableHighlight as fa,TouchableNativeFeedback as ha,TouchableOpacity as S,TouchableWithoutFeedback as ga,View as c,VirtualizedList as xa,YellowBox as ba,LogBox as ya,DeviceEventEmitter as wa,useColorScheme as va,useLocaleContext as Ca,useWindowDimensions as Sa}from"react-native-web";import*as Ta from"react-native-web";var Ea=Ta.findNodeHandle,ka={alert(e,t,o,r){if(typeof document>"u")return;let s=document.createElement("dialog");s.dataset.buoyRoot="",s.setAttribute("aria-label",e),s.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 l=document.createElement("h2");if(l.textContent=e,l.style.cssText="font-size:18px;margin:0 0 12px",s.appendChild(l),t){let i=document.createElement("p");i.textContent=t,i.style.cssText="line-height:1.5;white-space:pre-wrap;margin:0 0 20px",s.appendChild(i)}let u=document.createElement("div");u.style.cssText="display:flex;justify-content:flex-end;flex-wrap:wrap;gap:8px";let g=o?.length?o:[{text:"OK"}],b=()=>{s.close?.(),s.remove()};for(let i of g){let m=document.createElement("button");m.type="button",m.textContent=i.text??"OK",m.style.cssText=`padding:9px 14px;border:1px solid #64748b;border-radius:7px;color:white;background:${i.style==="destructive"?"#a52b38":"#283a4d"};cursor:pointer;font:inherit`,m.onclick=()=>{b(),i.onPress?.()},u.appendChild(m)}s.addEventListener("cancel",i=>{i.preventDefault(),r?.cancelable!==false&&(b(),r?.onDismiss?.())}),s.appendChild(u),document.body.appendChild(s),s.showModal?s.showModal():s.setAttribute("open","")}};import{CopyButton as Aa,toolTheme as a}from"@buoy-gg/shared-ui/web";import{TreeDiffViewer as Ba,SplitDiffViewer as Ma}from"@buoy-gg/shared-ui/web/dataViewer";import{jsx as n,jsxs as T}from"react/jsx-runtime";var La={success:a.colors.success,active:a.colors.success,connected:a.colors.success,error:a.colors.error,failed:a.colors.error,warning:a.colors.warning,stale:a.colors.warning,pending:a.colors.info,loading:a.colors.info,fetching:a.colors.info,info:a.colors.info,inactive:a.colors.textMuted,idle:a.colors.textMuted};function E(e){return La[e.toLowerCase()]??a.colors.textMuted}var Pa={GET:a.colors.info,POST:a.colors.success,PUT:a.colors.warning,PATCH:a.colors.warning,DELETE:a.colors.error};function Va(e){return Pa[e.toUpperCase()]??a.colors.textSecondary}var Ia={string:a.colors.success,number:a.colors.info,boolean:a.colors.warning,object:a.colors.accent,array:a.colors.accent,function:a.colors.error,null:a.colors.textMuted,undefined:a.colors.textMuted};function Da(e){return Ia[e.toLowerCase()]??a.colors.textSecondary}function Ra({children:e,color:t=a.colors.textSecondary,icon:o,size:r="small",pill:s=false,mono:l=false,style:u}){let g=typeof e=="string"||typeof e=="number";return T(c,{style:[d.base,r==="medium"&&d.medium,s&&d.pill,{backgroundColor:t+"1A",borderColor:t+"40"},u],children:[o,g?n(p,{style:[d.text,r==="medium"&&d.textMedium,l&&d.textMono,{color:t}],numberOfLines:1,children:e}):e]})}var d=f.create({base:{flexDirection:"row",alignItems:"center",alignSelf:"flex-start",gap:4,borderWidth:1,borderRadius:a.radius.sm,paddingHorizontal:6,paddingVertical:2},medium:{paddingHorizontal:8,paddingVertical:3},pill:{borderRadius:a.radius.pill,minWidth:20,justifyContent:"center"},text:{fontSize:10,fontWeight:"600",letterSpacing:.3},textMedium:{fontSize:12},textMono:{fontFamily:a.text.mono.fontFamily}});function Ha({status:e,color:t,size:o=8,style:r}){let s=t??(e?E(e):a.colors.textMuted);return n(c,{style:[{width:o,height:o,borderRadius:o/2,backgroundColor:s},r]})}function Fa({label:e,value:t,copyable:o=false,style:r}){let s=typeof t=="string"||typeof t=="number";return T(c,{style:[h.row,r],children:[n(p,{style:h.label,numberOfLines:1,children:e}),n(c,{style:h.value,children:s?n(p,{style:h.valueText,numberOfLines:2,children:String(t)}):t}),o&&t!=null&&n(Aa,{value:t,size:12})]})}var h=f.create({row:{flexDirection:"row",alignItems:"center",gap:a.spacing.sm,paddingVertical:3},label:{...a.text.label,color:a.colors.textMuted,minWidth:72},value:{flex:1,flexDirection:"row",alignItems:"center"},valueText:{...a.text.mono,color:a.colors.text}});function za({oldValue:e,newValue:t,mode:o="tree",showUnchanged:r=true,scrollEnabled:s=false,height:l=220}){return o==="text"?n(Ma,{oldValue:e,newValue:t,height:l}):n(Ba,{oldValue:e,newValue:t,showUnchanged:r,scrollEnabled:s})}import{ToolButton as Ua,CopyButton as Na,PowerToggleButton as Oa}from"@buoy-gg/shared-ui/web";import{CompactRow as Wa,DevToolsCard as Ka}from"@buoy-gg/shared-ui/web";import{SectionHeader as ja,CollapsibleSection as Ga,TabSelector as qa,EmptyState as Ja,SearchBar as Xa,EventStepperFooter as Ya}from"@buoy-gg/shared-ui/web";import{DataViewer as _a}from"@buoy-gg/shared-ui/web/dataViewer";import{BaseEventStore as Qa}from"@buoy-gg/shared-ui/web";import{RelativeTime as Za}from"@buoy-gg/shared-ui/web";import{formatBytes as $a,formatDuration as ae,formatNumber as ee,truncateMiddle as se,safeStringify as te}from"@buoy-gg/shared-ui/web";import{usePersistedState as oe,persistentStorage as re,devToolsStorageKeys as ie}from"@buoy-gg/shared-ui/web";import{useSafeAreaInsets as ne,copyToClipboard as le}from"@buoy-gg/shared-ui/web";import{JsModal as ce}from"@buoy-gg/shared-ui/web";import{Activity as de,AlertTriangle as ue,Bug as me,Check as pe,CheckCircle as fe,ChevronDown as he,ChevronLeft as ge,ChevronRight as xe,ChevronUp as be,Clock as ye,Copy as we,Database as ve,Eye as Ce,EyeOff as Se,FileJson as Te,FileText as Ee,Filter as ke,FlaskConical as Ae,Globe as Be,Hash as Me,Info as Le,Key as Pe,Layers as Ve,Lock as Ie,Pause as De,Play as Re,Plus as He,Power as Fe,RefreshCw as ze,Search as Ue,Settings as Ne,Shield as Oe,Trash2 as We,User as Ke,Wifi as je,X as Ge,Zap as qe,AlertCircle as Je,BarChart3 as Xe,Bookmark as Ye,Cloud as _e,Download as Qe,Edit3 as Ze,GitBranch as $e,HardDrive as as,HelpCircle as es,Home as ss,Image as ts,Link as os,Maximize2 as rs,Minus as is,Palette as ns,Pin as ls,Route as cs,Server as ds,Smartphone as us,Square as ms,CheckSquare as ps,Timer as fs,Unlock as hs,Upload as gs,Users as xs,XCircle as bs}from"@buoy-gg/shared-ui/web";export{x as a,y as b,w as c,v as d,f as e,C as f,p as g,S as h,c as i,E as j,Va as k,Da as l,Ra as m,Ha as n,Fa as o,za as p,B as q,Ua as r,Na as s,Oa as t,Wa as u,Ka as v,ja as w,Ga as x,qa as y,Ja as z,Xa as A,Ya as B,_a as C,Qa as D,Za as E,$a as F,ae as G,ee as H,se as I,te as J,oe as K,re as L,ie as M,ne as N,le as O,ce as P,de as Q,ue as R,me as S,pe as T,fe as U,he as V,ge as W,xe as X,be as Y,ye as Z,we as _,ve as $,Ce as aa,Se as ba,Te as ca,Ee as da,ke as ea,Ae as fa,Be as ga,Me as ha,Le as ia,Pe as ja,Ve as ka,Ie as la,De as ma,Re as na,He as oa,Fe as pa,ze as qa,Ue as ra,Ne as sa,Oe as ta,We as ua,Ke as va,je as wa,Ge as xa,qe as ya,Je as za,Xe as Aa,Ye as Ba,_e as Ca,Qe as Da,Ze as Ea,$e as Fa,as as Ga,es as Ha,ss as Ia,ts as Ja,os as Ka,rs as La,is as Ma,ns as Na,ls as Oa,cs as Pa,ds as Qa,us as Ra,ms as Sa,ps as Ta,fs as Ua,hs as Va,gs as Wa,xs as Xa,bs as Ya};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use client";var y=process.env.NODE_ENV!=="production";typeof window<"u"&&typeof globalThis.global>"u"&&(globalThis.global=globalThis);import{toolTheme as b}from"@buoy-gg/shared-ui/web";import{StyleSheet as m,Text as d,View as n}from"react-native-web";import{CopyButton as x,toolTheme as a}from"@buoy-gg/shared-ui/web";import{TreeDiffViewer as w,SplitDiffViewer as C}from"@buoy-gg/shared-ui/web/dataViewer";import{jsx as t,jsxs as f}from"react/jsx-runtime";var S={success:a.colors.success,active:a.colors.success,connected:a.colors.success,error:a.colors.error,failed:a.colors.error,warning:a.colors.warning,stale:a.colors.warning,pending:a.colors.info,loading:a.colors.info,fetching:a.colors.info,info:a.colors.info,inactive:a.colors.textMuted,idle:a.colors.textMuted};function p(s){return S[s.toLowerCase()]??a.colors.textMuted}var v={GET:a.colors.info,POST:a.colors.success,PUT:a.colors.warning,PATCH:a.colors.warning,DELETE:a.colors.error};function T(s){return v[s.toUpperCase()]??a.colors.textSecondary}var M={string:a.colors.success,number:a.colors.info,boolean:a.colors.warning,object:a.colors.accent,array:a.colors.accent,function:a.colors.error,null:a.colors.textMuted,undefined:a.colors.textMuted};function D(s){return M[s.toLowerCase()]??a.colors.textSecondary}function E({children:s,color:e=a.colors.textSecondary,icon:o,size:r="small",pill:l=false,mono:u=false,style:g}){let h=typeof s=="string"||typeof s=="number";return f(n,{style:[i.base,r==="medium"&&i.medium,l&&i.pill,{backgroundColor:e+"1A",borderColor:e+"40"},g],children:[o,h?t(d,{style:[i.text,r==="medium"&&i.textMedium,u&&i.textMono,{color:e}],numberOfLines:1,children:s}):s]})}var i=m.create({base:{flexDirection:"row",alignItems:"center",alignSelf:"flex-start",gap:4,borderWidth:1,borderRadius:a.radius.sm,paddingHorizontal:6,paddingVertical:2},medium:{paddingHorizontal:8,paddingVertical:3},pill:{borderRadius:a.radius.pill,minWidth:20,justifyContent:"center"},text:{fontSize:10,fontWeight:"600",letterSpacing:.3},textMedium:{fontSize:12},textMono:{fontFamily:a.text.mono.fontFamily}});function V({status:s,color:e,size:o=8,style:r}){let l=e??(s?p(s):a.colors.textMuted);return t(n,{style:[{width:o,height:o,borderRadius:o/2,backgroundColor:l},r]})}function k({label:s,value:e,copyable:o=false,style:r}){let l=typeof e=="string"||typeof e=="number";return f(n,{style:[c.row,r],children:[t(d,{style:c.label,numberOfLines:1,children:s}),t(n,{style:c.value,children:l?t(d,{style:c.valueText,numberOfLines:2,children:String(e)}):e}),o&&e!=null&&t(x,{value:e,size:12})]})}var c=m.create({row:{flexDirection:"row",alignItems:"center",gap:a.spacing.sm,paddingVertical:3},label:{...a.text.label,color:a.colors.textMuted,minWidth:72},value:{flex:1,flexDirection:"row",alignItems:"center"},valueText:{...a.text.mono,color:a.colors.text}});function B({oldValue:s,newValue:e,mode:o="tree",showUnchanged:r=true,scrollEnabled:l=false,height:u=220}){return o==="text"?t(C,{oldValue:s,newValue:e,height:u}):t(w,{oldValue:s,newValue:e,showUnchanged:r,scrollEnabled:l})}import{ToolButton as P,CopyButton as L,PowerToggleButton as z}from"@buoy-gg/shared-ui/web";import{CompactRow as H,DevToolsCard as U}from"@buoy-gg/shared-ui/web";import{SectionHeader as F,CollapsibleSection as R,TabSelector as A,EmptyState as I,SearchBar as O,EventStepperFooter as j}from"@buoy-gg/shared-ui/web";import{DataViewer as W}from"@buoy-gg/shared-ui/web/dataViewer";import{BaseEventStore as G}from"@buoy-gg/shared-ui/web";import{RelativeTime as N}from"@buoy-gg/shared-ui/web";import{formatBytes as q,formatDuration as J,formatNumber as K,truncateMiddle as X,safeStringify as Q}from"@buoy-gg/shared-ui/web";import{usePersistedState as Z,persistentStorage as _,devToolsStorageKeys as Y}from"@buoy-gg/shared-ui/web";import{useSafeAreaInsets as $,copyToClipboard as aa}from"@buoy-gg/shared-ui/web";import{JsModal as sa}from"@buoy-gg/shared-ui/web";import{Activity as ea,AlertTriangle as oa,Bug as ra,Check as ta,CheckCircle as la,ChevronDown as ia,ChevronLeft as na,ChevronRight as ca,ChevronUp as ua,Clock as da,Copy as ma,Database as fa,Eye as pa,EyeOff as ga,FileJson as ha,FileText as ya,Filter as ba,FlaskConical as xa,Globe as wa,Hash as Ca,Info as Sa,Key as va,Layers as Ta,Lock as Ma,Pause as Da,Play as Ea,Plus as Va,Power as ka,RefreshCw as Ba,Search as Pa,Settings as La,Shield as za,Trash2 as Ha,User as Ua,Wifi as Fa,X as Ra,Zap as Aa,AlertCircle as Ia,BarChart3 as Oa,Bookmark as ja,Cloud as Wa,Download as Ga,Edit3 as Na,GitBranch as qa,HardDrive as Ja,HelpCircle as Ka,Home as Xa,Image as Qa,Link as Za,Maximize2 as _a,Minus as Ya,Palette as $a,Pin as as,Route as ss,Server as es,Smartphone as os,Square as rs,CheckSquare as ts,Timer as ls,Unlock as is,Upload as ns,Users as cs,XCircle as us}from"@buoy-gg/shared-ui/web";export{y as a,p as b,T as c,D as d,E as e,V as f,k as g,B as h,b as i,P as j,L as k,z as l,H as m,U as n,F as o,R as p,A as q,I as r,O as s,j as t,W as u,G as v,N as w,q as x,J as y,K as z,X as A,Q as B,Z as C,_ as D,Y as E,$ as F,aa as G,sa as H,ea as I,oa as J,ra as K,ta as L,la as M,ia as N,na as O,ca as P,ua as Q,da as R,ma as S,fa as T,pa as U,ga as V,ha as W,ya as X,ba as Y,xa as Z,wa as _,Ca as $,Sa as aa,va as ba,Ta as ca,Ma as da,Da as ea,Ea as fa,Va as ga,ka as ha,Ba as ia,Pa as ja,La as ka,za as la,Ha as ma,Ua as na,Fa as oa,Ra as pa,Aa as qa,Ia as ra,Oa as sa,ja as ta,Wa as ua,Ga as va,Na as wa,qa as xa,Ja as ya,Ka as za,Xa as Aa,Qa as Ba,Za as Ca,_a as Da,Ya as Ea,$a as Fa,as as Ga,ss as Ha,es as Ia,os as Ja,rs as Ka,ts as La,ls as Ma,is as Na,ns as Oa,cs as Pa,us as Qa};
|