@buoy-gg/core 2.1.14 → 2.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/commonjs/floatingMenu/DevToolsSettingsModal.js +3 -33
- package/lib/commonjs/floatingMenu/DevToolsSettingsModal.web.js +3 -25
- package/lib/commonjs/floatingMenu/FloatingDevTools.js +14 -1
- package/lib/commonjs/floatingMenu/FloatingDevTools.web.js +19 -9
- package/lib/commonjs/floatingMenu/FloatingMenu.js +6 -2
- package/lib/commonjs/floatingMenu/dial/DialDevTools.js +166 -196
- package/lib/commonjs/floatingMenu/dial/DialDevTools.web.js +82 -7
- package/lib/commonjs/floatingMenu/dial/DialIcon.js +66 -59
- package/lib/commonjs/floatingMenu/dial/DialPagination.js +170 -0
- package/lib/commonjs/floatingMenu/dial/dialUsageStore.js +97 -0
- package/lib/module/floatingMenu/DevToolsSettingsModal.js +3 -33
- package/lib/module/floatingMenu/DevToolsSettingsModal.web.js +4 -28
- package/lib/module/floatingMenu/FloatingDevTools.js +14 -1
- package/lib/module/floatingMenu/FloatingDevTools.web.js +19 -9
- package/lib/module/floatingMenu/FloatingMenu.js +6 -2
- package/lib/module/floatingMenu/dial/DialDevTools.js +166 -196
- package/lib/module/floatingMenu/dial/DialDevTools.web.js +82 -7
- package/lib/module/floatingMenu/dial/DialIcon.js +67 -60
- package/lib/module/floatingMenu/dial/DialPagination.js +165 -0
- package/lib/module/floatingMenu/dial/dialUsageStore.js +89 -0
- package/lib/typescript/commonjs/floatingMenu/DevToolsSettingsModal.d.ts.map +1 -1
- package/lib/typescript/commonjs/floatingMenu/DevToolsSettingsModal.web.d.ts.map +1 -1
- package/lib/typescript/commonjs/floatingMenu/FloatingDevTools.d.ts.map +1 -1
- package/lib/typescript/commonjs/floatingMenu/FloatingDevTools.web.d.ts.map +1 -1
- package/lib/typescript/commonjs/floatingMenu/FloatingMenu.d.ts.map +1 -1
- package/lib/typescript/commonjs/floatingMenu/dial/DialDevTools.d.ts +0 -2
- package/lib/typescript/commonjs/floatingMenu/dial/DialDevTools.d.ts.map +1 -1
- package/lib/typescript/commonjs/floatingMenu/dial/DialDevTools.web.d.ts.map +1 -1
- package/lib/typescript/commonjs/floatingMenu/dial/DialIcon.d.ts +7 -2
- package/lib/typescript/commonjs/floatingMenu/dial/DialIcon.d.ts.map +1 -1
- package/lib/typescript/commonjs/floatingMenu/dial/DialPagination.d.ts +22 -0
- package/lib/typescript/commonjs/floatingMenu/dial/DialPagination.d.ts.map +1 -0
- package/lib/typescript/commonjs/floatingMenu/dial/dialUsageStore.d.ts +34 -0
- package/lib/typescript/commonjs/floatingMenu/dial/dialUsageStore.d.ts.map +1 -0
- package/lib/typescript/module/floatingMenu/DevToolsSettingsModal.d.ts.map +1 -1
- package/lib/typescript/module/floatingMenu/DevToolsSettingsModal.web.d.ts.map +1 -1
- package/lib/typescript/module/floatingMenu/FloatingDevTools.d.ts.map +1 -1
- package/lib/typescript/module/floatingMenu/FloatingDevTools.web.d.ts.map +1 -1
- package/lib/typescript/module/floatingMenu/FloatingMenu.d.ts.map +1 -1
- package/lib/typescript/module/floatingMenu/dial/DialDevTools.d.ts +0 -2
- package/lib/typescript/module/floatingMenu/dial/DialDevTools.d.ts.map +1 -1
- package/lib/typescript/module/floatingMenu/dial/DialDevTools.web.d.ts.map +1 -1
- package/lib/typescript/module/floatingMenu/dial/DialIcon.d.ts +7 -2
- package/lib/typescript/module/floatingMenu/dial/DialIcon.d.ts.map +1 -1
- package/lib/typescript/module/floatingMenu/dial/DialPagination.d.ts +22 -0
- package/lib/typescript/module/floatingMenu/dial/DialPagination.d.ts.map +1 -0
- package/lib/typescript/module/floatingMenu/dial/dialUsageStore.d.ts +34 -0
- package/lib/typescript/module/floatingMenu/dial/dialUsageStore.d.ts.map +1 -0
- package/package.json +5 -5
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import { useRef } from "react";
|
|
3
|
+
import { useMemo, useRef } from "react";
|
|
4
4
|
import { StyleSheet, Pressable, View, Text, Dimensions, Animated } from "react-native";
|
|
5
5
|
import { getDialLayout, getIconPosition, getIconStaggerInputRange, DIAL_START_ANGLE, dialColors, dialStyles, dialAnimationConfig } from "@buoy-gg/floating-tools-core";
|
|
6
6
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
@@ -13,25 +13,15 @@ const layout = getDialLayout({
|
|
|
13
13
|
screenWidth: SCREEN_WIDTH
|
|
14
14
|
});
|
|
15
15
|
const VIEW_SIZE = layout.iconSize;
|
|
16
|
-
const CIRCLE_SIZE = layout.circleSize;
|
|
17
16
|
const CIRCLE_RADIUS = layout.circleRadius;
|
|
18
17
|
export const DialIcon = ({
|
|
19
18
|
index,
|
|
20
19
|
icon,
|
|
21
20
|
iconsProgress,
|
|
22
21
|
onPress,
|
|
23
|
-
|
|
24
|
-
|
|
22
|
+
totalIcons,
|
|
23
|
+
active
|
|
25
24
|
}) => {
|
|
26
|
-
// Use shared position calculation from core
|
|
27
|
-
const iconPosition = getIconPosition(index, totalIcons, layout.iconRadius, DIAL_START_ANGLE);
|
|
28
|
-
const {
|
|
29
|
-
x: finalX,
|
|
30
|
-
y: finalY,
|
|
31
|
-
angle
|
|
32
|
-
} = iconPosition;
|
|
33
|
-
const radius = layout.iconRadius;
|
|
34
|
-
|
|
35
25
|
// Animation values - using interpolation for better performance
|
|
36
26
|
const scale = useRef(new Animated.Value(1)).current;
|
|
37
27
|
|
|
@@ -70,52 +60,66 @@ export const DialIcon = ({
|
|
|
70
60
|
}).start();
|
|
71
61
|
};
|
|
72
62
|
|
|
73
|
-
//
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
63
|
+
// Position + spiral-entrance interpolations depend only on the (fixed) slot
|
|
64
|
+
// index, so compute them once. This keeps re-renders — which happen on every
|
|
65
|
+
// page change as `active` toggles — cheap.
|
|
66
|
+
const motion = useMemo(() => {
|
|
67
|
+
const iconPosition = getIconPosition(index, totalIcons, layout.iconRadius, DIAL_START_ANGLE);
|
|
68
|
+
const {
|
|
69
|
+
x: finalX,
|
|
70
|
+
y: finalY,
|
|
71
|
+
angle
|
|
72
|
+
} = iconPosition;
|
|
73
|
+
const radius = layout.iconRadius;
|
|
74
|
+
const staggerInputRange = getIconStaggerInputRange(index, totalIcons);
|
|
82
75
|
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
76
|
+
// Use interpolation for smooth animation that works both directions
|
|
77
|
+
const staggeredProgress = iconsProgress.interpolate({
|
|
78
|
+
inputRange: staggerInputRange,
|
|
79
|
+
outputRange: [0, 0, 1, 1],
|
|
80
|
+
extrapolate: "clamp"
|
|
81
|
+
});
|
|
88
82
|
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
83
|
+
// Spiral animation with interpolation
|
|
84
|
+
const spiralRotation = staggeredProgress.interpolate({
|
|
85
|
+
inputRange: [0, 1],
|
|
86
|
+
outputRange: [Math.PI * 2, 0] // Spiral from 2π to 0
|
|
87
|
+
});
|
|
94
88
|
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
inputRange: [0, 1],
|
|
101
|
-
outputRange: [0, finalX - radius * Math.cos(angle + Math.PI * 2)]
|
|
102
|
-
}));
|
|
103
|
-
const translateY = Animated.add(Animated.multiply(distance, spiralRotation.interpolate({
|
|
104
|
-
inputRange: [0, Math.PI * 2],
|
|
105
|
-
outputRange: [Math.sin(angle), Math.sin(angle + Math.PI * 2)]
|
|
106
|
-
})), staggeredProgress.interpolate({
|
|
107
|
-
inputRange: [0, 1],
|
|
108
|
-
outputRange: [0, finalY - radius * Math.sin(angle + Math.PI * 2)]
|
|
109
|
-
}));
|
|
89
|
+
// Distance from center
|
|
90
|
+
const distance = staggeredProgress.interpolate({
|
|
91
|
+
inputRange: [0, 1],
|
|
92
|
+
outputRange: [0, radius]
|
|
93
|
+
});
|
|
110
94
|
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
95
|
+
// Calculate X and Y positions using Animated operations
|
|
96
|
+
const translateX = Animated.add(Animated.multiply(distance, spiralRotation.interpolate({
|
|
97
|
+
inputRange: [0, Math.PI * 2],
|
|
98
|
+
outputRange: [Math.cos(angle), Math.cos(angle + Math.PI * 2)]
|
|
99
|
+
})), staggeredProgress.interpolate({
|
|
100
|
+
inputRange: [0, 1],
|
|
101
|
+
outputRange: [0, finalX - radius * Math.cos(angle + Math.PI * 2)]
|
|
102
|
+
}));
|
|
103
|
+
const translateY = Animated.add(Animated.multiply(distance, spiralRotation.interpolate({
|
|
104
|
+
inputRange: [0, Math.PI * 2],
|
|
105
|
+
outputRange: [Math.sin(angle), Math.sin(angle + Math.PI * 2)]
|
|
106
|
+
})), staggeredProgress.interpolate({
|
|
107
|
+
inputRange: [0, 1],
|
|
108
|
+
outputRange: [0, finalY - radius * Math.sin(angle + Math.PI * 2)]
|
|
109
|
+
}));
|
|
116
110
|
|
|
117
|
-
|
|
118
|
-
|
|
111
|
+
// Opacity animation
|
|
112
|
+
const itemOpacity = staggeredProgress.interpolate({
|
|
113
|
+
inputRange: [0, 0.3, 1],
|
|
114
|
+
outputRange: [0, 0.3, 1]
|
|
115
|
+
});
|
|
116
|
+
return {
|
|
117
|
+
translateX,
|
|
118
|
+
translateY,
|
|
119
|
+
itemOpacity,
|
|
120
|
+
progressScale: staggeredProgress
|
|
121
|
+
};
|
|
122
|
+
}, [index, totalIcons, iconsProgress]);
|
|
119
123
|
|
|
120
124
|
// Main animated style for position and appearance
|
|
121
125
|
const animatedStyle = {
|
|
@@ -124,24 +128,24 @@ export const DialIcon = ({
|
|
|
124
128
|
// Center position
|
|
125
129
|
top: CIRCLE_RADIUS - VIEW_SIZE / 2,
|
|
126
130
|
// Center position
|
|
127
|
-
opacity: itemOpacity,
|
|
131
|
+
opacity: motion.itemOpacity,
|
|
128
132
|
transform: [{
|
|
129
|
-
translateX
|
|
133
|
+
translateX: motion.translateX
|
|
130
134
|
},
|
|
131
135
|
// Apply translation from center
|
|
132
136
|
{
|
|
133
|
-
translateY
|
|
137
|
+
translateY: motion.translateY
|
|
134
138
|
},
|
|
135
139
|
// Apply translation from center
|
|
136
140
|
{
|
|
137
|
-
scale: Animated.multiply(scale, progressScale)
|
|
141
|
+
scale: Animated.multiply(scale, motion.progressScale)
|
|
138
142
|
}]
|
|
139
143
|
};
|
|
140
144
|
|
|
141
145
|
// Check if this is an empty spot (no icon and no iconComponent)
|
|
142
146
|
const isEmpty = icon.icon === null && !icon.iconComponent;
|
|
143
147
|
return /*#__PURE__*/_jsx(Animated.View, {
|
|
144
|
-
style: [styles.view, animatedStyle],
|
|
148
|
+
style: [styles.view, animatedStyle, !active && styles.hidden],
|
|
145
149
|
children: isEmpty ?
|
|
146
150
|
/*#__PURE__*/
|
|
147
151
|
// Empty spot - just show a subtle circle
|
|
@@ -151,7 +155,7 @@ export const DialIcon = ({
|
|
|
151
155
|
style: styles.emptyDot
|
|
152
156
|
})
|
|
153
157
|
}) : /*#__PURE__*/_jsxs(Pressable, {
|
|
154
|
-
onPress: () => onPress(
|
|
158
|
+
onPress: () => onPress(icon),
|
|
155
159
|
onPressIn: handlePressIn,
|
|
156
160
|
onPressOut: handlePressOut,
|
|
157
161
|
style: styles.pressable,
|
|
@@ -189,6 +193,9 @@ const styles = StyleSheet.create({
|
|
|
189
193
|
justifyContent: "center",
|
|
190
194
|
alignItems: "center"
|
|
191
195
|
},
|
|
196
|
+
hidden: {
|
|
197
|
+
display: "none"
|
|
198
|
+
},
|
|
192
199
|
pressable: {
|
|
193
200
|
width: "100%",
|
|
194
201
|
height: "100%",
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { useRef } from "react";
|
|
4
|
+
import { Animated, Pressable, StyleSheet, Text, View } from "react-native";
|
|
5
|
+
import { ChevronLeft, ChevronRight, buoyColors } from "@buoy-gg/shared-ui";
|
|
6
|
+
import { dialColors } from "@buoy-gg/floating-tools-core";
|
|
7
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
8
|
+
/** Pad a 1-based page number to two digits, e.g. 3 -> "03". */
|
|
9
|
+
const pad = n => String(n).padStart(2, "0");
|
|
10
|
+
/**
|
|
11
|
+
* A single pager button. Press feedback is driven by a native-driver
|
|
12
|
+
* `Animated` value via `onPressIn`/`onPressOut` — so the scale reacts
|
|
13
|
+
* instantly on the UI thread, with no JS re-render in the press path.
|
|
14
|
+
*/
|
|
15
|
+
const PagerButton = ({
|
|
16
|
+
side,
|
|
17
|
+
label,
|
|
18
|
+
disabled,
|
|
19
|
+
onPress
|
|
20
|
+
}) => {
|
|
21
|
+
const scale = useRef(new Animated.Value(1)).current;
|
|
22
|
+
const springTo = toValue => {
|
|
23
|
+
Animated.spring(scale, {
|
|
24
|
+
toValue,
|
|
25
|
+
damping: 15,
|
|
26
|
+
stiffness: 400,
|
|
27
|
+
useNativeDriver: true
|
|
28
|
+
}).start();
|
|
29
|
+
};
|
|
30
|
+
const accent = disabled ? dialColors.emptyDotBorder : buoyColors.primary;
|
|
31
|
+
return /*#__PURE__*/_jsx(Animated.View, {
|
|
32
|
+
style: {
|
|
33
|
+
transform: [{
|
|
34
|
+
scale
|
|
35
|
+
}]
|
|
36
|
+
},
|
|
37
|
+
children: /*#__PURE__*/_jsxs(Pressable, {
|
|
38
|
+
accessibilityRole: "button",
|
|
39
|
+
accessibilityLabel: `${side === "prev" ? "Previous" : "Next"} dial page`,
|
|
40
|
+
accessibilityState: {
|
|
41
|
+
disabled
|
|
42
|
+
},
|
|
43
|
+
disabled: disabled,
|
|
44
|
+
onPress: onPress,
|
|
45
|
+
onPressIn: () => !disabled && springTo(0.92),
|
|
46
|
+
onPressOut: () => springTo(1),
|
|
47
|
+
style: [styles.button, disabled && styles.buttonDisabled],
|
|
48
|
+
children: [side === "prev" && /*#__PURE__*/_jsx(ChevronLeft, {
|
|
49
|
+
size: 18,
|
|
50
|
+
color: accent
|
|
51
|
+
}), /*#__PURE__*/_jsx(Text, {
|
|
52
|
+
style: [styles.buttonText, disabled && styles.buttonTextDisabled],
|
|
53
|
+
children: label
|
|
54
|
+
}), side === "next" && /*#__PURE__*/_jsx(ChevronRight, {
|
|
55
|
+
size: 18,
|
|
56
|
+
color: accent
|
|
57
|
+
})]
|
|
58
|
+
})
|
|
59
|
+
});
|
|
60
|
+
};
|
|
61
|
+
|
|
62
|
+
/**
|
|
63
|
+
* Prev/Next pager shown below the dial when there are more dial tools than
|
|
64
|
+
* fit on a single page. Tools are ranked by usage, so paging walks from the
|
|
65
|
+
* most-used tools toward the least-used.
|
|
66
|
+
*/
|
|
67
|
+
export const DialPagination = ({
|
|
68
|
+
page,
|
|
69
|
+
pageCount,
|
|
70
|
+
onPrev,
|
|
71
|
+
onNext,
|
|
72
|
+
animatedStyle
|
|
73
|
+
}) => {
|
|
74
|
+
return /*#__PURE__*/_jsxs(Animated.View, {
|
|
75
|
+
style: [styles.container, animatedStyle],
|
|
76
|
+
pointerEvents: "box-none",
|
|
77
|
+
children: [/*#__PURE__*/_jsx(PagerButton, {
|
|
78
|
+
side: "prev",
|
|
79
|
+
label: "PREV",
|
|
80
|
+
disabled: page <= 0,
|
|
81
|
+
onPress: onPrev
|
|
82
|
+
}), /*#__PURE__*/_jsx(View, {
|
|
83
|
+
style: styles.indicator,
|
|
84
|
+
children: /*#__PURE__*/_jsxs(Text, {
|
|
85
|
+
style: styles.indicatorText,
|
|
86
|
+
children: [pad(page + 1), /*#__PURE__*/_jsxs(Text, {
|
|
87
|
+
style: styles.indicatorTextDim,
|
|
88
|
+
children: [" / ", pad(pageCount)]
|
|
89
|
+
})]
|
|
90
|
+
})
|
|
91
|
+
}), /*#__PURE__*/_jsx(PagerButton, {
|
|
92
|
+
side: "next",
|
|
93
|
+
label: "NEXT",
|
|
94
|
+
disabled: page >= pageCount - 1,
|
|
95
|
+
onPress: onNext
|
|
96
|
+
})]
|
|
97
|
+
});
|
|
98
|
+
};
|
|
99
|
+
const styles = StyleSheet.create({
|
|
100
|
+
container: {
|
|
101
|
+
flexDirection: "row",
|
|
102
|
+
alignItems: "center",
|
|
103
|
+
justifyContent: "space-between"
|
|
104
|
+
},
|
|
105
|
+
button: {
|
|
106
|
+
flexDirection: "row",
|
|
107
|
+
alignItems: "center",
|
|
108
|
+
gap: 4,
|
|
109
|
+
paddingHorizontal: 16,
|
|
110
|
+
paddingVertical: 10,
|
|
111
|
+
borderRadius: 10,
|
|
112
|
+
borderWidth: 1,
|
|
113
|
+
borderColor: dialColors.dialBorder,
|
|
114
|
+
backgroundColor: dialColors.dialBackground,
|
|
115
|
+
shadowColor: dialColors.dialShadow,
|
|
116
|
+
shadowOffset: {
|
|
117
|
+
width: 0,
|
|
118
|
+
height: 0
|
|
119
|
+
},
|
|
120
|
+
shadowOpacity: 0.4,
|
|
121
|
+
shadowRadius: 8,
|
|
122
|
+
elevation: 6
|
|
123
|
+
},
|
|
124
|
+
buttonDisabled: {
|
|
125
|
+
opacity: 0.4
|
|
126
|
+
},
|
|
127
|
+
buttonText: {
|
|
128
|
+
color: buoyColors.primary,
|
|
129
|
+
fontSize: 12,
|
|
130
|
+
fontWeight: "900",
|
|
131
|
+
fontFamily: "monospace",
|
|
132
|
+
letterSpacing: 1.5,
|
|
133
|
+
textShadowColor: buoyColors.primary,
|
|
134
|
+
textShadowOffset: {
|
|
135
|
+
width: 0,
|
|
136
|
+
height: 0
|
|
137
|
+
},
|
|
138
|
+
textShadowRadius: 4
|
|
139
|
+
},
|
|
140
|
+
buttonTextDisabled: {
|
|
141
|
+
color: dialColors.emptyDotBorder,
|
|
142
|
+
textShadowRadius: 0
|
|
143
|
+
},
|
|
144
|
+
indicator: {
|
|
145
|
+
paddingHorizontal: 12,
|
|
146
|
+
paddingVertical: 6
|
|
147
|
+
},
|
|
148
|
+
indicatorText: {
|
|
149
|
+
color: "#FFFFFF",
|
|
150
|
+
fontSize: 13,
|
|
151
|
+
fontWeight: "900",
|
|
152
|
+
fontFamily: "monospace",
|
|
153
|
+
letterSpacing: 2,
|
|
154
|
+
textShadowColor: dialColors.dialShadow,
|
|
155
|
+
textShadowOffset: {
|
|
156
|
+
width: 0,
|
|
157
|
+
height: 0
|
|
158
|
+
},
|
|
159
|
+
textShadowRadius: 6
|
|
160
|
+
},
|
|
161
|
+
indicatorTextDim: {
|
|
162
|
+
color: dialColors.iconLabel,
|
|
163
|
+
textShadowRadius: 0
|
|
164
|
+
}
|
|
165
|
+
});
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Dial Usage Store - persists and ranks dial tool usage.
|
|
5
|
+
*
|
|
6
|
+
* Wraps the pure scoring logic from `@buoy-gg/floating-tools-core` with a
|
|
7
|
+
* persisted, in-memory cache. The dial menu uses this to order tools by how
|
|
8
|
+
* recently/frequently they are used, so the most-used tools land on page 1.
|
|
9
|
+
*
|
|
10
|
+
* The cache is loaded eagerly on import so `getRankedToolIds` can run
|
|
11
|
+
* synchronously by the time the dial opens.
|
|
12
|
+
*/
|
|
13
|
+
|
|
14
|
+
import { persistentStorage, devToolsStorageKeys } from "@buoy-gg/shared-ui";
|
|
15
|
+
import { rankToolIds, recordUsage, pruneUsage } from "@buoy-gg/floating-tools-core";
|
|
16
|
+
const STORAGE_KEY = devToolsStorageKeys.dial.usage();
|
|
17
|
+
let cache = {};
|
|
18
|
+
let loaded = false;
|
|
19
|
+
let loadPromise = null;
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* Load persisted usage data into the in-memory cache. Safe to call multiple
|
|
23
|
+
* times — the underlying read happens only once.
|
|
24
|
+
*/
|
|
25
|
+
export function loadDialUsage() {
|
|
26
|
+
if (loadPromise) return loadPromise;
|
|
27
|
+
loadPromise = (async () => {
|
|
28
|
+
try {
|
|
29
|
+
const raw = await persistentStorage.getItem(STORAGE_KEY);
|
|
30
|
+
if (raw) {
|
|
31
|
+
const parsed = JSON.parse(raw);
|
|
32
|
+
if (parsed && typeof parsed === "object") {
|
|
33
|
+
cache = parsed;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
} catch {
|
|
37
|
+
// Ignore — start with an empty usage map.
|
|
38
|
+
} finally {
|
|
39
|
+
loaded = true;
|
|
40
|
+
}
|
|
41
|
+
})();
|
|
42
|
+
return loadPromise;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
// Kick off the load as soon as this module is imported.
|
|
46
|
+
void loadDialUsage();
|
|
47
|
+
|
|
48
|
+
/** Whether the usage cache has finished loading from storage. */
|
|
49
|
+
export function isDialUsageLoaded() {
|
|
50
|
+
return loaded;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
/**
|
|
54
|
+
* Rank tool ids by recency-weighted usage, highest first. Synchronous —
|
|
55
|
+
* operates against the in-memory cache. Never-used tools keep their original
|
|
56
|
+
* order as a tie-breaker.
|
|
57
|
+
*
|
|
58
|
+
* @param orderedIds - Tool ids in their default/registration order
|
|
59
|
+
*/
|
|
60
|
+
export function getRankedToolIds(orderedIds) {
|
|
61
|
+
return rankToolIds(orderedIds, cache, Date.now());
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
/**
|
|
65
|
+
* Record a single press of a tool and persist the updated usage map.
|
|
66
|
+
*
|
|
67
|
+
* @param id - Tool id that was pressed
|
|
68
|
+
*/
|
|
69
|
+
export async function recordToolUsage(id) {
|
|
70
|
+
if (!id) return;
|
|
71
|
+
if (!loaded) await loadDialUsage();
|
|
72
|
+
const now = Date.now();
|
|
73
|
+
cache = pruneUsage(recordUsage(cache, id, now), now);
|
|
74
|
+
try {
|
|
75
|
+
await persistentStorage.setItem(STORAGE_KEY, JSON.stringify(cache));
|
|
76
|
+
} catch {
|
|
77
|
+
// Ignore persistence failure — the in-memory cache is still updated.
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
/** Clear all usage data (in-memory and persisted). */
|
|
82
|
+
export async function resetDialUsage() {
|
|
83
|
+
cache = {};
|
|
84
|
+
try {
|
|
85
|
+
await persistentStorage.removeItem(STORAGE_KEY);
|
|
86
|
+
} catch {
|
|
87
|
+
// Ignore — the in-memory cache is already cleared.
|
|
88
|
+
}
|
|
89
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DevToolsSettingsModal.d.ts","sourceRoot":"","sources":["../../../../src/floatingMenu/DevToolsSettingsModal.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA6C,EAAE,EAAE,MAAM,OAAO,CAAC;AAqJtE;;;GAGG;AACH,MAAM,WAAW,sBAAsB;IACrC;;;;OAIG;IACH,2BAA2B,CAAC,EAAE,OAAO,CAAC;IACtC;;;OAGG;IACH,wBAAwB,CAAC,EAAE,OAAO,CAAC;CACpC;AAED;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,4EAA4E;IAC5E,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,uFAAuF;IACvF,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;QACvC,WAAW,EAAE,OAAO,CAAC;KACtB,CAAC;IACF,kDAAkD;IAClD,cAAc,CAAC,EAAE,sBAAsB,CAAC;CACzC;AAED,UAAU,0BAA0B;IAClC,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,gBAAgB,CAAC,EAAE,CAAC,QAAQ,EAAE,gBAAgB,KAAK,IAAI,CAAC;IACxD,eAAe,CAAC,EAAE,gBAAgB,CAAC;IACnC,aAAa,CAAC,EAAE;QACd,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,IAAI,CAAC,EAAE,MAAM,GAAG,KAAK,GAAG,MAAM,CAAC;KAChC,EAAE,CAAC;CACL;AA2DD;;;GAGG;AACH,eAAO,MAAM,qBAAqB,EAAE,EAAE,CAAC,0BAA0B,
|
|
1
|
+
{"version":3,"file":"DevToolsSettingsModal.d.ts","sourceRoot":"","sources":["../../../../src/floatingMenu/DevToolsSettingsModal.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA6C,EAAE,EAAE,MAAM,OAAO,CAAC;AAqJtE;;;GAGG;AACH,MAAM,WAAW,sBAAsB;IACrC;;;;OAIG;IACH,2BAA2B,CAAC,EAAE,OAAO,CAAC;IACtC;;;OAGG;IACH,wBAAwB,CAAC,EAAE,OAAO,CAAC;CACpC;AAED;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,4EAA4E;IAC5E,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,uFAAuF;IACvF,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;QACvC,WAAW,EAAE,OAAO,CAAC;KACtB,CAAC;IACF,kDAAkD;IAClD,cAAc,CAAC,EAAE,sBAAsB,CAAC;CACzC;AAED,UAAU,0BAA0B;IAClC,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,gBAAgB,CAAC,EAAE,CAAC,QAAQ,EAAE,gBAAgB,KAAK,IAAI,CAAC;IACxD,eAAe,CAAC,EAAE,gBAAgB,CAAC;IACnC,aAAa,CAAC,EAAE;QACd,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,IAAI,CAAC,EAAE,MAAM,GAAG,KAAK,GAAG,MAAM,CAAC;KAChC,EAAE,CAAC;CACL;AA2DD;;;GAGG;AACH,eAAO,MAAM,qBAAqB,EAAE,EAAE,CAAC,0BAA0B,CA28BhE,CAAC;AAwDF;;;;;;GAMG;AACH,eAAO,MAAM,mBAAmB;;;CAuD/B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DevToolsSettingsModal.web.d.ts","sourceRoot":"","sources":["../../../../src/floatingMenu/DevToolsSettingsModal.web.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,
|
|
1
|
+
{"version":3,"file":"DevToolsSettingsModal.web.d.ts","sourceRoot":"","sources":["../../../../src/floatingMenu/DevToolsSettingsModal.web.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,EAeL,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,EACrB,KAAK,cAAc,EAEpB,MAAM,+BAA+B,CAAC;AAOvC,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,cAAc,CAAC,EAAE,mBAAmB,EAAE,CAAC;IACvC,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAC;IAChC,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB,gBAAgB,CAAC,EAAE,CAAC,QAAQ,EAAE,gBAAgB,KAAK,IAAI,CAAC;CACzD;AAoQD,wBAAgB,aAAa,CAAC,EAC5B,OAAO,EACP,OAAO,EACP,cAAmB,EACnB,oBAAoB,EACpB,gBAAgB,EAChB,OAA2B,EAC3B,gBAAgB,GACjB,EAAE,kBAAkB,sCAkWpB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FloatingDevTools.d.ts","sourceRoot":"","sources":["../../../../src/floatingMenu/FloatingDevTools.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA+D,MAAM,OAAO,CAAC;AAGpF,OAAO,EAAgB,KAAK,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAMtE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAI5C,OAAO,EACL,KAAK,qBAAqB,EAC1B,KAAK,iBAAiB,EAEvB,MAAM,iBAAiB,CAAC;AAIzB;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,MAAM,YAAY,GACpB,MAAM,GACN;IACE,GAAG,EAAE,MAAM,CAAC;IACZ,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,GACD;IACE,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,EACR,QAAQ,GACR,QAAQ,GACR,SAAS,GACT,QAAQ,GACR,OAAO,GACP,KAAK,CAAC;IACV,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEN;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,CAAC;IAC1D,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC;CAC1C;AAED;;;;;;GAMG;AACH,MAAM,WAAW,qBAAsB,SAAQ,IAAI,CAAC,iBAAiB,EAAE,MAAM,CAAC;IAC5E;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,IAAI,CAAC,EAAE,YAAY,EAAE,CAAC;IAEtB;;;;;;;;;;;;;;OAcG;IACH,eAAe,CAAC,EAAE,YAAY,EAAE,CAAC;IAEjC;;;;;;;;;;;;OAYG;IACH,mBAAmB,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAEzC;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAE3B;;;;;;;;;OASG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvB;;;;;;;;;;;;;OAaG;IACH,oBAAoB,CAAC,EAAE,qBAAqB,CAAC;IAE7C;;;;;;;;;;;;;;OAcG;IACH,gBAAgB,CAAC,EAAE,iBAAiB,CAAC;IAErC;;;;;;;;;;;;;;;;OAgBG;IACH,qBAAqB,CAAC,EAAE,OAAO,oBAAoB,EAAE,WAAW,EAAE,CAAC;IAEnE;;;;;;;;;;;;;OAaG;IACH,mBAAmB,CAAC,EAAE,CAAC,WAAW,EAAE,OAAO,oBAAoB,EAAE,WAAW,KAAK,IAAI,CAAC;IAEtF;;;;;;;;;;OAUG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB;;;;;;;;OAQG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;;;;;;;;;;;;;;;;;OAkBG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CACrC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqDG;AACH,eAAO,MAAM,gBAAgB,GAAI,kMAa9B,qBAAqB,
|
|
1
|
+
{"version":3,"file":"FloatingDevTools.d.ts","sourceRoot":"","sources":["../../../../src/floatingMenu/FloatingDevTools.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA+D,MAAM,OAAO,CAAC;AAGpF,OAAO,EAAgB,KAAK,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAMtE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAI5C,OAAO,EACL,KAAK,qBAAqB,EAC1B,KAAK,iBAAiB,EAEvB,MAAM,iBAAiB,CAAC;AAIzB;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,MAAM,YAAY,GACpB,MAAM,GACN;IACE,GAAG,EAAE,MAAM,CAAC;IACZ,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,GACD;IACE,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,EACR,QAAQ,GACR,QAAQ,GACR,SAAS,GACT,QAAQ,GACR,OAAO,GACP,KAAK,CAAC;IACV,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEN;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,CAAC;IAC1D,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC;CAC1C;AAED;;;;;;GAMG;AACH,MAAM,WAAW,qBAAsB,SAAQ,IAAI,CAAC,iBAAiB,EAAE,MAAM,CAAC;IAC5E;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,IAAI,CAAC,EAAE,YAAY,EAAE,CAAC;IAEtB;;;;;;;;;;;;;;OAcG;IACH,eAAe,CAAC,EAAE,YAAY,EAAE,CAAC;IAEjC;;;;;;;;;;;;OAYG;IACH,mBAAmB,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAEzC;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAE3B;;;;;;;;;OASG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvB;;;;;;;;;;;;;OAaG;IACH,oBAAoB,CAAC,EAAE,qBAAqB,CAAC;IAE7C;;;;;;;;;;;;;;OAcG;IACH,gBAAgB,CAAC,EAAE,iBAAiB,CAAC;IAErC;;;;;;;;;;;;;;;;OAgBG;IACH,qBAAqB,CAAC,EAAE,OAAO,oBAAoB,EAAE,WAAW,EAAE,CAAC;IAEnE;;;;;;;;;;;;;OAaG;IACH,mBAAmB,CAAC,EAAE,CAAC,WAAW,EAAE,OAAO,oBAAoB,EAAE,WAAW,KAAK,IAAI,CAAC;IAEtF;;;;;;;;;;OAUG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB;;;;;;;;OAQG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;;;;;;;;;;;;;;;;;OAkBG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CACrC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqDG;AACH,eAAO,MAAM,gBAAgB,GAAI,kMAa9B,qBAAqB,6BAwOvB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FloatingDevTools.web.d.ts","sourceRoot":"","sources":["../../../../src/floatingMenu/FloatingDevTools.web.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAGH,OAAO,EAEL,KAAK,aAAa,EAClB,KAAK,WAAW,EAChB,KAAK,QAAQ,EAId,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"FloatingDevTools.web.d.ts","sourceRoot":"","sources":["../../../../src/floatingMenu/FloatingDevTools.web.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAGH,OAAO,EAEL,KAAK,aAAa,EAClB,KAAK,WAAW,EAChB,KAAK,QAAQ,EAId,MAAM,+BAA+B,CAAC;AAWvC,MAAM,WAAW,qBAAqB;IAEpC,0DAA0D;IAC1D,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,gDAAgD;IAChD,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,2CAA2C;IAC3C,qBAAqB,CAAC,EAAE,WAAW,EAAE,CAAC;IACtC,4CAA4C;IAC5C,mBAAmB,CAAC,EAAE,CAAC,GAAG,EAAE,WAAW,KAAK,IAAI,CAAC;IAGjD,gEAAgE;IAChE,IAAI,CAAC,EAAE,aAAa,EAAE,CAAC;IAGvB,qDAAqD;IACrD,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAMD;;;;;;;;;;;GAWG;AACH,wBAAgB,gBAAgB,CAAC,EAC/B,WAAW,EAAE,YAAY,EACzB,QAAQ,EACR,qBAAqB,EAAE,sBAAsB,EAC7C,mBAAmB,EAAE,oBAAoB,EACzC,IAAI,EACJ,YAAY,EAAE,aAAa,GAC5B,EAAE,qBAAqB,+BAuHvB;AAMD,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FloatingMenu.d.ts","sourceRoot":"","sources":["../../../../src/floatingMenu/FloatingMenu.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,EAAE,EAAqD,MAAM,OAAO,CAAC;AASrF,OAAO,EAAiB,QAAQ,EAAc,MAAM,iBAAiB,CAAC;AACtE,OAAO,KAAK,EACV,YAAY,EACZ,mBAAmB,EACnB,iBAAiB,EAClB,MAAM,SAAS,CAAC;AACjB,OAAO,KAAK,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEhF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AActD;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,+DAA+D;IAC/D,IAAI,EAAE,YAAY,EAAE,CAAC;IACrB,6EAA6E;IAC7E,KAAK,CAAC,EAAE,iBAAiB,CAAC;IAC1B,sFAAsF;IACtF,OAAO,CAAC,EAAE,mBAAmB,CAAC;IAC9B,iFAAiF;IACjF,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,uFAAuF;IACvF,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,yEAAyE;IACzE,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,kFAAkF;IAClF,oBAAoB,CAAC,EAAE,qBAAqB,CAAC;IAC7C,oFAAoF;IACpF,gBAAgB,CAAC,EAAE,iBAAiB,CAAC;IACrC;;;OAGG;IACH,qBAAqB,CAAC,EAAE,WAAW,EAAE,CAAC;IACtC;;;OAGG;IACH,mBAAmB,CAAC,EAAE,CAAC,WAAW,EAAE,WAAW,KAAK,IAAI,CAAC;CAC1D;AAYD,eAAO,MAAM,YAAY,EAAE,EAAE,CAAC,iBAAiB,
|
|
1
|
+
{"version":3,"file":"FloatingMenu.d.ts","sourceRoot":"","sources":["../../../../src/floatingMenu/FloatingMenu.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,EAAE,EAAqD,MAAM,OAAO,CAAC;AASrF,OAAO,EAAiB,QAAQ,EAAc,MAAM,iBAAiB,CAAC;AACtE,OAAO,KAAK,EACV,YAAY,EACZ,mBAAmB,EACnB,iBAAiB,EAClB,MAAM,SAAS,CAAC;AACjB,OAAO,KAAK,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEhF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AActD;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,+DAA+D;IAC/D,IAAI,EAAE,YAAY,EAAE,CAAC;IACrB,6EAA6E;IAC7E,KAAK,CAAC,EAAE,iBAAiB,CAAC;IAC1B,sFAAsF;IACtF,OAAO,CAAC,EAAE,mBAAmB,CAAC;IAC9B,iFAAiF;IACjF,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,uFAAuF;IACvF,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,yEAAyE;IACzE,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,kFAAkF;IAClF,oBAAoB,CAAC,EAAE,qBAAqB,CAAC;IAC7C,oFAAoF;IACpF,gBAAgB,CAAC,EAAE,iBAAiB,CAAC;IACrC;;;OAGG;IACH,qBAAqB,CAAC,EAAE,WAAW,EAAE,CAAC;IACtC;;;OAGG;IACH,mBAAmB,CAAC,EAAE,CAAC,WAAW,EAAE,WAAW,KAAK,IAAI,CAAC;CAC1D;AAYD,eAAO,MAAM,YAAY,EAAE,EAAE,CAAC,iBAAiB,CAwU9C,CAAC"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { ReactNode, FC } from "react";
|
|
2
|
-
import { type DevToolsSettings } from "../DevToolsSettingsModal";
|
|
3
2
|
import type { InstalledApp, FloatingMenuActions, FloatingMenuState } from "../types";
|
|
4
3
|
export type IconType = {
|
|
5
4
|
id?: string;
|
|
@@ -24,7 +23,6 @@ export type IconType = {
|
|
|
24
23
|
interface DialDevToolsProps {
|
|
25
24
|
onClose?: () => void;
|
|
26
25
|
onSettingsPress?: () => void;
|
|
27
|
-
settings?: DevToolsSettings;
|
|
28
26
|
autoOpenSettings?: boolean;
|
|
29
27
|
apps: InstalledApp[];
|
|
30
28
|
state?: FloatingMenuState;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DialDevTools.d.ts","sourceRoot":"","sources":["../../../../../src/floatingMenu/dial/DialDevTools.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAwC,SAAS,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"DialDevTools.d.ts","sourceRoot":"","sources":["../../../../../src/floatingMenu/dial/DialDevTools.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAwC,SAAS,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AA8B5E,OAAO,KAAK,EACV,YAAY,EACZ,mBAAmB,EACnB,iBAAiB,EAClB,MAAM,UAAU,CAAC;AAqBlB,MAAM,MAAM,QAAQ,GAAG;IACrB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,SAAS,CAAC;IAChB;;;;;;OAMG;IACH,aAAa,CAAC,EAAE,CAAC,GAAG,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,iBAAiB,CAAC;QAAC,OAAO,CAAC,EAAE,mBAAmB,CAAA;KAAE,KAAK,SAAS,CAAC;IAC/H,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB,CAAC;AAWF,UAAU,iBAAiB;IACzB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,IAAI,CAAC;IAC7B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,IAAI,EAAE,YAAY,EAAE,CAAC;IACrB,KAAK,CAAC,EAAE,iBAAiB,CAAC;IAC1B,OAAO,CAAC,EAAE,mBAAmB,CAAC;CAC/B;AAED,eAAO,MAAM,YAAY,EAAE,EAAE,CAAC,iBAAiB,CAwmB9C,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DialDevTools.web.d.ts","sourceRoot":"","sources":["../../../../../src/floatingMenu/dial/DialDevTools.web.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAqD,KAAK,SAAS,EAAsB,MAAM,OAAO,CAAC;AAgC9G,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,SAAS,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;CAC5B;AA6JD,wBAAgB,QAAQ,CAAC,EACvB,KAAK,EACL,OAAO,EACP,WAAoB,EACpB,aAAa,GACd,EAAE,aAAa,+
|
|
1
|
+
{"version":3,"file":"DialDevTools.web.d.ts","sourceRoot":"","sources":["../../../../../src/floatingMenu/dial/DialDevTools.web.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAqD,KAAK,SAAS,EAAsB,MAAM,OAAO,CAAC;AAgC9G,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,SAAS,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;CAC5B;AA6JD,wBAAgB,QAAQ,CAAC,EACvB,KAAK,EACL,OAAO,EACP,WAAoB,EACpB,aAAa,GACd,EAAE,aAAa,+BAmiBf"}
|
|
@@ -5,9 +5,14 @@ type Props = {
|
|
|
5
5
|
index: number;
|
|
6
6
|
icon: IconType;
|
|
7
7
|
iconsProgress: Animated.Value;
|
|
8
|
-
onPress: (
|
|
9
|
-
selectedIcon: number;
|
|
8
|
+
onPress: (icon: IconType) => void;
|
|
10
9
|
totalIcons: number;
|
|
10
|
+
/**
|
|
11
|
+
* Whether this icon belongs to the currently visible page. Off-page icons
|
|
12
|
+
* stay mounted (so paging never remounts the heavy icon trees) but are
|
|
13
|
+
* hidden with `display: none`.
|
|
14
|
+
*/
|
|
15
|
+
active: boolean;
|
|
11
16
|
};
|
|
12
17
|
export declare const DialIcon: FC<Props>;
|
|
13
18
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DialIcon.d.ts","sourceRoot":"","sources":["../../../../../src/floatingMenu/dial/DialIcon.tsx"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"DialIcon.d.ts","sourceRoot":"","sources":["../../../../../src/floatingMenu/dial/DialIcon.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAmB,EAAE,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,EAML,QAAQ,EACT,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAkB1C,KAAK,KAAK,GAAG;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,QAAQ,CAAC;IACf,aAAa,EAAE,QAAQ,CAAC,KAAK,CAAC;IAC9B,OAAO,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI,CAAC;IAClC,UAAU,EAAE,MAAM,CAAC;IACnB;;;;OAIG;IACH,MAAM,EAAE,OAAO,CAAC;CACjB,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,EAAE,CAAC,KAAK,CAoM9B,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { FC } from "react";
|
|
2
|
+
import { type StyleProp, type ViewStyle } from "react-native";
|
|
3
|
+
interface DialPaginationProps {
|
|
4
|
+
/** Current page index (0-based). */
|
|
5
|
+
page: number;
|
|
6
|
+
/** Total number of pages. */
|
|
7
|
+
pageCount: number;
|
|
8
|
+
/** Go to the previous page. */
|
|
9
|
+
onPrev: () => void;
|
|
10
|
+
/** Go to the next page. */
|
|
11
|
+
onNext: () => void;
|
|
12
|
+
/** Animated style applied to the container (entrance + floating). */
|
|
13
|
+
animatedStyle?: StyleProp<ViewStyle>;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Prev/Next pager shown below the dial when there are more dial tools than
|
|
17
|
+
* fit on a single page. Tools are ranked by usage, so paging walks from the
|
|
18
|
+
* most-used tools toward the least-used.
|
|
19
|
+
*/
|
|
20
|
+
export declare const DialPagination: FC<DialPaginationProps>;
|
|
21
|
+
export {};
|
|
22
|
+
//# sourceMappingURL=DialPagination.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DialPagination.d.ts","sourceRoot":"","sources":["../../../../../src/floatingMenu/dial/DialPagination.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAU,MAAM,OAAO,CAAC;AACnC,OAAO,EAML,KAAK,SAAS,EACd,KAAK,SAAS,EACf,MAAM,cAAc,CAAC;AAItB,UAAU,mBAAmB;IAC3B,oCAAoC;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,6BAA6B;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,+BAA+B;IAC/B,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,2BAA2B;IAC3B,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,qEAAqE;IACrE,aAAa,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;CACtC;AA4DD;;;;GAIG;AACH,eAAO,MAAM,cAAc,EAAE,EAAE,CAAC,mBAAmB,CAkClD,CAAC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Dial Usage Store - persists and ranks dial tool usage.
|
|
3
|
+
*
|
|
4
|
+
* Wraps the pure scoring logic from `@buoy-gg/floating-tools-core` with a
|
|
5
|
+
* persisted, in-memory cache. The dial menu uses this to order tools by how
|
|
6
|
+
* recently/frequently they are used, so the most-used tools land on page 1.
|
|
7
|
+
*
|
|
8
|
+
* The cache is loaded eagerly on import so `getRankedToolIds` can run
|
|
9
|
+
* synchronously by the time the dial opens.
|
|
10
|
+
*/
|
|
11
|
+
/**
|
|
12
|
+
* Load persisted usage data into the in-memory cache. Safe to call multiple
|
|
13
|
+
* times — the underlying read happens only once.
|
|
14
|
+
*/
|
|
15
|
+
export declare function loadDialUsage(): Promise<void>;
|
|
16
|
+
/** Whether the usage cache has finished loading from storage. */
|
|
17
|
+
export declare function isDialUsageLoaded(): boolean;
|
|
18
|
+
/**
|
|
19
|
+
* Rank tool ids by recency-weighted usage, highest first. Synchronous —
|
|
20
|
+
* operates against the in-memory cache. Never-used tools keep their original
|
|
21
|
+
* order as a tie-breaker.
|
|
22
|
+
*
|
|
23
|
+
* @param orderedIds - Tool ids in their default/registration order
|
|
24
|
+
*/
|
|
25
|
+
export declare function getRankedToolIds(orderedIds: string[]): string[];
|
|
26
|
+
/**
|
|
27
|
+
* Record a single press of a tool and persist the updated usage map.
|
|
28
|
+
*
|
|
29
|
+
* @param id - Tool id that was pressed
|
|
30
|
+
*/
|
|
31
|
+
export declare function recordToolUsage(id: string): Promise<void>;
|
|
32
|
+
/** Clear all usage data (in-memory and persisted). */
|
|
33
|
+
export declare function resetDialUsage(): Promise<void>;
|
|
34
|
+
//# sourceMappingURL=dialUsageStore.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dialUsageStore.d.ts","sourceRoot":"","sources":["../../../../../src/floatingMenu/dial/dialUsageStore.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAgBH;;;GAGG;AACH,wBAAgB,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CAkB7C;AAKD,iEAAiE;AACjE,wBAAgB,iBAAiB,IAAI,OAAO,CAE3C;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAE/D;AAED;;;;GAIG;AACH,wBAAsB,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAY/D;AAED,sDAAsD;AACtD,wBAAsB,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CAOpD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DevToolsSettingsModal.d.ts","sourceRoot":"","sources":["../../../../src/floatingMenu/DevToolsSettingsModal.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA6C,EAAE,EAAE,MAAM,OAAO,CAAC;AAqJtE;;;GAGG;AACH,MAAM,WAAW,sBAAsB;IACrC;;;;OAIG;IACH,2BAA2B,CAAC,EAAE,OAAO,CAAC;IACtC;;;OAGG;IACH,wBAAwB,CAAC,EAAE,OAAO,CAAC;CACpC;AAED;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,4EAA4E;IAC5E,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,uFAAuF;IACvF,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;QACvC,WAAW,EAAE,OAAO,CAAC;KACtB,CAAC;IACF,kDAAkD;IAClD,cAAc,CAAC,EAAE,sBAAsB,CAAC;CACzC;AAED,UAAU,0BAA0B;IAClC,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,gBAAgB,CAAC,EAAE,CAAC,QAAQ,EAAE,gBAAgB,KAAK,IAAI,CAAC;IACxD,eAAe,CAAC,EAAE,gBAAgB,CAAC;IACnC,aAAa,CAAC,EAAE;QACd,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,IAAI,CAAC,EAAE,MAAM,GAAG,KAAK,GAAG,MAAM,CAAC;KAChC,EAAE,CAAC;CACL;AA2DD;;;GAGG;AACH,eAAO,MAAM,qBAAqB,EAAE,EAAE,CAAC,0BAA0B,
|
|
1
|
+
{"version":3,"file":"DevToolsSettingsModal.d.ts","sourceRoot":"","sources":["../../../../src/floatingMenu/DevToolsSettingsModal.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA6C,EAAE,EAAE,MAAM,OAAO,CAAC;AAqJtE;;;GAGG;AACH,MAAM,WAAW,sBAAsB;IACrC;;;;OAIG;IACH,2BAA2B,CAAC,EAAE,OAAO,CAAC;IACtC;;;OAGG;IACH,wBAAwB,CAAC,EAAE,OAAO,CAAC;CACpC;AAED;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,4EAA4E;IAC5E,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,uFAAuF;IACvF,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;QACvC,WAAW,EAAE,OAAO,CAAC;KACtB,CAAC;IACF,kDAAkD;IAClD,cAAc,CAAC,EAAE,sBAAsB,CAAC;CACzC;AAED,UAAU,0BAA0B;IAClC,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,gBAAgB,CAAC,EAAE,CAAC,QAAQ,EAAE,gBAAgB,KAAK,IAAI,CAAC;IACxD,eAAe,CAAC,EAAE,gBAAgB,CAAC;IACnC,aAAa,CAAC,EAAE;QACd,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,IAAI,CAAC,EAAE,MAAM,GAAG,KAAK,GAAG,MAAM,CAAC;KAChC,EAAE,CAAC;CACL;AA2DD;;;GAGG;AACH,eAAO,MAAM,qBAAqB,EAAE,EAAE,CAAC,0BAA0B,CA28BhE,CAAC;AAwDF;;;;;;GAMG;AACH,eAAO,MAAM,mBAAmB;;;CAuD/B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DevToolsSettingsModal.web.d.ts","sourceRoot":"","sources":["../../../../src/floatingMenu/DevToolsSettingsModal.web.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,
|
|
1
|
+
{"version":3,"file":"DevToolsSettingsModal.web.d.ts","sourceRoot":"","sources":["../../../../src/floatingMenu/DevToolsSettingsModal.web.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,EAeL,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,EACrB,KAAK,cAAc,EAEpB,MAAM,+BAA+B,CAAC;AAOvC,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,cAAc,CAAC,EAAE,mBAAmB,EAAE,CAAC;IACvC,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAC;IAChC,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB,gBAAgB,CAAC,EAAE,CAAC,QAAQ,EAAE,gBAAgB,KAAK,IAAI,CAAC;CACzD;AAoQD,wBAAgB,aAAa,CAAC,EAC5B,OAAO,EACP,OAAO,EACP,cAAmB,EACnB,oBAAoB,EACpB,gBAAgB,EAChB,OAA2B,EAC3B,gBAAgB,GACjB,EAAE,kBAAkB,sCAkWpB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FloatingDevTools.d.ts","sourceRoot":"","sources":["../../../../src/floatingMenu/FloatingDevTools.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA+D,MAAM,OAAO,CAAC;AAGpF,OAAO,EAAgB,KAAK,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAMtE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAI5C,OAAO,EACL,KAAK,qBAAqB,EAC1B,KAAK,iBAAiB,EAEvB,MAAM,iBAAiB,CAAC;AAIzB;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,MAAM,YAAY,GACpB,MAAM,GACN;IACE,GAAG,EAAE,MAAM,CAAC;IACZ,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,GACD;IACE,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,EACR,QAAQ,GACR,QAAQ,GACR,SAAS,GACT,QAAQ,GACR,OAAO,GACP,KAAK,CAAC;IACV,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEN;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,CAAC;IAC1D,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC;CAC1C;AAED;;;;;;GAMG;AACH,MAAM,WAAW,qBAAsB,SAAQ,IAAI,CAAC,iBAAiB,EAAE,MAAM,CAAC;IAC5E;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,IAAI,CAAC,EAAE,YAAY,EAAE,CAAC;IAEtB;;;;;;;;;;;;;;OAcG;IACH,eAAe,CAAC,EAAE,YAAY,EAAE,CAAC;IAEjC;;;;;;;;;;;;OAYG;IACH,mBAAmB,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAEzC;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAE3B;;;;;;;;;OASG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvB;;;;;;;;;;;;;OAaG;IACH,oBAAoB,CAAC,EAAE,qBAAqB,CAAC;IAE7C;;;;;;;;;;;;;;OAcG;IACH,gBAAgB,CAAC,EAAE,iBAAiB,CAAC;IAErC;;;;;;;;;;;;;;;;OAgBG;IACH,qBAAqB,CAAC,EAAE,OAAO,oBAAoB,EAAE,WAAW,EAAE,CAAC;IAEnE;;;;;;;;;;;;;OAaG;IACH,mBAAmB,CAAC,EAAE,CAAC,WAAW,EAAE,OAAO,oBAAoB,EAAE,WAAW,KAAK,IAAI,CAAC;IAEtF;;;;;;;;;;OAUG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB;;;;;;;;OAQG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;;;;;;;;;;;;;;;;;OAkBG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CACrC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqDG;AACH,eAAO,MAAM,gBAAgB,GAAI,kMAa9B,qBAAqB,
|
|
1
|
+
{"version":3,"file":"FloatingDevTools.d.ts","sourceRoot":"","sources":["../../../../src/floatingMenu/FloatingDevTools.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA+D,MAAM,OAAO,CAAC;AAGpF,OAAO,EAAgB,KAAK,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAMtE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAI5C,OAAO,EACL,KAAK,qBAAqB,EAC1B,KAAK,iBAAiB,EAEvB,MAAM,iBAAiB,CAAC;AAIzB;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,MAAM,YAAY,GACpB,MAAM,GACN;IACE,GAAG,EAAE,MAAM,CAAC;IACZ,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,GACD;IACE,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,EACR,QAAQ,GACR,QAAQ,GACR,SAAS,GACT,QAAQ,GACR,OAAO,GACP,KAAK,CAAC;IACV,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEN;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,CAAC;IAC1D,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC;CAC1C;AAED;;;;;;GAMG;AACH,MAAM,WAAW,qBAAsB,SAAQ,IAAI,CAAC,iBAAiB,EAAE,MAAM,CAAC;IAC5E;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,IAAI,CAAC,EAAE,YAAY,EAAE,CAAC;IAEtB;;;;;;;;;;;;;;OAcG;IACH,eAAe,CAAC,EAAE,YAAY,EAAE,CAAC;IAEjC;;;;;;;;;;;;OAYG;IACH,mBAAmB,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAEzC;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAE3B;;;;;;;;;OASG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvB;;;;;;;;;;;;;OAaG;IACH,oBAAoB,CAAC,EAAE,qBAAqB,CAAC;IAE7C;;;;;;;;;;;;;;OAcG;IACH,gBAAgB,CAAC,EAAE,iBAAiB,CAAC;IAErC;;;;;;;;;;;;;;;;OAgBG;IACH,qBAAqB,CAAC,EAAE,OAAO,oBAAoB,EAAE,WAAW,EAAE,CAAC;IAEnE;;;;;;;;;;;;;OAaG;IACH,mBAAmB,CAAC,EAAE,CAAC,WAAW,EAAE,OAAO,oBAAoB,EAAE,WAAW,KAAK,IAAI,CAAC;IAEtF;;;;;;;;;;OAUG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB;;;;;;;;OAQG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;;;;;;;;;;;;;;;;;OAkBG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CACrC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqDG;AACH,eAAO,MAAM,gBAAgB,GAAI,kMAa9B,qBAAqB,6BAwOvB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FloatingDevTools.web.d.ts","sourceRoot":"","sources":["../../../../src/floatingMenu/FloatingDevTools.web.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAGH,OAAO,EAEL,KAAK,aAAa,EAClB,KAAK,WAAW,EAChB,KAAK,QAAQ,EAId,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"FloatingDevTools.web.d.ts","sourceRoot":"","sources":["../../../../src/floatingMenu/FloatingDevTools.web.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAGH,OAAO,EAEL,KAAK,aAAa,EAClB,KAAK,WAAW,EAChB,KAAK,QAAQ,EAId,MAAM,+BAA+B,CAAC;AAWvC,MAAM,WAAW,qBAAqB;IAEpC,0DAA0D;IAC1D,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,gDAAgD;IAChD,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,2CAA2C;IAC3C,qBAAqB,CAAC,EAAE,WAAW,EAAE,CAAC;IACtC,4CAA4C;IAC5C,mBAAmB,CAAC,EAAE,CAAC,GAAG,EAAE,WAAW,KAAK,IAAI,CAAC;IAGjD,gEAAgE;IAChE,IAAI,CAAC,EAAE,aAAa,EAAE,CAAC;IAGvB,qDAAqD;IACrD,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAMD;;;;;;;;;;;GAWG;AACH,wBAAgB,gBAAgB,CAAC,EAC/B,WAAW,EAAE,YAAY,EACzB,QAAQ,EACR,qBAAqB,EAAE,sBAAsB,EAC7C,mBAAmB,EAAE,oBAAoB,EACzC,IAAI,EACJ,YAAY,EAAE,aAAa,GAC5B,EAAE,qBAAqB,+BAuHvB;AAMD,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC"}
|