@vc-shell/vc-app-skill 2.0.0-alpha.33 → 2.0.0-alpha.34

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 +78 -54
  2. package/README.md +42 -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 +18 -7
  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 +28 -24
  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 +27 -25
  29. package/runtime/knowledge/docs/core/composables/useBladeRegistry/useBladeRegistry.docs.md +15 -15
  30. package/runtime/knowledge/docs/core/composables/useBladeWidgets/index.docs.md +43 -47
  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 +9 -9
  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/usePlatformLocaleSync/usePlatformLocaleSync.docs.md +28 -0
  46. package/runtime/knowledge/docs/core/composables/usePopup/usePopup.docs.md +32 -24
  47. package/runtime/knowledge/docs/core/composables/useResponsive/useResponsive.docs.md +32 -11
  48. package/runtime/knowledge/docs/core/composables/useSettings/useSettings.docs.md +22 -13
  49. package/runtime/knowledge/docs/core/composables/useSettingsMenu/useSettingsMenu.docs.md +7 -7
  50. package/runtime/knowledge/docs/core/composables/useSidebarState/useSidebarState.docs.md +32 -24
  51. package/runtime/knowledge/docs/core/composables/useSlowNetworkDetection/useSlowNetworkDetection.docs.md +21 -17
  52. package/runtime/knowledge/docs/core/composables/useTheme/useTheme.docs.md +24 -24
  53. package/runtime/knowledge/docs/core/composables/useToolbar/useToolbar.docs.md +28 -31
  54. package/runtime/knowledge/docs/core/composables/useUser/useUser.docs.md +43 -24
  55. package/runtime/knowledge/docs/core/composables/useUserManagement/useUserManagement.docs.md +68 -48
  56. package/runtime/knowledge/docs/core/composables/useWebVitals/useWebVitals.docs.md +19 -19
  57. package/runtime/knowledge/docs/core/composables/useWidgets/useWidgets.docs.md +42 -47
  58. package/runtime/knowledge/docs/core/directives/autofocus/autofocus.docs.md +10 -4
  59. package/runtime/knowledge/docs/core/directives/loading/loading.docs.md +35 -20
  60. package/runtime/knowledge/docs/core/notifications/notifications.docs.md +36 -35
  61. package/runtime/knowledge/docs/core/plugins/ai-agent/ai-agent.docs.md +38 -38
  62. package/runtime/knowledge/docs/core/plugins/extension-points/extension-points.docs.md +79 -62
  63. package/runtime/knowledge/docs/core/plugins/global-error-handler/global-error-handler.docs.md +10 -10
  64. package/runtime/knowledge/docs/core/plugins/i18n/i18n.docs.md +21 -23
  65. package/runtime/knowledge/docs/core/plugins/modularity/modularity.docs.md +91 -83
  66. package/runtime/knowledge/docs/core/plugins/permissions/permissions.docs.md +10 -16
  67. package/runtime/knowledge/docs/core/plugins/signalR/signalR.docs.md +9 -9
  68. package/runtime/knowledge/docs/core/plugins/validation/validation.docs.md +65 -22
  69. package/runtime/knowledge/docs/core/services/services.docs.md +19 -22
  70. package/runtime/knowledge/docs/core/types/types.docs.md +40 -40
  71. package/runtime/knowledge/docs/core/utilities/date/date-utilities.docs.md +27 -27
  72. package/runtime/knowledge/docs/core/utilities/shared-utilities.docs.md +23 -23
  73. package/runtime/knowledge/docs/core/utilities/thumbnail/thumbnail.docs.md +22 -25
  74. package/runtime/knowledge/docs/core/utilities/utilities.docs.md +64 -64
  75. package/runtime/knowledge/docs/injection-keys.docs.md +52 -51
  76. package/runtime/knowledge/docs/modules/assets-manager/assets-manager.docs.md +9 -9
  77. package/runtime/knowledge/docs/shell/_internal/popup/common/popup-common.docs.md +23 -43
  78. package/runtime/knowledge/docs/shell/auth/ChangePasswordPage/change-password-page.docs.md +5 -5
  79. package/runtime/knowledge/docs/shell/auth/ForgotPasswordPage/forgot-password-page.docs.md +5 -5
  80. package/runtime/knowledge/docs/shell/auth/InvitePage/invite-page.docs.md +8 -7
  81. package/runtime/knowledge/docs/shell/auth/LoginPage/login-page.docs.md +7 -7
  82. package/runtime/knowledge/docs/shell/auth/ResetPasswordPage/reset-password-page.docs.md +8 -7
  83. package/runtime/knowledge/docs/shell/auth/sign-in/sign-in.docs.md +29 -13
  84. package/runtime/knowledge/docs/shell/components/change-password/change-password.docs.md +13 -16
  85. package/runtime/knowledge/docs/shell/components/change-password-button/change-password-button.docs.md +1 -7
  86. package/runtime/knowledge/docs/shell/components/error-interceptor/error-interceptor.docs.md +5 -5
  87. package/runtime/knowledge/docs/shell/components/language-selector/language-selector.docs.md +1 -1
  88. package/runtime/knowledge/docs/shell/components/logout-button/logout-button.docs.md +1 -1
  89. package/runtime/knowledge/docs/shell/components/notification-template/notification-template.docs.md +17 -9
  90. package/runtime/knowledge/docs/shell/components/settings-menu/settings-menu.docs.md +11 -17
  91. package/runtime/knowledge/docs/shell/components/settings-menu-item/settings-menu-item.docs.md +34 -65
  92. package/runtime/knowledge/docs/shell/components/sidebar/sidebar.docs.md +16 -26
  93. package/runtime/knowledge/docs/shell/components/theme-selector/theme-selector.docs.md +2 -2
  94. package/runtime/knowledge/docs/shell/components/user-dropdown-button/user-dropdown-button.docs.md +7 -9
  95. package/runtime/knowledge/docs/shell/dashboard/dashboard-charts/dashboard-charts.docs.md +30 -40
  96. package/runtime/knowledge/docs/shell/dashboard/dashboard-widget-card/dashboard-widget-card.docs.md +26 -19
  97. package/runtime/knowledge/docs/shell/dashboard/draggable-dashboard/draggable-dashboard.docs.md +15 -12
  98. package/runtime/knowledge/docs/ui/components/atoms/vc-badge/vc-badge.docs.md +15 -26
  99. package/runtime/knowledge/docs/ui/components/atoms/vc-banner/vc-banner.docs.md +21 -19
  100. package/runtime/knowledge/docs/ui/components/atoms/vc-button/vc-button.docs.md +83 -67
  101. package/runtime/knowledge/docs/ui/components/atoms/vc-card/vc-card.docs.md +100 -59
  102. package/runtime/knowledge/docs/ui/components/atoms/vc-col/vc-col.docs.md +28 -11
  103. package/runtime/knowledge/docs/ui/components/atoms/vc-container/vc-container.docs.md +20 -17
  104. package/runtime/knowledge/docs/ui/components/atoms/vc-hint/vc-hint.docs.md +26 -17
  105. package/runtime/knowledge/docs/ui/components/atoms/vc-icon/vc-icon.docs.md +30 -32
  106. package/runtime/knowledge/docs/ui/components/atoms/vc-image/vc-image.docs.md +25 -48
  107. package/runtime/knowledge/docs/ui/components/atoms/vc-label/vc-label.docs.md +29 -24
  108. package/runtime/knowledge/docs/ui/components/atoms/vc-link/vc-link.docs.md +23 -15
  109. package/runtime/knowledge/docs/ui/components/atoms/vc-loading/vc-loading.docs.md +22 -13
  110. package/runtime/knowledge/docs/ui/components/atoms/vc-progress/vc-progress.docs.md +33 -18
  111. package/runtime/knowledge/docs/ui/components/atoms/vc-row/vc-row.docs.md +56 -15
  112. package/runtime/knowledge/docs/ui/components/atoms/vc-scrollable-container/vc-scrollable-container.docs.md +28 -15
  113. package/runtime/knowledge/docs/ui/components/atoms/vc-skeleton/vc-skeleton.docs.md +40 -20
  114. package/runtime/knowledge/docs/ui/components/atoms/vc-status/vc-status.docs.md +25 -14
  115. package/runtime/knowledge/docs/ui/components/atoms/vc-status-icon/vc-status-icon.docs.md +40 -14
  116. package/runtime/knowledge/docs/ui/components/atoms/vc-tooltip/vc-tooltip.docs.md +54 -42
  117. package/runtime/knowledge/docs/ui/components/atoms/vc-video/vc-video.docs.md +17 -17
  118. package/runtime/knowledge/docs/ui/components/atoms/vc-widget/vc-widget.docs.md +21 -21
  119. package/runtime/knowledge/docs/ui/components/molecules/multilanguage-selector/multilanguage-selector.docs.md +23 -10
  120. package/runtime/knowledge/docs/ui/components/molecules/vc-accordion/vc-accordion.docs.md +55 -44
  121. package/runtime/knowledge/docs/ui/components/molecules/vc-breadcrumbs/vc-breadcrumbs.docs.md +23 -20
  122. package/runtime/knowledge/docs/ui/components/molecules/vc-checkbox/vc-checkbox.docs.md +92 -65
  123. package/runtime/knowledge/docs/ui/components/molecules/vc-checkbox-group/vc-checkbox-group.docs.md +22 -36
  124. package/runtime/knowledge/docs/ui/components/molecules/vc-color-input/vc-color-input.docs.md +65 -23
  125. package/runtime/knowledge/docs/ui/components/molecules/vc-date-picker/vc-date-picker.docs.md +52 -73
  126. package/runtime/knowledge/docs/ui/components/molecules/vc-dropdown/vc-dropdown.docs.md +91 -85
  127. package/runtime/knowledge/docs/ui/components/molecules/vc-dropdown-panel/vc-dropdown-panel.docs.md +38 -42
  128. package/runtime/knowledge/docs/ui/components/molecules/vc-editor/vc-editor.docs.md +56 -73
  129. package/runtime/knowledge/docs/ui/components/molecules/vc-field/vc-field.docs.md +61 -27
  130. package/runtime/knowledge/docs/ui/components/molecules/vc-file-upload/vc-file-upload.docs.md +42 -50
  131. package/runtime/knowledge/docs/ui/components/molecules/vc-form/vc-form.docs.md +35 -64
  132. package/runtime/knowledge/docs/ui/components/molecules/vc-image-tile/vc-image-tile.docs.md +38 -41
  133. package/runtime/knowledge/docs/ui/components/molecules/vc-input/vc-input.docs.md +109 -131
  134. package/runtime/knowledge/docs/ui/components/molecules/vc-input-currency/vc-input-currency.docs.md +47 -88
  135. package/runtime/knowledge/docs/ui/components/molecules/vc-input-dropdown/vc-input-dropdown.docs.md +50 -64
  136. package/runtime/knowledge/docs/ui/components/molecules/vc-input-group/vc-input-group.docs.md +29 -24
  137. package/runtime/knowledge/docs/ui/components/molecules/vc-menu/vc-menu.docs.md +32 -28
  138. package/runtime/knowledge/docs/ui/components/molecules/vc-multivalue/vc-multivalue.docs.md +57 -65
  139. package/runtime/knowledge/docs/ui/components/molecules/vc-pagination/vc-pagination.docs.md +28 -26
  140. package/runtime/knowledge/docs/ui/components/molecules/vc-radio-button/vc-radio-button.docs.md +55 -20
  141. package/runtime/knowledge/docs/ui/components/molecules/vc-radio-group/vc-radio-group.docs.md +21 -35
  142. package/runtime/knowledge/docs/ui/components/molecules/vc-rating/vc-rating.docs.md +38 -33
  143. package/runtime/knowledge/docs/ui/components/molecules/vc-select/vc-select.docs.md +72 -83
  144. package/runtime/knowledge/docs/ui/components/molecules/vc-slider/vc-slider.docs.md +21 -16
  145. package/runtime/knowledge/docs/ui/components/molecules/vc-switch/vc-switch.docs.md +55 -64
  146. package/runtime/knowledge/docs/ui/components/molecules/vc-textarea/vc-textarea.docs.md +51 -70
  147. package/runtime/knowledge/docs/ui/components/molecules/vc-toast/vc-toast.docs.md +58 -57
  148. package/runtime/knowledge/docs/ui/components/organisms/vc-app/vc-app.docs.md +49 -26
  149. package/runtime/knowledge/docs/ui/components/organisms/vc-auth-layout/vc-auth-layout.docs.md +82 -28
  150. package/runtime/knowledge/docs/ui/components/organisms/vc-blade/vc-blade.docs.md +90 -75
  151. package/runtime/knowledge/docs/ui/components/organisms/vc-data-table/composables/table-composables.docs.md +99 -48
  152. package/runtime/knowledge/docs/ui/components/organisms/vc-data-table/vc-data-table.docs.md +548 -367
  153. package/runtime/knowledge/docs/ui/components/organisms/vc-dynamic-property/vc-dynamic-property.docs.md +35 -52
  154. package/runtime/knowledge/docs/ui/components/organisms/vc-gallery/vc-gallery.docs.md +33 -62
  155. package/runtime/knowledge/docs/ui/components/organisms/vc-image-upload/vc-image-upload.docs.md +17 -23
  156. package/runtime/knowledge/docs/ui/components/organisms/vc-popup/vc-popup.docs.md +109 -68
  157. package/runtime/knowledge/docs/ui/components/organisms/vc-sidebar/vc-sidebar.docs.md +82 -44
  158. package/runtime/knowledge/docs/ui/composables/ui-composables.docs.md +8 -8
  159. package/runtime/knowledge/docs/ui/composables/useDataTablePagination.docs.md +164 -0
  160. package/runtime/knowledge/docs/ui/composables/useDataTableSort.docs.md +34 -26
  161. package/runtime/knowledge/docs/ui/composables/useTableSelection.docs.md +48 -40
  162. package/runtime/knowledge/docs/ui/composables/useTableSort.docs.md +30 -17
  163. package/runtime/knowledge/docs/ui/types/ui-types.docs.md +40 -29
  164. package/runtime/knowledge/examples/offers-module.md +15 -13
  165. package/runtime/knowledge/examples/team-module.md +82 -119
  166. package/runtime/knowledge/examples/videos-module.md +44 -17
  167. package/runtime/knowledge/index.md +22 -0
  168. package/runtime/knowledge/migration-prompts/blade-form-migration.md +17 -8
  169. package/runtime/knowledge/migration-prompts/blade-props-migration.md +1 -2
  170. package/runtime/knowledge/migration-prompts/datatable-migration.md +801 -0
  171. package/runtime/knowledge/migration-prompts/icon-migration.md +97 -0
  172. package/runtime/knowledge/migration-prompts/manual-migration-audit.md +117 -0
  173. package/runtime/knowledge/migration-prompts/notifications-migration.md +8 -3
  174. package/runtime/knowledge/migration-prompts/nswag-migration.md +25 -29
  175. package/runtime/knowledge/migration-prompts/use-assets-migration.md +164 -0
  176. package/runtime/knowledge/migration-prompts/use-data-table-pagination-migration.md +176 -0
  177. package/runtime/knowledge/migration-prompts/widgets-migration.md +48 -27
  178. package/runtime/knowledge/patterns/assets-management.md +20 -20
  179. package/runtime/knowledge/patterns/blade-navigation.md +7 -14
  180. package/runtime/knowledge/patterns/blade-widget.md +19 -17
  181. package/runtime/knowledge/patterns/child-blade-flow.md +19 -7
  182. package/runtime/knowledge/patterns/composable-details.md +20 -50
  183. package/runtime/knowledge/patterns/composable-list.md +43 -31
  184. package/runtime/knowledge/patterns/dashboard-widget.md +14 -16
  185. package/runtime/knowledge/patterns/datatable-pattern.md +521 -0
  186. package/runtime/knowledge/patterns/details-blade-pattern.md +78 -116
  187. package/runtime/knowledge/patterns/extension-points-usage.md +53 -44
  188. package/runtime/knowledge/patterns/form-validation.md +28 -64
  189. package/runtime/knowledge/patterns/list-blade-pattern.md +33 -21
  190. package/runtime/knowledge/patterns/module-structure.md +7 -1
  191. package/runtime/knowledge/patterns/multilanguage-fields.md +8 -14
  192. package/runtime/knowledge/patterns/notification-template.md +21 -14
  193. package/runtime/knowledge/patterns/signalr-notifications.md +30 -32
  194. package/runtime/knowledge/patterns/toolbar-pattern.md +18 -20
  195. package/runtime/vc-app.md +241 -62
