@laststance/claude-plugin-dashboard 0.2.3 → 0.3.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +7 -1
- package/dist/app.d.ts +7 -1
- package/dist/app.js +544 -262
- package/dist/cli.js +60 -67
- package/dist/components/ComponentBadges.d.ts +0 -9
- package/dist/components/ComponentBadges.js +0 -33
- package/dist/components/ComponentDetail.d.ts +32 -0
- package/dist/components/ComponentDetail.js +106 -0
- package/dist/components/ComponentList.d.ts +87 -0
- package/dist/components/ComponentList.js +287 -0
- package/dist/components/HelpOverlay.js +1 -0
- package/dist/components/KeyHints.d.ts +1 -0
- package/dist/components/KeyHints.js +33 -29
- package/dist/components/MarketplaceActionMenu.d.ts +41 -0
- package/dist/components/MarketplaceActionMenu.js +68 -0
- package/dist/components/MarketplaceDetail.d.ts +10 -3
- package/dist/components/MarketplaceDetail.js +10 -4
- package/dist/components/PluginDetail.d.ts +19 -3
- package/dist/components/PluginDetail.js +56 -6
- package/dist/components/PluginList.js +19 -7
- package/dist/services/componentService.d.ts +10 -31
- package/dist/services/componentService.js +19 -174
- package/dist/services/components/hookService.d.ts +17 -0
- package/dist/services/components/hookService.js +45 -0
- package/dist/services/components/index.d.ts +41 -0
- package/dist/services/components/index.js +126 -0
- package/dist/services/components/markdownService.d.ts +39 -0
- package/dist/services/components/markdownService.js +147 -0
- package/dist/services/components/serverService.d.ts +28 -0
- package/dist/services/components/serverService.js +69 -0
- package/dist/services/components/skillService.d.ts +48 -0
- package/dist/services/components/skillService.js +164 -0
- package/dist/services/components/utils.d.ts +23 -0
- package/dist/services/components/utils.js +42 -0
- package/dist/services/marketplaceActionsService.d.ts +17 -0
- package/dist/services/marketplaceActionsService.js +18 -0
- package/dist/services/pluginActionsService.d.ts +31 -2
- package/dist/services/pluginActionsService.js +65 -6
- package/dist/services/pluginService.js +78 -2
- package/dist/store/index.d.ts +46 -0
- package/dist/store/index.js +47 -0
- package/dist/store/slices/marketplaceSlice.d.ts +344 -0
- package/dist/store/slices/marketplaceSlice.js +152 -0
- package/dist/store/slices/pluginSlice.d.ts +1544 -0
- package/dist/store/slices/pluginSlice.js +191 -0
- package/dist/store/slices/uiSlice.d.ts +147 -0
- package/dist/store/slices/uiSlice.js +126 -0
- package/dist/tabs/DiscoverTab.d.ts +8 -2
- package/dist/tabs/DiscoverTab.js +2 -2
- package/dist/tabs/EnabledTab.d.ts +8 -2
- package/dist/tabs/EnabledTab.js +3 -3
- package/dist/tabs/ErrorsTab.js +1 -1
- package/dist/tabs/InstalledTab.d.ts +8 -2
- package/dist/tabs/InstalledTab.js +3 -3
- package/dist/tabs/MarketplacesTab.d.ts +15 -2
- package/dist/tabs/MarketplacesTab.js +13 -4
- package/dist/types/index.d.ts +157 -5
- package/package.json +10 -3
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Marketplace state slice for marketplace data and operations
|
|
3
|
+
* Handles marketplace list, dialogs, and marketplace operations
|
|
4
|
+
*/
|
|
5
|
+
import { createSlice } from '@reduxjs/toolkit';
|
|
6
|
+
import { setTab, nextTab, prevTab } from './uiSlice.js';
|
|
7
|
+
/**
|
|
8
|
+
* Initial marketplace state
|
|
9
|
+
*/
|
|
10
|
+
const initialState = {
|
|
11
|
+
marketplaces: [],
|
|
12
|
+
marketplaceOperation: 'idle',
|
|
13
|
+
operationMarketplaceId: null,
|
|
14
|
+
confirmRemoveMarketplace: false,
|
|
15
|
+
showAddMarketplaceDialog: false,
|
|
16
|
+
addMarketplaceError: null,
|
|
17
|
+
showMarketplaceActionMenu: false,
|
|
18
|
+
actionMenuSelectedIndex: 0,
|
|
19
|
+
};
|
|
20
|
+
/**
|
|
21
|
+
* Get display message for marketplace operation status
|
|
22
|
+
* @param operation - The marketplace operation type
|
|
23
|
+
* @param marketplaceId - Optional marketplace identifier
|
|
24
|
+
* @returns Display message for the operation
|
|
25
|
+
*/
|
|
26
|
+
export function getMarketplaceOperationMessage(operation, marketplaceId) {
|
|
27
|
+
switch (operation) {
|
|
28
|
+
case 'adding':
|
|
29
|
+
return 'Adding marketplace...';
|
|
30
|
+
case 'removing':
|
|
31
|
+
return `Removing ${marketplaceId}...`;
|
|
32
|
+
case 'updating':
|
|
33
|
+
return `Updating ${marketplaceId || 'marketplaces'}...`;
|
|
34
|
+
case 'idle':
|
|
35
|
+
return '';
|
|
36
|
+
default:
|
|
37
|
+
return '';
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Marketplace slice with reducers for all marketplace-related state changes
|
|
42
|
+
*/
|
|
43
|
+
export const marketplaceSlice = createSlice({
|
|
44
|
+
name: 'marketplaces',
|
|
45
|
+
initialState,
|
|
46
|
+
reducers: {
|
|
47
|
+
/**
|
|
48
|
+
* Set the marketplaces list
|
|
49
|
+
*/
|
|
50
|
+
setMarketplaces: (state, action) => {
|
|
51
|
+
state.marketplaces = action.payload;
|
|
52
|
+
},
|
|
53
|
+
/**
|
|
54
|
+
* Start a marketplace operation
|
|
55
|
+
*/
|
|
56
|
+
startMarketplaceOperation: (state, action) => {
|
|
57
|
+
state.marketplaceOperation = action.payload.operation;
|
|
58
|
+
state.operationMarketplaceId = action.payload.marketplaceId ?? null;
|
|
59
|
+
},
|
|
60
|
+
/**
|
|
61
|
+
* End the current marketplace operation
|
|
62
|
+
*/
|
|
63
|
+
endMarketplaceOperation: (state) => {
|
|
64
|
+
state.marketplaceOperation = 'idle';
|
|
65
|
+
state.operationMarketplaceId = null;
|
|
66
|
+
},
|
|
67
|
+
/**
|
|
68
|
+
* Show remove marketplace confirmation dialog
|
|
69
|
+
*/
|
|
70
|
+
showConfirmRemoveMarketplace: (state, action) => {
|
|
71
|
+
state.confirmRemoveMarketplace = true;
|
|
72
|
+
state.operationMarketplaceId = action.payload;
|
|
73
|
+
},
|
|
74
|
+
/**
|
|
75
|
+
* Hide remove marketplace confirmation dialog
|
|
76
|
+
*/
|
|
77
|
+
hideConfirmRemoveMarketplace: (state) => {
|
|
78
|
+
state.confirmRemoveMarketplace = false;
|
|
79
|
+
state.operationMarketplaceId = null;
|
|
80
|
+
},
|
|
81
|
+
/**
|
|
82
|
+
* Show add marketplace dialog
|
|
83
|
+
*/
|
|
84
|
+
showAddMarketplaceDialog: (state) => {
|
|
85
|
+
state.showAddMarketplaceDialog = true;
|
|
86
|
+
state.addMarketplaceError = null;
|
|
87
|
+
},
|
|
88
|
+
/**
|
|
89
|
+
* Hide add marketplace dialog
|
|
90
|
+
*/
|
|
91
|
+
hideAddMarketplaceDialog: (state) => {
|
|
92
|
+
state.showAddMarketplaceDialog = false;
|
|
93
|
+
state.addMarketplaceError = null;
|
|
94
|
+
},
|
|
95
|
+
/**
|
|
96
|
+
* Set add marketplace error
|
|
97
|
+
*/
|
|
98
|
+
setAddMarketplaceError: (state, action) => {
|
|
99
|
+
state.addMarketplaceError = action.payload;
|
|
100
|
+
},
|
|
101
|
+
/**
|
|
102
|
+
* Show marketplace action menu
|
|
103
|
+
*/
|
|
104
|
+
showMarketplaceActionMenu: (state) => {
|
|
105
|
+
state.showMarketplaceActionMenu = true;
|
|
106
|
+
state.actionMenuSelectedIndex = 0;
|
|
107
|
+
},
|
|
108
|
+
/**
|
|
109
|
+
* Hide marketplace action menu
|
|
110
|
+
*/
|
|
111
|
+
hideMarketplaceActionMenu: (state) => {
|
|
112
|
+
state.showMarketplaceActionMenu = false;
|
|
113
|
+
state.actionMenuSelectedIndex = 0;
|
|
114
|
+
},
|
|
115
|
+
/**
|
|
116
|
+
* Set action menu selected index
|
|
117
|
+
*/
|
|
118
|
+
setActionMenuIndex: (state, action) => {
|
|
119
|
+
state.actionMenuSelectedIndex = action.payload;
|
|
120
|
+
},
|
|
121
|
+
/**
|
|
122
|
+
* Move action menu selection up or down
|
|
123
|
+
*/
|
|
124
|
+
moveActionMenuSelection: (state, action) => {
|
|
125
|
+
const maxIndex = 3; // 4 actions: browse, update, autoUpdate, remove
|
|
126
|
+
if (action.payload === 'up') {
|
|
127
|
+
state.actionMenuSelectedIndex = Math.max(0, state.actionMenuSelectedIndex - 1);
|
|
128
|
+
}
|
|
129
|
+
else {
|
|
130
|
+
state.actionMenuSelectedIndex = Math.min(maxIndex, state.actionMenuSelectedIndex + 1);
|
|
131
|
+
}
|
|
132
|
+
},
|
|
133
|
+
},
|
|
134
|
+
extraReducers: (builder) => {
|
|
135
|
+
// Reset action menu state when tab changes
|
|
136
|
+
builder
|
|
137
|
+
.addCase(setTab, (state) => {
|
|
138
|
+
state.showMarketplaceActionMenu = false;
|
|
139
|
+
state.actionMenuSelectedIndex = 0;
|
|
140
|
+
})
|
|
141
|
+
.addCase(nextTab, (state) => {
|
|
142
|
+
state.showMarketplaceActionMenu = false;
|
|
143
|
+
state.actionMenuSelectedIndex = 0;
|
|
144
|
+
})
|
|
145
|
+
.addCase(prevTab, (state) => {
|
|
146
|
+
state.showMarketplaceActionMenu = false;
|
|
147
|
+
state.actionMenuSelectedIndex = 0;
|
|
148
|
+
});
|
|
149
|
+
},
|
|
150
|
+
});
|
|
151
|
+
export const { setMarketplaces, startMarketplaceOperation, endMarketplaceOperation, showConfirmRemoveMarketplace, hideConfirmRemoveMarketplace, showAddMarketplaceDialog, hideAddMarketplaceDialog, setAddMarketplaceError, showMarketplaceActionMenu, hideMarketplaceActionMenu, setActionMenuIndex, moveActionMenuSelection, } = marketplaceSlice.actions;
|
|
152
|
+
export default marketplaceSlice.reducer;
|