@buoy-gg/core 7.0.39 → 7.0.41

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (140) hide show
  1. package/README.md +10 -0
  2. package/bin/buoy.js +25 -31
  3. package/lib/commonjs/browserRegister.js +48 -0
  4. package/lib/commonjs/browserRegister.server.js +10 -0
  5. package/lib/commonjs/floatingMenu/AppHost.web.js +71 -59
  6. package/lib/commonjs/floatingMenu/BrowserToolRuntime.js +150 -0
  7. package/lib/commonjs/floatingMenu/DevToolsSettingsModal.js +10 -1107
  8. package/lib/commonjs/floatingMenu/DevToolsSettingsModal.shared.js +1114 -0
  9. package/lib/commonjs/floatingMenu/DevToolsSettingsModal.web.js +28 -1028
  10. package/lib/commonjs/floatingMenu/FloatingDevTools.js +7 -2
  11. package/lib/commonjs/floatingMenu/FloatingDevTools.web.js +54 -40
  12. package/lib/commonjs/floatingMenu/MinimizedToolsStack.web.js +8 -2
  13. package/lib/commonjs/floatingMenu/autoDiscoverPresets.js +10 -0
  14. package/lib/commonjs/floatingMenu/autoExternalSync.js +9 -0
  15. package/lib/commonjs/floatingMenu/dial/DialDevTools.web.js +86 -12
  16. package/lib/commonjs/floatingMenu/dial/DialIcon.js +4 -2
  17. package/lib/commonjs/floatingMenu/settingsBus.js +6 -17
  18. package/lib/commonjs/floatingMenu/useDesktopSyncStatus.web.js +14 -0
  19. package/lib/commonjs/index.web.js +92 -1
  20. package/lib/commonjs/reactDevtoolsTypes.js +1 -0
  21. package/lib/commonjs/utils/autoDiscoverPresets.web.js +5 -178
  22. package/lib/commonjs/utils/createWebTool.js +20 -0
  23. package/lib/commonjs/utils/createWebTools.js +30 -0
  24. package/lib/commonjs/version.js +1 -1
  25. package/lib/module/browserRegister.js +44 -0
  26. package/lib/module/browserRegister.server.js +6 -0
  27. package/lib/module/floatingMenu/AppHost.web.js +71 -59
  28. package/lib/module/floatingMenu/BrowserToolRuntime.js +146 -0
  29. package/lib/module/floatingMenu/DevToolsSettingsModal.js +1 -1109
  30. package/lib/module/floatingMenu/DevToolsSettingsModal.shared.js +1110 -0
  31. package/lib/module/floatingMenu/DevToolsSettingsModal.web.js +32 -1043
  32. package/lib/module/floatingMenu/FloatingDevTools.js +7 -2
  33. package/lib/module/floatingMenu/FloatingDevTools.web.js +55 -42
  34. package/lib/module/floatingMenu/MinimizedToolsStack.web.js +8 -2
  35. package/lib/module/floatingMenu/autoDiscoverPresets.js +10 -0
  36. package/lib/module/floatingMenu/autoExternalSync.js +9 -0
  37. package/lib/module/floatingMenu/dial/DialDevTools.web.js +87 -14
  38. package/lib/module/floatingMenu/dial/DialIcon.js +4 -2
  39. package/lib/module/floatingMenu/settingsBus.js +1 -17
  40. package/lib/module/floatingMenu/useDesktopSyncStatus.web.js +10 -0
  41. package/lib/module/index.web.js +8 -1
  42. package/lib/module/reactDevtoolsTypes.js +1 -0
  43. package/lib/module/utils/autoDiscoverPresets.web.js +5 -180
  44. package/lib/module/utils/createWebTool.js +17 -0
  45. package/lib/module/utils/createWebTools.js +25 -0
  46. package/lib/module/version.js +1 -1
  47. package/lib/typescript/commonjs/browserRegister.d.ts +5 -0
  48. package/lib/typescript/commonjs/browserRegister.d.ts.map +1 -0
  49. package/lib/typescript/commonjs/browserRegister.server.d.ts +5 -0
  50. package/lib/typescript/commonjs/browserRegister.server.d.ts.map +1 -0
  51. package/lib/typescript/commonjs/floatingMenu/AppHost.web.d.ts +3 -3
  52. package/lib/typescript/commonjs/floatingMenu/AppHost.web.d.ts.map +1 -1
  53. package/lib/typescript/commonjs/floatingMenu/BrowserToolRuntime.d.ts +14 -0
  54. package/lib/typescript/commonjs/floatingMenu/BrowserToolRuntime.d.ts.map +1 -0
  55. package/lib/typescript/commonjs/floatingMenu/DevToolsSettingsModal.d.ts +2 -67
  56. package/lib/typescript/commonjs/floatingMenu/DevToolsSettingsModal.d.ts.map +1 -1
  57. package/lib/typescript/commonjs/floatingMenu/DevToolsSettingsModal.shared.d.ts +71 -0
  58. package/lib/typescript/commonjs/floatingMenu/DevToolsSettingsModal.shared.d.ts.map +1 -0
  59. package/lib/typescript/commonjs/floatingMenu/DevToolsSettingsModal.web.d.ts +3 -16
  60. package/lib/typescript/commonjs/floatingMenu/DevToolsSettingsModal.web.d.ts.map +1 -1
  61. package/lib/typescript/commonjs/floatingMenu/FloatingDevTools.d.ts.map +1 -1
  62. package/lib/typescript/commonjs/floatingMenu/FloatingDevTools.web.d.ts +12 -6
  63. package/lib/typescript/commonjs/floatingMenu/FloatingDevTools.web.d.ts.map +1 -1
  64. package/lib/typescript/commonjs/floatingMenu/MinimizedToolsStack.web.d.ts.map +1 -1
  65. package/lib/typescript/commonjs/floatingMenu/autoDiscoverPresets.d.ts.map +1 -1
  66. package/lib/typescript/commonjs/floatingMenu/autoExternalSync.d.ts.map +1 -1
  67. package/lib/typescript/commonjs/floatingMenu/defaultConfig.d.ts +1 -1
  68. package/lib/typescript/commonjs/floatingMenu/defaultConfig.d.ts.map +1 -1
  69. package/lib/typescript/commonjs/floatingMenu/dial/DialDevTools.web.d.ts.map +1 -1
  70. package/lib/typescript/commonjs/floatingMenu/dial/DialIcon.d.ts.map +1 -1
  71. package/lib/typescript/commonjs/floatingMenu/settingsBus.d.ts +1 -9
  72. package/lib/typescript/commonjs/floatingMenu/settingsBus.d.ts.map +1 -1
  73. package/lib/typescript/commonjs/floatingMenu/useDesktopSyncStatus.web.d.ts +3 -0
  74. package/lib/typescript/commonjs/floatingMenu/useDesktopSyncStatus.web.d.ts.map +1 -0
  75. package/lib/typescript/commonjs/index.web.d.ts +6 -0
  76. package/lib/typescript/commonjs/index.web.d.ts.map +1 -1
  77. package/lib/typescript/commonjs/reactDevtoolsTypes.d.ts +8 -0
  78. package/lib/typescript/commonjs/reactDevtoolsTypes.d.ts.map +1 -0
  79. package/lib/typescript/commonjs/utils/autoDiscoverPresets.web.d.ts +3 -40
  80. package/lib/typescript/commonjs/utils/autoDiscoverPresets.web.d.ts.map +1 -1
  81. package/lib/typescript/commonjs/utils/createWebTool.d.ts +6 -0
  82. package/lib/typescript/commonjs/utils/createWebTool.d.ts.map +1 -0
  83. package/lib/typescript/commonjs/utils/createWebTools.d.ts +4 -0
  84. package/lib/typescript/commonjs/utils/createWebTools.d.ts.map +1 -0
  85. package/lib/typescript/commonjs/version.d.ts +1 -1
  86. package/lib/typescript/module/browserRegister.d.ts +5 -0
  87. package/lib/typescript/module/browserRegister.d.ts.map +1 -0
  88. package/lib/typescript/module/browserRegister.server.d.ts +5 -0
  89. package/lib/typescript/module/browserRegister.server.d.ts.map +1 -0
  90. package/lib/typescript/module/floatingMenu/AppHost.web.d.ts +3 -3
  91. package/lib/typescript/module/floatingMenu/AppHost.web.d.ts.map +1 -1
  92. package/lib/typescript/module/floatingMenu/BrowserToolRuntime.d.ts +14 -0
  93. package/lib/typescript/module/floatingMenu/BrowserToolRuntime.d.ts.map +1 -0
  94. package/lib/typescript/module/floatingMenu/DevToolsSettingsModal.d.ts +2 -67
  95. package/lib/typescript/module/floatingMenu/DevToolsSettingsModal.d.ts.map +1 -1
  96. package/lib/typescript/module/floatingMenu/DevToolsSettingsModal.shared.d.ts +71 -0
  97. package/lib/typescript/module/floatingMenu/DevToolsSettingsModal.shared.d.ts.map +1 -0
  98. package/lib/typescript/module/floatingMenu/DevToolsSettingsModal.web.d.ts +3 -16
  99. package/lib/typescript/module/floatingMenu/DevToolsSettingsModal.web.d.ts.map +1 -1
  100. package/lib/typescript/module/floatingMenu/FloatingDevTools.d.ts.map +1 -1
  101. package/lib/typescript/module/floatingMenu/FloatingDevTools.web.d.ts +12 -6
  102. package/lib/typescript/module/floatingMenu/FloatingDevTools.web.d.ts.map +1 -1
  103. package/lib/typescript/module/floatingMenu/MinimizedToolsStack.web.d.ts.map +1 -1
  104. package/lib/typescript/module/floatingMenu/autoDiscoverPresets.d.ts.map +1 -1
  105. package/lib/typescript/module/floatingMenu/autoExternalSync.d.ts.map +1 -1
  106. package/lib/typescript/module/floatingMenu/defaultConfig.d.ts +1 -1
  107. package/lib/typescript/module/floatingMenu/defaultConfig.d.ts.map +1 -1
  108. package/lib/typescript/module/floatingMenu/dial/DialDevTools.web.d.ts.map +1 -1
  109. package/lib/typescript/module/floatingMenu/dial/DialIcon.d.ts.map +1 -1
  110. package/lib/typescript/module/floatingMenu/settingsBus.d.ts +1 -9
  111. package/lib/typescript/module/floatingMenu/settingsBus.d.ts.map +1 -1
  112. package/lib/typescript/module/floatingMenu/useDesktopSyncStatus.web.d.ts +3 -0
  113. package/lib/typescript/module/floatingMenu/useDesktopSyncStatus.web.d.ts.map +1 -0
  114. package/lib/typescript/module/index.web.d.ts +6 -0
  115. package/lib/typescript/module/index.web.d.ts.map +1 -1
  116. package/lib/typescript/module/reactDevtoolsTypes.d.ts +8 -0
  117. package/lib/typescript/module/reactDevtoolsTypes.d.ts.map +1 -0
  118. package/lib/typescript/module/utils/autoDiscoverPresets.web.d.ts +3 -40
  119. package/lib/typescript/module/utils/autoDiscoverPresets.web.d.ts.map +1 -1
  120. package/lib/typescript/module/utils/createWebTool.d.ts +6 -0
  121. package/lib/typescript/module/utils/createWebTool.d.ts.map +1 -0
  122. package/lib/typescript/module/utils/createWebTools.d.ts +4 -0
  123. package/lib/typescript/module/utils/createWebTools.d.ts.map +1 -0
  124. package/lib/typescript/module/version.d.ts +1 -1
  125. package/lib/web/chunks/chunk-5NZOQR6Q.mjs +2 -0
  126. package/lib/web/chunks/chunk-CGDSLLZF.mjs +2 -0
  127. package/lib/web/chunks/chunk-DCJDUSNR.mjs +2 -0
  128. package/lib/web/chunks/chunk-IDSHFS6G.mjs +2 -0
  129. package/lib/web/chunks/chunk-JOAMJGCS.mjs +2 -0
  130. package/lib/web/chunks/chunk-KYKZ2N52.mjs +2 -0
  131. package/lib/web/chunks/chunk-NGM7JGGS.mjs +2 -0
  132. package/lib/web/chunks/chunk-QZDVCMCT.mjs +2 -0
  133. package/lib/web/chunks/chunk-R7RGRTY5.mjs +2 -0
  134. package/lib/web/chunks/chunk-Z3XWDDIO.mjs +2 -0
  135. package/lib/web/chunks/chunk-ZTGQ6TTY.mjs +2 -0
  136. package/lib/web/index.mjs +11 -0
  137. package/lib/web/register-server.mjs +2 -0
  138. package/lib/web/register.mjs +2 -0
  139. package/lib/web/toolkit.mjs +2 -0
  140. package/package.json +50 -12
@@ -1,45 +1,8 @@
1
- /**
2
- * Auto-discovery utility for React DOM Web.
3
- *
4
- * Uses Vite's import.meta.glob to discover installed @buoy-gg/* packages
5
- * at build time. This provides Metro-like auto-discovery behavior for web.
6
- *
7
- * How it works:
8
- * 1. import.meta.glob scans node_modules at build time
9
- * 2. Only packages that are actually installed are included
10
- * 3. Missing packages don't cause errors (like Metro's try-catch)
11
- * 4. Custom tools can override discovered ones by ID
12
- *
13
- * @platform React DOM Web (Vite, CRA, Next.js, Electron)
14
- */
15
- import type { WebToolConfig } from '@buoy-gg/floating-tools-react';
16
- /**
17
- * Default tool presets for when packages don't export web presets yet.
18
- * These will be used until each @buoy-gg/* package exports its own preset.
19
- * Icons are the BIF brand icon components (same artwork as native) —
20
- * never emoji strings (tofu in WKWebView).
21
- */
1
+ import type { WebToolConfig } from "@buoy-gg/floating-tools-react";
2
+ /** Browser tools are registered through FloatingDevTools.apps. */
22
3
  export declare const defaultToolPresets: WebToolConfig[];
23
- /**
24
- * Auto-discover installed @buoy-gg/* tool packages.
25
- *
26
- * Uses Vite's import.meta.glob to find packages at build time.
27
- * Only installed packages are included (no errors for missing ones).
28
- *
29
- * Note: Until packages export web presets, this returns default presets.
30
- *
31
- * @returns Array of discovered tool configurations
32
- */
4
+ /** @deprecated Pass explicitly imported presets through FloatingDevTools.apps. */
33
5
  export declare function autoDiscoverWebPresets(): WebToolConfig[];
34
- /**
35
- * Merge custom tools with auto-discovered ones.
36
- *
37
- * Custom tools take precedence - if a custom tool has the same ID as
38
- * a discovered tool, the custom one is used (same behavior as mobile).
39
- *
40
- * @param customTools - Custom tools to merge (optional)
41
- * @returns Merged array with custom tools taking precedence
42
- */
43
6
  export declare function autoDiscoverWithCustom(customTools?: WebToolConfig[]): WebToolConfig[];
44
7
  /**
45
8
  * Get tools filtered by slot.
@@ -1 +1 @@
1
- {"version":3,"file":"autoDiscoverPresets.web.d.ts","sourceRoot":"","sources":["../../../../src/utils/autoDiscoverPresets.web.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAsCnE;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,EAAE,aAAa,EAyD7C,CAAC;AAMF;;;;;;;;;GASG;AACH,wBAAgB,sBAAsB,IAAI,aAAa,EAAE,CAkBxD;AAED;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CACpC,WAAW,GAAE,aAAa,EAAO,GAChC,aAAa,EAAE,CAejB;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAC5B,KAAK,EAAE,aAAa,EAAE,EACtB,IAAI,EAAE,MAAM,GAAG,KAAK,GACnB,aAAa,EAAE,CAKjB;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAC7B,KAAK,EAAE,aAAa,EAAE,EACtB,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,MAAM,EAAE,GACjC,aAAa,EAAE,CAGjB"}
1
+ {"version":3,"file":"autoDiscoverPresets.web.d.ts","sourceRoot":"","sources":["../../../../src/utils/autoDiscoverPresets.web.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAEnE,kEAAkE;AAClE,eAAO,MAAM,kBAAkB,EAAE,aAAa,EAAO,CAAC;AAEtD,kFAAkF;AAClF,wBAAgB,sBAAsB,IAAI,aAAa,EAAE,CAAe;AAExE,wBAAgB,sBAAsB,CAAC,WAAW,GAAE,aAAa,EAAO,GAAG,aAAa,EAAE,CAEzF;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAC5B,KAAK,EAAE,aAAa,EAAE,EACtB,IAAI,EAAE,MAAM,GAAG,KAAK,GACnB,aAAa,EAAE,CAKjB;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAC7B,KAAK,EAAE,aAAa,EAAE,EACtB,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,MAAM,EAAE,GACjC,aAAa,EAAE,CAGjB"}
@@ -0,0 +1,6 @@
1
+ import type { WebToolConfig } from "@buoy-gg/floating-tools-react";
2
+ import type { ToolPreset } from "@buoy-gg/shared-ui";
3
+ /** Adapt a shared tool preset to the browser menu's icon renderer. */
4
+ export type BrowserToolConfig = WebToolConfig & Pick<ToolPreset, "modal" | "sync">;
5
+ export declare function createWebTool(preset: ToolPreset): BrowserToolConfig;
6
+ //# sourceMappingURL=createWebTool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createWebTool.d.ts","sourceRoot":"","sources":["../../../../src/utils/createWebTool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAGrD,sEAAsE;AACtE,MAAM,MAAM,iBAAiB,GAAG,aAAa,GAAG,IAAI,CAAC,UAAU,EAAE,OAAO,GAAG,MAAM,CAAC,CAAC;AACnF,wBAAgB,aAAa,CAAC,MAAM,EAAE,UAAU,GAAG,iBAAiB,CAQnE"}
@@ -0,0 +1,4 @@
1
+ import { type ToolModule } from '@buoy-gg/shared-ui';
2
+ export type BrowserToolModules = Record<string, ToolModule>;
3
+ export declare function createWebTools(modules: BrowserToolModules): import("./createWebTool").BrowserToolConfig[];
4
+ //# sourceMappingURL=createWebTools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createWebTools.d.ts","sourceRoot":"","sources":["../../../../src/utils/createWebTools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,KAAK,UAAU,EAAmB,MAAM,oBAAoB,CAAC;AAO3F,MAAM,MAAM,kBAAkB,GAAG,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;AAC5D,wBAAgB,cAAc,CAAC,OAAO,EAAE,kBAAkB,iDAQzD"}
@@ -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.39";
12
+ export declare const SDK_VERSION = "7.0.41";
13
13
  //# sourceMappingURL=version.d.ts.map