@@ -10,6 +10,7 @@ Collapsible content sections with smooth CSS grid animations, customizable colla
10
10
  - Expandable form sections or configuration panels
11
11
 
12
12
  When NOT to use:
13
+
13
14
  - For navigation groups -- use `VcMenuGroup`
14
15
  - For tab-based content switching -- use `VcTabs`
15
16
  - For single collapsible panels without siblings -- use `VcAccordionItem` directly
@@ -18,7 +19,10 @@ When NOT to use:
18
19
 
19
20
  ```vue
20
21
  <template>
21
- <VcAccordion :items="faqItems" variant="bordered" />
22
+ <VcAccordion
23
+ :items="faqItems"
24
+ variant="bordered"
25
+ />
22
26
  </template>
23
27
 
24
28
  <script setup lang="ts">
@@ -38,12 +42,12 @@ const faqItems = [
38
42
 
39
43
  Four variants control the visual grouping and spacing of accordion items.
40
44
 
41
- | Variant | Description |
42
- |---------|-------------|
43
- | `default` | Items stacked with shared top/bottom borders, no gaps |
44
- | `bordered` | Single outer border wrapping all items, items separated by inner borders |
45
- | `separated` | Card-like items with 12px gaps between them, each with its own border |
46
- | `ghost` | Transparent background, minimal styling, no borders or padding |
45
+ | Variant | Description |
46
+ | ----------- | ------------------------------------------------------------------------ |
47
+ | `default` | Items stacked with shared top/bottom borders, no gaps |
48
+ | `bordered` | Single outer border wrapping all items, items separated by inner borders |
49
+ | `separated` | Card-like items with 12px gaps between them, each with its own border |
50
+ | `ghost` | Transparent background, minimal styling, no borders or padding |
47
51
 
48
52
  ```vue
