@vc-shell/vc-app-skill 2.0.0-alpha.32 → 2.0.0-alpha.33-pr220.455e322

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 (195) hide show
  1. package/CHANGELOG.md +59 -47
  2. package/README.md +18 -12
  3. package/package.json +4 -4
  4. package/runtime/VERSION +1 -1
  5. package/runtime/agents/api-analyzer.md +31 -16
  6. package/runtime/agents/blade-enhancer.md +15 -9
  7. package/runtime/agents/details-blade-generator.md +47 -31
  8. package/runtime/agents/list-blade-generator.md +21 -37
  9. package/runtime/agents/locales-generator.md +3 -0
  10. package/runtime/agents/migration-agent.md +94 -0
  11. package/runtime/agents/module-analyzer.md +2 -0
  12. package/runtime/agents/module-assembler.md +15 -0
  13. package/runtime/agents/promote-agent.md +15 -4
  14. package/runtime/agents/type-checker.md +11 -0
  15. package/runtime/knowledge/docs/_BUILD_HASH.md +1 -1
  16. package/runtime/knowledge/docs/core/api/platform.docs.md +30 -30
  17. package/runtime/knowledge/docs/core/blade-navigation/blade-nav-composables.docs.md +41 -41
  18. package/runtime/knowledge/docs/core/composables/bladeContext/index.docs.md +12 -10
  19. package/runtime/knowledge/docs/core/composables/useApiClient/useApiClient.docs.md +11 -14
  20. package/runtime/knowledge/docs/core/composables/useAppBarMobileButtons/useAppBarMobileButtons.docs.md +35 -35
  21. package/runtime/knowledge/docs/core/composables/useAppBarWidget/useAppBarWidget.docs.md +35 -35
  22. package/runtime/knowledge/docs/core/composables/useAppInsights/useAppInsights.docs.md +15 -15
  23. package/runtime/knowledge/docs/core/composables/useAssets/useAssets.docs.md +21 -18
  24. package/runtime/knowledge/docs/core/composables/useAssetsManager/useAssetsManager.docs.md +31 -27
  25. package/runtime/knowledge/docs/core/composables/useAsync/useAsync.docs.md +90 -61
  26. package/runtime/knowledge/docs/core/composables/useBeforeUnload/useBeforeUnload.docs.md +19 -18
  27. package/runtime/knowledge/docs/core/composables/useBlade/useBlade.docs.md +89 -68
  28. package/runtime/knowledge/docs/core/composables/useBladeForm/useBladeForm.docs.md +75 -19
  29. package/runtime/knowledge/docs/core/composables/useBladeRegistry/useBladeRegistry.docs.md +15 -15
  30. package/runtime/knowledge/docs/core/composables/useBladeWidgets/index.docs.md +74 -78
  31. package/runtime/knowledge/docs/core/composables/useBreadcrumbs/useBreadcrumbs.docs.md +11 -11
  32. package/runtime/knowledge/docs/core/composables/useConnectionStatus/useConnectionStatus.docs.md +27 -15
  33. package/runtime/knowledge/docs/core/composables/useDashboard/useDashboard.docs.md +30 -30
  34. package/runtime/knowledge/docs/core/composables/useDynamicProperties/useDynamicProperties.docs.md +34 -36
  35. package/runtime/knowledge/docs/core/composables/useErrorHandler/useErrorHandler.docs.md +44 -23
  36. package/runtime/knowledge/docs/core/composables/useFunctions/useFunctions.docs.md +14 -11
  37. package/runtime/knowledge/docs/core/composables/useKeyboardNavigation/useKeyboardNavigation.docs.md +47 -38
  38. package/runtime/knowledge/docs/core/composables/useLanguages/useLanguages.docs.md +37 -28
  39. package/runtime/knowledge/docs/core/composables/useLoading/useLoading.docs.md +23 -17
  40. package/runtime/knowledge/docs/core/composables/useMenuExpanded/index.docs.md +10 -10
  41. package/runtime/knowledge/docs/core/composables/useMenuService/useMenuService.docs.md +42 -42
  42. package/runtime/knowledge/docs/core/composables/useModificationTracker/useModificationTracker.docs.md +22 -12
  43. package/runtime/knowledge/docs/core/composables/useNotifications/useNotifications.docs.md +33 -41
  44. package/runtime/knowledge/docs/core/composables/usePermissions/usePermissions.docs.md +16 -16
  45. package/runtime/knowledge/docs/core/composables/usePopup/usePopup.docs.md +32 -24
  46. package/runtime/knowledge/docs/core/composables/useResponsive/useResponsive.docs.md +32 -11
  47. package/runtime/knowledge/docs/core/composables/useSettings/useSettings.docs.md +24 -15
  48. package/runtime/knowledge/docs/core/composables/useSettingsMenu/useSettingsMenu.docs.md +7 -7
  49. package/runtime/knowledge/docs/core/composables/useSidebarState/useSidebarState.docs.md +32 -24
  50. package/runtime/knowledge/docs/core/composables/useSlowNetworkDetection/useSlowNetworkDetection.docs.md +21 -17
  51. package/runtime/knowledge/docs/core/composables/useTheme/useTheme.docs.md +24 -24
  52. package/runtime/knowledge/docs/core/composables/useToolbar/useToolbar.docs.md +28 -31
  53. package/runtime/knowledge/docs/core/composables/useUser/useUser.docs.md +43 -24
  54. package/runtime/knowledge/docs/core/composables/useUserManagement/useUserManagement.docs.md +68 -48
  55. package/runtime/knowledge/docs/core/composables/useWebVitals/useWebVitals.docs.md +19 -19
  56. package/runtime/knowledge/docs/core/composables/useWidgets/useWidgets.docs.md +42 -47
  57. package/runtime/knowledge/docs/core/directives/autofocus/autofocus.docs.md +10 -4
  58. package/runtime/knowledge/docs/core/directives/loading/loading.docs.md +35 -20
  59. package/runtime/knowledge/docs/core/notifications/notifications.docs.md +36 -35
  60. package/runtime/knowledge/docs/core/plugins/ai-agent/ai-agent.docs.md +38 -38
  61. package/runtime/knowledge/docs/core/plugins/extension-points/extension-points.docs.md +107 -91
  62. package/runtime/knowledge/docs/core/plugins/global-error-handler/global-error-handler.docs.md +10 -10
  63. package/runtime/knowledge/docs/core/plugins/i18n/i18n.docs.md +21 -23
  64. package/runtime/knowledge/docs/core/plugins/modularity/modularity.docs.md +98 -90
  65. package/runtime/knowledge/docs/core/plugins/permissions/permissions.docs.md +10 -16
  66. package/runtime/knowledge/docs/core/plugins/signalR/signalR.docs.md +9 -9
  67. package/runtime/knowledge/docs/core/plugins/validation/validation.docs.md +65 -22
  68. package/runtime/knowledge/docs/core/services/services.docs.md +19 -22
  69. package/runtime/knowledge/docs/core/types/types.docs.md +40 -40
  70. package/runtime/knowledge/docs/core/utilities/date/date-utilities.docs.md +27 -27
  71. package/runtime/knowledge/docs/core/utilities/shared-utilities.docs.md +23 -23
  72. package/runtime/knowledge/docs/core/utilities/thumbnail/thumbnail.docs.md +22 -25
  73. package/runtime/knowledge/docs/core/utilities/utilities.docs.md +64 -64
  74. package/runtime/knowledge/docs/injection-keys.docs.md +52 -51
  75. package/runtime/knowledge/docs/modules/assets-manager/assets-manager.docs.md +9 -9
  76. package/runtime/knowledge/docs/shell/_internal/popup/common/popup-common.docs.md +23 -43
  77. package/runtime/knowledge/docs/shell/auth/ChangePasswordPage/change-password-page.docs.md +102 -0
  78. package/runtime/knowledge/docs/shell/auth/ForgotPasswordPage/forgot-password-page.docs.md +5 -5
  79. package/runtime/knowledge/docs/shell/auth/InvitePage/invite-page.docs.md +8 -7
  80. package/runtime/knowledge/docs/shell/auth/LoginPage/login-page.docs.md +7 -7
  81. package/runtime/knowledge/docs/shell/auth/ResetPasswordPage/reset-password-page.docs.md +8 -7
  82. package/runtime/knowledge/docs/shell/auth/sign-in/sign-in.docs.md +29 -13
  83. package/runtime/knowledge/docs/shell/components/change-password/change-password.docs.md +13 -16
  84. package/runtime/knowledge/docs/shell/components/change-password-button/change-password-button.docs.md +1 -7
  85. package/runtime/knowledge/docs/shell/components/error-interceptor/error-interceptor.docs.md +5 -5
  86. package/runtime/knowledge/docs/shell/components/language-selector/language-selector.docs.md +1 -1
  87. package/runtime/knowledge/docs/shell/components/logout-button/logout-button.docs.md +1 -1
  88. package/runtime/knowledge/docs/shell/components/notification-template/notification-template.docs.md +17 -9
  89. package/runtime/knowledge/docs/shell/components/settings-menu/settings-menu.docs.md +12 -18
  90. package/runtime/knowledge/docs/shell/components/settings-menu-item/settings-menu-item.docs.md +34 -65
  91. package/runtime/knowledge/docs/shell/components/sidebar/sidebar.docs.md +16 -26
  92. package/runtime/knowledge/docs/shell/components/theme-selector/theme-selector.docs.md +2 -2
  93. package/runtime/knowledge/docs/shell/components/user-dropdown-button/user-dropdown-button.docs.md +7 -9
  94. package/runtime/knowledge/docs/shell/dashboard/dashboard-charts/dashboard-charts.docs.md +30 -40
  95. package/runtime/knowledge/docs/shell/dashboard/dashboard-widget-card/dashboard-widget-card.docs.md +26 -19
  96. package/runtime/knowledge/docs/shell/dashboard/draggable-dashboard/draggable-dashboard.docs.md +15 -12
  97. package/runtime/knowledge/docs/ui/components/atoms/vc-badge/vc-badge.docs.md +15 -26
  98. package/runtime/knowledge/docs/ui/components/atoms/vc-banner/vc-banner.docs.md +21 -19
  99. package/runtime/knowledge/docs/ui/components/atoms/vc-button/vc-button.docs.md +83 -67
  100. package/runtime/knowledge/docs/ui/components/atoms/vc-card/vc-card.docs.md +104 -59
  101. package/runtime/knowledge/docs/ui/components/atoms/vc-col/vc-col.docs.md +28 -11
  102. package/runtime/knowledge/docs/ui/components/atoms/vc-container/vc-container.docs.md +20 -17
  103. package/runtime/knowledge/docs/ui/components/atoms/vc-hint/vc-hint.docs.md +26 -17
  104. package/runtime/knowledge/docs/ui/components/atoms/vc-icon/vc-icon.docs.md +30 -32
  105. package/runtime/knowledge/docs/ui/components/atoms/vc-image/vc-image.docs.md +25 -48
  106. package/runtime/knowledge/docs/ui/components/atoms/vc-label/vc-label.docs.md +29 -24
  107. package/runtime/knowledge/docs/ui/components/atoms/vc-link/vc-link.docs.md +23 -15
  108. package/runtime/knowledge/docs/ui/components/atoms/vc-loading/vc-loading.docs.md +22 -13
  109. package/runtime/knowledge/docs/ui/components/atoms/vc-progress/vc-progress.docs.md +33 -18
  110. package/runtime/knowledge/docs/ui/components/atoms/vc-row/vc-row.docs.md +56 -15
  111. package/runtime/knowledge/docs/ui/components/atoms/vc-scrollable-container/vc-scrollable-container.docs.md +28 -15
  112. package/runtime/knowledge/docs/ui/components/atoms/vc-skeleton/vc-skeleton.docs.md +40 -20
  113. package/runtime/knowledge/docs/ui/components/atoms/vc-status/vc-status.docs.md +25 -14
  114. package/runtime/knowledge/docs/ui/components/atoms/vc-status-icon/vc-status-icon.docs.md +40 -14
  115. package/runtime/knowledge/docs/ui/components/atoms/vc-tooltip/vc-tooltip.docs.md +54 -42
  116. package/runtime/knowledge/docs/ui/components/atoms/vc-video/vc-video.docs.md +17 -17
  117. package/runtime/knowledge/docs/ui/components/atoms/vc-widget/vc-widget.docs.md +21 -21
  118. package/runtime/knowledge/docs/ui/components/molecules/multilanguage-selector/multilanguage-selector.docs.md +23 -10
  119. package/runtime/knowledge/docs/ui/components/molecules/vc-accordion/vc-accordion.docs.md +59 -44
  120. package/runtime/knowledge/docs/ui/components/molecules/vc-breadcrumbs/vc-breadcrumbs.docs.md +23 -20
  121. package/runtime/knowledge/docs/ui/components/molecules/vc-checkbox/vc-checkbox.docs.md +96 -64
  122. package/runtime/knowledge/docs/ui/components/molecules/vc-checkbox-group/vc-checkbox-group.docs.md +26 -35
  123. package/runtime/knowledge/docs/ui/components/molecules/vc-color-input/vc-color-input.docs.md +69 -22
  124. package/runtime/knowledge/docs/ui/components/molecules/vc-date-picker/vc-date-picker.docs.md +58 -72
  125. package/runtime/knowledge/docs/ui/components/molecules/vc-dropdown/vc-dropdown.docs.md +91 -85
  126. package/runtime/knowledge/docs/ui/components/molecules/vc-dropdown-panel/vc-dropdown-panel.docs.md +38 -42
  127. package/runtime/knowledge/docs/ui/components/molecules/vc-editor/vc-editor.docs.md +60 -72
  128. package/runtime/knowledge/docs/ui/components/molecules/vc-field/vc-field.docs.md +65 -26
  129. package/runtime/knowledge/docs/ui/components/molecules/vc-file-upload/vc-file-upload.docs.md +46 -49
  130. package/runtime/knowledge/docs/ui/components/molecules/vc-form/vc-form.docs.md +35 -64
  131. package/runtime/knowledge/docs/ui/components/molecules/vc-image-tile/vc-image-tile.docs.md +38 -41
  132. package/runtime/knowledge/docs/ui/components/molecules/vc-input/vc-input.docs.md +115 -130
  133. package/runtime/knowledge/docs/ui/components/molecules/vc-input-currency/vc-input-currency.docs.md +53 -87
  134. package/runtime/knowledge/docs/ui/components/molecules/vc-input-dropdown/vc-input-dropdown.docs.md +56 -63
  135. package/runtime/knowledge/docs/ui/components/molecules/vc-input-group/vc-input-group.docs.md +29 -24
  136. package/runtime/knowledge/docs/ui/components/molecules/vc-menu/vc-menu.docs.md +32 -28
  137. package/runtime/knowledge/docs/ui/components/molecules/vc-multivalue/vc-multivalue.docs.md +63 -64
  138. package/runtime/knowledge/docs/ui/components/molecules/vc-pagination/vc-pagination.docs.md +28 -26
  139. package/runtime/knowledge/docs/ui/components/molecules/vc-radio-button/vc-radio-button.docs.md +59 -19
  140. package/runtime/knowledge/docs/ui/components/molecules/vc-radio-group/vc-radio-group.docs.md +25 -34
  141. package/runtime/knowledge/docs/ui/components/molecules/vc-rating/vc-rating.docs.md +42 -32
  142. package/runtime/knowledge/docs/ui/components/molecules/vc-select/vc-select.docs.md +78 -82
  143. package/runtime/knowledge/docs/ui/components/molecules/vc-slider/vc-slider.docs.md +25 -15
  144. package/runtime/knowledge/docs/ui/components/molecules/vc-switch/vc-switch.docs.md +59 -63
  145. package/runtime/knowledge/docs/ui/components/molecules/vc-textarea/vc-textarea.docs.md +57 -69
  146. package/runtime/knowledge/docs/ui/components/molecules/vc-toast/vc-toast.docs.md +58 -57
  147. package/runtime/knowledge/docs/ui/components/organisms/vc-app/vc-app.docs.md +49 -26
  148. package/runtime/knowledge/docs/ui/components/organisms/vc-auth-layout/vc-auth-layout.docs.md +82 -28
  149. package/runtime/knowledge/docs/ui/components/organisms/vc-blade/vc-blade.docs.md +120 -75
  150. package/runtime/knowledge/docs/ui/components/organisms/vc-data-table/composables/table-composables.docs.md +30 -44
  151. package/runtime/knowledge/docs/ui/components/organisms/vc-data-table/vc-data-table.docs.md +536 -365
  152. package/runtime/knowledge/docs/ui/components/organisms/vc-dynamic-property/vc-dynamic-property.docs.md +35 -52
  153. package/runtime/knowledge/docs/ui/components/organisms/vc-gallery/vc-gallery.docs.md +33 -62
  154. package/runtime/knowledge/docs/ui/components/organisms/vc-image-upload/vc-image-upload.docs.md +17 -23
  155. package/runtime/knowledge/docs/ui/components/organisms/vc-popup/vc-popup.docs.md +109 -68
  156. package/runtime/knowledge/docs/ui/components/organisms/vc-sidebar/vc-sidebar.docs.md +82 -44
  157. package/runtime/knowledge/docs/ui/composables/ui-composables.docs.md +8 -8
  158. package/runtime/knowledge/docs/ui/composables/useDataTablePagination.docs.md +164 -0
  159. package/runtime/knowledge/docs/ui/composables/useDataTableSort.docs.md +34 -26
  160. package/runtime/knowledge/docs/ui/composables/useTableSelection.docs.md +48 -40
  161. package/runtime/knowledge/docs/ui/composables/useTableSort.docs.md +30 -17
  162. package/runtime/knowledge/docs/ui/types/ui-types.docs.md +40 -29
  163. package/runtime/knowledge/examples/offers-module.md +15 -13
  164. package/runtime/knowledge/examples/team-module.md +82 -119
  165. package/runtime/knowledge/examples/videos-module.md +44 -17
  166. package/runtime/knowledge/index.md +22 -0
  167. package/runtime/knowledge/migration-prompts/blade-form-migration.md +255 -0
  168. package/runtime/knowledge/migration-prompts/blade-props-migration.md +194 -0
  169. package/runtime/knowledge/migration-prompts/datatable-migration.md +801 -0
  170. package/runtime/knowledge/migration-prompts/icon-migration.md +97 -0
  171. package/runtime/knowledge/migration-prompts/manual-migration-audit.md +117 -0
  172. package/runtime/knowledge/migration-prompts/notifications-migration.md +223 -0
  173. package/runtime/knowledge/migration-prompts/nswag-migration.md +244 -0
  174. package/runtime/knowledge/migration-prompts/use-assets-migration.md +164 -0
  175. package/runtime/knowledge/migration-prompts/use-data-table-pagination-migration.md +176 -0
  176. package/runtime/knowledge/migration-prompts/widgets-migration.md +178 -0
  177. package/runtime/knowledge/patterns/assets-management.md +20 -20
  178. package/runtime/knowledge/patterns/blade-navigation.md +7 -14
  179. package/runtime/knowledge/patterns/blade-widget.md +19 -17
  180. package/runtime/knowledge/patterns/child-blade-flow.md +19 -7
  181. package/runtime/knowledge/patterns/composable-details.md +20 -50
  182. package/runtime/knowledge/patterns/composable-list.md +43 -31
  183. package/runtime/knowledge/patterns/dashboard-widget.md +14 -16
  184. package/runtime/knowledge/patterns/datatable-pattern.md +521 -0
  185. package/runtime/knowledge/patterns/details-blade-pattern.md +78 -116
  186. package/runtime/knowledge/patterns/extension-points-usage.md +53 -44
  187. package/runtime/knowledge/patterns/form-validation.md +28 -64
  188. package/runtime/knowledge/patterns/list-blade-pattern.md +33 -21
  189. package/runtime/knowledge/patterns/module-structure.md +7 -1
  190. package/runtime/knowledge/patterns/multilanguage-fields.md +8 -14
  191. package/runtime/knowledge/patterns/notification-template.md +21 -14
  192. package/runtime/knowledge/patterns/signalr-notifications.md +30 -32
  193. package/runtime/knowledge/patterns/toolbar-pattern.md +18 -20
  194. package/runtime/vc-app.md +354 -49
  195. package/runtime/knowledge/docs/core/constants/constants.docs.md +0 -185