@@ -0,0 +1,2 @@
1
+ "use client";
2
+ var o=process.env.NODE_ENV!=="production";typeof window<"u"&&typeof globalThis.global>"u"&&(globalThis.global=globalThis);export{o as a};
@@ -0,0 +1,2 @@
1
+ "use client";
2
+ var s=Object.defineProperty;var a=Object.getOwnPropertyDescriptor;var b=Object.getOwnPropertyNames;var f=Object.prototype.hasOwnProperty;var g=(l,o)=>{for(var e in o)s(l,e,{get:o[e],enumerable:!0})},d=(l,o,e,n)=>{if(o&&typeof o=="object"||typeof o=="function")for(let i of b(o))!f.call(l,i)&&i!==e&&s(l,i,{get:()=>o[i],enumerable:!(n=a(o,i))||n.enumerable});return l},p=(l,o,e)=>(d(l,o,"default"),e&&d(e,o,"default"));var _=process.env.NODE_ENV!=="production";typeof window<"u"&&typeof globalThis.global>"u"&&(globalThis.global=globalThis);export{g as a,p as b,_ as c};
@@ -0,0 +1,2 @@
1
+ "use client";
2
+ import{b as P,c as a}from"./chunk-R7RGRTY5.mjs";import{toolTheme as tt}from"@buoy-gg/shared-ui/web";var n={};P(n,{AccessibilityInfo:()=>z,ActivityIndicator:()=>L,Alert:()=>N,Animated:()=>K,AppRegistry:()=>_,AppState:()=>j,Appearance:()=>$,BackHandler:()=>G,Button:()=>O,CheckBox:()=>ce,Clipboard:()=>J,DeviceEventEmitter:()=>Re,Dimensions:()=>q,Easing:()=>X,FlatList:()=>pe,I18nManager:()=>Y,Image:()=>de,ImageBackground:()=>ue,Input:()=>he,InteractionManager:()=>Q,Keyboard:()=>Z,KeyboardAvoidingView:()=>fe,LayoutAnimation:()=>ee,Linking:()=>te,LogBox:()=>Pe,Modal:()=>W,NativeEventEmitter:()=>oe,NativeModules:()=>U,PanResponder:()=>re,Picker:()=>xe,PixelRatio:()=>ne,Platform:()=>ie,Pressable:()=>A,ProgressBar:()=>me,RefreshControl:()=>ye,SafeAreaView:()=>ge,ScrollView:()=>M,SectionList:()=>be,Share:()=>ae,StatusBar:()=>we,StyleSheet:()=>h,Switch:()=>I,Text:()=>w,TextInput:()=>k,Touchable:()=>Se,TouchableHighlight:()=>E,TouchableNativeFeedback:()=>Te,TouchableOpacity:()=>B,TouchableWithoutFeedback:()=>D,UIManager:()=>se,Vibration:()=>le,View:()=>m,VirtualizedList:()=>Ce,YellowBox:()=>ve,findNodeHandle:()=>H,unstable_createElement:()=>F,useColorScheme:()=>Ve,useLocaleContext:()=>ke,useWindowDimensions:()=>Be});a(n,$e);import*as $e from"react-native-web";import{unstable_createElement as F,NativeModules as U,AccessibilityInfo as z,Animated as K,Appearance as $,AppRegistry as _,AppState as j,BackHandler as G,Clipboard as J,Dimensions as q,Easing as X,I18nManager as Y,Keyboard as Z,InteractionManager as Q,LayoutAnimation as ee,Linking as te,NativeEventEmitter as oe,PanResponder as re,PixelRatio as ne,Platform as ie,Share as ae,StyleSheet as h,UIManager as se,Vibration as le,CheckBox as ce,FlatList as pe,Image as de,ImageBackground as ue,KeyboardAvoidingView as fe,Picker as xe,ProgressBar as me,RefreshControl as ye,SafeAreaView as ge,SectionList as be,StatusBar as we,Input as he,Touchable as Se,TouchableNativeFeedback as Te,VirtualizedList as Ce,YellowBox as ve,LogBox as Pe,DeviceEventEmitter as Re,useColorScheme as Ve,useLocaleContext as ke,useWindowDimensions as Be}from"react-native-web";import*as t from"react-native-web";import{createElement as R,forwardRef as V}from"react";function c(o){let i=V((s,l)=>{let{accessibilityState:r,accessibilityValue:u,...p}=s;for(let d of["busy","checked","disabled","expanded","selected"])r?.[d]!==void 0&&p[`aria-${d}`]===void 0&&(p[`aria-${d}`]=r[d]);for(let[d,g]of Object.entries({min:"valuemin",max:"valuemax",now:"valuenow",text:"valuetext"}))u?.[d]!==void 0&&p[`aria-${g}`]===void 0&&(p[`aria-${g}`]=u[d]);return R(o,{...p,ref:l})});return i.displayName=o.displayName??o.name??"NativeWebView",i}var m=c(t.View),w=c(t.Text),k=c(t.TextInput),B=c(t.TouchableOpacity),E=c(t.TouchableHighlight),D=c(t.TouchableWithoutFeedback),A=c(t.Pressable),M=c(t.ScrollView),W=c(t.Modal),I=c(t.Switch),L=c(t.ActivityIndicator),O=c(t.Button),H=t.findNodeHandle,N={alert(o,i,s,l){if(typeof document>"u")return;let r=document.createElement("dialog");r.dataset.buoyRoot="",r.setAttribute("aria-label",o),r.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 u=document.createElement("h2");if(u.textContent=o,u.style.cssText="font-size:18px;margin:0 0 12px",r.appendChild(u),i){let f=document.createElement("p");f.textContent=i,f.style.cssText="line-height:1.5;white-space:pre-wrap;margin:0 0 20px",r.appendChild(f)}let p=document.createElement("div");p.style.cssText="display:flex;justify-content:flex-end;flex-wrap:wrap;gap:8px";let d=s?.length?s:[{text:"OK"}],g=()=>{r.close?.(),r.remove()};for(let f of d){let b=document.createElement("button");b.type="button",b.textContent=f.text??"OK",b.style.cssText=`padding:9px 14px;border:1px solid #64748b;border-radius:7px;color:white;background:${f.style==="destructive"?"#a52b38":"#283a4d"};cursor:pointer;font:inherit`,b.onclick=()=>{g(),f.onPress?.()},p.appendChild(b)}r.addEventListener("cancel",f=>{f.preventDefault(),l?.cancelable!==!1&&(g(),l?.onDismiss?.())}),r.appendChild(p),document.body.appendChild(r),r.showModal?r.showModal():r.setAttribute("open","")}};import{CopyButton as Ee,toolTheme as e}from"@buoy-gg/shared-ui/web";import{TreeDiffViewer as De,SplitDiffViewer as Ae}from"@buoy-gg/shared-ui/web/dataViewer";import{jsx as x,jsxs as v}from"react/jsx-runtime";var Me={success:e.colors.success,active:e.colors.success,connected:e.colors.success,error:e.colors.error,failed:e.colors.error,warning:e.colors.warning,stale:e.colors.warning,pending:e.colors.info,loading:e.colors.info,fetching:e.colors.info,info:e.colors.info,inactive:e.colors.textMuted,idle:e.colors.textMuted};function C(o){return Me[o.toLowerCase()]??e.colors.textMuted}var We={GET:e.colors.info,POST:e.colors.success,PUT:e.colors.warning,PATCH:e.colors.warning,DELETE:e.colors.error};function Ie(o){return We[o.toUpperCase()]??e.colors.textSecondary}var Le={string:e.colors.success,number:e.colors.info,boolean:e.colors.warning,object:e.colors.accent,array:e.colors.accent,function:e.colors.error,null:e.colors.textMuted,undefined:e.colors.textMuted};function Oe(o){return Le[o.toLowerCase()]??e.colors.textSecondary}function He({children:o,color:i=e.colors.textSecondary,icon:s,size:l="small",pill:r=!1,mono:u=!1,style:p}){let d=typeof o=="string"||typeof o=="number";return v(m,{style:[y.base,l==="medium"&&y.medium,r&&y.pill,{backgroundColor:i+"1A",borderColor:i+"40"},p],children:[s,d?x(w,{style:[y.text,l==="medium"&&y.textMedium,u&&y.textMono,{color:i}],numberOfLines:1,children:o}):o]})}var y=h.create({base:{flexDirection:"row",alignItems:"center",alignSelf:"flex-start",gap:4,borderWidth:1,borderRadius:e.radius.sm,paddingHorizontal:6,paddingVertical:2},medium:{paddingHorizontal:8,paddingVertical:3},pill:{borderRadius:e.radius.pill,minWidth:20,justifyContent:"center"},text:{fontSize:10,fontWeight:"600",letterSpacing:.3},textMedium:{fontSize:12},textMono:{fontFamily:e.text.mono.fontFamily}});function Ne({status:o,color:i,size:s=8,style:l}){let r=i??(o?C(o):e.colors.textMuted);return x(m,{style:[{width:s,height:s,borderRadius:s/2,backgroundColor:r},l]})}function Fe({label:o,value:i,copyable:s=!1,style:l}){let r=typeof i=="string"||typeof i=="number";return v(m,{style:[S.row,l],children:[x(w,{style:S.label,numberOfLines:1,children:o}),x(m,{style:S.value,children:r?x(w,{style:S.valueText,numberOfLines:2,children:String(i)}):i}),s&&i!=null&&x(Ee,{value:i,size:12})]})}var S=h.create({row:{flexDirection:"row",alignItems:"center",gap:e.spacing.sm,paddingVertical:3},label:{...e.text.label,color:e.colors.textMuted,minWidth:72},value:{flex:1,flexDirection:"row",alignItems:"center"},valueText:{...e.text.mono,color:e.colors.text}});function Ue({oldValue:o,newValue:i,mode:s="tree",showUnchanged:l=!0,scrollEnabled:r=!1,height:u=220}){return s==="text"?x(Ae,{oldValue:o,newValue:i,height:u}):x(De,{oldValue:o,newValue:i,showUnchanged:l,scrollEnabled:r})}import{ToolButton as nt,CopyButton as it,PowerToggleButton as at}from"@buoy-gg/shared-ui/web";import{CompactRow as lt,DevToolsCard as ct}from"@buoy-gg/shared-ui/web";import{SectionHeader as ut,CollapsibleSection as ft,TabSelector as xt,EmptyState as mt,SearchBar as yt,EventStepperFooter as gt}from"@buoy-gg/shared-ui/web";import{DataViewer as wt}from"@buoy-gg/shared-ui/web/dataViewer";import{BaseEventStore as Tt}from"@buoy-gg/shared-ui/web";import{RelativeTime as vt}from"@buoy-gg/shared-ui/web";import{formatBytes as Rt,formatDuration as Vt,formatNumber as kt,truncateMiddle as Bt,safeStringify as Et}from"@buoy-gg/shared-ui/web";import{usePersistedState as At,persistentStorage as Mt,devToolsStorageKeys as Wt}from"@buoy-gg/shared-ui/web";import{useSafeAreaInsets as Lt,copyToClipboard as Ot}from"@buoy-gg/shared-ui/web";import{JsModal as Nt}from"@buoy-gg/shared-ui/web";import{Activity as Ut,AlertTriangle as zt,Bug as Kt,Check as $t,CheckCircle as _t,ChevronDown as jt,ChevronLeft as Gt,ChevronRight as Jt,ChevronUp as qt,Clock as Xt,Copy as Yt,Database as Zt,Eye as Qt,EyeOff as eo,FileJson as to,FileText as oo,Filter as ro,FlaskConical as no,Globe as io,Hash as ao,Info as so,Key as lo,Layers as co,Lock as po,Pause as uo,Play as fo,Plus as xo,Power as mo,RefreshCw as yo,Search as go,Settings as bo,Shield as wo,Trash2 as ho,User as So,Wifi as To,X as Co,Zap as vo,AlertCircle as Po,BarChart3 as Ro,Bookmark as Vo,Cloud as ko,Download as Bo,Edit3 as Eo,GitBranch as Do,HardDrive as Ao,HelpCircle as Mo,Home as Wo,Image as Io,Link as Lo,Maximize2 as Oo,Minus as Ho,Palette as No,Pin as Fo,Route as Uo,Server as zo,Smartphone as Ko,Square as $o,CheckSquare as _o,Timer as jo,Unlock as Go,Upload as Jo,Users as qo,XCircle as Xo}from"@buoy-gg/shared-ui/web";export{m as a,w as b,B as c,M as d,n as e,K as f,q as g,ie as h,h as i,C as j,Ie as k,Oe as l,He as m,Ne as n,Fe as o,Ue as p,tt as q,nt as r,it as s,at as t,lt as u,ct as v,ut as w,ft as x,xt as y,mt as z,yt as A,gt as B,wt as C,Tt as D,vt as E,Rt as F,Vt as G,kt as H,Bt as I,Et as J,At as K,Mt as L,Wt as M,Lt as N,Ot as O,Nt as P,Ut as Q,zt as R,Kt as S,$t as T,_t as U,jt as V,Gt as W,Jt as X,qt as Y,Xt as Z,Yt as _,Zt as $,Qt as aa,eo as ba,to as ca,oo as da,ro as ea,no as fa,io as ga,ao as ha,so as ia,lo as ja,co as ka,po as la,uo as ma,fo as na,xo as oa,mo as pa,yo as qa,go as ra,bo as sa,wo as ta,ho as ua,So as va,To as wa,Co as xa,vo as ya,Po as za,Ro as Aa,Vo as Ba,ko as Ca,Bo as Da,Eo as Ea,Do as Fa,Ao as Ga,Mo as Ha,Wo as Ia,Io as Ja,Lo as Ka,Oo as La,Ho as Ma,No as Na,Fo as Oa,Uo as Pa,zo as Qa,Ko as Ra,$o as Sa,_o as Ta,jo as Ua,Go as Va,Jo as Wa,qo as Xa,Xo as Ya};
@@ -0,0 +1,2 @@
1
+ "use client";
2
+ import{b as P,c as a}from"./chunk-R7RGRTY5.mjs";import{toolTheme as et}from"@buoy-gg/shared-ui/web";var n={};P(n,{AccessibilityInfo:()=>z,ActivityIndicator:()=>I,Alert:()=>N,Animated:()=>K,AppRegistry:()=>_,AppState:()=>j,Appearance:()=>$,BackHandler:()=>G,Button:()=>O,CheckBox:()=>ce,Clipboard:()=>J,DeviceEventEmitter:()=>Pe,Dimensions:()=>q,Easing:()=>X,FlatList:()=>pe,I18nManager:()=>Y,Image:()=>de,ImageBackground:()=>ue,InteractionManager:()=>Q,Keyboard:()=>Z,KeyboardAvoidingView:()=>fe,LayoutAnimation:()=>ee,Linking:()=>te,LogBox:()=>ve,Modal:()=>W,NativeEventEmitter:()=>oe,NativeModules:()=>U,PanResponder:()=>re,Picker:()=>xe,PixelRatio:()=>ne,Platform:()=>ie,Pressable:()=>A,ProgressBar:()=>me,RefreshControl:()=>ye,SafeAreaView:()=>ge,ScrollView:()=>M,SectionList:()=>be,Share:()=>ae,StatusBar:()=>we,StyleSheet:()=>h,Switch:()=>L,Text:()=>w,TextInput:()=>k,Touchable:()=>he,TouchableHighlight:()=>E,TouchableNativeFeedback:()=>Se,TouchableOpacity:()=>B,TouchableWithoutFeedback:()=>D,UIManager:()=>se,Vibration:()=>le,View:()=>m,VirtualizedList:()=>Te,YellowBox:()=>Ce,findNodeHandle:()=>H,unstable_createElement:()=>F,useColorScheme:()=>Re,useLocaleContext:()=>Ve,useWindowDimensions:()=>ke});a(n,Ke);import*as Ke from"react-native-web";import{unstable_createElement as F,NativeModules as U,AccessibilityInfo as z,Animated as K,Appearance as $,AppRegistry as _,AppState as j,BackHandler as G,Clipboard as J,Dimensions as q,Easing as X,I18nManager as Y,Keyboard as Z,InteractionManager as Q,LayoutAnimation as ee,Linking as te,NativeEventEmitter as oe,PanResponder as re,PixelRatio as ne,Platform as ie,Share as ae,StyleSheet as h,UIManager as se,Vibration as le,CheckBox as ce,FlatList as pe,Image as de,ImageBackground as ue,KeyboardAvoidingView as fe,Picker as xe,ProgressBar as me,RefreshControl as ye,SafeAreaView as ge,SectionList as be,StatusBar as we,Touchable as he,TouchableNativeFeedback as Se,VirtualizedList as Te,YellowBox as Ce,LogBox as ve,DeviceEventEmitter as Pe,useColorScheme as Re,useLocaleContext as Ve,useWindowDimensions as ke}from"react-native-web";import*as t from"react-native-web";import{createElement as R,forwardRef as V}from"react";function c(o){let i=V((s,l)=>{let{accessibilityState:r,accessibilityValue:u,...p}=s;for(let d of["busy","checked","disabled","expanded","selected"])r?.[d]!==void 0&&p[`aria-${d}`]===void 0&&(p[`aria-${d}`]=r[d]);for(let[d,g]of Object.entries({min:"valuemin",max:"valuemax",now:"valuenow",text:"valuetext"}))u?.[d]!==void 0&&p[`aria-${g}`]===void 0&&(p[`aria-${g}`]=u[d]);return R(o,{...p,ref:l})});return i.displayName=o.displayName??o.name??"NativeWebView",i}var m=c(t.View),w=c(t.Text),k=c(t.TextInput),B=c(t.TouchableOpacity),E=c(t.TouchableHighlight),D=c(t.TouchableWithoutFeedback),A=c(t.Pressable),M=c(t.ScrollView),W=c(t.Modal),L=c(t.Switch),I=c(t.ActivityIndicator),O=c(t.Button),H=t.findNodeHandle,N={alert(o,i,s,l){if(typeof document>"u")return;let r=document.createElement("dialog");r.dataset.buoyRoot="",r.setAttribute("aria-label",o),r.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 u=document.createElement("h2");if(u.textContent=o,u.style.cssText="font-size:18px;margin:0 0 12px",r.appendChild(u),i){let f=document.createElement("p");f.textContent=i,f.style.cssText="line-height:1.5;white-space:pre-wrap;margin:0 0 20px",r.appendChild(f)}let p=document.createElement("div");p.style.cssText="display:flex;justify-content:flex-end;flex-wrap:wrap;gap:8px";let d=s?.length?s:[{text:"OK"}],g=()=>{r.close?.(),r.remove()};for(let f of d){let b=document.createElement("button");b.type="button",b.textContent=f.text??"OK",b.style.cssText=`padding:9px 14px;border:1px solid #64748b;border-radius:7px;color:white;background:${f.style==="destructive"?"#a52b38":"#283a4d"};cursor:pointer;font:inherit`,b.onclick=()=>{g(),f.onPress?.()},p.appendChild(b)}r.addEventListener("cancel",f=>{f.preventDefault(),l?.cancelable!==!1&&(g(),l?.onDismiss?.())}),r.appendChild(p),document.body.appendChild(r),r.showModal?r.showModal():r.setAttribute("open","")}};import{CopyButton as Be,toolTheme as e}from"@buoy-gg/shared-ui/web";import{TreeDiffViewer as Ee,SplitDiffViewer as De}from"@buoy-gg/shared-ui/web/dataViewer";import{jsx as x,jsxs as v}from"react/jsx-runtime";var Ae={success:e.colors.success,active:e.colors.success,connected:e.colors.success,error:e.colors.error,failed:e.colors.error,warning:e.colors.warning,stale:e.colors.warning,pending:e.colors.info,loading:e.colors.info,fetching:e.colors.info,info:e.colors.info,inactive:e.colors.textMuted,idle:e.colors.textMuted};function C(o){return Ae[o.toLowerCase()]??e.colors.textMuted}var Me={GET:e.colors.info,POST:e.colors.success,PUT:e.colors.warning,PATCH:e.colors.warning,DELETE:e.colors.error};function We(o){return Me[o.toUpperCase()]??e.colors.textSecondary}var Le={string:e.colors.success,number:e.colors.info,boolean:e.colors.warning,object:e.colors.accent,array:e.colors.accent,function:e.colors.error,null:e.colors.textMuted,undefined:e.colors.textMuted};function Ie(o){return Le[o.toLowerCase()]??e.colors.textSecondary}function Oe({children:o,color:i=e.colors.textSecondary,icon:s,size:l="small",pill:r=!1,mono:u=!1,style:p}){let d=typeof o=="string"||typeof o=="number";return v(m,{style:[y.base,l==="medium"&&y.medium,r&&y.pill,{backgroundColor:i+"1A",borderColor:i+"40"},p],children:[s,d?x(w,{style:[y.text,l==="medium"&&y.textMedium,u&&y.textMono,{color:i}],numberOfLines:1,children:o}):o]})}var y=h.create({base:{flexDirection:"row",alignItems:"center",alignSelf:"flex-start",gap:4,borderWidth:1,borderRadius:e.radius.sm,paddingHorizontal:6,paddingVertical:2},medium:{paddingHorizontal:8,paddingVertical:3},pill:{borderRadius:e.radius.pill,minWidth:20,justifyContent:"center"},text:{fontSize:10,fontWeight:"600",letterSpacing:.3},textMedium:{fontSize:12},textMono:{fontFamily:e.text.mono.fontFamily}});function He({status:o,color:i,size:s=8,style:l}){let r=i??(o?C(o):e.colors.textMuted);return x(m,{style:[{width:s,height:s,borderRadius:s/2,backgroundColor:r},l]})}function Ne({label:o,value:i,copyable:s=!1,style:l}){let r=typeof i=="string"||typeof i=="number";return v(m,{style:[S.row,l],children:[x(w,{style:S.label,numberOfLines:1,children:o}),x(m,{style:S.value,children:r?x(w,{style:S.valueText,numberOfLines:2,children:String(i)}):i}),s&&i!=null&&x(Be,{value:i,size:12})]})}var S=h.create({row:{flexDirection:"row",alignItems:"center",gap:e.spacing.sm,paddingVertical:3},label:{...e.text.label,color:e.colors.textMuted,minWidth:72},value:{flex:1,flexDirection:"row",alignItems:"center"},valueText:{...e.text.mono,color:e.colors.text}});function Fe({oldValue:o,newValue:i,mode:s="tree",showUnchanged:l=!0,scrollEnabled:r=!1,height:u=220}){return s==="text"?x(De,{oldValue:o,newValue:i,height:u}):x(Ee,{oldValue:o,newValue:i,showUnchanged:l,scrollEnabled:r})}import{ToolButton as rt,CopyButton as nt,PowerToggleButton as it}from"@buoy-gg/shared-ui/web";import{CompactRow as st,DevToolsCard as lt}from"@buoy-gg/shared-ui/web";import{SectionHeader as dt,CollapsibleSection as ut,TabSelector as ft,EmptyState as xt,SearchBar as mt,EventStepperFooter as yt}from"@buoy-gg/shared-ui/web";import{DataViewer as bt}from"@buoy-gg/shared-ui/web/dataViewer";import{BaseEventStore as St}from"@buoy-gg/shared-ui/web";import{RelativeTime as Ct}from"@buoy-gg/shared-ui/web";import{formatBytes as Pt,formatDuration as Rt,formatNumber as Vt,truncateMiddle as kt,safeStringify as Bt}from"@buoy-gg/shared-ui/web";import{usePersistedState as Dt,persistentStorage as At,devToolsStorageKeys as Mt}from"@buoy-gg/shared-ui/web";import{useSafeAreaInsets as Lt,copyToClipboard as It}from"@buoy-gg/shared-ui/web";import{JsModal as Ht}from"@buoy-gg/shared-ui/web";import{Activity as Ft,AlertTriangle as Ut,Bug as zt,Check as Kt,CheckCircle as $t,ChevronDown as _t,ChevronLeft as jt,ChevronRight as Gt,ChevronUp as Jt,Clock as qt,Copy as Xt,Database as Yt,Eye as Zt,EyeOff as Qt,FileJson as eo,FileText as to,Filter as oo,FlaskConical as ro,Globe as no,Hash as io,Info as ao,Key as so,Layers as lo,Lock as co,Pause as po,Play as uo,Plus as fo,Power as xo,RefreshCw as mo,Search as yo,Settings as go,Shield as bo,Trash2 as wo,User as ho,Wifi as So,X as To,Zap as Co,AlertCircle as vo,BarChart3 as Po,Bookmark as Ro,Cloud as Vo,Download as ko,Edit3 as Bo,GitBranch as Eo,HardDrive as Do,HelpCircle as Ao,Home as Mo,Image as Wo,Link as Lo,Maximize2 as Io,Minus as Oo,Palette as Ho,Pin as No,Route as Fo,Server as Uo,Smartphone as zo,Square as Ko,CheckSquare as $o,Timer as _o,Unlock as jo,Upload as Go,Users as Jo,XCircle as qo}from"@buoy-gg/shared-ui/web";export{m as a,w as b,B as c,M as d,n as e,K as f,q as g,ie as h,h as i,C as j,We as k,Ie as l,Oe as m,He as n,Ne as o,Fe as p,et as q,rt as r,nt as s,it as t,st as u,lt as v,dt as w,ut as x,ft as y,xt as z,mt as A,yt as B,bt as C,St as D,Ct as E,Pt as F,Rt as G,Vt as H,kt as I,Bt as J,Dt as K,At as L,Mt as M,Lt as N,It as O,Ht as P,Ft as Q,Ut as R,zt as S,Kt as T,$t as U,_t as V,jt as W,Gt as X,Jt as Y,qt as Z,Xt as _,Yt as $,Zt as aa,Qt as ba,eo as ca,to as da,oo as ea,ro as fa,no as ga,io as ha,ao as ia,so as ja,lo as ka,co as la,po as ma,uo as na,fo as oa,xo as pa,mo as qa,yo as ra,go as sa,bo as ta,wo as ua,ho as va,So as wa,To as xa,Co as ya,vo as za,Po as Aa,Ro as Ba,Vo as Ca,ko as Da,Bo as Ea,Eo as Fa,Do as Ga,Ao as Ha,Mo as Ia,Wo as Ja,Lo as Ka,Io as La,Oo as Ma,Ho as Na,No as Oa,Fo as Pa,Uo as Qa,zo as Ra,Ko as Sa,$o as Ta,_o as Ua,jo as Va,Go as Wa,Jo as Xa,qo as Ya};
@@ -0,0 +1,2 @@
1
+ "use client";
2
+ import{a as P,b as p}from"./chunk-CGDSLLZF.mjs";import{toolTheme as Ye}from"@buoy-gg/shared-ui/web";var s={};P(s,{AccessibilityInfo:()=>D,ActivityIndicator:()=>Y,Alert:()=>R,Animated:()=>E,AppRegistry:()=>M,AppState:()=>A,Appearance:()=>k,BackHandler:()=>L,Button:()=>Z,CheckBox:()=>$,Clipboard:()=>I,DeviceEventEmitter:()=>Ce,Dimensions:()=>O,Easing:()=>H,FlatList:()=>Q,I18nManager:()=>N,Image:()=>ee,ImageBackground:()=>te,InteractionManager:()=>U,Keyboard:()=>F,KeyboardAvoidingView:()=>oe,LayoutAnimation:()=>W,Linking:()=>z,LogBox:()=>Se,Modal:()=>re,NativeEventEmitter:()=>K,NativeModules:()=>V,PanResponder:()=>_,Picker:()=>ne,PixelRatio:()=>G,Platform:()=>J,Pressable:()=>ie,ProgressBar:()=>ae,RefreshControl:()=>se,SafeAreaView:()=>le,ScrollView:()=>ce,SectionList:()=>pe,Share:()=>j,StatusBar:()=>de,StyleSheet:()=>g,Switch:()=>ue,Text:()=>x,TextInput:()=>fe,Touchable:()=>me,TouchableHighlight:()=>xe,TouchableNativeFeedback:()=>ge,TouchableOpacity:()=>ye,TouchableWithoutFeedback:()=>be,UIManager:()=>q,Vibration:()=>X,View:()=>d,VirtualizedList:()=>we,YellowBox:()=>he,findNodeHandle:()=>v,unstable_createElement:()=>B,useColorScheme:()=>Te,useLocaleContext:()=>Pe,useWindowDimensions:()=>ve});p(s,Fe);import*as Fe from"react-native-web";import{unstable_createElement as B,NativeModules as V,AccessibilityInfo as D,Animated as E,Appearance as k,AppRegistry as M,AppState as A,BackHandler as L,Clipboard as I,Dimensions as O,Easing as H,I18nManager as N,Keyboard as F,InteractionManager as U,LayoutAnimation as W,Linking as z,NativeEventEmitter as K,PanResponder as _,PixelRatio as G,Platform as J,Share as j,StyleSheet as g,UIManager as q,Vibration as X,ActivityIndicator as Y,Button as Z,CheckBox as $,FlatList as Q,Image as ee,ImageBackground as te,KeyboardAvoidingView as oe,Modal as re,Picker as ne,Pressable as ie,ProgressBar as ae,RefreshControl as se,SafeAreaView as le,ScrollView as ce,SectionList as pe,StatusBar as de,Switch as ue,Text as x,TextInput as fe,Touchable as me,TouchableHighlight as xe,TouchableNativeFeedback as ge,TouchableOpacity as ye,TouchableWithoutFeedback as be,View as d,VirtualizedList as we,YellowBox as he,LogBox as Se,DeviceEventEmitter as Ce,useColorScheme as Te,useLocaleContext as Pe,useWindowDimensions as ve}from"react-native-web";import*as S from"react-native-web";var v=S.findNodeHandle,R={alert(t,r,n,i){if(typeof document>"u")return;let o=document.createElement("dialog");o.dataset.buoyRoot="",o.setAttribute("aria-label",t),o.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 c=document.createElement("h2");if(c.textContent=t,c.style.cssText="font-size:18px;margin:0 0 12px",o.appendChild(c),r){let a=document.createElement("p");a.textContent=r,a.style.cssText="line-height:1.5;white-space:pre-wrap;margin:0 0 20px",o.appendChild(a)}let f=document.createElement("div");f.style.cssText="display:flex;justify-content:flex-end;flex-wrap:wrap;gap:8px";let b=n?.length?n:[{text:"OK"}],w=()=>{o.close?.(),o.remove()};for(let a of b){let m=document.createElement("button");m.type="button",m.textContent=a.text??"OK",m.style.cssText=`padding:9px 14px;border:1px solid #64748b;border-radius:7px;color:white;background:${a.style==="destructive"?"#a52b38":"#283a4d"};cursor:pointer;font:inherit`,m.onclick=()=>{w(),a.onPress?.()},f.appendChild(m)}o.addEventListener("cancel",a=>{a.preventDefault(),i?.cancelable!==!1&&(w(),i?.onDismiss?.())}),o.appendChild(f),document.body.appendChild(o),o.showModal?o.showModal():o.setAttribute("open","")}};import{CopyButton as Re,toolTheme as e}from"@buoy-gg/shared-ui/web";import{TreeDiffViewer as Be,SplitDiffViewer as Ve}from"@buoy-gg/shared-ui/web/dataViewer";import{jsx as l,jsxs as T}from"react/jsx-runtime";var De={success:e.colors.success,active:e.colors.success,connected:e.colors.success,error:e.colors.error,failed:e.colors.error,warning:e.colors.warning,stale:e.colors.warning,pending:e.colors.info,loading:e.colors.info,fetching:e.colors.info,info:e.colors.info,inactive:e.colors.textMuted,idle:e.colors.textMuted};function C(t){return De[t.toLowerCase()]??e.colors.textMuted}var Ee={GET:e.colors.info,POST:e.colors.success,PUT:e.colors.warning,PATCH:e.colors.warning,DELETE:e.colors.error};function ke(t){return Ee[t.toUpperCase()]??e.colors.textSecondary}var Me={string:e.colors.success,number:e.colors.info,boolean:e.colors.warning,object:e.colors.accent,array:e.colors.accent,function:e.colors.error,null:e.colors.textMuted,undefined:e.colors.textMuted};function Ae(t){return Me[t.toLowerCase()]??e.colors.textSecondary}function Le({children:t,color:r=e.colors.textSecondary,icon:n,size:i="small",pill:o=!1,mono:c=!1,style:f}){let b=typeof t=="string"||typeof t=="number";return T(d,{style:[u.base,i==="medium"&&u.medium,o&&u.pill,{backgroundColor:r+"1A",borderColor:r+"40"},f],children:[n,b?l(x,{style:[u.text,i==="medium"&&u.textMedium,c&&u.textMono,{color:r}],numberOfLines:1,children:t}):t]})}var u=g.create({base:{flexDirection:"row",alignItems:"center",alignSelf:"flex-start",gap:4,borderWidth:1,borderRadius:e.radius.sm,paddingHorizontal:6,paddingVertical:2},medium:{paddingHorizontal:8,paddingVertical:3},pill:{borderRadius:e.radius.pill,minWidth:20,justifyContent:"center"},text:{fontSize:10,fontWeight:"600",letterSpacing:.3},textMedium:{fontSize:12},textMono:{fontFamily:e.text.mono.fontFamily}});function Ie({status:t,color:r,size:n=8,style:i}){let o=r??(t?C(t):e.colors.textMuted);return l(d,{style:[{width:n,height:n,borderRadius:n/2,backgroundColor:o},i]})}function Oe({label:t,value:r,copyable:n=!1,style:i}){let o=typeof r=="string"||typeof r=="number";return T(d,{style:[y.row,i],children:[l(x,{style:y.label,numberOfLines:1,children:t}),l(d,{style:y.value,children:o?l(x,{style:y.valueText,numberOfLines:2,children:String(r)}):r}),n&&r!=null&&l(Re,{value:r,size:12})]})}var y=g.create({row:{flexDirection:"row",alignItems:"center",gap:e.spacing.sm,paddingVertical:3},label:{...e.text.label,color:e.colors.textMuted,minWidth:72},value:{flex:1,flexDirection:"row",alignItems:"center"},valueText:{...e.text.mono,color:e.colors.text}});function He({oldValue:t,newValue:r,mode:n="tree",showUnchanged:i=!0,scrollEnabled:o=!1,height:c=220}){return n==="text"?l(Ve,{oldValue:t,newValue:r,height:c}):l(Be,{oldValue:t,newValue:r,showUnchanged:i,scrollEnabled:o})}import{ToolButton as Qe,CopyButton as et,PowerToggleButton as tt}from"@buoy-gg/shared-ui/web";import{CompactRow as rt,DevToolsCard as nt}from"@buoy-gg/shared-ui/web";import{SectionHeader as st,CollapsibleSection as lt,TabSelector as ct,EmptyState as pt,SearchBar as dt,EventStepperFooter as ut}from"@buoy-gg/shared-ui/web";import{DataViewer as mt}from"@buoy-gg/shared-ui/web/dataViewer";import{BaseEventStore as yt}from"@buoy-gg/shared-ui/web";import{RelativeTime as wt}from"@buoy-gg/shared-ui/web";import{formatBytes as St,formatDuration as Ct,formatNumber as Tt,truncateMiddle as Pt,safeStringify as vt}from"@buoy-gg/shared-ui/web";import{usePersistedState as Bt,persistentStorage as Vt,devToolsStorageKeys as Dt}from"@buoy-gg/shared-ui/web";import{useSafeAreaInsets as kt,copyToClipboard as Mt}from"@buoy-gg/shared-ui/web";import{JsModal as Lt}from"@buoy-gg/shared-ui/web";import{Activity as Ot,AlertTriangle as Ht,Bug as Nt,Check as Ft,CheckCircle as Ut,ChevronDown as Wt,ChevronLeft as zt,ChevronRight as Kt,ChevronUp as _t,Clock as Gt,Copy as Jt,Database as jt,Eye as qt,EyeOff as Xt,FileJson as Yt,FileText as Zt,Filter as $t,FlaskConical as Qt,Globe as eo,Hash as to,Info as oo,Key as ro,Layers as no,Lock as io,Pause as ao,Play as so,Plus as lo,Power as co,RefreshCw as po,Search as uo,Settings as fo,Shield as mo,Trash2 as xo,User as go,Wifi as yo,X as bo,Zap as wo,AlertCircle as ho,BarChart3 as So,Bookmark as Co,Cloud as To,Download as Po,Edit3 as vo,GitBranch as Ro,HardDrive as Bo,HelpCircle as Vo,Home as Do,Image as Eo,Link as ko,Maximize2 as Mo,Minus as Ao,Palette as Lo,Pin as Io,Route as Oo,Server as Ho,Smartphone as No,Square as Fo,CheckSquare as Uo,Timer as Wo,Unlock as zo,Upload as Ko,Users as _o,XCircle as Go}from"@buoy-gg/shared-ui/web";export{s as a,E as b,J as c,g as d,x as e,d as f,C as g,ke as h,Ae as i,Le as j,Ie as k,Oe as l,He as m,Ye as n,Qe as o,et as p,tt as q,rt as r,nt as s,st as t,lt as u,ct as v,pt as w,dt as x,ut as y,mt as z,yt as A,wt as B,St as C,Ct as D,Tt as E,Pt as F,vt as G,Bt as H,Vt as I,Dt as J,kt as K,Mt as L,Lt as M,Ot as N,Ht as O,Nt as P,Ft as Q,Ut as R,Wt as S,zt as T,Kt as U,_t as V,Gt as W,Jt as X,jt as Y,qt as Z,Xt as _,Yt as $,Zt as aa,$t as ba,Qt as ca,eo as da,to as ea,oo as fa,ro as ga,no as ha,io as ia,ao as ja,so as ka,lo as la,co as ma,po as na,uo as oa,fo as pa,mo as qa,xo as ra,go as sa,yo as ta,bo as ua,wo as va,ho as wa,So as xa,Co as ya,To as za,Po as Aa,vo as Ba,Ro as Ca,Bo as Da,Vo as Ea,Do as Fa,Eo as Ga,ko as Ha,Mo as Ia,Ao as Ja,Lo as Ka,Io as La,Oo as Ma,Ho as Na,No as Oa,Fo as Pa,Uo as Qa,Wo as Ra,zo as Sa,Ko as Ta,_o as Ua,Go as Va};
@@ -0,0 +1,2 @@
1
+ "use client";
2
+ import{toolTheme as F}from"@buoy-gg/shared-ui/web";import{StyleSheet as u,Text as f,View as c}from"@buoy-gg/shared-ui/web/native";import{CopyButton as w,toolTheme as e}from"@buoy-gg/shared-ui/web";import{TreeDiffViewer as S,SplitDiffViewer as C}from"@buoy-gg/shared-ui/web/dataViewer";import{jsx as s,jsxs as m}from"react/jsx-runtime";var b={success:e.colors.success,active:e.colors.success,connected:e.colors.success,error:e.colors.error,failed:e.colors.error,warning:e.colors.warning,stale:e.colors.warning,pending:e.colors.info,loading:e.colors.info,fetching:e.colors.info,info:e.colors.info,inactive:e.colors.textMuted,idle:e.colors.textMuted};function d(o){return b[o.toLowerCase()]??e.colors.textMuted}var P={GET:e.colors.info,POST:e.colors.success,PUT:e.colors.warning,PATCH:e.colors.warning,DELETE:e.colors.error};function T(o){return P[o.toUpperCase()]??e.colors.textSecondary}var h={string:e.colors.success,number:e.colors.info,boolean:e.colors.warning,object:e.colors.accent,array:e.colors.accent,function:e.colors.error,null:e.colors.textMuted,undefined:e.colors.textMuted};function R(o){return h[o.toLowerCase()]??e.colors.textSecondary}function D({children:o,color:t=e.colors.textSecondary,icon:r,size:n="small",pill:l=!1,mono:p=!1,style:g}){let y=typeof o=="string"||typeof o=="number";return m(c,{style:[i.base,n==="medium"&&i.medium,l&&i.pill,{backgroundColor:t+"1A",borderColor:t+"40"},g],children:[r,y?s(f,{style:[i.text,n==="medium"&&i.textMedium,p&&i.textMono,{color:t}],numberOfLines:1,children:o}):o]})}var i=u.create({base:{flexDirection:"row",alignItems:"center",alignSelf:"flex-start",gap:4,borderWidth:1,borderRadius:e.radius.sm,paddingHorizontal:6,paddingVertical:2},medium:{paddingHorizontal:8,paddingVertical:3},pill:{borderRadius:e.radius.pill,minWidth:20,justifyContent:"center"},text:{fontSize:10,fontWeight:"600",letterSpacing:.3},textMedium:{fontSize:12},textMono:{fontFamily:e.text.mono.fontFamily}});function V({status:o,color:t,size:r=8,style:n}){let l=t??(o?d(o):e.colors.textMuted);return s(c,{style:[{width:r,height:r,borderRadius:r/2,backgroundColor:l},n]})}function B({label:o,value:t,copyable:r=!1,style:n}){let l=typeof t=="string"||typeof t=="number";return m(c,{style:[a.row,n],children:[s(f,{style:a.label,numberOfLines:1,children:o}),s(c,{style:a.value,children:l?s(f,{style:a.valueText,numberOfLines:2,children:String(t)}):t}),r&&t!=null&&s(w,{value:t,size:12})]})}var a=u.create({row:{flexDirection:"row",alignItems:"center",gap:e.spacing.sm,paddingVertical:3},label:{...e.text.label,color:e.colors.textMuted,minWidth:72},value:{flex:1,flexDirection:"row",alignItems:"center"},valueText:{...e.text.mono,color:e.colors.text}});function v({oldValue:o,newValue:t,mode:r="tree",showUnchanged:n=!0,scrollEnabled:l=!1,height:p=220}){return r==="text"?s(C,{oldValue:o,newValue:t,height:p}):s(S,{oldValue:o,newValue:t,showUnchanged:n,scrollEnabled:l})}import{ToolButton as W,CopyButton as G,PowerToggleButton as J}from"@buoy-gg/shared-ui/web";import{CompactRow as q,DevToolsCard as K}from"@buoy-gg/shared-ui/web";import{SectionHeader as Y,CollapsibleSection as Z,TabSelector as Q,EmptyState as $,SearchBar as ee,EventStepperFooter as oe}from"@buoy-gg/shared-ui/web";import{DataViewer as re}from"@buoy-gg/shared-ui/web/dataViewer";import{BaseEventStore as le}from"@buoy-gg/shared-ui/web";import{RelativeTime as ae}from"@buoy-gg/shared-ui/web";import{formatBytes as pe,formatDuration as fe,formatNumber as ue,truncateMiddle as de,safeStringify as me}from"@buoy-gg/shared-ui/web";import{usePersistedState as ye,persistentStorage as xe,devToolsStorageKeys as we}from"@buoy-gg/shared-ui/web";import{useSafeAreaInsets as Ce,copyToClipboard as be}from"@buoy-gg/shared-ui/web";import{JsModal as Te}from"@buoy-gg/shared-ui/web";import{Activity as Re,AlertTriangle as De,Bug as Ve,Check as Be,CheckCircle as ve,ChevronDown as Me,ChevronLeft as Ee,ChevronRight as ke,ChevronUp as Le,Clock as Oe,Copy as Ie,Database as Ue,Eye as He,EyeOff as Ae,FileJson as Fe,FileText as ze,Filter as Ne,FlaskConical as We,Globe as Ge,Hash as Je,Info as _e,Key as qe,Layers as Ke,Lock as Xe,Pause as je,Play as Ye,Plus as Ze,Power as Qe,RefreshCw as $e,Search as eo,Settings as oo,Shield as to,Trash2 as ro,User as no,Wifi as so,X as lo,Zap as io,AlertCircle as ao,BarChart3 as co,Bookmark as po,Cloud as fo,Download as uo,Edit3 as mo,GitBranch as go,HardDrive as yo,HelpCircle as xo,Home as wo,Image as So,Link as Co,Maximize2 as bo,Minus as Po,Palette as To,Pin as ho,Route as Ro,Server as Do,Smartphone as Vo,Square as Bo,CheckSquare as vo,Timer as Mo,Unlock as Eo,Upload as ko,Users as Lo,XCircle as Oo}from"@buoy-gg/shared-ui/web";export{d as a,T as b,R as c,D as d,V as e,B as f,v as g,F as h,W as i,G as j,J as k,q as l,K as m,Y as n,Z as o,Q as p,$ as q,ee as r,oe as s,re as t,le as u,ae as v,pe as w,fe as x,ue as y,de as z,me as A,ye as B,xe as C,we as D,Ce as E,be as F,Te as G,Re as H,De as I,Ve as J,Be as K,ve as L,Me as M,Ee as N,ke as O,Le as P,Oe as Q,Ie as R,Ue as S,He as T,Ae as U,Fe as V,ze as W,Ne as X,We as Y,Ge as Z,Je as _,_e as $,qe as aa,Ke as ba,Xe as ca,je as da,Ye as ea,Ze as fa,Qe as ga,$e as ha,eo as ia,oo as ja,to as ka,ro as la,no as ma,so as na,lo as oa,io as pa,ao as qa,co as ra,po as sa,fo as ta,uo as ua,mo as va,go as wa,yo as xa,xo as ya,wo as za,So as Aa,Co as Ba,bo as Ca,Po as Da,To as Ea,ho as Fa,Ro as Ga,Do as Ha,Vo as Ia,Bo as Ja,vo as Ka,Mo as La,Eo as Ma,ko as Na,Lo as Oa,Oo as Pa};
@@ -0,0 +1,2 @@
1
+ "use client";
2
+ import{toolTheme as F}from"@buoy-gg/shared-ui/web";import{StyleSheet as u,Text as f,View as c}from"react-native-web";import{CopyButton as w,toolTheme as e}from"@buoy-gg/shared-ui/web";import{TreeDiffViewer as S,SplitDiffViewer as C}from"@buoy-gg/shared-ui/web/dataViewer";import{jsx as s,jsxs as m}from"react/jsx-runtime";var b={success:e.colors.success,active:e.colors.success,connected:e.colors.success,error:e.colors.error,failed:e.colors.error,warning:e.colors.warning,stale:e.colors.warning,pending:e.colors.info,loading:e.colors.info,fetching:e.colors.info,info:e.colors.info,inactive:e.colors.textMuted,idle:e.colors.textMuted};function d(o){return b[o.toLowerCase()]??e.colors.textMuted}var P={GET:e.colors.info,POST:e.colors.success,PUT:e.colors.warning,PATCH:e.colors.warning,DELETE:e.colors.error};function T(o){return P[o.toUpperCase()]??e.colors.textSecondary}var h={string:e.colors.success,number:e.colors.info,boolean:e.colors.warning,object:e.colors.accent,array:e.colors.accent,function:e.colors.error,null:e.colors.textMuted,undefined:e.colors.textMuted};function R(o){return h[o.toLowerCase()]??e.colors.textSecondary}function D({children:o,color:t=e.colors.textSecondary,icon:r,size:n="small",pill:l=!1,mono:p=!1,style:g}){let y=typeof o=="string"||typeof o=="number";return m(c,{style:[i.base,n==="medium"&&i.medium,l&&i.pill,{backgroundColor:t+"1A",borderColor:t+"40"},g],children:[r,y?s(f,{style:[i.text,n==="medium"&&i.textMedium,p&&i.textMono,{color:t}],numberOfLines:1,children:o}):o]})}var i=u.create({base:{flexDirection:"row",alignItems:"center",alignSelf:"flex-start",gap:4,borderWidth:1,borderRadius:e.radius.sm,paddingHorizontal:6,paddingVertical:2},medium:{paddingHorizontal:8,paddingVertical:3},pill:{borderRadius:e.radius.pill,minWidth:20,justifyContent:"center"},text:{fontSize:10,fontWeight:"600",letterSpacing:.3},textMedium:{fontSize:12},textMono:{fontFamily:e.text.mono.fontFamily}});function V({status:o,color:t,size:r=8,style:n}){let l=t??(o?d(o):e.colors.textMuted);return s(c,{style:[{width:r,height:r,borderRadius:r/2,backgroundColor:l},n]})}function B({label:o,value:t,copyable:r=!1,style:n}){let l=typeof t=="string"||typeof t=="number";return m(c,{style:[a.row,n],children:[s(f,{style:a.label,numberOfLines:1,children:o}),s(c,{style:a.value,children:l?s(f,{style:a.valueText,numberOfLines:2,children:String(t)}):t}),r&&t!=null&&s(w,{value:t,size:12})]})}var a=u.create({row:{flexDirection:"row",alignItems:"center",gap:e.spacing.sm,paddingVertical:3},label:{...e.text.label,color:e.colors.textMuted,minWidth:72},value:{flex:1,flexDirection:"row",alignItems:"center"},valueText:{...e.text.mono,color:e.colors.text}});function v({oldValue:o,newValue:t,mode:r="tree",showUnchanged:n=!0,scrollEnabled:l=!1,height:p=220}){return r==="text"?s(C,{oldValue:o,newValue:t,height:p}):s(S,{oldValue:o,newValue:t,showUnchanged:n,scrollEnabled:l})}import{ToolButton as W,CopyButton as G,PowerToggleButton as J}from"@buoy-gg/shared-ui/web";import{CompactRow as q,DevToolsCard as K}from"@buoy-gg/shared-ui/web";import{SectionHeader as Y,CollapsibleSection as Z,TabSelector as Q,EmptyState as $,SearchBar as ee,EventStepperFooter as oe}from"@buoy-gg/shared-ui/web";import{DataViewer as re}from"@buoy-gg/shared-ui/web/dataViewer";import{BaseEventStore as le}from"@buoy-gg/shared-ui/web";import{RelativeTime as ae}from"@buoy-gg/shared-ui/web";import{formatBytes as pe,formatDuration as fe,formatNumber as ue,truncateMiddle as de,safeStringify as me}from"@buoy-gg/shared-ui/web";import{usePersistedState as ye,persistentStorage as xe,devToolsStorageKeys as we}from"@buoy-gg/shared-ui/web";import{useSafeAreaInsets as Ce,copyToClipboard as be}from"@buoy-gg/shared-ui/web";import{JsModal as Te}from"@buoy-gg/shared-ui/web";import{Activity as Re,AlertTriangle as De,Bug as Ve,Check as Be,CheckCircle as ve,ChevronDown as Me,ChevronLeft as Ee,ChevronRight as ke,ChevronUp as Le,Clock as Oe,Copy as Ie,Database as Ue,Eye as He,EyeOff as Ae,FileJson as Fe,FileText as ze,Filter as Ne,FlaskConical as We,Globe as Ge,Hash as Je,Info as _e,Key as qe,Layers as Ke,Lock as Xe,Pause as je,Play as Ye,Plus as Ze,Power as Qe,RefreshCw as $e,Search as eo,Settings as oo,Shield as to,Trash2 as ro,User as no,Wifi as so,X as lo,Zap as io,AlertCircle as ao,BarChart3 as co,Bookmark as po,Cloud as fo,Download as uo,Edit3 as mo,GitBranch as go,HardDrive as yo,HelpCircle as xo,Home as wo,Image as So,Link as Co,Maximize2 as bo,Minus as Po,Palette as To,Pin as ho,Route as Ro,Server as Do,Smartphone as Vo,Square as Bo,CheckSquare as vo,Timer as Mo,Unlock as Eo,Upload as ko,Users as Lo,XCircle as Oo}from"@buoy-gg/shared-ui/web";export{d as a,T as b,R as c,D as d,V as e,B as f,v as g,F as h,W as i,G as j,J as k,q as l,K as m,Y as n,Z as o,Q as p,$ as q,ee as r,oe as s,re as t,le as u,ae as v,pe as w,fe as x,ue as y,de as z,me as A,ye as B,xe as C,we as D,Ce as E,be as F,Te as G,Re as H,De as I,Ve as J,Be as K,ve as L,Me as M,Ee as N,ke as O,Le as P,Oe as Q,Ie as R,Ue as S,He as T,Ae as U,Fe as V,ze as W,Ne as X,We as Y,Ge as Z,Je as _,_e as $,qe as aa,Ke as ba,Xe as ca,je as da,Ye as ea,Ze as fa,Qe as ga,$e as ha,eo as ia,oo as ja,to as ka,ro as la,no as ma,so as na,lo as oa,io as pa,ao as qa,co as ra,po as sa,fo as ta,uo as ua,mo as va,go as wa,yo as xa,xo as ya,wo as za,So as Aa,Co as Ba,bo as Ca,Po as Da,To as Ea,ho as Fa,Ro as Ga,Do as Ha,Vo as Ia,Bo as Ja,vo as Ka,Mo as La,Eo as Ma,ko as Na,Lo as Oa,Oo as Pa};
@@ -0,0 +1,2 @@
1
+ "use client";
2
+ import{b as P,c as a}from"./chunk-R7RGRTY5.mjs";import{toolTheme as et}from"@buoy-gg/shared-ui/web";var n={};P(n,{AccessibilityInfo:()=>z,ActivityIndicator:()=>L,Alert:()=>N,Animated:()=>K,AppRegistry:()=>j,AppState:()=>_,Appearance:()=>$,BackHandler:()=>G,Button:()=>O,CheckBox:()=>ce,Clipboard:()=>J,DeviceEventEmitter:()=>Pe,Dimensions:()=>q,Easing:()=>X,FlatList:()=>pe,I18nManager:()=>Y,Image:()=>de,ImageBackground:()=>ue,InteractionManager:()=>Q,Keyboard:()=>Z,KeyboardAvoidingView:()=>fe,LayoutAnimation:()=>ee,Linking:()=>te,LogBox:()=>Ce,Modal:()=>M,NativeEventEmitter:()=>oe,NativeModules:()=>U,PanResponder:()=>re,Picker:()=>xe,PixelRatio:()=>ne,Platform:()=>ie,Pressable:()=>D,ProgressBar:()=>ye,RefreshControl:()=>me,SafeAreaView:()=>be,ScrollView:()=>A,SectionList:()=>ge,Share:()=>ae,StatusBar:()=>we,StyleSheet:()=>h,Switch:()=>I,Text:()=>w,TextInput:()=>R,Touchable:()=>he,TouchableHighlight:()=>B,TouchableNativeFeedback:()=>Se,TouchableOpacity:()=>k,TouchableWithoutFeedback:()=>E,UIManager:()=>se,Vibration:()=>le,View:()=>m,VirtualizedList:()=>ve,YellowBox:()=>Te,findNodeHandle:()=>H,unstable_createElement:()=>F,useColorScheme:()=>Ve,useLocaleContext:()=>We,useWindowDimensions:()=>Re});a(n,Ke);import*as Ke from"react-native-web";import{unstable_createElement as F,NativeModules as U,AccessibilityInfo as z,Animated as K,Appearance as $,AppRegistry as j,AppState as _,BackHandler as G,Clipboard as J,Dimensions as q,Easing as X,I18nManager as Y,Keyboard as Z,InteractionManager as Q,LayoutAnimation as ee,Linking as te,NativeEventEmitter as oe,PanResponder as re,PixelRatio as ne,Platform as ie,Share as ae,StyleSheet as h,UIManager as se,Vibration as le,CheckBox as ce,FlatList as pe,Image as de,ImageBackground as ue,KeyboardAvoidingView as fe,Picker as xe,ProgressBar as ye,RefreshControl as me,SafeAreaView as be,SectionList as ge,StatusBar as we,Touchable as he,TouchableNativeFeedback as Se,VirtualizedList as ve,YellowBox as Te,LogBox as Ce,DeviceEventEmitter as Pe,useColorScheme as Ve,useLocaleContext as We,useWindowDimensions as Re}from"react-native-web";import*as o from"react-native-web";import{createElement as V,forwardRef as W}from"react";function p(t){let i=W((l,r)=>{let{accessibilityState:d,accessibilityValue:x,...f}=l;for(let u of["busy","checked","disabled","expanded","selected"])d?.[u]!==void 0&&f[`aria-${u}`]===void 0&&(f[`aria-${u}`]=d[u]);for(let[u,c]of Object.entries({min:"valuemin",max:"valuemax",now:"valuenow",text:"valuetext"}))x?.[u]!==void 0&&f[`aria-${c}`]===void 0&&(f[`aria-${c}`]=x[u]);return V(t,{...f,ref:r})}),s=t.State;return s&&Object.assign(i,{State:s}),i.displayName=t.displayName??t.name??"NativeWebView",i}var m=p(o.View),w=p(o.Text),R=p(o.TextInput),k=p(o.TouchableOpacity),B=p(o.TouchableHighlight),E=p(o.TouchableWithoutFeedback),D=p(o.Pressable),A=p(o.ScrollView),M=p(o.Modal),I=p(o.Switch),L=p(o.ActivityIndicator),O=p(o.Button),H=o.findNodeHandle,N={alert(t,i,s,l){if(typeof document>"u")return;let r=document.createElement("dialog");r.dataset.buoyRoot="",r.setAttribute("aria-label",t),r.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=t,d.style.cssText="font-size:18px;margin:0 0 12px",r.appendChild(d),i){let c=document.createElement("p");c.textContent=i,c.style.cssText="line-height:1.5;white-space:pre-wrap;margin:0 0 20px",r.appendChild(c)}let x=document.createElement("div");x.style.cssText="display:flex;justify-content:flex-end;flex-wrap:wrap;gap:8px";let f=s?.length?s:[{text:"OK"}],u=()=>{r.close?.(),r.remove()};for(let c of f){let g=document.createElement("button");g.type="button",g.textContent=c.text??"OK",g.style.cssText=`padding:9px 14px;border:1px solid #64748b;border-radius:7px;color:white;background:${c.style==="destructive"?"#a52b38":"#283a4d"};cursor:pointer;font:inherit`,g.onclick=()=>{u(),c.onPress?.()},x.appendChild(g)}r.addEventListener("cancel",c=>{c.preventDefault(),l?.cancelable!==!1&&(u(),l?.onDismiss?.())}),r.appendChild(x),document.body.appendChild(r),r.showModal?r.showModal():r.setAttribute("open","")}};import{CopyButton as ke,toolTheme as e}from"@buoy-gg/shared-ui/web";import{TreeDiffViewer as Be,SplitDiffViewer as Ee}from"@buoy-gg/shared-ui/web/dataViewer";import{jsx as y,jsxs as C}from"react/jsx-runtime";var De={success:e.colors.success,active:e.colors.success,connected:e.colors.success,error:e.colors.error,failed:e.colors.error,warning:e.colors.warning,stale:e.colors.warning,pending:e.colors.info,loading:e.colors.info,fetching:e.colors.info,info:e.colors.info,inactive:e.colors.textMuted,idle:e.colors.textMuted};function T(t){return De[t.toLowerCase()]??e.colors.textMuted}var Ae={GET:e.colors.info,POST:e.colors.success,PUT:e.colors.warning,PATCH:e.colors.warning,DELETE:e.colors.error};function Me(t){return Ae[t.toUpperCase()]??e.colors.textSecondary}var Ie={string:e.colors.success,number:e.colors.info,boolean:e.colors.warning,object:e.colors.accent,array:e.colors.accent,function:e.colors.error,null:e.colors.textMuted,undefined:e.colors.textMuted};function Le(t){return Ie[t.toLowerCase()]??e.colors.textSecondary}function Oe({children:t,color:i=e.colors.textSecondary,icon:s,size:l="small",pill:r=!1,mono:d=!1,style:x}){let f=typeof t=="string"||typeof t=="number";return C(m,{style:[b.base,l==="medium"&&b.medium,r&&b.pill,{backgroundColor:i+"1A",borderColor:i+"40"},x],children:[s,f?y(w,{style:[b.text,l==="medium"&&b.textMedium,d&&b.textMono,{color:i}],numberOfLines:1,children:t}):t]})}var b=h.create({base:{flexDirection:"row",alignItems:"center",alignSelf:"flex-start",gap:4,borderWidth:1,borderRadius:e.radius.sm,paddingHorizontal:6,paddingVertical:2},medium:{paddingHorizontal:8,paddingVertical:3},pill:{borderRadius:e.radius.pill,minWidth:20,justifyContent:"center"},text:{fontSize:10,fontWeight:"600",letterSpacing:.3},textMedium:{fontSize:12},textMono:{fontFamily:e.text.mono.fontFamily}});function He({status:t,color:i,size:s=8,style:l}){let r=i??(t?T(t):e.colors.textMuted);return y(m,{style:[{width:s,height:s,borderRadius:s/2,backgroundColor:r},l]})}function Ne({label:t,value:i,copyable:s=!1,style:l}){let r=typeof i=="string"||typeof i=="number";return C(m,{style:[S.row,l],children:[y(w,{style:S.label,numberOfLines:1,children:t}),y(m,{style:S.value,children:r?y(w,{style:S.valueText,numberOfLines:2,children:String(i)}):i}),s&&i!=null&&y(ke,{value:i,size:12})]})}var S=h.create({row:{flexDirection:"row",alignItems:"center",gap:e.spacing.sm,paddingVertical:3},label:{...e.text.label,color:e.colors.textMuted,minWidth:72},value:{flex:1,flexDirection:"row",alignItems:"center"},valueText:{...e.text.mono,color:e.colors.text}});function Fe({oldValue:t,newValue:i,mode:s="tree",showUnchanged:l=!0,scrollEnabled:r=!1,height:d=220}){return s==="text"?y(Ee,{oldValue:t,newValue:i,height:d}):y(Be,{oldValue:t,newValue:i,showUnchanged:l,scrollEnabled:r})}import{ToolButton as rt,CopyButton as nt,PowerToggleButton as it}from"@buoy-gg/shared-ui/web";import{CompactRow as st,DevToolsCard as lt}from"@buoy-gg/shared-ui/web";import{SectionHeader as dt,CollapsibleSection as ut,TabSelector as ft,EmptyState as xt,SearchBar as yt,EventStepperFooter as mt}from"@buoy-gg/shared-ui/web";import{DataViewer as gt}from"@buoy-gg/shared-ui/web/dataViewer";import{BaseEventStore as St}from"@buoy-gg/shared-ui/web";import{RelativeTime as Tt}from"@buoy-gg/shared-ui/web";import{formatBytes as Pt,formatDuration as Vt,formatNumber as Wt,truncateMiddle as Rt,safeStringify as kt}from"@buoy-gg/shared-ui/web";import{usePersistedState as Et,persistentStorage as Dt,devToolsStorageKeys as At}from"@buoy-gg/shared-ui/web";import{useSafeAreaInsets as It,copyToClipboard as Lt}from"@buoy-gg/shared-ui/web";import{JsModal as Ht}from"@buoy-gg/shared-ui/web";import{Activity as Ft,AlertTriangle as Ut,Bug as zt,Check as Kt,CheckCircle as $t,ChevronDown as jt,ChevronLeft as _t,ChevronRight as Gt,ChevronUp as Jt,Clock as qt,Copy as Xt,Database as Yt,Eye as Zt,EyeOff as Qt,FileJson as eo,FileText as to,Filter as oo,FlaskConical as ro,Globe as no,Hash as io,Info as ao,Key as so,Layers as lo,Lock as co,Pause as po,Play as uo,Plus as fo,Power as xo,RefreshCw as yo,Search as mo,Settings as bo,Shield as go,Trash2 as wo,User as ho,Wifi as So,X as vo,Zap as To,AlertCircle as Co,BarChart3 as Po,Bookmark as Vo,Cloud as Wo,Download as Ro,Edit3 as ko,GitBranch as Bo,HardDrive as Eo,HelpCircle as Do,Home as Ao,Image as Mo,Link as Io,Maximize2 as Lo,Minus as Oo,Palette as Ho,Pin as No,Route as Fo,Server as Uo,Smartphone as zo,Square as Ko,CheckSquare as $o,Timer as jo,Unlock as _o,Upload as Go,Users as Jo,XCircle as qo}from"@buoy-gg/shared-ui/web";export{m as a,w as b,k as c,A as d,n as e,K as f,q as g,ie as h,h as i,T as j,Me as k,Le as l,Oe as m,He as n,Ne as o,Fe as p,et as q,rt as r,nt as s,it as t,st as u,lt as v,dt as w,ut as x,ft as y,xt as z,yt as A,mt as B,gt as C,St as D,Tt as E,Pt as F,Vt as G,Wt as H,Rt as I,kt as J,Et as K,Dt as L,At as M,It as N,Lt as O,Ht as P,Ft as Q,Ut as R,zt as S,Kt as T,$t as U,jt as V,_t as W,Gt as X,Jt as Y,qt as Z,Xt as _,Yt as $,Zt as aa,Qt as ba,eo as ca,to as da,oo as ea,ro as fa,no as ga,io as ha,ao as ia,so as ja,lo as ka,co as la,po as ma,uo as na,fo as oa,xo as pa,yo as qa,mo as ra,bo as sa,go as ta,wo as ua,ho as va,So as wa,vo as xa,To as ya,Co as za,Po as Aa,Vo as Ba,Wo as Ca,Ro as Da,ko as Ea,Bo as Fa,Eo as Ga,Do as Ha,Ao as Ia,Mo as Ja,Io as Ka,Lo as La,Oo as Ma,Ho as Na,No as Oa,Fo as Pa,Uo as Qa,zo as Ra,Ko as Sa,$o as Ta,jo as Ua,_o as Va,Go as Wa,Jo as Xa,qo as Ya};
@@ -0,0 +1,2 @@
1
+ "use client";
2
+ var s=Object.defineProperty;var a=Object.getOwnPropertyDescriptor;var b=Object.getOwnPropertyNames;var f=Object.prototype.hasOwnProperty;var g=(l=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(l,{get:(o,e)=>(typeof require<"u"?require:o)[e]}):l)(function(l){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+l+'" is not supported')});var p=(l,o)=>{for(var e in o)s(l,e,{get:o[e],enumerable:!0})},d=(l,o,e,n)=>{if(o&&typeof o=="object"||typeof o=="function")for(let i of b(o))!f.call(l,i)&&i!==e&&s(l,i,{get:()=>o[i],enumerable:!(n=a(o,i))||n.enumerable});return l},t=(l,o,e)=>(d(l,o,"default"),e&&d(e,o,"default"));var c=process.env.NODE_ENV!=="production";typeof window<"u"&&typeof globalThis.global>"u"&&(globalThis.global=globalThis);export{g as a,p as b,t as c,c as d};
@@ -0,0 +1,2 @@
1
+ "use client";
2
+ import{b as P,c as p}from"./chunk-R7RGRTY5.mjs";import{toolTheme as Ye}from"@buoy-gg/shared-ui/web";var s={};P(s,{AccessibilityInfo:()=>D,ActivityIndicator:()=>Y,Alert:()=>R,Animated:()=>E,AppRegistry:()=>M,AppState:()=>A,Appearance:()=>k,BackHandler:()=>L,Button:()=>Z,CheckBox:()=>$,Clipboard:()=>I,DeviceEventEmitter:()=>Ce,Dimensions:()=>O,Easing:()=>H,FlatList:()=>Q,I18nManager:()=>N,Image:()=>ee,ImageBackground:()=>te,InteractionManager:()=>U,Keyboard:()=>F,KeyboardAvoidingView:()=>oe,LayoutAnimation:()=>W,Linking:()=>z,LogBox:()=>Se,Modal:()=>re,NativeEventEmitter:()=>K,NativeModules:()=>V,PanResponder:()=>_,Picker:()=>ne,PixelRatio:()=>G,Platform:()=>J,Pressable:()=>ie,ProgressBar:()=>ae,RefreshControl:()=>se,SafeAreaView:()=>le,ScrollView:()=>ce,SectionList:()=>pe,Share:()=>j,StatusBar:()=>de,StyleSheet:()=>g,Switch:()=>ue,Text:()=>x,TextInput:()=>fe,Touchable:()=>me,TouchableHighlight:()=>xe,TouchableNativeFeedback:()=>ge,TouchableOpacity:()=>ye,TouchableWithoutFeedback:()=>be,UIManager:()=>q,Vibration:()=>X,View:()=>d,VirtualizedList:()=>we,YellowBox:()=>he,findNodeHandle:()=>v,unstable_createElement:()=>B,useColorScheme:()=>Te,useLocaleContext:()=>Pe,useWindowDimensions:()=>ve});p(s,Fe);import*as Fe from"react-native-web";import{unstable_createElement as B,NativeModules as V,AccessibilityInfo as D,Animated as E,Appearance as k,AppRegistry as M,AppState as A,BackHandler as L,Clipboard as I,Dimensions as O,Easing as H,I18nManager as N,Keyboard as F,InteractionManager as U,LayoutAnimation as W,Linking as z,NativeEventEmitter as K,PanResponder as _,PixelRatio as G,Platform as J,Share as j,StyleSheet as g,UIManager as q,Vibration as X,ActivityIndicator as Y,Button as Z,CheckBox as $,FlatList as Q,Image as ee,ImageBackground as te,KeyboardAvoidingView as oe,Modal as re,Picker as ne,Pressable as ie,ProgressBar as ae,RefreshControl as se,SafeAreaView as le,ScrollView as ce,SectionList as pe,StatusBar as de,Switch as ue,Text as x,TextInput as fe,Touchable as me,TouchableHighlight as xe,TouchableNativeFeedback as ge,TouchableOpacity as ye,TouchableWithoutFeedback as be,View as d,VirtualizedList as we,YellowBox as he,LogBox as Se,DeviceEventEmitter as Ce,useColorScheme as Te,useLocaleContext as Pe,useWindowDimensions as ve}from"react-native-web";import*as S from"react-native-web";var v=S.findNodeHandle,R={alert(t,r,n,i){if(typeof document>"u")return;let o=document.createElement("dialog");o.dataset.buoyRoot="",o.setAttribute("aria-label",t),o.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 c=document.createElement("h2");if(c.textContent=t,c.style.cssText="font-size:18px;margin:0 0 12px",o.appendChild(c),r){let a=document.createElement("p");a.textContent=r,a.style.cssText="line-height:1.5;white-space:pre-wrap;margin:0 0 20px",o.appendChild(a)}let f=document.createElement("div");f.style.cssText="display:flex;justify-content:flex-end;flex-wrap:wrap;gap:8px";let b=n?.length?n:[{text:"OK"}],w=()=>{o.close?.(),o.remove()};for(let a of b){let m=document.createElement("button");m.type="button",m.textContent=a.text??"OK",m.style.cssText=`padding:9px 14px;border:1px solid #64748b;border-radius:7px;color:white;background:${a.style==="destructive"?"#a52b38":"#283a4d"};cursor:pointer;font:inherit`,m.onclick=()=>{w(),a.onPress?.()},f.appendChild(m)}o.addEventListener("cancel",a=>{a.preventDefault(),i?.cancelable!==!1&&(w(),i?.onDismiss?.())}),o.appendChild(f),document.body.appendChild(o),o.showModal?o.showModal():o.setAttribute("open","")}};import{CopyButton as Re,toolTheme as e}from"@buoy-gg/shared-ui/web";import{TreeDiffViewer as Be,SplitDiffViewer as Ve}from"@buoy-gg/shared-ui/web/dataViewer";import{jsx as l,jsxs as T}from"react/jsx-runtime";var De={success:e.colors.success,active:e.colors.success,connected:e.colors.success,error:e.colors.error,failed:e.colors.error,warning:e.colors.warning,stale:e.colors.warning,pending:e.colors.info,loading:e.colors.info,fetching:e.colors.info,info:e.colors.info,inactive:e.colors.textMuted,idle:e.colors.textMuted};function C(t){return De[t.toLowerCase()]??e.colors.textMuted}var Ee={GET:e.colors.info,POST:e.colors.success,PUT:e.colors.warning,PATCH:e.colors.warning,DELETE:e.colors.error};function ke(t){return Ee[t.toUpperCase()]??e.colors.textSecondary}var Me={string:e.colors.success,number:e.colors.info,boolean:e.colors.warning,object:e.colors.accent,array:e.colors.accent,function:e.colors.error,null:e.colors.textMuted,undefined:e.colors.textMuted};function Ae(t){return Me[t.toLowerCase()]??e.colors.textSecondary}function Le({children:t,color:r=e.colors.textSecondary,icon:n,size:i="small",pill:o=!1,mono:c=!1,style:f}){let b=typeof t=="string"||typeof t=="number";return T(d,{style:[u.base,i==="medium"&&u.medium,o&&u.pill,{backgroundColor:r+"1A",borderColor:r+"40"},f],children:[n,b?l(x,{style:[u.text,i==="medium"&&u.textMedium,c&&u.textMono,{color:r}],numberOfLines:1,children:t}):t]})}var u=g.create({base:{flexDirection:"row",alignItems:"center",alignSelf:"flex-start",gap:4,borderWidth:1,borderRadius:e.radius.sm,paddingHorizontal:6,paddingVertical:2},medium:{paddingHorizontal:8,paddingVertical:3},pill:{borderRadius:e.radius.pill,minWidth:20,justifyContent:"center"},text:{fontSize:10,fontWeight:"600",letterSpacing:.3},textMedium:{fontSize:12},textMono:{fontFamily:e.text.mono.fontFamily}});function Ie({status:t,color:r,size:n=8,style:i}){let o=r??(t?C(t):e.colors.textMuted);return l(d,{style:[{width:n,height:n,borderRadius:n/2,backgroundColor:o},i]})}function Oe({label:t,value:r,copyable:n=!1,style:i}){let o=typeof r=="string"||typeof r=="number";return T(d,{style:[y.row,i],children:[l(x,{style:y.label,numberOfLines:1,children:t}),l(d,{style:y.value,children:o?l(x,{style:y.valueText,numberOfLines:2,children:String(r)}):r}),n&&r!=null&&l(Re,{value:r,size:12})]})}var y=g.create({row:{flexDirection:"row",alignItems:"center",gap:e.spacing.sm,paddingVertical:3},label:{...e.text.label,color:e.colors.textMuted,minWidth:72},value:{flex:1,flexDirection:"row",alignItems:"center"},valueText:{...e.text.mono,color:e.colors.text}});function He({oldValue:t,newValue:r,mode:n="tree",showUnchanged:i=!0,scrollEnabled:o=!1,height:c=220}){return n==="text"?l(Ve,{oldValue:t,newValue:r,height:c}):l(Be,{oldValue:t,newValue:r,showUnchanged:i,scrollEnabled:o})}import{ToolButton as Qe,CopyButton as et,PowerToggleButton as tt}from"@buoy-gg/shared-ui/web";import{CompactRow as rt,DevToolsCard as nt}from"@buoy-gg/shared-ui/web";import{SectionHeader as st,CollapsibleSection as lt,TabSelector as ct,EmptyState as pt,SearchBar as dt,EventStepperFooter as ut}from"@buoy-gg/shared-ui/web";import{DataViewer as mt}from"@buoy-gg/shared-ui/web/dataViewer";import{BaseEventStore as yt}from"@buoy-gg/shared-ui/web";import{RelativeTime as wt}from"@buoy-gg/shared-ui/web";import{formatBytes as St,formatDuration as Ct,formatNumber as Tt,truncateMiddle as Pt,safeStringify as vt}from"@buoy-gg/shared-ui/web";import{usePersistedState as Bt,persistentStorage as Vt,devToolsStorageKeys as Dt}from"@buoy-gg/shared-ui/web";import{useSafeAreaInsets as kt,copyToClipboard as Mt}from"@buoy-gg/shared-ui/web";import{JsModal as Lt}from"@buoy-gg/shared-ui/web";import{Activity as Ot,AlertTriangle as Ht,Bug as Nt,Check as Ft,CheckCircle as Ut,ChevronDown as Wt,ChevronLeft as zt,ChevronRight as Kt,ChevronUp as _t,Clock as Gt,Copy as Jt,Database as jt,Eye as qt,EyeOff as Xt,FileJson as Yt,FileText as Zt,Filter as $t,FlaskConical as Qt,Globe as eo,Hash as to,Info as oo,Key as ro,Layers as no,Lock as io,Pause as ao,Play as so,Plus as lo,Power as co,RefreshCw as po,Search as uo,Settings as fo,Shield as mo,Trash2 as xo,User as go,Wifi as yo,X as bo,Zap as wo,AlertCircle as ho,BarChart3 as So,Bookmark as Co,Cloud as To,Download as Po,Edit3 as vo,GitBranch as Ro,HardDrive as Bo,HelpCircle as Vo,Home as Do,Image as Eo,Link as ko,Maximize2 as Mo,Minus as Ao,Palette as Lo,Pin as Io,Route as Oo,Server as Ho,Smartphone as No,Square as Fo,CheckSquare as Uo,Timer as Wo,Unlock as zo,Upload as Ko,Users as _o,XCircle as Go}from"@buoy-gg/shared-ui/web";export{s as a,E as b,O as c,J as d,g as e,ce as f,x as g,ye as h,d as i,C as j,ke as k,Ae as l,Le as m,Ie as n,Oe as o,He as p,Ye as q,Qe as r,et as s,tt as t,rt as u,nt as v,st as w,lt as x,ct as y,pt as z,dt as A,ut as B,mt as C,yt as D,wt as E,St as F,Ct as G,Tt as H,Pt as I,vt as J,Bt as K,Vt as L,Dt as M,kt as N,Mt as O,Lt as P,Ot as Q,Ht as R,Nt as S,Ft as T,Ut as U,Wt as V,zt as W,Kt as X,_t as Y,Gt as Z,Jt as _,jt as $,qt as aa,Xt as ba,Yt as ca,Zt as da,$t as ea,Qt as fa,eo as ga,to as ha,oo as ia,ro as ja,no as ka,io as la,ao as ma,so as na,lo as oa,co as pa,po as qa,uo as ra,fo as sa,mo as ta,xo as ua,go as va,yo as wa,bo as xa,wo as ya,ho as za,So as Aa,Co as Ba,To as Ca,Po as Da,vo as Ea,Ro as Fa,Bo as Ga,Vo as Ha,Do as Ia,Eo as Ja,ko as Ka,Mo as La,Ao as Ma,Lo as Na,Io as Oa,Oo as Pa,Ho as Qa,No as Ra,Fo as Sa,Uo as Ta,Wo as Ua,zo as Va,Ko as Wa,_o as Xa,Go as Ya};
@@ -0,0 +1,2 @@
1
+ "use client";
2
+ var u=process.env.NODE_ENV!=="production";typeof window<"u"&&typeof globalThis.global>"u"&&(globalThis.global=globalThis);import{toolTheme as _}from"@buoy-gg/shared-ui/web";import{StyleSheet as d,Text as f,View as c}from"react-native-web";import{CopyButton as w,toolTheme as e}from"@buoy-gg/shared-ui/web";import{TreeDiffViewer as S,SplitDiffViewer as b}from"@buoy-gg/shared-ui/web/dataViewer";import{jsx as s,jsxs as m}from"react/jsx-runtime";var C={success:e.colors.success,active:e.colors.success,connected:e.colors.success,error:e.colors.error,failed:e.colors.error,warning:e.colors.warning,stale:e.colors.warning,pending:e.colors.info,loading:e.colors.info,fetching:e.colors.info,info:e.colors.info,inactive:e.colors.textMuted,idle:e.colors.textMuted};function g(o){return C[o.toLowerCase()]??e.colors.textMuted}var T={GET:e.colors.info,POST:e.colors.success,PUT:e.colors.warning,PATCH:e.colors.warning,DELETE:e.colors.error};function h(o){return T[o.toUpperCase()]??e.colors.textSecondary}var P={string:e.colors.success,number:e.colors.info,boolean:e.colors.warning,object:e.colors.accent,array:e.colors.accent,function:e.colors.error,null:e.colors.textMuted,undefined:e.colors.textMuted};function R(o){return P[o.toLowerCase()]??e.colors.textSecondary}function D({children:o,color:t=e.colors.textSecondary,icon:r,size:n="small",pill:l=!1,mono:p=!1,style:y}){let x=typeof o=="string"||typeof o=="number";return m(c,{style:[i.base,n==="medium"&&i.medium,l&&i.pill,{backgroundColor:t+"1A",borderColor:t+"40"},y],children:[r,x?s(f,{style:[i.text,n==="medium"&&i.textMedium,p&&i.textMono,{color:t}],numberOfLines:1,children:o}):o]})}var i=d.create({base:{flexDirection:"row",alignItems:"center",alignSelf:"flex-start",gap:4,borderWidth:1,borderRadius:e.radius.sm,paddingHorizontal:6,paddingVertical:2},medium:{paddingHorizontal:8,paddingVertical:3},pill:{borderRadius:e.radius.pill,minWidth:20,justifyContent:"center"},text:{fontSize:10,fontWeight:"600",letterSpacing:.3},textMedium:{fontSize:12},textMono:{fontFamily:e.text.mono.fontFamily}});function V({status:o,color:t,size:r=8,style:n}){let l=t??(o?g(o):e.colors.textMuted);return s(c,{style:[{width:r,height:r,borderRadius:r/2,backgroundColor:l},n]})}function B({label:o,value:t,copyable:r=!1,style:n}){let l=typeof t=="string"||typeof t=="number";return m(c,{style:[a.row,n],children:[s(f,{style:a.label,numberOfLines:1,children:o}),s(c,{style:a.value,children:l?s(f,{style:a.valueText,numberOfLines:2,children:String(t)}):t}),r&&t!=null&&s(w,{value:t,size:12})]})}var a=d.create({row:{flexDirection:"row",alignItems:"center",gap:e.spacing.sm,paddingVertical:3},label:{...e.text.label,color:e.colors.textMuted,minWidth:72},value:{flex:1,flexDirection:"row",alignItems:"center"},valueText:{...e.text.mono,color:e.colors.text}});function E({oldValue:o,newValue:t,mode:r="tree",showUnchanged:n=!0,scrollEnabled:l=!1,height:p=220}){return r==="text"?s(b,{oldValue:o,newValue:t,height:p}):s(S,{oldValue:o,newValue:t,showUnchanged:n,scrollEnabled:l})}import{ToolButton as W,CopyButton as G,PowerToggleButton as J}from"@buoy-gg/shared-ui/web";import{CompactRow as K,DevToolsCard as X}from"@buoy-gg/shared-ui/web";import{SectionHeader as Z,CollapsibleSection as Q,TabSelector as $,EmptyState as ee,SearchBar as oe,EventStepperFooter as te}from"@buoy-gg/shared-ui/web";import{DataViewer as ne}from"@buoy-gg/shared-ui/web/dataViewer";import{BaseEventStore as ie}from"@buoy-gg/shared-ui/web";import{RelativeTime as ce}from"@buoy-gg/shared-ui/web";import{formatBytes as fe,formatDuration as ue,formatNumber as de,truncateMiddle as ge,safeStringify as me}from"@buoy-gg/shared-ui/web";import{usePersistedState as xe,persistentStorage as we,devToolsStorageKeys as Se}from"@buoy-gg/shared-ui/web";import{useSafeAreaInsets as Ce,copyToClipboard as Te}from"@buoy-gg/shared-ui/web";import{JsModal as Pe}from"@buoy-gg/shared-ui/web";import{Activity as De,AlertTriangle as Ve,Bug as Be,Check as Ee,CheckCircle as ve,ChevronDown as Me,ChevronLeft as ke,ChevronRight as Le,ChevronUp as Oe,Clock as Ie,Copy as Ue,Database as He,Eye as Ae,EyeOff as Fe,FileJson as _e,FileText as Ne,Filter as ze,FlaskConical as We,Globe as Ge,Hash as Je,Info as qe,Key as Ke,Layers as Xe,Lock as je,Pause as Ye,Play as Ze,Plus as Qe,Power as $e,RefreshCw as eo,Search as oo,Settings as to,Shield as ro,Trash2 as no,User as so,Wifi as lo,X as io,Zap as ao,AlertCircle as co,BarChart3 as po,Bookmark as fo,Cloud as uo,Download as go,Edit3 as mo,GitBranch as yo,HardDrive as xo,HelpCircle as wo,Home as So,Image as bo,Link as Co,Maximize2 as To,Minus as ho,Palette as Po,Pin as Ro,Route as Do,Server as Vo,Smartphone as Bo,Square as Eo,CheckSquare as vo,Timer as Mo,Unlock as ko,Upload as Lo,Users as Oo,XCircle as Io}from"@buoy-gg/shared-ui/web";export{u as a,g as b,h as c,R as d,D as e,V as f,B as g,E as h,_ as i,W as j,G as k,J as l,K as m,X as n,Z as o,Q as p,$ as q,ee as r,oe as s,te as t,ne as u,ie as v,ce as w,fe as x,ue as y,de as z,ge as A,me as B,xe as C,we as D,Se as E,Ce as F,Te as G,Pe as H,De as I,Ve as J,Be as K,Ee as L,ve as M,Me as N,ke as O,Le as P,Oe as Q,Ie as R,Ue as S,He as T,Ae as U,Fe as V,_e as W,Ne as X,ze as Y,We as Z,Ge as _,Je as $,qe as aa,Ke as ba,Xe as ca,je as da,Ye as ea,Ze as fa,Qe as ga,$e as ha,eo as ia,oo as ja,to as ka,ro as la,no as ma,so as na,lo as oa,io as pa,ao as qa,co as ra,po as sa,fo as ta,uo as ua,go as va,mo as wa,yo as xa,xo as ya,wo as za,So as Aa,bo as Ba,Co as Ca,To as Da,ho as Ea,Po as Fa,Ro as Ga,Do as Ha,Vo as Ia,Bo as Ja,Eo as Ka,vo as La,Mo as Ma,ko as Na,Lo as Oa,Oo as Pa,Io as Qa};
@@ -0,0 +1,11 @@
1
+ "use client";
2
+ import{$ as Aa,A as ta,Aa as tl,B as oa,Ba as ol,C as na,Ca as nl,D as ia,Da as il,E as ra,Ea as rl,F as sa,Fa as sl,G as aa,Ga as al,H as la,Ha as ll,I as ca,Ia as cl,J as da,Ja as dl,K as ua,Ka as ul,L as pa,La as pl,M as ga,Ma as gl,N as fa,Na as fl,O as ma,Oa as ml,P as ya,Pa as yl,Q as ba,Qa as bl,R as ha,Ra as hl,S as Sa,Sa as Sl,T as Ta,Ta as Tl,U as va,Ua as vl,V as xa,Va as xl,W as wa,Wa as wl,X as Ca,Xa as Cl,Y as Ia,Ya as Il,Z as Da,_ as Ra,a as H,aa as Ma,b as _,ba as Pa,c as Ge,ca as Oa,d as Rt,da as Ea,e as Ke,ea as ka,f as be,fa as za,g as At,ga as La,h as he,ha as Ba,i as rt,ia as Fa,j as Hs,ja as Ha,k as Ns,ka as Na,l as Vs,la as Va,m as _s,ma as _a,n as Ws,na as Wa,o as $s,oa as $a,p as Gs,pa as Ga,q as Ks,qa as Ka,r as Us,ra as Ua,s as js,sa as ja,t as qs,ta as qa,u as Ys,ua as Ya,v as Xs,va as Xa,w as Js,wa as Ja,x as Zs,xa as Za,y as Qs,ya as Qa,z as ea,za as el}from"./chunks/chunk-QZDVCMCT.mjs";import{a as ro,d as L}from"./chunks/chunk-R7RGRTY5.mjs";import{FloatingToolHost as ws}from"@buoy-gg/shared-ui/web/floating";import{LicenseManager as Cs,useLicense as Is}from"@buoy-gg/license/web";import{AccountSetup as Ds}from"@buoy-gg/shared-ui/web";import{useState as no,useMemo as Ne,useCallback as Ve,useEffect as we,useRef as Rs}from"react";import{useSettings as As,getToolLabel as wt,getToolDescription as Ms,getToolColor as Nn}from"@buoy-gg/floating-tools-react/web";import{persistentStorage as Oe,devToolsStorageKeys as Ct,EnvironmentIndicator as Ps,EnvironmentSelectorInline as Os}from"@buoy-gg/shared-ui/web";var Wn=[];function $n(){return[]}function Mt(e=[]){return[...new Map(e.map(t=>[t.id,t])).values()]}function st(e,t){return e.filter(o=>{let i=o.slot||"both";return i==="both"||i===t})}function Gn(e,t){let o=t instanceof Set?t:new Set(t);return e.filter(i=>o.has(i.id))}import{FloatingTool as Pt,FloatingToolDivider as Kn,FloatingToolUserStatus as Ot,getBubbleAnchorPosition as so}from"@buoy-gg/shared-ui/web/floating";import{useState as Q,useEffect as De,useMemo as ct,useRef as dt,useCallback as ut}from"react";import{getDialLayout as ci,getAllIconPositions as di,getGridLineRotations as ui,getIconStaggerInputRange as pi,MAX_DIAL_SLOTS as je,DIAL_ICON_SIZE as gi,dialAnimationConfig as Do,getDialCSSKeyframesString as fi,getDialCSSAnimationStyles as mi,dialColors as B,dialStyles as x,withAlpha as Ro,floatingToolsColors as yi}from"@buoy-gg/floating-tools-react/web";import{persistentStorage as vo,monoFont as Ao,ToolBackground as bi,useToolBackground as hi}from"@buoy-gg/shared-ui/web";import{memo as Un}from"react";import{RasterLayer as jn,scatter as qn,useLoop as Yn,withBgAlpha as Xn}from"@buoy-gg/shared-ui/web";import{Fragment as si,jsx as Ue}from"react/jsx-runtime";var Jn=.94,Zn=6,Qn=2400,at=3,uo=16,ei=Array.from({length:at},(e,t)=>qn(22343^t*40503,uo*4)),ao=["#FFFFFF","#B3D9FF","#8CB3FF"],lo=Math.PI/3,co=14*Math.PI/180;function ti(e){let t=Math.min(5,Math.floor(e*6)),o=e*6-t;return t*lo+co/2+o*(lo-co)}function oi(e){return Math.min(Zn,1/(1-e*Jn))}function ni(e){let t=.15+.85*e*e;return e<.06?t*=e/.06:e>.94&&(t*=(1-e)/.06),Math.min(.7,t)}function ii(e){let t=e/at,o=[],i=12;for(let p=0;p<=i;p++)o.push(p/i);let n=(1-t)%1;n>.001&&n<1-.001&&o.push(n-1e-4,n+1e-4),o.sort((p,u)=>p-u);let r=[],a=[],d=[];for(let p of o){let u=t===0&&p===1?1:(p+t)%1;r.push(p),a.push(oi(u)),d.push(ni(u))}return{input:r,scale:a,opacity:d}}var ri=Array.from({length:at},(e,t)=>ii(t)),po=Un(function({size:t}){let o=Yn(Qn),i=t/2,n=[];for(let r=0;r<at;r++){let a=ei[r],d=ri[r],p=[];for(let u=0;u<uo;u++){let g=ti(a[u*4]),C=(.15+.85*Math.sqrt(a[u*4+1]))*.5*i,f=ao[Math.floor(a[u*4+3]*ao.length)%3],P=i+Math.cos(g)*C,I=i+Math.sin(g)*C,S=.6,b=S*2.4;p.push(Ue(H,{style:{position:"absolute",left:P-b/2,top:I-b/2,width:b,height:b,borderRadius:b/2,backgroundColor:Xn(f,.3)}},`${u}-h`),Ue(H,{style:{position:"absolute",left:P-S/2,top:I-S/2,width:S,height:S,borderRadius:S/2,backgroundColor:f}},u))}n.push(Ue(be.View,{style:{position:"absolute",left:0,top:0,width:t,height:t,opacity:o.interpolate({inputRange:d.input,outputRange:d.opacity}),transform:[{scale:o.interpolate({inputRange:d.input,outputRange:d.scale})}]},pointerEvents:"none",children:Ue(jn,{style:{width:t,height:t},raster:!1,children:p})},r))}return Ue(si,{children:n})});import{useEffect as ai,useState as yo}from"react";import{dialColors as Le,withAlpha as bo}from"@buoy-gg/floating-tools-react/web";import{ARROW_BOTTOM_OFFSET as go,ARROW_HEIGHT as fo,SPACING_GAP as Vl,getScreenCenterY as _l,calculateTooltipPosition as mo,calculateTargetPosition as Wl}from"@buoy-gg/shared-ui/web/floating";import{monoFont as ho}from"@buoy-gg/shared-ui/web";import{jsx as ze,jsxs as To}from"react/jsx-runtime";var So=!1;function li(){if(So||typeof document>"u")return;let e=document.createElement("style");e.textContent=`
3
+ @keyframes buoyOnboardPulse {
4
+ 0%, 100% { transform: scale(1); }
5
+ 50% { transform: scale(1.02); }
6
+ }
7
+ @keyframes buoyOnboardArrowBounce {
8
+ 0%, 100% { transform: translateY(0); }
9
+ 50% { transform: translateY(-8px); }
10
+ }
11
+ `,document.head.appendChild(e),So=!0}var Et=Le.accent;function lt({title:e,message:t,onDismiss:o,showArrow:i=!0}){let[n,r]=yo(!1),[a,d]=yo(!1);ai(()=>{li();let u=requestAnimationFrame(()=>r(!0));return()=>cancelAnimationFrame(u)},[]);let p={fontFamily:ho,textTransform:"uppercase"};return ze("div",{style:{position:"fixed",left:"50%",bottom:mo(),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:To("div",{style:{position:"relative",animation:n?"buoyOnboardPulse 3s ease-in-out infinite":"none"},children:[ze("div",{style:{position:"absolute",inset:-4,borderRadius:18,backgroundColor:"#FFFFFF",opacity:.06}}),To("div",{style:{position:"relative",maxWidth:280,backgroundColor:Le.dialBackground,borderRadius:16,border:`1px solid ${Le.dialBorder}`,padding:20,boxShadow:`0 0 20px ${bo(Le.dialShadow,.6)}`,display:"flex",flexDirection:"column",alignItems:"center",gap:8},children:[ze("span",{style:{...p,fontSize:16,fontWeight:900,letterSpacing:1,color:Et,textAlign:"center"},children:e}),ze("span",{style:{fontFamily:ho,fontSize:13,lineHeight:"20px",color:Le.centerText,textAlign:"center"},children:t}),ze("button",{onClick:o,onMouseDown:()=>d(!0),onMouseUp:()=>d(!1),onMouseLeave:()=>d(!1),style:{...p,marginTop:8,borderRadius:8,border:"none",backgroundColor:Et,padding:"10px 24px",fontSize:14,fontWeight:900,letterSpacing:1.5,color:"#000000",cursor:"pointer",opacity:a?.7:1,transform:a?"scale(0.96)":"scale(1)",transition:"transform 100ms ease, opacity 100ms ease"},children:"Got it!"})]}),i&&ze("div",{style:{position:"absolute",left:"50%",bottom:go,marginLeft:-12,width:0,height:0,borderLeft:"12px solid transparent",borderRight:"12px solid transparent",borderTop:`${fo}px solid ${Et}`,filter:`drop-shadow(0 0 10px ${bo(Le.dialShadow,.5)})`,animation:n?"buoyOnboardArrowBounce 1.6s ease-in-out infinite":"none"}})]})})}import{Fragment as xi,jsx as k,jsxs as Se}from"react/jsx-runtime";var Si={x:.5,y:.5},xo="@react_buoy_settings_tooltip_shown",wo=!1;function Ti(){if(wo||typeof document>"u")return;let e=document.createElement("style");e.textContent=fi(),document.head.appendChild(e),wo=!0}var Be=e=>1-Math.pow(1-e,3),kt=e=>e*e*e;function vi({icon:e,index:t,totalIcons:o,position:i,progress:n,onPress:r}){let[a,d]=Q(!1),[p,u]=Q(!1),g=!e.icon&&e.id.startsWith("empty-"),C=!g&&e.unavailable===!0,f=!g&&!C,{icons:P}=Do,I=pi(t,o),S=0;n<=I[1]?S=0:n<=I[2]?S=(n-I[1])/(I[2]-I[1]):S=1,S=Math.max(0,Math.min(1,S));let b=gi,D=P.pressIn.scale,$=S*(p?D:a?1.1:1),T=0;S<=0?T=0:S<=.3?T=S:T=.3+(S-.3)*(.7/.7);let O=i.x*S,F=i.y*S;return k("button",{role:"menuitem","aria-label":g?"Empty slot":e.name,"aria-disabled":!f,tabIndex:f?0:-1,onClick:f?r:void 0,onMouseEnter:()=>f&&d(!0),onMouseLeave:()=>{d(!1),u(!1)},onMouseDown:()=>f&&u(!0),onMouseUp:()=>u(!1),style:{position:"absolute",left:"50%",top:"50%",width:b,height:b,marginLeft:-b/2,marginTop:-b/2,display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",cursor:f?"pointer":"default",transform:`translate(${O}px, ${F}px) scale(${$})`,opacity:T,transition:a||p?"transform 100ms ease":"none",background:"none",border:"none",padding:0},children:g?k("div",{style:{width:x.emptySlot.dotSize,height:x.emptySlot.dotSize,borderRadius:x.emptySlot.dotSize/2,backgroundColor:B.emptyDotBackground,border:`${x.emptySlot.borderWidth}px solid ${B.emptyDotBorder}`}}):Se(xi,{children:[k("div",{style:{position:"absolute",width:`${x.icon.gradientBgSizePercent}%`,height:`${x.icon.gradientBgSizePercent}%`,borderRadius:x.icon.gradientBgBorderRadius,backgroundColor:"rgba(0, 0, 0, 0.2)",opacity:x.icon.gradientBgOpacity}}),k("div",{style:{position:"absolute",width:`${x.icon.innerGlowSizePercent}%`,height:`${x.icon.innerGlowSizePercent}%`,borderRadius:x.icon.innerGlowBorderRadius,backgroundColor:"rgba(255, 255, 255, 0.02)",opacity:x.icon.innerGlowOpacity}}),k("div",{style:{marginBottom:x.icon.wrapperMarginBottom,display:"flex",alignItems:"center",justifyContent:"center",fontSize:32,filter:a?"brightness(1.2)":"none"},children:e.icon}),k("span",{style:{fontSize:e.name.length>8?Math.max(x.icon.label.fontSize*.7,x.icon.label.fontSize*8/e.name.length):x.icon.label.fontSize,fontWeight:x.icon.label.fontWeight,fontFamily:x.icon.label.fontFamily,color:B.iconLabel,letterSpacing:x.icon.label.letterSpacing,marginTop:x.icon.label.marginTop,textTransform:"uppercase",whiteSpace:"nowrap"},children:e.name}),C&&k("span",{style:{fontSize:x.icon.label.fontSize-1,fontWeight:x.icon.label.fontWeight,fontFamily:x.icon.label.fontFamily,letterSpacing:x.icon.label.letterSpacing,color:yi.muted,textTransform:"uppercase",whiteSpace:"nowrap"},children:"Unavailable"})]})})}function Co({side:e,color:t}){return k("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(([i,n,r,a],d)=>k("line",{x1:i,y1:n,x2:r,y2:a,stroke:t,strokeWidth:2},d))})}function Io({side:e,disabled:t,onClick:o}){let[i,n]=Q(!1),r=t?B.emptyDotBorder:B.accent;return Se("button",{type:"button","aria-label":`${e==="prev"?"Previous":"Next"} dial page`,disabled:t,onClick:o,onMouseDown:()=>!t&&n(!0),onMouseUp:()=>n(!1),onMouseLeave:()=>n(!1),style:{display:"flex",alignItems:"center",gap:4,padding:"10px 16px",borderRadius:10,border:`1px solid ${B.dialBorder}`,backgroundColor:B.dialBackground,color:t?B.iconLabelMuted:B.centerText,fontSize:12,fontWeight:900,fontFamily:Ao,letterSpacing:1.5,textTransform:"uppercase",cursor:t?"default":"pointer",opacity:t?.4:1,boxShadow:t?"none":`0 0 8px ${Ro(B.dialShadow,.4)}`,transform:i?"scale(0.92)":"scale(1)",transition:"transform 100ms ease"},children:[e==="prev"&&k(Co,{side:"prev",color:r}),e==="prev"?"PREV":"NEXT",e==="next"&&k(Co,{side:"next",color:r})]})}function zt({icons:e,onClose:t,centerLabel:o="MENU",onCenterPress:i,settingsOpen:n=!1,hintsDisabled:r=!1}){let{id:a}=hi(),[d,p]=Q(0),[u,g]=Q(0),[C,f]=Q(0),[P,I]=Q(0),[S,b]=Q(0),[D,M]=Q(1),[$,T]=Q(!1),[O,F]=Q(!1),[w,E]=Q(!1),ee=dt(null),oe=dt(null),j=dt(null),se=dt(!1),{entrance:ae,exit:G,interaction:ne}=Do,Te=mi(),[ve,Ce]=Q(()=>({width:window.innerWidth,height:window.innerHeight}));De(()=>{let z=()=>Ce({width:window.innerWidth,height:window.innerHeight});return window.addEventListener("resize",z),()=>window.removeEventListener("resize",z)},[]);let V=ct(()=>ci({screenWidth:ve.width,maxCircleSize:Math.max(120,Math.min(320,ve.height-96))}),[ve]),pe=ct(()=>ui(),[]),Ee=ct(()=>di(je,V.iconRadius),[V.iconRadius]),[ge,Ie]=Q(0),le=Math.max(1,Math.ceil(e.length/je)),l=Math.min(ge,le-1),R=ct(()=>{let z=l*je,v=[...e.slice(z,z+je)];for(;v.length<je;)v.push({id:`empty-${v.length}`,name:"",icon:null,onPress:()=>{}});return v},[e,l]);De(()=>{Ti()},[]),De(()=>{let z=ae.backdrop.duration,v=ae.dial.rotation.duration,J=ae.centerButton.delay,K=ae.icons.delay,q=ae.icons.duration,Z=performance.now(),Y=fe=>{let W=fe-Z;p(Math.min(1,W/z));let c=Math.min(1,W/400),m=Be(c)*1.1;c>.7&&(m-=(c-.7)*.33),c>=1&&(m=1),g(Math.max(0,Math.min(1.05,m)));let A=Math.min(1,W/v);if(f(Be(A)*360),W>=J){let de=Math.min(1,(W-J)/300),$e=Be(de)*1.15;de>.6&&($e-=(de-.6)*.375),de>=1&&($e=1),I(Math.max(0,Math.min(1.05,$e)))}if(W>=K){let de=Math.min(1,(W-K)/q);b(Be(de))}let te=K+q;W<te?j.current=requestAnimationFrame(Y):(p(1),g(1),f(360),I(1),b(1),E(!0))};return j.current=requestAnimationFrame(Y),()=>{j.current&&cancelAnimationFrame(j.current)}},[]);let X=ut(()=>{if(se.current)return;se.current=!0,F(!0),j.current&&cancelAnimationFrame(j.current);let z=performance.now(),v=G.icons.duration,J=G.centerButton.duration,K=G.dialScale.duration,q=Math.max(J,K),Z=G.backdrop.duration,Y=fe=>{let W=fe-z;if(W<v){let A=kt(W/v);b(1-A),j.current=requestAnimationFrame(Y);return}let c=v;if(W<c+q){b(0);let A=Math.min(1,(W-c)/J),te=Math.min(1,(W-c)/K);I(1-kt(A)),g(1-kt(te)),j.current=requestAnimationFrame(Y);return}let m=c+q;if(W<m+Z){g(0),I(0);let A=(W-m)/Z;p(1-A),j.current=requestAnimationFrame(Y);return}p(0),t()};j.current=requestAnimationFrame(Y)},[G,t]);De(()=>{let z=document.activeElement,v=ee.current;return()=>{z?.isConnected&&(document.activeElement===document.body||v?.contains(document.activeElement))&&z.focus()}},[]),De(()=>{if(n)return;oe.current?.focus();let z=v=>{let J=ee.current;if(J){if(v.key==="Escape")v.preventDefault(),X();else if(v.key==="Tab"){let K=Array.from(J.querySelectorAll('button:not(:disabled):not([aria-disabled="true"]), [tabindex="0"]')).filter(Y=>Y.getClientRects().length>0),q=K[0],Z=K[K.length-1];(!J.contains(document.activeElement)||(v.shiftKey?document.activeElement===q:document.activeElement===Z))&&(v.preventDefault(),(v.shiftKey?Z:q)?.focus())}else if(["ArrowRight","ArrowDown","ArrowLeft","ArrowUp","Home","End"].includes(v.key)){let K=Array.from(J.querySelectorAll('[role="menuitem"]:not([aria-disabled="true"])')),q=K.indexOf(document.activeElement);if(q<0||!K.length)return;v.preventDefault();let Z=v.key==="Home"?0:v.key==="End"?K.length-1:(q+(v.key==="ArrowRight"||v.key==="ArrowDown"?1:-1)+K.length)%K.length;K[Z].focus()}}};return document.addEventListener("keydown",z),()=>document.removeEventListener("keydown",z)},[X,n]);let[ie,ot]=Q(!1);De(()=>{if(r)return;let z=!1,v=setTimeout(async()=>{let J=await vo.getItem(xo);!z&&!J&&ot(!0)},1200);return()=>{z=!0,clearTimeout(v)}},[r]);let _e=ut(()=>{ot(!1),vo.setItem(xo,"true")},[]);De(()=>{n&&ie&&_e()},[n,ie,_e]);let nt=ut(z=>{if(z.id.startsWith("empty-")||se.current)return;let[v,J]=ne.iconSelect.pulse,K=performance.now(),q=150,Z=Y=>{let fe=Y-K;if(fe<q){let W=Be(fe/q);M(1-(1-v.scale)*W),requestAnimationFrame(Z)}else if(fe<q*2){let W=Be((fe-q)/q);M(v.scale+(J.scale-v.scale)*W),requestAnimationFrame(Z)}else M(1)};requestAnimationFrame(Z),setTimeout(()=>{z.onPress(),X()},ne.iconSelect.actionDelay)},[ne.iconSelect,X]),We=ut(z=>{if(se.current)return;let v=Math.max(0,Math.min(z,le-1));v!==l&&Ie(v)},[le,l]),ke=V.buttonSize*x.centerButton.containerRatio,it=V.buttonSize*x.centerButton.borderRatio,It=V.buttonSize*x.centerButton.containerRatio/2+6,Dt=w&&!O;return Se("div",{ref:ee,role:"dialog","aria-label":"Dial Menu","aria-modal":"true",style:{position:"fixed",inset:0,zIndex:1e4},children:[k("button",{type:"button","aria-label":"Close dial menu",tabIndex:0,onClick:X,style:{position:"absolute",inset:0,border:0,padding:0,backgroundColor:B.dialBackdrop,opacity:d}}),Se("div",{style:{position:"absolute",left:"50%",marginLeft:-V.circleSize/2,bottom:80,width:V.circleSize,height:V.circleSize,borderRadius:"50%",backgroundColor:B.dialBackground,border:`${x.circle.borderWidth}px solid ${B.dialBorder}`,boxShadow:`0 0 ${x.circle.shadowRadius}px ${Ro(B.dialShadow,x.circle.shadowOpacity)}`,transform:`scale(${u}) rotate(${C}deg)`,opacity:u>.01?1:0,overflow:"hidden"},children:[k("div",{style:{position:"absolute",inset:0,borderRadius:"50%",backgroundColor:B.dialGradient1,opacity:x.gradientLayers[0].opacity}}),k("div",{style:{position:"absolute",inset:0,top:"30%",left:"30%",borderRadius:"50%",backgroundColor:B.dialGradient2,opacity:x.gradientLayers[1].opacity}}),k("div",{style:{position:"absolute",inset:0,top:"50%",left:"50%",borderRadius:"50%",backgroundColor:B.dialGradient3,opacity:x.gradientLayers[2].opacity}}),pe.map(z=>k("div",{style:{position:"absolute",top:"50%",left:0,right:0,height:x.grid.lineHeight,transform:`rotate(${z}deg)`,transformOrigin:"center"},children:["left","right"].map(v=>k("div",{style:{position:"absolute",top:0,[v]:0,width:`calc(50% - ${It}px)`,height:x.grid.lineHeight,backgroundColor:B.dialGridLine}},v))},z)),k("div",{"data-testid":"dial-background","data-background":a,style:{position:"absolute",inset:0,pointerEvents:"none"},children:a==="hyperspace"?k(po,{size:V.circleSize}):k(bi,{focus:Si})}),R.map((z,v)=>k(vi,{icon:z,index:v,totalIcons:R.length,position:Ee[v],progress:S,onPress:()=>nt(z)},v)),Se("div",{style:{position:"absolute",left:"50%",top:"50%",width:ke,height:ke,marginLeft:-ke/2,marginTop:-ke/2,display:"flex",alignItems:"center",justifyContent:"center",backgroundColor:B.hubHalo,borderRadius:V.buttonSize,overflow:"hidden",transform:`scale(${P*D})`,opacity:P>.01?1:0},children:[k("div",{style:{position:"absolute",inset:0,backgroundColor:B.dialGradient1,opacity:.5,borderRadius:V.buttonSize}}),k("div",{style:{position:"absolute",inset:0,top:"20%",left:"20%",backgroundColor:B.dialGradient2,opacity:.3,borderRadius:V.buttonSize}}),k("div",{style:{position:"absolute",inset:0,top:"40%",left:"40%",backgroundColor:B.dialGradient3,opacity:.2,borderRadius:V.buttonSize}}),k("div",{style:{width:it,height:it,borderRadius:V.buttonSize*x.centerButton.borderRadiusRatio,backgroundColor:B.hubFill,display:"flex",alignItems:"center",justifyContent:"center"},children:k("button",{ref:oe,type:"button","aria-label":n?"Close settings":"Open settings",disabled:!i,onClick:i,onMouseEnter:()=>T(!0),onMouseLeave:()=>T(!1),style:{border:0,padding:0,background:"transparent",width:V.buttonSize,height:V.buttonSize,borderRadius:V.buttonSize/2,display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",cursor:i?"pointer":"default",transform:$?`scale(${ne.centerHover.scale})`:"scale(1)",transition:`transform ${ne.centerHover.duration}ms ease`,animation:Dt&&!$?Te.pulse:"none"},children:n?Se("span",{style:{display:"flex",flexDirection:"column",alignItems:"center",fontSize:x.centerButton.text.fontSize-2,fontWeight:x.centerButton.text.fontWeight,fontFamily:x.centerButton.text.fontFamily,color:B.centerText,letterSpacing:x.centerButton.text.letterSpacing,textAlign:"center",textShadow:`0 0 4px ${B.centerTextGlow}`,textTransform:"uppercase",lineHeight:1.2},children:[k("span",{style:{marginBottom:-2},children:"CLOSE"}),k("span",{style:{marginTop:-2},children:"SETTINGS"})]}):k("span",{style:{fontSize:x.centerButton.text.fontSize,fontWeight:x.centerButton.text.fontWeight,fontFamily:x.centerButton.text.fontFamily,color:B.centerText,letterSpacing:x.centerButton.text.letterSpacing,textAlign:"center",textShadow:`0 0 4px ${B.centerTextGlow}`,textTransform:"uppercase"},children:o})})})]})]}),le>1&&Se("div",{style:{position:"absolute",left:"50%",marginLeft:-V.circleSize/2,top:"calc(100% - 64px)",width:V.circleSize,display:"flex",alignItems:"center",justifyContent:"space-between",opacity:Math.min(1,u),transform:`scale(${Math.min(1,u)})`},children:[k(Io,{side:"prev",disabled:l<=0,onClick:()=>We(l-1)}),Se("span",{style:{padding:"6px 12px",fontSize:13,fontWeight:900,fontFamily:Ao,letterSpacing:2,color:B.centerText,textShadow:`0 0 6px ${B.centerTextGlow}`},children:[String(l+1).padStart(2,"0"),Se("span",{style:{color:B.iconLabelMuted,textShadow:"none"},children:[" / ",String(le).padStart(2,"0")]})]}),k(Io,{side:"next",disabled:l>=le-1,onClick:()=>We(l+1)})]}),ie&&!n&&k(lt,{title:"Welcome to Buoy!",message:"Tap the center button to configure and add tools to your dial menu.",onDismiss:_e,showArrow:!1})]})}import{persistentStorage as Mo,devToolsStorageKeys as wi}from"@buoy-gg/shared-ui/web";import{recordUsage as Ci,pruneUsage as Ii}from"@buoy-gg/floating-tools-core/web";var Po=wi.dial.usage(),Fe={},Oo=!1,pt=null;function Eo(){return pt||(pt=(async()=>{try{let e=await Mo.getItem(Po);if(e){let t=JSON.parse(e);t&&typeof t=="object"&&(Fe=t)}}catch{}finally{Oo=!0}})(),pt)}Eo();function ko(e){return e.map((t,o)=>({id:t,index:o,lastUsed:Fe[t]?.lastUsed??0})).sort((t,o)=>o.lastUsed-t.lastUsed||t.index-o.index).map(({id:t})=>t)}async function zo(e){if(!e)return;Oo||await Eo();let t=Math.max(Date.now(),...Object.values(Fe).map(o=>o.lastUsed+1));Fe=Ii(Ci(Fe,e,t),t);try{await Mo.setItem(Po,JSON.stringify(Fe))}catch{}}import{useCallback as dr,useMemo as Zo}from"react";import{persistentStorage as ur}from"@buoy-gg/shared-ui/web";import{useState as re,useEffect as Ae,useCallback as yt,useMemo as ft}from"react";import{settingsEventBus as qe}from"@buoy-gg/floating-tools-core/web";import{useSyncExternalStore as Di}from"react";import{getRegisteredToolModule as Ri}from"@buoy-gg/shared-ui/web";var Ai=()=>()=>{},Mi=()=>null;function Lo(){let e=Ri("@buoy-gg/external-sync");return Di(e?.subscribeSyncStatus??Ai,()=>e?.getSyncStatus?.()??null,Mi)}import{SentryIcon as Fi,WifiCircuitIcon as Hi,ImageOverlayIcon as Ni,RenderCountIcon as Vi,Info as Bt,Layers as _i,ChevronRightIcon as No,ChevronDown as Vo,getStorageBackendType as Wi,getUseLicense as $i,persistentStorage as Me,Trash2 as Gi,CheckCircle2 as _o,LicenseEntryModal as Ki,BackgroundSwitcher as Ui,night as y,NightCard as Re,NightRows as Ft,NightSectionLabel as ji,NightFootnote as Wo,NightSwitch as $o,NightButton as Go,NightSegmented as qi,NightBadge as me,NightSeparator as Yi,monoFont as Ko}from"@buoy-gg/shared-ui/web";import{EnvIcon as Uo,StorageIcon as Xi,RoutesIcon as Ji,NetworkIcon as Zi,QueryIcon as Qi,HighlighterIcon as er,ReduxIcon as tr,EventsIcon as or}from"@buoy-gg/floating-tools-core/web";import Pi,{createContext as Oi,useContext as Ei}from"react";import{jsx as ki}from"react/jsx-runtime";var Bo=Oi({});function Fo({children:e,defaultFloatingTools:t,defaultDialTools:o}){let i=Pi.useMemo(()=>({defaultFloatingTools:t,defaultDialTools:o}),[t,o]);return ki(Bo.Provider,{value:i,children:e})}function Lt(){return Ei(Bo)}import zi from"react";import{toolTheme as Li}from"@buoy-gg/shared-ui/web";import{jsx as Ho}from"react/jsx-runtime";function Bi({label:e,size:t,color:o=Li.colors.text}){let i=Math.max(Array.from(e.replace(/[\uFE00-\uFE0F\u200D]/g,"")).length,1),n=i<=2?t:t*1.6,r=Math.max(7,Math.min(t*(i===1?.7:.62),n/(.62*i)));return Ho("span",{style:{display:"inline-flex",minWidth:t,maxWidth:n,height:t,alignItems:"center",justifyContent:"center",color:o,fontSize:r,fontWeight:800,letterSpacing:.5,whiteSpace:"nowrap",overflow:"hidden"},children:e})}function gt(e,t){return e==null?e:typeof e=="function"?zi.createElement(e,{slot:t.slot,size:t.size,state:t.state,actions:t.actions}):typeof e=="string"||typeof e=="number"?Ho(Bi,{label:String(e),size:t.size,color:t.color}):e}import{JsModal as nr,devToolsStorageKeys as Ht}from"@buoy-gg/shared-ui/web";import{useSafeAreaInsets as ir}from"@buoy-gg/shared-ui/web";import{Fragment as Ye,jsx as s,jsxs as N}from"react/jsx-runtime";var mt="@react_buoy_dev_tools_settings",rr=6,bt=e=>{let t=rr,o={};for(let[i,n]of Object.entries(e))n&&t>0?(o[i]=!0,t-=1):o[i]=!1;return o},sr=(e,t)=>{let{userStatus:o,environment:i,...n}=e,r=t?Object.entries(n).filter(([a])=>t.includes(a)):Object.entries(n);return{...Object.fromEntries(r),environment:i??!1}},Yo=(e,t,o)=>{if(!t)return e;let i={...e.dialTools,...t.dialTools??{}},n=o?.allowedDialKeys?Object.entries(i).filter(([a])=>o.allowedDialKeys?.includes(a)):Object.entries(i);return{dialTools:bt(Object.fromEntries(n)),floatingTools:sr({...e.floatingTools,...t.floatingTools??{}},o?.allowedFloatingKeys),globalSettings:{enableSharedModalDimensions:!1,expandableWindowControls:!0,...t.globalSettings??{}}}},ar=(e=[],t,o)=>{let i={},n={},r=new Set(t??[]),a=new Set(o??[]),d=!o||o.length===0;for(let p of e){let{id:u,slot:g="both"}=p;(g==="dial"||g==="both")&&(i[u]=d?!0:a.has(u)),(g==="row"||g==="both")&&(n[u]=r.has(u))}return{dialTools:bt(i),floatingTools:{...n,environment:r.has("environment")},globalSettings:{enableSharedModalDimensions:!1,expandableWindowControls:!0}}},Xo=({visible:e,onClose:t,onSettingsChange:o,initialSettings:i,availableApps:n=[],storage:r=Me,zIndex:a})=>{let{defaultFloatingTools:d,defaultDialTools:p}=Lt(),u=ft(()=>ar(n,d,p),[n,d,p]),g=ft(()=>Object.keys(u.dialTools),[u]),C=ft(()=>Object.keys(u.floatingTools).filter(c=>c!=="environment"),[u]),[f,P]=re(i||Xe||u),[I,S]=re(Nt??"floating"),[b,D]=re(Nt!==null),[M,$]=re(new Set),[T,O]=re(!1),[F,w]=re(!1);Ae(()=>{let c=requestAnimationFrame(()=>w(!0));return()=>cancelAnimationFrame(c)},[]);let E=Lo();Ae(()=>{(async()=>{try{let m=await Me.getItem(Ht.settings.activeTab());if(m&&["floating","settings","pro"].includes(m)){let A=m;Nt=A,S(te=>te===A?te:A)}}catch{}finally{D(!0)}})()},[]),Ae(()=>{b&&Me.setItem(Ht.settings.activeTab(),I).catch(c=>{console.warn("Failed to save settings active tab:",c)})},[I,b]);let oe=$i()?.(),j=oe?.isPro??!1,se=!j&&oe?.licenseKey?oe.error:null,ae=oe?.errorKind==="transport",[G,ne]=re(jo),[Te,ve]=re(!1),[Ce,V]=re(!1),[pe,Ee]=re(!1),[ge,Ie]=re([]),[le,l]=re(!1),R=ir(),X=At.get("window").height,ie=At.get("window").width,ot=Math.floor(X*.33),_e=Math.min(ie-32,400),nt=yt(async()=>{try{let c=await r.getItem(mt);if(c){let m=JSON.parse(c),A=Yo(u,m,{allowedDialKeys:g,allowedFloatingKeys:C});Xe=A,P(te=>qo(te,A)?te:A);return}Xe=u,P(m=>qo(m,u)?m:u)}catch(c){console.error("Failed to load dev tools settings:",c),P(u)}},[u,g,C,r]);Ae(()=>{nt()},[nt]),Ae(()=>{Wi().then(c=>{jo=c,ne(m=>m===c?m:c)})},[]),Ae(()=>{pe&&(l(!0),Me.getAllKeys().then(c=>{Ie(c.sort())}).catch(()=>{Ie([])}).finally(()=>{l(!1)}))},[pe]);let We=async c=>{try{let m={...c,dialTools:bt(c.dialTools)};await r.setItem(mt,JSON.stringify(m)),Xe=m,P(m),o?.(m),qe.emit(m)}catch(m){console.error("Failed to save dev tools settings:",m)}},ke=c=>{let m={...f,floatingTools:{...f.floatingTools,[c]:!f.floatingTools[c]}};We(m)},it=c=>{let m={...f,globalSettings:{...f.globalSettings,[c]:!f.globalSettings?.[c]}};We(m)},It=async()=>{ve(!0),V(!1);try{await Me.clear(),V(!0),P(u),r!==Me&&await r.setItem(mt,JSON.stringify(u)),o?.(u),qe.emit(u),setTimeout(()=>V(!1),2e3)}catch(c){console.error("Failed to clear storage:",c)}finally{ve(!1)}},Dt=yt(c=>{},[]),z=c=>{let m=n.find(A=>A.id===c);return m?.description?m.description:c==="environment"?"Environment badge.":""},v=c=>c==="environment"?"Env Badge":n.find(A=>A.id===c)?.name??c.toUpperCase().replace(/_/g," "),J=c=>{if(!F)return null;switch(c){case"query":return s(Qi,{size:18});case"env":return s(Uo,{size:18});case"sentry":return s(Fi,{size:18,color:"#9945FF"});case"storage":return s(Xi,{size:18,bgColor:y.color.surface});case"wifi":case"query-wifi-toggle":return s(Hi,{size:18,colorPreset:"green",strength:4,noBackground:!0});case"route-events":return s(Ji,{size:18,bgColor:y.color.surface});case"network":return s(Zi,{size:18});case"environment":return s(Uo,{size:18});case"debug-borders":return s(_i,{size:18,color:y.color.accent});case"highlight-updates":return s(Vi,{size:18,color:y.color.accent});case"highlight-updates-modal":return s(er,{size:18});case"redux":return s(tr,{size:18});case"image-overlay":return s(Ni,{size:18});case"events":return s(or,{size:18});case"zustand":try{let{ZustandIcon:m}=ro("@buoy-gg/zustand/web");return s(m,{size:18})}catch{return s(Bt,{size:18,color:y.color.textSecondary})}case"jotai":try{let{JotaiIcon:m}=ro("@buoy-gg/jotai/web");return s(m,{size:18})}catch{return s(Bt,{size:18,color:y.color.textSecondary})}default:{let m=n.find(A=>A.id===c);return m?.icon!=null?gt(m.icon,{slot:"row",size:18,color:m.color}):s(Bt,{size:18,color:y.color.textSecondary})}}},K=(c,m,A,te)=>{let de=z(c);return N(Ge,{activeOpacity:A?1:.7,onPress:()=>!A&&te(),accessibilityLabel:v(c),accessibilityRole:"button",style:[h.toolRow,A&&h.rowDisabled],children:[s(H,{style:h.toolIconSlot,children:J(c)}),N(H,{style:h.rowInfo,children:[N(_,{style:h.rowLabel,children:[v(c),A?" \xB7 max 6":""]}),de?s(_,{style:h.rowCaption,numberOfLines:1,children:de}):null]}),s($o,{value:m,disabled:A,onValueChange:()=>te()})]},c)},q=c=>{$(m=>{let A=new Set(m);return A.has(c)?A.delete(c):A.add(c),A})},Z=(c,m,A,te,de)=>{let $e=f.globalSettings?.[c]??!1,io=M.has(c);return N(H,{children:[N(Ge,{activeOpacity:.7,onPress:()=>q(c),accessibilityLabel:m,style:h.settingRow,children:[N(H,{style:h.rowInfo,children:[s(_,{style:h.rowLabel,children:m}),s(_,{style:h.rowCaption,numberOfLines:io?0:1,children:A})]}),s($o,{value:$e,onValueChange:()=>it(c)})]}),io&&N(H,{style:h.settingRowBody,children:[s(_,{style:h.settingRowBodyText,children:te}),s(_,{style:h.settingRowBodyHint,children:de})]})]},c)},Y=(c,m,A)=>N(H,{children:[s(ji,{children:c}),m,A]}),fe=G==="filesystem"?s(me,{label:"File System",tone:"accent"}):G==="asyncstorage"?s(me,{label:"Async Storage",tone:"warning"}):G==="localstorage"?s(me,{label:"Local Storage",tone:"accent"}):G==="memory"?s(me,{label:"Memory",tone:"danger"}):s(me,{label:"Loading\u2026",tone:"neutral"}),W=()=>N(H,{style:h.container,children:[N(Rt,{style:h.scrollContent,showsVerticalScrollIndicator:!1,contentContainerStyle:h.scrollContainer,children:[I==="floating"&&s(Ye,{children:Y("Floating Tools",s(Re,{glass:!0,children:s(Ft,{children:Object.entries(f.floatingTools).map(([c,m])=>K(c,m,!1,()=>ke(c)))})}),s(Wo,{children:"Tools switched on here appear in the floating bubble row."}))}),I==="settings"&&N(Ye,{children:[Y("Background",s(Re,{glass:!0,padded:!0,children:s(Ui,{embedded:!0})})),Y("Storage",N(Re,{glass:!0,children:[N(Ge,{activeOpacity:.7,onPress:()=>Ee(!pe),accessibilityLabel:"Storage Type",style:h.settingRow,children:[s(H,{style:h.rowInfo,children:s(_,{style:h.rowLabel,children:"Storage Type"})}),fe,pe?s(Vo,{size:16,color:y.color.textTertiary}):s(No,{size:16,color:y.color.textTertiary})]}),pe&&N(Ye,{children:[N(H,{style:h.settingRowBody,children:[s(_,{style:h.settingRowBodyText,children:G==="filesystem"?"Settings persist independently and survive AsyncStorage.clear() calls during logout.":G==="asyncstorage"?"Settings may be lost if AsyncStorage is cleared during logout.":G==="localstorage"?"Settings are saved in this browser. Clearing site data removes them.":G==="memory"?"Settings are stored in memory only and will be lost on app restart.":"Checking storage backend\u2026"}),G==="asyncstorage"&&s(_,{style:[h.settingRowBodyText,h.bodyWarning],children:"Install expo-file-system to persist settings through logout flows."}),G==="memory"&&s(_,{style:[h.settingRowBodyText,h.bodyDanger],children:"No persistent storage available \u2014 install expo-file-system (best) or @react-native-async-storage/async-storage."})]}),s(Yi,{}),N(H,{style:h.storageExpanded,children:[N(H,{style:h.storageExpandedHeader,children:[s(_,{style:h.storageExpandedTitle,children:"SAVED SETTINGS"}),s(_,{style:h.storageExpandedCount,children:le?"\u2026":`${ge.length} keys`})]}),le?s(_,{style:h.storageKeyEmpty,children:"Loading\u2026"}):ge.length===0?s(_,{style:h.storageKeyEmpty,children:"No settings saved yet"}):s(Rt,{style:h.storageKeysList,nestedScrollEnabled:!0,showsVerticalScrollIndicator:!0,children:ge.map(c=>s(H,{style:h.storageKeyItem,children:s(_,{style:h.storageKeyText,numberOfLines:1,children:c.replace("@react_buoy_","")})},c))})]}),s(H,{style:h.cardButtonWrap,children:s(Go,{label:Ce?"Cleared":Te?"Clearing\u2026":"Clear All Settings",variant:Ce?"secondary":"destructive",size:"md",disabled:Te,onPress:It,icon:Ce?s(_o,{size:15,color:y.color.accent}):s(Gi,{size:15,color:Te?y.color.textTertiary:y.color.danger})})})]})]})),E&&E.state!=="idle"&&Y("Desktop Sync",N(Re,{glass:!0,children:[N(Ge,{activeOpacity:.7,onPress:()=>q("desktopSync"),accessibilityLabel:"Buoy Desktop",style:h.settingRow,children:[s(H,{style:h.rowInfo,children:s(_,{style:h.rowLabel,children:"Buoy Desktop"})}),E.state==="connected"?s(me,{label:"Connected",tone:"accent"}):E.state==="connecting"?s(me,{label:"Connecting\u2026",tone:"neutral"}):s(me,{label:"Retrying",tone:"warning"}),M.has("desktopSync")?s(Vo,{size:16,color:y.color.textTertiary}):s(No,{size:16,color:y.color.textTertiary})]}),M.has("desktopSync")&&N(H,{style:h.settingRowBody,children:[N(_,{style:h.settingRowBodyText,children:[E.state==="connected"?"Streaming tool data to Buoy Desktop at ":"Trying to reach Buoy Desktop at ",s(_,{style:h.footnoteMono,children:E.targetURL??"(unknown URL)"}),E.state!=="connected"&&" \u2014 is the desktop app running? Override with the externalSync socketURL option if it runs elsewhere."]}),E.state==="retrying"&&E.lastError&&N(_,{style:[h.settingRowBodyText,h.bodyWarning],children:["Last error: ",E.lastError]})]})]})),Y("Modal Behavior",s(Re,{glass:!0,children:N(Ft,{children:[Z("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."),he.OS!=="web"?Z("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]})}))]}),I==="pro"&&N(Ye,{children:[Y("License",s(Re,{glass:!0,children:N(H,{style:h.settingRow,children:[s(H,{style:h.rowInfo,children:s(_,{style:h.rowLabel,children:"License Status"})}),s(H,{testID:"buoy-settings-license-status",accessibilityLabel:j?"License: Active":"License: Free",children:j?s(me,{label:"Active",tone:"accent"}):s(me,{label:"Free",tone:"neutral"})})]})}),s(Wo,{children:j?"You have full access to all Buoy DevTools features.":se?ae?`Couldn't reach the license server (${se}). A VPN or corporate proxy can block buoy.gg \u2014 turn it off and reload. Your key hasn't been rejected.`:`License check failed: ${se}.`:"Upgrade to Pro to unlock all features and support development."})),!j&&N(Ye,{children:[Y("Pro Features",s(Re,{glass:!0,children:s(Ft,{children:["Advanced Settings","Priority Support"].map(c=>N(H,{style:h.featureRow,children:[s(_o,{size:16,color:y.color.accent}),s(_,{style:h.rowLabel,children:c})]},c))})})),s(Go,{label:"Upgrade to Pro",variant:"primary",size:"lg",onPress:()=>O(!0)})]})]})]}),s(Ki,{visible:T,onClose:()=>O(!1),onSuccess:()=>O(!1)})]});return s(nr,{visible:e,onClose:t,zIndex:a,variant:"night",header:{showToggleButton:!1,customContent:s(H,{style:h.headerRow,children:s(qi,{glass:!0,tabs:[{key:"floating",label:"Floating"},{key:"settings",label:"Settings"},{key:"pro",label:"Pro"}],activeKey:I,onChange:c=>S(c)})})},initialMode:"bottomSheet",onModeChange:Dt,persistenceKey:Ht.settings.root(),enablePersistence:!0,maxHeight:X-R.top,initialHeight:ot,initialFloatingPosition:{x:(ie-_e)/2,y:R.top+20},enableGlitchEffects:!0,children:W()})},lr={dialTools:{},floatingTools:{environment:!1},globalSettings:{enableSharedModalDimensions:!1}},cr=(e,t)=>{let o=new Set(e??[]),i=new Set(t??[]),n={};for(let a of i)n[a]=!0;let r={environment:o.has("environment")};for(let a of o)a!=="environment"&&(r[a]=!0);return{dialTools:bt(n),floatingTools:r,globalSettings:{enableSharedModalDimensions:!1}}},Xe=null,Nt=null,jo=null,qo=(e,t)=>JSON.stringify(e)===JSON.stringify(t);qe.addListener(e=>{e&&(Xe=e)});var Jo=()=>{let{defaultFloatingTools:e,defaultDialTools:t}=Lt(),o=ft(()=>!e&&!t?lr:cr(e,t),[e,t]),[i,n]=re(o),r=yt(async()=>{try{let d=await Me.getItem(mt);if(d){let p=JSON.parse(d),u=Yo(o,p);n(u);return}n(o)}catch(d){console.error("Failed to load dev tools settings:",d),n(o)}},[o]);Ae(()=>{r();let d=qe.addListener(p=>{try{p&&n(p)}catch{}});return()=>{d()}},[r]);let a=yt(()=>{r()},[r]);return{settings:i,refreshSettings:a}},h=rt.create({container:{flex:1,backgroundColor:"transparent"},headerRow:{flexDirection:"row",alignItems:"center",paddingLeft:y.gutter,paddingRight:y.gutter,paddingBottom:8},scrollContent:{flex:1},scrollContainer:{paddingHorizontal:y.gutter,paddingTop:8,paddingBottom:24,gap:y.groupGap},toolRow:{flexDirection:"row",alignItems:"center",gap:12,paddingHorizontal:y.rowPadH,paddingVertical:12},settingRow:{flexDirection:"row",alignItems:"center",gap:10,paddingHorizontal:y.rowPadH,paddingVertical:y.rowPadV,minHeight:52},featureRow:{flexDirection:"row",alignItems:"center",gap:10,paddingHorizontal:y.rowPadH,paddingVertical:12},rowDisabled:{opacity:.4},toolIconSlot:{width:24,alignItems:"center"},rowInfo:{flex:1,gap:2},rowLabel:{color:y.color.text,fontSize:y.font.row,fontWeight:"500"},rowCaption:{color:y.color.textTertiary,fontSize:y.font.label},settingRowBody:{paddingHorizontal:y.rowPadH,paddingBottom:y.rowPadV,gap:6},settingRowBodyText:{color:y.color.textSecondary,fontSize:y.font.caption,lineHeight:y.font.caption*1.45},settingRowBodyHint:{color:y.color.textTertiary,fontSize:y.font.caption,lineHeight:y.font.caption*1.45},bodyWarning:{color:y.color.warning},bodyDanger:{color:y.color.danger},cardButtonWrap:{paddingHorizontal:y.cardPad,paddingTop:10,paddingBottom:y.cardPad},storageExpanded:{paddingHorizontal:y.rowPadH,paddingVertical:12,gap:8},storageExpandedHeader:{flexDirection:"row",alignItems:"center"},storageExpandedTitle:{flex:1,color:y.color.textSecondary,fontSize:y.font.micro,fontWeight:"600",letterSpacing:.5},storageExpandedCount:{color:y.color.textTertiary,fontSize:y.font.micro},storageKeysList:{maxHeight:150},storageKeyItem:{backgroundColor:y.color.glassElevated,borderRadius:y.radius.segment,paddingHorizontal:10,paddingVertical:7,marginBottom:4},storageKeyText:{color:y.color.textSecondary,fontSize:y.font.micro,fontFamily:Ko},storageKeyEmpty:{color:y.color.textTertiary,fontSize:y.font.caption,fontStyle:"italic"},footnoteMono:{fontFamily:Ko,fontSize:y.font.label,color:y.color.textSecondary}});import{jsx as Qo}from"react/jsx-runtime";var pr=[];function Vt({visible:e,onClose:t,availableTools:o=pr,defaultFloatingTools:i,defaultDialTools:n,storage:r=ur,onSettingsChange:a}){let d=Zo(()=>({getItem:async g=>r.getItem(g),setItem:async(g,C)=>r.setItem(g,C)}),[r]),p=Zo(()=>o.map(g=>({...g,name:g.name??g.id,icon:typeof g.icon=="function"?C=>g.icon(C.size):g.icon})),[o]),u=dr(g=>{a?.(g)},[a]);return Qo(Fo,{defaultFloatingTools:i,defaultDialTools:n,children:Qo(Xo,{visible:e,onClose:t,zIndex:11e3,availableApps:p,storage:d,onSettingsChange:u})})}import{persistentStorage as dn}from"@buoy-gg/shared-ui/web";import{createContext as wr,useCallback as xe,useContext as Cr,useEffect as Wt,useMemo as Ir,useRef as Qe,useState as un}from"react";var en=(e,t,o)=>{if(t.singleton){let n=e.find(r=>r.id===t.id);if(n){let r=n.minimized??!1;return{instanceId:n.instanceId,wasMinimized:r,apps:[...e.filter(a=>a.instanceId!==n.instanceId),{...n,minimized:!1}]}}}let i=o();return{instanceId:i,wasMinimized:!1,apps:[...e,{...t,instanceId:i}]}};import{createContext as gr,useCallback as tn,useContext as fr,useEffect as vt,useMemo as mr,useRef as rn,useState as ht}from"react";import{JsModal as yr,ModalHeader as Je,HeaderSearchButton as br,TickProvider as hr,devToolsStorageKeys as on,buoyColors as nn,gameUIColors as _t}from"@buoy-gg/shared-ui/web";import{jsx as ue,jsxs as Tt}from"react/jsx-runtime";var Ze=()=>{},Sr={search:"",isSearchActive:!1,clearSearch:Ze,close:Ze,minimize:Ze,showToast:Ze,setHeaderOverride:Ze},sn=gr(null);function an(){return fr(sn)??Sr}function Tr(e,t){let{setHeaderOverride:o}=an();vt(()=>(o(e),()=>o(null)),t)}var ln=2200,vr={success:_t.success,error:_t.error,info:_t.info};function xr({message:e,type:t,nonce:o}){let i=rn(new be.Value(0)).current;vt(()=>{i.setValue(0),be.sequence([be.timing(i,{toValue:1,duration:150,useNativeDriver:!0}),be.delay(ln-450),be.timing(i,{toValue:0,duration:300,useNativeDriver:!0})]).start()},[o,i]);let n=vr[t];return Tt(be.View,{pointerEvents:"none",style:[St.toast,{opacity:i,borderColor:n+"60"}],children:[ue(H,{style:[St.toastDot,{backgroundColor:n}]}),ue(_,{style:St.toastText,numberOfLines:2,children:e})]})}function cn({app:e,config:t,visible:o,zIndex:i,onClose:n,onMinimize:r,initialModalState:a,enableSharedModalDimensions:d,bodyProps:p}){let u=e.component,[g,C]=ht(!1),[f,P]=ht(""),[I,S]=ht(null),[b,D]=ht(null),M=rn(null),$=tn(()=>{C(!1),P("")},[]),T=tn((ae,G="info")=>{M.current&&clearTimeout(M.current),D(ne=>({message:ae,type:G,nonce:(ne?.nonce??0)+1})),M.current=setTimeout(()=>D(null),ln)},[]);vt(()=>()=>{M.current&&clearTimeout(M.current)},[]);let O=mr(()=>({search:g?f:"",isSearchActive:g,clearSearch:$,close:n,minimize:()=>r(),showToast:T,setHeaderOverride:S,instanceId:e.instanceId}),[f,g,$,n,r,T,e.instanceId]),F=I?.title??t.title??e.title??e.id,w=I?.subtitle??t.subtitle,E=I?.onBack,ee=I?.actions??t.headerActions,oe=I?.searchable??t.searchable;vt(()=>{!oe&&g&&$()},[oe,g,$]);let j=d?on.modal.root():on.custom(e.id).modal(),se=Tt(Je,{children:[E&&!g&&ue(Je.Navigation,{onBack:E}),g?ue(Je.Search,{value:f,onChangeText:P,onCancel:$,placeholder:t.searchPlaceholder,testID:`tool-search-field-${e.id}`}):ue(Je.Content,{title:F,subtitle:w}),Tt(Je.Actions,{children:[!g&&ee,oe&&!g&&ue(br,{variant:"chip",testID:`tool-search-${e.id}`,onPress:()=>C(!0)})]})]});return ue(sn.Provider,{value:O,children:ue(yr,{visible:o,onClose:n,onBack:E,onMinimize:r,initialModalState:a,zIndex:i,persistenceKey:j,enablePersistence:!0,initialMode:t.initialMode??"bottomSheet",header:{customContent:se,showToggleButton:!0},disableScrollWrapper:!0,styles:{},children:Tt(H,{style:St.bodyRoot,children:[ue(hr,{children:ue(u,{...p})}),b&&ue(xr,{message:b.message,type:b.type,nonce:b.nonce})]})})})}var St=rt.create({bodyRoot:{flex:1,minHeight:0,backgroundColor:"transparent"},toast:{position:"absolute",bottom:16,alignSelf:"center",flexDirection:"row",alignItems:"center",gap:8,maxWidth:"86%",backgroundColor:nn.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:nn.text}});import{Fragment as zr,jsx as ye}from"react/jsx-runtime";var gn=wr(null),pn="@react_buoy_open_apps",$t=44,Dr=12,Rr=100,Ar=16,Mr=e=>({x:window.innerWidth-$t-Ar,y:window.innerHeight-Rr-$t-e*($t+Dr)}),Gt=({children:e})=>{let[t,o]=un([]),[i,n]=un(!1),r=Qe([]),a=Qe(null),d=Qe(!1),p=Qe(!1),u=Qe(!1),g=xe(T=>{let O="";return o(F=>{let{apps:w,instanceId:E}=en(F,T,()=>`${T.id}-${Date.now()}-${Math.random().toString(36).slice(2)}`);return O=E,w}),O},[]),C=xe(()=>{if(d.current||!p.current||!u.current)return;d.current=!0;let T=a.current;if(!T||T.length===0){n(!0);return}a.current=null,T.forEach(({id:O,minimized:F})=>{let w=r.current.find(E=>E.id===O);if(w&&w.component){let E=gt(w.icon,{slot:"dial",size:20,color:w.color});g({id:w.id,title:w.name,component:w.component,props:w.props,modal:w.modal,launchMode:w.launchMode||"self-modal",singleton:w.singleton??!0,icon:E,color:w.color,minimized:F})}}),n(!0)},[g]);Wt(()=>{let T=!1;return(async()=>{try{let F=await dn.getItem(pn);if(T)return;if(F){let w=JSON.parse(F),E;Array.isArray(w)&&w.length>0&&(typeof w[0]=="string"?E=w.map(ee=>({id:ee,minimized:!1})):E=w.filter(ee=>typeof ee=="object"&&ee!==null&&typeof ee.id=="string"),E.length&&(a.current=E))}}catch{}T||(p.current=!0,C())})(),()=>{T=!0}},[C]),Wt(()=>{if(!i)return;let T=t.map(O=>({id:O.id,minimized:O.minimized??!1}));dn.setItem(pn,JSON.stringify(T))},[t,i]);let f=xe(T=>{r.current=T,u.current=!0,C()},[C]),P=xe(T=>{o(O=>O.length?T?O.filter(F=>F.instanceId!==T):O.slice(0,-1):O)},[]),I=xe(()=>o([]),[]),S=xe((T,O)=>{o(F=>F.map(w=>w.instanceId===T?{...w,minimized:!0,restoreState:O}:w))},[]),b=xe((T,O)=>{o(F=>F.map(w=>w.instanceId===T?{...w,minimized:!1,restoreState:O??w.restoreState}:w))},[]),D=xe(T=>t.find(F=>F.instanceId===T)?.minimized??!1,[t]),M=t.some(T=>T.launchMode!=="toggle-only"&&!T.minimized);Wt(()=>{if(!M)return;let T=O=>{if(O.key!=="Escape"||O.defaultPrevented)return;let F=[...t].reverse().find(w=>w.launchMode!=="toggle-only"&&!w.minimized);F&&P(F.instanceId)};return window.addEventListener("keydown",T),()=>window.removeEventListener("keydown",T)},[M,P,t]);let $=Ir(()=>({openApps:t,isAnyOpen:M,open:g,close:P,closeAll:I,registerApps:f,minimize:S,restore:b,isMinimized:D}),[t,M,g,P,I,f,S,b,D]);return ye(gn.Provider,{value:$,children:e})},He=()=>{let e=Cr(gn);return e||{openApps:[],isAnyOpen:!1,open:()=>"",close:()=>{},closeAll:()=>{},registerApps:()=>{},minimize:()=>{},restore:()=>{},isMinimized:()=>!1}},Pr=9e3,Or={position:"fixed",inset:0,backgroundColor:"rgba(0,0,0,0.28)",display:"flex",alignItems:"center",justifyContent:"center"},Er={maxHeight:"90%",width:"94%",borderRadius:12,backgroundColor:"white",overflow:"hidden"},kr=({app:e,zIndex:t,onClose:o,onMinimize:i,minimizeTargetPosition:n,enableSharedModalDimensions:r})=>{let a=e.component,d=!e.minimized,p={...e.props??{},...r?{enableSharedModalDimensions:!0}:{}};return e.modal&&(!e.launchMode||e.launchMode==="self-modal")?ye(cn,{app:e,config:e.modal,visible:d,zIndex:t,onClose:o,onMinimize:i,initialModalState:e.restoreState,enableSharedModalDimensions:r,bodyProps:p}):e.launchMode==="self-modal"?ye(a,{...p,visible:d,onClose:o,onRequestClose:o,onMinimize:i,minimizeTargetPosition:n,instanceId:e.instanceId,zIndex:t,initialModalState:e.restoreState}):e.launchMode==="inline"?d?ye("div",{style:{position:"fixed",inset:0,zIndex:t,pointerEvents:"none"},children:ye(a,{...p,onClose:o,onMinimize:i,minimizeTargetPosition:n,instanceId:e.instanceId})}):null:ye("div",{style:{...Or,zIndex:t,display:d?"flex":"none"},children:ye("div",{style:Er,children:ye(a,{...p,onClose:o,onMinimize:i,minimizeTargetPosition:n,instanceId:e.instanceId})})})},Kt=()=>{let{openApps:e,close:t,minimize:o}=He(),{settings:i}=Jo(),n=e.filter(d=>d.launchMode!=="toggle-only");if(n.length===0)return null;let r=n.filter(d=>d.minimized).length,a=so()??Mr(r);return ye(zr,{children:n.map((d,p)=>ye(kr,{app:d,zIndex:Pr+p,onClose:()=>t(d.instanceId),onMinimize:u=>o(d.instanceId,u),enableSharedModalDimensions:i.globalSettings?.enableSharedModalDimensions===!0,minimizeTargetPosition:a},d.instanceId))})};import{useCallback as Lr,useEffect as jt,useRef as Br,useState as fn,useSyncExternalStore as In}from"react";import{persistentStorage as mn,getToolAttention as qt,subscribeToolAttention as Dn}from"@buoy-gg/shared-ui/web";import{jsx as ce,jsxs as xt}from"react/jsx-runtime";function Fr(e){return In(Dn,()=>qt(e),()=>qt(e))}var Rn={needsInput:"#FF8329",done:"#20C997",failed:"#FF3B30"},yn={needsInput:3,failed:2,done:1},bn=new Map;function hn(e){let t=null;for(let i of e?e.split("|"):[]){let n=qt(i);n&&(!t||yn[n.kind]>yn[t.kind])&&(t=n)}let o=bn.get(e);return o&&t&&o.kind===t.kind&&o.label===t.label?o:!o&&!t?null:(bn.set(e,t),t)}function Hr(e){let t=e.join("|");return In(Dn,()=>hn(t),()=>hn(t))}var Sn=28,Yt=32,Ut=6,Tn=8,vn=24,xn="@react_buoy_minimized_stack_expanded",Nr=80,wn=2e3,Vr=6e3,_r="#1A1A1A",et="#888888";function Cn({down:e=!1}){return ce("svg",{width:12,height:12,viewBox:"0 0 24 24","aria-hidden":"true",style:{transform:e?"rotate(180deg)":void 0},children:ce("path",{d:"M18 15l-6-6-6 6",fill:"none",stroke:et,strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})})}function Wr({id:e,title:t,icon:o,index:i,onPress:n}){let r=Fr(e),a=Br(null);return jt(()=>{let d=!0,p,u=()=>{a.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:Nr,easing:"linear"})},g=C=>{let f=C?500+Math.random()*1500+i*200:wn+Math.random()*(Vr-wn)+i*300;p=setTimeout(()=>{d&&(u(),g(!1))},f)};return g(!0),()=>{d=!1,clearTimeout(p)}},[i]),xt("button",{type:"button","aria-label":r?`${t} \u2014 ${r.label}. Restore`:`Restore ${t}`,onClick:n,style:{width:Yt,height:Yt,display:"flex",alignItems:"center",justifyContent:"center",background:"none",border:"none",padding:0,cursor:"pointer",position:"relative"},children:[ce("div",{ref:a,style:{display:"flex",alignItems:"center",justifyContent:"center"},children:o}),r?ce("span",{"aria-hidden":!0,"data-testid":`buoy-dock-badge-${e}-${r.kind}`,style:{position:"absolute",top:0,right:0,minWidth:12,height:12,borderRadius:6,padding:"0 2px",boxSizing:"border-box",background:Rn[r.kind],border:"1.5px solid #0C0C0C",color:"#000",fontSize:8,fontWeight:800,lineHeight:"9px",display:"flex",alignItems:"center",justifyContent:"center"},children:r.kind==="needsInput"?"!":""}):null]})}function An({containerWidth:e=32}){let{openApps:t,restore:o}=He(),i=t.filter(f=>f.minimized&&f.launchMode!=="toggle-only"),[n,r]=fn(!1),[a,d]=fn(!1),p=Hr(i.map(f=>f.id));jt(()=>{let f=!1;return(async()=>{let I=await mn.getItem(xn);!f&&I==="true"&&r(!0),f||d(!0)})(),()=>{f=!0}},[]),jt(()=>{a&&mn.setItem(xn,n?"true":"false")},[n,a]);let u=Lr(f=>{o(f)},[o]);if(i.length===0)return null;let g=Tn+i.length*Yt+(i.length-1)*Ut+Ut+vn+4,C={backgroundColor:_r,borderTopLeftRadius:6,borderTopRightRadius:6,borderTop:`1px solid ${et}66`,borderLeft:`1px solid ${et}66`,borderRight:`1px solid ${et}66`,borderBottom:"none",boxSizing:"border-box"};return xt("div",{style:{height:Sn,overflow:"visible",position:"relative"},children:[ce("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?g:0,opacity:n?1:0,overflowY:"auto",overflowX:"hidden",transition:"height 200ms ease, opacity 200ms ease",pointerEvents:n?"auto":"none",...C},children:xt("div",{style:{height:g,display:"flex",flexDirection:"column",alignItems:"center",paddingTop:Tn,gap:Ut,boxSizing:"border-box"},children:[[...i].reverse().map((f,P)=>ce(Wr,{id:f.id,title:f.title||f.id,icon:f.icon??ce("span",{style:{color:"#fff",fontSize:13},children:(f.title||f.id).slice(0,1).toUpperCase()}),index:P,onPress:()=>u(f.instanceId)},f.instanceId)),ce("button",{type:"button","aria-label":"Collapse",onClick:()=>r(!1),style:{width:"100%",height:vn,marginTop:3,display:"flex",alignItems:"center",justifyContent:"center",background:"none",border:"none",cursor:"pointer",padding:0},children:ce(Cn,{down:!0})})]})}),xt("button",{type:"button","aria-label":`Show ${i.length} minimized tools`,tabIndex:n?-1:0,"aria-hidden":n,onClick:()=>r(!0),style:{position:"absolute",bottom:0,left:0,width:e,height:Sn,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",...C},children:[ce(Cn,{}),p?ce("span",{"aria-hidden":!0,"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:Rn[p.kind],border:"1.5px solid #0C0C0C",color:"#000",fontSize:8,fontWeight:800,lineHeight:"9px",display:"flex",alignItems:"center",justifyContent:"center"},children:p.kind==="needsInput"?"!":""}):null,i.length>1&&ce("span",{style:{fontSize:9,fontWeight:600,color:et,marginLeft:1},children:i.length})]})]})}import{registerToolModules as jr}from"@buoy-gg/shared-ui/web";import{createElement as $r}from"react";function Xt(e){let t=e.icon;return{...e,icon:typeof t=="function"?o=>$r(t,{size:o,slot:e.slot??"both",color:e.color}):()=>t}}import{createContext as Gr,useContext as Kr,useState as Mn,useMemo as Pn}from"react";import{jsx as Ur}from"react/jsx-runtime";var On=Gr(null);function Jt({children:e}){let[t,o]=Mn(!1),[i,n]=Mn(!1),r=Pn(()=>t||i,[t,i]),a=Pn(()=>({isDialOpen:t,isToolOpen:i,isDevToolsActive:r,setDialOpen:o,setToolOpen:n}),[t,i,r]);return Ur(On.Provider,{value:a,children:e})}function tt(){let e=Kr(On);return e||{isDialOpen:!1,isToolOpen:!1,isDevToolsActive:!1,setDialOpen:()=>{},setToolOpen:()=>{}}}import*as qr from"@buoy-gg/license/web";import*as Yr from"@buoy-gg/shared-ui/web";import*as Xr from"@buoy-gg/shared-ui/web/dataViewer";function Zt(e){jr({core:{useDevToolsVisibility:tt},license:qr,"shared-ui":Yr,"shared-ui/dataViewer":Xr,...e});let t=new Set;return Object.values(e).flatMap(o=>Object.entries(o).flatMap(([i,n])=>!i.endsWith("Preset")||!n||typeof n.id!="string"||!n.component||t.has(n.id)?[]:(t.add(n.id),[Xt(n)])))}import{useEffect as oo,useMemo as Bn,useRef as gs}from"react";import{LicenseManager as fs,useLicense as ms}from"@buoy-gg/license/web";import{registerToolAdapters as ys}from"@buoy-gg/shared-ui/web";function Qt(e){return typeof e=="object"&&e!==null?e:void 0}function En({isDevelopment:e,isLicensed:t,externalSync:o,isAvailable:i}){return o===!1||!i?!1:e?!0:t&&Qt(o)?.enableInRelease===!0}import{useEffect as Jr,useMemo as Zr,useState as Qr}from"react";import{devToolsStorageKeys as es,persistentStorage as ts}from"@buoy-gg/shared-ui/web";var os=8;function ns(){let e="";for(;e.length<os;)e+=(Math.random()*16|0).toString(16);return e}function is(e){return e.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/(^-|-$)/g,"")}function rs({appName:e,hardwareName:t,platform:o,installId:i,deviceId:n}){let r=is(e??"buoy")||"buoy",a=e??"Buoy Device",d=t?.trim()||o;return n?{deviceId:n,deviceName:`${a} (${d})`}:{deviceId:`${r}-${o}-${i}`,deviceName:`${a} (${d} \xB7 ${i.slice(-4)})`}}function ss(){let e=globalThis;try{return e.sessionStorage??null}catch{return null}}async function as({platform:e=he.OS,store:t,mint:o=ns}={}){let i=es.sync.deviceId(),n=t===void 0?e==="web"?ss():ts:t;if(!n)return o();try{let r=await n.getItem(i);if(r&&r.length>0)return r;let a=o();return await n.setItem(i,a),a}catch{return o()}}var eo=null;function ls(){return eo||(eo=as()),eo}function kn(e,t){let o=e?.deviceId,i=e?.deviceName,n=t.loadId??ls,r=t.platform??he.OS,[a,d]=Qr(null);return Jr(()=>{if(o)return;let p=!1;return n().then(u=>{p||d(u)}),()=>{p=!0}},[o,n]),Zr(()=>{if(!o&&!a)return null;let p=rs({appName:t.appName,hardwareName:t.hardwareName,platform:r,installId:a??"",deviceId:o});return i?{...p,deviceName:i}:p},[o,i,a,t.appName,t.hardwareName,r])}import{getDevServerOrigin as cs,resolveReloadStrategy as ds,scheduleReloadApp as us}from"@buoy-gg/shared-ui/web";var zn=Date.now(),Ln=cs(),ps={platform:he.OS,isTV:he.isTV===!0,isTVOS:he.isTVOS===!0},to={version:3,getSnapshot:()=>{let e=ds("auto");return{startedAt:zn,devServerOrigin:Ln,device:ps,reload:{available:e!==null,strategy:e}}},subscribe:e=>()=>{},actions:{ping:()=>({ok:!0,startedAt:zn,devServerOrigin:Ln}),reloadApp:e=>{let t=e??{},{strategy:o,delayMs:i}=us({strategy:t.strategy,delayMs:t.delayMs});return{scheduled:!0,strategy:o,delayMs:i}}}};import{Fragment as vs,jsx as Pe,jsxs as xs}from"react/jsx-runtime";var bs=["ConsoleRoot","RouteTracker","ReactQueryTracker","ReduxAutoInstrument","PerfMonitorRoot","AutomationResumer","ImagesRoot"],hs=["DebugBordersStandaloneOverlay","HighlightUpdatesOverlay","ImageOverlayStandalone","PerfMonitorOverlay","JsTopHudOverlay","ImpersonateOverlay","ScenariosOverlay"];function Fn(e){let t=Bn(()=>Object.fromEntries(Object.entries(e.modules).map(([i,n])=>[i.replace(/^@buoy-gg\//,"").replace(/\/web$/,""),n])),[e.modules]),o=t["react-query"];return o?.useReactQuerySyncAdapter?Pe(Ss,{...e,modules:t,query:o}):Pe(Hn,{...e,modules:t})}function Ss(e){let t=e.query.useReactQuerySyncAdapter();return Pe(Hn,{...e,queryAdapter:t})}function Hn({modules:e,apps:t,requiredEnvVars:o,externalSync:i,headless:n,sentryGetClient:r,queryAdapter:a}){let{isPro:d,tier:p}=ms(),u=Bn(()=>{let S={app:to};for(let[b,D]of Object.entries(e))for(let[M,$]of Object.entries(D))M.endsWith("SyncAdapter")&&$&&typeof $=="object"&&(S[b]=$);a&&(S.query=a),e.env?.createEnvSyncAdapter&&(S.env=e.env.createEnvSyncAdapter(o??[]));for(let b of t??[])b.sync&&(S[`custom:${b.id}`]=b.sync);return S},[e,t,o,a]),g=gs(u);g.current=u,oo(()=>ys(()=>g.current),[]),oo(()=>{let S=[],b=D=>{let M=D?.();typeof M=="function"&&S.push(M)};return b(e.network?.startNetworkCapture),b(e.storage?.startBrowserStorageCapture),b(e.assets?.startBrowserAssetCapture),e.storage?.storageSyncAdapter?.subscribe&&b(()=>e.storage.storageSyncAdapter.subscribe(()=>{})),e["focus-inspector"]?.focusInspectorSyncAdapter?.subscribe&&b(()=>e["focus-inspector"].focusInspectorSyncAdapter.subscribe(()=>{})),()=>{for(let D of S.reverse())D()}},[e]);let C=e["external-sync"],P=En({isDevelopment:typeof L<"u"?L:process.env.NODE_ENV!=="production",isLicensed:d,externalSync:i,isAvailable:!!C}),I=e.sentry?.SentryRoot;return xs(vs,{children:[Object.entries(e).flatMap(([S,b])=>bs.map(D=>{let M=b[D];return M?Pe(M,{},`${S}:${D}`):null})),I&&Pe(I,{getClient:r}),Object.entries(e).flatMap(([S,b])=>hs.map(D=>{let M=b[D];return M&&(!n||D==="ScenariosOverlay"||D==="ImpersonateOverlay")?Pe(M,{},`${S}:${D}`):null})),P&&Pe(Ts,{module:C,tools:u,options:Qt(i),isPro:d,tier:p})]})}function Ts({module:e,tools:t,options:o,isPro:i,tier:n}){let r=kn(o,{appName:typeof document>"u"?null:document.title||location.hostname,hardwareName:"Browser",platform:"web"}),{socket:a}=e.useExternalSyncSocket({deviceName:r?.deviceName??"Buoy Browser",socketURL:o?.socketURL??e.getDefaultSocketURL(),persistentDeviceId:r?.deviceId??null,platform:"web",enableLogs:o?.enableLogs});return oo(()=>{if(!a)return;let d=()=>{a.connected&&fs.hasAccountAccess()&&a.emit("device-license",{isPro:i?"1":"0",tier:n})};return d(),a.on("connect",d),()=>{a.off("connect",d)}},[a,i,n]),e.useExternalSync({tools:t,socket:a,deviceId:r?.deviceId??null,enableLogs:o?.enableLogs}),null}import{jsx as U,jsxs as _n}from"react/jsx-runtime";var Es={},Vn="@react_buoy_floating_menu_tooltip_shown",ks=Oe;function zs({size:e=14,color:t="#20C997"}){let o=Math.max(2,e/4),i=Math.max(1,e/16);return U("div",{style:{display:"grid",gridTemplateColumns:`repeat(3, ${o}px)`,gap:i,width:e,height:e,alignContent:"center",justifyContent:"center"},children:Array.from({length:9}).map((n,r)=>U("div",{style:{width:o,height:o,borderRadius:o/2,backgroundColor:t}},r))})}function Ls(e){return U(Jt,{children:U(Gt,{children:U(Bs,{...e})})})}function Bs({environment:e,userRole:t,availableEnvironments:o,onEnvironmentSwitch:i,apps:n,modules:r=Es,externalSync:a,requiredEnvVars:d,sentryGetClient:p,disableHints:u=!1,headless:g=!1}){let[C,f]=no(!1),[P,I]=no(!1),S=Rs(!1),b=He(),D=Ne(()=>Mt([...Zt(r),...n??[]]),[n,r]),M=tt(),$=b.openApps.some(l=>!l.minimized);we(()=>{M.setDialOpen(C)},[C,M.setDialOpen]),we(()=>{M.setToolOpen($||P)},[$,P,M.setToolOpen]);let{registerApps:T}=b;we(()=>{T(D.map(l=>{let R=l.icon;return{...l,icon:typeof R=="function"?({size:X})=>R(X):R}}))},[T,D]);let O=Ne(()=>D.map(l=>({id:l.id,name:l.name,description:l.description,slot:l.slot})),[D]),{settings:F}=As({availableTools:O,storage:ks});we(()=>{let l=!1;return(async()=>{let[X,ie]=await Promise.all([Oe.getItem(Ct.dial.isOpen()),Oe.getItem(Ct.settings.modalOpen())]);l||(X==="true"&&f(!0),ie==="true"&&(f(!0),I(!0)),S.current=!0)})(),()=>{l=!0}},[]),we(()=>{S.current&&Oe.setItem(Ct.dial.isOpen(),C?"true":"false")},[C]),we(()=>{S.current&&Oe.setItem(Ct.settings.modalOpen(),P?"true":"false")},[P]);let w=Ve(l=>{if(zo(l.id),l.launchMode==="toggle-only"){l.onPress?.();return}if(l.component){let R=typeof l.icon=="function"?l.icon(20):l.icon;b.open({id:l.id,title:l.name||wt(l.id),component:l.component,props:l.props,modal:l.modal,launchMode:l.launchMode||"self-modal",singleton:l.singleton??!0,icon:R,color:l.color||Nn(l.id)})}else l.onPress?.()},[b]),E=Ne(()=>st(D,"dial").map(R=>{let X=R.color||Nn(R.id),ie;return typeof R.icon=="string"?ie=R.icon:typeof R.icon=="function"?ie=R.icon(32):ie=null,{id:R.id,name:R.name||wt(R.id),icon:ie,unavailable:!R.component&&!R.onPress,color:X,onPress:()=>{w(R),f(!1)}}}),[D,w]),ee=Ne(()=>{if(!C)return E;let l=new Map(E.map(R=>[R.id,R]));return ko(E.map(R=>R.id)).map(R=>l.get(R)).filter(R=>!!R)},[C,E]),oe=Ne(()=>st(D,"row").filter(l=>F.floatingTools[l.id]===!0&&(l.component||l.onPress)),[D,F.floatingTools]),j=Ne(()=>D.map(l=>({id:l.id,name:l.name||wt(l.id),description:l.description||Ms(l.id),slot:l.slot,icon:l.icon,color:l.color})),[D]),[se,ae]=no(!1),G=b.openApps.some(l=>!l.minimized);we(()=>{if(u)return;let l=!1,R=setTimeout(async()=>{let X=await Oe.getItem(Vn);!l&&!X&&ae(!0)},1e3);return()=>{l=!0,clearTimeout(R)}},[u]);let ne=Ve(()=>{ae(!1),Oe.setItem(Vn,"true")},[]),Te=Ve(()=>{ne(),f(!0)},[ne]),ve=Ve(()=>{f(!1),I(!1)},[]),Ce=Ve(()=>{I(l=>!l)},[]),V=Ve(()=>I(!1),[]),pe=!!(o?.length&&i),Ee=F.floatingTools.environment!==!1,ge=se&&!C&&!G,Ie=b.openApps.some(l=>l.minimized&&l.launchMode!=="toggle-only"),le=U(Fn,{modules:r,apps:n,requiredEnvVars:d,externalSync:a,headless:g,sentryGetClient:p});return g?le:_n("div",{"data-buoy-root":"",style:{display:"contents"},children:[le,ge&&U("div",{style:{position:"fixed",inset:0,backgroundColor:"rgba(0,0,0,0.85)",zIndex:1e4}}),_n(Pt,{enablePositionPersistence:!ge,pushToSide:C||G,suspendPointerEvents:C,centerOnboarding:ge,minimizedStack:Ie?U(An,{}):void 0,hasMinimizedStack:Ie,children:[e&&Ee&&!pe&&U(Ps,{environment:e}),pe&&Ee&&U(Os,{currentEnvironment:e??"local",availableEnvironments:o,onSelect:i}),t?U(Ot,{userRole:t,onPress:Te}):U("button",{"aria-label":"Open dev tools",onClick:Te,style:{display:"flex",alignItems:"center",justifyContent:"center",padding:"6px 8px",background:"none",border:"none",cursor:"pointer"},children:U(zs,{})}),oe.map(l=>U("button",{"aria-label":l.name||wt(l.id),title:l.description,onClick:()=>w(l),style:{display:"flex",alignItems:"center",justifyContent:"center",padding:"4px 6px",borderRadius:6,background:"none",border:"none",cursor:"pointer"},children:typeof l.icon=="function"?l.icon(16):l.icon},l.id))]}),ge&&U(lt,{title:"Welcome to Buoy!",message:"Grab and position this menu wherever you want, then tap the icon to open your tools.",onDismiss:ne}),C&&U(zt,{icons:ee,onClose:ve,centerLabel:"BUOY",onCenterPress:Ce,settingsOpen:P,hintsDisabled:u}),U(Vt,{visible:P,onClose:V,availableTools:j,onSettingsChange:l=>{}}),U(Kt,{}),U(ws,{})]})}function Fs(e){let{access:t,isPro:o,licenseKey:i}=Is();we(()=>{Cs.configure(e.licenseKey)},[e.licenseKey]);let n=e.licenseKey===void 0||e.licenseKey.trim().toUpperCase()===(i??"");return!(typeof L<"u"?L:process.env.NODE_ENV!=="production")&&!o?null:!n||t.status!=="admitted"?e.headless?null:U(Ds,{}):U(Ls,{...e})}import{useSettings as Ou,useFloatingTools as Eu,getToolLabel as ku,getToolDescription as zu,getToolColor as Lu,settingsColors as Bu,settingsStyles as Fu,dialColors as Hu,dialStyles as Nu}from"@buoy-gg/floating-tools-react/web";export{ba as Activity,el as AlertCircle,ha as AlertTriangle,Gt as AppHostProvider,Kt as AppOverlay,_s as Badge,tl as BarChart3,ia as BaseEventStore,ol as Bookmark,Sa as Bug,Us as Button,Xs as Card,Ta as Check,va as CheckCircle,Tl as CheckSquare,xa as ChevronDown,wa as ChevronLeft,Ca as ChevronRight,Ia as ChevronUp,Da as Clock,nl as Cloud,Zs as CollapsibleSection,Ra as Copy,js as CopyButton,na as DataViewer,Aa as Database,Jt as DevToolsVisibilityProvider,zt as DialMenu,Gs as DiffViewer,Kn as Divider,il as Download,rl as Edit3,ea as EmptyState,oa as EventStepperFooter,Ma as Eye,Pa as EyeOff,Oa as FileJson,Ea as FileText,ka as Filter,za as FlaskConical,Fs as FloatingDevTools,Pt as FloatingTools,sl as GitBranch,La as Globe,al as HardDrive,Ba as Hash,ll as HelpCircle,cl as Home,dl as Image,Fa as Info,$s as InfoRow,ya as JsModal,Ha as Key,Na as Layers,ul as Link,Va as Lock,pl as Maximize2,gl as Minus,fl as Palette,_a as Pause,ml as Pin,Wa as Play,$a as Plus,Ga as Power,qs as PowerToggle,Ka as RefreshCw,ra as RelativeTime,yl as Route,Ys as Row,Ua as Search,ta as SearchBar,Js as SectionHeader,bl as Server,ja as Settings,Vt as SettingsModal,qa as Shield,hl as Smartphone,Sl as Square,Ws as StatusDot,Qs as TabSelector,vl as Timer,Ya as Trash2,xl as Unlock,wl as Upload,Xa as User,Ot as UserStatus,Cl as Users,Ja as Wifi,Za as X,Il as XCircle,Qa as Zap,to as appSyncAdapter,$n as autoDiscoverWebPresets,Mt as autoDiscoverWithCustom,ma as copyToClipboard,Xt as createWebTool,Zt as createWebTools,Wn as defaultToolPresets,ga as devToolsStorageKeys,Hu as dialColors,Nu as dialStyles,sa as formatBytes,aa as formatDuration,la as formatNumber,Gn as getEnabledTools,Lu as getToolColor,zu as getToolDescription,ku as getToolLabel,st as getToolsBySlot,Ns as methodColor,pa as persistentStorage,da as safeStringify,Bu as settingsColors,Fu as settingsStyles,Hs as statusColor,Ks as toolTheme,ca as truncateMiddle,Vs as typeColor,He as useAppHost,tt as useDevToolsVisibility,Eu as useFloatingTools,ua as usePersistedState,fa as useSafeAreaInsets,Ou as useSettings,Tr as useToolHeader,an as useToolHost};
@@ -0,0 +1,2 @@
1
+ "use client";
2
+ import"./chunks/chunk-R7RGRTY5.mjs";function n(e={}){return!1}export{n as registerBrowserDevTools};
@@ -0,0 +1,2 @@
1
+ "use client";
2
+ import{d as s}from"./chunks/chunk-R7RGRTY5.mjs";import*as i from"react-devtools-core";function u(l={}){if(typeof window>"u"||typeof document>"u"||!(typeof s<"u"?s:process.env.NODE_ENV!=="production")&&!l.enableInRelease)return!1;let e=window,n=e.__REACT_DEVTOOLS_GLOBAL_HOOK__,O=n&&n.supportsFiber&&!n.getFiberRoots&&!n.sub&&Object.getOwnPropertyDescriptor(e,"__REACT_DEVTOOLS_GLOBAL_HOOK__")?.configurable;if(O&&delete e.__REACT_DEVTOOLS_GLOBAL_HOOK__,!e.__REACT_DEVTOOLS_GLOBAL_HOOK__&&((i.initialize??i.default?.initialize)({appendComponentStack:!1,breakOnConsoleErrors:!1,showInlineWarningsAndErrors:!1,hideConsoleLogsInStrictMode:!1}),O)){let t=e.__REACT_DEVTOOLS_GLOBAL_HOOK__,f=t.inject,a=new Map;t.inject=o=>{let _=f(o);return a.set(_,n.inject(o)),_};for(let o of["onScheduleFiberRoot","onCommitFiberRoot","onCommitFiberUnmount"]){let _=t[o];t[o]=(r,...c)=>(n[o]?.(a.get(r)??r,...c),_?.(r,...c))}}return!!e.__REACT_DEVTOOLS_GLOBAL_HOOK__}u();export{u as registerBrowserDevTools};
@@ -0,0 +1,2 @@
1
+ "use client";
2
+ import{$ as S,A as r,Aa as ra,B as s,Ba as sa,C as t,Ca as ta,D as u,Da as ua,E as v,Ea as va,F as w,Fa as wa,G as x,Ga as xa,H as y,Ha as ya,I as z,Ia as za,J as A,Ja as Aa,K as B,Ka as Ba,L as C,La as Ca,M as D,Ma as Da,N as E,Na as Ea,O as F,Oa as Fa,P as G,Pa as Ga,Q as H,Qa as Ha,R as I,Ra as Ia,S as J,Sa as Ja,T as K,Ta as Ka,U as L,Ua as La,V as M,Va as Ma,W as N,Wa as Na,X as O,Xa as Oa,Y as P,Ya as Pa,Z as Q,_ as R,aa as T,ba as U,ca as V,da as W,ea as X,fa as Y,ga as Z,ha as _,ia as $,j as a,ja as aa,k as b,ka as ba,l as c,la as ca,m as d,ma as da,n as e,na as ea,o as f,oa as fa,p as g,pa as ga,q as h,qa as ha,r as i,ra as ia,s as j,sa as ja,t as k,ta as ka,u as l,ua as la,v as m,va as ma,w as n,wa as na,x as o,xa as oa,y as p,ya as pa,z as q,za as qa}from"./chunks/chunk-QZDVCMCT.mjs";import"./chunks/chunk-R7RGRTY5.mjs";export{H as Activity,qa as AlertCircle,I as AlertTriangle,d as Badge,ra as BarChart3,u as BaseEventStore,sa as Bookmark,J as Bug,i as Button,m as Card,K as Check,L as CheckCircle,Ka as CheckSquare,M as ChevronDown,N as ChevronLeft,O as ChevronRight,P as ChevronUp,Q as Clock,ta as Cloud,o as CollapsibleSection,R as Copy,j as CopyButton,t as DataViewer,S as Database,g as DiffViewer,ua as Download,va as Edit3,q as EmptyState,s as EventStepperFooter,T as Eye,U as EyeOff,V as FileJson,W as FileText,X as Filter,Y as FlaskConical,wa as GitBranch,Z as Globe,xa as HardDrive,_ as Hash,ya as HelpCircle,za as Home,Aa as Image,$ as Info,f as InfoRow,G as JsModal,aa as Key,ba as Layers,Ba as Link,ca as Lock,Ca as Maximize2,Da as Minus,Ea as Palette,da as Pause,Fa as Pin,ea as Play,fa as Plus,ga as Power,k as PowerToggle,ha as RefreshCw,v as RelativeTime,Ga as Route,l as Row,ia as Search,r as SearchBar,n as SectionHeader,Ha as Server,ja as Settings,ka as Shield,Ia as Smartphone,Ja as Square,e as StatusDot,p as TabSelector,La as Timer,la as Trash2,Ma as Unlock,Na as Upload,ma as User,Oa as Users,na as Wifi,oa as X,Pa as XCircle,pa as Zap,F as copyToClipboard,D as devToolsStorageKeys,w as formatBytes,x as formatDuration,y as formatNumber,b as methodColor,C as persistentStorage,A as safeStringify,a as statusColor,h as toolTheme,z as truncateMiddle,c as typeColor,B as usePersistedState,E as useSafeAreaInsets};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@buoy-gg/core",
3
- "version": "7.0.39",
3
+ "version": "7.0.41",
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",
@@ -9,20 +9,41 @@
9
9
  "source": "src/index.tsx",
10
10
  "exports": {
11
11
  ".": {
12
- "types": "./lib/typescript/module/index.d.ts",
13
12
  "react-native": "./lib/module/index.js",
13
+ "browser": {
14
+ "types": "./lib/typescript/module/index.web.d.ts",
15
+ "default": "./lib/web/index.mjs"
16
+ },
17
+ "types": "./lib/typescript/module/index.d.ts",
14
18
  "import": "./lib/module/index.js",
15
19
  "require": "./lib/commonjs/index.js",
16
20
  "default": "./lib/commonjs/index.js"
17
21
  },
18
22
  "./toolkit": {
19
- "types": "./lib/typescript/module/toolkit.d.ts",
20
23
  "react-native": "./lib/module/toolkit.js",
24
+ "browser": {
25
+ "types": "./lib/typescript/module/toolkit.d.ts",
26
+ "default": "./lib/web/toolkit.mjs"
27
+ },
28
+ "types": "./lib/typescript/module/toolkit.d.ts",
21
29
  "import": "./lib/module/toolkit.js",
22
30
  "require": "./lib/commonjs/toolkit.js",
23
31
  "default": "./lib/commonjs/toolkit.js"
24
32
  },
25
- "./package.json": "./package.json"
33
+ "./package.json": "./package.json",
34
+ "./web": {
35
+ "types": "./lib/typescript/module/index.web.d.ts",
36
+ "default": "./lib/web/index.mjs"
37
+ },
38
+ "./web/toolkit": {
39
+ "types": "./lib/typescript/module/toolkit.d.ts",
40
+ "default": "./lib/web/toolkit.mjs"
41
+ },
42
+ "./web/register": {
43
+ "types": "./lib/typescript/module/browserRegister.d.ts",
44
+ "browser": "./lib/web/register.mjs",
45
+ "default": "./lib/web/register-server.mjs"
46
+ }
26
47
  },
27
48
  "typesVersions": {
28
49
  "*": {
@@ -35,16 +56,21 @@
35
56
  "bin",
36
57
  "lib"
37
58
  ],
38
- "sideEffects": false,
59
+ "sideEffects": [
60
+ "./lib/web/register.mjs"
61
+ ],
39
62
  "dependencies": {
40
- "@buoy-gg/shared-ui": "^7.0.39",
41
- "@buoy-gg/license": "^7.0.39",
42
- "@buoy-gg/floating-tools-core": "^7.0.39",
43
- "@buoy-gg/floating-tools-react": "^7.0.39"
63
+ "react-devtools-core": "6.1.5",
64
+ "@buoy-gg/floating-tools-core": "^7.0.41",
65
+ "@buoy-gg/license": "^7.0.41",
66
+ "@buoy-gg/floating-tools-react": "^7.0.41",
67
+ "@buoy-gg/shared-ui": "^7.0.41"
44
68
  },
45
69
  "peerDependencies": {
46
70
  "react": "*",
47
- "react-native": "*"
71
+ "react-dom": ">=18",
72
+ "react-native": "*",
73
+ "react-native-web": "^0.21.0"
48
74
  },
49
75
  "react-native-builder-bob": {
50
76
  "source": "src",
@@ -104,10 +130,22 @@
104
130
  "bin": {
105
131
  "buoy": "bin/buoy.js"
106
132
  },
133
+ "peerDependenciesMeta": {
134
+ "react-native": {
135
+ "optional": true
136
+ },
137
+ "react-native-web": {
138
+ "optional": true
139
+ },
140
+ "react-dom": {
141
+ "optional": true
142
+ }
143
+ },
107
144
  "scripts": {
108
- "build": "bob build",
145
+ "build": "bob build && pnpm run build:web",
109
146
  "typecheck": "tsc --noEmit",
110
147
  "clean": "rimraf lib",
111
- "test": "pnpm run typecheck"
148
+ "test": "pnpm run typecheck",
149
+ "build:web": "node ../../scripts/build-web.mjs core"
112
150
  }
113
151
  }