49
53
  <VcAccordion :items="items" variant="separated" />
@@ -55,7 +59,10 @@ Use `v-model` to control which items are expanded. In single mode, the value is
55
59
 
56
60
  ```vue
57
61
  <template>
58
- <VcAccordion v-model="openItem" :items="items" />
62
+ <VcAccordion
63
+ v-model="openItem"
64
+ :items="items"
65
+ />
59
66
  <p>Currently open: {{ openItem }}</p>
60
67
  </template>
61
68
 
@@ -136,7 +143,11 @@ The `content` property in `AccordionItem` accepts both strings and Vue component
136
143
 
137
144
  ```vue
138
145
  <template>
139
- <VcAccordion v-model="activeQuestion" :items="faqs" variant="separated" />
146
+ <VcAccordion
147
+ v-model="activeQuestion"
148
+ :items="faqs"
149
+ variant="separated"
150
+ />
140
151
  </template>
141
152
 
142
153
  <script setup lang="ts">
@@ -181,61 +192,61 @@ Both render together -- items-prop items appear first, then slot content. Omit `
181
192
 
182
193
  ```ts
183
194
  interface AccordionItem {
184
- id?: string | number; // Unique identifier (falls back to array index)
185
- title: string; // Header text
195
+ id?: string | number; // Unique identifier (falls back to array index)
196
+ title: string; // Header text
186
197
  content?: string | Component; // Body content (string or Vue component)
187
- titleSlot?: Component; // Custom title component (alternative to #title slot)
188
- collapsedHeight?: number; // Per-item collapsed height override (px)
189
- maxExpandedHeight?: number; // Per-item max expanded height override (px)
190
- disabled?: boolean; // Prevents toggling this item
198
+ titleSlot?: Component; // Custom title component (alternative to #title slot)
199
+ collapsedHeight?: number; // Per-item collapsed height override (px)
200
+ maxExpandedHeight?: number; // Per-item max expanded height override (px)
201
+ disabled?: boolean; // Prevents toggling this item
191
202
  }