@@ -12,8 +12,8 @@ The directive is registered globally by the framework, so no manual import is ne
12
12
 
13
13
  ## API
14
14
 
15
- | Binding | Type | Description |
16
- |---------|------|-------------|
15
+ | Binding | Type | Description |
16
+ | ------------------------- | --------- | --------------------------------------------------- |
17
17
  | `v-autofocus="condition"` | `boolean` | Focus the element on mount if `condition` is truthy |
18
18
 
19
19
  The directive only acts on the `mounted` hook. It does not re-focus on updates.
@@ -40,7 +40,10 @@ export const autofocus = {
40
40
  ```vue
41
41
  <template>
42
42
  <!-- The search field gets focus as soon as the blade opens -->
43
- <input v-autofocus="true" placeholder="Search orders..." />
43
+ <input
44
+ v-autofocus="true"
45
+ placeholder="Search orders..."
46
+ />
44
47
  </template>
45
48
  ```
46
49
 
@@ -68,7 +71,10 @@ const isEditMode = computed(() => !!props.param);
68
71
 
69
72
  ```vue
70
73
  <template>
71
- <VcPopup v-model:show="showDialog" title="Rename Item">
74
+ <VcPopup
75
+ v-model:show="showDialog"
76
+ title="Rename Item"
77
+ >
72
78
  <VcInput
73
79
  v-autofocus="showDialog"
74
80
  v-model="newName"
@@ -14,20 +14,20 @@ Unlike a standalone loading component, `v-loading` scopes the overlay to the ele
14
14
 
15
15
  ## API
16
16
 
17
- | Binding | Type | Description |
18
- |---------|------|-------------|
19
- | `v-loading="true"` | `boolean` | Show/hide the loading overlay |
20
- | `v-loading="options"` | `LoadingOptions` | Show with configuration (see below) |
21
- | `v-loading:1000="true"` | `arg: string` | Set custom z-index (default: `9999`) |
17
+ | Binding | Type | Description |
18
+ | ----------------------- | ---------------- | ------------------------------------ |
19
+ | `v-loading="true"` | `boolean` | Show/hide the loading overlay |
20
+ | `v-loading="options"` | `LoadingOptions` | Show with configuration (see below) |
21
+ | `v-loading:1000="true"` | `arg: string` | Set custom z-index (default: `9999`) |
22
22
 
23
23
  ### LoadingOptions
24
24
 
25
- | Property | Type | Default | Description |
26
- |----------|------|---------|-------------|
27
- | `size` | `"small" \| "medium" \| "large"` | -- | Spinner size via `data-loading-size` attribute |
28
- | `color` | `string` | -- | Custom spinner color (sets `--v-loading-spinner-color`) |
29
- | `blur` | `boolean` | `true` | Enable backdrop blur; `false` adds `v-loading--no-blur` |
30
- | `fullscreen` | `boolean` | `false` | Fullscreen overlay via `v-loading--fullscreen` |
25
+ | Property | Type | Default | Description |
26
+ | ------------ | -------------------------------- | ------- | ------------------------------------------------------- |
27
+ | `size` | `"small" \| "medium" \| "large"` | -- | Spinner size via `data-loading-size` attribute |
28
+ | `color` | `string` | -- | Custom spinner color (sets `--v-loading-spinner-color`) |
29
+ | `blur` | `boolean` | `true` | Enable backdrop blur; `false` adds `v-loading--no-blur` |
30
+ | `fullscreen` | `boolean` | `false` | Fullscreen overlay via `v-loading--fullscreen` |
31
31
 
32
32
  ## How It Works
33
33
 
@@ -45,7 +45,10 @@ Because the directive modifies the element directly (not through Vue reactivity)
45
45
 
46
46
  ```vue
47
47
  <template>
48
- <div v-loading="isLoading" class="tw-min-h-[200px]">
48
+ <div
49
+ v-loading="isLoading"
50
+ class="tw-min-h-[200px]"
51
+ >
49
52
  <p>Order details will appear here</p>
50
53
  </div>
51
54
  </template>
@@ -72,7 +75,10 @@ async function loadOrder() {
72
75
  <template>
73
76
  <!-- Small spinner with brand color, no blur -->
74
77
  <div v-loading="{ size: 'small', color: 'var(--primary-500)', blur: false }">
75
- <img :src="thumbnailUrl" alt="Product thumbnail" />
78
+ <img
79
+ :src="thumbnailUrl"
80
+ alt="Product thumbnail"
81
+ />
76
82
  </div>
77
83
  </template>
78
84
  ```
@@ -104,9 +110,18 @@ async function loadOrder() {
104
110
 
105
111
  ```vue
106
112
  <template>
107
- <VcBlade title="Products" :closable="true">
108
- <div v-loading="loading" class="tw-p-4">
109
- <VcDataTable :items="products" :columns="columns" />
113
+ <VcBlade
114
+ title="Products"
115
+ :closable="true"
116
+ >
117
+ <div
118
+ v-loading="loading"
119
+ class="tw-p-4"
120
+ >
121
+ <VcDataTable
122
+ :items="products"
123
+ :columns="columns"
124
+ />
110
125
  </div>
111
126
  </VcBlade>
112
127
  </template>
@@ -146,10 +161,10 @@ Passing an options object when you want to hide the spinner does not work as exp
146
161
 
147
162
  ## CSS Classes Reference
148
163
 
149
- | Class | Applied When | Effect |
150
- |-------|-------------|--------|
151
- | `v-loading` | Value is truthy | Shows the spinner overlay |
152
- | `v-loading--no-blur` | `blur: false` | Disables backdrop blur filter |
164
+ | Class | Applied When | Effect |
165
+ | ----------------------- | ------------------ | ---------------------------------- |
166
+ | `v-loading` | Value is truthy | Shows the spinner overlay |
167
+ | `v-loading--no-blur` | `blur: false` | Disables backdrop blur filter |
153
168
  | `v-loading--fullscreen` | `fullscreen: true` | Overlay covers the entire viewport |
154
169
 
155
170
  ## Related
@@ -31,6 +31,7 @@ PushNotification (SignalR)
31
31
  ### `useNotificationStore()`
32
32
 
33
33
  Returns the shared `NotificationStore` singleton. Resolution order:
34
+
34
35
  1. Vue `inject()` (inside component setup or `app.runWithContext()`)
35
36
  2. Module-level singleton fallback (ensures microfrontend modules share state)
36
37
 
@@ -38,20 +39,20 @@ Returns the shared `NotificationStore` singleton. Resolution order:
38
39
 
39
40
  ### `NotificationStore` Interface
40
41
 
41
- | Member | Type | Description |
42
- |--------|------|-------------|
43
- | `registry` | `Map<string, NotificationTypeConfig>` | Registered notification type configurations |
44
- | `history` | `Ref<PushNotification[]>` | All notifications (loaded from API + ingested) |
45
- | `realtime` | `Ref<PushNotification[]>` | Session-only notifications from SignalR |
46
- | `unreadCount` | `ComputedRef<number>` | Count of unread notifications in history |
47
- | `hasUnread` | `ComputedRef<boolean>` | Whether any unread notifications exist |
48
- | `registerType(type, config)` | `(string, NotificationTypeConfig) => void` | Register a notification type with toast/template config |
49
- | `ingest(message)` | `(PushNotification) => void` | Process an incoming notification (upsert, toast, notify subscribers) |
50
- | `markAsRead(message)` | `(PushNotification) => void` | Mark a single notification as read |
51
- | `markAllAsRead()` | `() => Promise<void>` | Optimistic mark-all-as-read with server sync and rollback on failure |
52
- | `loadHistory(take?)` | `(number?) => Promise<void>` | Load notification history from the API (default: 10) |
53
- | `subscribe(opts)` | `({types, filter?, handler?}) => () => void` | Subscribe to notification types; returns unsubscribe function |
54
- | `getByType(type)` | `(string) => PushNotification[]` | Filter history by `notifyType` |
42
+ | Member | Type | Description |
43
+ | ---------------------------- | -------------------------------------------- | -------------------------------------------------------------------- |
44
+ | `registry` | `Map<string, NotificationTypeConfig>` | Registered notification type configurations |
45
+ | `history` | `Ref<PushNotification[]>` | All notifications (loaded from API + ingested) |
46
+ | `realtime` | `Ref<PushNotification[]>` | Session-only notifications from SignalR |
47
+ | `unreadCount` | `ComputedRef<number>` | Count of unread notifications in history |
48
+ | `hasUnread` | `ComputedRef<boolean>` | Whether any unread notifications exist |
49
+ | `registerType(type, config)` | `(string, NotificationTypeConfig) => void` | Register a notification type with toast/template config |
50
+ | `ingest(message)` | `(PushNotification) => void` | Process an incoming notification (upsert, toast, notify subscribers) |
51
+ | `markAsRead(message)` | `(PushNotification) => void` | Mark a single notification as read |
52
+ | `markAllAsRead()` | `() => Promise<void>` | Optimistic mark-all-as-read with server sync and rollback on failure |
53
+ | `loadHistory(take?)` | `(number?) => Promise<void>` | Load notification history from the API (default: 10) |
54
+ | `subscribe(opts)` | `({types, filter?, handler?}) => () => void` | Subscribe to notification types; returns unsubscribe function |
55
+ | `getByType(type)` | `(string) => PushNotification[]` | Filter history by `notifyType` |
55
56
 
56
57
  **File:** `store.ts`
57
58
 
@@ -65,9 +66,9 @@ Blade-level notification subscription (Level 2). Automatically unsubscribes when
65
66
 
66
67
  ```typescript
67
68
  interface BladeNotificationOptions<T extends PushNotification> {
68
- types: string[]; // Notification types to subscribe to
69
- filter?: (msg: T) => boolean; // Optional message filter
70
- onMessage?: (msg: T) => void; // Callback for each matching message
69
+ types: string[]; // Notification types to subscribe to
70
+ filter?: (msg: T) => boolean; // Optional message filter
71
+ onMessage?: (msg: T) => void; // Callback for each matching message
71
72
  }
72
73
  ```
73
74
 
@@ -75,9 +76,9 @@ interface BladeNotificationOptions<T extends PushNotification> {
75
76
 
76
77
  ```typescript
77
78
  interface BladeNotificationReturn<T extends PushNotification> {
78
- messages: ComputedRef<T[]>; // Filtered unread messages from realtime
79
+ messages: ComputedRef<T[]>; // Filtered unread messages from realtime
79
80
  unreadCount: ComputedRef<number>; // Count of matching unread messages
80
- markAsRead: (msg: T) => void; // Mark a specific message as read
81
+ markAsRead: (msg: T) => void; // Mark a specific message as read
81
82
  }
82
83
  ```
83
84
 
@@ -112,26 +113,26 @@ Handles toast popup display based on `NotificationTypeConfig.toast` settings. Cr
112
113
 
113
114
  #### Toast Modes
114
115
 
115
- | Mode | Behavior |
116
- |------|----------|
117
- | `"auto"` | Single fire-and-forget toast with severity-based timeout |
116
+ | Mode | Behavior |
117
+ | ------------ | ------------------------------------------------------------------------------------------- |
118
+ | `"auto"` | Single fire-and-forget toast with severity-based timeout |
118
119
  | `"progress"` | Persistent toast updated on each message; auto-completes when `isComplete()` returns `true` |
119
- | `"silent"` | No toast displayed |
120
+ | `"silent"` | No toast displayed |
120
121
 
121
122
  ### Types
122
123
 
123
124
  **File:** `types.ts`
124
125
 
125
- | Type | Description |
126
- |------|-------------|
127
- | `Severity` | `"info" \| "warning" \| "error" \| "critical"` |
128
- | `ToastConfig` | Toast behavior: mode, severity (static or function), timeout, isComplete, completedType |
129
- | `NotificationTypeConfig` | Per-type config: optional Vue `template` component, `toast` config, `groupBy` field |
130
- | `ModuleNotificationsConfig` | Record mapping `notifyType` strings to `NotificationTypeConfig` |
131
- | `NotificationAction` | Action button in notification UI: label, icon, handler, visibility |
132
- | `NotificationSubscription` | Internal subscriber record: id, types, filter, handler |
133
- | `SEVERITY_TIMEOUTS` | Default timeouts: info=5s, warning=8s, error=persistent, critical=persistent |
134
- | `EXCLUDED_NOTIFICATION_TYPES` | Types excluded from ingestion (e.g. `"IndexProgressPushNotification"`) |
126
+ | Type | Description |
127
+ | ----------------------------- | --------------------------------------------------------------------------------------- |
128
+ | `Severity` | `"info" \| "warning" \| "error" \| "critical"` |
129
+ | `ToastConfig` | Toast behavior: mode, severity (static or function), timeout, isComplete, completedType |
130
+ | `NotificationTypeConfig` | Per-type config: optional Vue `template` component, `toast` config, `groupBy` field |
131
+ | `ModuleNotificationsConfig` | Record mapping `notifyType` strings to `NotificationTypeConfig` |
132
+ | `NotificationAction` | Action button in notification UI: label, icon, handler, visibility |
133
+ | `NotificationSubscription` | Internal subscriber record: id, types, filter, handler |
134
+ | `SEVERITY_TIMEOUTS` | Default timeouts: info=5s, warning=8s, error=persistent, critical=persistent |
135
+ | `EXCLUDED_NOTIFICATION_TYPES` | Types excluded from ingestion (e.g. `"IndexProgressPushNotification"`) |
135
136
 
136
137
  ## Usage Examples
137
138
 
@@ -155,9 +156,9 @@ store.registerType("CatalogExportCompleted", {
155
156
  template: ExportNotificationTemplate,
156
157
  toast: {
157
158
  mode: "progress",
158
- severity: (msg) => msg.finished ? "info" : "warning",
159
+ severity: (msg) => (msg.finished ? "info" : "warning"),
159
160
  isComplete: (msg) => !!msg.finished,
160
- completedType: (msg) => msg.errorCount ? "error" : "success",
161
+ completedType: (msg) => (msg.errorCount ? "error" : "success"),
161
162
  },
162
163
  groupBy: "jobId",
163
164
  });
@@ -36,63 +36,65 @@ app.use(aiAgentPlugin, {
36
36
 
37
37
  ### Plugin Options: `AiAgentPluginOptions`
38
38
 
39
- | Option | Type | Default | Description |
40
- |--------|------|---------|-------------|
41
- | `config` | `Partial<IAiAgentConfig>` | `{}` | Panel configuration (see below) |
42
- | `addGlobalToolbarButton` | `boolean` | `true` | Adds an AI button to every blade's toolbar |
39
+ | Option | Type | Default | Description |
40
+ | ------------------------ | ------------------------- | ------- | ------------------------------------------ |
41
+ | `config` | `Partial<IAiAgentConfig>` | `{}` | Panel configuration (see below) |
42
+ | `addGlobalToolbarButton` | `boolean` | `true` | Adds an AI button to every blade's toolbar |
43
43
 
44
44
  ### `IAiAgentConfig`
45
45
 
46
- | Field | Type | Default | Description |
47
- |-------|------|---------|-------------|
48
- | `url` | `string` | `""` | Chatbot iframe URL (required) |
49
- | `title` | `string` | `"Virto OZ"` | Panel header title |
50
- | `width` | `number` | `362` | Panel width in pixels |
51
- | `expandedWidth` | `number` | `500` | Panel width when expanded |
52
- | `allowedOrigins` | `string[]` | `["*"]` | Allowed origins for postMessage validation |
46
+ | Field | Type | Default | Description |
47
+ | ---------------- | ---------- | ------------ | ------------------------------------------ |
48
+ | `url` | `string` | `""` | Chatbot iframe URL (required) |
49
+ | `title` | `string` | `"Virto OZ"` | Panel header title |
50
+ | `width` | `number` | `362` | Panel width in pixels |
51
+ | `expandedWidth` | `number` | `500` | Panel width when expanded |
52
+ | `allowedOrigins` | `string[]` | `["*"]` | Allowed origins for postMessage validation |
53
53
 
54
54
  ### Composable: `useAiAgent()`
55
55
 
56
56
  Access the AI agent service from any component within the app.
57
57
 
58
- | Return | Type | Description |
59
- |--------|------|-------------|
60
- | `panelState` | `Ref<"closed" \| "open" \| "expanded">` | Current panel state |
61
- | `isOpen` | `ComputedRef<boolean>` | Whether the panel is visible |
62
- | `isExpanded` | `ComputedRef<boolean>` | Whether the panel is in expanded mode |
63
- | `totalItemsCount` | `ComputedRef<number>` | Number of context items |
64
- | `config` | `Ref<IAiAgentConfig>` | Current configuration |
65
- | `context` | `ComputedRef<IAiAgentContext>` | Full reactive context |
66
- | `openPanel()` | `() => void` | Open the AI panel |
67
- | `closePanel()` | `() => void` | Close the AI panel |
68
- | `togglePanel()` | `() => void` | Toggle open/close |
69
- | `expandPanel()` | `() => void` | Expand to larger width |
70
- | `collapsePanel()` | `() => void` | Collapse to normal width |
71
- | `setConfig()` | `(config: Partial<IAiAgentConfig>) => void` | Update configuration |
72
- | `sendMessage()` | `(type, payload) => void` | Send message to chatbot iframe |
73
- | `onMessage()` | `(handler) => () => void` | Register message handler (returns unsubscribe) |
58
+ | Return | Type | Description |
59
+ | ----------------- | ------------------------------------------- | ---------------------------------------------- |
60
+ | `panelState` | `Ref<"closed" \| "open" \| "expanded">` | Current panel state |
61
+ | `isOpen` | `ComputedRef<boolean>` | Whether the panel is visible |
62
+ | `isExpanded` | `ComputedRef<boolean>` | Whether the panel is in expanded mode |
63
+ | `totalItemsCount` | `ComputedRef<number>` | Number of context items |
64
+ | `config` | `Ref<IAiAgentConfig>` | Current configuration |
65
+ | `context` | `ComputedRef<IAiAgentContext>` | Full reactive context |
66
+ | `openPanel()` | `() => void` | Open the AI panel |
67
+ | `closePanel()` | `() => void` | Close the AI panel |
68
+ | `togglePanel()` | `() => void` | Toggle open/close |
69
+ | `expandPanel()` | `() => void` | Expand to larger width |
70
+ | `collapsePanel()` | `() => void` | Collapse to normal width |
71
+ | `setConfig()` | `(config: Partial<IAiAgentConfig>) => void` | Update configuration |
72
+ | `sendMessage()` | `(type, payload) => void` | Send message to chatbot iframe |
73
+ | `onMessage()` | `(handler) => () => void` | Register message handler (returns unsubscribe) |
74
74
 
75
75
  ### Composable: `useAiAgentContext(options)`
76
76
 
77
77
  Binds blade data to the AI agent context. Call this in each blade that should participate in AI interactions.
78
78
 
79
- | Option | Type | Description |
80
- |--------|------|-------------|
81
- | `dataRef` | `Ref<T> \| Ref<T[]>` | Data to send (single object for details, array for list) |
82
- | `suggestions` | `ISuggestion[]` | Custom suggestion cards for the chatbot UI |
79
+ | Option | Type | Description |
80
+ | ------------- | -------------------- | -------------------------------------------------------- |
81
+ | `dataRef` | `Ref<T> \| Ref<T[]>` | Data to send (single object for details, array for list) |
82
+ | `suggestions` | `ISuggestion[]` | Custom suggestion cards for the chatbot UI |
83
83
 
84
- | Return | Type | Description |
85
- |--------|------|-------------|
86
- | `previewState.isActive` | `ComputedRef<boolean>` | Whether AI-suggested changes are being previewed |
87
- | `previewState.changedFields` | `ComputedRef<string[]>` | List of field names with pending changes |
84
+ | Return | Type | Description |
85
+ | ---------------------------- | ----------------------- | ------------------------------------------------ |
86
+ | `previewState.isActive` | `ComputedRef<boolean>` | Whether AI-suggested changes are being previewed |
87
+ | `previewState.changedFields` | `ComputedRef<string[]>` | List of field names with pending changes |
88
88
 
89
89
  ### PostMessage Protocol
90
90
 
91
91
  **Shell to Chatbot:**
92
+
92
93
  - `INIT_CONTEXT` -- Initial context when chatbot loads (user, blade, items, suggestions, token)
93
94
  - `UPDATE_CONTEXT` -- Context updates when blade/items change
94
95
 
95
96
  **Chatbot to Shell:**
97
+
96
98
  - `CHAT_READY` -- Chatbot finished loading
97
99
  - `NAVIGATE_TO_APP` -- Open a specific blade
98
100
  - `PREVIEW_CHANGES` -- Preview data changes in the form
@@ -110,9 +112,7 @@ Binds blade data to the AI agent context. Call this in each blade that should pa
110
112
  const product = ref<Product>({});
111
113
  const { previewState } = useAiAgentContext({
112
114
  dataRef: product,
113
- suggestions: [
114
- { id: "translate", title: "Translate", icon: "translation", prompt: "Translate to English" },
115
- ],
115
+ suggestions: [{ id: "translate", title: "Translate", icon: "translation", prompt: "Translate to English" }],
116
116
  });
117
117
 
118
118
  // In a list blade