@buoy-gg/floating-tools-core 7.0.75 → 7.0.77
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/icons/generated/glyph-icons.g.js +1 -1
- package/lib/commonjs/icons/generated/icon-data.g.js +1 -1
- package/lib/commonjs/index.js +1 -1
- package/lib/commonjs/teamTools.js +1 -0
- package/lib/module/icons/generated/glyph-icons.g.js +1 -1
- package/lib/module/icons/generated/icon-data.g.js +1 -1
- package/lib/module/index.js +1 -1
- package/lib/module/teamTools.js +1 -0
- package/lib/typescript/commonjs/icons/generated/glyph-icons.g.d.ts +4 -0
- package/lib/typescript/commonjs/icons/generated/icon-data.g.d.ts +2 -0
- package/lib/typescript/commonjs/index.d.ts +1 -0
- package/lib/typescript/commonjs/teamTools.d.ts +37 -0
- package/lib/typescript/module/icons/generated/glyph-icons.g.d.ts +4 -0
- package/lib/typescript/module/icons/generated/icon-data.g.d.ts +2 -0
- package/lib/typescript/module/index.d.ts +1 -0
- package/lib/typescript/module/teamTools.d.ts +37 -0
- package/lib/web/index.mjs +4 -4
- package/package.json +1 -1
package/lib/module/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";export{FloatingToolsStore}from"./FloatingToolsStore.js";export{monoFont}from"./fonts";export*from"./icons/generated/glyph-icons.g.js";export{VISIBLE_HANDLE_WIDTH,DRAG_THRESHOLD,ANIMATION_DURATION,EDGE_PADDING,SAVE_DEBOUNCE_MS,STORAGE_KEYS}from"./constants.js";export{DevToolsStateManager,devToolsStateManager,devToolsReducer}from"./devToolsState.js";export{getUserStatusConfig,getGripIconLayout,filterValidChildren}from"./utils.js";export{easing,getEasing,interpolate,interpolatePosition}from"./easing.js";export{floatingToolsColors,withAlpha}from"./colors.js";export{MAX_DIAL_SLOTS,DIAL_START_ANGLE,DIAL_BUTTON_SIZE,DIAL_ICON_SIZE,DIAL_ICON_GLYPH_SIZE,DIAL_ICON_PADDING,DIAL_GRID_LINE_COUNT,dialColors,dialStyles,getGridLineRotations,getDialLayout,getIconAngle,getIconPosition,getAllIconPositions,dialAnimationConfig,getIconStaggerInputRange,dialCSSBeziers,generateDialCSSKeyframes,getDialCSSAnimationStyles,getDialCSSKeyframesString,getSpiralAnimationPosition,getStaggeredIconProgress}from"./dial.js";export{USAGE_HALF_LIFE_MS,USAGE_MIN_SCORE,decayScore,recordUsage,rankToolIds,pruneUsage}from"./dialUsage.js";export{SETTINGS_STORAGE_KEY,MAX_SETTINGS_DIAL_SLOTS,settingsTabs,settingsColors,toolColors,getToolColor,settingsStyles,toolLabels,getToolLabel,toolDescriptions,getToolDescription,globalSettingsConfig,enforceDialLimit,sanitizeFloatingSettings,mergeSettingsWithDefaults,generateDefaultSettings,countEnabledTools,canEnableDialTool,getEnabledToolIds,SettingsEventBus,settingsEventBus}from"./settings.js";export{NetworkIcon,NETWORK_ICON_COLOR}from"./icons/network-icon";export{EnvIcon,ENV_ICON_COLOR}from"./icons/env-icon";export{StorageIcon,STORAGE_ICON_COLOR}from"./icons/storage-icon";export{RoutesIcon,RoutePinIcon,RoutePathIcon,RouteDotIcon,RouteTwoPinsIcon,CurveTestA,CurveTestB,CurveTestC,CurveTestD,CurveTestE,CurveTestF,CurveTestG,CurveTestH,CurveTestI,CurveTestJ,CurveTestK,CurveTestL,CurveTestM,CurveTestN,CurveTestO,CurveTestP,ROUTES_ICON_COLOR}from"./icons/routes-icon";export{QueryIcon,QUERY_ICON_COLOR}from"./icons/query-icon";export{HighlighterIcon,HIGHLIGHTER_ICON_COLOR,RendersIcon,RENDERS_ICON_COLOR}from"./icons/renders-icon";export{BenchmarkIcon,BENCHMARK_ICON_COLOR}from"./icons/benchmark-icon";export{SentryIcon,SENTRY_ICON_COLOR}from"./icons/sentry-icon";export{SettingsSolidIcon}from"./icons/settings-icon";export{WifiIcon,WIFI_ICON_COLOR}from"./icons/wifi-icon";export{HighlightIcon,HIGHLIGHT_ICON_COLOR}from"./icons/highlight-icon";export{ReduxIcon,REDUX_ICON_COLOR}from"./icons/redux-icon";export{EventsIcon,EVENTS_ICON_COLOR}from"./icons/events-icon";export{ConsoleIcon,CONSOLE_ICON_COLOR}from"./icons/console-icon";export{TimeMachineIcon,TIME_MACHINE_ICON_COLOR}from"./icons/time-machine-icon";export{ScenariosIcon,SCENARIOS_ICON_COLOR}from"./icons/scenarios-icon";export{AskBuoyIcon,ASK_BUOY_ICON_COLOR}from"./icons/ask-buoy-icon";export{ImagesIcon,IMAGES_ICON_COLOR}from"./icons/images-icon";export{CameraIcon,CAMERA_ICON_COLOR}from"./icons/camera-icon";export{AssetsIcon,ASSETS_ICON_COLOR}from"./icons/assets-icon";export{ImpersonateIcon,IMPERSONATE_ICON_COLOR}from"./icons/impersonate-icon";export{ImageOverlayIcon,IMAGE_OVERLAY_ICON_COLOR}from"./icons/image-overlay-icon";export{ZustandIcon,ZUSTAND_ICON_COLOR}from"./icons/zustand-icon";export{JotaiIcon,JOTAI_ICON_COLOR}from"./icons/jotai-icon";export{RiverpodIcon,RIVERPOD_ICON_COLOR}from"./icons/riverpod-icon";export{createNode,createLine,createRing,createDot,createGlow,createArrow,createBar}from"./icons/icon-factories.js";export{renderIconData,createIcon}from"./icons/icon-renderer.js";export{NotificationsIcon,NOTIFICATIONS_ICON_COLOR}from"./icons/notifications-icon.js";export{ClockToolIcon,CLOCK_TOOL_ICON_COLOR}from"./icons/clock-tool-icon.js";export{PermissionsIcon,PERMISSIONS_ICON_COLOR}from"./icons/permissions-icon.js";export{LifecycleToolIcon,LIFECYCLE_TOOL_ICON_COLOR}from"./icons/lifecycle-tool-icon.js";export{LocationToolIcon,LOCATION_TOOL_ICON_COLOR}from"./icons/location-tool-icon.js";
|
|
1
|
+
"use strict";export{FloatingToolsStore}from"./FloatingToolsStore.js";export{monoFont}from"./fonts";export*from"./icons/generated/glyph-icons.g.js";export{VISIBLE_HANDLE_WIDTH,DRAG_THRESHOLD,ANIMATION_DURATION,EDGE_PADDING,SAVE_DEBOUNCE_MS,STORAGE_KEYS}from"./constants.js";export{DevToolsStateManager,devToolsStateManager,devToolsReducer}from"./devToolsState.js";export{getUserStatusConfig,getGripIconLayout,filterValidChildren}from"./utils.js";export{easing,getEasing,interpolate,interpolatePosition}from"./easing.js";export{floatingToolsColors,withAlpha}from"./colors.js";export{MAX_DIAL_SLOTS,DIAL_START_ANGLE,DIAL_BUTTON_SIZE,DIAL_ICON_SIZE,DIAL_ICON_GLYPH_SIZE,DIAL_ICON_PADDING,DIAL_GRID_LINE_COUNT,dialColors,dialStyles,getGridLineRotations,getDialLayout,getIconAngle,getIconPosition,getAllIconPositions,dialAnimationConfig,getIconStaggerInputRange,dialCSSBeziers,generateDialCSSKeyframes,getDialCSSAnimationStyles,getDialCSSKeyframesString,getSpiralAnimationPosition,getStaggeredIconProgress}from"./dial.js";export{USAGE_HALF_LIFE_MS,USAGE_MIN_SCORE,decayScore,recordUsage,rankToolIds,pruneUsage}from"./dialUsage.js";export{SETTINGS_STORAGE_KEY,MAX_SETTINGS_DIAL_SLOTS,settingsTabs,settingsColors,toolColors,getToolColor,settingsStyles,toolLabels,getToolLabel,toolDescriptions,getToolDescription,globalSettingsConfig,enforceDialLimit,sanitizeFloatingSettings,mergeSettingsWithDefaults,generateDefaultSettings,countEnabledTools,canEnableDialTool,getEnabledToolIds,SettingsEventBus,settingsEventBus}from"./settings.js";export{NetworkIcon,NETWORK_ICON_COLOR}from"./icons/network-icon";export{EnvIcon,ENV_ICON_COLOR}from"./icons/env-icon";export{StorageIcon,STORAGE_ICON_COLOR}from"./icons/storage-icon";export{RoutesIcon,RoutePinIcon,RoutePathIcon,RouteDotIcon,RouteTwoPinsIcon,CurveTestA,CurveTestB,CurveTestC,CurveTestD,CurveTestE,CurveTestF,CurveTestG,CurveTestH,CurveTestI,CurveTestJ,CurveTestK,CurveTestL,CurveTestM,CurveTestN,CurveTestO,CurveTestP,ROUTES_ICON_COLOR}from"./icons/routes-icon";export{QueryIcon,QUERY_ICON_COLOR}from"./icons/query-icon";export{HighlighterIcon,HIGHLIGHTER_ICON_COLOR,RendersIcon,RENDERS_ICON_COLOR}from"./icons/renders-icon";export{BenchmarkIcon,BENCHMARK_ICON_COLOR}from"./icons/benchmark-icon";export{SentryIcon,SENTRY_ICON_COLOR}from"./icons/sentry-icon";export{SettingsSolidIcon}from"./icons/settings-icon";export{WifiIcon,WIFI_ICON_COLOR}from"./icons/wifi-icon";export{HighlightIcon,HIGHLIGHT_ICON_COLOR}from"./icons/highlight-icon";export{ReduxIcon,REDUX_ICON_COLOR}from"./icons/redux-icon";export{EventsIcon,EVENTS_ICON_COLOR}from"./icons/events-icon";export{ConsoleIcon,CONSOLE_ICON_COLOR}from"./icons/console-icon";export{TimeMachineIcon,TIME_MACHINE_ICON_COLOR}from"./icons/time-machine-icon";export{ScenariosIcon,SCENARIOS_ICON_COLOR}from"./icons/scenarios-icon";export{AskBuoyIcon,ASK_BUOY_ICON_COLOR}from"./icons/ask-buoy-icon";export{ImagesIcon,IMAGES_ICON_COLOR}from"./icons/images-icon";export{CameraIcon,CAMERA_ICON_COLOR}from"./icons/camera-icon";export{AssetsIcon,ASSETS_ICON_COLOR}from"./icons/assets-icon";export{ImpersonateIcon,IMPERSONATE_ICON_COLOR}from"./icons/impersonate-icon";export{ImageOverlayIcon,IMAGE_OVERLAY_ICON_COLOR}from"./icons/image-overlay-icon";export{ZustandIcon,ZUSTAND_ICON_COLOR}from"./icons/zustand-icon";export{JotaiIcon,JOTAI_ICON_COLOR}from"./icons/jotai-icon";export{RiverpodIcon,RIVERPOD_ICON_COLOR}from"./icons/riverpod-icon";export{createNode,createLine,createRing,createDot,createGlow,createArrow,createBar}from"./icons/icon-factories.js";export{renderIconData,createIcon}from"./icons/icon-renderer.js";export{NotificationsIcon,NOTIFICATIONS_ICON_COLOR}from"./icons/notifications-icon.js";export{ClockToolIcon,CLOCK_TOOL_ICON_COLOR}from"./icons/clock-tool-icon.js";export{PermissionsIcon,PERMISSIONS_ICON_COLOR}from"./icons/permissions-icon.js";export{LifecycleToolIcon,LIFECYCLE_TOOL_ICON_COLOR}from"./icons/lifecycle-tool-icon.js";export{LocationToolIcon,LOCATION_TOOL_ICON_COLOR}from"./icons/location-tool-icon.js";export{BUOY_TEAM_TOOL_IDS,teamToolId,isTeamToolAllowed,filterTeamTools}from"./teamTools.js";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";export const BUOY_TEAM_TOOL_IDS=["ask-buoy","assets","clock","console","debug-borders","env","events","highlight-updates","image-overlay","images","impersonate","jotai","js-top","lifecycle","location","network","perf-monitor","permissions","push-notifications","query","redux","riverpod","route-events","scenarios","sentry","storage","three","time-machine","zustand"];const n=new Set(BUOY_TEAM_TOOL_IDS);const s={routes:"route-events","react-query":"query","query-wifi-toggle":"query"};export function teamToolId(e){const t=e.endsWith("-modal")?e.slice(0,-"-modal".length):e;return s[t]??t}export function isTeamToolAllowed(e,t){if(!t)return true;const r=teamToolId(e);if(!n.has(r))return true;return t.some(o=>teamToolId(o)===r)}export function filterTeamTools(e,t){if(!t)return e;return e.filter(r=>isTeamToolAllowed(r.id,t))}
|
|
@@ -6,6 +6,7 @@ export declare const ArrowDownToLineGlyph: import("../icon-renderer").BuoyIconCo
|
|
|
6
6
|
export declare const ArrowDownGlyph: import("../icon-renderer").BuoyIconComponent;
|
|
7
7
|
export declare const ArrowUpGlyph: import("../icon-renderer").BuoyIconComponent;
|
|
8
8
|
export declare const BarChartGlyph: import("../icon-renderer").BuoyIconComponent;
|
|
9
|
+
export declare const BellGlyph: import("../icon-renderer").BuoyIconComponent;
|
|
9
10
|
export declare const BookmarkGlyph: import("../icon-renderer").BuoyIconComponent;
|
|
10
11
|
export declare const BoxGlyph: import("../icon-renderer").BuoyIconComponent;
|
|
11
12
|
export declare const BracesGlyph: import("../icon-renderer").BuoyIconComponent;
|
|
@@ -61,6 +62,7 @@ export declare const SearchGlyph: import("../icon-renderer").BuoyIconComponent;
|
|
|
61
62
|
export declare const ServerGlyph: import("../icon-renderer").BuoyIconComponent;
|
|
62
63
|
export declare const SettingsGlyph: import("../icon-renderer").BuoyIconComponent;
|
|
63
64
|
export declare const ShieldGlyph: import("../icon-renderer").BuoyIconComponent;
|
|
65
|
+
export declare const SmartphoneGlyph: import("../icon-renderer").BuoyIconComponent;
|
|
64
66
|
export declare const Trash2Glyph: import("../icon-renderer").BuoyIconComponent;
|
|
65
67
|
export declare const UnlockGlyph: import("../icon-renderer").BuoyIconComponent;
|
|
66
68
|
export declare const UploadGlyph: import("../icon-renderer").BuoyIconComponent;
|
|
@@ -79,6 +81,7 @@ export declare const glyphsByName: {
|
|
|
79
81
|
readonly 'arrow-down': import("../icon-renderer").BuoyIconComponent;
|
|
80
82
|
readonly 'arrow-up': import("../icon-renderer").BuoyIconComponent;
|
|
81
83
|
readonly 'bar-chart': import("../icon-renderer").BuoyIconComponent;
|
|
84
|
+
readonly bell: import("../icon-renderer").BuoyIconComponent;
|
|
82
85
|
readonly bookmark: import("../icon-renderer").BuoyIconComponent;
|
|
83
86
|
readonly box: import("../icon-renderer").BuoyIconComponent;
|
|
84
87
|
readonly braces: import("../icon-renderer").BuoyIconComponent;
|
|
@@ -134,6 +137,7 @@ export declare const glyphsByName: {
|
|
|
134
137
|
readonly server: import("../icon-renderer").BuoyIconComponent;
|
|
135
138
|
readonly settings: import("../icon-renderer").BuoyIconComponent;
|
|
136
139
|
readonly shield: import("../icon-renderer").BuoyIconComponent;
|
|
140
|
+
readonly smartphone: import("../icon-renderer").BuoyIconComponent;
|
|
137
141
|
readonly 'trash-2': import("../icon-renderer").BuoyIconComponent;
|
|
138
142
|
readonly unlock: import("../icon-renderer").BuoyIconComponent;
|
|
139
143
|
readonly upload: import("../icon-renderer").BuoyIconComponent;
|
|
@@ -114,6 +114,7 @@ export declare const arrowDownToLineGlyphData: IconData;
|
|
|
114
114
|
export declare const arrowDownGlyphData: IconData;
|
|
115
115
|
export declare const arrowUpGlyphData: IconData;
|
|
116
116
|
export declare const barChartGlyphData: IconData;
|
|
117
|
+
export declare const bellGlyphData: IconData;
|
|
117
118
|
export declare const bookmarkGlyphData: IconData;
|
|
118
119
|
export declare const boxGlyphData: IconData;
|
|
119
120
|
export declare const bracesGlyphData: IconData;
|
|
@@ -169,6 +170,7 @@ export declare const searchGlyphData: IconData;
|
|
|
169
170
|
export declare const serverGlyphData: IconData;
|
|
170
171
|
export declare const settingsGlyphData: IconData;
|
|
171
172
|
export declare const shieldGlyphData: IconData;
|
|
173
|
+
export declare const smartphoneGlyphData: IconData;
|
|
172
174
|
export declare const trash2GlyphData: IconData;
|
|
173
175
|
export declare const unlockGlyphData: IconData;
|
|
174
176
|
export declare const uploadGlyphData: IconData;
|
|
@@ -60,4 +60,5 @@ export { ClockToolIcon, CLOCK_TOOL_ICON_COLOR } from './icons/clock-tool-icon';
|
|
|
60
60
|
export { PermissionsIcon, PERMISSIONS_ICON_COLOR } from './icons/permissions-icon';
|
|
61
61
|
export { LifecycleToolIcon, LIFECYCLE_TOOL_ICON_COLOR } from './icons/lifecycle-tool-icon';
|
|
62
62
|
export { LocationToolIcon, LOCATION_TOOL_ICON_COLOR } from './icons/location-tool-icon';
|
|
63
|
+
export { BUOY_TEAM_TOOL_IDS, teamToolId, isTeamToolAllowed, filterTeamTools, } from './teamTools';
|
|
63
64
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Team roles: which Buoy tools a signed-in team member sees.
|
|
3
|
+
*
|
|
4
|
+
* A Business team admin picks the tools for each role on buoy.gg
|
|
5
|
+
* (/dashboard/team). buoy.gg puts that list in the member's sign-in token as
|
|
6
|
+
* the `tools` claim (absent = all tools). The menu shows a tool when:
|
|
7
|
+
*
|
|
8
|
+
* - there is no list (no claim, a key, a bot key, or a role set to all), or
|
|
9
|
+
* - the list names the tool, or
|
|
10
|
+
* - the tool is not a Buoy tool (the app's own tools always show, since
|
|
11
|
+
* buoy.gg can't list them).
|
|
12
|
+
*
|
|
13
|
+
* Hiding a tool only changes the menu. Capture, Desktop, the MCP and caps
|
|
14
|
+
* are unchanged: this is a focus feature, not a lock.
|
|
15
|
+
*
|
|
16
|
+
* Every port mirrors this file 1:1 (same ids, same aliases, same rule):
|
|
17
|
+
* Swift packages-swift/Sources/BuoyCore/Shell/TeamTools.swift
|
|
18
|
+
* Android packages-android/buoy-core/src/main/kotlin/gg/buoy/core/shell/TeamTools.kt
|
|
19
|
+
* Flutter packages-flutter/buoy_core/lib/src/team_tools.dart
|
|
20
|
+
* MAUI packages-maui/Buoy.Core/TeamTools.cs
|
|
21
|
+
* buoy.gg's Team page lists the same ids (apps/website/src/data/teamTools.ts).
|
|
22
|
+
* Tests in the website, Swift and Android read this list and fail on drift.
|
|
23
|
+
*/
|
|
24
|
+
/** Every Buoy tool a role can turn on or off, by its menu id. */
|
|
25
|
+
export declare const BUOY_TEAM_TOOL_IDS: readonly ["ask-buoy", "assets", "clock", "console", "debug-borders", "env", "events", "highlight-updates", "image-overlay", "images", "impersonate", "jotai", "js-top", "lifecycle", "location", "network", "perf-monitor", "permissions", "push-notifications", "query", "redux", "riverpod", "route-events", "scenarios", "sentry", "storage", "three", "time-machine", "zustand"];
|
|
26
|
+
/**
|
|
27
|
+
* The id a role list uses for a menu entry. A tool's second entry
|
|
28
|
+
* (`perf-monitor-modal`, `js-top-modal`, …) follows its base tool.
|
|
29
|
+
*/
|
|
30
|
+
export declare function teamToolId(id: string): string;
|
|
31
|
+
/** True when this menu entry should show for a member with this tool list. */
|
|
32
|
+
export declare function isTeamToolAllowed(id: string, allowedTools: readonly string[] | null | undefined): boolean;
|
|
33
|
+
/** The menu entries a member with this tool list sees, in the same order. */
|
|
34
|
+
export declare function filterTeamTools<T extends {
|
|
35
|
+
id: string;
|
|
36
|
+
}>(tools: readonly T[], allowedTools: readonly string[] | null | undefined): T[];
|
|
37
|
+
//# sourceMappingURL=teamTools.d.ts.map
|
|
@@ -6,6 +6,7 @@ export declare const ArrowDownToLineGlyph: import("../icon-renderer").BuoyIconCo
|
|
|
6
6
|
export declare const ArrowDownGlyph: import("../icon-renderer").BuoyIconComponent;
|
|
7
7
|
export declare const ArrowUpGlyph: import("../icon-renderer").BuoyIconComponent;
|
|
8
8
|
export declare const BarChartGlyph: import("../icon-renderer").BuoyIconComponent;
|
|
9
|
+
export declare const BellGlyph: import("../icon-renderer").BuoyIconComponent;
|
|
9
10
|
export declare const BookmarkGlyph: import("../icon-renderer").BuoyIconComponent;
|
|
10
11
|
export declare const BoxGlyph: import("../icon-renderer").BuoyIconComponent;
|
|
11
12
|
export declare const BracesGlyph: import("../icon-renderer").BuoyIconComponent;
|
|
@@ -61,6 +62,7 @@ export declare const SearchGlyph: import("../icon-renderer").BuoyIconComponent;
|
|
|
61
62
|
export declare const ServerGlyph: import("../icon-renderer").BuoyIconComponent;
|
|
62
63
|
export declare const SettingsGlyph: import("../icon-renderer").BuoyIconComponent;
|
|
63
64
|
export declare const ShieldGlyph: import("../icon-renderer").BuoyIconComponent;
|
|
65
|
+
export declare const SmartphoneGlyph: import("../icon-renderer").BuoyIconComponent;
|
|
64
66
|
export declare const Trash2Glyph: import("../icon-renderer").BuoyIconComponent;
|
|
65
67
|
export declare const UnlockGlyph: import("../icon-renderer").BuoyIconComponent;
|
|
66
68
|
export declare const UploadGlyph: import("../icon-renderer").BuoyIconComponent;
|
|
@@ -79,6 +81,7 @@ export declare const glyphsByName: {
|
|
|
79
81
|
readonly 'arrow-down': import("../icon-renderer").BuoyIconComponent;
|
|
80
82
|
readonly 'arrow-up': import("../icon-renderer").BuoyIconComponent;
|
|
81
83
|
readonly 'bar-chart': import("../icon-renderer").BuoyIconComponent;
|
|
84
|
+
readonly bell: import("../icon-renderer").BuoyIconComponent;
|
|
82
85
|
readonly bookmark: import("../icon-renderer").BuoyIconComponent;
|
|
83
86
|
readonly box: import("../icon-renderer").BuoyIconComponent;
|
|
84
87
|
readonly braces: import("../icon-renderer").BuoyIconComponent;
|
|
@@ -134,6 +137,7 @@ export declare const glyphsByName: {
|
|
|
134
137
|
readonly server: import("../icon-renderer").BuoyIconComponent;
|
|
135
138
|
readonly settings: import("../icon-renderer").BuoyIconComponent;
|
|
136
139
|
readonly shield: import("../icon-renderer").BuoyIconComponent;
|
|
140
|
+
readonly smartphone: import("../icon-renderer").BuoyIconComponent;
|
|
137
141
|
readonly 'trash-2': import("../icon-renderer").BuoyIconComponent;
|
|
138
142
|
readonly unlock: import("../icon-renderer").BuoyIconComponent;
|
|
139
143
|
readonly upload: import("../icon-renderer").BuoyIconComponent;
|
|
@@ -114,6 +114,7 @@ export declare const arrowDownToLineGlyphData: IconData;
|
|
|
114
114
|
export declare const arrowDownGlyphData: IconData;
|
|
115
115
|
export declare const arrowUpGlyphData: IconData;
|
|
116
116
|
export declare const barChartGlyphData: IconData;
|
|
117
|
+
export declare const bellGlyphData: IconData;
|
|
117
118
|
export declare const bookmarkGlyphData: IconData;
|
|
118
119
|
export declare const boxGlyphData: IconData;
|
|
119
120
|
export declare const bracesGlyphData: IconData;
|
|
@@ -169,6 +170,7 @@ export declare const searchGlyphData: IconData;
|
|
|
169
170
|
export declare const serverGlyphData: IconData;
|
|
170
171
|
export declare const settingsGlyphData: IconData;
|
|
171
172
|
export declare const shieldGlyphData: IconData;
|
|
173
|
+
export declare const smartphoneGlyphData: IconData;
|
|
172
174
|
export declare const trash2GlyphData: IconData;
|
|
173
175
|
export declare const unlockGlyphData: IconData;
|
|
174
176
|
export declare const uploadGlyphData: IconData;
|
|
@@ -60,4 +60,5 @@ export { ClockToolIcon, CLOCK_TOOL_ICON_COLOR } from './icons/clock-tool-icon';
|
|
|
60
60
|
export { PermissionsIcon, PERMISSIONS_ICON_COLOR } from './icons/permissions-icon';
|
|
61
61
|
export { LifecycleToolIcon, LIFECYCLE_TOOL_ICON_COLOR } from './icons/lifecycle-tool-icon';
|
|
62
62
|
export { LocationToolIcon, LOCATION_TOOL_ICON_COLOR } from './icons/location-tool-icon';
|
|
63
|
+
export { BUOY_TEAM_TOOL_IDS, teamToolId, isTeamToolAllowed, filterTeamTools, } from './teamTools';
|
|
63
64
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Team roles: which Buoy tools a signed-in team member sees.
|
|
3
|
+
*
|
|
4
|
+
* A Business team admin picks the tools for each role on buoy.gg
|
|
5
|
+
* (/dashboard/team). buoy.gg puts that list in the member's sign-in token as
|
|
6
|
+
* the `tools` claim (absent = all tools). The menu shows a tool when:
|
|
7
|
+
*
|
|
8
|
+
* - there is no list (no claim, a key, a bot key, or a role set to all), or
|
|
9
|
+
* - the list names the tool, or
|
|
10
|
+
* - the tool is not a Buoy tool (the app's own tools always show, since
|
|
11
|
+
* buoy.gg can't list them).
|
|
12
|
+
*
|
|
13
|
+
* Hiding a tool only changes the menu. Capture, Desktop, the MCP and caps
|
|
14
|
+
* are unchanged: this is a focus feature, not a lock.
|
|
15
|
+
*
|
|
16
|
+
* Every port mirrors this file 1:1 (same ids, same aliases, same rule):
|
|
17
|
+
* Swift packages-swift/Sources/BuoyCore/Shell/TeamTools.swift
|
|
18
|
+
* Android packages-android/buoy-core/src/main/kotlin/gg/buoy/core/shell/TeamTools.kt
|
|
19
|
+
* Flutter packages-flutter/buoy_core/lib/src/team_tools.dart
|
|
20
|
+
* MAUI packages-maui/Buoy.Core/TeamTools.cs
|
|
21
|
+
* buoy.gg's Team page lists the same ids (apps/website/src/data/teamTools.ts).
|
|
22
|
+
* Tests in the website, Swift and Android read this list and fail on drift.
|
|
23
|
+
*/
|
|
24
|
+
/** Every Buoy tool a role can turn on or off, by its menu id. */
|
|
25
|
+
export declare const BUOY_TEAM_TOOL_IDS: readonly ["ask-buoy", "assets", "clock", "console", "debug-borders", "env", "events", "highlight-updates", "image-overlay", "images", "impersonate", "jotai", "js-top", "lifecycle", "location", "network", "perf-monitor", "permissions", "push-notifications", "query", "redux", "riverpod", "route-events", "scenarios", "sentry", "storage", "three", "time-machine", "zustand"];
|
|
26
|
+
/**
|
|
27
|
+
* The id a role list uses for a menu entry. A tool's second entry
|
|
28
|
+
* (`perf-monitor-modal`, `js-top-modal`, …) follows its base tool.
|
|
29
|
+
*/
|
|
30
|
+
export declare function teamToolId(id: string): string;
|
|
31
|
+
/** True when this menu entry should show for a member with this tool list. */
|
|
32
|
+
export declare function isTeamToolAllowed(id: string, allowedTools: readonly string[] | null | undefined): boolean;
|
|
33
|
+
/** The menu entries a member with this tool list sees, in the same order. */
|
|
34
|
+
export declare function filterTeamTools<T extends {
|
|
35
|
+
id: string;
|
|
36
|
+
}>(tools: readonly T[], allowedTools: readonly string[] | null | undefined): T[];
|
|
37
|
+
//# sourceMappingURL=teamTools.d.ts.map
|