192
203
  ```
193
204
 
194
205
  ## Props
195
206
 
196
- | Prop | Type | Default | Description |
197
- |------|------|---------|-------------|
198
- | `items` | `AccordionItem[]` | `[]` | Array of items to render |
199
- | `modelValue` | `(string \| number) \| (string \| number)[]` | -- | Controlled expanded state via `v-model` |
200
- | `multiple` | `boolean` | `false` | Allow multiple items to be expanded simultaneously |
201
- | `variant` | `"default" \| "bordered" \| "separated" \| "ghost"` | `"default"` | Visual style variant |
202
- | `collapsedHeight` | `number` | `0` | Default collapsed height in pixels for all items |
203
- | `maxExpandedHeight` | `number` | -- | Maximum expanded height (content scrolls if exceeded) |
207
+ | Prop | Type | Default | Description |
208
+ | ------------------- | --------------------------------------------------- | ----------- | ----------------------------------------------------- |
209
+ | `items` | `AccordionItem[]` | `[]` | Array of items to render |
210
+ | `modelValue` | `(string \| number) \| (string \| number)[]` | -- | Controlled expanded state via `v-model` |
211
+ | `multiple` | `boolean` | `false` | Allow multiple items to be expanded simultaneously |
212
+ | `variant` | `"default" \| "bordered" \| "separated" \| "ghost"` | `"default"` | Visual style variant |
213
+ | `collapsedHeight` | `number` | `0` | Default collapsed height in pixels for all items |
214
+ | `maxExpandedHeight` | `number` | -- | Maximum expanded height (content scrolls if exceeded) |
204
215
 
205
216
  ## Events
206
217
 
207
- | Event | Payload | Description |
208
- |-------|---------|-------------|
218
+ | Event | Payload | Description |
219
+ | ------------------- | -------------------------------------------- | ------------------------------------ |
209
220
  | `update:modelValue` | `(string \| number) \| (string \| number)[]` | Emitted when expanded item(s) change |
210
221
 
211
222
  ## Slots
212
223
 
213
- | Slot | Description |
214
- |------|-------------|
224
+ | Slot | Description |
225
+ | --------- | ---------------------------------------------------------------- |
215
226
  | `default` | Place `VcAccordionItem` components directly for custom rendering |
216
227
 
217
228
  ### VcAccordionItem Slots
218
229
 
219
- | Slot | Description |
220
- |------|-------------|
221
- | `title` | Custom title rendering (replaces the `title` prop text) |
222
- | `default` | Content body of the accordion item |
230
+ | Slot | Description |
231
+ | --------- | ------------------------------------------------------- |
232
+ | `title` | Custom title rendering (replaces the `title` prop text) |
233
+ | `default` | Content body of the accordion item |
223
234
 
224
235
  ## CSS Variables
225
236
 
226
- | Variable | Default | Description |
227
- |----------|---------|-------------|
228
- | `--accordion-item-border-color` | `var(--neutrals-200)` | Border color for items and dividers |
229
- | `--accordion-item-border-radius` | `6px` | Border radius of item containers |
230
- | `--accordion-item-header-padding` | `12px 16px` | Header button padding |
231
- | `--accordion-item-header-background` | `var(--additional-50)` | Header background color |
232
- | `--accordion-item-header-background-hover` | `var(--neutrals-50)` | Header background on hover |
233
- | `--accordion-item-header-color` | `var(--secondary-950)` | Header text color |
234
- | `--accordion-item-content-padding` | `16px` | Content body padding |
235
- | `--accordion-item-content-background` | `var(--additional-50)` | Content body background |
236
- | `--accordion-item-transition-duration` | `300ms` | Expand/collapse animation duration |
237
- | `--accordion-item-fade-height` | `60px` | Fade gradient height on collapsed preview |
238
- | `--accordion-item-focus-ring-color` | `var(--primary-100)` | Focus ring color for keyboard navigation |
237
+ | Variable | Default | Description |
238
+ | ------------------------------------------ | ---------------------- | ----------------------------------------- |
239
+ | `--accordion-item-border-color` | `var(--neutrals-200)` | Border color for items and dividers |
240
+ | `--accordion-item-border-radius` | `6px` | Border radius of item containers |
241
+ | `--accordion-item-header-padding` | `12px 16px` | Header button padding |
242
+ | `--accordion-item-header-background` | `var(--additional-50)` | Header background color |
243
+ | `--accordion-item-header-background-hover` | `var(--neutrals-50)` | Header background on hover |
244
+ | `--accordion-item-header-color` | `var(--secondary-950)` | Header text color |
245
+ | `--accordion-item-content-padding` | `16px` | Content body padding |
246
+ | `--accordion-item-content-background` | `var(--additional-50)` | Content body background |
247
+ | `--accordion-item-transition-duration` | `300ms` | Expand/collapse animation duration |
248
+ | `--accordion-item-fade-height` | `60px` | Fade gradient height on collapsed preview |
249
+ | `--accordion-item-focus-ring-color` | `var(--primary-100)` | Focus ring color for keyboard navigation |
239
250
 
240
251
  > **Note:** The `ghost` variant overrides several variables to transparent/zero values for minimal appearance.
241
252
 
@@ -123,7 +123,10 @@ For applications built on the VC-Shell framework, manage breadcrumb state reacti
123
123
 
124
124
  ```vue
