@buoy-gg/floating-tools-react 7.0.55 → 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.
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use client";var T=(()=>{try{let i=globalThis.Capacitor;if(i&&typeof i.isNativePlatform=="function"&&i.isNativePlatform())return i.DEBUG===true}catch{}return process.env.NODE_ENV!=="production"})();typeof window<"u"&&typeof globalThis.global>"u"&&(globalThis.global=globalThis);import{useMemo as l,useSyncExternalStore as f,useEffect as h,useRef as S}from"react";import{FloatingToolsStore as m}from"@buoy-gg/floating-tools-core/web/floating";import{useState as p}from"react";function b(i){let{screenSize:r,...o}=i,e=l(()=>new m({...o,screenWidth:r.width,screenHeight:r.height}),[o.enablePositionPersistence,o.storage,o.visibleHandleWidth,o.dragThreshold,o.edgePadding]),n=S(false),[s,d]=p(false);h(()=>(n.current||(n.current=true,e.initialize().then(()=>{d(true)})),()=>{e.destroy()}),[e]),h(()=>{e.setScreenSize(r.width,r.height)},[e,r.width,r.height]);let c=f(e.subscribe,e.getSnapshot),g=l(()=>({handleDragStart:t=>e.handleDragStart(t),handleDragMove:t=>e.handleDragMove(t),handleDragEnd:t=>e.handleDragEnd(t),toggleHideShow:()=>e.toggleHideShow(),commitPosition:t=>e.commitPosition(t),setBubbleSize:t=>e.setBubbleSize(t),setScreenSize:(t,u)=>e.setScreenSize(t,u),setMinPosition:t=>e.setMinPosition(t),forceHide:()=>e.forceHide(),forceShow:()=>e.forceShow()}),[e]);return{state:c,store:e,isInitialized:s,actions:g}}import{createContext as v,useContext as P}from"react";import{jsx as w}from"react/jsx-runtime";var D={isDragging:false,isHidden:false},a=v(D);function z(){return P(a)}function E({value:i,children:r}){return w(a.Provider,{value:i,children:r})}import{filterValidChildren as y}from"@buoy-gg/floating-tools-core/web/floating";function H(i,r){let o=y(i),e=[];return o.forEach((n,s)=>{e.push(n),s<o.length-1&&e.push(r(`divider-${s}`))}),e}export{b as a,a as b,z as c,E as d,H as e};
|
package/dist/web/floating.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import{a as o,b as s,c as a,d as e,e as t}from"./chunks/chunk-
|
|
1
|
+
"use client";import{a as o,b as s,c as a,d as e,e as t}from"./chunks/chunk-DEGRDYGJ.mjs";export*from"@buoy-gg/floating-tools-core/web/floating";export{s as FloatingToolsContext,e as FloatingToolsProvider,t as interleaveWithDividers,o as useFloatingTools,a as useFloatingToolsContext};
|
package/dist/web/index.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import{a as Z,b as J,c as V,d as Y,e as Q}from"./chunks/chunk-
|
|
1
|
+
"use client";import{a as Z,b as J,c as V,d as Y,e as Q}from"./chunks/chunk-DEGRDYGJ.mjs";import{useState as b,useEffect as R,useCallback as d,useMemo as L}from"react";import{settingsEventBus as M,SETTINGS_STORAGE_KEY as P,MAX_SETTINGS_DIAL_SLOTS as G,enforceDialLimit as q,mergeSettingsWithDefaults as $,generateDefaultSettings as ee,countEnabledTools as x,getEnabledToolIds as te}from"@buoy-gg/floating-tools-core/web";function F(e={}){let{availableTools:t=[],defaultFloatingTools:a,defaultDialTools:S,storage:l,initialSettings:D,onSettingsChange:c,subscribeToEventBus:T=true}=e,i=L(()=>ee(t,a,S),[t,a,S]),f=L(()=>Object.keys(i.dialTools),[i]),I=L(()=>Object.keys(i.floatingTools).filter(s=>s!=="environment"),[i]),[o,u]=b(D??i),[A,m]=b(true),[_,C]=b(false),[v,h]=b(null),y=d(async()=>{if(!l){m(false),C(true);return}try{m(true),h(null);let s=await l.getItem(P);if(s){let n=JSON.parse(s),g=$(i,n,{allowedDialKeys:f,allowedFloatingKeys:I});u(g)}else u(i)}catch(s){console.error("Failed to load dev tools settings:",s),h(s instanceof Error?s.message:"Failed to load settings"),u(i)}finally{m(false),C(true)}},[l,i,f,I]),r=d(async s=>{let n={...s,dialTools:q(s.dialTools)};try{l&&await l.setItem(P,JSON.stringify(n)),u(n),c?.(n),M.emit(n)}catch(g){throw console.error("Failed to save dev tools settings:",g),h(g instanceof Error?g.message:"Failed to save settings"),g}},[l,c]),H=d(s=>{let n=x(o.dialTools);if(!o.dialTools[s]&&n>=G)return;let g={...o,dialTools:{...o.dialTools,[s]:!o.dialTools[s]}};r(g)},[o,r]),K=d(s=>{let n={...o,floatingTools:{...o.floatingTools,[s]:!o.floatingTools[s]}};r(n)},[o,r]),W=d(()=>{let s={...o,floatingTools:{...o.floatingTools,environment:!o.floatingTools.environment}};r(s)},[o,r]),z=d(s=>{let n={...o,globalSettings:{...o.globalSettings,[s]:!o.globalSettings?.[s]}};r(n)},[o,r]),k=d(async()=>{await r(i)},[i,r]);R(()=>{y()},[y]),R(()=>T?M.addListener(s=>{u(s)}):void 0,[T]);let X=L(()=>{let s=x(o.dialTools),{dial:n,floating:g}=te(o);return{dialToolCount:s,isDialFull:s>=G,enabledDialTools:n,enabledFloatingTools:g,canEnableDialTool:j=>o.dialTools[j]?true:s<G}},[o]);return{settings:o,isLoading:A,isInitialized:_,error:v,actions:{toggleDialTool:H,toggleFloatingTool:K,toggleEnvironment:W,toggleGlobalSetting:z,saveSettings:r,resetToDefaults:k,reloadSettings:y},helpers:X}}import{createContext as se,useContext as w,useMemo as oe}from"react";import{jsx as ae}from"react/jsx-runtime";var O=se(null);function ie({children:e,availableTools:t=[],defaultFloatingTools:a,defaultDialTools:S,storage:l,initialSettings:D,onSettingsChange:c}){let T=F({availableTools:t,defaultFloatingTools:a,defaultDialTools:S,storage:l,initialSettings:D,onSettingsChange:c}),i=oe(()=>({...T,availableTools:t}),[T,t]);return ae(O.Provider,{value:i,children:e})}function ne(){let e=w(O);if(!e)throw new Error("useSettingsContext must be used within a SettingsProvider");return e}function le(){return w(O)}import{useSyncExternalStore as re,useMemo as ge}from"react";import{devToolsStateManager as Se}from"@buoy-gg/floating-tools-core/web";function N(e={}){let{manager:t=Se}=e,a=re(t.subscribe,t.getState,t.getServerState),S=ge(()=>({openDial:()=>t.openDial(),closeDial:()=>t.closeDial(),toggleDial:()=>t.toggleDial(),openSettings:()=>t.openSettings(),closeSettings:()=>t.closeSettings(),setSettingsTab:l=>t.setSettingsTab(l),initialize:()=>t.initialize(),reset:()=>t.reset()}),[t]);return{state:a,actions:S,manager:t}}function Te(e={}){let{state:t,actions:a}=N(e);return{isOpen:t.isDialOpen,open:a.openDial,close:a.closeDial,toggle:a.toggleDial}}function ue(e={}){let{state:t,actions:a}=N(e);return{isOpen:t.isSettingsOpen,activeTab:t.activeSettingsTab,open:a.openSettings,close:a.closeSettings,setTab:a.setSettingsTab}}import{createContext as ce,useContext as U,useMemo as B}from"react";import{devToolsStateManager as de}from"@buoy-gg/floating-tools-core/web";import{jsx as De}from"react/jsx-runtime";var p=ce(null);p.displayName="DevToolsContext";function me({children:e,tools:t=[],defaultFloatingTools:a,defaultDialTools:S,environment:l,userRole:D,availableEnvironments:c,onEnvironmentSwitch:T,stateManager:i=de}){let{state:f,actions:I}=N({manager:i}),o=B(()=>t.map(v=>({id:v.id,name:v.name,description:v.description,slot:v.slot})),[t]),{settings:u,isLoading:A,actions:m,helpers:_}=F({availableTools:o,defaultFloatingTools:a,defaultDialTools:S}),C=B(()=>({devToolsState:f,devToolsActions:I,settings:u,isSettingsLoading:A,settingsActions:m,settingsHelpers:_,tools:t,environment:l,userRole:D,availableEnvironments:c,onEnvironmentSwitch:T}),[f,I,u,A,m,_,t,l,D,c,T]);return De(p.Provider,{value:C,children:e})}function E(){let e=U(p);if(!e)throw new Error("useDevToolsContext must be used within a DevToolsProvider. Wrap your app with <DevToolsProvider> or <FloatingDevTools>.");return e}function ve(){return U(p)}function fe(){let e=E();return{environment:e.environment,userRole:e.userRole,availableEnvironments:e.availableEnvironments,onEnvironmentSwitch:e.onEnvironmentSwitch}}function Ie(){let e=E();return{tools:e.tools,settings:e.settings,isLoading:e.isSettingsLoading}}function pe(){let e=E();return{isOpen:e.devToolsState.isDialOpen,open:e.devToolsActions.openDial,close:e.devToolsActions.closeDial,toggle:e.devToolsActions.toggleDial}}function Ee(){let e=E();return{isOpen:e.devToolsState.isSettingsOpen,activeTab:e.devToolsState.activeSettingsTab,open:e.devToolsActions.openSettings,close:e.devToolsActions.closeSettings,setTab:e.devToolsActions.setSettingsTab,settings:e.settings,actions:e.settingsActions,helpers:e.settingsHelpers}}import{DevToolsStateManager as Ae,devToolsStateManager as _e,devToolsReducer as Ce}from"@buoy-gg/floating-tools-core/web";import{FloatingToolsStore as be,floatingToolsColors as Le,withAlpha as Oe,getUserStatusConfig as Ne,getGripIconLayout as he,easing as ye,interpolate as Ge,interpolatePosition as Fe,VISIBLE_HANDLE_WIDTH as Re,ANIMATION_DURATION as Me,DRAG_THRESHOLD as Pe,EDGE_PADDING as xe,MAX_DIAL_SLOTS as we,DIAL_START_ANGLE as Ue,DIAL_BUTTON_SIZE as Be,DIAL_ICON_SIZE as He,DIAL_ICON_PADDING as Ke,DIAL_GRID_LINE_COUNT as We,dialColors as ze,dialStyles as ke,getGridLineRotations as Xe,getDialLayout as je,getIconAngle as Ze,getIconPosition as Je,getAllIconPositions as Ve,dialAnimationConfig as Ye,getIconStaggerInputRange as Qe,dialCSSBeziers as qe,generateDialCSSKeyframes as $e,getDialCSSAnimationStyles as et,getDialCSSKeyframesString as tt,getSpiralAnimationPosition as st,getStaggeredIconProgress as ot}from"@buoy-gg/floating-tools-core/web";import{USAGE_HALF_LIFE_MS as at,USAGE_MIN_SCORE as it,decayScore as nt,recordUsage as lt,rankToolIds as rt,pruneUsage as gt}from"@buoy-gg/floating-tools-core/web";import{SETTINGS_STORAGE_KEY as St,MAX_SETTINGS_DIAL_SLOTS as Tt}from"@buoy-gg/floating-tools-core/web";import{settingsTabs as ut}from"@buoy-gg/floating-tools-core/web";import{settingsColors as ct,toolColors as dt,getToolColor as Dt,settingsStyles as mt}from"@buoy-gg/floating-tools-core/web";import{toolLabels as vt,getToolLabel as ft,toolDescriptions as It,getToolDescription as pt}from"@buoy-gg/floating-tools-core/web";import{globalSettingsConfig as Et}from"@buoy-gg/floating-tools-core/web";import{enforceDialLimit as At,sanitizeFloatingSettings as _t,mergeSettingsWithDefaults as Ct,generateDefaultSettings as bt,countEnabledTools as Lt,canEnableDialTool as Ot,getEnabledToolIds as Nt}from"@buoy-gg/floating-tools-core/web";import{SettingsEventBus as ht,settingsEventBus as yt}from"@buoy-gg/floating-tools-core/web";export{Me as ANIMATION_DURATION,Be as DIAL_BUTTON_SIZE,We as DIAL_GRID_LINE_COUNT,Ke as DIAL_ICON_PADDING,He as DIAL_ICON_SIZE,Ue as DIAL_START_ANGLE,Pe as DRAG_THRESHOLD,p as DevToolsContext,me as DevToolsProvider,Ae as DevToolsStateManager,xe as EDGE_PADDING,J as FloatingToolsContext,Y as FloatingToolsProvider,be as FloatingToolsStore,we as MAX_DIAL_SLOTS,Tt as MAX_SETTINGS_DIAL_SLOTS,St as SETTINGS_STORAGE_KEY,O as SettingsContext,ht as SettingsEventBus,ie as SettingsProvider,at as USAGE_HALF_LIFE_MS,it as USAGE_MIN_SCORE,Re as VISIBLE_HANDLE_WIDTH,Ot as canEnableDialTool,Lt as countEnabledTools,nt as decayScore,Ce as devToolsReducer,_e as devToolsStateManager,Ye as dialAnimationConfig,qe as dialCSSBeziers,ze as dialColors,ke as dialStyles,ye as easing,At as enforceDialLimit,Le as floatingToolsColors,bt as generateDefaultSettings,$e as generateDialCSSKeyframes,Ve as getAllIconPositions,et as getDialCSSAnimationStyles,tt as getDialCSSKeyframesString,je as getDialLayout,Nt as getEnabledToolIds,Xe as getGridLineRotations,he as getGripIconLayout,Ze as getIconAngle,Je as getIconPosition,Qe as getIconStaggerInputRange,st as getSpiralAnimationPosition,ot as getStaggeredIconProgress,Dt as getToolColor,pt as getToolDescription,ft as getToolLabel,Ne as getUserStatusConfig,Et as globalSettingsConfig,Q as interleaveWithDividers,Ge as interpolate,Fe as interpolatePosition,Ct as mergeSettingsWithDefaults,gt as pruneUsage,rt as rankToolIds,lt as recordUsage,_t as sanitizeFloatingSettings,ct as settingsColors,yt as settingsEventBus,mt as settingsStyles,ut as settingsTabs,dt as toolColors,It as toolDescriptions,vt as toolLabels,Ie as useDevTools,E as useDevToolsContext,pe as useDevToolsDial,fe as useDevToolsEnvironment,Ee as useDevToolsSettings,N as useDevToolsState,Te as useDialState,Z as useFloatingTools,V as useFloatingToolsContext,ve as useOptionalDevToolsContext,le as useOptionalSettingsContext,F as useSettings,ne as useSettingsContext,ue as useSettingsModalState,Oe as withAlpha};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@buoy-gg/floating-tools-react",
|
|
3
|
-
"version": "7.0.
|
|
3
|
+
"version": "7.0.57",
|
|
4
4
|
"description": "React bindings for floating tools - shared hooks and context for web and React Native",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"module": "dist/index.mjs",
|
|
@@ -37,7 +37,7 @@
|
|
|
37
37
|
"dist"
|
|
38
38
|
],
|
|
39
39
|
"dependencies": {
|
|
40
|
-
"@buoy-gg/floating-tools-core": "^7.0.
|
|
40
|
+
"@buoy-gg/floating-tools-core": "^7.0.57"
|
|
41
41
|
},
|
|
42
42
|
"peerDependencies": {
|
|
43
43
|
"react": ">=17.0.0"
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use client";typeof window<"u"&&typeof globalThis.global>"u"&&(globalThis.global=globalThis);import{useMemo as l,useSyncExternalStore as f,useEffect as d,useRef as S}from"react";import{FloatingToolsStore as m}from"@buoy-gg/floating-tools-core/web/floating";import{useState as b}from"react";function p(r){let{screenSize:i,...o}=r,e=l(()=>new m({...o,screenWidth:i.width,screenHeight:i.height}),[o.enablePositionPersistence,o.storage,o.visibleHandleWidth,o.dragThreshold,o.edgePadding]),s=S(false),[n,h]=b(false);d(()=>(s.current||(s.current=true,e.initialize().then(()=>{h(true)})),()=>{e.destroy()}),[e]),d(()=>{e.setScreenSize(i.width,i.height)},[e,i.width,i.height]);let c=f(e.subscribe,e.getSnapshot),g=l(()=>({handleDragStart:t=>e.handleDragStart(t),handleDragMove:t=>e.handleDragMove(t),handleDragEnd:t=>e.handleDragEnd(t),toggleHideShow:()=>e.toggleHideShow(),commitPosition:t=>e.commitPosition(t),setBubbleSize:t=>e.setBubbleSize(t),setScreenSize:(t,u)=>e.setScreenSize(t,u),setMinPosition:t=>e.setMinPosition(t),forceHide:()=>e.forceHide(),forceShow:()=>e.forceShow()}),[e]);return{state:c,store:e,isInitialized:n,actions:g}}import{createContext as w,useContext as v}from"react";import{jsx as z}from"react/jsx-runtime";var P={isDragging:false,isHidden:false},a=w(P);function D(){return v(a)}function H({value:r,children:i}){return z(a.Provider,{value:r,children:i})}import{filterValidChildren as T}from"@buoy-gg/floating-tools-core/web/floating";function x(r,i){let o=T(r),e=[];return o.forEach((s,n)=>{e.push(s),n<o.length-1&&e.push(i(`divider-${n}`))}),e}export{p as a,a as b,D as c,H as d,x as e};
|