@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
@@ -20,10 +20,28 @@ The component also supports a `binary` mode for simple true/false toggles, where
20
20
 
21
21
  ```vue
22
22
  <template>
23
- <VcInputGroup label="Shipping method" role="radiogroup">
24
- <VcRadioButton v-model="method" value="standard" label="Standard" name="shipping" />
25
- <VcRadioButton v-model="method" value="express" label="Express" name="shipping" />
26
- <VcRadioButton v-model="method" value="overnight" label="Overnight" name="shipping" />
23
+ <VcInputGroup
24
+ label="Shipping method"
25
+ role="radiogroup"
26
+ >
27
+ <VcRadioButton
28
+ v-model="method"
29
+ value="standard"
30
+ label="Standard"
31
+ name="shipping"
32
+ />
33
+ <VcRadioButton
34
+ v-model="method"
35
+ value="express"
36
+ label="Express"
37
+ name="shipping"
38
+ />
39
+ <VcRadioButton
40
+ v-model="method"
41
+ value="overnight"
42
+ label="Overnight"
43
+ name="shipping"
44
+ />
27
45
  </VcInputGroup>
28
46
  </template>
29
47
 
@@ -37,15 +55,15 @@ const method = ref("standard");
37
55
 
38
56
  ## Key Props
39
57
 
40
- | Prop | Type | Default | Description |
41
- |------|------|---------|-------------|
42
- | `modelValue` | `T` | `undefined` | Bound value via `v-model` (shared across the group) |
43
- | `value` | `T` | -- | This radio button's value. Selected when `modelValue === value` |
44
- | `label` | `string` | -- | Text label next to the radio circle |
45
- | `name` | `string` | `"RadioField"` | HTML `name` attribute (must be shared within a group) |
46
- | `binary` | `boolean` | `false` | Enables boolean toggle mode (clicking toggles `true`/`false`) |
47
- | `disabled` | `boolean` | `false` | Disables this radio button |
48
- | `error` / `errorMessage` | `boolean` / `string` | -- | Error styling and message |
58
+ | Prop | Type | Default | Description |
59
+ | ------------------------ | -------------------- | -------------- | --------------------------------------------------------------- |
60
+ | `modelValue` | `T` | `undefined` | Bound value via `v-model` (shared across the group) |
61
+ | `value` | `T` | -- | This radio button's value. Selected when `modelValue === value` |
62
+ | `label` | `string` | -- | Text label next to the radio circle |
63
+ | `name` | `string` | `"RadioField"` | HTML `name` attribute (must be shared within a group) |
64
+ | `binary` | `boolean` | `false` | Enables boolean toggle mode (clicking toggles `true`/`false`) |
65
+ | `disabled` | `boolean` | `false` | Disables this radio button |
66
+ | `error` / `errorMessage` | `boolean` / `string` | -- | Error styling and message |
49
67
 
50
68
  ## Common Patterns
51
69
 
@@ -65,10 +83,28 @@ Wrap radio buttons in a `VcInputGroup` with horizontal orientation for inline di
65
83
 
66
84
  ```vue
67
85
  <template>
68
- <VcInputGroup label="Priority" role="radiogroup">
69
- <VcRadioButton v-model="priority" :value="1" label="Low" name="priority" />
70
- <VcRadioButton v-model="priority" :value="2" label="Medium" name="priority" />
71
- <VcRadioButton v-model="priority" :value="3" label="High" name="priority" />
86
+ <VcInputGroup
87
+ label="Priority"
88
+ role="radiogroup"
89
+ >
90
+ <VcRadioButton
91
+ v-model="priority"
92
+ :value="1"
93
+ label="Low"
94
+ name="priority"
95
+ />
96
+ <VcRadioButton
97
+ v-model="priority"
98
+ :value="2"
99
+ label="Medium"
100
+ name="priority"
101
+ />
102
+ <VcRadioButton
103
+ v-model="priority"
104
+ :value="3"
105
+ label="High"
106
+ name="priority"
107
+ />
72
108
  </VcInputGroup>