125
125
  <template>
126
- <VcBreadcrumbs :items="breadcrumbs" separated />
126
+ <VcBreadcrumbs
127
+ :items="breadcrumbs"
128
+ separated
129
+ />
127
130
  </template>
128
131
 
129
132
  <script setup lang="ts">
@@ -148,11 +151,11 @@ remove(["products", "categories"]);
148
151
 
149
152
  **Composable API:**
150
153
 
151
- | Method | Signature | Description |
152
- |--------|-----------|-------------|
153
- | `breadcrumbs` | `ComputedRef<Breadcrumbs[]>` | Reactive array of current items |
154
- | `push` | `(item: Breadcrumbs) => void` | Add an item (deduplicates by `id`) |
155
- | `remove` | `(ids: string[]) => void` | Remove items by their IDs |
154
+ | Method | Signature | Description |
155
+ | ------------- | ----------------------------- | ---------------------------------- |
156
+ | `breadcrumbs` | `ComputedRef<Breadcrumbs[]>` | Reactive array of current items |
157
+ | `push` | `(item: Breadcrumbs) => void` | Add an item (deduplicates by `id`) |
158
+ | `remove` | `(ids: string[]) => void` | Remove items by their IDs |
156
159
 
157
160
  > **Note:** When `push` is called with an `id` that already exists, the existing entry is updated in place rather than duplicated.
158
161
 
@@ -237,27 +240,27 @@ clickHandler: () => { navigate(); return true; }
237
240
 
238
241
  ## Props
239
242
 
240
- | Prop | Type | Default | Description |
241
- |------|------|---------|-------------|
242
- | `items` | `Breadcrumbs[]` | `[]` | Array of breadcrumb items to display |
243
- | `variant` | `"default" \| "light"` | `"default"` | Visual style variant |
244
- | `separated` | `boolean` | `false` | Show `/` separators between items |
245
- | `collapsed` | `boolean` | `false` | Force all items into the dropdown |
243
+ | Prop | Type | Default | Description |
244
+ | ----------- | ---------------------- | ----------- | ------------------------------------ |
245
+ | `items` | `Breadcrumbs[]` | `[]` | Array of breadcrumb items to display |
246
+ | `variant` | `"default" \| "light"` | `"default"` | Visual style variant |
247
+ | `separated` | `boolean` | `false` | Show `/` separators between items |
248
+ | `collapsed` | `boolean` | `false` | Force all items into the dropdown |
246
249
 
247
250
  ## Slots
248
251
 
249
- | Slot | Scope | Description |
250
- |------|-------|-------------|
252
+ | Slot | Scope | Description |
253
+ | --------- | ------------------------------------------ | ------------------------------------------------------------------ |
251
254
  | `trigger` | `{ click: () => void, isActive: boolean }` | Custom dropdown trigger button replacing the default ellipsis icon |
252
255
 
253
256
  ## CSS Variables
254
257
 
255
- | Variable | Default | Description |
256
- |----------|---------|-------------|
257
- | `--separator-color` | `var(--neutrals-400)` | Color of the `/` separator character |
258
- | `--breadcrumbs-item-border-color` | `var(--secondary-300)` | Border color of breadcrumb items |
259
- | `--breadcrumbs-expand-button-color` | `var(--neutrals-500)` | Color of the overflow "more" button |
260
- | `--breadcrumbs-expand-button-color-hover` | `var(--neutrals-600)` | Hover color of the overflow button |
258
+ | Variable | Default | Description |
259
+ | ----------------------------------------- | ---------------------- | ------------------------------------ |
260
+ | `--separator-color` | `var(--neutrals-400)` | Color of the `/` separator character |
261
+ | `--breadcrumbs-item-border-color` | `var(--secondary-300)` | Border color of breadcrumb items |
262
+ | `--breadcrumbs-expand-button-color` | `var(--neutrals-500)` | Color of the overflow "more" button |
263
+ | `--breadcrumbs-expand-button-color-hover` | `var(--neutrals-600)` | Hover color of the overflow button |
261
264
 
