@burdenoff/microfe-vibecontrols 2026.601.11 → 2026.601.13
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/dist/_virtual/_rolldown/runtime.js +5 -2
- package/dist/components/actions/ActionForm.js +270 -255
- package/dist/components/actions/ActionForm.js.map +1 -1
- package/dist/components/actions/RemoteExecutionEnableNotice.js +85 -0
- package/dist/components/actions/RemoteExecutionEnableNotice.js.map +1 -0
- package/dist/components/agents/AgentConnectionRecovery.js +123 -0
- package/dist/components/agents/AgentConnectionRecovery.js.map +1 -0
- package/dist/components/agents/RemoteTaskPermissionsCard.js +37 -36
- package/dist/components/agents/RemoteTaskPermissionsCard.js.map +1 -1
- package/dist/components/graph/MeshAgentNode.js +74 -0
- package/dist/components/graph/MeshAgentNode.js.map +1 -0
- package/dist/components/graph/MeshDeployWizard.js +393 -0
- package/dist/components/graph/MeshDeployWizard.js.map +1 -0
- package/dist/components/graph/MeshGraphView.js +190 -0
- package/dist/components/graph/MeshGraphView.js.map +1 -0
- package/dist/components/graph/MeshNodeActions.js +70 -0
- package/dist/components/graph/MeshNodeActions.js.map +1 -0
- package/dist/components/graph/MeshRequestPanel.js +240 -0
- package/dist/components/graph/MeshRequestPanel.js.map +1 -0
- package/dist/components/graph/meshTypes.js +11 -0
- package/dist/components/graph/meshTypes.js.map +1 -0
- package/dist/components/graph/nodeIcons.js +31 -0
- package/dist/components/graph/nodeIcons.js.map +1 -0
- package/dist/components/shared/EnableRemoteTaskDialog.js +48 -0
- package/dist/components/shared/EnableRemoteTaskDialog.js.map +1 -0
- package/dist/components/shared/index.js +1 -0
- package/dist/generated/global-operations.js +7 -12
- package/dist/generated/global-operations.js.map +1 -1
- package/dist/generated/wspace-operations.js +1896 -1649
- package/dist/generated/wspace-operations.js.map +1 -1
- package/dist/generated/wspace-types.js +14 -12
- package/dist/generated/wspace-types.js.map +1 -1
- package/dist/hooks/useAiCreditsQuota.js +27 -20
- package/dist/hooks/useAiCreditsQuota.js.map +1 -1
- package/dist/index.js +10 -10
- package/dist/node_modules/dagre/index.js +24 -0
- package/dist/node_modules/dagre/index.js.map +1 -0
- package/dist/node_modules/dagre/lib/acyclic.js +47 -0
- package/dist/node_modules/dagre/lib/acyclic.js.map +1 -0
- package/dist/node_modules/dagre/lib/add-border-segments.js +32 -0
- package/dist/node_modules/dagre/lib/add-border-segments.js.map +1 -0
- package/dist/node_modules/dagre/lib/coordinate-system.js +57 -0
- package/dist/node_modules/dagre/lib/coordinate-system.js.map +1 -0
- package/dist/node_modules/dagre/lib/data/list.js +30 -0
- package/dist/node_modules/dagre/lib/data/list.js.map +1 -0
- package/dist/node_modules/dagre/lib/debug.js +31 -0
- package/dist/node_modules/dagre/lib/debug.js.map +1 -0
- package/dist/node_modules/dagre/lib/graphlib.js +15 -0
- package/dist/node_modules/dagre/lib/graphlib.js.map +1 -0
- package/dist/node_modules/dagre/lib/greedy-fas.js +74 -0
- package/dist/node_modules/dagre/lib/greedy-fas.js.map +1 -0
- package/dist/node_modules/dagre/lib/layout.js +305 -0
- package/dist/node_modules/dagre/lib/layout.js.map +1 -0
- package/dist/node_modules/dagre/lib/lodash.js +67 -0
- package/dist/node_modules/dagre/lib/lodash.js.map +1 -0
- package/dist/node_modules/dagre/lib/nesting-graph.js +76 -0
- package/dist/node_modules/dagre/lib/nesting-graph.js.map +1 -0
- package/dist/node_modules/dagre/lib/normalize.js +45 -0
- package/dist/node_modules/dagre/lib/normalize.js.map +1 -0
- package/dist/node_modules/dagre/lib/order/add-subgraph-constraints.js +24 -0
- package/dist/node_modules/dagre/lib/order/add-subgraph-constraints.js.map +1 -0
- package/dist/node_modules/dagre/lib/order/barycenter.js +34 -0
- package/dist/node_modules/dagre/lib/order/barycenter.js.map +1 -0
- package/dist/node_modules/dagre/lib/order/build-layer-graph.js +32 -0
- package/dist/node_modules/dagre/lib/order/build-layer-graph.js.map +1 -0
- package/dist/node_modules/dagre/lib/order/cross-count.js +39 -0
- package/dist/node_modules/dagre/lib/order/cross-count.js.map +1 -0
- package/dist/node_modules/dagre/lib/order/index.js +50 -0
- package/dist/node_modules/dagre/lib/order/index.js.map +1 -0
- package/dist/node_modules/dagre/lib/order/init-order.js +28 -0
- package/dist/node_modules/dagre/lib/order/init-order.js.map +1 -0
- package/dist/node_modules/dagre/lib/order/resolve-conflicts.js +61 -0
- package/dist/node_modules/dagre/lib/order/resolve-conflicts.js.map +1 -0
- package/dist/node_modules/dagre/lib/order/sort-subgraph.js +50 -0
- package/dist/node_modules/dagre/lib/order/sort-subgraph.js.map +1 -0
- package/dist/node_modules/dagre/lib/order/sort.js +34 -0
- package/dist/node_modules/dagre/lib/order/sort.js.map +1 -0
- package/dist/node_modules/dagre/lib/parent-dummy-chains.js +50 -0
- package/dist/node_modules/dagre/lib/parent-dummy-chains.js.map +1 -0
- package/dist/node_modules/dagre/lib/position/bk.js +212 -0
- package/dist/node_modules/dagre/lib/position/bk.js.map +1 -0
- package/dist/node_modules/dagre/lib/position/index.js +30 -0
- package/dist/node_modules/dagre/lib/position/index.js.map +1 -0
- package/dist/node_modules/dagre/lib/rank/feasible-tree.js +39 -0
- package/dist/node_modules/dagre/lib/rank/feasible-tree.js.map +1 -0
- package/dist/node_modules/dagre/lib/rank/index.js +35 -0
- package/dist/node_modules/dagre/lib/rank/index.js.map +1 -0
- package/dist/node_modules/dagre/lib/rank/network-simplex.js +90 -0
- package/dist/node_modules/dagre/lib/rank/network-simplex.js.map +1 -0
- package/dist/node_modules/dagre/lib/rank/util.js +31 -0
- package/dist/node_modules/dagre/lib/rank/util.js.map +1 -0
- package/dist/node_modules/dagre/lib/util.js +151 -0
- package/dist/node_modules/dagre/lib/util.js.map +1 -0
- package/dist/node_modules/dagre/lib/version.js +10 -0
- package/dist/node_modules/dagre/lib/version.js.map +1 -0
- package/dist/node_modules/graphlib/index.js +19 -0
- package/dist/node_modules/graphlib/index.js.map +1 -0
- package/dist/node_modules/graphlib/lib/alg/components.js +21 -0
- package/dist/node_modules/graphlib/lib/alg/components.js.map +1 -0
- package/dist/node_modules/graphlib/lib/alg/dfs.js +25 -0
- package/dist/node_modules/graphlib/lib/alg/dfs.js.map +1 -0
- package/dist/node_modules/graphlib/lib/alg/dijkstra-all.js +18 -0
- package/dist/node_modules/graphlib/lib/alg/dijkstra-all.js.map +1 -0
- package/dist/node_modules/graphlib/lib/alg/dijkstra.js +31 -0
- package/dist/node_modules/graphlib/lib/alg/dijkstra.js.map +1 -0
- package/dist/node_modules/graphlib/lib/alg/find-cycles.js +18 -0
- package/dist/node_modules/graphlib/lib/alg/find-cycles.js.map +1 -0
- package/dist/node_modules/graphlib/lib/alg/floyd-warshall.js +41 -0
- package/dist/node_modules/graphlib/lib/alg/floyd-warshall.js.map +1 -0
- package/dist/node_modules/graphlib/lib/alg/index.js +33 -0
- package/dist/node_modules/graphlib/lib/alg/index.js.map +1 -0
- package/dist/node_modules/graphlib/lib/alg/is-acyclic.js +21 -0
- package/dist/node_modules/graphlib/lib/alg/is-acyclic.js.map +1 -0
- package/dist/node_modules/graphlib/lib/alg/postorder.js +15 -0
- package/dist/node_modules/graphlib/lib/alg/postorder.js.map +1 -0
- package/dist/node_modules/graphlib/lib/alg/preorder.js +15 -0
- package/dist/node_modules/graphlib/lib/alg/preorder.js.map +1 -0
- package/dist/node_modules/graphlib/lib/alg/prim.js +35 -0
- package/dist/node_modules/graphlib/lib/alg/prim.js.map +1 -0
- package/dist/node_modules/graphlib/lib/alg/tarjan.js +34 -0
- package/dist/node_modules/graphlib/lib/alg/tarjan.js.map +1 -0
- package/dist/node_modules/graphlib/lib/alg/topsort.js +23 -0
- package/dist/node_modules/graphlib/lib/alg/topsort.js.map +1 -0
- package/dist/node_modules/graphlib/lib/data/priority-queue.js +56 -0
- package/dist/node_modules/graphlib/lib/data/priority-queue.js.map +1 -0
- package/dist/node_modules/graphlib/lib/graph.js +196 -0
- package/dist/node_modules/graphlib/lib/graph.js.map +1 -0
- package/dist/node_modules/graphlib/lib/index.js +15 -0
- package/dist/node_modules/graphlib/lib/index.js.map +1 -0
- package/dist/node_modules/graphlib/lib/json.js +55 -0
- package/dist/node_modules/graphlib/lib/json.js.map +1 -0
- package/dist/node_modules/graphlib/lib/lodash.js +47 -0
- package/dist/node_modules/graphlib/lib/lodash.js.map +1 -0
- package/dist/node_modules/graphlib/lib/version.js +10 -0
- package/dist/node_modules/graphlib/lib/version.js.map +1 -0
- package/dist/node_modules/lodash/_arrayEach.js +14 -0
- package/dist/node_modules/lodash/_arrayEach.js.map +1 -0
- package/dist/node_modules/lodash/_arrayReduce.js +15 -0
- package/dist/node_modules/lodash/_arrayReduce.js.map +1 -0
- package/dist/node_modules/lodash/_asciiSize.js +11 -0
- package/dist/node_modules/lodash/_asciiSize.js.map +1 -0
- package/dist/node_modules/lodash/_assignMergeValue.js +16 -0
- package/dist/node_modules/lodash/_assignMergeValue.js.map +1 -0
- package/dist/node_modules/lodash/_assignValue.js +17 -0
- package/dist/node_modules/lodash/_assignValue.js.map +1 -0
- package/dist/node_modules/lodash/_baseAssign.js +16 -0
- package/dist/node_modules/lodash/_baseAssign.js.map +1 -0
- package/dist/node_modules/lodash/_baseAssignIn.js +16 -0
- package/dist/node_modules/lodash/_baseAssignIn.js.map +1 -0
- package/dist/node_modules/lodash/_baseClone.js +64 -0
- package/dist/node_modules/lodash/_baseClone.js.map +1 -0
- package/dist/node_modules/lodash/_baseCreate.js +21 -0
- package/dist/node_modules/lodash/_baseCreate.js.map +1 -0
- package/dist/node_modules/lodash/_baseFilter.js +18 -0
- package/dist/node_modules/lodash/_baseFilter.js.map +1 -0
- package/dist/node_modules/lodash/_baseHas.js +14 -0
- package/dist/node_modules/lodash/_baseHas.js.map +1 -0
- package/dist/node_modules/lodash/_baseIsMap.js +16 -0
- package/dist/node_modules/lodash/_baseIsMap.js.map +1 -0
- package/dist/node_modules/lodash/_baseIsSet.js +16 -0
- package/dist/node_modules/lodash/_baseIsSet.js.map +1 -0
- package/dist/node_modules/lodash/_baseKeysIn.js +20 -0
- package/dist/node_modules/lodash/_baseKeysIn.js.map +1 -0
- package/dist/node_modules/lodash/_baseMerge.js +27 -0
- package/dist/node_modules/lodash/_baseMerge.js.map +1 -0
- package/dist/node_modules/lodash/_baseMergeDeep.js +39 -0
- package/dist/node_modules/lodash/_baseMergeDeep.js.map +1 -0
- package/dist/node_modules/lodash/_basePick.js +18 -0
- package/dist/node_modules/lodash/_basePick.js.map +1 -0
- package/dist/node_modules/lodash/_basePickBy.js +21 -0
- package/dist/node_modules/lodash/_basePickBy.js.map +1 -0
- package/dist/node_modules/lodash/_baseReduce.js +15 -0
- package/dist/node_modules/lodash/_baseReduce.js.map +1 -0
- package/dist/node_modules/lodash/_baseSet.js +30 -0
- package/dist/node_modules/lodash/_baseSet.js.map +1 -0
- package/dist/node_modules/lodash/_baseValues.js +17 -0
- package/dist/node_modules/lodash/_baseValues.js.map +1 -0
- package/dist/node_modules/lodash/_baseZipObject.js +17 -0
- package/dist/node_modules/lodash/_baseZipObject.js.map +1 -0
- package/dist/node_modules/lodash/_castFunction.js +15 -0
- package/dist/node_modules/lodash/_castFunction.js.map +1 -0
- package/dist/node_modules/lodash/_cloneArrayBuffer.js +16 -0
- package/dist/node_modules/lodash/_cloneArrayBuffer.js.map +1 -0
- package/dist/node_modules/lodash/_cloneBuffer.js +17 -0
- package/dist/node_modules/lodash/_cloneBuffer.js.map +1 -0
- package/dist/node_modules/lodash/_cloneDataView.js +16 -0
- package/dist/node_modules/lodash/_cloneDataView.js.map +1 -0
- package/dist/node_modules/lodash/_cloneRegExp.js +15 -0
- package/dist/node_modules/lodash/_cloneRegExp.js.map +1 -0
- package/dist/node_modules/lodash/_cloneSymbol.js +15 -0
- package/dist/node_modules/lodash/_cloneSymbol.js.map +1 -0
- package/dist/node_modules/lodash/_cloneTypedArray.js +16 -0
- package/dist/node_modules/lodash/_cloneTypedArray.js.map +1 -0
- package/dist/node_modules/lodash/_copyArray.js +15 -0
- package/dist/node_modules/lodash/_copyArray.js.map +1 -0
- package/dist/node_modules/lodash/_copyObject.js +22 -0
- package/dist/node_modules/lodash/_copyObject.js.map +1 -0
- package/dist/node_modules/lodash/_copySymbols.js +16 -0
- package/dist/node_modules/lodash/_copySymbols.js.map +1 -0
- package/dist/node_modules/lodash/_copySymbolsIn.js +16 -0
- package/dist/node_modules/lodash/_copySymbolsIn.js.map +1 -0
- package/dist/node_modules/lodash/_createAssigner.js +23 -0
- package/dist/node_modules/lodash/_createAssigner.js.map +1 -0
- package/dist/node_modules/lodash/_flatRest.js +17 -0
- package/dist/node_modules/lodash/_flatRest.js.map +1 -0
- package/dist/node_modules/lodash/_getAllKeysIn.js +17 -0
- package/dist/node_modules/lodash/_getAllKeysIn.js.map +1 -0
- package/dist/node_modules/lodash/_getSymbolsIn.js +18 -0
- package/dist/node_modules/lodash/_getSymbolsIn.js.map +1 -0
- package/dist/node_modules/lodash/_initCloneArray.js +15 -0
- package/dist/node_modules/lodash/_initCloneArray.js.map +1 -0
- package/dist/node_modules/lodash/_initCloneByTag.js +40 -0
- package/dist/node_modules/lodash/_initCloneByTag.js.map +1 -0
- package/dist/node_modules/lodash/_initCloneObject.js +17 -0
- package/dist/node_modules/lodash/_initCloneObject.js.map +1 -0
- package/dist/node_modules/lodash/_nativeKeysIn.js +15 -0
- package/dist/node_modules/lodash/_nativeKeysIn.js.map +1 -0
- package/dist/node_modules/lodash/_safeGet.js +13 -0
- package/dist/node_modules/lodash/_safeGet.js.map +1 -0
- package/dist/node_modules/lodash/_stringSize.js +17 -0
- package/dist/node_modules/lodash/_stringSize.js.map +1 -0
- package/dist/node_modules/lodash/_unicodeSize.js +25 -0
- package/dist/node_modules/lodash/_unicodeSize.js.map +1 -0
- package/dist/node_modules/lodash/clone.js +15 -0
- package/dist/node_modules/lodash/clone.js.map +1 -0
- package/dist/node_modules/lodash/cloneDeep.js +15 -0
- package/dist/node_modules/lodash/cloneDeep.js.map +1 -0
- package/dist/node_modules/lodash/defaults.js +23 -0
- package/dist/node_modules/lodash/defaults.js.map +1 -0
- package/dist/node_modules/lodash/each.js +11 -0
- package/dist/node_modules/lodash/each.js.map +1 -0
- package/dist/node_modules/lodash/filter.js +18 -0
- package/dist/node_modules/lodash/filter.js.map +1 -0
- package/dist/node_modules/lodash/flatten.js +15 -0
- package/dist/node_modules/lodash/flatten.js.map +1 -0
- package/dist/node_modules/lodash/forEach.js +18 -0
- package/dist/node_modules/lodash/forEach.js.map +1 -0
- package/dist/node_modules/lodash/forIn.js +17 -0
- package/dist/node_modules/lodash/forIn.js.map +1 -0
- package/dist/node_modules/lodash/has.js +16 -0
- package/dist/node_modules/lodash/has.js.map +1 -0
- package/dist/node_modules/lodash/isArrayLikeObject.js +16 -0
- package/dist/node_modules/lodash/isArrayLikeObject.js.map +1 -0
- package/dist/node_modules/lodash/isEmpty.js +28 -0
- package/dist/node_modules/lodash/isEmpty.js.map +1 -0
- package/dist/node_modules/lodash/isMap.js +14 -0
- package/dist/node_modules/lodash/isMap.js.map +1 -0
- package/dist/node_modules/lodash/isSet.js +14 -0
- package/dist/node_modules/lodash/isSet.js.map +1 -0
- package/dist/node_modules/lodash/isUndefined.js +13 -0
- package/dist/node_modules/lodash/isUndefined.js.map +1 -0
- package/dist/node_modules/lodash/keysIn.js +17 -0
- package/dist/node_modules/lodash/keysIn.js.map +1 -0
- package/dist/node_modules/lodash/merge.js +15 -0
- package/dist/node_modules/lodash/merge.js.map +1 -0
- package/dist/node_modules/lodash/pick.js +15 -0
- package/dist/node_modules/lodash/pick.js.map +1 -0
- package/dist/node_modules/lodash/reduce.js +20 -0
- package/dist/node_modules/lodash/reduce.js.map +1 -0
- package/dist/node_modules/lodash/size.js +22 -0
- package/dist/node_modules/lodash/size.js.map +1 -0
- package/dist/node_modules/lodash/toPlainObject.js +16 -0
- package/dist/node_modules/lodash/toPlainObject.js.map +1 -0
- package/dist/node_modules/lodash/transform.js +31 -0
- package/dist/node_modules/lodash/transform.js.map +1 -0
- package/dist/node_modules/lodash/union.js +17 -0
- package/dist/node_modules/lodash/union.js.map +1 -0
- package/dist/node_modules/lodash/uniqueId.js +16 -0
- package/dist/node_modules/lodash/uniqueId.js.map +1 -0
- package/dist/node_modules/lodash/values.js +16 -0
- package/dist/node_modules/lodash/values.js.map +1 -0
- package/dist/node_modules/lodash/zipObject.js +16 -0
- package/dist/node_modules/lodash/zipObject.js.map +1 -0
- package/dist/pages/ActionsPage.js +269 -230
- package/dist/pages/ActionsPage.js.map +1 -1
- package/dist/pages/AgentDetailsPage.js +442 -436
- package/dist/pages/AgentDetailsPage.js.map +1 -1
- package/dist/pages/AgentGraphPage.js +251 -118
- package/dist/pages/AgentGraphPage.js.map +1 -1
- package/dist/pages/VibeDeckPage.js +268 -224
- package/dist/pages/VibeDeckPage.js.map +1 -1
- package/dist/services/agentRemoteTaskGates.js +29 -0
- package/dist/services/agentRemoteTaskGates.js.map +1 -0
- package/package.json +3 -1
- package/dist/components/graph/AgentGraphView.js +0 -237
- package/dist/components/graph/AgentGraphView.js.map +0 -1
- package/dist/components/graph/AgentNode.js +0 -54
- package/dist/components/graph/AgentNode.js.map +0 -1
- package/dist/components/graph/TargetNode.js +0 -76
- package/dist/components/graph/TargetNode.js.map +0 -1
|
@@ -10,58 +10,61 @@ import { ErrorState as me } from "../components/shared/ErrorState.js";
|
|
|
10
10
|
import { EntityTagPicker as he } from "../components/shared/EntityTagPicker.js";
|
|
11
11
|
import { useDraftEntityTags as ge } from "../hooks/useDraftEntityTags.js";
|
|
12
12
|
import { EmptyState as _e } from "../components/shared/EmptyState.js";
|
|
13
|
-
import {
|
|
14
|
-
import {
|
|
15
|
-
import {
|
|
13
|
+
import { EnableRemoteTaskDialog as ve } from "../components/shared/EnableRemoteTaskDialog.js";
|
|
14
|
+
import { LINK_TO_VIBE_DEFAULT as ye, LinkToVibePanel as be, linkToVibeInput as xe } from "../components/shared/LinkToVibePanel.js";
|
|
15
|
+
import { GetHelpButton as Se } from "../components/shared/GetHelpButton.js";
|
|
16
|
+
import { SelectionCheckbox as Ce } from "../components/shared/SelectionCheckbox.js";
|
|
17
|
+
import { useActiveAgentProfile as we } from "../hooks/useActiveAgentProfile.js";
|
|
16
18
|
import "../components/shared/index.js";
|
|
17
|
-
import { isNative as
|
|
19
|
+
import { isNative as Te, nativeNotify as Ee } from "../utils/nativeBridge.js";
|
|
20
|
+
import { enableRemoteTaskExecution as De, isRemoteTaskDeniedError as Oe } from "../services/agentRemoteTaskGates.js";
|
|
18
21
|
import { VIBE_PERMISSIONS as c } from "../constants/permissions.js";
|
|
19
|
-
import { VibeDeckGrid as
|
|
20
|
-
import { VibeDeckSwitcher as
|
|
21
|
-
import { VibeDeckForm as
|
|
22
|
-
import { VibeDeckButtonForm as
|
|
23
|
-
import { VibeDeckShareDialog as
|
|
24
|
-
import { VibeDeckExecutionLog as
|
|
22
|
+
import { VibeDeckGrid as ke } from "../components/vibedeck/VibeDeckGrid.js";
|
|
23
|
+
import { VibeDeckSwitcher as Ae } from "../components/vibedeck/VibeDeckSwitcher.js";
|
|
24
|
+
import { VibeDeckForm as je } from "../components/vibedeck/VibeDeckForm.js";
|
|
25
|
+
import { VibeDeckButtonForm as Me } from "../components/vibedeck/VibeDeckButtonForm.js";
|
|
26
|
+
import { VibeDeckShareDialog as Ne } from "../components/vibedeck/VibeDeckShareDialog.js";
|
|
27
|
+
import { VibeDeckExecutionLog as Pe } from "../components/vibedeck/VibeDeckExecutionLog.js";
|
|
25
28
|
import "../components/vibedeck/index.js";
|
|
26
|
-
import { useCallback as l, useEffect as
|
|
27
|
-
import { useI18n as
|
|
28
|
-
import { Copy as
|
|
29
|
-
import { usePermissions as
|
|
30
|
-
import { AnimatePresence as
|
|
29
|
+
import { useCallback as l, useEffect as Fe, useMemo as Ie, useRef as Le, useState as u } from "react";
|
|
30
|
+
import { useI18n as Re } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
|
|
31
|
+
import { Copy as ze, Eye as Be, Pencil as Ve, Play as He, RefreshCw as Ue, Share2 as We, Star as Ge, Trash2 as Ke } from "lucide-react";
|
|
32
|
+
import { usePermissions as qe } from "@burdenoff/fe-libs/shared/providers/shell";
|
|
33
|
+
import { AnimatePresence as Je } from "framer-motion";
|
|
31
34
|
import { jsx as d, jsxs as f } from "react/jsx-runtime";
|
|
32
|
-
import { useEventBus as
|
|
33
|
-
import { AccessDenied as
|
|
35
|
+
import { useEventBus as Ye } from "@burdenoff/fe-libs/shared/events";
|
|
36
|
+
import { AccessDenied as Xe } from "@burdenoff/fe-libs/shared/components";
|
|
34
37
|
import { MotionPage as p } from "@burdenoff/fe-libs/shared/motion";
|
|
35
38
|
//#region src/pages/VibeDeckPage.tsx
|
|
36
|
-
function
|
|
37
|
-
let
|
|
39
|
+
function Ze() {
|
|
40
|
+
let Ze = de(), { workspaceId: m } = ue(), h = Ye(), { hasPermission: g, isLoading: Qe, permissions: _ } = qe(), v = ((e) => (t, n) => {
|
|
38
41
|
let r = e.t(t);
|
|
39
42
|
return r === t ? n : r;
|
|
40
|
-
})(
|
|
41
|
-
|
|
43
|
+
})(Re()), y = (Array.isArray(_) ? _ : _?.permissionStrings)?.some?.((e) => e.startsWith("vibedeck:")), $e = y ? g(c.VIBEDECK_LIST) : !0, et = y ? g(c.VIBEDECK_CREATE) : !0, tt = y ? g(c.VIBEDECK_UPDATE) : !0, nt = y ? g(c.VIBEDECK_DELETE) : !0, rt = y ? g(c.VIBEDECK_EXECUTE) : !0, it = Qe, { activeVibeDeckId: b, setActiveVibeDeckId: x, vibeDeckMode: at, setVibeDeckMode: ot } = fe(), S = at === "preview", st = S ? !1 : et, ct = S ? !1 : tt, lt = S ? !1 : nt, [C, w] = u({ type: "none" }), [ut, dt] = u(null), [T, ft] = u(/* @__PURE__ */ new Set()), [E, D] = u(/* @__PURE__ */ new Set()), [pt, mt] = u(null), [ht, O] = u(null), [k, A] = u(null), [gt, _t] = u([]), j = Le(/* @__PURE__ */ new Map()), [vt, yt] = u(ye), [bt, xt] = u([]), [St, Ct] = u(!0), [wt, Tt] = u(/* @__PURE__ */ new Map()), [Et, Dt] = u(null), [M, Ot] = u(null), [kt, At] = u(!1), { profiles: jt } = we(M?.agentId ?? null), Mt = jt.find((e) => e.isDefault)?.name ?? "default", N = Le(/* @__PURE__ */ new Map());
|
|
44
|
+
Fe(() => {
|
|
42
45
|
let e = N.current;
|
|
43
46
|
return () => {
|
|
44
47
|
for (let t of e.values()) clearTimeout(t);
|
|
45
48
|
};
|
|
46
49
|
}, []);
|
|
47
|
-
let
|
|
50
|
+
let Nt = l((e) => {
|
|
48
51
|
let t = `${Date.now()}-${Math.random().toString(36).slice(2, 8)}`, n = {
|
|
49
52
|
...e,
|
|
50
53
|
id: t
|
|
51
54
|
};
|
|
52
|
-
return
|
|
55
|
+
return xt((e) => [...e.slice(-49), n]), t;
|
|
53
56
|
}, []), P = l((e, t) => {
|
|
54
|
-
|
|
57
|
+
xt((n) => n.map((n) => n.id === e ? {
|
|
55
58
|
...n,
|
|
56
59
|
...t
|
|
57
60
|
} : n));
|
|
58
61
|
}, []), F = l((e, t) => {
|
|
59
|
-
if (
|
|
62
|
+
if (Tt((n) => {
|
|
60
63
|
let r = new Map(n);
|
|
61
64
|
return r.set(e, t), r;
|
|
62
65
|
}), t === "success" || t === "error") {
|
|
63
66
|
let n = setTimeout(() => {
|
|
64
|
-
|
|
67
|
+
Tt((n) => {
|
|
65
68
|
let r = new Map(n);
|
|
66
69
|
return r.get(e) === t && r.delete(e), r;
|
|
67
70
|
}), N.current.delete(e);
|
|
@@ -69,65 +72,65 @@ function qe() {
|
|
|
69
72
|
r && clearTimeout(r), N.current.set(e, n);
|
|
70
73
|
}
|
|
71
74
|
}, []);
|
|
72
|
-
|
|
73
|
-
let e =
|
|
75
|
+
Fe(() => {
|
|
76
|
+
let e = j.current;
|
|
74
77
|
return () => {
|
|
75
78
|
for (let t of e.values()) clearTimeout(t);
|
|
76
79
|
};
|
|
77
80
|
}, []);
|
|
78
81
|
let I = l((e, t, n, r) => {
|
|
79
82
|
let i = Date.now() + Math.random();
|
|
80
|
-
|
|
83
|
+
_t((r) => [...r, {
|
|
81
84
|
message: e,
|
|
82
85
|
variant: t,
|
|
83
86
|
detail: n,
|
|
84
87
|
id: i
|
|
85
88
|
}]);
|
|
86
89
|
let ee = setTimeout(() => {
|
|
87
|
-
|
|
90
|
+
_t((e) => e.filter((e) => e.id !== i)), j.current.delete(i);
|
|
88
91
|
}, r ?? (t === "success" ? 1e4 : 3e4));
|
|
89
|
-
|
|
90
|
-
}, []),
|
|
91
|
-
|
|
92
|
-
let t =
|
|
93
|
-
t && (clearTimeout(t),
|
|
92
|
+
j.current.set(i, ee);
|
|
93
|
+
}, []), Pt = l((e) => {
|
|
94
|
+
_t((t) => t.filter((t) => t.id !== e));
|
|
95
|
+
let t = j.current.get(e);
|
|
96
|
+
t && (clearTimeout(t), j.current.delete(e));
|
|
94
97
|
}, []), L = l((e, t) => {
|
|
95
|
-
le(),
|
|
98
|
+
le(), Dt({
|
|
96
99
|
title: e,
|
|
97
100
|
message: t
|
|
98
101
|
});
|
|
99
|
-
}, []), { data:
|
|
102
|
+
}, []), { data: Ft, loading: It, error: Lt, refetch: R } = re({
|
|
100
103
|
variables: { pagination: { limit: 50 } },
|
|
101
|
-
skip:
|
|
102
|
-
}), z =
|
|
104
|
+
skip: it
|
|
105
|
+
}), z = Ie(() => Ft?.vibeDecks?.items || [], [Ft]), B = b || z.find((e) => e.isDefault)?.id || z[0]?.id || null, { data: Rt, loading: zt, refetch: Bt } = te({
|
|
103
106
|
variables: { id: B },
|
|
104
|
-
skip: !B ||
|
|
105
|
-
}), V =
|
|
107
|
+
skip: !B || it
|
|
108
|
+
}), V = Rt?.vibeDeck, H = Ie(() => z.filter((e) => T.has(e.id)), [z, T]), U = Ie(() => V?.buttons?.filter((e) => E.has(e.id)) ?? [], [V?.buttons, E]), Vt = z.length > 0 && z.every((e) => T.has(e.id)), Ht = z.some((e) => T.has(e.id)) && !Vt, Ut = (V?.buttons?.length ?? 0) > 0 && (V?.buttons ?? []).every((e) => E.has(e.id)), Wt = (V?.buttons ?? []).some((e) => E.has(e.id)) && !Ut, { data: Gt } = ne({
|
|
106
109
|
variables: { pagination: { limit: 100 } },
|
|
107
110
|
fetchPolicy: "cache-and-network",
|
|
108
|
-
skip:
|
|
109
|
-
}),
|
|
111
|
+
skip: it
|
|
112
|
+
}), Kt = (Gt?.vibecontrolsAgents ?? []).map((e) => ({
|
|
110
113
|
id: e.id,
|
|
111
114
|
name: e.name,
|
|
112
115
|
isActive: e.isActive
|
|
113
|
-
})), [
|
|
114
|
-
|
|
116
|
+
})), [qt, { loading: Jt }] = t({ refetchQueries: ["ListVibeDecks"] }), { setDraftTagIds: Yt, flushTags: Xt } = ge("VIBECONTROLS_VIBEDECK"), [Zt, { loading: Qt }] = se({ refetchQueries: ["ListVibeDecks", "GetVibeDeck"] }), [W] = r({ refetchQueries: ["ListVibeDecks"] }), [G] = ae({ refetchQueries: ["ListVibeDecks", "GetVibeDeck"] }), [K] = i({ refetchQueries: ["ListVibeDecks"] }), [$t, { loading: en }] = e({ refetchQueries: ["GetVibeDeck"] }), [tn, { loading: nn }] = oe({ refetchQueries: ["GetVibeDeck"] }), [q] = n({ refetchQueries: ["GetVibeDeck"] }), [rn] = ie({ refetchQueries: ["GetVibeDeck"] }), [J] = ee();
|
|
117
|
+
Fe(() => {
|
|
115
118
|
D(/* @__PURE__ */ new Set());
|
|
116
119
|
}, [B]);
|
|
117
|
-
let
|
|
118
|
-
|
|
120
|
+
let an = l((e, t) => {
|
|
121
|
+
ft((n) => {
|
|
119
122
|
let r = new Set(n);
|
|
120
123
|
return t ? r.add(e) : r.delete(e), r;
|
|
121
124
|
});
|
|
122
|
-
}, []),
|
|
123
|
-
|
|
125
|
+
}, []), on = l((e) => {
|
|
126
|
+
ft((t) => {
|
|
124
127
|
let n = new Set(t);
|
|
125
128
|
return z.forEach((t) => {
|
|
126
129
|
e ? n.add(t.id) : n.delete(t.id);
|
|
127
130
|
}), n;
|
|
128
131
|
});
|
|
129
132
|
}, [z]), Y = l(() => {
|
|
130
|
-
|
|
133
|
+
ft(/* @__PURE__ */ new Set());
|
|
131
134
|
}, []);
|
|
132
135
|
l((e, t) => {
|
|
133
136
|
D((n) => {
|
|
@@ -135,7 +138,7 @@ function qe() {
|
|
|
135
138
|
return t ? r.add(e) : r.delete(e), r;
|
|
136
139
|
});
|
|
137
140
|
}, []);
|
|
138
|
-
let
|
|
141
|
+
let sn = l((e) => {
|
|
139
142
|
D((t) => {
|
|
140
143
|
let n = new Set(t);
|
|
141
144
|
return (V?.buttons ?? []).forEach((t) => {
|
|
@@ -144,17 +147,17 @@ function qe() {
|
|
|
144
147
|
});
|
|
145
148
|
}, [V?.buttons]), X = l(() => {
|
|
146
149
|
D(/* @__PURE__ */ new Set());
|
|
147
|
-
}, []),
|
|
150
|
+
}, []), cn = l(async (e) => {
|
|
148
151
|
try {
|
|
149
|
-
let t = (await
|
|
152
|
+
let t = (await qt({ variables: { input: {
|
|
150
153
|
name: e.name,
|
|
151
154
|
description: e.description || null,
|
|
152
155
|
colorTheme: e.colorTheme || null,
|
|
153
156
|
gridColumns: e.gridColumns,
|
|
154
157
|
gridRows: e.gridRows,
|
|
155
|
-
...
|
|
158
|
+
...xe(vt)
|
|
156
159
|
} } })).data?.createVibeDeck?.id;
|
|
157
|
-
w({ type: "none" }), I("Deck created", "success"),
|
|
160
|
+
w({ type: "none" }), I("Deck created", "success"), yt(ye), t && await Xt(t);
|
|
158
161
|
} catch (e) {
|
|
159
162
|
if (o(e)) {
|
|
160
163
|
w({ type: "none" }), L("Vibe Deck Quota Reached", "You have reached the Vibe Deck limit for your current plan. Upgrade to create more decks.");
|
|
@@ -163,14 +166,14 @@ function qe() {
|
|
|
163
166
|
I(e instanceof Error ? e.message : "Failed to create deck", "error");
|
|
164
167
|
}
|
|
165
168
|
}, [
|
|
166
|
-
|
|
167
|
-
|
|
169
|
+
qt,
|
|
170
|
+
Xt,
|
|
168
171
|
L,
|
|
169
172
|
I,
|
|
170
|
-
|
|
171
|
-
]),
|
|
173
|
+
vt
|
|
174
|
+
]), ln = l(async (e) => {
|
|
172
175
|
if (C.type === "editDeck") try {
|
|
173
|
-
await
|
|
176
|
+
await Zt({ variables: {
|
|
174
177
|
id: C.deckId,
|
|
175
178
|
input: {
|
|
176
179
|
name: e.name,
|
|
@@ -184,14 +187,14 @@ function qe() {
|
|
|
184
187
|
I(e instanceof Error ? e.message : "Failed to update deck", "error");
|
|
185
188
|
}
|
|
186
189
|
}, [
|
|
187
|
-
|
|
190
|
+
Zt,
|
|
188
191
|
C,
|
|
189
192
|
I
|
|
190
|
-
]),
|
|
193
|
+
]), un = l(async () => {
|
|
191
194
|
if (C.type === "confirmDelete") try {
|
|
192
|
-
C.target === "deck" ? (await W({ variables: { id: C.id } }), b === C.id && x(null), I("Deck deleted", "success")) : (await q({ variables: { id: C.id } }), I("Button deleted", "success")), w({ type: "none" }),
|
|
195
|
+
C.target === "deck" ? (await W({ variables: { id: C.id } }), b === C.id && x(null), I("Deck deleted", "success")) : (await q({ variables: { id: C.id } }), I("Button deleted", "success")), w({ type: "none" }), Te() && Ee("success");
|
|
193
196
|
} catch (e) {
|
|
194
|
-
I(e instanceof Error ? e.message : "Failed to delete", "error"),
|
|
197
|
+
I(e instanceof Error ? e.message : "Failed to delete", "error"), Te() && Ee("error");
|
|
195
198
|
}
|
|
196
199
|
}, [
|
|
197
200
|
C,
|
|
@@ -200,29 +203,41 @@ function qe() {
|
|
|
200
203
|
b,
|
|
201
204
|
x,
|
|
202
205
|
I
|
|
203
|
-
]), Z = l(async (e) => {
|
|
204
|
-
let
|
|
205
|
-
if (!
|
|
206
|
-
let
|
|
206
|
+
]), Z = l(async (e, t = !0) => {
|
|
207
|
+
let n = V?.buttons?.find((t) => t.id === e);
|
|
208
|
+
if (!n || !n.action) return;
|
|
209
|
+
let r = n.action, i = Nt({
|
|
207
210
|
buttonId: e,
|
|
208
|
-
buttonLabel:
|
|
209
|
-
actionType:
|
|
210
|
-
command:
|
|
211
|
+
buttonLabel: n.label,
|
|
212
|
+
actionType: r.actionType,
|
|
213
|
+
command: r.actionType === "WEBHOOK" ? `POST ${r.webhookUrl || ""}` : r.command || void 0,
|
|
211
214
|
status: "running",
|
|
212
215
|
startedAt: /* @__PURE__ */ new Date()
|
|
213
216
|
});
|
|
214
|
-
|
|
217
|
+
dt(e), F(e, "executing");
|
|
215
218
|
try {
|
|
216
|
-
let
|
|
217
|
-
if (
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
output:
|
|
222
|
-
exitCode: t.exitCode,
|
|
223
|
-
webhookStatusCode: t.webhookStatusCode,
|
|
219
|
+
let n = (await J({ variables: { id: e } })).data?.executeVibeDeckButton;
|
|
220
|
+
if (n && Oe(n) && n.agentId) {
|
|
221
|
+
F(e, "error"), P(i, {
|
|
222
|
+
status: "error",
|
|
223
|
+
error: t ? "Remote task execution is disabled on this agent." : "Remote execution still blocked after enabling — check the agent’s Security settings.",
|
|
224
|
+
output: n.output,
|
|
224
225
|
completedAt: /* @__PURE__ */ new Date()
|
|
225
|
-
}),
|
|
226
|
+
}), t && Ot({
|
|
227
|
+
buttonId: e,
|
|
228
|
+
agentId: n.agentId
|
|
229
|
+
});
|
|
230
|
+
return;
|
|
231
|
+
}
|
|
232
|
+
if (n) {
|
|
233
|
+
let t = n.status === "success";
|
|
234
|
+
F(e, t ? "success" : "error"), P(i, {
|
|
235
|
+
status: t ? "success" : "error",
|
|
236
|
+
output: n.output,
|
|
237
|
+
exitCode: n.exitCode,
|
|
238
|
+
webhookStatusCode: n.webhookStatusCode,
|
|
239
|
+
completedAt: /* @__PURE__ */ new Date()
|
|
240
|
+
}), t && h.emitCustom("vibecontrols.vibedeck.button_executed", {
|
|
226
241
|
workspaceId: m ?? void 0,
|
|
227
242
|
buttonId: e,
|
|
228
243
|
deckId: B ?? void 0
|
|
@@ -230,7 +245,7 @@ function qe() {
|
|
|
230
245
|
}
|
|
231
246
|
} catch (t) {
|
|
232
247
|
if (o(t)) {
|
|
233
|
-
F(e, "error"), P(
|
|
248
|
+
F(e, "error"), P(i, {
|
|
234
249
|
status: "error",
|
|
235
250
|
error: "Usage quota exhausted",
|
|
236
251
|
completedAt: /* @__PURE__ */ new Date()
|
|
@@ -238,25 +253,47 @@ function qe() {
|
|
|
238
253
|
return;
|
|
239
254
|
}
|
|
240
255
|
let n = t instanceof Error ? t.message : "Execution failed";
|
|
241
|
-
F(e, "error"), P(
|
|
256
|
+
F(e, "error"), P(i, {
|
|
242
257
|
status: "error",
|
|
243
258
|
error: n,
|
|
244
259
|
completedAt: /* @__PURE__ */ new Date()
|
|
245
260
|
});
|
|
246
261
|
} finally {
|
|
247
|
-
|
|
262
|
+
dt(null);
|
|
248
263
|
}
|
|
249
264
|
}, [
|
|
250
265
|
V,
|
|
251
266
|
J,
|
|
252
|
-
|
|
267
|
+
Nt,
|
|
253
268
|
P,
|
|
254
269
|
F,
|
|
255
270
|
L,
|
|
256
271
|
h,
|
|
257
272
|
m,
|
|
258
273
|
B
|
|
259
|
-
]),
|
|
274
|
+
]), dn = l(async ({ shell: e, file: t }) => {
|
|
275
|
+
if (!M) return;
|
|
276
|
+
let { buttonId: n, agentId: r } = M;
|
|
277
|
+
At(!0);
|
|
278
|
+
try {
|
|
279
|
+
await De({
|
|
280
|
+
id: r,
|
|
281
|
+
profile: Mt
|
|
282
|
+
}, {
|
|
283
|
+
shell: e,
|
|
284
|
+
file: t
|
|
285
|
+
}), Ot(null), await Z(n, !1);
|
|
286
|
+
} catch (e) {
|
|
287
|
+
I(e instanceof Error ? e.message : "Failed to enable remote execution", "error");
|
|
288
|
+
} finally {
|
|
289
|
+
At(!1);
|
|
290
|
+
}
|
|
291
|
+
}, [
|
|
292
|
+
M,
|
|
293
|
+
Mt,
|
|
294
|
+
Z,
|
|
295
|
+
I
|
|
296
|
+
]), fn = l(async (e) => {
|
|
260
297
|
let t = V?.buttons?.find((t) => t.id === e);
|
|
261
298
|
if (t) {
|
|
262
299
|
if (h.emitCustom("vibecontrols.vibedeck.button_executed_clicked", {
|
|
@@ -281,13 +318,13 @@ function qe() {
|
|
|
281
318
|
h,
|
|
282
319
|
m,
|
|
283
320
|
B
|
|
284
|
-
]),
|
|
321
|
+
]), pn = l(async () => {
|
|
285
322
|
if (C.type !== "confirmExecute") return;
|
|
286
323
|
let e = C.buttonId;
|
|
287
324
|
w({ type: "none" }), await Z(e);
|
|
288
|
-
}, [C, Z]),
|
|
325
|
+
}, [C, Z]), mn = l(async (e) => {
|
|
289
326
|
if (!(C.type !== "createButton" || !B)) try {
|
|
290
|
-
await
|
|
327
|
+
await $t({ variables: { input: {
|
|
291
328
|
vibeDeckId: B,
|
|
292
329
|
label: e.label,
|
|
293
330
|
actionId: e.actionId,
|
|
@@ -305,12 +342,12 @@ function qe() {
|
|
|
305
342
|
}
|
|
306
343
|
}, [
|
|
307
344
|
C,
|
|
308
|
-
|
|
345
|
+
$t,
|
|
309
346
|
B,
|
|
310
347
|
I
|
|
311
|
-
]),
|
|
348
|
+
]), hn = l(async (e) => {
|
|
312
349
|
if (C.type === "editButton") try {
|
|
313
|
-
await
|
|
350
|
+
await tn({ variables: {
|
|
314
351
|
id: C.buttonId,
|
|
315
352
|
input: {
|
|
316
353
|
label: e.label,
|
|
@@ -328,11 +365,11 @@ function qe() {
|
|
|
328
365
|
}
|
|
329
366
|
}, [
|
|
330
367
|
C,
|
|
331
|
-
|
|
368
|
+
tn,
|
|
332
369
|
I
|
|
333
|
-
]),
|
|
370
|
+
]), gn = l(async (e, t, n) => {
|
|
334
371
|
try {
|
|
335
|
-
await
|
|
372
|
+
await rn({ variables: {
|
|
336
373
|
id: e,
|
|
337
374
|
input: {
|
|
338
375
|
row: t,
|
|
@@ -342,7 +379,7 @@ function qe() {
|
|
|
342
379
|
} catch (e) {
|
|
343
380
|
I(e instanceof Error ? e.message : "Failed to move button", "error");
|
|
344
381
|
}
|
|
345
|
-
}, [
|
|
382
|
+
}, [rn, I]), _n = l(async (e) => {
|
|
346
383
|
let t = z.find((t) => t.id === e);
|
|
347
384
|
if (t) try {
|
|
348
385
|
await K({ variables: {
|
|
@@ -361,21 +398,21 @@ function qe() {
|
|
|
361
398
|
K,
|
|
362
399
|
L,
|
|
363
400
|
I
|
|
364
|
-
]),
|
|
401
|
+
]), vn = l(async (e) => {
|
|
365
402
|
try {
|
|
366
403
|
await G({ variables: { id: e } }), I("Default deck set", "success");
|
|
367
404
|
} catch (e) {
|
|
368
405
|
I(e instanceof Error ? e.message : "Failed to set default", "error");
|
|
369
406
|
}
|
|
370
|
-
}, [G, I]),
|
|
407
|
+
}, [G, I]), yn = l(async () => {
|
|
371
408
|
if (H.length === 1) {
|
|
372
|
-
|
|
409
|
+
A("setDefaultDeck");
|
|
373
410
|
try {
|
|
374
411
|
await G({ variables: { id: H[0].id } }), I("Default deck set", "success"), Y(), await R();
|
|
375
412
|
} catch (e) {
|
|
376
413
|
I(e instanceof Error ? e.message : "Failed to set default deck", "error");
|
|
377
414
|
} finally {
|
|
378
|
-
|
|
415
|
+
A(null);
|
|
379
416
|
}
|
|
380
417
|
}
|
|
381
418
|
}, [
|
|
@@ -384,9 +421,9 @@ function qe() {
|
|
|
384
421
|
I,
|
|
385
422
|
Y,
|
|
386
423
|
R
|
|
387
|
-
]),
|
|
424
|
+
]), bn = l(async () => {
|
|
388
425
|
if (H.length !== 0) {
|
|
389
|
-
|
|
426
|
+
A("duplicateDeck");
|
|
390
427
|
try {
|
|
391
428
|
let e = await Promise.allSettled(H.map((e) => K({ variables: {
|
|
392
429
|
id: e.id,
|
|
@@ -405,7 +442,7 @@ function qe() {
|
|
|
405
442
|
}
|
|
406
443
|
I(e instanceof Error ? e.message : "Failed to duplicate decks", "error");
|
|
407
444
|
} finally {
|
|
408
|
-
|
|
445
|
+
A(null);
|
|
409
446
|
}
|
|
410
447
|
}
|
|
411
448
|
}, [
|
|
@@ -415,16 +452,16 @@ function qe() {
|
|
|
415
452
|
I,
|
|
416
453
|
Y,
|
|
417
454
|
R
|
|
418
|
-
]),
|
|
455
|
+
]), xn = l(async () => {
|
|
419
456
|
if (H.length !== 0) {
|
|
420
|
-
|
|
457
|
+
A("deleteDeck");
|
|
421
458
|
try {
|
|
422
459
|
let e = await Promise.allSettled(H.map((e) => W({ variables: { id: e.id } }))), t = e.filter((e) => e.status === "fulfilled").length, n = e.length - t;
|
|
423
|
-
H.some((e) => e.id === b) && x(null), I(`Deleted ${t} deck${t === 1 ? "" : "s"}${n > 0 ? ` • ${n} failed` : ""}`, n > 0 ? "error" : "success"), Y(),
|
|
460
|
+
H.some((e) => e.id === b) && x(null), I(`Deleted ${t} deck${t === 1 ? "" : "s"}${n > 0 ? ` • ${n} failed` : ""}`, n > 0 ? "error" : "success"), Y(), mt(null), await R();
|
|
424
461
|
} catch (e) {
|
|
425
462
|
I(e instanceof Error ? e.message : "Failed to delete decks", "error");
|
|
426
463
|
} finally {
|
|
427
|
-
|
|
464
|
+
A(null);
|
|
428
465
|
}
|
|
429
466
|
}
|
|
430
467
|
}, [
|
|
@@ -435,25 +472,25 @@ function qe() {
|
|
|
435
472
|
I,
|
|
436
473
|
Y,
|
|
437
474
|
R
|
|
438
|
-
]),
|
|
475
|
+
]), Sn = l(async () => {
|
|
439
476
|
if (U.length === 0) return;
|
|
440
|
-
|
|
477
|
+
A("executeButton");
|
|
441
478
|
let e = 0, t = 0;
|
|
442
479
|
try {
|
|
443
480
|
for (let n of U) try {
|
|
444
481
|
(await J({ variables: { id: n.id } })).data?.executeVibeDeckButton?.status === "success" ? e += 1 : t += 1;
|
|
445
482
|
} catch (e) {
|
|
446
483
|
if (o(e)) {
|
|
447
|
-
|
|
484
|
+
O(null), L("Execution Quota Reached", "You have used the execution quota for your current plan. Upgrade to continue running Vibe Deck actions.");
|
|
448
485
|
return;
|
|
449
486
|
}
|
|
450
487
|
t += 1;
|
|
451
488
|
}
|
|
452
|
-
I(`Executed ${e} button${e === 1 ? "" : "s"}${t > 0 ? ` • ${t} failed` : ""}`, t > 0 ? "error" : "success"), X(),
|
|
489
|
+
I(`Executed ${e} button${e === 1 ? "" : "s"}${t > 0 ? ` • ${t} failed` : ""}`, t > 0 ? "error" : "success"), X(), O(null);
|
|
453
490
|
} catch (e) {
|
|
454
491
|
I(e instanceof Error ? e.message : "Failed to execute buttons", "error");
|
|
455
492
|
} finally {
|
|
456
|
-
|
|
493
|
+
A(null);
|
|
457
494
|
}
|
|
458
495
|
}, [
|
|
459
496
|
U,
|
|
@@ -461,16 +498,16 @@ function qe() {
|
|
|
461
498
|
L,
|
|
462
499
|
I,
|
|
463
500
|
X
|
|
464
|
-
]),
|
|
501
|
+
]), Cn = l(async () => {
|
|
465
502
|
if (U.length !== 0) {
|
|
466
|
-
|
|
503
|
+
A("deleteButton");
|
|
467
504
|
try {
|
|
468
505
|
let e = await Promise.allSettled(U.map((e) => q({ variables: { id: e.id } }))), t = e.filter((e) => e.status === "fulfilled").length, n = e.length - t;
|
|
469
|
-
I(`Deleted ${t} button${t === 1 ? "" : "s"}${n > 0 ? ` • ${n} failed` : ""}`, n > 0 ? "error" : "success"), X(),
|
|
506
|
+
I(`Deleted ${t} button${t === 1 ? "" : "s"}${n > 0 ? ` • ${n} failed` : ""}`, n > 0 ? "error" : "success"), X(), O(null), await Bt();
|
|
470
507
|
} catch (e) {
|
|
471
508
|
I(e instanceof Error ? e.message : "Failed to delete buttons", "error");
|
|
472
509
|
} finally {
|
|
473
|
-
|
|
510
|
+
A(null);
|
|
474
511
|
}
|
|
475
512
|
}
|
|
476
513
|
}, [
|
|
@@ -478,13 +515,13 @@ function qe() {
|
|
|
478
515
|
q,
|
|
479
516
|
I,
|
|
480
517
|
X,
|
|
481
|
-
|
|
518
|
+
Bt
|
|
482
519
|
]);
|
|
483
|
-
if (
|
|
484
|
-
if (_ && (_.permissionStrings?.length ?? 0) > 0 &&
|
|
485
|
-
if (
|
|
486
|
-
if (
|
|
487
|
-
message:
|
|
520
|
+
if (Qe) return /* @__PURE__ */ d(p, { children: /* @__PURE__ */ d(s, { message: "Loading permissions..." }) });
|
|
521
|
+
if (_ && (_.permissionStrings?.length ?? 0) > 0 && !$e) return /* @__PURE__ */ d(p, { children: /* @__PURE__ */ d(Xe, {}) });
|
|
522
|
+
if (It) return /* @__PURE__ */ d(p, { children: /* @__PURE__ */ d(s, { message: "Loading Vibe Decks..." }) });
|
|
523
|
+
if (Lt) return /* @__PURE__ */ d(p, { children: /* @__PURE__ */ d(me, {
|
|
524
|
+
message: Lt.message,
|
|
488
525
|
onRetry: () => R()
|
|
489
526
|
}) });
|
|
490
527
|
let Q = C.type === "editButton" ? V?.buttons?.find((e) => e.id === C.buttonId) : null, $ = C.type === "editDeck" ? z.find((e) => e.id === C.deckId) : null;
|
|
@@ -502,18 +539,18 @@ function qe() {
|
|
|
502
539
|
className: "flex items-center rounded-lg border border-border-default bg-bg-secondary p-0.5",
|
|
503
540
|
children: [/* @__PURE__ */ f("button", {
|
|
504
541
|
type: "button",
|
|
505
|
-
onClick: () =>
|
|
542
|
+
onClick: () => ot("preview"),
|
|
506
543
|
className: `flex items-center gap-1.5 px-3 py-1.5 rounded-md text-sm font-medium transition-all ${S ? "bg-action-primary-bg text-action-primary-text shadow-sm" : "text-text-tertiary hover:text-text-primary"}`,
|
|
507
544
|
title: S ? "Preview mode — execute only" : "Switch to Preview mode",
|
|
508
545
|
"aria-pressed": S,
|
|
509
|
-
children: [/* @__PURE__ */ d(
|
|
546
|
+
children: [/* @__PURE__ */ d(Be, { size: 14 }), "Preview"]
|
|
510
547
|
}), /* @__PURE__ */ f("button", {
|
|
511
548
|
type: "button",
|
|
512
|
-
onClick: () =>
|
|
549
|
+
onClick: () => ot("edit"),
|
|
513
550
|
className: `flex items-center gap-1.5 px-3 py-1.5 rounded-md text-sm font-medium transition-all ${S ? "text-text-tertiary hover:text-text-primary" : "bg-action-primary-bg text-action-primary-text shadow-sm"}`,
|
|
514
551
|
title: S ? "Switch to Edit mode" : "Edit mode — full editing",
|
|
515
552
|
"aria-pressed": !S,
|
|
516
|
-
children: [/* @__PURE__ */ d(
|
|
553
|
+
children: [/* @__PURE__ */ d(Ve, { size: 14 }), "Edit"]
|
|
517
554
|
})]
|
|
518
555
|
}),
|
|
519
556
|
B && V && /* @__PURE__ */ d("button", {
|
|
@@ -525,16 +562,16 @@ function qe() {
|
|
|
525
562
|
}),
|
|
526
563
|
className: "p-2 rounded-lg hover:bg-bg-tertiary text-text-tertiary hover:text-text-primary transition-colors",
|
|
527
564
|
title: "Share deck",
|
|
528
|
-
children: /* @__PURE__ */ d(
|
|
565
|
+
children: /* @__PURE__ */ d(We, { size: 16 })
|
|
529
566
|
}),
|
|
530
567
|
/* @__PURE__ */ d("button", {
|
|
531
568
|
type: "button",
|
|
532
569
|
onClick: () => {
|
|
533
|
-
R(), B &&
|
|
570
|
+
R(), B && Bt();
|
|
534
571
|
},
|
|
535
572
|
className: "p-2 rounded-lg hover:bg-bg-tertiary text-text-tertiary hover:text-text-primary transition-colors",
|
|
536
573
|
title: "Refresh",
|
|
537
|
-
children: /* @__PURE__ */ d(
|
|
574
|
+
children: /* @__PURE__ */ d(Ue, { size: 16 })
|
|
538
575
|
})
|
|
539
576
|
]
|
|
540
577
|
})
|
|
@@ -547,10 +584,10 @@ function qe() {
|
|
|
547
584
|
className: "flex flex-wrap items-center gap-3",
|
|
548
585
|
children: [/* @__PURE__ */ f("div", {
|
|
549
586
|
className: "flex items-center gap-2",
|
|
550
|
-
children: [/* @__PURE__ */ d(
|
|
551
|
-
checked:
|
|
552
|
-
indeterminate:
|
|
553
|
-
onChange:
|
|
587
|
+
children: [/* @__PURE__ */ d(Ce, {
|
|
588
|
+
checked: Vt,
|
|
589
|
+
indeterminate: Ht,
|
|
590
|
+
onChange: on,
|
|
554
591
|
ariaLabel: "Select all vibe decks"
|
|
555
592
|
}), /* @__PURE__ */ d("span", {
|
|
556
593
|
className: "text-sm font-medium text-text-primary",
|
|
@@ -571,23 +608,23 @@ function qe() {
|
|
|
571
608
|
}),
|
|
572
609
|
/* @__PURE__ */ d("button", {
|
|
573
610
|
type: "button",
|
|
574
|
-
onClick:
|
|
575
|
-
disabled: H.length !== 1 || H[0]?.isDefault ||
|
|
611
|
+
onClick: yn,
|
|
612
|
+
disabled: H.length !== 1 || H[0]?.isDefault || k !== null,
|
|
576
613
|
className: "rounded-md border border-status-warning-border px-3 py-2 text-sm font-medium text-status-warning-text hover:bg-status-warning-bg-subtle disabled:cursor-not-allowed disabled:opacity-50",
|
|
577
614
|
children: /* @__PURE__ */ f("span", {
|
|
578
615
|
className: "inline-flex items-center gap-2",
|
|
579
|
-
children: [/* @__PURE__ */ d(
|
|
616
|
+
children: [/* @__PURE__ */ d(Ge, { size: 14 }), "Set Selected Default"]
|
|
580
617
|
})
|
|
581
618
|
}),
|
|
582
619
|
/* @__PURE__ */ d("button", {
|
|
583
620
|
type: "button",
|
|
584
|
-
onClick:
|
|
585
|
-
disabled: H.length === 0 ||
|
|
621
|
+
onClick: bn,
|
|
622
|
+
disabled: H.length === 0 || k !== null,
|
|
586
623
|
className: "rounded-md border border-border-default px-3 py-2 text-sm font-medium text-text-primary hover:bg-bg-sunken disabled:cursor-not-allowed disabled:opacity-50",
|
|
587
624
|
children: /* @__PURE__ */ f("span", {
|
|
588
625
|
className: "inline-flex items-center gap-2",
|
|
589
626
|
children: [
|
|
590
|
-
/* @__PURE__ */ d(
|
|
627
|
+
/* @__PURE__ */ d(ze, { size: 14 }),
|
|
591
628
|
"Duplicate Selected",
|
|
592
629
|
H.length > 0 ? ` (${H.length})` : ""
|
|
593
630
|
]
|
|
@@ -595,13 +632,13 @@ function qe() {
|
|
|
595
632
|
}),
|
|
596
633
|
/* @__PURE__ */ d("button", {
|
|
597
634
|
type: "button",
|
|
598
|
-
onClick: () =>
|
|
599
|
-
disabled: H.length === 0 ||
|
|
635
|
+
onClick: () => mt("delete"),
|
|
636
|
+
disabled: H.length === 0 || k !== null,
|
|
600
637
|
className: "rounded-md border border-status-error-border px-3 py-2 text-sm font-medium text-status-error-text hover:bg-status-error-bg disabled:cursor-not-allowed disabled:opacity-50",
|
|
601
638
|
children: /* @__PURE__ */ f("span", {
|
|
602
639
|
className: "inline-flex items-center gap-2",
|
|
603
640
|
children: [
|
|
604
|
-
/* @__PURE__ */ d(
|
|
641
|
+
/* @__PURE__ */ d(Ke, { size: 14 }),
|
|
605
642
|
"Delete Selected",
|
|
606
643
|
H.length > 0 ? ` (${H.length})` : ""
|
|
607
644
|
]
|
|
@@ -613,7 +650,7 @@ function qe() {
|
|
|
613
650
|
}),
|
|
614
651
|
/* @__PURE__ */ d("div", {
|
|
615
652
|
"data-tour": "vibedeck-switcher",
|
|
616
|
-
children: /* @__PURE__ */ d(
|
|
653
|
+
children: /* @__PURE__ */ d(Ae, {
|
|
617
654
|
decks: z.map((e) => ({
|
|
618
655
|
id: e.id,
|
|
619
656
|
name: e.name,
|
|
@@ -624,10 +661,10 @@ function qe() {
|
|
|
624
661
|
activeDeckId: B,
|
|
625
662
|
selectedDeckIds: T,
|
|
626
663
|
onSelectDeck: (e) => x(e),
|
|
627
|
-
onToggleSelectDeck:
|
|
664
|
+
onToggleSelectDeck: an,
|
|
628
665
|
onCreateDeck: () => w({ type: "createDeck" }),
|
|
629
|
-
onSetDefault:
|
|
630
|
-
onDuplicate: (e) =>
|
|
666
|
+
onSetDefault: vn,
|
|
667
|
+
onDuplicate: (e) => _n(e),
|
|
631
668
|
onDelete: (e) => {
|
|
632
669
|
w({
|
|
633
670
|
type: "confirmDelete",
|
|
@@ -648,26 +685,26 @@ function qe() {
|
|
|
648
685
|
deckName: t.name
|
|
649
686
|
});
|
|
650
687
|
},
|
|
651
|
-
canCreate:
|
|
652
|
-
canUpdate:
|
|
653
|
-
canDelete:
|
|
688
|
+
canCreate: et,
|
|
689
|
+
canUpdate: ct,
|
|
690
|
+
canDelete: lt
|
|
654
691
|
})
|
|
655
692
|
}),
|
|
656
|
-
/* @__PURE__ */ f(
|
|
693
|
+
/* @__PURE__ */ f(Je, {
|
|
657
694
|
mode: "wait",
|
|
658
|
-
children: [!V && !
|
|
695
|
+
children: [!V && !zt && z.length === 0 && /* @__PURE__ */ d(_e, {
|
|
659
696
|
title: "No Vibe Decks yet",
|
|
660
697
|
description: "Create your first Vibe Deck to start organizing your commands and webhooks",
|
|
661
698
|
action: /* @__PURE__ */ f("div", {
|
|
662
699
|
className: "flex items-center gap-2",
|
|
663
|
-
children: [
|
|
700
|
+
children: [et && /* @__PURE__ */ d("button", {
|
|
664
701
|
type: "button",
|
|
665
702
|
onClick: () => w({ type: "createDeck" }),
|
|
666
703
|
className: "px-4 py-2 rounded-lg bg-action-primary-bg text-action-primary-text hover:opacity-90 text-sm font-medium",
|
|
667
704
|
children: "Create Vibe Deck"
|
|
668
|
-
}), /* @__PURE__ */ d(
|
|
705
|
+
}), /* @__PURE__ */ d(Se, { prompt: "What is a VibeDeck and how do I use it to organise controls?" })]
|
|
669
706
|
})
|
|
670
|
-
}),
|
|
707
|
+
}), zt && /* @__PURE__ */ d(s, { message: "Loading deck..." })]
|
|
671
708
|
}),
|
|
672
709
|
V && /* @__PURE__ */ f("div", {
|
|
673
710
|
className: "space-y-4",
|
|
@@ -679,10 +716,10 @@ function qe() {
|
|
|
679
716
|
className: "flex flex-wrap items-center gap-3",
|
|
680
717
|
children: [/* @__PURE__ */ f("div", {
|
|
681
718
|
className: "flex items-center gap-2",
|
|
682
|
-
children: [/* @__PURE__ */ d(
|
|
683
|
-
checked:
|
|
684
|
-
indeterminate:
|
|
685
|
-
onChange:
|
|
719
|
+
children: [/* @__PURE__ */ d(Ce, {
|
|
720
|
+
checked: Ut,
|
|
721
|
+
indeterminate: Wt,
|
|
722
|
+
onChange: sn,
|
|
686
723
|
ariaLabel: "Select all buttons in active deck"
|
|
687
724
|
}), /* @__PURE__ */ d("span", {
|
|
688
725
|
className: "text-sm font-medium text-text-primary",
|
|
@@ -703,13 +740,13 @@ function qe() {
|
|
|
703
740
|
}),
|
|
704
741
|
/* @__PURE__ */ d("button", {
|
|
705
742
|
type: "button",
|
|
706
|
-
onClick: () =>
|
|
707
|
-
disabled: U.length === 0 ||
|
|
743
|
+
onClick: () => O("execute"),
|
|
744
|
+
disabled: U.length === 0 || k !== null,
|
|
708
745
|
className: "rounded-md border border-status-success-border px-3 py-2 text-sm font-medium text-status-success-text hover:bg-status-success-bg disabled:cursor-not-allowed disabled:opacity-50",
|
|
709
746
|
children: /* @__PURE__ */ f("span", {
|
|
710
747
|
className: "inline-flex items-center gap-2",
|
|
711
748
|
children: [
|
|
712
|
-
/* @__PURE__ */ d(
|
|
749
|
+
/* @__PURE__ */ d(He, { size: 14 }),
|
|
713
750
|
"Execute Selected",
|
|
714
751
|
U.length > 0 ? ` (${U.length})` : ""
|
|
715
752
|
]
|
|
@@ -717,13 +754,13 @@ function qe() {
|
|
|
717
754
|
}),
|
|
718
755
|
/* @__PURE__ */ d("button", {
|
|
719
756
|
type: "button",
|
|
720
|
-
onClick: () =>
|
|
721
|
-
disabled: U.length === 0 ||
|
|
757
|
+
onClick: () => O("delete"),
|
|
758
|
+
disabled: U.length === 0 || k !== null,
|
|
722
759
|
className: "rounded-md border border-status-error-border px-3 py-2 text-sm font-medium text-status-error-text hover:bg-status-error-bg disabled:cursor-not-allowed disabled:opacity-50",
|
|
723
760
|
children: /* @__PURE__ */ f("span", {
|
|
724
761
|
className: "inline-flex items-center gap-2",
|
|
725
762
|
children: [
|
|
726
|
-
/* @__PURE__ */ d(
|
|
763
|
+
/* @__PURE__ */ d(Ke, { size: 14 }),
|
|
727
764
|
"Delete Selected",
|
|
728
765
|
U.length > 0 ? ` (${U.length})` : ""
|
|
729
766
|
]
|
|
@@ -735,7 +772,7 @@ function qe() {
|
|
|
735
772
|
}), /* @__PURE__ */ f("div", {
|
|
736
773
|
"data-tour": "vibedeck-grid",
|
|
737
774
|
className: "relative",
|
|
738
|
-
children: [/* @__PURE__ */ d(
|
|
775
|
+
children: [/* @__PURE__ */ d(ke, {
|
|
739
776
|
gridColumns: V.gridColumns,
|
|
740
777
|
gridRows: V.gridRows,
|
|
741
778
|
buttons: (V.buttons || []).map((e) => ({
|
|
@@ -762,7 +799,7 @@ function qe() {
|
|
|
762
799
|
rowSpan: e.rowSpan,
|
|
763
800
|
colSpan: e.colSpan
|
|
764
801
|
})),
|
|
765
|
-
onExecuteButton:
|
|
802
|
+
onExecuteButton: fn,
|
|
766
803
|
onEditButton: (e) => w({
|
|
767
804
|
type: "editButton",
|
|
768
805
|
buttonId: e
|
|
@@ -776,17 +813,17 @@ function qe() {
|
|
|
776
813
|
name: t?.label || "this button"
|
|
777
814
|
});
|
|
778
815
|
},
|
|
779
|
-
onDropButton:
|
|
816
|
+
onDropButton: gn,
|
|
780
817
|
onAddButton: (e, t) => w({
|
|
781
818
|
type: "createButton",
|
|
782
819
|
row: e,
|
|
783
820
|
column: t
|
|
784
821
|
}),
|
|
785
|
-
executingButtonId:
|
|
786
|
-
canCreate:
|
|
787
|
-
canUpdate:
|
|
788
|
-
canDelete:
|
|
789
|
-
canExecute:
|
|
822
|
+
executingButtonId: ut,
|
|
823
|
+
canCreate: st,
|
|
824
|
+
canUpdate: ct,
|
|
825
|
+
canDelete: lt,
|
|
826
|
+
canExecute: rt,
|
|
790
827
|
previewMode: S
|
|
791
828
|
}), (V.buttons?.length ?? 0) === 0 && S && /* @__PURE__ */ d("div", {
|
|
792
829
|
className: "absolute inset-0 flex items-center justify-center pointer-events-none",
|
|
@@ -801,9 +838,9 @@ function qe() {
|
|
|
801
838
|
className: "text-sm text-text-secondary mt-2",
|
|
802
839
|
children: v("vibeDeck.emptyDeckDescription", "Switch to Edit mode to add buttons.")
|
|
803
840
|
}),
|
|
804
|
-
|
|
841
|
+
tt && /* @__PURE__ */ d("button", {
|
|
805
842
|
type: "button",
|
|
806
|
-
onClick: () =>
|
|
843
|
+
onClick: () => ot("edit"),
|
|
807
844
|
className: "mt-4 inline-flex items-center gap-2 px-4 py-2 rounded-md bg-action-primary-bg text-action-primary-text text-sm font-medium hover:opacity-90 transition-opacity",
|
|
808
845
|
children: v("vibeDeck.editDeck", "Edit deck")
|
|
809
846
|
})
|
|
@@ -812,25 +849,25 @@ function qe() {
|
|
|
812
849
|
})]
|
|
813
850
|
})]
|
|
814
851
|
}),
|
|
815
|
-
|
|
852
|
+
bt.length > 0 && /* @__PURE__ */ d("div", {
|
|
816
853
|
"data-tour": "vibedeck-execution-log",
|
|
817
|
-
children: /* @__PURE__ */ d(
|
|
818
|
-
entries:
|
|
819
|
-
expanded:
|
|
820
|
-
onToggleExpanded: () =>
|
|
821
|
-
onClear: () =>
|
|
854
|
+
children: /* @__PURE__ */ d(Pe, {
|
|
855
|
+
entries: bt,
|
|
856
|
+
expanded: St,
|
|
857
|
+
onToggleExpanded: () => Ct((e) => !e),
|
|
858
|
+
onClear: () => xt([])
|
|
822
859
|
})
|
|
823
860
|
}),
|
|
824
|
-
/* @__PURE__ */ d(
|
|
861
|
+
/* @__PURE__ */ d(Je, { children: gt.length > 0 && /* @__PURE__ */ d("div", {
|
|
825
862
|
className: "fixed bottom-4 left-4 right-4 sm:left-auto sm:bottom-6 sm:right-6 z-50 flex flex-col gap-2 max-w-[calc(100vw-2rem)] sm:max-w-md",
|
|
826
|
-
children:
|
|
863
|
+
children: gt.slice(-3).map((e) => /* @__PURE__ */ f("div", {
|
|
827
864
|
role: "button",
|
|
828
865
|
tabIndex: 0,
|
|
829
866
|
onKeyDown: (t) => {
|
|
830
|
-
(t.key === "Enter" || t.key === " ") && (t.preventDefault(),
|
|
867
|
+
(t.key === "Enter" || t.key === " ") && (t.preventDefault(), Pt(e.id));
|
|
831
868
|
},
|
|
832
869
|
className: `p-4 rounded-xl shadow-lg border cursor-pointer ${e.variant === "success" ? "bg-status-success-bg/10 border-status-success-border/30 text-status-success-text" : "bg-status-error-bg/10 border-status-error-border/30 text-status-error-text"}`,
|
|
833
|
-
onClick: () =>
|
|
870
|
+
onClick: () => Pt(e.id),
|
|
834
871
|
children: [/* @__PURE__ */ d("div", {
|
|
835
872
|
className: "font-medium text-sm",
|
|
836
873
|
children: e.message
|
|
@@ -840,13 +877,13 @@ function qe() {
|
|
|
840
877
|
})]
|
|
841
878
|
}, e.id))
|
|
842
879
|
}) }),
|
|
843
|
-
C.type === "createDeck" && /* @__PURE__ */ d(
|
|
880
|
+
C.type === "createDeck" && /* @__PURE__ */ d(je, {
|
|
844
881
|
title: "Create Vibe Deck",
|
|
845
|
-
onSubmit:
|
|
882
|
+
onSubmit: cn,
|
|
846
883
|
onCancel: () => {
|
|
847
|
-
w({ type: "none" }),
|
|
884
|
+
w({ type: "none" }), yt(ye);
|
|
848
885
|
},
|
|
849
|
-
isLoading:
|
|
886
|
+
isLoading: Jt,
|
|
850
887
|
extraSection: /* @__PURE__ */ f("div", {
|
|
851
888
|
className: "space-y-4",
|
|
852
889
|
children: [/* @__PURE__ */ f("div", { children: [/* @__PURE__ */ d("h3", {
|
|
@@ -854,14 +891,14 @@ function qe() {
|
|
|
854
891
|
children: v("vibeDeck.tags", "Tags")
|
|
855
892
|
}), /* @__PURE__ */ d(he, {
|
|
856
893
|
entityType: "VIBECONTROLS_VIBEDECK",
|
|
857
|
-
onDraftChange:
|
|
858
|
-
})] }), /* @__PURE__ */ d(
|
|
859
|
-
value:
|
|
860
|
-
onChange:
|
|
894
|
+
onDraftChange: Yt
|
|
895
|
+
})] }), /* @__PURE__ */ d(be, {
|
|
896
|
+
value: vt,
|
|
897
|
+
onChange: yt
|
|
861
898
|
})]
|
|
862
899
|
})
|
|
863
900
|
}),
|
|
864
|
-
C.type === "editDeck" && $ && /* @__PURE__ */ d(
|
|
901
|
+
C.type === "editDeck" && $ && /* @__PURE__ */ d(je, {
|
|
865
902
|
title: "Edit Vibe Deck",
|
|
866
903
|
initialData: {
|
|
867
904
|
name: $.name,
|
|
@@ -870,9 +907,9 @@ function qe() {
|
|
|
870
907
|
gridColumns: $.gridColumns,
|
|
871
908
|
gridRows: $.gridRows
|
|
872
909
|
},
|
|
873
|
-
onSubmit:
|
|
910
|
+
onSubmit: ln,
|
|
874
911
|
onCancel: () => w({ type: "none" }),
|
|
875
|
-
isLoading:
|
|
912
|
+
isLoading: Qt,
|
|
876
913
|
extraSection: /* @__PURE__ */ f("div", { children: [/* @__PURE__ */ d("h3", {
|
|
877
914
|
className: "text-sm font-medium text-text-secondary mb-2",
|
|
878
915
|
children: v("vibeDeck.tags", "Tags")
|
|
@@ -881,18 +918,18 @@ function qe() {
|
|
|
881
918
|
entityId: $.id
|
|
882
919
|
})] })
|
|
883
920
|
}),
|
|
884
|
-
C.type === "createButton" && /* @__PURE__ */ d(
|
|
921
|
+
C.type === "createButton" && /* @__PURE__ */ d(Me, {
|
|
885
922
|
title: "Add Button",
|
|
886
|
-
agents:
|
|
887
|
-
onSubmit:
|
|
923
|
+
agents: Kt,
|
|
924
|
+
onSubmit: mn,
|
|
888
925
|
onCancel: () => w({ type: "none" }),
|
|
889
|
-
isLoading:
|
|
926
|
+
isLoading: en,
|
|
890
927
|
gridColumns: V?.gridColumns,
|
|
891
928
|
gridRows: V?.gridRows,
|
|
892
929
|
buttonRow: C.row,
|
|
893
930
|
buttonColumn: C.column
|
|
894
931
|
}),
|
|
895
|
-
C.type === "editButton" && Q && /* @__PURE__ */ d(
|
|
932
|
+
C.type === "editButton" && Q && /* @__PURE__ */ d(Me, {
|
|
896
933
|
title: "Edit Button",
|
|
897
934
|
initialData: {
|
|
898
935
|
label: Q.label,
|
|
@@ -904,10 +941,10 @@ function qe() {
|
|
|
904
941
|
rowSpan: Q.rowSpan,
|
|
905
942
|
colSpan: Q.colSpan
|
|
906
943
|
},
|
|
907
|
-
agents:
|
|
908
|
-
onSubmit:
|
|
944
|
+
agents: Kt,
|
|
945
|
+
onSubmit: hn,
|
|
909
946
|
onCancel: () => w({ type: "none" }),
|
|
910
|
-
isLoading:
|
|
947
|
+
isLoading: nn,
|
|
911
948
|
gridColumns: V?.gridColumns,
|
|
912
949
|
gridRows: V?.gridRows,
|
|
913
950
|
buttonRow: Q.row,
|
|
@@ -919,7 +956,7 @@ function qe() {
|
|
|
919
956
|
message: `Are you sure you want to delete "${C.name}"?${C.target === "deck" ? " All buttons in this deck will also be deleted." : ""}`,
|
|
920
957
|
confirmLabel: "Delete",
|
|
921
958
|
variant: "danger",
|
|
922
|
-
onConfirm:
|
|
959
|
+
onConfirm: un,
|
|
923
960
|
onClose: () => w({ type: "none" })
|
|
924
961
|
}),
|
|
925
962
|
C.type === "confirmExecute" && /* @__PURE__ */ d(a, {
|
|
@@ -928,57 +965,64 @@ function qe() {
|
|
|
928
965
|
message: `Are you sure you want to execute this action?\n\n${C.detail}`,
|
|
929
966
|
confirmLabel: "Execute",
|
|
930
967
|
variant: "warning",
|
|
931
|
-
onConfirm:
|
|
968
|
+
onConfirm: pn,
|
|
932
969
|
onClose: () => w({ type: "none" })
|
|
933
970
|
}),
|
|
934
971
|
/* @__PURE__ */ d(a, {
|
|
935
|
-
isOpen:
|
|
972
|
+
isOpen: pt === "delete",
|
|
936
973
|
title: "Delete Vibe Decks",
|
|
937
974
|
message: `Are you sure you want to delete ${H.length} selected deck${H.length === 1 ? "" : "s"}? All buttons in those decks will also be deleted.`,
|
|
938
975
|
confirmLabel: "Delete Decks",
|
|
939
976
|
variant: "danger",
|
|
940
|
-
onConfirm:
|
|
941
|
-
onClose: () =>
|
|
942
|
-
isLoading:
|
|
977
|
+
onConfirm: xn,
|
|
978
|
+
onClose: () => mt(null),
|
|
979
|
+
isLoading: k === "deleteDeck"
|
|
943
980
|
}),
|
|
944
981
|
/* @__PURE__ */ d(a, {
|
|
945
|
-
isOpen:
|
|
982
|
+
isOpen: ht === "execute",
|
|
946
983
|
title: "Execute Vibe Deck Buttons",
|
|
947
984
|
message: `Execute ${U.length} selected button${U.length === 1 ? "" : "s"}? This may trigger commands, scripts, or webhooks immediately.`,
|
|
948
985
|
confirmLabel: "Execute Buttons",
|
|
949
986
|
variant: "warning",
|
|
950
|
-
onConfirm:
|
|
951
|
-
onClose: () =>
|
|
952
|
-
isLoading:
|
|
987
|
+
onConfirm: Sn,
|
|
988
|
+
onClose: () => O(null),
|
|
989
|
+
isLoading: k === "executeButton"
|
|
953
990
|
}),
|
|
954
991
|
/* @__PURE__ */ d(a, {
|
|
955
|
-
isOpen:
|
|
992
|
+
isOpen: ht === "delete",
|
|
956
993
|
title: "Delete Vibe Deck Buttons",
|
|
957
994
|
message: `Delete ${U.length} selected button${U.length === 1 ? "" : "s"}? This cannot be undone.`,
|
|
958
995
|
confirmLabel: "Delete Buttons",
|
|
959
996
|
variant: "danger",
|
|
960
|
-
onConfirm:
|
|
961
|
-
onClose: () =>
|
|
962
|
-
isLoading:
|
|
997
|
+
onConfirm: Cn,
|
|
998
|
+
onClose: () => O(null),
|
|
999
|
+
isLoading: k === "deleteButton"
|
|
963
1000
|
}),
|
|
964
|
-
C.type === "shareDeck" && /* @__PURE__ */ d(
|
|
1001
|
+
C.type === "shareDeck" && /* @__PURE__ */ d(Ne, {
|
|
965
1002
|
vibeDeckId: C.deckId,
|
|
966
1003
|
vibeDeckName: C.deckName,
|
|
967
1004
|
onClose: () => w({ type: "none" })
|
|
968
1005
|
}),
|
|
969
1006
|
/* @__PURE__ */ d(ce, {
|
|
970
|
-
isOpen:
|
|
971
|
-
onClose: () =>
|
|
1007
|
+
isOpen: Et !== null,
|
|
1008
|
+
onClose: () => Dt(null),
|
|
972
1009
|
onConfirm: () => {
|
|
973
|
-
|
|
1010
|
+
Dt(null), Ze("/billing/plans");
|
|
974
1011
|
},
|
|
975
|
-
title:
|
|
976
|
-
message:
|
|
1012
|
+
title: Et?.title || "Quota Reached",
|
|
1013
|
+
message: Et?.message || "Upgrade your plan to continue."
|
|
1014
|
+
}),
|
|
1015
|
+
/* @__PURE__ */ d(ve, {
|
|
1016
|
+
isOpen: M !== null,
|
|
1017
|
+
agentName: M ? Kt.find((e) => e.id === M.agentId)?.name : void 0,
|
|
1018
|
+
isLoading: kt,
|
|
1019
|
+
onClose: () => Ot(null),
|
|
1020
|
+
onConfirm: dn
|
|
977
1021
|
})
|
|
978
1022
|
]
|
|
979
1023
|
});
|
|
980
1024
|
}
|
|
981
1025
|
//#endregion
|
|
982
|
-
export {
|
|
1026
|
+
export { Ze as VibeDeckPage };
|
|
983
1027
|
|
|
984
1028
|
//# sourceMappingURL=VibeDeckPage.js.map
|