@laststance/claude-plugin-dashboard 0.3.0 → 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.
Files changed (47) hide show
  1. package/README.md +1 -0
  2. package/dist/app.js +346 -211
  3. package/dist/cli.js +3 -1
  4. package/dist/components/ComponentBadges.d.ts +0 -9
  5. package/dist/components/ComponentBadges.js +0 -33
  6. package/dist/components/ComponentDetail.d.ts +32 -0
  7. package/dist/components/ComponentDetail.js +106 -0
  8. package/dist/components/ComponentList.d.ts +36 -2
  9. package/dist/components/ComponentList.js +105 -11
  10. package/dist/components/HelpOverlay.js +1 -0
  11. package/dist/components/KeyHints.d.ts +1 -0
  12. package/dist/components/KeyHints.js +8 -1
  13. package/dist/components/PluginDetail.d.ts +16 -3
  14. package/dist/components/PluginDetail.js +29 -3
  15. package/dist/services/componentService.d.ts +10 -42
  16. package/dist/services/componentService.js +19 -412
  17. package/dist/services/components/hookService.d.ts +17 -0
  18. package/dist/services/components/hookService.js +45 -0
  19. package/dist/services/components/index.d.ts +41 -0
  20. package/dist/services/components/index.js +126 -0
  21. package/dist/services/components/markdownService.d.ts +39 -0
  22. package/dist/services/components/markdownService.js +147 -0
  23. package/dist/services/components/serverService.d.ts +28 -0
  24. package/dist/services/components/serverService.js +69 -0
  25. package/dist/services/components/skillService.d.ts +48 -0
  26. package/dist/services/components/skillService.js +164 -0
  27. package/dist/services/components/utils.d.ts +23 -0
  28. package/dist/services/components/utils.js +42 -0
  29. package/dist/services/pluginActionsService.d.ts +31 -2
  30. package/dist/services/pluginActionsService.js +65 -6
  31. package/dist/store/index.d.ts +46 -0
  32. package/dist/store/index.js +47 -0
  33. package/dist/store/slices/marketplaceSlice.d.ts +344 -0
  34. package/dist/store/slices/marketplaceSlice.js +152 -0
  35. package/dist/store/slices/pluginSlice.d.ts +1544 -0
  36. package/dist/store/slices/pluginSlice.js +191 -0
  37. package/dist/store/slices/uiSlice.d.ts +147 -0
  38. package/dist/store/slices/uiSlice.js +126 -0
  39. package/dist/tabs/DiscoverTab.d.ts +8 -2
  40. package/dist/tabs/DiscoverTab.js +2 -2
  41. package/dist/tabs/EnabledTab.d.ts +8 -2
  42. package/dist/tabs/EnabledTab.js +2 -2
  43. package/dist/tabs/ErrorsTab.js +1 -1
  44. package/dist/tabs/InstalledTab.d.ts +8 -2
  45. package/dist/tabs/InstalledTab.js +2 -2
  46. package/dist/types/index.d.ts +47 -4
  47. package/package.json +7 -2
@@ -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;