262
265
  ## Accessibility
263
266
 
@@ -48,9 +48,21 @@ const selected = ref<string[]>([]);
48
48
  </script>
49
49
 
50
50
  <template>
51
- <VcCheckbox v-model="selected" value="express">Express shipping</VcCheckbox>
52
- <VcCheckbox v-model="selected" value="insurance">Shipping insurance</VcCheckbox>
53
- <VcCheckbox v-model="selected" value="gift">Gift wrapping</VcCheckbox>
51
+ <VcCheckbox
52
+ v-model="selected"
53
+ value="express"
54
+ >Express shipping</VcCheckbox
55
+ >
56
+ <VcCheckbox
57
+ v-model="selected"
58
+ value="insurance"
59
+ >Shipping insurance</VcCheckbox
60
+ >
61
+ <VcCheckbox
62
+ v-model="selected"
63
+ value="gift"
64
+ >Gift wrapping</VcCheckbox
65
+ >
54
66
  <!-- selected.value might be ["express", "gift"] -->
55
67
  </template>
56
68
  ```
@@ -59,11 +71,11 @@ const selected = ref<string[]>([]);
59
71
 
60
72
  Three sizes are available via the `size` prop:
61
73
 
62
- | Size | Value | Pixel dimension |
63
- |------|-------|-----------------|
64
- | Small | `"s"` (default) | 16 x 16 px |
65
- | Medium | `"m"` | 20 x 20 px |
66
- | Large | `"l"` | 24 x 24 px |
74
+ | Size | Value | Pixel dimension |
75
+ | ------ | --------------- | --------------- |
76
+ | Small | `"s"` (default) | 16 x 16 px |
77
+ | Medium | `"m"` | 20 x 20 px |
78
+ | Large | `"l"` | 24 x 24 px |
67
79
 
68
80
  ```vue
69
81
  <VcCheckbox v-model="val" size="s">Small checkbox</VcCheckbox>
