@vc-shell/vc-app-skill 2.0.0-alpha.26 → 2.0.0-alpha.28
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/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,11 @@
|
|
|
1
|
+
# [2.0.0-alpha.28](https://github.com/VirtoCommerce/vc-shell/compare/v2.0.0-alpha.27...v2.0.0-alpha.28) (2026-03-26)
|
|
2
|
+
|
|
3
|
+
**Note:** Version bump only for package @vc-shell/vc-app-skill
|
|
4
|
+
|
|
5
|
+
# [2.0.0-alpha.27](https://github.com/VirtoCommerce/vc-shell/compare/v2.0.0-alpha.26...v2.0.0-alpha.27) (2026-03-25)
|
|
6
|
+
|
|
7
|
+
**Note:** Version bump only for package @vc-shell/vc-app-skill
|
|
8
|
+
|
|
1
9
|
# [2.0.0-alpha.26](https://github.com/VirtoCommerce/vc-shell/compare/v2.0.0-alpha.25...v2.0.0-alpha.26) (2026-03-25)
|
|
2
10
|
|
|
3
11
|
**Note:** Version bump only for package @vc-shell/vc-app-skill
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vc-shell/vc-app-skill",
|
|
3
|
-
"version": "2.0.0-alpha.
|
|
3
|
+
"version": "2.0.0-alpha.28",
|
|
4
4
|
"description": "AI coding skill for scaffolding and generating VirtoCommerce Shell applications. Works with Claude Code, OpenCode, Gemini, Codex, Cursor.",
|
|
5
5
|
"bin": "./bin/install.cjs",
|
|
6
6
|
"files": [
|
package/runtime/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
2.0.0-alpha.
|
|
1
|
+
2.0.0-alpha.28
|
|
@@ -1 +1 @@
|
|
|
1
|
-
Synced from framework at commit
|
|
1
|
+
Synced from framework at commit 8bc5a83cc on 2026-03-26T07:20:52.461Z
|
|
@@ -44,18 +44,20 @@ const user = reactive({ name: "John", role: "Admin" });
|
|
|
44
44
|
| `name` | `string` | -- | Current user display name. |
|
|
45
45
|
| `role` | `string` | -- | Current user role label. |
|
|
46
46
|
| `disableMenu` | `boolean` | `false` | Hide navigation menu items. |
|
|
47
|
-
| `
|
|
47
|
+
| `disableAppHub` | `boolean` | `false` | Hide the Applications section inside the App Hub. |
|
|
48
|
+
| `showSearch` | `boolean` | `false` | Show a search input in the sidebar that filters menu items by title. |
|
|
49
|
+
| `searchPlaceholder` | `string` | `"Search keyword"` | Placeholder text for the sidebar search input. Falls back to i18n key `SHELL.SIDEBAR.SEARCH_PLACEHOLDER`. |
|
|
48
50
|
|
|
49
51
|
## Slots
|
|
50
52
|
|
|
51
53
|
| Slot | Props | Description |
|
|
52
54
|
|------|-------|-------------|
|
|
53
55
|
| `layout` | `{ isMobile, sidebar, appsList, switchApp, openRoot, handleMenuItemClick }` | Override the entire layout (sidebar + navigation). |
|
|
54
|
-
| `menu` | `{ expanded, onItemClick }` | Custom navigation menu. |
|
|
56
|
+
| `menu` | `{ expanded, onItemClick, searchQuery }` | Custom navigation menu. `searchQuery` contains the current search input value (empty string when search is inactive). |
|
|
55
57
|
| `sidebar-header` | `{ logo, expanded, isMobile }` | Custom sidebar header. |
|
|
56
58
|
| `sidebar-footer` | `{ avatar, name, role }` | Custom sidebar footer (user info). |
|
|
57
59
|
| `workspace` | `{ isAuthenticated }` | Override the blade navigation workspace. |
|
|
58
|
-
| `app-
|
|
60
|
+
| `app-hub` | `{ appsList, switchApp }` | Custom content for the Applications section of the App Hub. |
|
|
59
61
|
|
|
60
62
|
## Architecture
|
|
61
63
|
|
|
@@ -72,13 +74,54 @@ VcApp orchestrates several internal systems:
|
|
|
72
74
|
|
|
73
75
|
On desktop viewports, VcApp renders a collapsible sidebar on the left with navigation menu items, user info in the footer, and the blade workspace on the right. On mobile viewports, the sidebar is replaced by a top bar with a hamburger menu that opens a slide-over navigation panel.
|
|
74
76
|
|
|
77
|
+
### Sidebar Menu Search
|
|
78
|
+
|
|
79
|
+
When `showSearch` is `true`, a search input appears at the top of the sidebar (desktop) or mobile navigation panel. It filters menu items in real time (300ms debounce) by matching the search query against translated item titles:
|
|
80
|
+
|
|
81
|
+
- **Standalone items** — shown if their title contains the query.
|
|
82
|
+
- **Group items** — if the group title matches, all accessible children are shown. Otherwise, only children whose titles match are displayed.
|
|
83
|
+
- The search query is automatically cleared when a menu item is clicked or when the sidebar collapses.
|
|
84
|
+
|
|
85
|
+
On desktop, the search input is visible only when the sidebar is expanded (pinned). On mobile, it appears inside the slide-out navigation panel.
|
|
86
|
+
|
|
87
|
+
If you use the `menu` slot to provide a custom menu, the `searchQuery` prop is passed to your slot so you can implement your own filtering logic.
|
|
88
|
+
|
|
89
|
+
```vue
|
|
90
|
+
<template>
|
|
91
|
+
<VcApp :is-ready="true" logo="/logo.svg" title="Admin" show-search search-placeholder="Find a module...">
|
|
92
|
+
<!-- Default menu with built-in filtering — no extra code needed -->
|
|
93
|
+
</VcApp>
|
|
94
|
+
</template>
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
#### Custom Menu with Search
|
|
98
|
+
|
|
99
|
+
```vue
|
|
100
|
+
<template>
|
|
101
|
+
<VcApp :is-ready="true" logo="/logo.svg" title="Admin" show-search>
|
|
102
|
+
<template #menu="{ expanded, onItemClick, searchQuery }">
|
|
103
|
+
<MyCustomMenu
|
|
104
|
+
:expanded="expanded"
|
|
105
|
+
:filter="searchQuery"
|
|
106
|
+
@select="onItemClick"
|
|
107
|
+
/>
|
|
108
|
+
</template>
|
|
109
|
+
</VcApp>
|
|
110
|
+
</template>
|
|
111
|
+
```
|
|
112
|
+
|
|
75
113
|
### Dynamic Module Registration
|
|
76
114
|
|
|
77
115
|
Modules registered via `useDynamicModules()` are loaded at runtime. Each module can contribute menu items, blades, toolbar actions, settings pages, and dashboard widgets. VcApp handles module loading errors gracefully by displaying notification toasts.
|
|
78
116
|
|
|
79
|
-
###
|
|
117
|
+
### App Hub
|
|
118
|
+
|
|
119
|
+
The App Hub is a popover panel (desktop) or a swipeable tab (mobile) that combines two sections:
|
|
120
|
+
|
|
121
|
+
- **Applications** — tile grid of registered apps (e.g., Vendor Portal, Marketplace Admin). Clicking an app switches context without a full page reload. This section can be hidden with `disableAppHub` or customized via the `app-hub` slot. The list is searchable via a built-in search input inside the hub.
|
|
122
|
+
- **Widgets** — registered app bar widgets (notifications, background tasks, etc.). Clicking a widget expands its content inline (desktop) or navigates to its panel (mobile). Widgets are registered via `useAppBarWidget()` and can display badges for unread counts.
|
|
80
123
|
|
|
81
|
-
|
|
124
|
+
On desktop, the App Hub opens from the sidebar header menu button (`AppHubPopover`). On mobile, it appears as a second tab ("Hub") in the slide-out navigation panel — users can swipe between Menu and Hub tabs.
|
|
82
125
|
|
|
83
126
|
## Recipe: Minimal App Setup
|
|
84
127
|
|