73
109
  </template>
74
110
 
@@ -109,8 +145,8 @@ In binary mode, clicking toggles between `true` and `false` rather than comparin
109
145
 
110
146
  ## Slots
111
147
 
112
- | Slot | Description |
113
- |------|-------------|
148
+ | Slot | Description |
149
+ | ------- | --------------------------- |
114
150
  | `error` | Custom error message markup |
115
151
 
116
152
  ## Accessibility
@@ -165,4 +201,3 @@ Do not mix `binary` mode with regular `value` comparison in the same group. Bina
165
201
  ## Skeleton / Loading State
166
202
 
167
203
  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.
168
-
@@ -34,19 +34,19 @@ const methods = [
34
34
 
35
35
  ## Key Props
36
36
 
37
- | Prop | Type | Default | Description |
38
- |------|------|---------|-------------|
39
- | `modelValue` | `T` | — | Selected value (v-model) |
40
- | `options` | `RadioGroupOption<T>[]` | `[]` | Options to render as radio buttons |
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
- | `name` | `string` | auto-generated | Shared name for native radio inputs |
46
- | `disabled` | `boolean` | `false` | Disable all radio buttons |
47
- | `required` | `boolean` | `false` | Mark group as required |
48
- | `error` | `boolean` | `false` | External error flag |
49
- | `errorMessage` | `string` | — | Error message text |
37
+ | Prop | Type | Default | Description |
38
+ | -------------- | ---------------------------- | -------------- | ----------------------------------------- |
39
+ | `modelValue` | `T` | — | Selected value (v-model) |
40
+ | `options` | `RadioGroupOption<T>[]` | `[]` | Options to render as radio buttons |
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
+ | `name` | `string` | auto-generated | Shared name for native radio inputs |
46
+ | `disabled` | `boolean` | `false` | Disable all radio buttons |
47
+ | `required` | `boolean` | `false` | Mark group as required |
48
+ | `error` | `boolean` | `false` | External error flag |
49
+ | `errorMessage` | `string` | — | Error message text |
50
50
 
51
51
  ## RadioGroupOption Interface
52
52
 
@@ -54,20 +54,20 @@ const methods = [
54
54
  interface RadioGroupOption<V = string | number | boolean> {
55
55
  label: string;
56
56
  value: V;
57
- disabled?: boolean; // Disable individual options
57
+ disabled?: boolean; // Disable individual options
58
58
  }
59
59
  ```
60
60
 
61
61
  ## Events
62
62
 
63
- | Event | Payload | Description |
64
- |-------|---------|-------------|
65
- | `update:modelValue` | `T` | Selected value changed |
63
+ | Event | Payload | Description |
64
+ | ------------------- | ------- | ---------------------- |
65
+ | `update:modelValue` | `T` | Selected value changed |
66
66
 
67
67
  ## Slots
68
68
 
69
- | Slot | Description |
70
- |------|-------------|
69
+ | Slot | Description |
70
+ | --------- | ------------------------------------------------------------- |
71
71
  | `default` | Custom radio button layout (replaces options-based rendering) |
72
72
 
73
73
  ## Common Patterns
@@ -104,26 +104,13 @@ interface RadioGroupOption<V = string | number | boolean> {
104
104
  ### Validation Error
105
105
 
106
106
  ```vue
107
- <VcRadioGroup
108
- v-model="selected"
109
- label="Shipping Method"
110
- required
111
- :error="!selected"
112
- error-message="Select a shipping method"
113
- :options="shippingOptions"
114
- />
107
+ <VcRadioGroup v-model="selected" label="Shipping Method" required :error="!selected" error-message="Select a shipping method" :options="shippingOptions" />
115
108
  ```
116
109
 
117
110
  ### Custom Slot Layout
118
111
 
119
112
  ```vue
120
- <VcRadioGroup
121
- v-model="frequency"
122
- label="Newsletter Frequency"
123
- hint="Custom layout via default slot"
124
- orientation="horizontal"
125
- name="newsletter-frequency"
126
- >
113
+ <VcRadioGroup v-model="frequency" label="Newsletter Frequency" hint="Custom layout via default slot" orientation="horizontal" name="newsletter-frequency">
127
114
  <VcRadioButton v-model="frequency" value="daily" label="Daily" />
128
115
  <VcRadioButton v-model="frequency" value="weekly" label="Weekly" />
129
116
  <VcRadioButton v-model="frequency" value="monthly" label="Monthly" />
@@ -148,4 +135,3 @@ interface RadioGroupOption<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
-
@@ -17,7 +17,11 @@ Read-only rating display component that visualizes a numeric value as stars, a s
17
17
 
18
18
  ```vue
19
19
  <template>
20
- <VcRating :model-value="4" :max="5" label="Customer Rating" />
20
+ <VcRating
21
+ :model-value="4"
22
+ :max="5"
23
+ label="Customer Rating"
24
+ />
21
25
  </template>
22
26
 
23
27
  <script setup lang="ts">
@@ -88,12 +92,7 @@ If no `placeholder` is provided and the value is falsy, the component renders an
88
92
  Add a label above the rating and an optional tooltip for context:
89
93
 
90
94
  ```vue
91
- <VcRating
92
- :model-value="4"
93
- :max="5"
94
- label="Average Rating"
95
- tooltip="Based on verified purchases only"
96
- />
95
+ <VcRating :model-value="4" :max="5" label="Average Rating" tooltip="Based on verified purchases only" />
97
96
  ```
98
97
 
99
98
  The label is rendered using the internal `VcLabel` component with consistent styling across all form fields.
@@ -130,8 +129,14 @@ Display the rating alongside other product information in a typical detail blade
130
129
  ```vue
131
130
  <template>
132
131
  <div class="tw-flex tw-flex-col tw-gap-4">
133
- <VcField label="Product Name" :model-value="product.name" />
134
- <VcField label="SKU" :model-value="product.sku" />
132
+ <VcField
133
+ label="Product Name"
134
+ :model-value="product.name"
135
+ />
136
+ <VcField
137
+ label="SKU"
138
+ :model-value="product.sku"
139
+ />
135
140
  <VcRating
136
141
  :model-value="product.averageRating"
137
142
  :max="5"
@@ -140,12 +145,13 @@ Display the rating alongside other product information in a typical detail blade
140
145
  tooltip="Based on verified purchases"
141
146
  >
142
147
  <template #details>
143
- <span class="tw-text-sm tw-text-gray-500 tw-ml-2">
144
- ({{ product.reviewCount }} reviews)
145
- </span>
148
+ <span class="tw-text-sm tw-text-gray-500 tw-ml-2"> ({{ product.reviewCount }} reviews) </span>
146
149
  </template>
147
150
  </VcRating>
148
- <VcField label="Price" :model-value="formatCurrency(product.price)" />
151
+ <VcField
152
+ label="Price"
153
+ :model-value="formatCurrency(product.price)"
154
+ />
149
155
  </div>
150
156
  </template>
151
157
  ```
@@ -213,31 +219,31 @@ Use the `"star-and-text"` or `"text"` variant in table cell slots for a compact
213
219
 
214
220
  ## Props
215
221
 
216
- | Prop | Type | Default | Description |
217
- |------|------|---------|-------------|
218
- | `modelValue` | `number` | -- | Current rating value to display |
219
- | `max` | `number` | `5` | Maximum rating value (defines the scale) |
220
- | `variant` | `"stars" \| "star-and-text" \| "text"` | `"stars"` | Display variant |
221
- | `label` | `string` | -- | Field label text above the rating |
222
- | `tooltip` | `string` | -- | Tooltip shown on the label |
223
- | `placeholder` | `string` | -- | Text shown when `modelValue` is falsy |
222
+ | Prop | Type | Default | Description |
223
+ | ------------- | -------------------------------------- | --------- | ---------------------------------------- |
224
+ | `modelValue` | `number` | -- | Current rating value to display |
225
+ | `max` | `number` | `5` | Maximum rating value (defines the scale) |
226
+ | `variant` | `"stars" \| "star-and-text" \| "text"` | `"stars"` | Display variant |
227
+ | `label` | `string` | -- | Field label text above the rating |
228
+ | `tooltip` | `string` | -- | Tooltip shown on the label |
229
+ | `placeholder` | `string` | -- | Text shown when `modelValue` is falsy |
224
230
 
225
231
  ## Slots
226
232
 
227
- | Slot | Scope | Description |
228
- |------|-------|-------------|
229
- | `details` | -- | Additional content below the rating (available in `star-and-text` and `text` variants) |
233
+ | Slot | Scope | Description |
234
+ | --------- | ----- | -------------------------------------------------------------------------------------- |
235
+ | `details` | -- | Additional content below the rating (available in `star-and-text` and `text` variants) |
230
236
 
231
237
  ## CSS Variables
232
238
 
233
- | Variable | Default | Description |
234
- |----------|---------|-------------|
235
- | `--rating-placeholder-color` | `var(--neutrals-400)` | Color of the placeholder text |
236
- | `--rating-star-size` | `1em` | Size of star icons |
237
- | `--rating-gap` | `2px` | Gap between star icons |
238
- | `--rating-special-color` | `var(--warning-500)` | Color of filled stars |
239
- | `--rating-special-color-hover` | `var(--warning-600)` | Hover color for star icons (reserved for future interactive mode) |
240
- | `--rating-special-color-disabled` | `var(--warning-200)` | Disabled color for star icons (reserved for future use) |
239
+ | Variable | Default | Description |
240
+ | --------------------------------- | --------------------- | ----------------------------------------------------------------- |
241
+ | `--rating-placeholder-color` | `var(--neutrals-400)` | Color of the placeholder text |
242
+ | `--rating-star-size` | `1em` | Size of star icons |
243
+ | `--rating-gap` | `2px` | Gap between star icons |
244
+ | `--rating-special-color` | `var(--warning-500)` | Color of filled stars |
245
+ | `--rating-special-color-hover` | `var(--warning-600)` | Hover color for star icons (reserved for future interactive mode) |
246
+ | `--rating-special-color-disabled` | `var(--warning-200)` | Disabled color for star icons (reserved for future use) |
241
247
 
242
248
  ## Accessibility
243
249
 
@@ -255,4 +261,3 @@ Use the `"star-and-text"` or `"text"` variant in table cell slots for a compact
255
261
  ## Skeleton / Loading State
256
262
 
257
263
  When placed inside a `VcBlade` with `loading=true`, the component automatically renders a skeleton placeholder matching its visual footprint. No additional props or configuration needed.
258
-
@@ -6,14 +6,14 @@ VcSelect is one of the most widely used components in vc-shell. It covers most s
6
6
 
7
7
  ## When to Use
8
8
 
9
- | Scenario | Component |
10
- |----------|-----------|
11
- | Selection from a list (single/multiple) | **VcSelect** |
12
- | Free text input | [VcInput](../vc-input/) |
13
- | Number input + unit selection | [VcInputDropdown](../vc-input-dropdown/) |
14
- | Tags with free-form input | [VcMultivalue](../vc-multivalue/) |
15
- | Date selection | [VcDatePicker](../vc-date-picker/) |
16
- | Color selection | [VcColorInput](../vc-color-input/) |
9
+ | Scenario | Component |
10
+ | --------------------------------------- | ---------------------------------------- |
11
+ | Selection from a list (single/multiple) | **VcSelect** |
12
+ | Free text input | [VcInput](../vc-input/) |
13
+ | Number input + unit selection | [VcInputDropdown](../vc-input-dropdown/) |
14
+ | Tags with free-form input | [VcMultivalue](../vc-multivalue/) |
15
+ | Date selection | [VcDatePicker](../vc-date-picker/) |
16
+ | Color selection | [VcColorInput](../vc-color-input/) |
17
17
 
18
18
  ## Quick Start
19
19
 
@@ -75,11 +75,7 @@ By default `option-value="id"` and `option-label="title"` — if your objects us
75
75
  For simple lists of strings or numbers:
76
76
 
77
77
  ```vue
78
- <VcSelect
79
- v-model="size"
80
- :options="['S', 'M', 'L', 'XL', 'XXL']"
81
- label="Размер"
82
- />
78
+ <VcSelect v-model="size" :options="['S', 'M', 'L', 'XL', 'XXL']" label="Размер" />
83
79
  ```
84
80
 
85
81
  In this case `optionValue` and `optionLabel` are not needed — the component uses the value as-is.
@@ -87,6 +83,7 @@ In this case `optionValue` and `optionLabel` are not needed — the component us
87
83
  ### Async Function (Server API)
88
84
 
89
85
  To load data from a server, pass a function instead of an array. This is the most powerful mode — it automatically provides:
86
+
90
87
  - Search with debounce (500ms by default)
91
88
  - Infinite scrolling (loads more on scroll down)
92
89
  - Automatic resolution of the initial value by `ids`
@@ -184,14 +181,7 @@ Selected values are displayed as chips with a remove button. The `clearable` but
184
181
  Enable `searchable` to add a search field to the dropdown:
185
182
 
186
183
  ```vue
187
- <VcSelect
188
- v-model="userId"
189
- :options="users"
190
- label="Пользователь"
191
- searchable
192
- :debounce="300"
193
- @search="onSearch"
194
- />
184
+ <VcSelect v-model="userId" :options="users" label="Пользователь" searchable :debounce="300" @search="onSearch" />
195
185
  ```
196
186
 
197
187
  - **Static array:** filtering happens on the client side (by `optionLabel`)
@@ -206,7 +196,11 @@ Use the `#option` slot for full control over how each option is rendered:
206
196
 
207
197
  ```vue
208
198
  <template>
209
- <VcSelect v-model="statusId" :options="statuses" label="Статус заказа">
199
+ <VcSelect
200
+ v-model="statusId"
201
+ :options="statuses"
202
+ label="Статус заказа"
203
+ >
210
204
  <template #option="{ opt, selected, toggleOption }">
211
205
  <div
212
206
  class="tw-flex tw-items-center tw-gap-2 tw-px-3 tw-py-2 tw-cursor-pointer"
@@ -224,7 +218,12 @@ Use the `#option` slot for full control over how each option is rendered:
224
218
  <span class="tw-text-xs tw-text-[var(--neutrals-400)]">{{ opt.description }}</span>
225
219
  </div>
226
220
  <!-- Галочка для выбранного -->
227
- <VcIcon v-if="selected" icon="lucide-check" size="xs" class="tw-ml-auto" />
221
+ <VcIcon
222
+ v-if="selected"
223
+ icon="lucide-check"
224
+ size="xs"
225
+ class="tw-ml-auto"
226
+ />
228
227
  </div>
229
228
  </template>
230
229
  </VcSelect>
@@ -316,12 +315,7 @@ const { meta, errorBag } = useForm({ validateOnMount: false });
316
315
  For an async select with search, the pattern is the same, but `handleChange` is called alongside business logic:
317
316
 
318
317
  ```vue
319
- <Field
320
- v-slot="{ errorMessage, handleChange, errors }"
321
- :model-value="offer.productId"
322
- name="product"
323
- rules="required"
324
- >
318
+ <Field v-slot="{ errorMessage, handleChange, errors }" :model-value="offer.productId" name="product" rules="required">
325
319
  <VcSelect
326
320
  v-model="offer.productId"
327
321
  label="Product"
@@ -509,7 +503,11 @@ A typical pattern in vc-shell — a select on a details page:
509
503
  <VcForm>
510
504
  <VcRow>
511
505
  <VcCol :size="6">
512
- <VcInput v-model="product.name" label="Name" required />
506
+ <VcInput
507
+ v-model="product.name"
508
+ label="Name"
509
+ required
510
+ />
513
511
  </VcCol>
514
512
  <VcCol :size="6">
515
513
  <VcSelect
@@ -571,18 +569,10 @@ If `v-model` contains an ID but the list has not been loaded yet — for static
571
569
 
572
570
  ```vue
573
571
  <!-- ❌ Проблема: async функция не обрабатывает ids -->
574
- const loadUsers = async (keyword?: string, skip?: number) => {
575
- return api.searchUsers({ keyword, skip, take: 20 });
576
- };
572
+ const loadUsers = async (keyword?: string, skip?: number) => { return api.searchUsers({ keyword, skip, take: 20 }); };
577
573
 
578
574
  <!-- ✅ Решение: обработайте ids параметр -->
579
- const loadUsers = async (keyword?: string, skip?: number, ids?: string[]) => {
580
- if (ids?.length) {
581
- const users = await api.getUsersByIds(ids);
582
- return { results: users, totalCount: users.length };
583
- }
584
- return api.searchUsers({ keyword, skip, take: 20 });
585
- };
575
+ const loadUsers = async (keyword?: string, skip?: number, ids?: string[]) => { if (ids?.length) { const users = await api.getUsersByIds(ids); return { results: users, totalCount: users.length }; } return api.searchUsers({ keyword, skip, take: 20 }); };
586
576
  ```
587
577
 
588
578
  ### Problem: Unnecessary requests with cascading selects
@@ -593,55 +583,55 @@ Don't forget `:key` with cascading selects, otherwise the second select will ret
593
583
 
594
584
  ## Props
595
585
 
596
- | Prop | Type | Default | Description |
597
- |------|------|---------|-------------|
598
- | `modelValue` | `T \| T[] \| string \| string[] \| null` | `undefined` | Value (v-model). Type depends on `emitValue` and `multiple` |
599
- | `options` | `T[] \| ((keyword?, skip?, ids?) => Promise<P>)` | `[]` | Static array or async function |
600
- | `optionValue` | `string \| ((opt: T) => string)` | `"id"` | Object property used as the value |
601
- | `optionLabel` | `string \| ((opt: T) => string)` | `"title"` | Object property used for display |
602
- | `multiple` | `boolean` | `false` | Multiple selection |
603
- | `searchable` | `boolean` | `false` | Search through options |
604
- | `emitValue` | `boolean` | `true` | `true` = emit the value, `false` = emit the full object |
605
- | `clearable` | `boolean` | `true` | Clear button |
606
- | `debounce` | `number \| string` | `500` | Search delay (ms) |
607
- | `mapOptions` | `boolean` | `true` | Automatically look up label by value in the array |
608
- | `placement` | `string` | `"bottom"` | Dropdown position (Floating UI placements) |
609
- | `size` | `"default" \| "small"` | `"default"` | Field size |
610
- | `outline` | `boolean` | `true` | Show border outline |
611
- | `loading` | `boolean` | `false` | Loading state |
612
- | `label` | `string` | — | Label text |
613
- | `placeholder` | `string` | — | Placeholder |
614
- | `required` | `boolean` | `false` | Required field (asterisk) |
615
- | `disabled` | `boolean` | `false` | Disable the component |
616
- | `error` | `boolean` | `false` | Error state |
617
- | `errorMessage` | `string` | — | Error text |
618
- | `hint` | `string` | — | Hint text below the field |
619
- | `tooltip` | `string` | — | Tooltip next to the label |
620
- | `prefix` | `string` | — | Prefix inside the field |
621
- | `suffix` | `string` | — | Suffix inside the field |
622
- | `multilanguage` | `boolean` | `false` | Multilanguage icon on the label |
623
- | `currentLanguage` | `string` | — | Current language |
624
- | `name` | `string` | `"Field"` | Field name for validation |
586
+ | Prop | Type | Default | Description |
587
+ | ----------------- | ------------------------------------------------ | ----------- | ----------------------------------------------------------- |
588
+ | `modelValue` | `T \| T[] \| string \| string[] \| null` | `undefined` | Value (v-model). Type depends on `emitValue` and `multiple` |
589
+ | `options` | `T[] \| ((keyword?, skip?, ids?) => Promise<P>)` | `[]` | Static array or async function |
590
+ | `optionValue` | `string \| ((opt: T) => string)` | `"id"` | Object property used as the value |
591
+ | `optionLabel` | `string \| ((opt: T) => string)` | `"title"` | Object property used for display |
592
+ | `multiple` | `boolean` | `false` | Multiple selection |
593
+ | `searchable` | `boolean` | `false` | Search through options |
594
+ | `emitValue` | `boolean` | `true` | `true` = emit the value, `false` = emit the full object |
595
+ | `clearable` | `boolean` | `true` | Clear button |
596
+ | `debounce` | `number \| string` | `500` | Search delay (ms) |
597
+ | `mapOptions` | `boolean` | `true` | Automatically look up label by value in the array |
598
+ | `placement` | `string` | `"bottom"` | Dropdown position (Floating UI placements) |
599
+ | `size` | `"default" \| "small"` | `"default"` | Field size |
600
+ | `outline` | `boolean` | `true` | Show border outline |
601
+ | `loading` | `boolean` | `false` | Loading state |
602
+ | `label` | `string` | — | Label text |
603
+ | `placeholder` | `string` | — | Placeholder |
604
+ | `required` | `boolean` | `false` | Required field (asterisk) |
605
+ | `disabled` | `boolean` | `false` | Disable the component |
606
+ | `error` | `boolean` | `false` | Error state |
607
+ | `errorMessage` | `string` | — | Error text |
608
+ | `hint` | `string` | — | Hint text below the field |
609
+ | `tooltip` | `string` | — | Tooltip next to the label |
610
+ | `prefix` | `string` | — | Prefix inside the field |
611
+ | `suffix` | `string` | — | Suffix inside the field |
612
+ | `multilanguage` | `boolean` | `false` | Multilanguage icon on the label |
613
+ | `currentLanguage` | `string` | — | Current language |
614
+ | `name` | `string` | `"Field"` | Field name for validation |
625
615
 
626
616
  ## Events
627
617
 
628
- | Event | Payload | Description |
629
- |-------|---------|-------------|
618
+ | Event | Payload | Description |
619
+ | ------------------- | ---------------------------------------- | ---------------------- |
630
620
  | `update:modelValue` | `T \| T[] \| string \| string[] \| null` | Selected value changed |
631
- | `search` | `string` | Search query changed |
632
- | `close` | — | Dropdown closed |
621
+ | `search` | `string` | Search query changed |
622
+ | `close` | — | Dropdown closed |
633
623
 
634
624
  ## Slots
635
625
 
636
- | Slot | Scope | Description |
637
- |------|-------|-------------|
638
- | `option` | `{ index, opt, selected, toggleOption }` | Custom option rendering. **You must call `toggleOption(opt)` on click.** |
639
- | `selected-item` | `{ index, opt, selected, removeAtIndex }` | Custom rendering of selected chips (multiple) |
640
- | `control` | `{ toggleHandler, isOpened }` | Full trigger replacement |
641
- | `prepend` / `append` | — | Content outside the field |
642
- | `prepend-inner` / `append-inner` | — | Content inside the field |
643
- | `no-options` | — | Shown when there are no options |
644
- | `error` / `hint` | — | Custom rendering of error/hint |
626
+ | Slot | Scope | Description |
627
+ | -------------------------------- | ----------------------------------------- | ------------------------------------------------------------------------ |
628
+ | `option` | `{ index, opt, selected, toggleOption }` | Custom option rendering. **You must call `toggleOption(opt)` on click.** |
629
+ | `selected-item` | `{ index, opt, selected, removeAtIndex }` | Custom rendering of selected chips (multiple) |
630
+ | `control` | `{ toggleHandler, isOpened }` | Full trigger replacement |
631
+ | `prepend` / `append` | — | Content outside the field |
632
+ | `prepend-inner` / `append-inner` | — | Content inside the field |
633
+ | `no-options` | — | Shown when there are no options |
634
+ | `error` / `hint` | — | Custom rendering of error/hint |
645
635
 
646
636
  ## CSS Variables
647
637
 
@@ -688,4 +678,3 @@ Don't forget `:key` with cascading selects, otherwise the second select will ret
688
678
  When placed inside a `VcBlade` with `loading=true`, the component automatically renders a skeleton placeholder matching its visual footprint — a label block (when the `label` prop is set) and an input-shaped block. No additional props or configuration needed.
689
679
 
690
680
  This behavior is powered by `BladeLoadingKey` via Vue's provide/inject. The component injects the loading state from the nearest `VcBlade` ancestor.
691
-
@@ -13,10 +13,16 @@ A content carousel component built on Swiper.js for displaying slides with optio
13
13
 
14
14
  ```vue
15
15
  <template>
16
- <VcSlider :slides="products" navigation>
16
+ <VcSlider
17
+ :slides="products"
18
+ navigation
19
+ >
17
20
  <template #default="{ slide }">
18
21
  <div class="tw-w-48">
19
- <img :src="slide.imageUrl" class="tw-rounded" />
22
+ <img
23
+ :src="slide.imageUrl"
24
+ class="tw-rounded"
25
+ />
20
26
  <p>{{ slide.name }}</p>
21
27
  </div>
22
28
  </template>
@@ -36,14 +42,14 @@ const products = [
36
42
 
37
43
  ## Key Props
38
44
 
39
- | Prop | Type | Default | Description |
40
- |------|------|---------|-------------|
41
- | `slides` | `Record<string, unknown>[] \| unknown[]` | `[]` | Array of slide data objects |
42
- | `navigation` | `boolean` | `false` | Show previous/next navigation buttons |
43
- | `slidesPerView` | `string \| "auto"` | `"auto"` | Number of visible slides at once |
44
- | `spaceBetweenSlides` | `number` | `10` | Gap between slides in pixels |
45
- | `overflow` | `boolean` | `false` | Allow slides to be visible outside the container bounds |
46
- | `ariaLabel` | `string` | `"Content carousel"` | Accessible label for the slider region |
45
+ | Prop | Type | Default | Description |
46
+ | -------------------- | ---------------------------------------- | -------------------- | ------------------------------------------------------- |
47
+ | `slides` | `Record<string, unknown>[] \| unknown[]` | `[]` | Array of slide data objects |
48
+ | `navigation` | `boolean` | `false` | Show previous/next navigation buttons |
49
+ | `slidesPerView` | `string \| "auto"` | `"auto"` | Number of visible slides at once |
50
+ | `spaceBetweenSlides` | `number` | `10` | Gap between slides in pixels |
51
+ | `overflow` | `boolean` | `false` | Allow slides to be visible outside the container bounds |
52
+ | `ariaLabel` | `string` | `"Content carousel"` | Accessible label for the slider region |
47
53
 
48
54
  ## Common Patterns
49
55
 
@@ -89,11 +95,11 @@ const products = [
89
95
 
90
96
  ## Slots
91
97
 
92
- | Slot | Scope | Description |
93
- |------|-------|-------------|
94
- | `default` | `{ slide }` | Content for each slide |
95
- | `prevBtn` | -- | Custom previous navigation button |
96
- | `nextBtn` | -- | Custom next navigation button |
98
+ | Slot | Scope | Description |
99
+ | --------- | ----------- | --------------------------------- |
100
+ | `default` | `{ slide }` | Content for each slide |
101
+ | `prevBtn` | -- | Custom previous navigation button |
102
+ | `nextBtn` | -- | Custom next navigation button |
97
103
 
98
104
  ## Accessibility
99
105
 
@@ -117,4 +123,3 @@ const products = [
117
123
  ## Skeleton / Loading State
118
124
 
119
125
  When placed inside a `VcBlade` with `loading=true`, the component automatically renders a skeleton placeholder matching its visual footprint. No additional props or configuration needed.
120
-