@@ -99,9 +111,21 @@ function toggleAll(checked: boolean) {
99
111
  Select all
100
112
  </VcCheckbox>
101
113
 
102
- <VcCheckbox v-model="selected" value="A">Option A</VcCheckbox>
103
- <VcCheckbox v-model="selected" value="B">Option B</VcCheckbox>
104
- <VcCheckbox v-model="selected" value="C">Option C</VcCheckbox>
114
+ <VcCheckbox
115
+ v-model="selected"
116
+ value="A"
117
+ >Option A</VcCheckbox
118
+ >
119
+ <VcCheckbox
120
+ v-model="selected"
121
+ value="B"
122
+ >Option B</VcCheckbox
123
+ >
124
+ <VcCheckbox
125
+ v-model="selected"
126
+ value="C"
127
+ >Option C</VcCheckbox
128
+ >
105
129
  </template>
106
130
  ```
107
131
 
@@ -155,11 +179,7 @@ const form = reactive({
155
179
  <VcCheckbox :model-value="true" disabled>Cannot be changed</VcCheckbox>
156
180
 
157
181
  <!-- Error -->
158
- <VcCheckbox
159
- v-model="val"
160
- :error="true"
161
- error-message="This field is required"
162
- >
182
+ <VcCheckbox v-model="val" :error="true" error-message="This field is required">
163
183
  I have read the disclaimer
164
184
  </VcCheckbox>
165
185
  ```
@@ -173,9 +193,21 @@ Use `VcInputGroup` to add a shared label and semantic grouping:
173
193
  ```vue
174
194
  <template>
175
195
  <VcInputGroup label="Delivery options">
176
- <VcCheckbox v-model="deliveryOptions" value="courier">Courier delivery</VcCheckbox>
177
- <VcCheckbox v-model="deliveryOptions" value="pickup">Store pickup</VcCheckbox>
178
- <VcCheckbox v-model="deliveryOptions" value="postal">Postal service</VcCheckbox>
196
+ <VcCheckbox
197
+ v-model="deliveryOptions"
198
+ value="courier"
199
+ >Courier delivery</VcCheckbox
200
+ >
201
+ <VcCheckbox
202
+ v-model="deliveryOptions"
203
+ value="pickup"
204
+ >Store pickup</VcCheckbox
205
+ >
206
+ <VcCheckbox
207
+ v-model="deliveryOptions"
208
+ value="postal"
209
+ >Postal service</VcCheckbox
210
+ >
179
211
  </VcInputGroup>
180
212
  </template>
181
213
 
@@ -246,68 +278,64 @@ const selected = ref<string[]>([]);
246
278
  <VcCheckbox v-model="val" indeterminate>Select all</VcCheckbox>
247
279
 
248
280
  <!-- ✅ Use a computed + handler to manage the select-all logic -->
249
- <VcCheckbox
250
- :model-value="allSelected"
251
- :indeterminate="someSelected && !allSelected"
252
- @update:model-value="toggleAll"
253
- >
281
+ <VcCheckbox :model-value="allSelected" :indeterminate="someSelected && !allSelected" @update:model-value="toggleAll">
254
282
  Select all
255
283
  </VcCheckbox>
256
284
  ```
257
285
 
258
286
  ## Props
259
287
 
260
- | Prop | Type | Default | Description |
261
- |------|------|---------|-------------|
262
- | `modelValue` | `boolean \| T[]` | `undefined` | Bound value via `v-model`. Boolean for single, array for multi-select. |
263
- | `value` | `T` | -- | Value added to the array when checked (array mode only) |
264
- | `label` | `string` | -- | Label text displayed above the checkbox |
265
- | `tooltip` | `string` | -- | Tooltip on the label info icon |
266
- | `size` | `"s" \| "m" \| "l"` | `"s"` | Checkbox size variant |
267
- | `indeterminate` | `boolean` | `false` | Shows the indeterminate (dash) visual state |
268
- | `trueValue` | `boolean` | `true` | Value emitted when checked (boolean mode) |
269
- | `falseValue` | `boolean` | `false` | Value emitted when unchecked (boolean mode) |
270
- | `disabled` | `boolean` | `false` | Disables the checkbox |
271
- | `required` | `boolean` | `false` | Shows a required indicator |
272
- | `error` | `boolean` | `false` | Enables error styling |
273
- | `errorMessage` | `string` | -- | Error message displayed below the checkbox |
274
- | `name` | `string` | `"Field"` | HTML name attribute |
275
- | `outline` | `boolean` | `false` | Applies outline style variant |
288
+ | Prop | Type | Default | Description |
289
+ | --------------- | ------------------- | ----------- | ---------------------------------------------------------------------- |
290
+ | `modelValue` | `boolean \| T[]` | `undefined` | Bound value via `v-model`. Boolean for single, array for multi-select. |
291
+ | `value` | `T` | -- | Value added to the array when checked (array mode only) |
292
+ | `label` | `string` | -- | Label text displayed above the checkbox |
293
+ | `tooltip` | `string` | -- | Tooltip on the label info icon |
294
+ | `size` | `"s" \| "m" \| "l"` | `"s"` | Checkbox size variant |
295
+ | `indeterminate` | `boolean` | `false` | Shows the indeterminate (dash) visual state |
296
+ | `trueValue` | `boolean` | `true` | Value emitted when checked (boolean mode) |
297
+ | `falseValue` | `boolean` | `false` | Value emitted when unchecked (boolean mode) |
298
+ | `disabled` | `boolean` | `false` | Disables the checkbox |
299
+ | `required` | `boolean` | `false` | Shows a required indicator |
300
+ | `error` | `boolean` | `false` | Enables error styling |
301
+ | `errorMessage` | `string` | -- | Error message displayed below the checkbox |
302
+ | `name` | `string` | `"Field"` | HTML name attribute |
303
+ | `outline` | `boolean` | `false` | Applies outline style variant |
276
304
 
277
305
  ## Events
278
306
 
279
- | Event | Payload | Description |
280
- |-------|---------|-------------|
307
+ | Event | Payload | Description |
308
+ | ------------------- | ---------------- | ------------------------------------ |
281
309
  | `update:modelValue` | `boolean \| T[]` | Emitted when the checkbox is toggled |
282
310
 
283
311
  ## Slots
284
312
 
285
- | Slot | Description |
286
- |------|-------------|
287
- | `default` | Inline text or content displayed next to the checkbox |
288
- | `icon` | Replace the check/indeterminate icon with custom markup |
289
- | `error` | Custom error message markup |
313
+ | Slot | Description |
314
+ | --------- | ------------------------------------------------------- |
315
+ | `default` | Inline text or content displayed next to the checkbox |
316
+ | `icon` | Replace the check/indeterminate icon with custom markup |
317
+ | `error` | Custom error message markup |
290
318
 
291
319
  ## CSS Variables
292
320
 
293
- | Variable | Default | Description |
294
- |----------|---------|-------------|
295
- | `--checkbox-size-s` | `16px` | Small variant size |
296
- | `--checkbox-size-m` | `20px` | Medium variant size |
297
- | `--checkbox-size-l` | `24px` | Large variant size |
298
- | `--checkbox-border-color` | `var(--neutrals-300)` | Default border color |
299
- | `--checkbox-border-color-hover` | `var(--neutrals-400)` | Border color on hover |
300
- | `--checkbox-bg-color` | `var(--additional-50)` | Unchecked background |
301
- | `--checkbox-checked-bg-color` | `var(--primary-500)` | Checked background color |
302
- | `--checkbox-checked-border-color` | `var(--primary-500)` | Checked border color |
303
- | `--checkbox-indeterminate-bg-color` | `var(--primary-500)` | Indeterminate background |
321
+ | Variable | Default | Description |
322
+ | ------------------------------------- | ---------------------- | ------------------------ |
323
+ | `--checkbox-size-s` | `16px` | Small variant size |
324
+ | `--checkbox-size-m` | `20px` | Medium variant size |
325
+ | `--checkbox-size-l` | `24px` | Large variant size |
326
+ | `--checkbox-border-color` | `var(--neutrals-300)` | Default border color |
327
+ | `--checkbox-border-color-hover` | `var(--neutrals-400)` | Border color on hover |
328
+ | `--checkbox-bg-color` | `var(--additional-50)` | Unchecked background |
329
+ | `--checkbox-checked-bg-color` | `var(--primary-500)` | Checked background color |
330
+ | `--checkbox-checked-border-color` | `var(--primary-500)` | Checked border color |
331
+ | `--checkbox-indeterminate-bg-color` | `var(--primary-500)` | Indeterminate background |
304
332
  | `--checkbox-indeterminate-line-color` | `var(--additional-50)` | Indeterminate dash color |
305
- | `--checkbox-error-border-color` | `var(--danger-500)` | Error state border |
306
- | `--checkbox-error-ring-color` | `var(--danger-100)` | Error ring color |
307
- | `--checkbox-focus-ring-color` | `var(--primary-100)` | Focus ring color |
308
- | `--checkbox-border-radius` | `4px` | Corner radius |
309
- | `--checkbox-disabled-opacity` | `0.5` | Opacity when disabled |
310
- | `--checkbox-transition-duration` | `200ms` | Animation duration |
333
+ | `--checkbox-error-border-color` | `var(--danger-500)` | Error state border |
334
+ | `--checkbox-error-ring-color` | `var(--danger-100)` | Error ring color |
335
+ | `--checkbox-focus-ring-color` | `var(--primary-100)` | Focus ring color |
336
+ | `--checkbox-border-radius` | `4px` | Corner radius |
337
+ | `--checkbox-disabled-opacity` | `0.5` | Opacity when disabled |
338
+ | `--checkbox-transition-duration` | `200ms` | Animation duration |
311
339
 
312
340
  ## Accessibility
313
341
 
@@ -327,4 +355,3 @@ const selected = ref<string[]>([]);
327
355
  ## Skeleton / Loading State
328
356
 
329
357
  When placed inside a `VcBlade` with `loading=true`, the component renders a skeleton placeholder matching its shape — a control indicator and label block. No configuration needed.
330
-
@@ -34,20 +34,20 @@ const channels = [
34
34
 
35
35
  ## Key Props
36
36
 
37
- | Prop | Type | Default | Description |
38
- |------|------|---------|-------------|
39
- | `modelValue` | `T[]` | `[]` | Selected values (v-model) |
40
- | `options` | `CheckboxGroupOption<T>[]` | `[]` | Options to render as checkboxes |
41
- | `label` | `string` | — | Group label (rendered as fieldset legend) |
42
- | `tooltip` | `string` | — | Tooltip on the label |
43
- | `hint` | `string` | — | Hint text below the group |
44
- | `orientation` | `"vertical" \| "horizontal"` | `"vertical"` | Layout direction of options |
45
- | `size` | `"s" \| "m" \| "l"` | `"s"` | Checkbox size for all items |
46
- | `name` | `string` | auto-generated | Shared name for native checkboxes |
47
- | `disabled` | `boolean` | `false` | Disable all checkboxes |
48
- | `required` | `boolean` | `false` | Mark group as required |
49
- | `error` | `boolean` | `false` | External error flag |
50
- | `errorMessage` | `string` | — | Error message text |
37
+ | Prop | Type | Default | Description |
38
+ | -------------- | ---------------------------- | -------------- | ----------------------------------------- |
39
+ | `modelValue` | `T[]` | `[]` | Selected values (v-model) |
40
+ | `options` | `CheckboxGroupOption<T>[]` | `[]` | Options to render as checkboxes |
41
+ | `label` | `string` | — | Group label (rendered as fieldset legend) |
42
+ | `tooltip` | `string` | — | Tooltip on the label |
43
+ | `hint` | `string` | — | Hint text below the group |
44
+ | `orientation` | `"vertical" \| "horizontal"` | `"vertical"` | Layout direction of options |
45
+ | `size` | `"s" \| "m" \| "l"` | `"s"` | Checkbox size for all items |
46
+ | `name` | `string` | auto-generated | Shared name for native checkboxes |
47
+ | `disabled` | `boolean` | `false` | Disable all checkboxes |
48
+ | `required` | `boolean` | `false` | Mark group as required |
49
+ | `error` | `boolean` | `false` | External error flag |
50
+ | `errorMessage` | `string` | — | Error message text |
51
51
 
52
52
  ## CheckboxGroupOption Interface
53
53
 
@@ -55,20 +55,20 @@ const channels = [
55
55
  interface CheckboxGroupOption<V = string | number | boolean> {
56
56
  label: string;
57
57
  value: V;
58
- disabled?: boolean; // Disable individual options
58
+ disabled?: boolean; // Disable individual options
59
59
  }
60
60
  ```
61
61
 
62
62
  ## Events
63
63
 
64
- | Event | Payload | Description |
65
- |-------|---------|-------------|
66
- | `update:modelValue` | `T[]` | Selected values changed |
64
+ | Event | Payload | Description |
65
+ | ------------------- | ------- | ----------------------- |
66
+ | `update:modelValue` | `T[]` | Selected values changed |
67
67
 
68
68
  ## Slots
69
69
 
70
- | Slot | Description |
71
- |------|-------------|
70
+ | Slot | Description |
71
+ | --------- | --------------------------------------------------------- |
72
72
  | `default` | Custom checkbox layout (replaces options-based rendering) |
73
73
 
74
74
  ## Common Patterns
@@ -105,26 +105,13 @@ interface CheckboxGroupOption<V = string | number | boolean> {
105
105
  ### Validation Error
106
106
 
107
107
  ```vue
108
- <VcCheckboxGroup
109
- v-model="selected"
110
- label="Required Selection"
111
- required
112
- :error="selected.length === 0"
113
- error-message="Select at least one option"
114
- :options="options"
115
- />
108
+ <VcCheckboxGroup v-model="selected" label="Required Selection" required :error="selected.length === 0" error-message="Select at least one option" :options="options" />
116
109
  ```
117
110
 
118
111
  ### Custom Slot Layout
119
112
 
120
113
  ```vue
121
- <VcCheckboxGroup
122
- v-model="flags"
123
- label="Feature Flags"
124
- hint="Custom layout via default slot"
125
- orientation="horizontal"
126
- name="feature-flags"
127
- >
114
+ <VcCheckboxGroup v-model="flags" label="Feature Flags" hint="Custom layout via default slot" orientation="horizontal" name="feature-flags">
128
115
  <VcCheckbox v-model="flags" value="feature-a">Feature A</VcCheckbox>
129
116
  <VcCheckbox v-model="flags" value="feature-b">Feature B</VcCheckbox>
130
117
  <VcCheckbox v-model="flags" value="feature-c">Feature C</VcCheckbox>
@@ -148,4 +135,3 @@ interface CheckboxGroupOption<V = string | number | boolean> {
148
135
  ## Skeleton / Loading State
149
136
 
150
137
  When placed inside a `VcBlade` with `loading=true`, the component renders a skeleton placeholder matching its shape — a control indicator and label block. No configuration needed.
151
-