@buoy-gg/shared-ui 7.0.56 → 7.0.57
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -0
- package/lib/commonjs/JsModal.web.js +1 -1
- package/lib/commonjs/env/EnvironmentSelectorInline.web.js +1 -1
- package/lib/commonjs/storage/capacitorAppStorage.js +1 -0
- package/lib/commonjs/storage/devToolsStorageKeys.js +1 -1
- package/lib/commonjs/storage/index.js +1 -1
- package/lib/commonjs/ui/components/ModalHeader.js +1 -1
- package/lib/commonjs/ui/components/SearchBar.js +1 -1
- package/lib/commonjs/ui/components/WindowControls.js +1 -1
- package/lib/commonjs/ui/components/index.js +1 -1
- package/lib/commonjs/ui/components/windowControlsSetting.js +1 -0
- package/lib/commonjs/ui/floating/FloatingTool.web.js +1 -1
- package/lib/commonjs/utils/asyncStorageNative.js +1 -0
- package/lib/commonjs/utils/browserNavigation.js +1 -1
- package/lib/commonjs/utils/persistentStorage.js +1 -1
- package/lib/commonjs/utils/realAppState.js +1 -1
- package/lib/module/JsModal.web.js +1 -1
- package/lib/module/env/EnvironmentSelectorInline.web.js +1 -1
- package/lib/module/storage/capacitorAppStorage.js +1 -0
- package/lib/module/storage/devToolsStorageKeys.js +1 -1
- package/lib/module/storage/index.js +1 -1
- package/lib/module/ui/components/ModalHeader.js +1 -1
- package/lib/module/ui/components/SearchBar.js +1 -1
- package/lib/module/ui/components/WindowControls.js +1 -1
- package/lib/module/ui/components/index.js +1 -1
- package/lib/module/ui/components/windowControlsSetting.js +1 -0
- package/lib/module/ui/floating/FloatingTool.web.js +1 -1
- package/lib/module/utils/asyncStorageNative.js +1 -0
- package/lib/module/utils/browserNavigation.js +1 -1
- package/lib/module/utils/persistentStorage.js +1 -1
- package/lib/module/utils/realAppState.js +1 -1
- package/lib/typescript/commonjs/JsModal.web.d.ts +2 -1
- package/lib/typescript/commonjs/hooks/safe-area-impl.d.ts +1 -1
- package/lib/typescript/commonjs/storage/capacitorAppStorage.d.ts +15 -0
- package/lib/typescript/commonjs/storage/index.d.ts +2 -0
- package/lib/typescript/commonjs/ui/components/WindowControls.d.ts +1 -6
- package/lib/typescript/commonjs/ui/components/index.d.ts +1 -0
- package/lib/typescript/commonjs/ui/components/windowControlsSetting.d.ts +14 -0
- package/lib/typescript/commonjs/utils/asyncStorageNative.d.ts +2 -0
- package/lib/typescript/module/JsModal.web.d.ts +2 -1
- package/lib/typescript/module/hooks/safe-area-impl.d.ts +1 -1
- package/lib/typescript/module/storage/capacitorAppStorage.d.ts +15 -0
- package/lib/typescript/module/storage/index.d.ts +2 -0
- package/lib/typescript/module/ui/components/WindowControls.d.ts +1 -6
- package/lib/typescript/module/ui/components/index.d.ts +1 -0
- package/lib/typescript/module/ui/components/windowControlsSetting.d.ts +14 -0
- package/lib/typescript/module/utils/asyncStorageNative.d.ts +2 -0
- package/lib/web/asyncStorage.mjs +1 -1
- package/lib/web/chunks/chunk-4IM4VIMP.mjs +1 -0
- package/lib/web/chunks/chunk-ASHW3TI7.mjs +1 -0
- package/lib/web/chunks/{chunk-T7RZZG4A.mjs → chunk-E2MI3FII.mjs} +1 -1
- package/lib/web/chunks/{chunk-DEEKIG2L.mjs → chunk-FP44YK4E.mjs} +1 -1
- package/lib/web/chunks/chunk-L63X3LPR.mjs +1 -0
- package/lib/web/chunks/{chunk-T3WLUEET.mjs → chunk-NVD5LLXD.mjs} +1 -1
- package/lib/web/chunks/chunk-PXAINEZK.mjs +14 -0
- package/lib/web/chunks/chunk-QNLAFQET.mjs +1 -0
- package/lib/web/chunks/persistentStorage.web-3QA77BIL.mjs +1 -0
- package/lib/web/colors.mjs +1 -1
- package/lib/web/dataViewer.mjs +1 -1
- package/lib/web/floating.mjs +1 -1
- package/lib/web/history.mjs +1 -1
- package/lib/web/hooks.mjs +1 -1
- package/lib/web/index.mjs +3 -3
- package/lib/web/native.mjs +1 -1
- package/lib/web/ui.mjs +1 -1
- package/lib/web/utils.mjs +1 -1
- package/package.json +5 -5
- package/lib/web/chunks/chunk-3S2CBY6A.mjs +0 -14
- package/lib/web/chunks/chunk-46TKOKMV.mjs +0 -1
- package/lib/web/chunks/chunk-5NZOQR6Q.mjs +0 -1
- package/lib/web/chunks/chunk-T6KN54NS.mjs +0 -1
- package/lib/web/chunks/chunk-XYUAUO57.mjs +0 -1
- package/lib/web/chunks/persistentStorage.web-56ENKXFJ.mjs +0 -1
package/README.md
CHANGED
|
@@ -12,6 +12,8 @@ Keep peer dependencies compatible with your other Buoy packages, including the l
|
|
|
12
12
|
|
|
13
13
|
## Public entry points
|
|
14
14
|
|
|
15
|
+
Saved web windows keep their top edge, like native windows.
|
|
16
|
+
|
|
15
17
|
| Import | Contents |
|
|
16
18
|
| --- | --- |
|
|
17
19
|
| `@buoy-gg/shared-ui` | Main component and utility exports. |
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.JsModal=void 0;var _licenseModule=require("./license/licenseModule.js");var _AccountSetup=require("./license/AccountSetup");var _react=require("react");var _persistentStorage=require("./utils/persistentStorage");var _modalStorage=require("./utils/modalStorage.js");var _devToolsStorageKeys=require("./storage/devToolsStorageKeys.js");var _index=require("./context/index.js");var _ToolBackground=require("./ui/backgrounds/ToolBackground.js");var _nightTheme=require("./ui/night/nightTheme.js");var _jsxRuntime=require("react/jsx-runtime");const buoy={base:"#121212",card:"#1A1A1A",border:"#333333",textMuted:"#888888",primary:"#20C997"};const gameUI={primary:"#F5F5F7",primaryLight:"#F5F5F7",secondary:"#A1A1A6",muted:"#8E8E93",success:"#34C759",info:"#00B8E6"};const MIN_HEIGHT=100;const DEFAULT_HEIGHT=400;const FLOATING_HEIGHT=500;const FLOATING_MIN_HEIGHT=80;const screenW=()=>typeof window!=="undefined"?window.innerWidth:0;const screenH=()=>typeof window!=="undefined"?window.innerHeight:0;const easeOutCubic=n=>1-Math.pow(1-n,3);const easeInOut=n=>n<.5?2*n*n:1-Math.pow(-2*n+2,2)/2;function runAnim(n,o,i,f){let h=0;let u=false;const w=performance.now();const S=it=>{if(u)return;const J=Math.min((it-w)/n,1);i(o(J));if(J<1){h=requestAnimationFrame(S)}else{f?.()}};h=requestAnimationFrame(S);return()=>{u=true;cancelAnimationFrame(h)}}function readSafeAreaInsets(){if(typeof document==="undefined"){return{top:0,left:0,right:0,bottom:0}}const n=document.createElement("div");n.style.cssText="position:fixed;top:env(safe-area-inset-top);left:env(safe-area-inset-left);right:env(safe-area-inset-right);bottom:env(safe-area-inset-bottom);visibility:hidden;pointer-events:none";document.body.appendChild(n);const o=n.getBoundingClientRect();document.body.removeChild(n);return{top:Math.max(0,o.top),left:Math.max(0,o.left),right:Math.max(0,window.innerWidth-o.right),bottom:Math.max(0,window.innerHeight-o.bottom)}}function clampRectToSafeArea(n,o){const i=Math.max(FLOATING_MIN_HEIGHT,window.innerWidth-o.left-o.right);const f=Math.max(FLOATING_MIN_HEIGHT,window.innerHeight-o.top-o.bottom);const h=Math.min(n.width,i);const u=Math.min(n.height,f);return{width:h,height:u,left:Math.max(o.left,Math.min(n.left,window.innerWidth-o.right-h)),top:Math.max(o.top,Math.min(n.top,window.innerHeight-o.bottom-u))}}const XIcon=({size:n=24,color:o="currentColor",strokeWidth:i=2})=>(0,_jsxRuntime.jsxs)("svg",{width:n,height:n,viewBox:"0 0 24 24",fill:"none",children:[(0,_jsxRuntime.jsx)("line",{x1:18,y1:6,x2:6,y2:18,stroke:o,strokeWidth:i,strokeLinecap:"round"}),(0,_jsxRuntime.jsx)("line",{x1:6,y1:6,x2:18,y2:18,stroke:o,strokeWidth:i,strokeLinecap:"round"})]});const MinusIcon=({size:n=24,color:o="currentColor",strokeWidth:i=2})=>(0,_jsxRuntime.jsx)("svg",{width:n,height:n,viewBox:"0 0 24 24",fill:"none",children:(0,_jsxRuntime.jsx)("line",{x1:5,y1:12,x2:19,y2:12,stroke:o,strokeWidth:i,strokeLinecap:"round"})});const DockBottomIcon=({size:n=24,color:o="currentColor",strokeWidth:i=2})=>(0,_jsxRuntime.jsxs)("svg",{width:n,height:n,viewBox:"0 0 24 24",fill:"none",children:[(0,_jsxRuntime.jsx)("rect",{x:3,y:3,width:18,height:18,rx:2,stroke:o,strokeWidth:i}),(0,_jsxRuntime.jsx)("rect",{x:3,y:14,width:18,height:7,fill:o})]});const FloatWindowIcon=({size:n=24,color:o="currentColor",strokeWidth:i=2})=>(0,_jsxRuntime.jsxs)("svg",{width:n,height:n,viewBox:"0 0 24 24",fill:"none",children:[(0,_jsxRuntime.jsx)("rect",{x:3,y:3,width:14,height:14,rx:2,stroke:o,strokeWidth:i}),(0,_jsxRuntime.jsx)("line",{x1:7,y1:17,x2:7,y2:21,stroke:o,strokeWidth:i}),(0,_jsxRuntime.jsx)("line",{x1:7,y1:21,x2:21,y2:21,stroke:o,strokeWidth:i}),(0,_jsxRuntime.jsx)("line",{x1:21,y1:21,x2:21,y2:7,stroke:o,strokeWidth:i}),(0,_jsxRuntime.jsx)("line",{x1:17,y1:7,x2:21,y2:7,stroke:o,strokeWidth:i})]});const WC_COLORS={close:"#FF5F57",minimize:"#FEBC2E",toggleMode:"#28C840"};const WC_BUTTON_SIZE=24;const WC_BUTTON_SPACING=2;const WC_ICON_SIZE=8;const wcDotStyle=n=>({width:WC_BUTTON_SIZE,height:WC_BUTTON_SIZE,borderRadius:WC_BUTTON_SIZE/2,display:"flex",alignItems:"center",justifyContent:"center",background:`radial-gradient(circle, ${n} 6px, transparent 6px)`,border:"none",padding:0,cursor:"pointer",flexShrink:0});function WindowControls({onClose:n,onMinimize:o,onToggleMode:i,mode:f}){const h=f==="floating"?DockBottomIcon:FloatWindowIcon;const u=f==="floating"?"Dock to bottom sheet":"Make floating window";return(0,_jsxRuntime.jsxs)("div",{style:{display:"flex",flexDirection:"row",alignItems:"center",gap:WC_BUTTON_SPACING},children:[o&&(0,_jsxRuntime.jsx)("button",{type:"button",onClick:o,style:wcDotStyle(WC_COLORS.minimize),"aria-label":"Minimize modal",children:(0,_jsxRuntime.jsx)(MinusIcon,{size:WC_ICON_SIZE,color:"#7A5A00",strokeWidth:1.5})}),i&&(0,_jsxRuntime.jsx)("button",{type:"button",onClick:i,style:wcDotStyle(WC_COLORS.toggleMode),"aria-label":u,children:(0,_jsxRuntime.jsx)(h,{size:WC_ICON_SIZE,color:"#004A1A",strokeWidth:1.5})}),(0,_jsxRuntime.jsx)("button",{type:"button",onClick:n,style:wcDotStyle(WC_COLORS.close),"aria-label":"Close modal",children:(0,_jsxRuntime.jsx)(XIcon,{size:WC_ICON_SIZE,color:"#4A0000",strokeWidth:1.5})})]})}const DragIndicator=(0,_react.memo)(function n({isResizing:o,mode:i,hasCustomContent:f=false,variant:h="default"}){const u=i==="floating";const w=h==="night";return(0,_jsxRuntime.jsxs)("div",{style:{display:"flex",flexDirection:"column",alignItems:"center",position:"relative",justifyContent:f?"center":void 0,minHeight:f?32:void 0,paddingTop:f?0:8,paddingBottom:f?0:8,backgroundColor:"transparent"},children:[(0,_jsxRuntime.jsx)("div",{style:{width:w?36:o?40:u?50:40,height:w?5:u?5:3,backgroundColor:w?_nightTheme.night.color.placeholder:o?buoy.primary:u?buoy.textMuted:buoy.primary,borderRadius:w?2.5:2,boxShadow:w?"none":`0 0 4px ${buoy.primary}99`}}),o&&i==="bottomSheet"&&(0,_jsxRuntime.jsx)("div",{style:{position:"absolute",display:"flex",flexDirection:"row",gap:2,marginTop:12},children:[0,1,2].map(S=>(0,_jsxRuntime.jsx)("div",{style:{width:12,height:1,backgroundColor:gameUI.success,opacity:.6}},S))})]})});const ModalHintBanner=(0,_react.memo)(function n({onAcknowledge:o}){return(0,_jsxRuntime.jsx)("div",{style:{backgroundColor:`${gameUI.info}15`,borderLeft:`3px solid ${gameUI.info}`,borderRadius:8,margin:"8px 12px 4px",overflow:"hidden",boxShadow:`0 0 8px ${gameUI.info}4D`,flexShrink:0},children:(0,_jsxRuntime.jsxs)("div",{style:{display:"flex",flexDirection:"row",alignItems:"center",padding:12,gap:12},children:[(0,_jsxRuntime.jsxs)("div",{style:{width:32,height:32,position:"relative",display:"flex",alignItems:"center",justifyContent:"center",flexShrink:0},children:[(0,_jsxRuntime.jsx)("div",{style:{position:"absolute",width:20,height:20,borderRadius:10,border:`2px solid ${gameUI.info}`,opacity:.6,transform:"scale(0.8)",boxSizing:"border-box"}}),(0,_jsxRuntime.jsx)("div",{style:{position:"absolute",width:20,height:20,borderRadius:10,border:`2px solid ${gameUI.info}`,boxSizing:"border-box"}})]}),(0,_jsxRuntime.jsxs)("div",{style:{flex:1,display:"flex",flexDirection:"column",gap:2},children:[(0,_jsxRuntime.jsx)("span",{style:{fontSize:13,fontWeight:600,color:gameUI.info,letterSpacing:.3},children:"\u{1F4A1} Pro Tip"}),(0,_jsxRuntime.jsx)("span",{style:{fontSize:12,color:gameUI.primaryLight,lineHeight:"16px"},children:"Double-tap the header to transform this into a floating modal"})]}),(0,_jsxRuntime.jsx)("button",{type:"button",onClick:o,style:{backgroundColor:`${gameUI.info}30`,padding:"6px 12px",borderRadius:6,border:`1px solid ${gameUI.info}50`,fontSize:12,fontWeight:600,color:gameUI.info,cursor:"pointer",fontFamily:"inherit",flexShrink:0},children:"Got it!"})]})})});function ModalHeaderContent({header:n,isResizing:o,mode:i,onMinimize:f,variant:h="default"}){if(n?.customContent){let u=n.customContent;if((0,_react.isValidElement)(n.customContent)&&f){u=(0,_react.cloneElement)(n.customContent,{onMinimize:f})}return(0,_jsxRuntime.jsxs)("div",{style:{flex:1,display:"flex",flexDirection:"column",justifyContent:"center",minWidth:0},children:[(0,_jsxRuntime.jsx)(DragIndicator,{isResizing:o,mode:i,hasCustomContent:true,variant:h}),u]})}return(0,_jsxRuntime.jsxs)("div",{style:{flex:1,display:"flex",flexDirection:"column",justifyContent:"center",position:"relative",minWidth:0},children:[(0,_jsxRuntime.jsx)(DragIndicator,{isResizing:o,mode:i,variant:h}),(0,_jsxRuntime.jsxs)("div",{style:{padding:"0 16px",display:"flex",flexDirection:"column",alignItems:"center"},children:[n?.title&&(0,_jsxRuntime.jsx)("span",{style:{fontSize:16,fontWeight:600,color:gameUI.primary},children:n.title}),n?.subtitle&&(0,_jsxRuntime.jsx)("span",{style:{fontSize:12,color:gameUI.secondary,paddingTop:4},children:n.subtitle})]}),(0,_jsxRuntime.jsx)("div",{style:{position:"absolute",inset:0,display:"flex",alignItems:"center",justifyContent:"center",pointerEvents:"none"},children:(0,_jsxRuntime.jsx)("span",{style:{fontSize:10,color:gameUI.muted,fontStyle:"italic"},children:"Double tap: Toggle \u2022 Triple tap: Close"})})]})}const JsModalComponent=({visible:n,onClose:o,children:i,header:f,styles:h={},minHeight:u=MIN_HEIGHT,maxHeight:w,initialHeight:S=DEFAULT_HEIGHT,animatedHeight:it,benchMotion:J,initialMode:St="bottomSheet",onModeChange:st,persistenceKey:j,enablePersistence:R=true,initialFloatingPosition:at,footer:lt,footerHeight:ct=0,onBack:Xt,onMinimize:m,minimizeRequest:z=0,minimizeTargetPosition:V,initialModalState:g,zIndex:dt,disableScrollWrapper:Rt=false,background:ut=true,variant:Z="night"})=>{const[b]=(0,_react.useState)(readSafeAreaInsets);const[ft,ht]=(0,_react.useState)(!R);const[d,Q]=(0,_react.useState)(St);const F=(0,_react.useRef)(st);F.current=st;const[A,M]=(0,_react.useState)(false);const[K,P]=(0,_react.useState)(false);const[Mt,tt]=(0,_react.useState)(S);const[C,B]=(0,_react.useState)(()=>clampRectToSafeArea({width:screenW(),height:FLOATING_HEIGHT,top:at?.y??(screenH()-FLOATING_HEIGHT)/2,left:at?.x??0},b));const[Tt,O]=(0,_react.useState)(false);const[Dt,gt]=(0,_react.useState)(false);const Ht=(0,_index.useHintsDisabled)();const T=(0,_react.useRef)(S);const y=(0,_react.useRef)(C);const p=(0,_react.useRef)({x:C.left,y:C.top});const X=(0,_react.useRef)(null);const et=(0,_react.useRef)(null);const k=(0,_react.useRef)(null);const D=(0,_react.useRef)([]);const v=(0,_react.useCallback)(()=>{D.current.forEach(t=>t());D.current=[]},[]);(0,_react.useEffect)(()=>{y.current=C},[C]);(0,_react.useEffect)(()=>v,[v]);const pt=w||screenH()-b.top;(0,_react.useEffect)(()=>{if(!R||!j){ht(true);return}let t=true;const e=async()=>{const r=await _modalStorage.ModalStorage.load(j);if(t&&r){if(r.mode){Q(r.mode);F.current?.(r.mode)}if(r.panelHeight){tt(r.panelHeight);T.current=r.panelHeight}if(r.dimensions){const s=clampRectToSafeArea(r.dimensions,b);B(s);p.current={x:s.left,y:s.top}}}if(t)ht(true)};e();return()=>{t=false}},[j,R]);(0,_react.useEffect)(()=>{if(!R||!j||!ft)return;const t=setTimeout(()=>{_modalStorage.ModalStorage.save(j,{mode:d,panelHeight:T.current,dimensions:C,isVisible:n})},500);return()=>clearTimeout(t)},[d,Mt,C,n,j,R,ft]);(0,_react.useEffect)(()=>{let t=true;const e=async()=>{try{const r=_devToolsStorageKeys.devToolsStorageKeys.modal.hintAcknowledged();const s=await _persistentStorage.persistentStorage.getItem(r);if(t){O(s!=="true");gt(true)}}catch{if(t){O(true);gt(true)}}};e();return()=>{t=false}},[]);const It=(0,_react.useCallback)(async()=>{try{const t=_devToolsStorageKeys.devToolsStorageKeys.modal.hintAcknowledged();await _persistentStorage.persistentStorage.setItem(t,"true");O(false)}catch{O(false)}},[]);const nt=(0,_react.useCallback)(()=>{P(false);M(false);const t=d==="bottomSheet"?"floating":"bottomSheet";Q(t);F.current?.(t)},[d]);(0,_react.useEffect)(()=>{P(false);M(false)},[d]);const H=(0,_react.useCallback)(()=>{if(!m)return;const t={mode:d,panelHeight:T.current,floatingPosition:{x:y.current.left,y:y.current.top},floatingDimensions:{width:y.current.width,height:y.current.height}};if(R&&j)void _modalStorage.ModalStorage.saveMinimized(j,t);const e=V?.x??screenW()-50;const r=V?.y??screenH()-150;v();if(d==="bottomSheet"){const s=X.current;if(!s){m(t);return}const a=screenH();D.current.push(runAnim(300,easeInOut,c=>{s.style.opacity=String(1-c);s.style.transform=`translateY(${c*a}px)`},()=>m(t)))}else{const s=k.current;if(!s){m(t);return}const a={...p.current};D.current.push(runAnim(300,easeInOut,c=>{s.style.opacity=String(1-c);const L=a.x+(e-a.x)*c;const I=a.y+(r-a.y)*c;s.style.transform=`translate(${L}px, ${I}px)`},()=>m(t)))}},[d,m,V,v,R,j]);const xt=(0,_react.useRef)(z);(0,_react.useEffect)(()=>{if(xt.current===z)return;xt.current=z;H()},[z,H]);(0,_react.useEffect)(()=>{if(!g)return;if(g.mode){Q(g.mode);F.current?.(g.mode)}if(g.panelHeight){tt(g.panelHeight);T.current=g.panelHeight}if(g.floatingDimensions&&g.floatingPosition){const t={width:g.floatingDimensions.width,height:g.floatingDimensions.height,top:g.floatingPosition.y,left:g.floatingPosition.x};B(t);p.current={x:g.floatingPosition.x,y:g.floatingPosition.y}}},[g]);(0,_react.useLayoutEffect)(()=>{if(!n)return;v();if(d==="bottomSheet"){const t=X.current;if(!t)return;const e=screenH();t.style.transform=`translateY(${e}px)`;t.style.opacity="0";D.current.push(runAnim(300,easeOutCubic,r=>{t.style.transform=`translateY(${(1-r)*e}px)`}),runAnim(200,easeInOut,r=>{t.style.opacity=String(r)}))}else{const t=k.current;if(!t)return;p.current={x:y.current.left,y:y.current.top};t.style.transform=`translate(${p.current.x}px, ${p.current.y}px)`;t.style.opacity="0";D.current.push(runAnim(200,easeInOut,e=>{t.style.opacity=String(e)}))}},[n,d,v]);const mt=(0,_react.useRef)(0);const Y=(0,_react.useRef)(0);const E=(0,_react.useRef)(null);const G=(0,_react.useCallback)(()=>{const t=Date.now();if(t-mt.current>500){Y.current=0}Y.current++;mt.current=t;if(E.current)clearTimeout(E.current);E.current=setTimeout(()=>{if(Y.current===2){nt()}else if(Y.current>=3){if(m)H()}Y.current=0},300)},[nt,m,H]);(0,_react.useEffect)(()=>{return()=>{if(E.current)clearTimeout(E.current)}},[]);const U=(0,_react.useRef)({active:false,resizing:false,startY:0,headerOffsetY:0,samples:[]});const $t=(0,_react.useCallback)(t=>{if(d!=="bottomSheet")return;if(t.button!==0||t.target.closest('button, a, input, textarea, select, [role="button"], [role="tab"], [role="switch"], [contenteditable="true"], [tabindex]'))return;const e=U.current;e.active=true;e.resizing=false;e.startY=t.clientY;const r=t.currentTarget.getBoundingClientRect();e.headerOffsetY=t.clientY-r.top;e.samples=[{t:performance.now(),y:t.clientY}];t.currentTarget.setPointerCapture(t.pointerId)},[d]);const At=(0,_react.useCallback)(t=>{const e=U.current;if(!e.active)return;const r=t.clientY-e.startY;if(!e.resizing&&Math.abs(r)>3){e.resizing=true;v();M(true)}if(!e.resizing)return;const s=t.clientY-e.headerOffsetY;let a=screenH()-s;a=Math.max(u,Math.min(a,pt));T.current=a;if(et.current)et.current.style.height=`${a}px`;const c=performance.now();e.samples.push({t:c,y:t.clientY});while(e.samples.length>2&&c-e.samples[0].t>100)e.samples.shift()},[u,pt,v]);const Pt=(0,_react.useCallback)(t=>{const e=U.current;if(!e.active)return;e.active=false;if(!e.resizing){G();return}M(false);const r=T.current;const s=t.clientY-e.startY;const a=e.samples[0];const c=e.samples[e.samples.length-1];const L=c&&a&&c.t>a.t?(c.y-a.y)/(c.t-a.t):0;const I=L>.8&&s>50||s>150&&r<=u;if(I){const x=X.current;v();if(x){const W=screenH();D.current.push(runAnim(200,easeInOut,$=>{x.style.opacity=String(1-$)}),runAnim(300,easeOutCubic,$=>{x.style.transform=`translateY(${$*W}px)`},()=>o()))}else{o()}return}tt(r)},[u,o,G,v]);const Bt=(0,_react.useCallback)(()=>{const t=U.current;if(!t.active)return;t.active=false;t.resizing=false;M(false)},[]);const q=(0,_react.useRef)({active:false,dragging:false,startX:0,startY:0,startPos:{x:0,y:0}});const Yt=(0,_react.useCallback)(t=>{if(d!=="floating"||A)return;if(t.button!==0||t.target.closest('button, a, input, textarea, select, [role="button"], [role="tab"], [role="switch"], [contenteditable="true"], [tabindex]'))return;const e=q.current;e.active=true;e.dragging=false;e.startX=t.clientX;e.startY=t.clientY;e.startPos={...p.current};t.currentTarget.setPointerCapture(t.pointerId)},[d,A]);const Et=(0,_react.useCallback)(t=>{const e=q.current;if(!e.active)return;const r=t.clientX-e.startX;const s=t.clientY-e.startY;if(!e.dragging&&Math.abs(r)+Math.abs(s)>5){e.dragging=true;P(true)}if(!e.dragging)return;const a=e.startPos.x+r;const c=e.startPos.y+s;p.current={x:a,y:c};if(k.current){k.current.style.transform=`translate(${a}px, ${c}px)`}},[]);const Lt=(0,_react.useCallback)(()=>{const t=q.current;if(!t.active)return;t.active=false;if(!t.dragging){G();return}P(false);const e=y.current;const r=clampRectToSafeArea({...e,left:p.current.x,top:p.current.y},b);const s=r.left;const a=r.top;p.current={x:s,y:a};if(k.current){k.current.style.transform=`translate(${s}px, ${a}px)`}B(c=>({...c,left:s,top:a}))},[b,G]);const Wt=(0,_react.useCallback)(()=>{const t=q.current;if(!t.active)return;t.active=false;t.dragging=false;P(false)},[]);const ot=(0,_react.useRef)({active:false,corner:"bottomRight",startX:0,startY:0,start:{width:0,height:0,top:0,left:0}});const _t=(0,_react.useCallback)(t=>e=>{if(d!=="floating")return;e.stopPropagation();const r=ot.current;r.active=true;r.corner=t;r.startX=e.clientX;r.startY=e.clientY;r.start={...y.current};M(true);e.currentTarget.setPointerCapture(e.pointerId)},[d]);const zt=(0,_react.useCallback)(t=>{const e=ot.current;if(!e.active)return;const r=t.clientX-e.startX;const s=t.clientY-e.startY;if(Math.abs(r)<.5&&Math.abs(s)<.5)return;const a=Math.max(0,b.left);const c=screenH()-Math.max(0,b.bottom);const L=screenW()-Math.max(0,b.right);const I=screenW()*.25;const x=e.start;const W=x.left+x.width;const $=x.top+x.height;let _=x.left;const N=x.top;let Ct=W;let rt=$;if(e.corner==="bottomLeft"){_=Math.max(a,Math.min(x.left+r,W-I));rt=Math.min(c,Math.max($+s,x.top+FLOATING_MIN_HEIGHT))}else{Ct=Math.min(L,Math.max(W+r,x.left+I));rt=Math.min(c,Math.max($+s,x.top+FLOATING_MIN_HEIGHT))}const Ft=Math.max(I,Ct-_);const Ot=Math.max(FLOATING_MIN_HEIGHT,rt-N);const kt={width:Ft,height:Ot,left:_,top:N};y.current=kt;p.current={x:_,y:N};B(kt);if(k.current){k.current.style.transform=`translate(${_}px, ${N}px)`}},[b.left,b.right,b.bottom]);const bt=(0,_react.useCallback)(()=>{const t=ot.current;if(!t.active)return;t.active=false;M(false);B(y.current)},[]);if(!n){return(0,_jsxRuntime.jsx)("div",{style:{display:"none"},"aria-hidden":true,children:i},"hidden")}const yt=f?.title||"Dev tool panel";const l=Z==="night";const vt=ut&&l?(0,_jsxRuntime.jsx)("div",{style:{position:"absolute",inset:0,pointerEvents:"none"},"aria-hidden":true,children:(0,_jsxRuntime.jsx)(_ToolBackground.ToolBackground,{})}):null;const wt=(0,_jsxRuntime.jsxs)("div",{style:{flex:1,minHeight:0,position:"relative",display:"flex",flexDirection:"column",backgroundColor:l?"transparent":buoy.base,borderBottomLeftRadius:16,borderBottomRightRadius:16,overflow:"hidden",...h.content},children:[ut&&!l?(0,_jsxRuntime.jsx)(_ToolBackground.ToolBackground,{}):null,Rt?(0,_jsxRuntime.jsx)("div",{style:{flex:1,minHeight:0,display:"flex",flexDirection:"column",paddingBottom:ct},children:i}):(0,_jsxRuntime.jsx)("div",{style:{flex:1,minHeight:0,overflowY:"auto",paddingBottom:ct},children:i}),lt?(0,_jsxRuntime.jsx)("div",{style:{position:"absolute",left:0,right:0,bottom:0,backgroundColor:buoy.base,borderBottomLeftRadius:16,borderBottomRightRadius:16},children:lt}):null]});const jt=(0,_jsxRuntime.jsx)("div",{style:{position:"absolute",top:4,right:4,zIndex:10},children:(0,_jsxRuntime.jsx)(WindowControls,{onClose:o,onMinimize:m?H:void 0,onToggleMode:nt,mode:d})});if(d==="floating"){const t=K||A;return(0,_jsxRuntime.jsxs)("div",{ref:k,role:"dialog","aria-label":yt,style:{position:"fixed",left:0,top:0,width:C.width,height:C.height,transform:`translate(${p.current.x}px, ${p.current.y}px)`,display:"flex",flexDirection:"column",backgroundColor:l?_nightTheme.night.color.bg:buoy.card,borderRadius:l?_nightTheme.night.radius.sheet:6,border:l?`1px solid ${_nightTheme.night.color.accent}55`:t?`2px solid ${buoy.primary}`:`1px solid ${buoy.border}`,boxShadow:l?`0 0 14px ${_nightTheme.night.color.accent}38`:t?`0 0 12px ${buoy.primary}7A`:`0 0 20px ${buoy.primary}4D`,...l?{overflow:"hidden"}:null,boxSizing:"border-box",zIndex:dt??1e3,...h.container},children:[vt,(0,_jsxRuntime.jsx)("div",{onPointerDown:Yt,onPointerMove:Et,onPointerUp:Lt,onPointerCancel:Wt,style:{borderTopLeftRadius:l?_nightTheme.night.radius.sheet:6,borderTopRightRadius:l?_nightTheme.night.radius.sheet:6,backgroundColor:l?"transparent":buoy.card,minHeight:56,border:l?"none":`1px solid ${buoy.border}`,boxSizing:"border-box",display:"flex",flexDirection:"column",justifyContent:"center",flexShrink:0,touchAction:"none",userSelect:"none",cursor:K?"grabbing":"grab",position:"relative"},children:(0,_jsxRuntime.jsx)(ModalHeaderContent,{header:f,isResizing:K||A,mode:d,onMinimize:m?H:void 0,variant:Z})}),jt,wt,["bottomLeft","bottomRight"].map(e=>(0,_jsxRuntime.jsx)("div",{onPointerDown:_t(e),onPointerMove:zt,onPointerUp:bt,onPointerCancel:bt,style:{position:"absolute",width:30,height:30,bottom:4,...e==="bottomLeft"?{left:4}:{right:4},zIndex:1e3,touchAction:"none",cursor:e==="bottomLeft"?"nesw-resize":"nwse-resize"},children:(0,_jsxRuntime.jsx)("div",{style:{width:20,height:20,borderRadius:10,boxSizing:"border-box",backgroundColor:t?`${gameUI.success}1A`:"transparent",border:t?`2px solid ${gameUI.success}`:"none",boxShadow:t?`0 0 8px ${gameUI.success}99`:"none"}})},e))]},"floating")}return(0,_jsxRuntime.jsx)("div",{style:{position:"fixed",inset:0,zIndex:dt??1e3,pointerEvents:"none"},children:(0,_jsxRuntime.jsx)("div",{ref:X,style:{position:"absolute",bottom:0,left:0,right:0,pointerEvents:"auto"},children:(0,_jsxRuntime.jsxs)("div",{ref:et,role:"dialog","aria-label":yt,style:{height:T.current,display:"flex",flexDirection:"column",backgroundColor:l?_nightTheme.night.color.bg:buoy.card,borderTopLeftRadius:l?_nightTheme.night.radius.sheet:6,borderTopRightRadius:l?_nightTheme.night.radius.sheet:6,border:l?`1px solid ${_nightTheme.night.color.accent}55`:`1px solid ${buoy.border}`,boxShadow:l?`0 -4px 10px ${_nightTheme.night.color.accent}38`:`0 -4px 12px ${buoy.primary}33`,...l?{overflow:"hidden"}:null,boxSizing:"border-box",position:"relative",...h.container},children:[vt,(0,_jsxRuntime.jsx)("div",{onPointerDown:$t,onPointerMove:At,onPointerUp:Pt,onPointerCancel:Bt,style:{borderTopLeftRadius:l?_nightTheme.night.radius.sheet:6,borderTopRightRadius:l?_nightTheme.night.radius.sheet:6,backgroundColor:l?"transparent":buoy.card,minHeight:56,border:l?"none":`1px solid ${buoy.border}`,boxSizing:"border-box",display:"flex",flexDirection:"column",justifyContent:"center",flexShrink:0,touchAction:"none",userSelect:"none",cursor:"ns-resize",position:"relative"},children:(0,_jsxRuntime.jsx)(ModalHeaderContent,{header:f,isResizing:A,mode:d,onMinimize:m?H:void 0,variant:Z})}),jt,Dt&&Tt&&!Ht&&(0,_jsxRuntime.jsx)(ModalHintBanner,{onAcknowledge:It}),wt]})})},"bottomSheet")};const JsModal=exports.JsModal=(0,_react.memo)(n=>{const o=(0,_licenseModule.getUseAccountAccess)()();if(o.status!=="admitted")return n.visible?(0,_jsxRuntime.jsx)(_AccountSetup.AccountSetup,{}):null;return(0,_jsxRuntime.jsx)(JsModalComponent,{...n})});
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.JsModal=void 0;var _licenseModule=require("./license/licenseModule.js");var _AccountSetup=require("./license/AccountSetup");var _react=require("react");var _persistentStorage=require("./utils/persistentStorage");var _modalStorage=require("./utils/modalStorage.js");var _devToolsStorageKeys=require("./storage/devToolsStorageKeys.js");var _index=require("./context/index.js");var _ToolBackground=require("./ui/backgrounds/ToolBackground.js");var _nightTheme=require("./ui/night/nightTheme.js");var _windowControlsSetting=require("./ui/components/windowControlsSetting.js");var _jsxRuntime=require("react/jsx-runtime");const buoy={base:"#121212",card:"#1A1A1A",border:"#333333",textMuted:"#888888",primary:"#20C997"};const gameUI={primary:"#F5F5F7",primaryLight:"#F5F5F7",secondary:"#A1A1A6",muted:"#8E8E93",success:"#34C759",info:"#00B8E6"};const MIN_HEIGHT=100;const DEFAULT_HEIGHT=400;const FLOATING_HEIGHT=500;const FLOATING_MIN_HEIGHT=80;const screenW=()=>typeof window!=="undefined"?window.innerWidth:0;const screenH=()=>typeof window!=="undefined"?window.innerHeight:0;const easeOutCubic=n=>1-Math.pow(1-n,3);const easeInOut=n=>n<.5?2*n*n:1-Math.pow(-2*n+2,2)/2;function runAnim(n,o,i,c){let h=0;let a=false;const p=performance.now();const C=B=>{if(a)return;const W=Math.min((B-p)/n,1);i(o(W));if(W<1){h=requestAnimationFrame(C)}else{c?.()}};h=requestAnimationFrame(C);return()=>{a=true;cancelAnimationFrame(h)}}function readSafeAreaInsets(){if(typeof document==="undefined"){return{top:0,left:0,right:0,bottom:0}}const n=document.createElement("div");n.style.cssText="position:fixed;top:env(safe-area-inset-top);left:env(safe-area-inset-left);right:env(safe-area-inset-right);bottom:env(safe-area-inset-bottom);visibility:hidden;pointer-events:none";document.body.appendChild(n);const o=n.getBoundingClientRect();document.body.removeChild(n);return{top:Math.max(0,o.top),left:Math.max(0,o.left),right:Math.max(0,window.innerWidth-o.right),bottom:Math.max(0,window.innerHeight-o.bottom)}}function clampRectToSafeArea(n,o,i=false){const c=Math.max(FLOATING_MIN_HEIGHT,window.innerWidth-o.left-o.right);const h=Math.max(FLOATING_MIN_HEIGHT,window.innerHeight-o.top-o.bottom);const a=Math.min(n.width,c);const p=Math.min(n.height,h);return{width:a,height:p,left:Math.max(o.left,Math.min(n.left,window.innerWidth-o.right-a)),top:Math.max(o.top,Math.min(n.top,window.innerHeight-o.bottom-(i?FLOATING_MIN_HEIGHT:p)))}}const XIcon=({size:n=24,color:o="currentColor",strokeWidth:i=2})=>(0,_jsxRuntime.jsxs)("svg",{width:n,height:n,viewBox:"0 0 24 24",fill:"none",children:[(0,_jsxRuntime.jsx)("line",{x1:18,y1:6,x2:6,y2:18,stroke:o,strokeWidth:i,strokeLinecap:"round"}),(0,_jsxRuntime.jsx)("line",{x1:6,y1:6,x2:18,y2:18,stroke:o,strokeWidth:i,strokeLinecap:"round"})]});const MinusIcon=({size:n=24,color:o="currentColor",strokeWidth:i=2})=>(0,_jsxRuntime.jsx)("svg",{width:n,height:n,viewBox:"0 0 24 24",fill:"none",children:(0,_jsxRuntime.jsx)("line",{x1:5,y1:12,x2:19,y2:12,stroke:o,strokeWidth:i,strokeLinecap:"round"})});const DockBottomIcon=({size:n=24,color:o="currentColor",strokeWidth:i=2})=>(0,_jsxRuntime.jsxs)("svg",{width:n,height:n,viewBox:"0 0 24 24",fill:"none",children:[(0,_jsxRuntime.jsx)("rect",{x:3,y:3,width:18,height:18,rx:2,stroke:o,strokeWidth:i}),(0,_jsxRuntime.jsx)("rect",{x:3,y:14,width:18,height:7,fill:o})]});const FloatWindowIcon=({size:n=24,color:o="currentColor",strokeWidth:i=2})=>(0,_jsxRuntime.jsxs)("svg",{width:n,height:n,viewBox:"0 0 24 24",fill:"none",children:[(0,_jsxRuntime.jsx)("rect",{x:3,y:3,width:14,height:14,rx:2,stroke:o,strokeWidth:i}),(0,_jsxRuntime.jsx)("line",{x1:7,y1:17,x2:7,y2:21,stroke:o,strokeWidth:i}),(0,_jsxRuntime.jsx)("line",{x1:7,y1:21,x2:21,y2:21,stroke:o,strokeWidth:i}),(0,_jsxRuntime.jsx)("line",{x1:21,y1:21,x2:21,y2:7,stroke:o,strokeWidth:i}),(0,_jsxRuntime.jsx)("line",{x1:17,y1:7,x2:21,y2:7,stroke:o,strokeWidth:i})]});const WC_COLORS={close:"#FF5F57",minimize:"#FEBC2E",toggleMode:"#28C840"};const WC_BUTTON_SIZE=24;const WC_BUTTON_SPACING=2;const WC_ICON_SIZE=8;const wcDotStyle=n=>({width:WC_BUTTON_SIZE,height:WC_BUTTON_SIZE,borderRadius:WC_BUTTON_SIZE/2,display:"flex",alignItems:"center",justifyContent:"center",background:`radial-gradient(circle, ${n} 6px, transparent 6px)`,border:"none",padding:0,cursor:"pointer",flexShrink:0});function WindowControls(n){if((0,_windowControlsSetting.isExpandableWindowControlsEnabled)()&&(0,_windowControlsSetting.expandableWindowControlsSupported)(true)){return(0,_jsxRuntime.jsx)(ExpandableWindowControls,{...n})}return(0,_jsxRuntime.jsx)(PlainWindowControls,{...n})}function PlainWindowControls({onClose:n,onMinimize:o,onToggleMode:i,mode:c}){const h=c==="floating"?DockBottomIcon:FloatWindowIcon;const a=c==="floating"?"Dock to bottom sheet":"Make floating window";return(0,_jsxRuntime.jsxs)("div",{style:{display:"flex",flexDirection:"row",alignItems:"center",gap:WC_BUTTON_SPACING},children:[o&&(0,_jsxRuntime.jsx)("button",{type:"button",onClick:o,style:wcDotStyle(WC_COLORS.minimize),"aria-label":"Minimize modal",children:(0,_jsxRuntime.jsx)(MinusIcon,{size:WC_ICON_SIZE,color:"#7A5A00",strokeWidth:1.5})}),i&&(0,_jsxRuntime.jsx)("button",{type:"button",onClick:i,style:wcDotStyle(WC_COLORS.toggleMode),"aria-label":a,children:(0,_jsxRuntime.jsx)(h,{size:WC_ICON_SIZE,color:"#004A1A",strokeWidth:1.5})}),(0,_jsxRuntime.jsx)("button",{type:"button",onClick:n,style:wcDotStyle(WC_COLORS.close),"aria-label":"Close modal",children:(0,_jsxRuntime.jsx)(XIcon,{size:WC_ICON_SIZE,color:"#4A0000",strokeWidth:1.5})})]})}const WC_DOT_SIZE=12;const WC_DOT_SPACING=8;const WC_EXPANDED_BUTTON_SIZE=36;const WC_EXPANDED_BUTTON_SPACING=12;const WC_EXPANDED_ICON_SIZE=16;const WC_EXPANDED_PADDING=8;const WC_AUTO_DISMISS_MS=3e3;const WC_ANIMATION_MS=150;const wcCollapsedDot=n=>({width:WC_DOT_SIZE,height:WC_DOT_SIZE,borderRadius:WC_DOT_SIZE/2,backgroundColor:n,display:"flex",alignItems:"center",justifyContent:"center"});const wcExpandedButton=(n,o,i,c)=>({width:WC_EXPANDED_BUTTON_SIZE,height:WC_EXPANDED_BUTTON_SIZE,borderRadius:WC_EXPANDED_BUTTON_SIZE/2,display:"flex",alignItems:"center",justifyContent:"center",padding:0,cursor:"pointer",flexShrink:0,backgroundColor:n?i:o,border:n?`1px solid ${c}`:"none"});function ExpandableWindowControls({onClose:n,onMinimize:o,onToggleMode:i,mode:c,variant:h="night"}){const a=h==="night";const[p,C]=(0,_react.useState)(false);const[B,W]=(0,_react.useState)(false);const H=(0,_react.useRef)(null);const T=(0,_react.useRef)(null);const y=c==="floating"?DockBottomIcon:FloatWindowIcon;const k=c==="floating"?"Dock to bottom sheet":"Make floating window";const S=(0,_react.useCallback)(()=>{if(H.current)clearTimeout(H.current);if(T.current)clearTimeout(T.current);H.current=null;T.current=null},[]);const P=(0,_react.useCallback)(()=>{S();W(false);T.current=setTimeout(()=>C(false),WC_ANIMATION_MS)},[S]);const U=(0,_react.useCallback)(()=>{S();C(true);requestAnimationFrame(()=>requestAnimationFrame(()=>W(true)));H.current=setTimeout(P,WC_AUTO_DISMISS_MS)},[S,P]);(0,_react.useEffect)(()=>S,[S]);const q=b=>{P();b()};return(0,_jsxRuntime.jsxs)(_jsxRuntime.Fragment,{children:[(0,_jsxRuntime.jsxs)("button",{type:"button",onClick:U,"aria-label":"Open window controls","data-testid":"tool-window-controls",style:{padding:10,margin:-8,border:"none",background:"transparent",cursor:"pointer",display:"flex",flexDirection:"row",alignItems:"center",gap:WC_DOT_SPACING},children:[o&&(0,_jsxRuntime.jsx)("span",{style:wcCollapsedDot(WC_COLORS.minimize),children:(0,_jsxRuntime.jsx)(MinusIcon,{size:WC_ICON_SIZE,color:"#7A5A00",strokeWidth:1.5})}),i&&(0,_jsxRuntime.jsx)("span",{style:wcCollapsedDot(WC_COLORS.toggleMode),children:(0,_jsxRuntime.jsx)(y,{size:WC_ICON_SIZE,color:"#004A1A",strokeWidth:1.5})}),(0,_jsxRuntime.jsx)("span",{style:wcCollapsedDot(WC_COLORS.close),children:(0,_jsxRuntime.jsx)(XIcon,{size:WC_ICON_SIZE,color:"#4A0000",strokeWidth:1.5})})]}),p&&(0,_jsxRuntime.jsx)("div",{style:{position:"absolute",top:-WC_EXPANDED_PADDING,right:-WC_EXPANDED_PADDING,zIndex:9999,transform:`scale(${B?1:.3})`,opacity:B?1:0,transition:`transform ${WC_ANIMATION_MS}ms ease-out, opacity ${WC_ANIMATION_MS}ms ease-out`},children:(0,_jsxRuntime.jsxs)("div",{style:{display:"flex",flexDirection:"row",alignItems:"center",gap:WC_EXPANDED_BUTTON_SPACING,padding:WC_EXPANDED_PADDING,borderRadius:(WC_EXPANDED_BUTTON_SIZE+WC_EXPANDED_PADDING*2)/2,backgroundColor:a?_nightTheme.night.color.surface:buoy.card,border:`1px solid ${a?_nightTheme.night.color.border:buoy.border}`,boxShadow:"0 4px 12px rgba(0,0,0,0.4)"},children:[o&&(0,_jsxRuntime.jsx)("button",{type:"button",onClick:()=>q(o),"aria-label":"Minimize modal","data-testid":"tool-window-minimize",style:wcExpandedButton(a,WC_COLORS.minimize,_nightTheme.night.color.warningSoft,_nightTheme.night.color.warning+"59"),children:(0,_jsxRuntime.jsx)(MinusIcon,{size:WC_EXPANDED_ICON_SIZE,color:a?_nightTheme.night.color.warning:"#7A5A00",strokeWidth:2})}),i&&(0,_jsxRuntime.jsx)("button",{type:"button",onClick:()=>q(i),"aria-label":k,"data-testid":"tool-window-mode",style:wcExpandedButton(a,WC_COLORS.toggleMode,_nightTheme.night.color.accentSoft,_nightTheme.night.color.accentBorderStrong),children:(0,_jsxRuntime.jsx)(y,{size:WC_EXPANDED_ICON_SIZE,color:a?_nightTheme.night.color.accent:"#004A1A",strokeWidth:2})}),(0,_jsxRuntime.jsx)("button",{type:"button",onClick:()=>q(n),"aria-label":"Close modal","data-testid":"tool-window-close",style:wcExpandedButton(a,WC_COLORS.close,_nightTheme.night.color.dangerSoft,_nightTheme.night.color.danger+"59"),children:(0,_jsxRuntime.jsx)(XIcon,{size:WC_EXPANDED_ICON_SIZE,color:a?_nightTheme.night.color.danger:"#4A0000",strokeWidth:2})})]})})]})}const DragIndicator=(0,_react.memo)(function n({isResizing:o,mode:i,hasCustomContent:c=false,variant:h="default"}){const a=i==="floating";const p=h==="night";return(0,_jsxRuntime.jsxs)("div",{style:{display:"flex",flexDirection:"column",alignItems:"center",position:"relative",justifyContent:c?"center":void 0,minHeight:c?32:void 0,paddingTop:c?0:8,paddingBottom:c?0:8,backgroundColor:"transparent"},children:[(0,_jsxRuntime.jsx)("div",{style:{width:p?36:o?40:a?50:40,height:p?5:a?5:3,backgroundColor:p?_nightTheme.night.color.placeholder:o?buoy.primary:a?buoy.textMuted:buoy.primary,borderRadius:p?2.5:2,boxShadow:p?"none":`0 0 4px ${buoy.primary}99`}}),o&&i==="bottomSheet"&&(0,_jsxRuntime.jsx)("div",{style:{position:"absolute",display:"flex",flexDirection:"row",gap:2,marginTop:12},children:[0,1,2].map(C=>(0,_jsxRuntime.jsx)("div",{style:{width:12,height:1,backgroundColor:gameUI.success,opacity:.6}},C))})]})});const ModalHintBanner=(0,_react.memo)(function n({onAcknowledge:o}){return(0,_jsxRuntime.jsx)("div",{style:{backgroundColor:`${gameUI.info}15`,borderLeft:`3px solid ${gameUI.info}`,borderRadius:8,margin:"8px 12px 4px",overflow:"hidden",boxShadow:`0 0 8px ${gameUI.info}4D`,flexShrink:0},children:(0,_jsxRuntime.jsxs)("div",{style:{display:"flex",flexDirection:"row",alignItems:"center",padding:12,gap:12},children:[(0,_jsxRuntime.jsxs)("div",{style:{width:32,height:32,position:"relative",display:"flex",alignItems:"center",justifyContent:"center",flexShrink:0},children:[(0,_jsxRuntime.jsx)("div",{style:{position:"absolute",width:20,height:20,borderRadius:10,border:`2px solid ${gameUI.info}`,opacity:.6,transform:"scale(0.8)",boxSizing:"border-box"}}),(0,_jsxRuntime.jsx)("div",{style:{position:"absolute",width:20,height:20,borderRadius:10,border:`2px solid ${gameUI.info}`,boxSizing:"border-box"}})]}),(0,_jsxRuntime.jsxs)("div",{style:{flex:1,display:"flex",flexDirection:"column",gap:2},children:[(0,_jsxRuntime.jsx)("span",{style:{fontSize:13,fontWeight:600,color:gameUI.info,letterSpacing:.3},children:"\u{1F4A1} Pro Tip"}),(0,_jsxRuntime.jsx)("span",{style:{fontSize:12,color:gameUI.primaryLight,lineHeight:"16px"},children:"Double-tap the header to transform this into a floating modal"})]}),(0,_jsxRuntime.jsx)("button",{type:"button",onClick:o,style:{backgroundColor:`${gameUI.info}30`,padding:"6px 12px",borderRadius:6,border:`1px solid ${gameUI.info}50`,fontSize:12,fontWeight:600,color:gameUI.info,cursor:"pointer",fontFamily:"inherit",flexShrink:0},children:"Got it!"})]})})});function ModalHeaderContent({header:n,isResizing:o,mode:i,onMinimize:c,variant:h="default"}){if(n?.customContent){let a=n.customContent;if((0,_react.isValidElement)(n.customContent)&&c){a=(0,_react.cloneElement)(n.customContent,{onMinimize:c})}return(0,_jsxRuntime.jsxs)("div",{style:{flex:1,display:"flex",flexDirection:"column",justifyContent:"center",minWidth:0},children:[(0,_jsxRuntime.jsx)(DragIndicator,{isResizing:o,mode:i,hasCustomContent:true,variant:h}),a]})}return(0,_jsxRuntime.jsxs)("div",{style:{flex:1,display:"flex",flexDirection:"column",justifyContent:"center",position:"relative",minWidth:0},children:[(0,_jsxRuntime.jsx)(DragIndicator,{isResizing:o,mode:i,variant:h}),(0,_jsxRuntime.jsxs)("div",{style:{padding:"0 16px",display:"flex",flexDirection:"column",alignItems:"center"},children:[n?.title&&(0,_jsxRuntime.jsx)("span",{style:{fontSize:16,fontWeight:600,color:gameUI.primary},children:n.title}),n?.subtitle&&(0,_jsxRuntime.jsx)("span",{style:{fontSize:12,color:gameUI.secondary,paddingTop:4},children:n.subtitle})]}),(0,_jsxRuntime.jsx)("div",{style:{position:"absolute",inset:0,display:"flex",alignItems:"center",justifyContent:"center",pointerEvents:"none"},children:(0,_jsxRuntime.jsx)("span",{style:{fontSize:10,color:gameUI.muted,fontStyle:"italic"},children:"Double tap: Toggle \u2022 Triple tap: Close"})})]})}const JsModalComponent=({visible:n,onClose:o,children:i,header:c,styles:h={},minHeight:a=MIN_HEIGHT,maxHeight:p,initialHeight:C=DEFAULT_HEIGHT,animatedHeight:B,benchMotion:W,initialMode:H="bottomSheet",onModeChange:T,persistenceKey:y,enablePersistence:k=true,initialFloatingPosition:S,footer:P,footerHeight:U=0,onBack:q,onMinimize:b,minimizeRequest:Z=0,minimizeTargetPosition:it,initialModalState:g,zIndex:ht,disableScrollWrapper:At=false,background:gt=true,variant:J="night"})=>{const[w]=(0,_react.useState)(readSafeAreaInsets);const[pt,xt]=(0,_react.useState)(!k);const[f,st]=(0,_react.useState)(H);const V=(0,_react.useRef)(T);V.current=T;const[z,A]=(0,_react.useState)(false);const[at,Y]=(0,_react.useState)(false);const[It,lt]=(0,_react.useState)(C);const[R,L]=(0,_react.useState)(()=>clampRectToSafeArea({width:screenW(),height:FLOATING_HEIGHT,top:S?.y??(screenH()-FLOATING_HEIGHT)/2,left:S?.x??0},w));const[Mt,Q]=(0,_react.useState)(false);const[Et,mt]=(0,_react.useState)(false);const _t=(0,_index.useHintsDisabled)();const I=(0,_react.useRef)(C);const v=(0,_react.useRef)(R);const x=(0,_react.useRef)({x:R.left,y:R.top});const K=(0,_react.useRef)(null);const ct=(0,_react.useRef)(null);const D=(0,_react.useRef)(null);const M=(0,_react.useRef)([]);const j=(0,_react.useCallback)(()=>{M.current.forEach(t=>t());M.current=[]},[]);(0,_react.useEffect)(()=>{v.current=R},[R]);(0,_react.useEffect)(()=>j,[j]);const bt=p||screenH()-w.top;(0,_react.useEffect)(()=>{if(!k||!y){xt(true);return}let t=true;const e=async()=>{const r=await _modalStorage.ModalStorage.load(y);if(t&&r){if(r.mode){st(r.mode);V.current?.(r.mode)}if(r.panelHeight){lt(r.panelHeight);I.current=r.panelHeight}if(r.dimensions){const s=clampRectToSafeArea(r.dimensions,w,true);L(s);x.current={x:s.left,y:s.top}}}if(t)xt(true)};e();return()=>{t=false}},[y,k]);(0,_react.useEffect)(()=>{if(!k||!y||!pt)return;const t=setTimeout(()=>{_modalStorage.ModalStorage.save(y,{mode:f,panelHeight:I.current,dimensions:R,isVisible:n})},500);return()=>clearTimeout(t)},[f,It,R,n,y,k,pt]);(0,_react.useEffect)(()=>{let t=true;const e=async()=>{try{const r=_devToolsStorageKeys.devToolsStorageKeys.modal.hintAcknowledged();const s=await _persistentStorage.persistentStorage.getItem(r);if(t){Q(s!=="true");mt(true)}}catch{if(t){Q(true);mt(true)}}};e();return()=>{t=false}},[]);const $t=(0,_react.useCallback)(async()=>{try{const t=_devToolsStorageKeys.devToolsStorageKeys.modal.hintAcknowledged();await _persistentStorage.persistentStorage.setItem(t,"true");Q(false)}catch{Q(false)}},[]);const dt=(0,_react.useCallback)(()=>{Y(false);A(false);const t=f==="bottomSheet"?"floating":"bottomSheet";st(t);V.current?.(t)},[f]);(0,_react.useEffect)(()=>{Y(false);A(false)},[f]);const E=(0,_react.useCallback)(()=>{if(!b)return;const t={mode:f,panelHeight:I.current,floatingPosition:{x:v.current.left,y:v.current.top},floatingDimensions:{width:v.current.width,height:v.current.height}};if(k&&y)void _modalStorage.ModalStorage.saveMinimized(y,t);const e=it?.x??screenW()-50;const r=it?.y??screenH()-150;j();if(f==="bottomSheet"){const s=K.current;if(!s){b(t);return}const l=screenH();M.current.push(runAnim(300,easeInOut,u=>{s.style.opacity=String(1-u);s.style.transform=`translateY(${u*l}px)`},()=>b(t)))}else{const s=D.current;if(!s){b(t);return}const l={...x.current};M.current.push(runAnim(300,easeInOut,u=>{s.style.opacity=String(1-u);const O=l.x+(e-l.x)*u;const _=l.y+(r-l.y)*u;s.style.transform=`translate(${O}px, ${_}px)`},()=>b(t)))}},[f,b,it,j,k,y]);const yt=(0,_react.useRef)(Z);(0,_react.useEffect)(()=>{if(yt.current===Z)return;yt.current=Z;E()},[Z,E]);(0,_react.useEffect)(()=>{if(!g)return;if(g.mode){st(g.mode);V.current?.(g.mode)}if(g.panelHeight){lt(g.panelHeight);I.current=g.panelHeight}if(g.floatingDimensions&&g.floatingPosition){const t={width:g.floatingDimensions.width,height:g.floatingDimensions.height,top:g.floatingPosition.y,left:g.floatingPosition.x};L(t);x.current={x:g.floatingPosition.x,y:g.floatingPosition.y}}},[g]);(0,_react.useLayoutEffect)(()=>{if(!n)return;j();if(f==="bottomSheet"){const t=K.current;if(!t)return;const e=screenH();t.style.transform=`translateY(${e}px)`;t.style.opacity="0";M.current.push(runAnim(300,easeOutCubic,r=>{t.style.transform=`translateY(${(1-r)*e}px)`}),runAnim(200,easeInOut,r=>{t.style.opacity=String(r)}))}else{const t=D.current;if(!t)return;x.current={x:v.current.left,y:v.current.top};t.style.transform=`translate(${x.current.x}px, ${x.current.y}px)`;t.style.opacity="0";M.current.push(runAnim(200,easeInOut,e=>{t.style.opacity=String(e)}))}},[n,f,j]);const wt=(0,_react.useRef)(0);const F=(0,_react.useRef)(0);const N=(0,_react.useRef)(null);const tt=(0,_react.useCallback)(()=>{const t=Date.now();if(t-wt.current>500){F.current=0}F.current++;wt.current=t;if(N.current)clearTimeout(N.current);N.current=setTimeout(()=>{if(F.current===2){dt()}else if(F.current>=3){if(b)E()}F.current=0},300)},[dt,b,E]);(0,_react.useEffect)(()=>{return()=>{if(N.current)clearTimeout(N.current)}},[]);const et=(0,_react.useRef)({active:false,resizing:false,startY:0,headerOffsetY:0,samples:[]});const Wt=(0,_react.useCallback)(t=>{if(f!=="bottomSheet")return;if(t.button!==0||t.target.closest('button, a, input, textarea, select, [role="button"], [role="tab"], [role="switch"], [contenteditable="true"], [tabindex]'))return;const e=et.current;e.active=true;e.resizing=false;e.startY=t.clientY;const r=t.currentTarget.getBoundingClientRect();e.headerOffsetY=t.clientY-r.top;e.samples=[{t:performance.now(),y:t.clientY}];t.currentTarget.setPointerCapture(t.pointerId)},[f]);const Ht=(0,_react.useCallback)(t=>{const e=et.current;if(!e.active)return;const r=t.clientY-e.startY;if(!e.resizing&&Math.abs(r)>3){e.resizing=true;j();A(true)}if(!e.resizing)return;const s=t.clientY-e.headerOffsetY;let l=screenH()-s;l=Math.max(a,Math.min(l,bt));I.current=l;if(ct.current)ct.current.style.height=`${l}px`;const u=performance.now();e.samples.push({t:u,y:t.clientY});while(e.samples.length>2&&u-e.samples[0].t>100)e.samples.shift()},[a,bt,j]);const Pt=(0,_react.useCallback)(t=>{const e=et.current;if(!e.active)return;e.active=false;if(!e.resizing){tt();return}A(false);const r=I.current;const s=t.clientY-e.startY;const l=e.samples[0];const u=e.samples[e.samples.length-1];const O=u&&l&&u.t>l.t?(u.y-l.y)/(u.t-l.t):0;const _=O>.8&&s>50||s>150&&r<=a;if(_){const m=K.current;j();if(m){const X=screenH();M.current.push(runAnim(200,easeInOut,$=>{m.style.opacity=String(1-$)}),runAnim(300,easeOutCubic,$=>{m.style.transform=`translateY(${$*X}px)`},()=>o()))}else{o()}return}lt(r)},[a,o,tt,j]);const Bt=(0,_react.useCallback)(()=>{const t=et.current;if(!t.active)return;t.active=false;t.resizing=false;A(false)},[]);const nt=(0,_react.useRef)({active:false,dragging:false,startX:0,startY:0,startPos:{x:0,y:0}});const zt=(0,_react.useCallback)(t=>{if(f!=="floating"||z)return;if(t.button!==0||t.target.closest('button, a, input, textarea, select, [role="button"], [role="tab"], [role="switch"], [contenteditable="true"], [tabindex]'))return;const e=nt.current;e.active=true;e.dragging=false;e.startX=t.clientX;e.startY=t.clientY;e.startPos={...x.current};t.currentTarget.setPointerCapture(t.pointerId)},[f,z]);const Yt=(0,_react.useCallback)(t=>{const e=nt.current;if(!e.active)return;const r=t.clientX-e.startX;const s=t.clientY-e.startY;if(!e.dragging&&Math.abs(r)+Math.abs(s)>5){e.dragging=true;Y(true)}if(!e.dragging)return;const l=e.startPos.x+r;const u=e.startPos.y+s;x.current={x:l,y:u};if(D.current){D.current.style.transform=`translate(${l}px, ${u}px)`}},[]);const Lt=(0,_react.useCallback)(()=>{const t=nt.current;if(!t.active)return;t.active=false;if(!t.dragging){tt();return}Y(false);const e=v.current;const r=clampRectToSafeArea({...e,left:x.current.x,top:x.current.y},w);const s=r.left;const l=r.top;x.current={x:s,y:l};if(D.current){D.current.style.transform=`translate(${s}px, ${l}px)`}L(u=>({...u,left:s,top:l}))},[w,tt]);const Ft=(0,_react.useCallback)(()=>{const t=nt.current;if(!t.active)return;t.active=false;t.dragging=false;Y(false)},[]);const ut=(0,_react.useRef)({active:false,corner:"bottomRight",startX:0,startY:0,start:{width:0,height:0,top:0,left:0}});const Nt=(0,_react.useCallback)(t=>e=>{if(f!=="floating")return;e.stopPropagation();const r=ut.current;r.active=true;r.corner=t;r.startX=e.clientX;r.startY=e.clientY;r.start={...v.current};A(true);e.currentTarget.setPointerCapture(e.pointerId)},[f]);const Ot=(0,_react.useCallback)(t=>{const e=ut.current;if(!e.active)return;const r=t.clientX-e.startX;const s=t.clientY-e.startY;if(Math.abs(r)<.5&&Math.abs(s)<.5)return;const l=Math.max(0,w.left);const u=screenH()-Math.max(0,w.bottom);const O=screenW()-Math.max(0,w.right);const _=screenW()*.25;const m=e.start;const X=m.left+m.width;const $=m.top+m.height;let G=m.left;const rt=m.top;let Dt=X;let ft=$;if(e.corner==="bottomLeft"){G=Math.max(l,Math.min(m.left+r,X-_));ft=Math.min(u,Math.max($+s,m.top+FLOATING_MIN_HEIGHT))}else{Dt=Math.min(O,Math.max(X+r,m.left+_));ft=Math.min(u,Math.max($+s,m.top+FLOATING_MIN_HEIGHT))}const Xt=Math.max(_,Dt-G);const Gt=Math.max(FLOATING_MIN_HEIGHT,ft-rt);const Tt={width:Xt,height:Gt,left:G,top:rt};v.current=Tt;x.current={x:G,y:rt};L(Tt);if(D.current){D.current.style.transform=`translate(${G}px, ${rt}px)`}},[w.left,w.right,w.bottom]);const vt=(0,_react.useCallback)(()=>{const t=ut.current;if(!t.active)return;t.active=false;A(false);L(v.current)},[]);const ot=!n;const Ct=ot?{left:-9999,top:-9999,opacity:0,visibility:"hidden",pointerEvents:"none"}:{};const jt=c?.title||"Dev tool panel";const d=J==="night";const kt=gt&&d?(0,_jsxRuntime.jsx)("div",{style:{position:"absolute",inset:0,pointerEvents:"none"},"aria-hidden":true,children:(0,_jsxRuntime.jsx)(_ToolBackground.ToolBackground,{})}):null;const St=(0,_jsxRuntime.jsxs)("div",{style:{flex:1,minHeight:0,position:"relative",display:"flex",flexDirection:"column",backgroundColor:d?"transparent":buoy.base,borderBottomLeftRadius:16,borderBottomRightRadius:16,overflow:"hidden",...h.content},children:[gt&&!d?(0,_jsxRuntime.jsx)(_ToolBackground.ToolBackground,{}):null,At?(0,_jsxRuntime.jsx)("div",{style:{flex:1,minHeight:0,display:"flex",flexDirection:"column",paddingBottom:U},children:i}):(0,_jsxRuntime.jsx)("div",{style:{flex:1,minHeight:0,overflowY:"auto",paddingBottom:U},children:i}),P?(0,_jsxRuntime.jsx)("div",{style:{position:"absolute",left:0,right:0,bottom:0,backgroundColor:buoy.base,borderBottomLeftRadius:16,borderBottomRightRadius:16},children:P}):null]});const Rt=(0,_jsxRuntime.jsx)("div",{style:{position:"absolute",top:4,right:4,zIndex:10},children:(0,_jsxRuntime.jsx)(WindowControls,{onClose:o,onMinimize:b?E:void 0,onToggleMode:dt,mode:f,variant:J})});if(f==="floating"){const t=at||z;return(0,_jsxRuntime.jsxs)("div",{ref:D,role:"dialog","aria-label":jt,"aria-hidden":ot||void 0,style:{position:"fixed",pointerEvents:"auto",left:0,top:0,width:R.width,height:R.height,transform:`translate(${x.current.x}px, ${x.current.y}px)`,display:"flex",flexDirection:"column",backgroundColor:d?_nightTheme.night.color.bg:buoy.card,borderRadius:d?_nightTheme.night.radius.sheet:6,border:d?`1px solid ${_nightTheme.night.color.accent}55`:t?`2px solid ${buoy.primary}`:`1px solid ${buoy.border}`,boxShadow:d?`0 0 14px ${_nightTheme.night.color.accent}38`:t?`0 0 12px ${buoy.primary}7A`:`0 0 20px ${buoy.primary}4D`,...d?{overflow:"hidden"}:null,boxSizing:"border-box",zIndex:ht??1e3,...h.container,...Ct},children:[kt,(0,_jsxRuntime.jsx)("div",{onPointerDown:zt,onPointerMove:Yt,onPointerUp:Lt,onPointerCancel:Ft,style:{borderTopLeftRadius:d?_nightTheme.night.radius.sheet:6,borderTopRightRadius:d?_nightTheme.night.radius.sheet:6,backgroundColor:d?"transparent":buoy.card,minHeight:56,border:d?"none":`1px solid ${buoy.border}`,boxSizing:"border-box",display:"flex",flexDirection:"column",justifyContent:"center",flexShrink:0,touchAction:"none",userSelect:"none",cursor:at?"grabbing":"grab",position:"relative"},children:(0,_jsxRuntime.jsx)(ModalHeaderContent,{header:c,isResizing:at||z,mode:f,onMinimize:b?E:void 0,variant:J})}),Rt,St,["bottomLeft","bottomRight"].map(e=>(0,_jsxRuntime.jsx)("div",{onPointerDown:Nt(e),onPointerMove:Ot,onPointerUp:vt,onPointerCancel:vt,style:{position:"absolute",width:30,height:30,bottom:4,...e==="bottomLeft"?{left:4}:{right:4},zIndex:1e3,touchAction:"none",cursor:e==="bottomLeft"?"nesw-resize":"nwse-resize"},children:(0,_jsxRuntime.jsx)("div",{style:{width:20,height:20,borderRadius:10,boxSizing:"border-box",backgroundColor:t?`${gameUI.success}1A`:"transparent",border:t?`2px solid ${gameUI.success}`:"none",boxShadow:t?`0 0 8px ${gameUI.success}99`:"none"}})},e))]},"floating")}return(0,_jsxRuntime.jsx)("div",{"aria-hidden":ot||void 0,style:{position:"fixed",inset:0,zIndex:ht??1e3,pointerEvents:"none",...ot?{...Ct,inset:"auto",width:"100vw",height:"100vh"}:null},children:(0,_jsxRuntime.jsx)("div",{ref:K,style:{position:"absolute",bottom:0,left:0,right:0,pointerEvents:"auto"},children:(0,_jsxRuntime.jsxs)("div",{ref:ct,role:"dialog","aria-label":jt,style:{height:I.current,display:"flex",flexDirection:"column",backgroundColor:d?_nightTheme.night.color.bg:buoy.card,borderTopLeftRadius:d?_nightTheme.night.radius.sheet:6,borderTopRightRadius:d?_nightTheme.night.radius.sheet:6,border:d?`1px solid ${_nightTheme.night.color.accent}55`:`1px solid ${buoy.border}`,boxShadow:d?`0 -4px 10px ${_nightTheme.night.color.accent}38`:`0 -4px 12px ${buoy.primary}33`,...d?{overflow:"hidden"}:null,boxSizing:"border-box",position:"relative",...h.container},children:[kt,(0,_jsxRuntime.jsx)("div",{onPointerDown:Wt,onPointerMove:Ht,onPointerUp:Pt,onPointerCancel:Bt,style:{borderTopLeftRadius:d?_nightTheme.night.radius.sheet:6,borderTopRightRadius:d?_nightTheme.night.radius.sheet:6,backgroundColor:d?"transparent":buoy.card,minHeight:56,border:d?"none":`1px solid ${buoy.border}`,boxSizing:"border-box",display:"flex",flexDirection:"column",justifyContent:"center",flexShrink:0,touchAction:"none",userSelect:"none",cursor:"ns-resize",position:"relative"},children:(0,_jsxRuntime.jsx)(ModalHeaderContent,{header:c,isResizing:z,mode:f,onMinimize:b?E:void 0,variant:J})}),Rt,Et&&Mt&&!_t&&(0,_jsxRuntime.jsx)(ModalHintBanner,{onAcknowledge:$t}),St]})})},"bottomSheet")};const JsModal=exports.JsModal=(0,_react.memo)(n=>{const o=(0,_licenseModule.getUseAccountAccess)()();if(o.status!=="admitted")return n.visible?(0,_jsxRuntime.jsx)(_AccountSetup.AccountSetup,{}):null;return(0,_jsxRuntime.jsx)(JsModalComponent,{...n})});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.EnvironmentSelectorInline=EnvironmentSelectorInline;var _react=require("react");var _gameUIColors=require("../ui/gameUI/constants/gameUIColors.js");var _EnvironmentIndicatorWeb=require("./EnvironmentIndicator.web.js");var _jsxRuntime=require("react/jsx-runtime");const OPTION_HEIGHT=36;function ChevronUpGlyph({color:t,flipped:o}){return(0,_jsxRuntime.jsx)("svg",{width:10,height:10,viewBox:"0 0 24 24","aria-hidden":"true",style:{transform:o?"rotate(180deg)":"rotate(0deg)",transition:"transform 200ms ease"},children:(0,_jsxRuntime.jsx)("path",{d:"M18 15l-6-6-6 6",fill:"none",stroke:t,strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})})}function CheckGlyph(){return(0,_jsxRuntime.jsx)("svg",{width:12,height:12,viewBox:"0 0 24 24","aria-hidden":"true",children:(0,_jsxRuntime.jsx)("path",{d:"M20 6L9 17l-5-5",fill:"none",stroke:"#4AFF9F",strokeWidth:"3",strokeLinecap:"round",strokeLinejoin:"round"})})}function EnvironmentSelectorInline({currentEnvironment:t,availableEnvironments:o,onSelect:l}){const[r,i]=(0,_react.useState)(false);const[c,s]=(0,_react.useState)(null);const n=(0,_EnvironmentIndicatorWeb.getEnvironmentConfig)(t);const g=o.length*OPTION_HEIGHT;return(0,_jsxRuntime.jsxs)("div",{style:{position:"relative",zIndex:1e3,flexShrink:0},children:[(0,_jsxRuntime.jsx)("div",{style:{position:"absolute",bottom:"100%",left:0,right:0,height:r?g:0,opacity:r?1:0,overflow:"hidden",transition:"height 200ms ease, opacity 200ms ease",backgroundColor:"rgba(8,12,21,0.95)",border:"1px solid #00B8E666",borderBottomWidth:0,borderTopLeftRadius:6,borderTopRightRadius:6,boxShadow:"0 -4px 8px rgba(0,0,0,0.3)"},children:o.map(e=>{const a=(0,_EnvironmentIndicatorWeb.getEnvironmentConfig)(e);const d=String(e).toLowerCase()===String(t).toLowerCase();return(0,_jsxRuntime.jsxs)("button",{onClick:()=>{i(false);l(e)},
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.EnvironmentSelectorInline=EnvironmentSelectorInline;var _react=require("react");var _gameUIColors=require("../ui/gameUI/constants/gameUIColors.js");var _EnvironmentIndicatorWeb=require("./EnvironmentIndicator.web.js");var _jsxRuntime=require("react/jsx-runtime");const OPTION_HEIGHT=36;function ChevronUpGlyph({color:t,flipped:o}){return(0,_jsxRuntime.jsx)("svg",{width:10,height:10,viewBox:"0 0 24 24","aria-hidden":"true",style:{transform:o?"rotate(180deg)":"rotate(0deg)",transition:"transform 200ms ease"},children:(0,_jsxRuntime.jsx)("path",{d:"M18 15l-6-6-6 6",fill:"none",stroke:t,strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})})}function CheckGlyph(){return(0,_jsxRuntime.jsx)("svg",{width:12,height:12,viewBox:"0 0 24 24","aria-hidden":"true",children:(0,_jsxRuntime.jsx)("path",{d:"M20 6L9 17l-5-5",fill:"none",stroke:"#4AFF9F",strokeWidth:"3",strokeLinecap:"round",strokeLinejoin:"round"})})}function EnvironmentSelectorInline({currentEnvironment:t,availableEnvironments:o,onSelect:l}){const[r,i]=(0,_react.useState)(false);const[c,s]=(0,_react.useState)(null);const n=(0,_EnvironmentIndicatorWeb.getEnvironmentConfig)(t);const g=o.length*OPTION_HEIGHT;return(0,_jsxRuntime.jsxs)("div",{style:{position:"relative",zIndex:1e3,flexShrink:0},children:[(0,_jsxRuntime.jsx)("div",{style:{position:"absolute",bottom:"100%",left:0,right:0,height:r?g:0,opacity:r?1:0,overflow:"hidden",transition:"height 200ms ease, opacity 200ms ease",backgroundColor:"rgba(8,12,21,0.95)",border:"1px solid #00B8E666",borderBottomWidth:0,borderTopLeftRadius:6,borderTopRightRadius:6,boxShadow:"0 -4px 8px rgba(0,0,0,0.3)"},children:o.map(e=>{const a=(0,_EnvironmentIndicatorWeb.getEnvironmentConfig)(e);const d=String(e).toLowerCase()===String(t).toLowerCase();return(0,_jsxRuntime.jsxs)("button",{onClick:()=>{i(false);l(e)},onPointerEnter:h=>h.pointerType==="mouse"&&s(String(e)),onPointerLeave:()=>s(null),style:{display:"flex",alignItems:"center",justifyContent:"space-between",width:"100%",height:OPTION_HEIGHT,padding:"0 10px",background:d?"rgba(128,128,128,0.1)":c===String(e)?"rgba(128,128,128,0.2)":"none",border:"none",cursor:"pointer"},children:[(0,_jsxRuntime.jsxs)("span",{style:{display:"flex",alignItems:"center"},children:[(0,_jsxRuntime.jsx)("span",{style:{width:6,height:6,borderRadius:3,backgroundColor:a.backgroundColor,marginRight:8}}),(0,_jsxRuntime.jsx)("span",{style:{fontSize:10,fontWeight:600,color:_gameUIColors.gameUIColors.primaryLight,letterSpacing:.5},children:a.label})]}),d&&(0,_jsxRuntime.jsx)(CheckGlyph,{})]},String(e))})}),(0,_jsxRuntime.jsxs)("button",{onClick:()=>i(e=>!e),"aria-expanded":r,"aria-label":`Environment: ${n.label}. Click to switch.`,style:{display:"flex",alignItems:"center",gap:6,padding:"6px 6px 6px 8px",borderRadius:6,borderTopLeftRadius:r?0:6,borderTopRightRadius:r?0:6,backgroundColor:r?"rgba(8,12,21,0.95)":"transparent",border:"none",cursor:"pointer"},children:[(0,_jsxRuntime.jsx)("span",{style:{width:8,height:8,borderRadius:4,backgroundColor:n.backgroundColor,boxShadow:`0 0 4px ${n.backgroundColor}99`}}),(0,_jsxRuntime.jsx)("span",{style:{fontSize:11,fontWeight:600,color:_gameUIColors.gameUIColors.primaryLight,letterSpacing:.5},children:n.label}),(0,_jsxRuntime.jsx)(ChevronUpGlyph,{color:"#7A8599",flipped:r})]})]})}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.getCapacitorAppStorage=getCapacitorAppStorage;var _license=require("@buoy-gg/license");function getCapacitorAppStorage(){if(!(0,_license.isCapacitorNative)()||!(0,_license.hasCapacitorPlugin)("Preferences"))return null;return{async getAllKeys(){const{keys:e}=await(0,_license.callCapacitorNative)("Preferences","keys");return Array.isArray(e)?e:[]},async multiRemove(e){await Promise.all(e.map(r=>(0,_license.callCapacitorNative)("Preferences","remove",{key:r})))}}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.devToolsStorageKeys=void 0;exports.filterOutDevToolsKeys=filterOutDevToolsKeys;exports.getAllDevToolsStorageKeys=getAllDevToolsStorageKeys;exports.isDevToolsStorageKey=isDevToolsStorageKey;const devToolsStorageKeys=exports.devToolsStorageKeys={base:"@react_buoy",bubble:{root:()=>`${devToolsStorageKeys.base}_bubble`,settings:()=>`${devToolsStorageKeys.bubble.root()}_settings`,userPreferences:()=>`${devToolsStorageKeys.bubble.root()}_user_preferences`,position:()=>`${devToolsStorageKeys.bubble.root()}_position`},modal:{root:()=>`${devToolsStorageKeys.base}_modal`,state:()=>`${devToolsStorageKeys.modal.root()}_state`,position:()=>`${devToolsStorageKeys.modal.root()}_position`,dimensions:()=>`${devToolsStorageKeys.modal.root()}_dimensions`,hintAcknowledged:()=>`${devToolsStorageKeys.modal.root()}_hint_acknowledged`},custom:e=>{const o=`${devToolsStorageKeys.base}_custom_${e}`;return{root:()=>o,modal:()=>`${o}_modal`,settings:()=>`${o}_settings`,key:t=>`${o}_${t}`}},settings:{root:()=>`${devToolsStorageKeys.base}_settings`,theme:()=>`${devToolsStorageKeys.settings.root()}_theme`,preferences:()=>`${devToolsStorageKeys.settings.root()}_preferences`,wifiEnabled:()=>`${devToolsStorageKeys.settings.root()}_wifi_enabled`,global:()=>`${devToolsStorageKeys.settings.root()}_global`,activeTab:()=>`${devToolsStorageKeys.settings.root()}_active_tab`,modalOpen:()=>`${devToolsStorageKeys.settings.root()}_modal_open`},dial:{root:()=>`${devToolsStorageKeys.base}_dial`,isOpen:()=>`${devToolsStorageKeys.dial.root()}_is_open`,usage:()=>`${devToolsStorageKeys.dial.root()}_usage`},clipboard:{root:()=>`${devToolsStorageKeys.base}_clipboard`,hintAcknowledged:()=>`${devToolsStorageKeys.clipboard.root()}_hint_acknowledged`},env:{root:()=>`${devToolsStorageKeys.base}_env`,modal:()=>`${devToolsStorageKeys.env.root()}_modal`,currentEnv:()=>`${devToolsStorageKeys.env.root()}_current`,overrides:()=>`${devToolsStorageKeys.env.root()}_overrides`},sentry:{root:()=>`${devToolsStorageKeys.base}_sentry`,modal:()=>`${devToolsStorageKeys.sentry.root()}_modal`,filters:()=>`${devToolsStorageKeys.sentry.root()}_filters`,preferences:()=>`${devToolsStorageKeys.sentry.root()}_preferences`},storage:{root:()=>`${devToolsStorageKeys.base}_storage`,modal:()=>`${devToolsStorageKeys.storage.root()}_modal`,eventsModal:()=>`${devToolsStorageKeys.storage.root()}_events_modal`,filters:()=>`${devToolsStorageKeys.storage.root()}_filters`,eventFilters:()=>`${devToolsStorageKeys.storage.root()}_event_filters`,keyFilters:()=>`${devToolsStorageKeys.storage.root()}_key_filters`,pinnedKeys:()=>`${devToolsStorageKeys.storage.root()}_pinned_keys`,preferences:()=>`${devToolsStorageKeys.storage.root()}_preferences`,activeTab:()=>`${devToolsStorageKeys.storage.root()}_active_tab`,isMonitoring:()=>`${devToolsStorageKeys.storage.root()}_is_monitoring`,diffViewerMode:()=>`${devToolsStorageKeys.storage.root()}_diff_viewer_mode`},clock:{root:()=>`${devToolsStorageKeys.base}_clock`,state:()=>`${devToolsStorageKeys.clock.root()}_state`},permissions:{root:()=>`${devToolsStorageKeys.base}_permissions`,state:()=>`${devToolsStorageKeys.permissions.root()}_state`},lifecycle:{root:()=>`${devToolsStorageKeys.base}_lifecycle`,state:()=>`${devToolsStorageKeys.lifecycle.root()}_state`},location:{root:()=>`${devToolsStorageKeys.base}_location`,state:()=>`${devToolsStorageKeys.location.root()}_state`},timeMachine:{root:()=>`${devToolsStorageKeys.base}_time_machine`,diffViewerMode:()=>`${devToolsStorageKeys.timeMachine.root()}_diff_viewer_mode`,armedPoint:()=>`${devToolsStorageKeys.timeMachine.root()}_armed_point`,barReloadMode:()=>`${devToolsStorageKeys.timeMachine.root()}_bar_reload_mode`,disabledSources:()=>`${devToolsStorageKeys.timeMachine.root()}_disabled_sources`},scenarios:{root:()=>`${devToolsStorageKeys.base}_scenarios`,modal:()=>`${devToolsStorageKeys.scenarios.root()}_modal`,library:()=>`${devToolsStorageKeys.scenarios.root()}_library`,active:()=>`${devToolsStorageKeys.scenarios.root()}_active`},reactQuery:{root:()=>`${devToolsStorageKeys.base}_rq`,modal:()=>`${devToolsStorageKeys.reactQuery.root()}_modal`,browserModal:()=>`${devToolsStorageKeys.reactQuery.root()}_browser_modal`,mutationModal:()=>`${devToolsStorageKeys.reactQuery.root()}_mutation_modal`,filters:()=>`${devToolsStorageKeys.reactQuery.root()}_filters`,ignoredPatterns:()=>`${devToolsStorageKeys.reactQuery.root()}_ignored_patterns`,includedPatterns:()=>`${devToolsStorageKeys.reactQuery.root()}_included_patterns`,preferences:()=>`${devToolsStorageKeys.reactQuery.root()}_preferences`},network:{root:()=>`${devToolsStorageKeys.base}_network`,modal:()=>`${devToolsStorageKeys.network.root()}_modal`,copyModal:()=>`${devToolsStorageKeys.network.root()}_copy_modal`,filters:()=>`${devToolsStorageKeys.network.root()}_filters`,ignoredDomains:()=>`${devToolsStorageKeys.network.root()}_ignored_domains`,ignoredUrls:()=>`${devToolsStorageKeys.network.root()}_ignored_urls`,preferences:()=>`${devToolsStorageKeys.network.root()}_preferences`,copyOptions:()=>`${devToolsStorageKeys.network.root()}_copy_options`,saved:()=>`${devToolsStorageKeys.network.root()}_saved`,overrides:()=>`${devToolsStorageKeys.network.root()}_overrides`},routeEvents:{root:()=>`${devToolsStorageKeys.base}_route_events`,modal:()=>`${devToolsStorageKeys.routeEvents.root()}_modal`,eventFilters:()=>`${devToolsStorageKeys.routeEvents.root()}_event_filters`,activeTab:()=>`${devToolsStorageKeys.routeEvents.root()}_active_tab`,isMonitoring:()=>`${devToolsStorageKeys.routeEvents.root()}_is_monitoring`,detailView:()=>`${devToolsStorageKeys.routeEvents.root()}_detail_view`,diffViewerMode:()=>`${devToolsStorageKeys.routeEvents.root()}_diff_viewer_mode`},highlightUpdates:{root:()=>`${devToolsStorageKeys.base}_highlight_updates`,modal:()=>`${devToolsStorageKeys.highlightUpdates.root()}_modal`,isTracking:()=>`${devToolsStorageKeys.highlightUpdates.root()}_is_tracking`,filters:()=>`${devToolsStorageKeys.highlightUpdates.root()}_filters`,settings:()=>`${devToolsStorageKeys.highlightUpdates.root()}_settings`,copySettings:()=>`${devToolsStorageKeys.highlightUpdates.root()}_copy_settings`},benchmark:{root:()=>`${devToolsStorageKeys.base}_benchmark`,modal:()=>`${devToolsStorageKeys.benchmark.root()}_modal`,isRecording:()=>`${devToolsStorageKeys.benchmark.root()}_is_recording`,activeTab:()=>`${devToolsStorageKeys.benchmark.root()}_active_tab`,settings:()=>`${devToolsStorageKeys.benchmark.root()}_settings`,selectedReports:()=>`${devToolsStorageKeys.benchmark.root()}_selected_reports`},debugBorders:{root:()=>`${devToolsStorageKeys.base}_debug_borders`,infoModal:()=>`${devToolsStorageKeys.debugBorders.root()}_info_modal`},events:{root:()=>`${devToolsStorageKeys.base}_events`,modal:()=>`${devToolsStorageKeys.events.root()}_modal`,enabledSources:()=>`${devToolsStorageKeys.events.root()}_enabled_sources`,isCapturing:()=>`${devToolsStorageKeys.events.root()}_is_capturing`,pausedAt:()=>`${devToolsStorageKeys.events.root()}_paused_at`,copySettings:()=>`${devToolsStorageKeys.events.root()}_copy_settings`},sync:{root:()=>`${devToolsStorageKeys.base}_sync`,deviceId:()=>`${devToolsStorageKeys.sync.root()}_device_id`}};const LEGACY_DEV_TOOL_PATTERNS=["@devtools","@dev_tools_","@modal_state_","@react_query_browser_modal","@react_query_modal","@react_query_mutation_modal","@sentry_logs_modal","@floating_rn_better_dev_tools_","@floating_tools_","@apphost_","@bubble_settings_","@env_vars_modal","@storage_modal","@floating_@devtools_","dev_last_route"];function isDevToolsStorageKey(e){if(!e)return false;if(e.startsWith(devToolsStorageKeys.base)){return true}if(e.startsWith("buoy-")){return true}if(e.startsWith("@buoy")){return true}for(const o of LEGACY_DEV_TOOL_PATTERNS){if(e.startsWith(o)){return true}}return false}function filterOutDevToolsKeys(e){return e.filter(o=>!isDevToolsStorageKey(o))}function getAllDevToolsStorageKeys(){const e=[];e.push(devToolsStorageKeys.bubble.settings());e.push(devToolsStorageKeys.bubble.userPreferences());e.push(devToolsStorageKeys.bubble.position());e.push(devToolsStorageKeys.modal.state());e.push(devToolsStorageKeys.modal.position());e.push(devToolsStorageKeys.modal.dimensions());e.push(devToolsStorageKeys.settings.theme());e.push(devToolsStorageKeys.settings.preferences());e.push(devToolsStorageKeys.env.currentEnv());e.push(devToolsStorageKeys.env.overrides());e.push(devToolsStorageKeys.sentry.filters());e.push(devToolsStorageKeys.sentry.preferences());e.push(devToolsStorageKeys.storage.filters());e.push(devToolsStorageKeys.storage.preferences());e.push(devToolsStorageKeys.reactQuery.filters());e.push(devToolsStorageKeys.reactQuery.preferences());return e}
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.devToolsStorageKeys=void 0;exports.filterOutDevToolsKeys=filterOutDevToolsKeys;exports.getAllDevToolsStorageKeys=getAllDevToolsStorageKeys;exports.isDevToolsStorageKey=isDevToolsStorageKey;const devToolsStorageKeys=exports.devToolsStorageKeys={base:"@react_buoy",bubble:{root:()=>`${devToolsStorageKeys.base}_bubble`,settings:()=>`${devToolsStorageKeys.bubble.root()}_settings`,userPreferences:()=>`${devToolsStorageKeys.bubble.root()}_user_preferences`,position:()=>`${devToolsStorageKeys.bubble.root()}_position`},modal:{root:()=>`${devToolsStorageKeys.base}_modal`,state:()=>`${devToolsStorageKeys.modal.root()}_state`,position:()=>`${devToolsStorageKeys.modal.root()}_position`,dimensions:()=>`${devToolsStorageKeys.modal.root()}_dimensions`,hintAcknowledged:()=>`${devToolsStorageKeys.modal.root()}_hint_acknowledged`},custom:e=>{const o=`${devToolsStorageKeys.base}_custom_${e}`;return{root:()=>o,modal:()=>`${o}_modal`,settings:()=>`${o}_settings`,key:t=>`${o}_${t}`}},settings:{root:()=>`${devToolsStorageKeys.base}_settings`,theme:()=>`${devToolsStorageKeys.settings.root()}_theme`,preferences:()=>`${devToolsStorageKeys.settings.root()}_preferences`,wifiEnabled:()=>`${devToolsStorageKeys.settings.root()}_wifi_enabled`,global:()=>`${devToolsStorageKeys.settings.root()}_global`,activeTab:()=>`${devToolsStorageKeys.settings.root()}_active_tab`,modalOpen:()=>`${devToolsStorageKeys.settings.root()}_modal_open`},dial:{root:()=>`${devToolsStorageKeys.base}_dial`,isOpen:()=>`${devToolsStorageKeys.dial.root()}_is_open`,usage:()=>`${devToolsStorageKeys.dial.root()}_usage`},clipboard:{root:()=>`${devToolsStorageKeys.base}_clipboard`,hintAcknowledged:()=>`${devToolsStorageKeys.clipboard.root()}_hint_acknowledged`},env:{root:()=>`${devToolsStorageKeys.base}_env`,modal:()=>`${devToolsStorageKeys.env.root()}_modal`,currentEnv:()=>`${devToolsStorageKeys.env.root()}_current`,overrides:()=>`${devToolsStorageKeys.env.root()}_overrides`},sentry:{root:()=>`${devToolsStorageKeys.base}_sentry`,modal:()=>`${devToolsStorageKeys.sentry.root()}_modal`,filters:()=>`${devToolsStorageKeys.sentry.root()}_filters`,preferences:()=>`${devToolsStorageKeys.sentry.root()}_preferences`},storage:{root:()=>`${devToolsStorageKeys.base}_storage`,modal:()=>`${devToolsStorageKeys.storage.root()}_modal`,eventsModal:()=>`${devToolsStorageKeys.storage.root()}_events_modal`,filters:()=>`${devToolsStorageKeys.storage.root()}_filters`,eventFilters:()=>`${devToolsStorageKeys.storage.root()}_event_filters`,keyFilters:()=>`${devToolsStorageKeys.storage.root()}_key_filters`,pinnedKeys:()=>`${devToolsStorageKeys.storage.root()}_pinned_keys`,preferences:()=>`${devToolsStorageKeys.storage.root()}_preferences`,activeTab:()=>`${devToolsStorageKeys.storage.root()}_active_tab`,isMonitoring:()=>`${devToolsStorageKeys.storage.root()}_is_monitoring`,diffViewerMode:()=>`${devToolsStorageKeys.storage.root()}_diff_viewer_mode`},clock:{root:()=>`${devToolsStorageKeys.base}_clock`,state:()=>`${devToolsStorageKeys.clock.root()}_state`},permissions:{root:()=>`${devToolsStorageKeys.base}_permissions`,state:()=>`${devToolsStorageKeys.permissions.root()}_state`},lifecycle:{root:()=>`${devToolsStorageKeys.base}_lifecycle`,state:()=>`${devToolsStorageKeys.lifecycle.root()}_state`},location:{root:()=>`${devToolsStorageKeys.base}_location`,state:()=>`${devToolsStorageKeys.location.root()}_state`},timeMachine:{root:()=>`${devToolsStorageKeys.base}_time_machine`,diffViewerMode:()=>`${devToolsStorageKeys.timeMachine.root()}_diff_viewer_mode`,armedPoint:()=>`${devToolsStorageKeys.timeMachine.root()}_armed_point`,barReloadMode:()=>`${devToolsStorageKeys.timeMachine.root()}_bar_reload_mode`,disabledSources:()=>`${devToolsStorageKeys.timeMachine.root()}_disabled_sources`},scenarios:{root:()=>`${devToolsStorageKeys.base}_scenarios`,modal:()=>`${devToolsStorageKeys.scenarios.root()}_modal`,library:()=>`${devToolsStorageKeys.scenarios.root()}_library`,active:()=>`${devToolsStorageKeys.scenarios.root()}_active`},reactQuery:{root:()=>`${devToolsStorageKeys.base}_rq`,modal:()=>`${devToolsStorageKeys.reactQuery.root()}_modal`,browserModal:()=>`${devToolsStorageKeys.reactQuery.root()}_browser_modal`,mutationModal:()=>`${devToolsStorageKeys.reactQuery.root()}_mutation_modal`,filters:()=>`${devToolsStorageKeys.reactQuery.root()}_filters`,ignoredPatterns:()=>`${devToolsStorageKeys.reactQuery.root()}_ignored_patterns`,includedPatterns:()=>`${devToolsStorageKeys.reactQuery.root()}_included_patterns`,preferences:()=>`${devToolsStorageKeys.reactQuery.root()}_preferences`},network:{root:()=>`${devToolsStorageKeys.base}_network`,modal:()=>`${devToolsStorageKeys.network.root()}_modal`,copyModal:()=>`${devToolsStorageKeys.network.root()}_copy_modal`,filters:()=>`${devToolsStorageKeys.network.root()}_filters`,ignoredDomains:()=>`${devToolsStorageKeys.network.root()}_ignored_domains`,ignoredUrls:()=>`${devToolsStorageKeys.network.root()}_ignored_urls`,preferences:()=>`${devToolsStorageKeys.network.root()}_preferences`,copyOptions:()=>`${devToolsStorageKeys.network.root()}_copy_options`,saved:()=>`${devToolsStorageKeys.network.root()}_saved`,overrides:()=>`${devToolsStorageKeys.network.root()}_overrides`},routeEvents:{root:()=>`${devToolsStorageKeys.base}_route_events`,modal:()=>`${devToolsStorageKeys.routeEvents.root()}_modal`,eventFilters:()=>`${devToolsStorageKeys.routeEvents.root()}_event_filters`,activeTab:()=>`${devToolsStorageKeys.routeEvents.root()}_active_tab`,isMonitoring:()=>`${devToolsStorageKeys.routeEvents.root()}_is_monitoring`,detailView:()=>`${devToolsStorageKeys.routeEvents.root()}_detail_view`,diffViewerMode:()=>`${devToolsStorageKeys.routeEvents.root()}_diff_viewer_mode`},highlightUpdates:{root:()=>`${devToolsStorageKeys.base}_highlight_updates`,modal:()=>`${devToolsStorageKeys.highlightUpdates.root()}_modal`,isTracking:()=>`${devToolsStorageKeys.highlightUpdates.root()}_is_tracking`,filters:()=>`${devToolsStorageKeys.highlightUpdates.root()}_filters`,settings:()=>`${devToolsStorageKeys.highlightUpdates.root()}_settings`,copySettings:()=>`${devToolsStorageKeys.highlightUpdates.root()}_copy_settings`},benchmark:{root:()=>`${devToolsStorageKeys.base}_benchmark`,modal:()=>`${devToolsStorageKeys.benchmark.root()}_modal`,isRecording:()=>`${devToolsStorageKeys.benchmark.root()}_is_recording`,activeTab:()=>`${devToolsStorageKeys.benchmark.root()}_active_tab`,settings:()=>`${devToolsStorageKeys.benchmark.root()}_settings`,selectedReports:()=>`${devToolsStorageKeys.benchmark.root()}_selected_reports`},debugBorders:{root:()=>`${devToolsStorageKeys.base}_debug_borders`,infoModal:()=>`${devToolsStorageKeys.debugBorders.root()}_info_modal`},events:{root:()=>`${devToolsStorageKeys.base}_events`,modal:()=>`${devToolsStorageKeys.events.root()}_modal`,enabledSources:()=>`${devToolsStorageKeys.events.root()}_enabled_sources`,isCapturing:()=>`${devToolsStorageKeys.events.root()}_is_capturing`,pausedAt:()=>`${devToolsStorageKeys.events.root()}_paused_at`,copySettings:()=>`${devToolsStorageKeys.events.root()}_copy_settings`},sync:{root:()=>`${devToolsStorageKeys.base}_sync`,deviceId:()=>`${devToolsStorageKeys.sync.root()}_device_id`}};const LEGACY_DEV_TOOL_PATTERNS=["@devtools","@dev_tools_","@modal_state_","@react_query_browser_modal","@react_query_modal","@react_query_mutation_modal","@sentry_logs_modal","@floating_rn_better_dev_tools_","@floating_tools_","@apphost_","@bubble_settings_","@env_vars_modal","@storage_modal","@floating_@devtools_","dev_last_route"];function isDevToolsStorageKey(e){if(!e)return false;if(e.startsWith(devToolsStorageKeys.base)){return true}if(e.startsWith("buoy-")){return true}if(e.startsWith("@buoy")){return true}if(e.startsWith("buoy.notifications.")){return true}for(const o of LEGACY_DEV_TOOL_PATTERNS){if(e.startsWith(o)){return true}}return false}function filterOutDevToolsKeys(e){return e.filter(o=>!isDevToolsStorageKey(o))}function getAllDevToolsStorageKeys(){const e=[];e.push(devToolsStorageKeys.bubble.settings());e.push(devToolsStorageKeys.bubble.userPreferences());e.push(devToolsStorageKeys.bubble.position());e.push(devToolsStorageKeys.modal.state());e.push(devToolsStorageKeys.modal.position());e.push(devToolsStorageKeys.modal.dimensions());e.push(devToolsStorageKeys.settings.theme());e.push(devToolsStorageKeys.settings.preferences());e.push(devToolsStorageKeys.env.currentEnv());e.push(devToolsStorageKeys.env.overrides());e.push(devToolsStorageKeys.sentry.filters());e.push(devToolsStorageKeys.sentry.preferences());e.push(devToolsStorageKeys.storage.filters());e.push(devToolsStorageKeys.storage.preferences());e.push(devToolsStorageKeys.reactQuery.filters());e.push(devToolsStorageKeys.reactQuery.preferences());return e}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"definePersistedSetting",{enumerable:true,get:function(){return _definePersistedSetting.definePersistedSetting}});Object.defineProperty(exports,"devToolsStorageKeys",{enumerable:true,get:function(){return _devToolsStorageKeys.devToolsStorageKeys}});Object.defineProperty(exports,"isDevToolsStorageKey",{enumerable:true,get:function(){return _devToolsStorageKeys.isDevToolsStorageKey}});var _devToolsStorageKeys=require("./devToolsStorageKeys.js");var _definePersistedSetting=require("./definePersistedSetting.js");
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"callCapacitorNative",{enumerable:true,get:function(){return _license.callCapacitorNative}});Object.defineProperty(exports,"definePersistedSetting",{enumerable:true,get:function(){return _definePersistedSetting.definePersistedSetting}});Object.defineProperty(exports,"devToolsStorageKeys",{enumerable:true,get:function(){return _devToolsStorageKeys.devToolsStorageKeys}});Object.defineProperty(exports,"getCapacitorAppStorage",{enumerable:true,get:function(){return _capacitorAppStorage.getCapacitorAppStorage}});Object.defineProperty(exports,"hasCapacitorPlugin",{enumerable:true,get:function(){return _license.hasCapacitorPlugin}});Object.defineProperty(exports,"isCapacitorNative",{enumerable:true,get:function(){return _license.isCapacitorNative}});Object.defineProperty(exports,"isDevToolsStorageKey",{enumerable:true,get:function(){return _devToolsStorageKeys.isDevToolsStorageKey}});var _devToolsStorageKeys=require("./devToolsStorageKeys.js");var _definePersistedSetting=require("./definePersistedSetting.js");var _capacitorAppStorage=require("./capacitorAppStorage.js");var _license=require("@buoy-gg/license");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.Actions=Actions;exports.Content=Content;exports.HeaderSearch=HeaderSearch;exports.ModalHeader=ModalHeader;exports.Navigation=Navigation;var _reactNative=require("react-native");var _react=require("react");var _index=require("../../icons/index.js");var _nightTheme=require("../night/nightTheme.js");var _windowDrag=require("./windowDrag.js");var _jsxRuntime=require("react/jsx-runtime");function ModalHeader({children:e}){return(0,_jsxRuntime.jsx)(_reactNative.View,{style:styles.headerContainer,..._windowDrag.windowDragProps,children:e})}function Navigation({onBack:e,onClose:t,backIcon:r,closeIcon:n}){if(!e&&t){return(0,_jsxRuntime.jsxs)(_jsxRuntime.Fragment,{children:[(0,_jsxRuntime.jsx)(_reactNative.View,{style:{flex:1}}),(0,_jsxRuntime.jsx)(_reactNative.TouchableOpacity,{onPress:t,style:styles.navigationButton,testID:"tool-close",accessibilityLabel:"Close",accessibilityRole:"button",children:n||(0,_jsxRuntime.jsx)(_index.X,{size:20,color:_nightTheme.night.color.textSecondary})})]})}if(e&&!t){return(0,_jsxRuntime.jsx)(_reactNative.TouchableOpacity,{onPress:e,style:styles.navigationButton,testID:"tool-back",accessibilityLabel:"Back",accessibilityRole:"button",children:r||(0,_jsxRuntime.jsx)(_index.ChevronLeft,{size:20,color:_nightTheme.night.color.textSecondary})})}if(e&&t){return(0,_jsxRuntime.jsx)(_reactNative.TouchableOpacity,{onPress:e,style:styles.navigationButton,testID:"tool-back",accessibilityLabel:"Back",accessibilityRole:"button",children:r||(0,_jsxRuntime.jsx)(_index.ChevronLeft,{size:20,color:_nightTheme.night.color.textSecondary})})}return null}function Content({title:e,subtitle:t,children:r,centered:n,noMargin:o,testID:i}){if(r){return(0,_jsxRuntime.jsx)(_reactNative.View,{style:[styles.headerContent,o&&styles.headerContentNoMargin],children:r})}return(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[styles.headerContent,n&&styles.headerContentCentered],children:[e&&(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[styles.headerTitle,n&&styles.headerTitleCentered],numberOfLines:1,testID:i,children:e}),t&&(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[styles.headerSubtitle,n&&styles.headerSubtitleCentered],numberOfLines:1,testID:i?`${i}-subtitle`:void 0,children:t})]})}function Actions({children:e}){return(0,_jsxRuntime.jsx)(_reactNative.View,{style:styles.headerActions,children:e})}Actions.displayName="ModalHeaderActions";function HeaderSearch({value:e,onChangeText:t,onCancel:r,placeholder:n="Search...",autoFocus:o=true,testID:i,containerTestID:d,clearTestID:
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.Actions=Actions;exports.Content=Content;exports.HeaderSearch=HeaderSearch;exports.ModalHeader=ModalHeader;exports.Navigation=Navigation;var _reactNative=require("react-native");var _react=require("react");var _index=require("../../icons/index.js");var _nightTheme=require("../night/nightTheme.js");var _windowDrag=require("./windowDrag.js");var _jsxRuntime=require("react/jsx-runtime");function ModalHeader({children:e}){return(0,_jsxRuntime.jsx)(_reactNative.View,{style:styles.headerContainer,..._windowDrag.windowDragProps,children:e})}function Navigation({onBack:e,onClose:t,backIcon:r,closeIcon:n}){if(!e&&t){return(0,_jsxRuntime.jsxs)(_jsxRuntime.Fragment,{children:[(0,_jsxRuntime.jsx)(_reactNative.View,{style:{flex:1}}),(0,_jsxRuntime.jsx)(_reactNative.TouchableOpacity,{onPress:t,style:styles.navigationButton,testID:"tool-close",accessibilityLabel:"Close",accessibilityRole:"button",children:n||(0,_jsxRuntime.jsx)(_index.X,{size:20,color:_nightTheme.night.color.textSecondary})})]})}if(e&&!t){return(0,_jsxRuntime.jsx)(_reactNative.TouchableOpacity,{onPress:e,style:styles.navigationButton,testID:"tool-back",accessibilityLabel:"Back",accessibilityRole:"button",children:r||(0,_jsxRuntime.jsx)(_index.ChevronLeft,{size:20,color:_nightTheme.night.color.textSecondary})})}if(e&&t){return(0,_jsxRuntime.jsx)(_reactNative.TouchableOpacity,{onPress:e,style:styles.navigationButton,testID:"tool-back",accessibilityLabel:"Back",accessibilityRole:"button",children:r||(0,_jsxRuntime.jsx)(_index.ChevronLeft,{size:20,color:_nightTheme.night.color.textSecondary})})}return null}function Content({title:e,subtitle:t,children:r,centered:n,noMargin:o,testID:i}){if(r){return(0,_jsxRuntime.jsx)(_reactNative.View,{style:[styles.headerContent,o&&styles.headerContentNoMargin],children:r})}return(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[styles.headerContent,n&&styles.headerContentCentered],children:[e&&(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[styles.headerTitle,n&&styles.headerTitleCentered],numberOfLines:1,testID:i,children:e}),t&&(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[styles.headerSubtitle,n&&styles.headerSubtitleCentered],numberOfLines:1,testID:i?`${i}-subtitle`:void 0,children:t})]})}function Actions({children:e}){return(0,_jsxRuntime.jsx)(_reactNative.View,{style:styles.headerActions,children:e})}Actions.displayName="ModalHeaderActions";function HeaderSearch({value:e,onChangeText:t,onCancel:r,placeholder:n="Search...",autoFocus:o=true,testID:i,containerTestID:d,clearTestID:u,accessibilityLabel:h,onBlur:g,iconSize:f=12,dismissOnBlur:s=false,onDismiss:x,clearOnlyWhenText:y=false,inputProps:b,containerNativeID:p}){const l=(0,_react.useRef)(null);const a=(0,_react.useRef)(false);(0,_react.useEffect)(()=>{if(o)l.current?.focus()},[o]);const c=x??r;const C=!y||e.length>0;return(0,_jsxRuntime.jsxs)(_reactNative.View,{style:styles.searchContainer,testID:d,nativeID:p,children:[(0,_jsxRuntime.jsx)(_index.Search,{size:f,color:_nightTheme.night.color.textSecondary}),(0,_jsxRuntime.jsx)(_reactNative.TextInput,{ref:l,style:[styles.searchInput,WEB_NO_FOCUS_RING],placeholder:n,placeholderTextColor:_nightTheme.night.color.placeholder,value:e,onChangeText:t,onSubmitEditing:()=>s?c():l.current?.blur(),onBlur:()=>{if(s&&!a.current)c();g?.()},autoCorrect:false,autoCapitalize:"none",returnKeyType:"search",testID:i,accessibilityLabel:h??n,...b}),C?(0,_jsxRuntime.jsx)(_reactNative.TouchableOpacity,{onPress:r,..._reactNative.Platform.OS==="web"?{onTouchStart:()=>{a.current=true},onMouseDown:S=>S.preventDefault()}:{},delayPressIn:0,onPressIn:()=>{a.current=true},onPressOut:()=>{a.current=false},style:styles.searchCancelButton,accessibilityRole:"button",accessibilityLabel:"Clear search",testID:u??(i?`${i}-clear`:void 0),children:(0,_jsxRuntime.jsx)(_index.X,{size:12,color:_nightTheme.night.color.textSecondary})}):null]})}ModalHeader.Navigation=Navigation;ModalHeader.Content=Content;ModalHeader.Actions=Actions;ModalHeader.Search=HeaderSearch;const WEB_NO_FOCUS_RING=_reactNative.Platform.OS==="web"?{outlineStyle:"none"}:null;const styles=_reactNative.StyleSheet.create({headerContainer:{flexDirection:"row",alignItems:"center",flex:1,gap:8,minHeight:32,paddingLeft:4},navigationButton:{padding:4},closeButtonOnly:{marginLeft:"auto",marginRight:4},headerContent:{flex:1,marginHorizontal:8},headerContentCentered:{justifyContent:"center"},headerTitle:{color:_nightTheme.night.color.text,fontSize:14,fontWeight:"500"},headerTitleCentered:{textAlign:"center"},headerSubtitle:{fontSize:12,color:_nightTheme.night.color.textSecondary,marginTop:2},headerSubtitleCentered:{textAlign:"center"},headerActions:{flexDirection:"row",gap:6,marginLeft:"auto",marginRight:4,flexShrink:0},headerContentNoMargin:{marginHorizontal:0},searchContainer:{flexDirection:"row",alignItems:"center",flex:1,backgroundColor:_nightTheme.night.color.surfaceElevated,borderRadius:10,paddingHorizontal:10,paddingVertical:4,marginHorizontal:12,marginVertical:4,height:32,borderWidth:1,borderColor:_nightTheme.night.color.border},searchInput:{flex:1,minWidth:0,marginLeft:8,fontSize:13,color:_nightTheme.night.color.text,padding:0,height:"100%"},searchCancelButton:{padding:4,marginLeft:4}});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.SearchBar=SearchBar;var _react=require("react");var _reactNative=require("react-native");var _index=require("../../icons/index.js");var _index2=require("../gameUI/index.js");var _jsxRuntime=require("react/jsx-runtime");function SearchBar({value:i,onChange:e,onClear:r,placeholder:a="Search...",showFilters:t=false,onFilterPress:o,style:s,containerStyle:c,autoFocus:d=false,onSubmitEditing:u,testID:n,returnKeyType:h}){const[g,l]=(0,_react.useState)(false);const x=()=>{e("");r?.()};return(0,_jsxRuntime.jsx)(_reactNative.View,{style:[styles.container,c],children:(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[styles.searchBar,g&&styles.searchBarFocused],children:[(0,_jsxRuntime.jsx)(_index.Search,{size:16,color:_index2.gameUIColors.secondary}),(0,_jsxRuntime.jsx)(_reactNative.TextInput,{style:[styles.input,s],placeholder:a,placeholderTextColor:_index2.gameUIColors.tertiary,value:i,onChangeText:e,onFocus:()=>l(true),onBlur:()=>l(false),autoFocus:d,autoCapitalize:"none",autoCorrect:false,onSubmitEditing:u,returnKeyType:h,testID:n}),i.length>0&&(0,_jsxRuntime.jsx)(_reactNative.TouchableOpacity,{onPress:x,style:styles.clearButton,testID:n?`${n}-clear`:void 0,accessibilityLabel:"Clear search",accessibilityRole:"button",children:(0,_jsxRuntime.jsx)(_index.X,{size:14,color:_index2.gameUIColors.secondary})}),t&&(0,_jsxRuntime.jsx)(_reactNative.TouchableOpacity,{onPress:o,style:styles.filterButton,children:(0,_jsxRuntime.jsx)(_index.Filter,{size:14,color:_index2.gameUIColors.primary})})]})})}SearchBar.Quick=function i({onSearch:e,placeholder:r="Quick search...",style:a}){const[t,o]=(0,_react.useState)("");const s=()=>{if(t.trim()){e(t.trim());o("")}};return(0,_jsxRuntime.jsx)(SearchBar,{value:t,onChange:o,placeholder:r,onSubmitEditing:s,returnKeyType:"search",style:a})};SearchBar.WithFilters=function i({filterCount:e,...r}){return(0,_jsxRuntime.jsxs)(_reactNative.View,{style:styles.withFiltersContainer,children:[(0,_jsxRuntime.jsx)(SearchBar,{...r,showFilters:true}),e!==void 0&&e>0&&(0,_jsxRuntime.jsx)(_reactNative.View,{style:styles.filterBadge,children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.filterBadgeText,children:e})})]})};const styles=_reactNative.StyleSheet.create({container:{position:"relative",zIndex:100},searchBar:{flexDirection:"row",alignItems:"center",backgroundColor:_index2.gameUIColors.panel,borderRadius:8,paddingHorizontal:12,paddingVertical:8,gap:8,borderWidth:1,borderColor:"transparent"},searchBarFocused:{borderColor:_index2.gameUIColors.primary+"40"},input:{flex:1,fontSize:14,color:_index2.gameUIColors.text,padding:0},clearButton:{padding:4},filterButton:{padding:4,borderRadius:4,backgroundColor:_index2.gameUIColors.primary+"20"},withFiltersContainer:{position:"relative"},filterBadge:{position:"absolute",top:-4,right:-4,backgroundColor:_index2.gameUIColors.error,borderRadius:10,minWidth:18,height:18,justifyContent:"center",alignItems:"center",paddingHorizontal:4},filterBadgeText:{fontSize:10,fontWeight:"700",color:"#FFFFFF"}});
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.SearchBar=SearchBar;var _react=require("react");var _reactNative=require("react-native");var _index=require("../../icons/index.js");var _index2=require("../gameUI/index.js");var _jsxRuntime=require("react/jsx-runtime");function SearchBar({value:i,onChange:e,onClear:r,placeholder:a="Search...",showFilters:t=false,onFilterPress:o,style:s,containerStyle:c,autoFocus:d=false,onSubmitEditing:u,testID:n,returnKeyType:h}){const[g,l]=(0,_react.useState)(false);const x=()=>{e("");r?.()};return(0,_jsxRuntime.jsx)(_reactNative.View,{style:[styles.container,c],children:(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[styles.searchBar,g&&styles.searchBarFocused],children:[(0,_jsxRuntime.jsx)(_index.Search,{size:16,color:_index2.gameUIColors.secondary}),(0,_jsxRuntime.jsx)(_reactNative.TextInput,{style:[styles.input,WEB_NO_FOCUS_RING,s],placeholder:a,placeholderTextColor:_index2.gameUIColors.tertiary,value:i,onChangeText:e,onFocus:()=>l(true),onBlur:()=>l(false),autoFocus:d,autoCapitalize:"none",autoCorrect:false,onSubmitEditing:u,returnKeyType:h,testID:n}),i.length>0&&(0,_jsxRuntime.jsx)(_reactNative.TouchableOpacity,{onPress:x,style:styles.clearButton,testID:n?`${n}-clear`:void 0,accessibilityLabel:"Clear search",accessibilityRole:"button",children:(0,_jsxRuntime.jsx)(_index.X,{size:14,color:_index2.gameUIColors.secondary})}),t&&(0,_jsxRuntime.jsx)(_reactNative.TouchableOpacity,{onPress:o,style:styles.filterButton,children:(0,_jsxRuntime.jsx)(_index.Filter,{size:14,color:_index2.gameUIColors.primary})})]})})}SearchBar.Quick=function i({onSearch:e,placeholder:r="Quick search...",style:a}){const[t,o]=(0,_react.useState)("");const s=()=>{if(t.trim()){e(t.trim());o("")}};return(0,_jsxRuntime.jsx)(SearchBar,{value:t,onChange:o,placeholder:r,onSubmitEditing:s,returnKeyType:"search",style:a})};SearchBar.WithFilters=function i({filterCount:e,...r}){return(0,_jsxRuntime.jsxs)(_reactNative.View,{style:styles.withFiltersContainer,children:[(0,_jsxRuntime.jsx)(SearchBar,{...r,showFilters:true}),e!==void 0&&e>0&&(0,_jsxRuntime.jsx)(_reactNative.View,{style:styles.filterBadge,children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.filterBadgeText,children:e})})]})};const WEB_NO_FOCUS_RING=_reactNative.Platform.OS==="web"?{outlineStyle:"none"}:null;const styles=_reactNative.StyleSheet.create({container:{position:"relative",zIndex:100},searchBar:{flexDirection:"row",alignItems:"center",backgroundColor:_index2.gameUIColors.panel,borderRadius:8,paddingHorizontal:12,paddingVertical:8,gap:8,borderWidth:1,borderColor:"transparent"},searchBarFocused:{borderColor:_index2.gameUIColors.primary+"40"},input:{flex:1,minWidth:0,fontSize:14,color:_index2.gameUIColors.text,padding:0},clearButton:{padding:4},filterButton:{padding:4,borderRadius:4,backgroundColor:_index2.gameUIColors.primary+"20"},withFiltersContainer:{position:"relative"},filterBadge:{position:"absolute",top:-4,right:-4,backgroundColor:_index2.gameUIColors.error,borderRadius:10,minWidth:18,height:18,justifyContent:"center",alignItems:"center",paddingHorizontal:4},filterBadgeText:{fontSize:10,fontWeight:"700",color:"#FFFFFF"}});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.WindowControls=WindowControls;exports.setExpandableWindowControls
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.WindowControls=WindowControls;Object.defineProperty(exports,"setExpandableWindowControls",{enumerable:true,get:function(){return _windowControlsSetting.setExpandableWindowControls}});var _react=require("react");var _reactNative=require("react-native");var _index=require("../../icons/index.js");var _gameUIColors=require("../gameUI/constants/gameUIColors.js");var _nightTheme=require("../night/nightTheme.js");var _windowControlsSetting=require("./windowControlsSetting.js");var _jsxRuntime=require("react/jsx-runtime");const COLORS={close:"#FF5F57",minimize:"#FEBC2E",toggleMode:"#28C840"};const BUTTON_SIZE=12;const BUTTON_SPACING=8;const ICON_SIZE=8;const EXPANDED_BUTTON_SIZE=36;const EXPANDED_BUTTON_SPACING=12;const EXPANDED_ICON_SIZE=16;const EXPANDED_PADDING=8;const AUTO_DISMISS_MS=3e3;function WindowControls({onClose:s,onMinimize:t,onToggleMode:o,mode:n,variant:d="night",defaultExpanded:a}){const e=n==="floating"?_index.DockBottom:_index.FloatWindow;const u=n==="floating"?"Dock to bottom sheet":"Make floating window";if(!(0,_windowControlsSetting.isExpandableWindowControlsEnabled)()||!(0,_windowControlsSetting.expandableWindowControlsSupported)(_reactNative.Platform.OS==="web")){return(0,_jsxRuntime.jsxs)(_reactNative.View,{style:styles.container,children:[t&&(0,_jsxRuntime.jsx)(_reactNative.TouchableOpacity,{onPress:t,style:[styles.dot,styles.minimizeDot],activeOpacity:.8,accessibilityLabel:"Minimize modal",accessibilityRole:"button",children:(0,_jsxRuntime.jsx)(_index.Minus,{size:ICON_SIZE,color:"#7A5A00",strokeWidth:1.5})}),o&&(0,_jsxRuntime.jsx)(_reactNative.TouchableOpacity,{onPress:o,style:[styles.dot,styles.expandDot],activeOpacity:.8,accessibilityLabel:u,accessibilityRole:"button",children:(0,_jsxRuntime.jsx)(e,{size:ICON_SIZE,color:"#004A1A",strokeWidth:1.5})}),(0,_jsxRuntime.jsx)(_reactNative.TouchableOpacity,{onPress:s,style:[styles.dot,styles.closeDot],activeOpacity:.8,accessibilityLabel:"Close modal",testID:"tool-window-close",accessibilityRole:"button",children:(0,_jsxRuntime.jsx)(_index.X,{size:ICON_SIZE,color:"#4A0000",strokeWidth:1.5})})]})}return(0,_jsxRuntime.jsx)(ExpandableWindowControls,{onClose:s,onMinimize:t,onToggleMode:o,mode:n,variant:d,defaultExpanded:a})}function ExpandableWindowControls({onClose:s,onMinimize:t,onToggleMode:o,mode:n,variant:d="night",defaultExpanded:a=false}){const e=d==="night";const[u,h]=(0,_react.useState)(a);const i=(0,_react.useRef)(new _reactNative.Animated.Value(a?1:0)).current;const l=(0,_react.useRef)(null);const b=n==="floating"?_index.DockBottom:_index.FloatWindow;const p=n==="floating"?"Dock to bottom sheet":"Make floating window";const r=(0,_react.useCallback)(()=>{if(l.current){clearTimeout(l.current);l.current=null}},[]);const c=(0,_react.useCallback)(()=>{r();_reactNative.Animated.spring(i,{toValue:0,tension:200,friction:20,useNativeDriver:false}).start(()=>{h(false)})},[i,r]);const x=(0,_react.useCallback)(()=>{h(true);_reactNative.Animated.spring(i,{toValue:1,tension:180,friction:18,useNativeDriver:false}).start();r();l.current=setTimeout(c,AUTO_DISMISS_MS)},[i,c,r]);(0,_react.useEffect)(()=>{return r},[r]);const g=(0,_react.useCallback)(C=>{c();C()},[c]);const m=i.interpolate({inputRange:[0,1],outputRange:[.3,1]});const y=i.interpolate({inputRange:[0,.5,1],outputRange:[0,.8,1]});return(0,_jsxRuntime.jsxs)(_jsxRuntime.Fragment,{children:[(0,_jsxRuntime.jsx)(_reactNative.TouchableOpacity,{onPress:x,activeOpacity:.7,accessibilityLabel:"Open window controls",testID:"tool-window-controls",accessibilityRole:"button",style:styles.trigger,hitSlop:{top:8,bottom:8,left:8,right:8},children:(0,_jsxRuntime.jsxs)(_reactNative.View,{style:styles.container,children:[t&&(0,_jsxRuntime.jsx)(_reactNative.View,{style:[styles.dot,styles.minimizeDot],children:(0,_jsxRuntime.jsx)(_index.Minus,{size:ICON_SIZE,color:"#7A5A00",strokeWidth:1.5})}),o&&(0,_jsxRuntime.jsx)(_reactNative.View,{style:[styles.dot,styles.expandDot],children:(0,_jsxRuntime.jsx)(b,{size:ICON_SIZE,color:"#004A1A",strokeWidth:1.5})}),(0,_jsxRuntime.jsx)(_reactNative.View,{style:[styles.dot,styles.closeDot],children:(0,_jsxRuntime.jsx)(_index.X,{size:ICON_SIZE,color:"#4A0000",strokeWidth:1.5})})]})}),u&&(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{style:[styles.expandedPanelInline,{transform:[{scale:m}],opacity:y}],children:(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[styles.expandedContainer,e&&styles.nightExpandedContainer],children:[t&&(0,_jsxRuntime.jsx)(_reactNative.TouchableOpacity,{onPress:()=>g(t),style:[styles.expandedButton,e?styles.nightMinimizeButton:styles.minimizeButtonExpanded],activeOpacity:.7,accessibilityLabel:"Minimize modal",testID:"tool-window-minimize",accessibilityRole:"button",children:(0,_jsxRuntime.jsx)(_index.Minus,{size:EXPANDED_ICON_SIZE,color:e?_nightTheme.night.color.warning:"#7A5A00",strokeWidth:2})}),o&&(0,_jsxRuntime.jsx)(_reactNative.TouchableOpacity,{onPress:()=>g(o),style:[styles.expandedButton,e?styles.nightToggleButton:styles.expandButtonExpanded],activeOpacity:.7,accessibilityLabel:p,testID:"tool-window-mode",accessibilityRole:"button",children:(0,_jsxRuntime.jsx)(b,{size:EXPANDED_ICON_SIZE,color:e?_nightTheme.night.color.accent:"#004A1A",strokeWidth:2})}),(0,_jsxRuntime.jsx)(_reactNative.TouchableOpacity,{onPress:()=>g(s),style:[styles.expandedButton,e?styles.nightCloseButton:styles.closeButtonExpanded],activeOpacity:.7,accessibilityLabel:"Close modal",testID:"tool-window-close",accessibilityRole:"button",children:(0,_jsxRuntime.jsx)(_index.X,{size:EXPANDED_ICON_SIZE,color:e?_nightTheme.night.color.danger:"#4A0000",strokeWidth:2})})]})})]})}const styles=_reactNative.StyleSheet.create({trigger:{padding:2},container:{flexDirection:"row",alignItems:"center",gap:BUTTON_SPACING},dot:{width:BUTTON_SIZE,height:BUTTON_SIZE,borderRadius:BUTTON_SIZE/2,alignItems:"center",justifyContent:"center"},closeDot:{backgroundColor:COLORS.close},minimizeDot:{backgroundColor:COLORS.minimize},expandDot:{backgroundColor:COLORS.toggleMode},expandedPanelInline:{position:"absolute",top:-EXPANDED_PADDING,right:-EXPANDED_PADDING,zIndex:9999},expandedContainer:{flexDirection:"row",alignItems:"center",gap:EXPANDED_BUTTON_SPACING,backgroundColor:_gameUIColors.buoyColors.card,borderRadius:(EXPANDED_BUTTON_SIZE+EXPANDED_PADDING*2)/2,paddingHorizontal:EXPANDED_PADDING,paddingVertical:EXPANDED_PADDING,borderWidth:1,borderColor:_gameUIColors.buoyColors.border,shadowColor:"#000",shadowOffset:{width:0,height:4},shadowOpacity:.4,shadowRadius:12,elevation:30},expandedButton:{width:EXPANDED_BUTTON_SIZE,height:EXPANDED_BUTTON_SIZE,borderRadius:EXPANDED_BUTTON_SIZE/2,alignItems:"center",justifyContent:"center"},closeButtonExpanded:{backgroundColor:COLORS.close},minimizeButtonExpanded:{backgroundColor:COLORS.minimize},expandButtonExpanded:{backgroundColor:COLORS.toggleMode},nightExpandedContainer:{backgroundColor:_nightTheme.night.color.surface,borderColor:_nightTheme.night.color.border},nightMinimizeButton:{backgroundColor:_nightTheme.night.color.warningSoft,borderWidth:1,borderColor:_nightTheme.night.color.warning+"59"},nightToggleButton:{backgroundColor:_nightTheme.night.color.accentSoft,borderWidth:1,borderColor:_nightTheme.night.color.accentBorderStrong},nightCloseButton:{backgroundColor:_nightTheme.night.color.dangerSoft,borderWidth:1,borderColor:_nightTheme.night.color.danger+"59"}});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"ActionCopyButton",{enumerable:true,get:function(){return _CopyButton.ActionCopyButton}});Object.defineProperty(exports,"AddFilterButton",{enumerable:true,get:function(){return _FilterComponents.AddFilterButton}});Object.defineProperty(exports,"AddFilterInput",{enumerable:true,get:function(){return _FilterComponents.AddFilterInput}});Object.defineProperty(exports,"BackButton",{enumerable:true,get:function(){return _BackButton.BackButton}});Object.defineProperty(exports,"Badge",{enumerable:true,get:function(){return _Badge.Badge}});Object.defineProperty(exports,"ChangeRow",{enumerable:true,get:function(){return _ChangeRow.ChangeRow}});Object.defineProperty(exports,"ChipStrip",{enumerable:true,get:function(){return _ChipStrip.ChipStrip}});Object.defineProperty(exports,"ClipboardHintBanner",{enumerable:true,get:function(){return _ClipboardHintBanner.ClipboardHintBanner}});Object.defineProperty(exports,"CollapsibleSection",{enumerable:true,get:function(){return _CollapsibleSection.CollapsibleSection}});Object.defineProperty(exports,"CompactFilterChips",{enumerable:true,get:function(){return _CompactFilterChips.CompactFilterChips}});Object.defineProperty(exports,"CompactRow",{enumerable:true,get:function(){return _CompactRow.CompactRow}});Object.defineProperty(exports,"CompareBar",{enumerable:true,get:function(){return _index.CompareBar}});Object.defineProperty(exports,"CopyButton",{enumerable:true,get:function(){return _CopyButton.CopyButton}});Object.defineProperty(exports,"CountBadge",{enumerable:true,get:function(){return _Badge.CountBadge}});Object.defineProperty(exports,"DEVTOOLS_CARD_CONSTANTS",{enumerable:true,get:function(){return _DevToolsCard.DEVTOOLS_CARD_CONSTANTS}});Object.defineProperty(exports,"DataInspector",{enumerable:true,get:function(){return _DataInspector.DataInspector}});Object.defineProperty(exports,"DetailView",{enumerable:true,get:function(){return _DetailView.DetailView}});Object.defineProperty(exports,"DetailViewToggle",{enumerable:true,get:function(){return _DetailViewToggle.DetailViewToggle}});Object.defineProperty(exports,"DevToolsCard",{enumerable:true,get:function(){return _DevToolsCard.DevToolsCard}});Object.defineProperty(exports,"DiffModeTabs",{enumerable:true,get:function(){return _index.DiffModeTabs}});Object.defineProperty(exports,"DraggableHeader",{enumerable:true,get:function(){return _DraggableHeader.DraggableHeader}});Object.defineProperty(exports,"DynamicFilterView",{enumerable:true,get:function(){return _DynamicFilterView.DynamicFilterView}});Object.defineProperty(exports,"EmptyState",{enumerable:true,get:function(){return _EmptyState.EmptyState}});Object.defineProperty(exports,"EntityFilterView",{enumerable:true,get:function(){return _EntityFilterView.EntityFilterView}});Object.defineProperty(exports,"EventHistoryViewer",{enumerable:true,get:function(){return _index.EventHistoryViewer}});Object.defineProperty(exports,"EventListItem",{enumerable:true,get:function(){return _EventListItem.EventListItem}});Object.defineProperty(exports,"EventPickerModal",{enumerable:true,get:function(){return _index.EventPickerModal}});Object.defineProperty(exports,"EventStepperFooter",{enumerable:true,get:function(){return _EventStepperFooter.EventStepperFooter}});Object.defineProperty(exports,"ExpandablePopover",{enumerable:true,get:function(){return _ExpandablePopover.ExpandablePopover}});Object.defineProperty(exports,"ExpandedInfoRow",{enumerable:true,get:function(){return _ExpandedInfoRow.ExpandedInfoRow}});Object.defineProperty(exports,"ExportPreview",{enumerable:true,get:function(){return _ExportPreview.ExportPreview}});Object.defineProperty(exports,"FilterBadge",{enumerable:true,get:function(){return _FilterComponents.FilterBadge}});Object.defineProperty(exports,"FilterList",{enumerable:true,get:function(){return _FilterComponents.FilterList}});Object.defineProperty(exports,"FilterSection",{enumerable:true,get:function(){return _FilterComponents.FilterSection}});Object.defineProperty(exports,"FooterButton",{enumerable:true,get:function(){return _ToolFooter.FooterButton}});Object.defineProperty(exports,"FooterCaption",{enumerable:true,get:function(){return _ToolFooter.FooterCaption}});Object.defineProperty(exports,"FooterMessage",{enumerable:true,get:function(){return _ToolFooter.FooterMessage}});Object.defineProperty(exports,"FooterRow",{enumerable:true,get:function(){return _ToolFooter.FooterRow}});Object.defineProperty(exports,"GripVerticalIcon",{enumerable:true,get:function(){return _GripVerticalIcon.GripVerticalIcon}});Object.defineProperty(exports,"HeaderSearchButton",{enumerable:true,get:function(){return _HeaderSearchButton.HeaderSearchButton}});Object.defineProperty(exports,"InfoRow",{enumerable:true,get:function(){return _InfoRow.InfoRow}});Object.defineProperty(exports,"InlineCopyButton",{enumerable:true,get:function(){return _CopyButton.InlineCopyButton}});Object.defineProperty(exports,"ListItem",{enumerable:true,get:function(){return _ListItem.ListItem}});Object.defineProperty(exports,"MethodBadge",{enumerable:true,get:function(){return _Badge.MethodBadge}});Object.defineProperty(exports,"ModalHeader",{enumerable:true,get:function(){return _ModalHeader.ModalHeader}});Object.defineProperty(exports,"ModalHintBanner",{enumerable:true,get:function(){return _ModalHintBanner.ModalHintBanner}});Object.defineProperty(exports,"NoDataEmptyState",{enumerable:true,get:function(){return _EmptyState.NoDataEmptyState}});Object.defineProperty(exports,"NoResultsEmptyState",{enumerable:true,get:function(){return _EmptyState.NoResultsEmptyState}});Object.defineProperty(exports,"NoSearchResultsEmptyState",{enumerable:true,get:function(){return _EmptyState.NoSearchResultsEmptyState}});Object.defineProperty(exports,"Pill",{enumerable:true,get:function(){return _Pill.Pill}});Object.defineProperty(exports,"PillBadge",{enumerable:true,get:function(){return _ExpandedInfoRow.PillBadge}});Object.defineProperty(exports,"PowerToggleButton",{enumerable:true,get:function(){return _PowerToggleButton.PowerToggleButton}});Object.defineProperty(exports,"SearchBar",{enumerable:true,get:function(){return _SearchBar.SearchBar}});Object.defineProperty(exports,"SectionHeader",{enumerable:true,get:function(){return _SectionHeader.SectionHeader}});Object.defineProperty(exports,"StatsCard",{enumerable:true,get:function(){return _StatsCard.StatsCard}});Object.defineProperty(exports,"StatusBadge",{enumerable:true,get:function(){return _Badge.StatusBadge}});Object.defineProperty(exports,"StatusIndicator",{enumerable:true,get:function(){return _StatusIndicator.StatusIndicator}});Object.defineProperty(exports,"StorageTypeBadge",{enumerable:true,get:function(){return _StorageTypeBadge.StorageTypeBadge}});Object.defineProperty(exports,"TabSelector",{enumerable:true,get:function(){return _TabSelector.TabSelector}});Object.defineProperty(exports,"TimeDisplay",{enumerable:true,get:function(){return _TimeDisplay.TimeDisplay}});Object.defineProperty(exports,"ToggleRow",{enumerable:true,get:function(){return _ToggleRow.ToggleRow}});Object.defineProperty(exports,"ToolButton",{enumerable:true,get:function(){return _ToolButton.ToolButton}});Object.defineProperty(exports,"ToolEmptyState",{enumerable:true,get:function(){return _ToolEmptyState.ToolEmptyState}});Object.defineProperty(exports,"ToolFooter",{enumerable:true,get:function(){return _ToolFooter.ToolFooter}});Object.defineProperty(exports,"ToolbarClearButton",{enumerable:true,get:function(){return _CopyButton.ToolbarClearButton}});Object.defineProperty(exports,"ToolbarCopyButton",{enumerable:true,get:function(){return _CopyButton.ToolbarCopyButton}});Object.defineProperty(exports,"TypeBadge",{enumerable:true,get:function(){return _Badge.TypeBadge}});Object.defineProperty(exports,"ValueTypeBadge",{enumerable:true,get:function(){return _ValueTypeBadge.ValueTypeBadge}});Object.defineProperty(exports,"ViewToggleCards",{enumerable:true,get:function(){return _index.ViewToggleCards}});Object.defineProperty(exports,"WindowControls",{enumerable:true,get:function(){return _WindowControls.WindowControls}});Object.defineProperty(exports,"noWindowDragProps",{enumerable:true,get:function(){return _windowDrag.noWindowDragProps}});Object.defineProperty(exports,"resolveListEmptyState",{enumerable:true,get:function(){return _ToolEmptyState.resolveListEmptyState}});Object.defineProperty(exports,"setExpandableWindowControls",{enumerable:true,get:function(){return _WindowControls.setExpandableWindowControls}});Object.defineProperty(exports,"sizeWarningLevel",{enumerable:true,get:function(){return _ExportPreview.sizeWarningLevel}});Object.defineProperty(exports,"useChipTap",{enumerable:true,get:function(){return _ChipStrip.useChipTap}});Object.defineProperty(exports,"windowDragProps",{enumerable:true,get:function(){return _windowDrag.windowDragProps}});var _BackButton=require("./BackButton.js");var _ValueTypeBadge=require("./ValueTypeBadge.js");var _StorageTypeBadge=require("./StorageTypeBadge.js");var _CopyButton=require("./CopyButton.js");var _ModalHeader=require("./ModalHeader.js");var _windowDrag=require("./windowDrag.js");var _ModalHintBanner=require("./ModalHintBanner.js");var _ClipboardHintBanner=require("./ClipboardHintBanner.js");var _SectionHeader=require("./SectionHeader.js");var _ListItem=require("./ListItem.js");var _FilterComponents=require("./FilterComponents.js");var _CompactFilterChips=require("./CompactFilterChips.js");var _Badge=require("./Badge.js");var _TabSelector=require("./TabSelector.js");var _ToolButton=require("./ToolButton.js");var _EventListItem=require("./EventListItem.js");var _StatsCard=require("./StatsCard.js");var _CompactRow=require("./CompactRow.js");var _DevToolsCard=require("./DevToolsCard.js");var _HeaderSearchButton=require("./HeaderSearchButton.js");var _EmptyState=require("./EmptyState.js");var _ToolEmptyState=require("./ToolEmptyState.js");var _StatusIndicator=require("./StatusIndicator.js");var _TimeDisplay=require("./TimeDisplay.js");var _DetailView=require("./DetailView.js");var _DraggableHeader=require("./DraggableHeader.js");var _GripVerticalIcon=require("./GripVerticalIcon.js");var _CollapsibleSection=require("./CollapsibleSection.js");var _DataInspector=require("./DataInspector.js");var _SearchBar=require("./SearchBar.js");var _DynamicFilterView=require("./DynamicFilterView.js");var _WindowControls=require("./WindowControls.js");var _EventStepperFooter=require("./EventStepperFooter.js");var _ExpandablePopover=require("./ExpandablePopover.js");var _PowerToggleButton=require("./PowerToggleButton.js");var _ExpandedInfoRow=require("./ExpandedInfoRow.js");var _index=require("./EventHistoryViewer/index.js");var _InfoRow=require("./InfoRow.js");var _DetailViewToggle=require("./DetailViewToggle.js");var _ChangeRow=require("./ChangeRow.js");var _Pill=require("./Pill.js");var _ToolFooter=require("./ToolFooter.js");var _EntityFilterView=require("./EntityFilterView.js");var _ToggleRow=require("./ToggleRow.js");var _ChipStrip=require("./ChipStrip.js");var _ExportPreview=require("./ExportPreview.js");
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"ActionCopyButton",{enumerable:true,get:function(){return _CopyButton.ActionCopyButton}});Object.defineProperty(exports,"AddFilterButton",{enumerable:true,get:function(){return _FilterComponents.AddFilterButton}});Object.defineProperty(exports,"AddFilterInput",{enumerable:true,get:function(){return _FilterComponents.AddFilterInput}});Object.defineProperty(exports,"BackButton",{enumerable:true,get:function(){return _BackButton.BackButton}});Object.defineProperty(exports,"Badge",{enumerable:true,get:function(){return _Badge.Badge}});Object.defineProperty(exports,"ChangeRow",{enumerable:true,get:function(){return _ChangeRow.ChangeRow}});Object.defineProperty(exports,"ChipStrip",{enumerable:true,get:function(){return _ChipStrip.ChipStrip}});Object.defineProperty(exports,"ClipboardHintBanner",{enumerable:true,get:function(){return _ClipboardHintBanner.ClipboardHintBanner}});Object.defineProperty(exports,"CollapsibleSection",{enumerable:true,get:function(){return _CollapsibleSection.CollapsibleSection}});Object.defineProperty(exports,"CompactFilterChips",{enumerable:true,get:function(){return _CompactFilterChips.CompactFilterChips}});Object.defineProperty(exports,"CompactRow",{enumerable:true,get:function(){return _CompactRow.CompactRow}});Object.defineProperty(exports,"CompareBar",{enumerable:true,get:function(){return _index.CompareBar}});Object.defineProperty(exports,"CopyButton",{enumerable:true,get:function(){return _CopyButton.CopyButton}});Object.defineProperty(exports,"CountBadge",{enumerable:true,get:function(){return _Badge.CountBadge}});Object.defineProperty(exports,"DEVTOOLS_CARD_CONSTANTS",{enumerable:true,get:function(){return _DevToolsCard.DEVTOOLS_CARD_CONSTANTS}});Object.defineProperty(exports,"DataInspector",{enumerable:true,get:function(){return _DataInspector.DataInspector}});Object.defineProperty(exports,"DetailView",{enumerable:true,get:function(){return _DetailView.DetailView}});Object.defineProperty(exports,"DetailViewToggle",{enumerable:true,get:function(){return _DetailViewToggle.DetailViewToggle}});Object.defineProperty(exports,"DevToolsCard",{enumerable:true,get:function(){return _DevToolsCard.DevToolsCard}});Object.defineProperty(exports,"DiffModeTabs",{enumerable:true,get:function(){return _index.DiffModeTabs}});Object.defineProperty(exports,"DraggableHeader",{enumerable:true,get:function(){return _DraggableHeader.DraggableHeader}});Object.defineProperty(exports,"DynamicFilterView",{enumerable:true,get:function(){return _DynamicFilterView.DynamicFilterView}});Object.defineProperty(exports,"EmptyState",{enumerable:true,get:function(){return _EmptyState.EmptyState}});Object.defineProperty(exports,"EntityFilterView",{enumerable:true,get:function(){return _EntityFilterView.EntityFilterView}});Object.defineProperty(exports,"EventHistoryViewer",{enumerable:true,get:function(){return _index.EventHistoryViewer}});Object.defineProperty(exports,"EventListItem",{enumerable:true,get:function(){return _EventListItem.EventListItem}});Object.defineProperty(exports,"EventPickerModal",{enumerable:true,get:function(){return _index.EventPickerModal}});Object.defineProperty(exports,"EventStepperFooter",{enumerable:true,get:function(){return _EventStepperFooter.EventStepperFooter}});Object.defineProperty(exports,"ExpandablePopover",{enumerable:true,get:function(){return _ExpandablePopover.ExpandablePopover}});Object.defineProperty(exports,"ExpandedInfoRow",{enumerable:true,get:function(){return _ExpandedInfoRow.ExpandedInfoRow}});Object.defineProperty(exports,"ExportPreview",{enumerable:true,get:function(){return _ExportPreview.ExportPreview}});Object.defineProperty(exports,"FilterBadge",{enumerable:true,get:function(){return _FilterComponents.FilterBadge}});Object.defineProperty(exports,"FilterList",{enumerable:true,get:function(){return _FilterComponents.FilterList}});Object.defineProperty(exports,"FilterSection",{enumerable:true,get:function(){return _FilterComponents.FilterSection}});Object.defineProperty(exports,"FooterButton",{enumerable:true,get:function(){return _ToolFooter.FooterButton}});Object.defineProperty(exports,"FooterCaption",{enumerable:true,get:function(){return _ToolFooter.FooterCaption}});Object.defineProperty(exports,"FooterMessage",{enumerable:true,get:function(){return _ToolFooter.FooterMessage}});Object.defineProperty(exports,"FooterRow",{enumerable:true,get:function(){return _ToolFooter.FooterRow}});Object.defineProperty(exports,"GripVerticalIcon",{enumerable:true,get:function(){return _GripVerticalIcon.GripVerticalIcon}});Object.defineProperty(exports,"HeaderSearchButton",{enumerable:true,get:function(){return _HeaderSearchButton.HeaderSearchButton}});Object.defineProperty(exports,"InfoRow",{enumerable:true,get:function(){return _InfoRow.InfoRow}});Object.defineProperty(exports,"InlineCopyButton",{enumerable:true,get:function(){return _CopyButton.InlineCopyButton}});Object.defineProperty(exports,"ListItem",{enumerable:true,get:function(){return _ListItem.ListItem}});Object.defineProperty(exports,"MethodBadge",{enumerable:true,get:function(){return _Badge.MethodBadge}});Object.defineProperty(exports,"ModalHeader",{enumerable:true,get:function(){return _ModalHeader.ModalHeader}});Object.defineProperty(exports,"ModalHintBanner",{enumerable:true,get:function(){return _ModalHintBanner.ModalHintBanner}});Object.defineProperty(exports,"NoDataEmptyState",{enumerable:true,get:function(){return _EmptyState.NoDataEmptyState}});Object.defineProperty(exports,"NoResultsEmptyState",{enumerable:true,get:function(){return _EmptyState.NoResultsEmptyState}});Object.defineProperty(exports,"NoSearchResultsEmptyState",{enumerable:true,get:function(){return _EmptyState.NoSearchResultsEmptyState}});Object.defineProperty(exports,"Pill",{enumerable:true,get:function(){return _Pill.Pill}});Object.defineProperty(exports,"PillBadge",{enumerable:true,get:function(){return _ExpandedInfoRow.PillBadge}});Object.defineProperty(exports,"PowerToggleButton",{enumerable:true,get:function(){return _PowerToggleButton.PowerToggleButton}});Object.defineProperty(exports,"SearchBar",{enumerable:true,get:function(){return _SearchBar.SearchBar}});Object.defineProperty(exports,"SectionHeader",{enumerable:true,get:function(){return _SectionHeader.SectionHeader}});Object.defineProperty(exports,"StatsCard",{enumerable:true,get:function(){return _StatsCard.StatsCard}});Object.defineProperty(exports,"StatusBadge",{enumerable:true,get:function(){return _Badge.StatusBadge}});Object.defineProperty(exports,"StatusIndicator",{enumerable:true,get:function(){return _StatusIndicator.StatusIndicator}});Object.defineProperty(exports,"StorageTypeBadge",{enumerable:true,get:function(){return _StorageTypeBadge.StorageTypeBadge}});Object.defineProperty(exports,"TabSelector",{enumerable:true,get:function(){return _TabSelector.TabSelector}});Object.defineProperty(exports,"TimeDisplay",{enumerable:true,get:function(){return _TimeDisplay.TimeDisplay}});Object.defineProperty(exports,"ToggleRow",{enumerable:true,get:function(){return _ToggleRow.ToggleRow}});Object.defineProperty(exports,"ToolButton",{enumerable:true,get:function(){return _ToolButton.ToolButton}});Object.defineProperty(exports,"ToolEmptyState",{enumerable:true,get:function(){return _ToolEmptyState.ToolEmptyState}});Object.defineProperty(exports,"ToolFooter",{enumerable:true,get:function(){return _ToolFooter.ToolFooter}});Object.defineProperty(exports,"ToolbarClearButton",{enumerable:true,get:function(){return _CopyButton.ToolbarClearButton}});Object.defineProperty(exports,"ToolbarCopyButton",{enumerable:true,get:function(){return _CopyButton.ToolbarCopyButton}});Object.defineProperty(exports,"TypeBadge",{enumerable:true,get:function(){return _Badge.TypeBadge}});Object.defineProperty(exports,"ValueTypeBadge",{enumerable:true,get:function(){return _ValueTypeBadge.ValueTypeBadge}});Object.defineProperty(exports,"ViewToggleCards",{enumerable:true,get:function(){return _index.ViewToggleCards}});Object.defineProperty(exports,"WindowControls",{enumerable:true,get:function(){return _WindowControls.WindowControls}});Object.defineProperty(exports,"expandableWindowControlsSupported",{enumerable:true,get:function(){return _windowControlsSetting.expandableWindowControlsSupported}});Object.defineProperty(exports,"noWindowDragProps",{enumerable:true,get:function(){return _windowDrag.noWindowDragProps}});Object.defineProperty(exports,"resolveListEmptyState",{enumerable:true,get:function(){return _ToolEmptyState.resolveListEmptyState}});Object.defineProperty(exports,"setExpandableWindowControls",{enumerable:true,get:function(){return _WindowControls.setExpandableWindowControls}});Object.defineProperty(exports,"sizeWarningLevel",{enumerable:true,get:function(){return _ExportPreview.sizeWarningLevel}});Object.defineProperty(exports,"useChipTap",{enumerable:true,get:function(){return _ChipStrip.useChipTap}});Object.defineProperty(exports,"windowDragProps",{enumerable:true,get:function(){return _windowDrag.windowDragProps}});var _BackButton=require("./BackButton.js");var _ValueTypeBadge=require("./ValueTypeBadge.js");var _StorageTypeBadge=require("./StorageTypeBadge.js");var _CopyButton=require("./CopyButton.js");var _ModalHeader=require("./ModalHeader.js");var _windowDrag=require("./windowDrag.js");var _ModalHintBanner=require("./ModalHintBanner.js");var _ClipboardHintBanner=require("./ClipboardHintBanner.js");var _SectionHeader=require("./SectionHeader.js");var _ListItem=require("./ListItem.js");var _FilterComponents=require("./FilterComponents.js");var _CompactFilterChips=require("./CompactFilterChips.js");var _Badge=require("./Badge.js");var _TabSelector=require("./TabSelector.js");var _ToolButton=require("./ToolButton.js");var _EventListItem=require("./EventListItem.js");var _StatsCard=require("./StatsCard.js");var _CompactRow=require("./CompactRow.js");var _DevToolsCard=require("./DevToolsCard.js");var _HeaderSearchButton=require("./HeaderSearchButton.js");var _EmptyState=require("./EmptyState.js");var _ToolEmptyState=require("./ToolEmptyState.js");var _StatusIndicator=require("./StatusIndicator.js");var _TimeDisplay=require("./TimeDisplay.js");var _DetailView=require("./DetailView.js");var _DraggableHeader=require("./DraggableHeader.js");var _GripVerticalIcon=require("./GripVerticalIcon.js");var _CollapsibleSection=require("./CollapsibleSection.js");var _DataInspector=require("./DataInspector.js");var _SearchBar=require("./SearchBar.js");var _DynamicFilterView=require("./DynamicFilterView.js");var _WindowControls=require("./WindowControls.js");var _windowControlsSetting=require("./windowControlsSetting.js");var _EventStepperFooter=require("./EventStepperFooter.js");var _ExpandablePopover=require("./ExpandablePopover.js");var _PowerToggleButton=require("./PowerToggleButton.js");var _ExpandedInfoRow=require("./ExpandedInfoRow.js");var _index=require("./EventHistoryViewer/index.js");var _InfoRow=require("./InfoRow.js");var _DetailViewToggle=require("./DetailViewToggle.js");var _ChangeRow=require("./ChangeRow.js");var _Pill=require("./Pill.js");var _ToolFooter=require("./ToolFooter.js");var _EntityFilterView=require("./EntityFilterView.js");var _ToggleRow=require("./ToggleRow.js");var _ChipStrip=require("./ChipStrip.js");var _ExportPreview=require("./ExportPreview.js");
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.expandableWindowControlsSupported=expandableWindowControlsSupported;exports.isExpandableWindowControlsEnabled=isExpandableWindowControlsEnabled;exports.setExpandableWindowControls=setExpandableWindowControls;var _license=require("@buoy-gg/license");let expandableEnabled=true;function setExpandableWindowControls(e){expandableEnabled=e}function isExpandableWindowControlsEnabled(){return expandableEnabled}function expandableWindowControlsSupported(e){if(!e||(0,_license.isCapacitorNative)())return true;const n=globalThis;return n.matchMedia?.("(pointer: coarse)").matches??false}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.Divider=Divider;exports.FloatingTool=FloatingTool;exports.UserStatus=UserStatus;exports.getBubbleAnchorPosition=getBubbleAnchorPosition;var _nightTheme=require("../night/nightTheme.js");var _react=require("react");var _onboardingConstantsWeb=require("./onboardingConstants.web.js");var _floating=require("@buoy-gg/floating-tools-react/floating");var _jsxRuntime=require("react/jsx-runtime");const webStorageAdapter={getItem:t=>localStorage.getItem(t),setItem:(t,s)=>localStorage.setItem(t,s)};const NATIVE_TEXT_SECONDARY="#A0A0A0";function GripVerticalIcon({size:t=24,color:s=(0,_floating.withAlpha)(NATIVE_TEXT_SECONDARY,"CC")}){const r=(0,_floating.getGripIconLayout)(t);return(0,_jsxRuntime.jsx)("div",{style:{width:t,height:t,display:"flex",flexDirection:"row",alignItems:"center",justifyContent:"center"},children:[0,1].map(a=>(0,_jsxRuntime.jsx)("div",{style:{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",marginLeft:r.columnGap/2,marginRight:r.columnGap/2},children:[0,1,2].map(f=>(0,_jsxRuntime.jsx)("div",{style:{width:r.dotSize,height:r.dotSize,borderRadius:r.dotSize/2,backgroundColor:s,marginTop:r.rowGap/2,marginBottom:r.rowGap/2}},f))},a))})}function Divider(){return(0,_jsxRuntime.jsx)("div",{style:{width:1,height:12,backgroundColor:(0,_floating.withAlpha)(_floating.floatingToolsColors.muted,"66"),flexShrink:0}})}const userStatusColors={success:_floating.floatingToolsColors.success,optional:_floating.floatingToolsColors.optional,muted:_floating.floatingToolsColors.muted,secondary:NATIVE_TEXT_SECONDARY};function UserStatus({userRole:t,onPress:s}){const{isDragging:r}=(0,_floating.useFloatingToolsContext)();const a=(0,_floating.getUserStatusConfig)(t,userStatusColors);const f=g=>{if(!r&&s){g.stopPropagation();g.currentTarget.focus();s()}};return(0,_jsxRuntime.jsxs)("button",{role:"button","aria-label":`User status: ${a.label}`,onClick:f,style:{display:"flex",flexDirection:"row",alignItems:"center",paddingTop:6,paddingBottom:6,paddingLeft:8,paddingRight:8,flexShrink:0,cursor:s&&!r?"pointer":"default",background:"none",border:"none",margin:0},children:[(0,_jsxRuntime.jsx)("div",{style:{width:6,height:6,borderRadius:3,backgroundColor:a.dotColor,marginRight:4}}),(0,_jsxRuntime.jsx)("span",{style:{fontSize:10,fontWeight:500,color:a.textColor,letterSpacing:.3,fontFamily:'-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif',lineHeight:"normal"},children:a.label})]})}function useWebAnimation(){const t=(0,_react.useRef)(null);const[s,r]=(0,_react.useState)({x:0,y:0});const a=(0,_react.useCallback)((f,g,P)=>{if(t.current){cancelAnimationFrame(t.current)}const S=performance.now();const b=m=>{const T=m-S;const w=Math.min(T/_floating.ANIMATION_DURATION,1);const v=(0,_floating.interpolatePosition)(f,g,w,_floating.easing.easeOutCubic);r(v);if(w<1){t.current=requestAnimationFrame(b)}else{r(g);P?.()}};t.current=requestAnimationFrame(b)},[]);(0,_react.useEffect)(()=>{return()=>{if(t.current){cancelAnimationFrame(t.current)}}},[]);return{position:s,setPosition:r,animateTo:a}}let lastBubbleAnchor=null;function getBubbleAnchorPosition(){return lastBubbleAnchor}function FloatingTool({id:t,revealToken:s,variant:r="bubble",dragFromSurface:a=false,accessibilityLabel:f="Drag handle",accessory:g,handleAdornment:P,enablePositionPersistence:S=true,children:b,pushToSide:m=false,suspendPointerEvents:T=false,centerOnboarding:w=false,minimizedStack:v,hasMinimizedStack:B=false}){const h=(0,_react.useRef)(null);const _=(0,_react.useMemo)(()=>t?{getItem:e=>webStorageAdapter.getItem(`@buoy/floating-tool/${t}/${e}`),setItem:(e,n)=>webStorageAdapter.setItem(`@buoy/floating-tool/${t}/${e}`,n)}:webStorageAdapter,[t]);const{state:o,actions:i,isInitialized:l}=(0,_floating.useFloatingTools)({screenSize:{width:window.innerWidth,height:window.innerHeight},enablePositionPersistence:S,storage:_});const{position:p,setPosition:C,animateTo:d}=useWebAnimation();(0,_react.useEffect)(()=>{if(l){C(o.position)}},[l,o.position,C]);(0,_react.useEffect)(()=>{if(!t)lastBubbleAnchor={x:p.x,y:p.y}},[p,t]);(0,_react.useEffect)(()=>{if(!l)return;const e=()=>{const c=h.current?.getBoundingClientRect();if(c&&c.width>0&&c.height>0)i.setBubbleSize({width:c.width,height:c.height})};const n=()=>{i.setScreenSize(window.innerWidth,window.innerHeight);e()};e();const u=typeof ResizeObserver!=="undefined"?new ResizeObserver(e):null;if(h.current)u?.observe(h.current);window.addEventListener("resize",n);return()=>{u?.disconnect();window.removeEventListener("resize",n)}},[i,l]);(0,_react.useEffect)(()=>{const e=document.createElement("div");e.style.cssText="position:fixed;top:env(safe-area-inset-top);left:env(safe-area-inset-left);visibility:hidden;pointer-events:none";document.body.appendChild(e);const n=e.getBoundingClientRect();document.body.removeChild(e);if(n.top>0||n.left>0){i.setMinPosition({x:Math.max(n.left,10),y:Math.max(n.top,10)})}},[i]);const[k,L]=(0,_react.useState)(false);const z=(0,_react.useCallback)(e=>{e.stopPropagation();e.preventDefault();L(true);i.handleDragStart({clientX:e.clientX,clientY:e.clientY})},[i]);const E=(0,_react.useRef)(false);const W=e=>{if(e.button!==0||!(e.target instanceof Element))return;if(e.target.closest('button, a, input, select, textarea, [role="button"], [role="switch"], [role="slider"], [role="checkbox"], [role="radio"], [contenteditable="true"], [data-floating-accessory]'))return;E.current=true;z(e)};const H=(0,_react.useCallback)(e=>{const n=i.handleDragMove({clientX:e.clientX,clientY:e.clientY});if(n.isDragging){C(n.position)}},[i,C]);const x=(0,_react.useCallback)(e=>{L(false);const n=i.handleDragEnd({clientX:e.clientX,clientY:e.clientY});const u=E.current;E.current=false;if(n.wasTap&&!u){const c=i.toggleHideShow();d(o.position,c.targetPosition,()=>{i.commitPosition(c.targetPosition)})}else if(n.shouldHide){d(o.position,n.position,()=>{i.commitPosition(n.position)})}},[i,d,o.position]);(0,_react.useEffect)(()=>{if(k){window.addEventListener("pointermove",H);window.addEventListener("pointerup",x);window.addEventListener("pointercancel",x);return()=>{window.removeEventListener("pointermove",H);window.removeEventListener("pointerup",x);window.removeEventListener("pointercancel",x)}}},[k,H,x]);const R=(0,_react.useRef)(o.position);R.current=o.position;const j=(0,_react.useRef)(o.isHidden);j.current=o.isHidden;const D=(0,_react.useRef)(false);(0,_react.useEffect)(()=>{if(!l)return;if(m&&!D.current){if(j.current)return;D.current=true;const{targetPosition:e}=i.forceHide();d(R.current,e,()=>{})}else if(!m&&D.current){D.current=false;if(!j.current)return;const{targetPosition:e}=i.forceShow();const n=h.current?.getBoundingClientRect().width??100;const u={x:Math.max(10,Math.min(e.x,window.innerWidth-n-10)),y:e.y};d(R.current,u,()=>{i.commitPosition(u)})}},[m,l]);(0,_react.useEffect)(()=>{if(!w||!l)return;const e=h.current?.getBoundingClientRect().width??100;const n=h.current?.getBoundingClientRect().height??32;const u=(0,_onboardingConstantsWeb.calculateTargetPosition)();const c={x:(window.innerWidth-e)/2,y:window.innerHeight-u-n};d(R.current,c,()=>{})},[w,l]);const M=(0,_react.useRef)(void 0);(0,_react.useEffect)(()=>{if(!l||M.current===s)return;M.current=s;if(s!==void 0&&s>0&&o.isHidden){const{targetPosition:e}=i.forceShow();d(o.position,e,()=>i.commitPosition(e))}},[s,l,o.isHidden,o.position,i,d]);const F=(0,_react.useMemo)(()=>r==="strip"?_react.Children.toArray(b):(0,_floating.interleaveWithDividers)(_react.Children.toArray(b),e=>(0,_jsxRuntime.jsx)(Divider,{},e)),[b,r]);if(!l){return null}const y=Math.max(0,p.y-8);const A=Math.max(0,window.innerHeight-p.y-o.bubbleSize.height-8);const $=y>A;const I=y>=48||y>=A;return(0,_jsxRuntime.jsxs)("div",{ref:h,"data-testid":t??"buoy-floating-tool",role:"toolbar","aria-label":"Floating Tools",onPointerDown:a?W:void 0,style:{position:"fixed",left:p.x,top:p.y,zIndex:m?8999:9999,display:"flex",flexDirection:"row",alignItems:"center",backgroundColor:_floating.floatingToolsColors.panel,borderTopLeftRadius:B?0:6,borderTopRightRadius:6,borderBottomLeftRadius:6,borderBottomRightRadius:6,borderWidth:o.isDragging?2:1,borderTopWidth:o.isDragging?2:B?0:1,borderStyle:"solid",borderColor:o.isDragging?_floating.floatingToolsColors.dragActive:(0,_floating.withAlpha)(_floating.floatingToolsColors.muted,"66"),boxShadow:o.isDragging?`0 6px 12px ${(0,_floating.withAlpha)(_floating.floatingToolsColors.dragActive,.36)}`:"0 4px 8px rgba(0, 0, 0, 0.3)",cursor:a?o.isDragging?"grabbing":"grab":void 0,userSelect:"none",touchAction:"none",pointerEvents:T?"none":"auto",...r==="strip"?{borderRadius:_nightTheme.night.radius.card,minHeight:48,backgroundColor:_nightTheme.night.color.surface,borderColor:o.isDragging?_nightTheme.night.color.accentBorderStrong:_nightTheme.night.color.separator,boxShadow:"0 4px 16px rgba(0, 0, 0, 0.24)"}:{}},children:[v&&(0,_jsxRuntime.jsx)("div",{style:{position:"absolute",...I?{bottom:"100%"}:{top:"100%"},"--buoy-stack-bottom":I?"0px":"auto","--buoy-stack-top":I?"auto":"0px","--buoy-stack-space":`${I?y:A}px`,left:-1,width:_floating.VISIBLE_HANDLE_WIDTH,overflow:"visible",zIndex:1001},children:v}),(0,_jsxRuntime.jsxs)("div",{role:"button","aria-label":f,"data-testid":t?`${t}-grip`:"buoy-floating-grip",tabIndex:0,onPointerDown:z,onKeyDown:e=>{if(e.key!=="Enter"&&e.key!==" ")return;e.preventDefault();const n=i.toggleHideShow();d(o.position,n.targetPosition,()=>i.commitPosition(n.targetPosition))},style:{touchAction:"none",paddingLeft:6,paddingRight:6,paddingTop:6,paddingBottom:6,backgroundColor:(0,_floating.withAlpha)(_floating.floatingToolsColors.muted,"1A"),display:"flex",alignItems:"center",justifyContent:"center",width:_floating.VISIBLE_HANDLE_WIDTH,boxSizing:"border-box",borderRight:`1px solid ${(0,_floating.withAlpha)(_floating.floatingToolsColors.muted,"66")}`,cursor:o.isDragging?"grabbing":"grab",...r==="strip"?{minHeight:48,backgroundColor:"transparent",borderRight:"none",flexDirection:"column"}:{}},children:[(0,_jsxRuntime.jsx)(GripVerticalIcon,{size:r==="strip"?20:12}),P]}),(0,_jsxRuntime.jsx)(_floating.FloatingToolsProvider,{value:{isDragging:o.isDragging,isHidden:o.isHidden},children:(0,_jsxRuntime.jsx)("div",{style:{display:"flex",flexDirection:"row",alignItems:"center",gap:6,paddingRight:8},children:F})}),!o.isHidden&&g&&(0,_jsxRuntime.jsx)("div",{"data-floating-accessory":true,style:{position:"absolute",...$?{bottom:"100%"}:{top:"100%"},left:0,width:"100%",maxHeight:Math.max(y,A),overflowY:"auto",zIndex:1002},children:g})]})}
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.Divider=Divider;exports.FloatingTool=FloatingTool;exports.UserStatus=UserStatus;exports.getBubbleAnchorPosition=getBubbleAnchorPosition;var _reactDom=require("react-dom");var _nightTheme=require("../night/nightTheme.js");var _react=require("react");var _onboardingConstantsWeb=require("./onboardingConstants.web.js");var _floating=require("@buoy-gg/floating-tools-react/floating");var _jsxRuntime=require("react/jsx-runtime");const EDGE_PADDING=10;const NATIVE_TOP_PADDING=20;function readSafeAreaInsets(){if(typeof document==="undefined"||!document.body)return{top:0,left:0,bottom:0};const t=document.createElement("div");t.style.cssText="position:fixed;top:0;left:0;visibility:hidden;pointer-events:none;padding-top:env(safe-area-inset-top);padding-left:env(safe-area-inset-left);padding-bottom:env(safe-area-inset-bottom)";document.body.appendChild(t);const s=getComputedStyle(t);const r={top:parseFloat(s.paddingTop)||0,left:parseFloat(s.paddingLeft)||0,bottom:parseFloat(s.paddingBottom)||0};document.body.removeChild(t);return r}const webStorageAdapter={getItem:t=>localStorage.getItem(t),setItem:(t,s)=>localStorage.setItem(t,s)};const NATIVE_TEXT_SECONDARY="#A0A0A0";function GripVerticalIcon({size:t=24,color:s=(0,_floating.withAlpha)(NATIVE_TEXT_SECONDARY,"CC")}){const r=(0,_floating.getGripIconLayout)(t);return(0,_jsxRuntime.jsx)("div",{style:{width:t,height:t,display:"flex",flexDirection:"row",alignItems:"center",justifyContent:"center"},children:[0,1].map(c=>(0,_jsxRuntime.jsx)("div",{style:{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",marginLeft:r.columnGap/2,marginRight:r.columnGap/2},children:[0,1,2].map(p=>(0,_jsxRuntime.jsx)("div",{style:{width:r.dotSize,height:r.dotSize,borderRadius:r.dotSize/2,backgroundColor:s,marginTop:r.rowGap/2,marginBottom:r.rowGap/2}},p))},c))})}function Divider(){return(0,_jsxRuntime.jsx)("div",{style:{width:1,height:12,backgroundColor:(0,_floating.withAlpha)(_floating.floatingToolsColors.muted,"66"),flexShrink:0}})}const userStatusColors={success:_floating.floatingToolsColors.success,optional:_floating.floatingToolsColors.optional,muted:_floating.floatingToolsColors.muted,secondary:NATIVE_TEXT_SECONDARY};function UserStatus({userRole:t,onPress:s}){const{isDragging:r}=(0,_floating.useFloatingToolsContext)();const c=(0,_floating.getUserStatusConfig)(t,userStatusColors);const p=f=>{if(!r&&s){f.stopPropagation();f.currentTarget.focus();s()}};return(0,_jsxRuntime.jsxs)("button",{role:"button","aria-label":s?"Open Dev Tools Menu":`User status: ${c.label}`,"data-testid":s?"open-dev-tools-button":void 0,onClick:p,style:{display:"flex",flexDirection:"row",alignItems:"center",paddingTop:6,paddingBottom:6,paddingLeft:8,paddingRight:8,flexShrink:0,cursor:s&&!r?"pointer":"default",background:"none",border:"none",margin:0},children:[(0,_jsxRuntime.jsx)("div",{style:{width:6,height:6,borderRadius:3,backgroundColor:c.dotColor,marginRight:4}}),(0,_jsxRuntime.jsx)("span",{style:{fontSize:10,fontWeight:500,color:c.textColor,letterSpacing:.3,fontFamily:'-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif',lineHeight:"normal"},children:c.label})]})}function useWebAnimation(){const t=(0,_react.useRef)(null);const[s,r]=(0,_react.useState)({x:0,y:0});const c=(0,_react.useCallback)((p,f,T)=>{if(t.current){cancelAnimationFrame(t.current)}const P=performance.now();const b=m=>{const C=m-P;const w=Math.min(C/_floating.ANIMATION_DURATION,1);const D=(0,_floating.interpolatePosition)(p,f,w,_floating.easing.easeOutCubic);r(D);if(w<1){t.current=requestAnimationFrame(b)}else{r(f);T?.()}};t.current=requestAnimationFrame(b)},[]);(0,_react.useEffect)(()=>{return()=>{if(t.current){cancelAnimationFrame(t.current)}}},[]);return{position:s,setPosition:r,animateTo:c}}let lastBubbleAnchor=null;function getBubbleAnchorPosition(){return lastBubbleAnchor}function FloatingTool({id:t,revealToken:s,variant:r="bubble",dragFromSurface:c=false,accessibilityLabel:p="Drag handle",accessory:f,handleAdornment:T,enablePositionPersistence:P=true,children:b,pushToSide:m=false,suspendPointerEvents:C=false,centerOnboarding:w=false,minimizedStack:D,hasMinimizedStack:L=false}){const h=(0,_react.useRef)(null);const M=(0,_react.useMemo)(()=>t?{getItem:e=>webStorageAdapter.getItem(`@buoy/floating-tool/${t}/${e}`),setItem:(e,i)=>webStorageAdapter.setItem(`@buoy/floating-tool/${t}/${e}`,i)}:webStorageAdapter,[t]);const{state:o,actions:n,isInitialized:d}=(0,_floating.useFloatingTools)({screenSize:{width:window.innerWidth,height:window.innerHeight},enablePositionPersistence:P,storage:M});const{position:u,setPosition:S,animateTo:g}=useWebAnimation();(0,_react.useEffect)(()=>{if(d){S(o.position)}},[d,o.position,S]);(0,_react.useEffect)(()=>{if(!t)lastBubbleAnchor={x:u.x,y:u.y}},[u,t]);(0,_react.useEffect)(()=>{if(!d)return;const e=()=>{const l=h.current?.getBoundingClientRect();if(l&&l.width>0&&l.height>0)n.setBubbleSize({width:l.width,height:l.height})};const i=()=>{const l=readSafeAreaInsets().bottom;n.setScreenSize(window.innerWidth,window.innerHeight-(l>0?l-EDGE_PADDING:0));e()};e();const a=typeof ResizeObserver!=="undefined"?new ResizeObserver(e):null;if(h.current)a?.observe(h.current);window.addEventListener("resize",i);return()=>{a?.disconnect();window.removeEventListener("resize",i)}},[n,d]);const[W,F]=(0,_react.useState)(0);(0,_react.useEffect)(()=>{let e=false;const i=()=>{const a=readSafeAreaInsets();F(a.top);if(a.top>0||a.left>0||a.bottom>0){e=true;n.setMinPosition({x:a.left,y:a.top+NATIVE_TOP_PADDING});n.setScreenSize(window.innerWidth,window.innerHeight-(a.bottom>0?a.bottom-EDGE_PADDING:0))}else if(e){e=false;n.setMinPosition({x:EDGE_PADDING,y:EDGE_PADDING});n.setScreenSize(window.innerWidth,window.innerHeight)}};i();window.addEventListener("resize",i);return()=>window.removeEventListener("resize",i)},[n]);const[z,B]=(0,_react.useState)(false);const k=(0,_react.useCallback)(e=>{e.stopPropagation();e.preventDefault();B(true);n.handleDragStart({clientX:e.clientX,clientY:e.clientY})},[n]);const E=(0,_react.useRef)(false);const G=e=>{if(e.button!==0||!(e.target instanceof Element))return;if(e.target.closest('button, a, input, select, textarea, [role="button"], [role="switch"], [role="slider"], [role="checkbox"], [role="radio"], [contenteditable="true"], [data-floating-accessory]'))return;E.current=true;k(e)};const H=(0,_react.useCallback)(e=>{const i=n.handleDragMove({clientX:e.clientX,clientY:e.clientY});if(i.isDragging){S(i.position)}},[n,S]);const x=(0,_react.useCallback)(e=>{B(false);const i=n.handleDragEnd({clientX:e.clientX,clientY:e.clientY});const a=E.current;E.current=false;if(i.wasTap&&!a){const l=n.toggleHideShow();g(o.position,l.targetPosition,()=>{n.commitPosition(l.targetPosition)})}else if(i.shouldHide){g(o.position,i.position,()=>{n.commitPosition(i.position)})}},[n,g,o.position]);(0,_react.useEffect)(()=>{if(z){window.addEventListener("pointermove",H);window.addEventListener("pointerup",x);window.addEventListener("pointercancel",x);return()=>{window.removeEventListener("pointermove",H);window.removeEventListener("pointerup",x);window.removeEventListener("pointercancel",x)}}},[z,H,x]);const A=(0,_react.useRef)(o.position);A.current=o.position;const j=(0,_react.useRef)(o.isHidden);j.current=o.isHidden;const R=(0,_react.useRef)(false);(0,_react.useEffect)(()=>{if(!d)return;if(m&&!R.current){if(j.current)return;R.current=true;const{targetPosition:e}=n.forceHide();g(A.current,e,()=>{})}else if(!m&&R.current){R.current=false;if(!j.current)return;const{targetPosition:e}=n.forceShow();const i=h.current?.getBoundingClientRect().width??100;const a={x:Math.max(10,Math.min(e.x,window.innerWidth-i-10)),y:e.y};g(A.current,a,()=>{n.commitPosition(a)})}},[m,d]);(0,_react.useEffect)(()=>{if(!w||!d)return;const e=h.current?.getBoundingClientRect().width??100;const i=h.current?.getBoundingClientRect().height??32;const a=(0,_onboardingConstantsWeb.calculateTargetPosition)();const l={x:(window.innerWidth-e)/2,y:window.innerHeight-a-i};g(A.current,l,()=>{})},[w,d]);const _=(0,_react.useRef)(void 0);(0,_react.useEffect)(()=>{if(!d||_.current===s)return;_.current=s;if(s!==void 0&&s>0&&o.isHidden){const{targetPosition:e}=n.forceShow();g(o.position,e,()=>n.commitPosition(e))}},[s,d,o.isHidden,o.position,n,g]);const N=(0,_react.useMemo)(()=>r==="strip"?_react.Children.toArray(b):(0,_floating.interleaveWithDividers)(_react.Children.toArray(b),e=>(0,_jsxRuntime.jsx)(Divider,{},e)),[b,r]);if(!d){return null}const y=Math.max(0,u.y-W-8);const I=Math.max(0,window.innerHeight-u.y-o.bubbleSize.height-8);const Y=y>I;const v=y>=48||y>=I;return(0,_jsxRuntime.jsxs)("div",{ref:h,"data-testid":t??"buoy-floating-tool",role:"toolbar","aria-label":"Floating Tools",onPointerDown:c?G:void 0,style:{position:"fixed",left:u.x,top:u.y,zIndex:m?8999:9999,display:"flex",flexDirection:"row",alignItems:"center",backgroundColor:_floating.floatingToolsColors.panel,borderTopLeftRadius:L?0:6,borderTopRightRadius:6,borderBottomLeftRadius:6,borderBottomRightRadius:6,borderWidth:o.isDragging?2:1,borderTopWidth:o.isDragging?2:L?0:1,borderStyle:"solid",borderColor:o.isDragging?_floating.floatingToolsColors.dragActive:(0,_floating.withAlpha)(_floating.floatingToolsColors.muted,"66"),boxShadow:o.isDragging?`0 6px 12px ${(0,_floating.withAlpha)(_floating.floatingToolsColors.dragActive,.36)}`:"0 4px 8px rgba(0, 0, 0, 0.3)",cursor:c?o.isDragging?"grabbing":"grab":void 0,userSelect:"none",touchAction:"none",pointerEvents:C?"none":"auto",...r==="strip"?{borderRadius:_nightTheme.night.radius.card,minHeight:48,backgroundColor:_nightTheme.night.color.surface,borderColor:o.isDragging?_nightTheme.night.color.accentBorderStrong:_nightTheme.night.color.separator,boxShadow:"0 4px 16px rgba(0, 0, 0, 0.24)"}:{}},children:[D&&(0,_reactDom.createPortal)((0,_jsxRuntime.jsx)("div",{style:{position:"fixed",top:v?u.y:u.y+o.bubbleSize.height,transform:v?"translateY(-100%)":void 0,"--buoy-stack-bottom":v?"0px":"auto","--buoy-stack-top":v?"auto":"0px","--buoy-stack-space":`${v?y:I}px`,left:u.x-1,width:_floating.VISIBLE_HANDLE_WIDTH,overflow:"visible",zIndex:1e4,pointerEvents:C?"none":"auto"},children:D}),document.body),(0,_jsxRuntime.jsxs)("div",{role:"button","aria-label":p,"data-testid":t?`${t}-grip`:"buoy-floating-grip",tabIndex:0,onPointerDown:k,onKeyDown:e=>{if(e.key!=="Enter"&&e.key!==" ")return;e.preventDefault();const i=n.toggleHideShow();g(o.position,i.targetPosition,()=>n.commitPosition(i.targetPosition))},style:{touchAction:"none",paddingLeft:6,paddingRight:6,paddingTop:6,paddingBottom:6,backgroundColor:(0,_floating.withAlpha)(_floating.floatingToolsColors.muted,"1A"),display:"flex",alignItems:"center",justifyContent:"center",width:_floating.VISIBLE_HANDLE_WIDTH,boxSizing:"border-box",borderRight:`1px solid ${(0,_floating.withAlpha)(_floating.floatingToolsColors.muted,"66")}`,cursor:o.isDragging?"grabbing":"grab",...r==="strip"?{minHeight:48,backgroundColor:"transparent",borderRight:"none",flexDirection:"column"}:{}},children:[(0,_jsxRuntime.jsx)(GripVerticalIcon,{size:r==="strip"?20:12}),T]}),(0,_jsxRuntime.jsx)(_floating.FloatingToolsProvider,{value:{isDragging:o.isDragging,isHidden:o.isHidden},children:(0,_jsxRuntime.jsx)("div",{style:{display:"flex",flexDirection:"row",alignItems:"center",gap:6,paddingRight:8},children:N})}),!o.isHidden&&f&&(0,_jsxRuntime.jsx)("div",{"data-floating-accessory":true,style:{position:"absolute",...Y?{bottom:"100%"}:{top:"100%"},left:0,width:"100%",maxHeight:Math.max(y,I),overflowY:"auto",zIndex:1002},children:f})]})}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.hasAsyncStorageNative=hasAsyncStorageNative;const NATIVE_NAMES=["RNCAsyncStorage","RNC_AsyncSQLiteDBStorage","PlatformLocalStorage","AsyncSQLiteDBStorage","AsyncLocalStorage"];function hasAsyncStorageNative(){let e;try{e=require("react-native")}catch{return true}if(!e?.Platform||e.Platform.OS==="web")return true;try{return NATIVE_NAMES.some(t=>!!e.TurboModuleRegistry?.get?.(t)||!!e.NativeModules?.[t])}catch{return false}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.browserRouter=void 0;exports.getBrowserHref=getBrowserHref;exports.getBrowserRouteURL=getBrowserRouteURL;exports.registerBrowserRouter=registerBrowserRouter;exports.subscribeBrowserNavigation=subscribeBrowserNavigation;let adapter;const listeners=new Set;let detach;function registerBrowserRouter(e){adapter=e;return()=>{if(adapter===e)adapter=void 0}}function getBrowserHref(){return typeof location==="undefined"?"/":location.href}function getBrowserRouteURL(e=getBrowserHref()){const t=new URL(e,"http://localhost");
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.browserRouter=void 0;exports.getBrowserHref=getBrowserHref;exports.getBrowserRouteURL=getBrowserRouteURL;exports.registerBrowserRouter=registerBrowserRouter;exports.subscribeBrowserNavigation=subscribeBrowserNavigation;let adapter;const listeners=new Set;let detach;let unwrap;function registerBrowserRouter(e){adapter=e;return()=>{if(adapter===e)adapter=void 0}}function getBrowserHref(){return typeof location==="undefined"?"/":location.href}function getBrowserRouteURL(e=getBrowserHref()){const t=new URL(e,"http://localhost");const r=t.hash.startsWith("#/")?new URL(t.hash.slice(1),t.origin):t;if(!r.pathname)r.pathname="/";return r}let wrappers;function subscribeBrowserNavigation(e){if(!listeners.size&&typeof window!=="undefined"){const t=window.history;const r=o=>{for(const n of[...listeners]){try{n({href:getBrowserHref(),kind:o})}catch{}}};if(wrappers)wrappers.active=true;else{const o=t.pushState;const n=t.replaceState;const i={push:o,replace:n,active:true};const p=function(...a){const c=Reflect.apply(o,this,a);if(i.active)r("push");return c};const w=function(...a){const c=Reflect.apply(n,this,a);if(i.active)r("replace");return c};t.pushState=p;t.replaceState=w;wrappers=i;unwrap=()=>{if(t.pushState!==p||t.replaceState!==w)return;t.pushState=o;t.replaceState=n;wrappers=void 0}}const s=()=>r("pop");window.addEventListener("popstate",s);window.addEventListener("hashchange",s);detach=()=>{if(wrappers)wrappers.active=false;unwrap?.();window.removeEventListener("popstate",s);window.removeEventListener("hashchange",s);detach=void 0}}listeners.add(e);return()=>{listeners.delete(e);if(!listeners.size)detach?.()}}function pathFor(e){const t=typeof e==="string"?e:e.pathname;const r=new URL(t,getBrowserHref());if(r.origin!==window.location.origin)throw new Error("Tool navigation must stay on the current origin.");if(typeof e!=="string")for(const[s,o]of Object.entries(e.params??{}))r.searchParams.set(s,String(o));return`${r.pathname}${r.search}${r.hash}`}const browserRouter=exports.browserRouter={push(e){const t=pathFor(e);if(adapter)return adapter.push(t);window.history.pushState(null,"",window.location.hash.startsWith("#/")?`#${t}`:t);window.dispatchEvent(new PopStateEvent("popstate",{state:window.history.state}))},replace(e){const t=pathFor(e);if(adapter)return adapter.replace(t);window.history.replaceState(window.history.state,"",window.location.hash.startsWith("#/")?`#${t}`:t);window.dispatchEvent(new PopStateEvent("popstate",{state:window.history.state}))},back(){if(adapter)adapter.back();else window.history.back()},canGoBack(){return adapter?.canGoBack?.()??(typeof window!=="undefined"&&window.history.length>1)},navigate(e){browserRouter.push(e)},setParams(e){browserRouter.replace({pathname:getBrowserHref(),params:e})},dismiss(e=1){window.history.go(-e)},dismissAll(){throw new Error("Use the captured browser history to select a destination.")}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.getStorageBackendType=getStorageBackendType;exports.isUsingPersistentStorage=isUsingPersistentStorage;exports.persistentStorage=void 0;exports.resetStorageInit=resetStorageInit;var _devToolsStorageKeys=require("../storage/devToolsStorageKeys.js");var _storageWrites=require("./storageWrites.js");let storageBackend=null;let initPromise=null;let initWarningShown=false;let FileSystem=null;let AsyncStorage=null;const memoryStore=new Map;function isWebEnvironment(){return typeof window!=="undefined"&&window?.localStorage!==void 0}const STORAGE_DIR_NAME="react-buoy";const HEALTH_CHECK_FILE_NAME=".health-check";function getStorageDir(){if(!FileSystem?.documentDirectory)return null;return`${FileSystem.documentDirectory}${STORAGE_DIR_NAME}/`}function encodeKeyForFs(t){return encodeURIComponent(t.replace(/~/g,"~0").replace(/\//g,"~1"))}function decodeKeyFromFs(t){return decodeURIComponent(t).replace(/~1/g,"/").replace(/~0/g,"~")}function getFilePath(t){const e=getStorageDir();if(!e)return null;return`${e}${encodeKeyForFs(t)}.json`}function loadFileSystem(){if(FileSystem)return FileSystem;try{const t=require("expo-file-system/legacy");FileSystem=t?.default||t;if(FileSystem&&FileSystem.documentDirectory){return FileSystem}FileSystem=null}catch{}try{const t=require("expo-file-system");FileSystem=t?.default||t;if(FileSystem&&FileSystem.documentDirectory){return FileSystem}FileSystem=null}catch{}return null}function loadAsyncStorage(){if(AsyncStorage)return AsyncStorage;try{const t=require("@react-native-async-storage/async-storage");AsyncStorage=t?.default||t;if(AsyncStorage&&typeof AsyncStorage.getItem==="function"){return AsyncStorage}AsyncStorage=null}catch{}return null}async function testFileSystem(){const t=loadFileSystem();if(!t||!t.documentDirectory){return false}const e=getStorageDir();if(!e)return false;const r=`${e}${HEALTH_CHECK_FILE_NAME}`;try{const n=await t.getInfoAsync(e);if(!n.exists){await t.makeDirectoryAsync(e,{intermediates:true})}const s=`health-check-${Date.now()}`;await t.writeAsStringAsync(r,s);const a=await t.readAsStringAsync(r);if(a!==s){return false}await t.deleteAsync(r,{idempotent:true});return true}catch(n){console.warn("[React Buoy] FileSystem health check failed:",n);return false}}async function migrateFromAsyncStorage(){const t=loadAsyncStorage();if(!t)return;try{const e=await t.getAllKeys();const r=e.filter(a=>a.startsWith(_devToolsStorageKeys.devToolsStorageKeys.base));if(r.length===0){return}const n=await t.multiGet(r);let s=0;for(const[a,o]of n){if(o!==null){await fileSystemStorage.setItem(a,o);s++}}void s}catch(e){console.warn("[React Buoy] Migration failed:",e)}}const fileSystemStorage={async getItem(t){const e=loadFileSystem();if(!e)return null;const r=getFilePath(t);if(!r)return null;try{const n=await e.getInfoAsync(r);if(!n.exists){return null}const s=await e.readAsStringAsync(r);return s}catch{return null}},async setItem(t,e){const r=loadFileSystem();if(!r)return;const n=getStorageDir();const s=getFilePath(t);if(!n||!s)return;try{const a=await r.getInfoAsync(n);if(!a.exists){await r.makeDirectoryAsync(n,{intermediates:true})}await r.writeAsStringAsync(s,e)}catch(a){console.warn("[React Buoy] FileSystem write failed:",a)}},async removeItem(t){const e=loadFileSystem();if(!e)return;const r=getFilePath(t);if(!r)return;try{await e.deleteAsync(r,{idempotent:true})}catch{}},async getAllKeys(){const t=loadFileSystem();if(!t)return[];const e=getStorageDir();if(!e)return[];try{const r=await t.getInfoAsync(e);if(!r.exists)return[];const n=await t.readDirectoryAsync(e);return n.filter(s=>s.endsWith(".json")).map(s=>decodeKeyFromFs(s.replace(".json","")))}catch{return[]}},async multiGet(t){const e=[];for(const r of t){const n=await this.getItem(r);e.push([r,n])}return e},async multiRemove(t){for(const e of t){await this.removeItem(e)}},async clear(){const t=loadFileSystem();if(!t)return;const e=getStorageDir();if(!e)return;try{await t.deleteAsync(e,{idempotent:true})}catch{}}};const asyncStorageAdapter={async getItem(t){const e=loadAsyncStorage();if(!e)return memoryStore.get(t)??null;try{return await e.getItem(t)}catch{return memoryStore.get(t)??null}},async setItem(t,e){const r=loadAsyncStorage();if(!r){memoryStore.set(t,e);return}try{await r.setItem(t,e)}catch{memoryStore.set(t,e)}},async removeItem(t){const e=loadAsyncStorage();memoryStore.delete(t);if(!e)return;try{await e.removeItem(t)}catch{}},async getAllKeys(){const t=loadAsyncStorage();if(!t)return Array.from(memoryStore.keys());try{const e=await t.getAllKeys();return e.filter(r=>r.startsWith(_devToolsStorageKeys.devToolsStorageKeys.base))}catch{return Array.from(memoryStore.keys())}},async multiGet(t){const e=loadAsyncStorage();if(!e){return t.map(r=>[r,memoryStore.get(r)??null])}try{const r=await e.multiGet(t);return r}catch{return t.map(r=>[r,memoryStore.get(r)??null])}},async multiRemove(t){t.forEach(r=>memoryStore.delete(r));const e=loadAsyncStorage();if(!e)return;try{await e.multiRemove(t)}catch{}},async clear(){memoryStore.clear();const t=loadAsyncStorage();if(!t)return;try{const e=await t.getAllKeys();const r=e.filter(n=>n.startsWith(_devToolsStorageKeys.devToolsStorageKeys.base));if(r.length>0){await t.multiRemove(r)}}catch{}}};const localStorageAdapter={async getItem(t){if(!isWebEnvironment())return memoryStore.get(t)??null;try{return window.localStorage.getItem(t)}catch{return memoryStore.get(t)??null}},async setItem(t,e){if(!isWebEnvironment()){memoryStore.set(t,e);return}try{window.localStorage.setItem(t,e)}catch{memoryStore.set(t,e)}},async removeItem(t){memoryStore.delete(t);if(!isWebEnvironment())return;try{window.localStorage.removeItem(t)}catch{}},async getAllKeys(){if(!isWebEnvironment())return Array.from(memoryStore.keys());try{const t=[];const e=window.localStorage;for(let r=0;r<e.length;r++){const n=e.key(r);if(n&&n.startsWith(_devToolsStorageKeys.devToolsStorageKeys.base)){t.push(n)}}return t}catch{return Array.from(memoryStore.keys())}},async multiGet(t){const e=[];for(const r of t){const n=await this.getItem(r);e.push([r,n])}return e},async multiRemove(t){for(const e of t){await this.removeItem(e)}},async clear(){memoryStore.clear();if(!isWebEnvironment())return;try{const t=await this.getAllKeys();const e=window.localStorage;for(const r of t){e.removeItem(r)}}catch{}}};const memoryStorage={async getItem(t){return memoryStore.get(t)??null},async setItem(t,e){memoryStore.set(t,e)},async removeItem(t){memoryStore.delete(t)},async getAllKeys(){return Array.from(memoryStore.keys())},async multiGet(t){return t.map(e=>[e,memoryStore.get(e)??null])},async multiRemove(t){t.forEach(e=>memoryStore.delete(e))},async clear(){memoryStore.clear()}};async function initStorage(){if(storageBackend!==null)return;const t=await testFileSystem();if(t){const e=await fileSystemStorage.getAllKeys();if(e.length===0){await migrateFromAsyncStorage()}storageBackend="filesystem"}else if(isWebEnvironment()){storageBackend="localstorage"}else{const e=loadAsyncStorage();if(e){storageBackend="asyncstorage";if(!initWarningShown){initWarningShown=true;console.warn("[React Buoy] Using AsyncStorage fallback. Settings may be lost if AsyncStorage is cleared. Install expo-file-system for persistent storage.")}}else{storageBackend="memory";if(!initWarningShown){initWarningShown=true;console.warn("[React Buoy] Using in-memory storage. Settings will be lost on app restart.")}}}}function ensureInit(){if(!initPromise){initPromise=initStorage()}return initPromise}function getStorage(){switch(storageBackend){case"filesystem":return fileSystemStorage;case"asyncstorage":return asyncStorageAdapter;case"localstorage":return localStorageAdapter;case"memory":default:return memoryStorage}}const persistentStorage=exports.persistentStorage={async getItem(t){await ensureInit();return getStorage().getItem(t)},async setItem(t,e){await ensureInit();await getStorage().setItem(t,e);(0,_storageWrites.notifyStorageWrite)(t,e)},async removeItem(t){await ensureInit();await getStorage().removeItem(t);(0,_storageWrites.notifyStorageWrite)(t,null)},async getAllKeys(){await ensureInit();return getStorage().getAllKeys()},async multiGet(t){await ensureInit();return getStorage().multiGet(t)},async multiRemove(t){await ensureInit();return getStorage().multiRemove(t)},async clear(){await ensureInit();return getStorage().clear()}};async function isUsingPersistentStorage(){await ensureInit();return storageBackend==="filesystem"}async function getStorageBackendType(){await ensureInit();return storageBackend??"memory"}function resetStorageInit(){storageBackend=null;initPromise=null;initWarningShown=false}
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.getStorageBackendType=getStorageBackendType;exports.isUsingPersistentStorage=isUsingPersistentStorage;exports.persistentStorage=void 0;exports.resetStorageInit=resetStorageInit;var _devToolsStorageKeys=require("../storage/devToolsStorageKeys.js");var _storageWrites=require("./storageWrites.js");var _asyncStorageNative=require("./asyncStorageNative.js");let storageBackend=null;let initPromise=null;let initWarningShown=false;let FileSystem=null;let AsyncStorage=null;const memoryStore=new Map;function isWebEnvironment(){return typeof window!=="undefined"&&window?.localStorage!==void 0}const STORAGE_DIR_NAME="react-buoy";const HEALTH_CHECK_FILE_NAME=".health-check";function getStorageDir(){if(!FileSystem?.documentDirectory)return null;return`${FileSystem.documentDirectory}${STORAGE_DIR_NAME}/`}function encodeKeyForFs(t){return encodeURIComponent(t.replace(/~/g,"~0").replace(/\//g,"~1"))}function decodeKeyFromFs(t){return decodeURIComponent(t).replace(/~1/g,"/").replace(/~0/g,"~")}function getFilePath(t){const e=getStorageDir();if(!e)return null;return`${e}${encodeKeyForFs(t)}.json`}function loadFileSystem(){if(FileSystem)return FileSystem;try{const t=require("expo-file-system/legacy");FileSystem=t?.default||t;if(FileSystem&&FileSystem.documentDirectory){return FileSystem}FileSystem=null}catch{}try{const t=require("expo-file-system");FileSystem=t?.default||t;if(FileSystem&&FileSystem.documentDirectory){return FileSystem}FileSystem=null}catch{}return null}function loadAsyncStorage(){if(AsyncStorage)return AsyncStorage;if(!(0,_asyncStorageNative.hasAsyncStorageNative)())return null;try{const t=require("@react-native-async-storage/async-storage");AsyncStorage=t?.default||t;if(AsyncStorage&&typeof AsyncStorage.getItem==="function"){return AsyncStorage}AsyncStorage=null}catch{}return null}async function testFileSystem(){const t=loadFileSystem();if(!t||!t.documentDirectory){return false}const e=getStorageDir();if(!e)return false;const r=`${e}${HEALTH_CHECK_FILE_NAME}`;try{const n=await t.getInfoAsync(e);if(!n.exists){await t.makeDirectoryAsync(e,{intermediates:true})}const s=`health-check-${Date.now()}`;await t.writeAsStringAsync(r,s);const a=await t.readAsStringAsync(r);if(a!==s){return false}await t.deleteAsync(r,{idempotent:true});return true}catch(n){console.warn("[React Buoy] FileSystem health check failed:",n);return false}}async function migrateFromAsyncStorage(){const t=loadAsyncStorage();if(!t)return;try{const e=await t.getAllKeys();const r=e.filter(a=>a.startsWith(_devToolsStorageKeys.devToolsStorageKeys.base));if(r.length===0){return}const n=await t.multiGet(r);let s=0;for(const[a,o]of n){if(o!==null){await fileSystemStorage.setItem(a,o);s++}}void s}catch(e){console.warn("[React Buoy] Migration failed:",e)}}const fileSystemStorage={async getItem(t){const e=loadFileSystem();if(!e)return null;const r=getFilePath(t);if(!r)return null;try{const n=await e.getInfoAsync(r);if(!n.exists){return null}const s=await e.readAsStringAsync(r);return s}catch{return null}},async setItem(t,e){const r=loadFileSystem();if(!r)return;const n=getStorageDir();const s=getFilePath(t);if(!n||!s)return;try{const a=await r.getInfoAsync(n);if(!a.exists){await r.makeDirectoryAsync(n,{intermediates:true})}await r.writeAsStringAsync(s,e)}catch(a){console.warn("[React Buoy] FileSystem write failed:",a)}},async removeItem(t){const e=loadFileSystem();if(!e)return;const r=getFilePath(t);if(!r)return;try{await e.deleteAsync(r,{idempotent:true})}catch{}},async getAllKeys(){const t=loadFileSystem();if(!t)return[];const e=getStorageDir();if(!e)return[];try{const r=await t.getInfoAsync(e);if(!r.exists)return[];const n=await t.readDirectoryAsync(e);return n.filter(s=>s.endsWith(".json")).map(s=>decodeKeyFromFs(s.replace(".json","")))}catch{return[]}},async multiGet(t){const e=[];for(const r of t){const n=await this.getItem(r);e.push([r,n])}return e},async multiRemove(t){for(const e of t){await this.removeItem(e)}},async clear(){const t=loadFileSystem();if(!t)return;const e=getStorageDir();if(!e)return;try{await t.deleteAsync(e,{idempotent:true})}catch{}}};const asyncStorageAdapter={async getItem(t){const e=loadAsyncStorage();if(!e)return memoryStore.get(t)??null;try{return await e.getItem(t)}catch{return memoryStore.get(t)??null}},async setItem(t,e){const r=loadAsyncStorage();if(!r){memoryStore.set(t,e);return}try{await r.setItem(t,e)}catch{memoryStore.set(t,e)}},async removeItem(t){const e=loadAsyncStorage();memoryStore.delete(t);if(!e)return;try{await e.removeItem(t)}catch{}},async getAllKeys(){const t=loadAsyncStorage();if(!t)return Array.from(memoryStore.keys());try{const e=await t.getAllKeys();return e.filter(r=>r.startsWith(_devToolsStorageKeys.devToolsStorageKeys.base))}catch{return Array.from(memoryStore.keys())}},async multiGet(t){const e=loadAsyncStorage();if(!e){return t.map(r=>[r,memoryStore.get(r)??null])}try{const r=await e.multiGet(t);return r}catch{return t.map(r=>[r,memoryStore.get(r)??null])}},async multiRemove(t){t.forEach(r=>memoryStore.delete(r));const e=loadAsyncStorage();if(!e)return;try{await e.multiRemove(t)}catch{}},async clear(){memoryStore.clear();const t=loadAsyncStorage();if(!t)return;try{const e=await t.getAllKeys();const r=e.filter(n=>n.startsWith(_devToolsStorageKeys.devToolsStorageKeys.base));if(r.length>0){await t.multiRemove(r)}}catch{}}};const localStorageAdapter={async getItem(t){if(!isWebEnvironment())return memoryStore.get(t)??null;try{return window.localStorage.getItem(t)}catch{return memoryStore.get(t)??null}},async setItem(t,e){if(!isWebEnvironment()){memoryStore.set(t,e);return}try{window.localStorage.setItem(t,e)}catch{memoryStore.set(t,e)}},async removeItem(t){memoryStore.delete(t);if(!isWebEnvironment())return;try{window.localStorage.removeItem(t)}catch{}},async getAllKeys(){if(!isWebEnvironment())return Array.from(memoryStore.keys());try{const t=[];const e=window.localStorage;for(let r=0;r<e.length;r++){const n=e.key(r);if(n&&n.startsWith(_devToolsStorageKeys.devToolsStorageKeys.base)){t.push(n)}}return t}catch{return Array.from(memoryStore.keys())}},async multiGet(t){const e=[];for(const r of t){const n=await this.getItem(r);e.push([r,n])}return e},async multiRemove(t){for(const e of t){await this.removeItem(e)}},async clear(){memoryStore.clear();if(!isWebEnvironment())return;try{const t=await this.getAllKeys();const e=window.localStorage;for(const r of t){e.removeItem(r)}}catch{}}};const memoryStorage={async getItem(t){return memoryStore.get(t)??null},async setItem(t,e){memoryStore.set(t,e)},async removeItem(t){memoryStore.delete(t)},async getAllKeys(){return Array.from(memoryStore.keys())},async multiGet(t){return t.map(e=>[e,memoryStore.get(e)??null])},async multiRemove(t){t.forEach(e=>memoryStore.delete(e))},async clear(){memoryStore.clear()}};async function initStorage(){if(storageBackend!==null)return;const t=await testFileSystem();if(t){const e=await fileSystemStorage.getAllKeys();if(e.length===0){await migrateFromAsyncStorage()}storageBackend="filesystem"}else if(isWebEnvironment()){storageBackend="localstorage"}else{const e=loadAsyncStorage();if(e){storageBackend="asyncstorage";if(!initWarningShown){initWarningShown=true;console.warn("[React Buoy] Using AsyncStorage fallback. Settings may be lost if AsyncStorage is cleared. Install expo-file-system for persistent storage.")}}else{storageBackend="memory";if(!initWarningShown){initWarningShown=true;console.warn("[React Buoy] Using in-memory storage. Settings will be lost on app restart.")}}}}function ensureInit(){if(!initPromise){initPromise=initStorage()}return initPromise}function getStorage(){switch(storageBackend){case"filesystem":return fileSystemStorage;case"asyncstorage":return asyncStorageAdapter;case"localstorage":return localStorageAdapter;case"memory":default:return memoryStorage}}const persistentStorage=exports.persistentStorage={async getItem(t){await ensureInit();return getStorage().getItem(t)},async setItem(t,e){await ensureInit();await getStorage().setItem(t,e);(0,_storageWrites.notifyStorageWrite)(t,e)},async removeItem(t){await ensureInit();await getStorage().removeItem(t);(0,_storageWrites.notifyStorageWrite)(t,null)},async getAllKeys(){await ensureInit();return getStorage().getAllKeys()},async multiGet(t){await ensureInit();return getStorage().multiGet(t)},async multiRemove(t){await ensureInit();return getStorage().multiRemove(t)},async clear(){await ensureInit();return getStorage().clear()}};async function isUsingPersistentStorage(){await ensureInit();return storageBackend==="filesystem"}async function getStorageBackendType(){await ensureInit();return storageBackend??"memory"}function resetStorageInit(){storageBackend=null;initPromise=null;initWarningShown=false}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.BUOY_SYNTHETIC_MARK=void 0;exports.countBuoyListener=countBuoyListener;exports.getRealAppState=getRealAppState;exports.subscribeRealAppState=subscribeRealAppState;var _reactNative=require("react-native");const BUOY_SYNTHETIC_MARK=exports.BUOY_SYNTHETIC_MARK="__buoySynthetic";function countBuoyListener(t,e){const n=globalThis;const r=n.__buoyOwnDeviceListeners??={};r[t]=Math.max(0,(r[t]??0)+e)}const listeners=new Set;let current="unknown";let started=false;function readInitial(){try{return _reactNative.AppState?.currentState??"unknown"}catch{return"unknown"}}function set(t){if(t===current)return;current=t;for(const e of Array.from(listeners)){try{e(t)}catch{}}}function start(){if(started)return;started=true;current=readInitial();try{if(_reactNative.Platform.OS==="web"){_reactNative.AppState.addEventListener("change",
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.BUOY_SYNTHETIC_MARK=void 0;exports.countBuoyListener=countBuoyListener;exports.getRealAppState=getRealAppState;exports.subscribeRealAppState=subscribeRealAppState;var _reactNative=require("react-native");const BUOY_SYNTHETIC_MARK=exports.BUOY_SYNTHETIC_MARK="__buoySynthetic";function countBuoyListener(t,e){const n=globalThis;const r=n.__buoyOwnDeviceListeners??={};r[t]=Math.max(0,(r[t]??0)+e)}const listeners=new Set;let current="unknown";let started=false;function webDocument(){const t=globalThis.document;return t&&typeof t.addEventListener==="function"?t:null}function realWebState(){try{const t=webDocument();const e=globalThis.Document?.prototype;const n=e&&Object.getOwnPropertyDescriptor(e,"visibilityState")?.get;if(!t||!n)return null;return n.call(t)==="visible"?"active":"background"}catch{return null}}function readInitial(){if(_reactNative.Platform.OS==="web"){const t=realWebState();if(t)return t}try{return _reactNative.AppState?.currentState??"unknown"}catch{return"unknown"}}function set(t){if(t===current)return;current=t;for(const e of Array.from(listeners)){try{e(t)}catch{}}}function start(){if(started)return;started=true;current=readInitial();try{if(_reactNative.Platform.OS==="web"){const t=webDocument();if(t&&realWebState()){t.addEventListener("visibilitychange",e=>{if(e?.[BUOY_SYNTHETIC_MARK])return;const n=realWebState();if(n)set(n)});return}_reactNative.AppState.addEventListener("change",e=>set(e));return}countBuoyListener("appStateDidChange",1);_reactNative.DeviceEventEmitter.addListener("appStateDidChange",t=>{if(!t||t[BUOY_SYNTHETIC_MARK])return;if(t.app_state)set(t.app_state)})}catch{}}function getRealAppState(){start();if(current==="unknown")current=readInitial();return current}function subscribeRealAppState(t){start();listeners.add(t);return{remove:()=>listeners.delete(t)}}
|