@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
@@ -22,31 +22,31 @@ A form field label component with support for required indicators, info tooltips
22
22
 
23
23
  ## Key Props
24
24
 
25
- | Prop | Type | Default | Description |
26
- |------|------|---------|-------------|
27
- | `required` | `boolean` | `false` | Shows a red asterisk after the label text |
28
- | `error` | `boolean` | `false` | Renders the label in error state (danger color) |
29
- | `htmlFor` | `string` | -- | Links the label to an input; when set, renders as `<label for="...">` |
30
- | `tooltipIcon` | `string` | `"lucide-info"` | Icon used for the tooltip trigger |
31
- | `multilanguage` | `boolean` | `false` | Shows a language indicator badge |
32
- | `currentLanguage` | `string` | -- | Language code displayed in the badge (e.g. `"EN"`, `"DE"`) |
25
+ | Prop | Type | Default | Description |
26
+ | ----------------- | --------- | --------------- | --------------------------------------------------------------------- |
27
+ | `required` | `boolean` | `false` | Shows a red asterisk after the label text |
28
+ | `error` | `boolean` | `false` | Renders the label in error state (danger color) |
29
+ | `htmlFor` | `string` | -- | Links the label to an input; when set, renders as `<label for="...">` |
30
+ | `tooltipIcon` | `string` | `"lucide-info"` | Icon used for the tooltip trigger |
31
+ | `multilanguage` | `boolean` | `false` | Shows a language indicator badge |
32
+ | `currentLanguage` | `string` | -- | Language code displayed in the badge (e.g. `"EN"`, `"DE"`) |
33
33
 
34
34
  ## Slots
35
35
 
36
- | Slot | Description |
37
- |------|-------------|
38
- | `default` | Label text content |
36
+ | Slot | Description |
37
+ | --------- | -------------------------------------------- |
38
+ | `default` | Label text content |
39
39
  | `tooltip` | Content displayed inside the tooltip popover |
40
40
 
41
41
  ## CSS Custom Properties
42
42
 
43
- | Variable | Default | Description |
44
- |---|---|---|
45
- | `--label-text-color` | `var(--neutrals-700)` | Default text color |
46
- | `--label-required-color` | `var(--danger-500)` | Color of the required asterisk |
47
- | `--label-tooltip-color` | `var(--neutrals-400)` | Tooltip icon color |
48
- | `--label-lang-color` | `var(--neutrals-500)` | Language badge text color |
49
- | `--label-error-color` | `var(--danger-500)` | Text color in error state |
43
+ | Variable | Default | Description |
44
+ | ------------------------ | --------------------- | ------------------------------ |
45
+ | `--label-text-color` | `var(--neutrals-700)` | Default text color |
46
+ | `--label-required-color` | `var(--danger-500)` | Color of the required asterisk |
47
+ | `--label-tooltip-color` | `var(--neutrals-400)` | Tooltip icon color |
48
+ | `--label-lang-color` | `var(--neutrals-500)` | Language badge text color |
49
+ | `--label-error-color` | `var(--danger-500)` | Text color in error state |
50
50
 
51
51
  ## Common Patterns
52
52
 
@@ -92,11 +92,13 @@ Compose VcLabel, an input, and VcHint into a reusable field pattern:
92
92
  ```vue
93
93
  <template>
94
94
  <div class="tw-space-y-1">
95
- <VcLabel html-for="slug" required :error="!!slugError">
95
+ <VcLabel
96
+ html-for="slug"
97
+ required
98
+ :error="!!slugError"
99
+ >
96
100
  URL Slug
97
- <template #tooltip>
98
- The URL-friendly identifier for this page. Auto-generated from the title if left blank.
99
- </template>
101
+ <template #tooltip> The URL-friendly identifier for this page. Auto-generated from the title if left blank. </template>
100
102
  </VcLabel>
101
103
  <VcInput
102
104
  id="slug"
@@ -105,8 +107,11 @@ Compose VcLabel, an input, and VcHint into a reusable field pattern:
105
107
  aria-describedby="slug-hint"
106
108
  aria-required="true"
107
109
  />
108
- <VcHint id="slug-hint" :error="!!slugError">
109
- {{ slugError || 'Lowercase letters, numbers, and hyphens only.' }}
110
+ <VcHint
111
+ id="slug-hint"
112
+ :error="!!slugError"
113
+ >
114
+ {{ slugError || "Lowercase letters, numbers, and hyphens only." }}
110
115
  </VcHint>
111
116
  </div>
112
117
  </template>
@@ -27,16 +27,16 @@ function openDetails() {
27
27
 
28
28
  ## Key Props
29
29
 
30
- | Prop | Type | Default | Description |
31
- |------|------|---------|-------------|
32
- | `active` | `boolean` | `false` | Highlights the link as currently selected |
30
+ | Prop | Type | Default | Description |
31
+ | ---------- | --------- | ------- | ---------------------------------------------- |
32
+ | `active` | `boolean` | `false` | Highlights the link as currently selected |
33
33
  | `disabled` | `boolean` | `false` | Prevents interaction and applies muted styling |
34
34
 
35
35
  ## Events
36
36
 
37
- | Event | Payload | Description |
38
- |-------|---------|-------------|
39
- | `click` | none | Fired when the link is clicked (suppressed when `disabled`) |
37
+ | Event | Payload | Description |
38
+ | ------- | ------- | ----------------------------------------------------------- |
39
+ | `click` | none | Fired when the link is clicked (suppressed when `disabled`) |
40
40
 
41
41
  ## Common Patterns
42
42
 
@@ -45,8 +45,16 @@ function openDetails() {
45
45
  ```vue
46
46
  <template>
47
47
  <div class="tw-flex tw-gap-4">
48
- <VcLink :active="currentTab === 'home'" @click="currentTab = 'home'">Home</VcLink>
49
- <VcLink :active="currentTab === 'products'" @click="currentTab = 'products'">Products</VcLink>
48
+ <VcLink
49
+ :active="currentTab === 'home'"
50
+ @click="currentTab = 'home'"
51
+ >Home</VcLink
52
+ >
53
+ <VcLink
54
+ :active="currentTab === 'products'"
55
+ @click="currentTab = 'products'"
56
+ >Products</VcLink
57
+ >
50
58
  <VcLink disabled>Admin</VcLink>
51
59
  </div>
52
60
  </template>
@@ -105,13 +113,13 @@ const activeTab = ref("Overview");
105
113
 
106
114
  ## CSS Custom Properties
107
115
 
108
- | Variable | Default | Description |
109
- |---|---|---|
110
- | `--link-text-color` | `var(--primary-500)` | Default text color |
111
- | `--link-text-color-hover` | `var(--primary-400)` | Text color on hover |
112
- | `--link-text-color-active` | `var(--primary-700)` | Text color in active state |
113
- | `--link-text-color-disabled` | `var(--neutrals-300)` | Text color when disabled |
114
- | `--link-focus-ring-color` | `primary-500 at 30%` | Focus ring color |
116
+ | Variable | Default | Description |
117
+ | ---------------------------- | --------------------- | -------------------------- |
118
+ | `--link-text-color` | `var(--primary-500)` | Default text color |
119
+ | `--link-text-color-hover` | `var(--primary-400)` | Text color on hover |
120
+ | `--link-text-color-active` | `var(--primary-700)` | Text color in active state |
121
+ | `--link-text-color-disabled` | `var(--neutrals-300)` | Text color when disabled |
122
+ | `--link-focus-ring-color` | `primary-500 at 30%` | Focus ring color |
115
123
 
116
124
  ## Tips
117
125
 
@@ -31,20 +31,20 @@ const isLoading = ref(true);
31
31
 
32
32
  ## Key Props
33
33
 
34
- | Prop | Type | Default | Description |
35
- |------|------|---------|-------------|
34
+ | Prop | Type | Default | Description |
35
+ | -------- | --------- | ------- | --------------------------- |
36
36
  | `active` | `boolean` | `false` | Controls overlay visibility |
37
37
 
38
38
  ## CSS Custom Properties
39
39
 
40
- | Variable | Default | Description |
41
- |---|---|---|
42
- | `--loading-bar-color` | `var(--primary-500)` | Progress bar fill color |
43
- | `--loading-bar-track` | `var(--primary-100)` | Progress bar track background |
44
- | `--loading-overlay-bg` | `rgba(255,255,255,0.6)` | Overlay background color |
45
- | `--loading-bar-width` | `140px` | Width of the progress bar |
46
- | `--loading-bar-height` | `4px` | Height of the progress bar |
47
- | `--loading-z-index` | `9998` | Z-index of the overlay layer |
40
+ | Variable | Default | Description |
41
+ | ---------------------- | ----------------------- | ----------------------------- |
42
+ | `--loading-bar-color` | `var(--primary-500)` | Progress bar fill color |
43
+ | `--loading-bar-track` | `var(--primary-100)` | Progress bar track background |
44
+ | `--loading-overlay-bg` | `rgba(255,255,255,0.6)` | Overlay background color |
45
+ | `--loading-bar-width` | `140px` | Width of the progress bar |
46
+ | `--loading-bar-height` | `4px` | Height of the progress bar |
47
+ | `--loading-z-index` | `9998` | Z-index of the overlay layer |
48
48
 
49
49
  ## Recipe: Loading State in a Blade
50
50
 
@@ -55,11 +55,17 @@ Blades have a built-in loading mechanism, but you can use VcLoading to cover a s
55
55
  <VcBlade title="Product Details">
56
56
  <div class="tw-relative tw-min-h-[200px]">
57
57
  <VcLoading :active="isLoadingChart" />
58
- <RevenueChart v-if="chartData" :data="chartData" />
58
+ <RevenueChart
59
+ v-if="chartData"
60
+ :data="chartData"
61
+ />
59
62
  </div>
60
63
 
61
64
  <!-- The rest of the blade loads independently -->
62
- <VcInput v-model="product.name" label="Name" />
65
+ <VcInput
66
+ v-model="product.name"
67
+ label="Name"
68
+ />
63
69
  </VcBlade>
64
70
  </template>
65
71
  ```
@@ -89,7 +95,10 @@ Override the bar color to match a specific status or brand theme:
89
95
 
90
96
  ```vue
91
97
  <template>
92
- <div class="tw-relative tw-h-40" style="--loading-bar-color: var(--success-500); --loading-bar-track: var(--success-100);">
98
+ <div
99
+ class="tw-relative tw-h-40"
100
+ style="--loading-bar-color: var(--success-500); --loading-bar-track: var(--success-100);"
101
+ >
93
102
  <VcLoading :active="isSaving" />
94
103
  <span>Saving changes...</span>
95
104
  </div>
@@ -26,11 +26,11 @@ const uploadPercent = ref(45);
26
26
 
27
27
  ## Key Props
28
28
 
29
- | Prop | Type | Default | Description |
30
- |------|------|---------|-------------|
31
- | `value` | `number` | `0` | Current progress (0--100). Clamped automatically. |
32
- | `variant` | `"default" \| "striped"` | `"default"` | Visual style; `striped` adds an animated diagonal pattern |
33
- | `ariaLabel` | `string` | `"Progress"` | Accessible label describing what the bar represents |
29
+ | Prop | Type | Default | Description |
30
+ | ----------- | ------------------------ | ------------ | --------------------------------------------------------- |
31
+ | `value` | `number` | `0` | Current progress (0--100). Clamped automatically. |
32
+ | `variant` | `"default" \| "striped"` | `"default"` | Visual style; `striped` adds an animated diagonal pattern |
33
+ | `ariaLabel` | `string` | `"Progress"` | Accessible label describing what the bar represents |
34
34
 
35
35
  ## Common Patterns
36
36
 
@@ -43,7 +43,10 @@ const uploadPercent = ref(45);
43
43
  <span>Importing catalog...</span>
44
44
  <span>{{ progress }}%</span>
45
45
  </div>
46
- <VcProgress :value="progress" :variant="progress === 100 ? 'striped' : 'default'" />
46
+ <VcProgress
47
+ :value="progress"
48
+ :variant="progress === 100 ? 'striped' : 'default'"
49
+ />
47
50
  </div>
48
51
  </template>
49
52
  ```
@@ -53,7 +56,10 @@ const uploadPercent = ref(45);
53
56
  ```vue
54
57
  <template>
55
58
  <div class="tw-space-y-4">
56
- <div v-for="stage in stages" :key="stage.label">
59
+ <div
60
+ v-for="stage in stages"
61
+ :key="stage.label"
62
+ >
57
63
  <span class="tw-text-sm">{{ stage.label }}</span>
58
64
  <VcProgress :value="stage.value" />
59
65
  </div>
@@ -74,7 +80,10 @@ const uploadPercent = ref(45);
74
80
  :value="(usedGB / totalGB) * 100"
75
81
  aria-label="Storage usage"
76
82
  />
77
- <VcHint v-if="usedGB / totalGB > 0.9" error>
83
+ <VcHint
84
+ v-if="usedGB / totalGB > 0.9"
85
+ error
86
+ >
78
87
  You are running low on storage.
79
88
  </VcHint>
80
89
  </div>
@@ -105,11 +114,17 @@ async function handleUpload(files: FileList) {
105
114
 
106
115
  <template>
107
116
  <VcBlade title="Import Products">
108
- <VcButton :disabled="isUploading" @click="triggerUpload">
109
- {{ isUploading ? 'Uploading...' : 'Select File' }}
117
+ <VcButton
118
+ :disabled="isUploading"
119
+ @click="triggerUpload"
120
+ >
121
+ {{ isUploading ? "Uploading..." : "Select File" }}
110
122
  </VcButton>
111
123
 
112
- <div v-if="isUploading" class="tw-mt-4">
124
+ <div
125
+ v-if="isUploading"
126
+ class="tw-mt-4"
127
+ >
113
128
  <VcProgress
114
129
  :value="uploadProgress"
115
130
  variant="striped"
@@ -123,13 +138,13 @@ async function handleUpload(files: FileList) {
123
138
 
124
139
  ## CSS Custom Properties
125
140
 
126
- | Variable | Default | Description |
127
- |---|---|---|
128
- | `--progressbar-height` | `8px` | Bar height |
129
- | `--progressbar-border-radius` | `9999px` | Border radius (pill shape) |
130
- | `--progressbar-background-color` | `var(--neutrals-200)` | Track background |
131
- | `--progressbar-foreground-color` | `var(--primary-500)` | Fill color |
132
- | `--progressbar-striped-bg` | gradient | Striped variant background |
141
+ | Variable | Default | Description |
142
+ | -------------------------------- | --------------------- | -------------------------- |
143
+ | `--progressbar-height` | `8px` | Bar height |
144
+ | `--progressbar-border-radius` | `9999px` | Border radius (pill shape) |
145
+ | `--progressbar-background-color` | `var(--neutrals-200)` | Track background |
146
+ | `--progressbar-foreground-color` | `var(--primary-500)` | Fill color |
147
+ | `--progressbar-striped-bg` | gradient | Striped variant background |
133
148
 
134
149
  ## Tips
135
150
 
@@ -14,9 +14,18 @@ A simple layout primitive that arranges child elements in a horizontal flexbox r
14
14
  ```vue
15
15
  <template>
16
16
  <VcRow>
17
- <VcImage src="/img/a.jpg" size="xl" />
18
- <VcImage src="/img/b.jpg" size="xl" />
19
- <VcImage src="/img/c.jpg" size="xl" />
17
+ <VcImage
18
+ src="/img/a.jpg"
19
+ size="xl"
20
+ />
21
+ <VcImage
22
+ src="/img/b.jpg"
23
+ size="xl"
24
+ />
25
+ <VcImage
26
+ src="/img/c.jpg"
27
+ size="xl"
28
+ />
20
29
  </VcRow>
21
30
  </template>
22
31
 
@@ -38,7 +47,11 @@ The `--row-gap` CSS variable (default `0`) controls spacing. You can also overri
38
47
  ```vue
39
48
  <template>
40
49
  <VcRow class="tw-gap-4">
41
- <div v-for="i in 4" :key="i" class="tw-p-4 tw-bg-gray-100 tw-rounded">
50
+ <div
51
+ v-for="i in 4"
52
+ :key="i"
53
+ class="tw-p-4 tw-bg-gray-100 tw-rounded"
54
+ >
42
55
  Item {{ i }}
43
56
  </div>
44
57
  </VcRow>
@@ -50,7 +63,11 @@ The `--row-gap` CSS variable (default `0`) controls spacing. You can also overri
50
63
  ```vue
51
64
  <template>
52
65
  <VcRow class="tw-gap-4">
53
- <div v-for="card in cards" :key="card.id" class="tw-w-64 tw-p-4 tw-border tw-rounded tw-shadow-sm">
66
+ <div
67
+ v-for="card in cards"
68
+ :key="card.id"
69
+ class="tw-w-64 tw-p-4 tw-border tw-rounded tw-shadow-sm"
70
+ >
54
71
  <h3 class="tw-font-medium">{{ card.title }}</h3>
55
72
  <p class="tw-text-sm tw-text-gray-600">{{ card.description }}</p>
56
73
  </div>
@@ -64,11 +81,20 @@ The `--row-gap` CSS variable (default `0`) controls spacing. You can also overri
64
81
  <template>
65
82
  <VcRow class="tw-gap-6">
66
83
  <VcCol :size="1">
67
- <VcImage :src="product.imageUrl" size="xl" />
84
+ <VcImage
85
+ :src="product.imageUrl"
86
+ size="xl"
87
+ />
68
88
  </VcCol>
69
89
  <VcCol :size="2">
70
- <VcInput label="Product Name" v-model="product.name" />
71
- <VcInput label="SKU" v-model="product.sku" />
90
+ <VcInput
91
+ label="Product Name"
92
+ v-model="product.name"
93
+ />
94
+ <VcInput
95
+ label="SKU"
96
+ v-model="product.sku"
97
+ />
72
98
  </VcCol>
73
99
  </VcRow>
74
100
  </template>
@@ -84,10 +110,25 @@ Use VcRow to place a section label next to a group of fields in a blade detail v
84
110
  <VcCol :size="1">
85
111
  <span class="tw-font-medium tw-text-sm tw-text-gray-700">Pricing</span>
86
112
  </VcCol>
87
- <VcCol :size="3" class="tw-gap-3">
88
- <VcInput label="List Price" v-model="form.listPrice" type="number" />
89
- <VcInput label="Sale Price" v-model="form.salePrice" type="number" />
90
- <VcSelect label="Currency" v-model="form.currency" :options="currencies" />
113
+ <VcCol
114
+ :size="3"
115
+ class="tw-gap-3"
116
+ >
117
+ <VcInput
118
+ label="List Price"
119
+ v-model="form.listPrice"
120
+ type="number"
121
+ />
122
+ <VcInput
123
+ label="Sale Price"
124
+ v-model="form.salePrice"
125
+ type="number"
126
+ />
127
+ <VcSelect
128
+ label="Currency"
129
+ v-model="form.currency"
130
+ :options="currencies"
131
+ />
91
132
  </VcCol>
92
133
  </VcRow>
93
134
  </template>
@@ -95,9 +136,9 @@ Use VcRow to place a section label next to a group of fields in a blade detail v
95
136
 
96
137
  ## CSS Custom Properties
97
138
 
98
- | Variable | Default | Description |
99
- |---|---|---|
100
- | `--row-gap` | `0` | Gap between child elements |
139
+ | Variable | Default | Description |
140
+ | ----------- | ------- | -------------------------- |
141
+ | `--row-gap` | `0` | Gap between child elements |
101
142
 
102
143
  ## Tips
103
144
 
@@ -14,7 +14,11 @@ A container component that wraps overflowing content with auto-hiding scroll arr
14
14
  ```vue
15
15
  <template>
16
16
  <VcScrollableContainer style="height: 200px;">
17
- <div v-for="i in 30" :key="i" class="tw-px-3 tw-py-2">
17
+ <div
18
+ v-for="i in 30"
19
+ :key="i"
20
+ class="tw-px-3 tw-py-2"
21
+ >
18
22
  Item {{ i }}
19
23
  </div>
20
24
  </VcScrollableContainer>
@@ -27,24 +31,24 @@ import { VcScrollableContainer } from "@vc-shell/framework";
27
31
 
28
32
  ## Key Props
29
33
 
30
- | Prop | Type | Default | Description |
31
- |------|------|---------|-------------|
32
- | `speed` | `number` | `2` | Scroll speed in px/frame. Captured once at mount (not reactive). |
34
+ | Prop | Type | Default | Description |
35
+ | ------- | -------- | ------- | ---------------------------------------------------------------- |
36
+ | `speed` | `number` | `2` | Scroll speed in px/frame. Captured once at mount (not reactive). |
33
37
 
34
38
  ## Slots
35
39
 
36
- | Slot | Description |
37
- |------|-------------|
38
- | `default` | Content rendered inside the scrollable viewport |
39
- | `arrow-up` | Custom up-arrow indicator (replaces default chevron) |
40
+ | Slot | Description |
41
+ | ------------ | ------------------------------------------------------ |
42
+ | `default` | Content rendered inside the scrollable viewport |
43
+ | `arrow-up` | Custom up-arrow indicator (replaces default chevron) |
40
44
  | `arrow-down` | Custom down-arrow indicator (replaces default chevron) |
41
45
 
42
46
  ## Exposed
43
47
 
44
- | Property | Type | Description |
45
- |----------|------|-------------|
46
- | `viewportRef` | `Ref<HTMLElement \| null>` | Direct reference to the viewport DOM element |
47
- | `updateScrollState` | `() => void` | Manually recalculate arrow visibility |
48
+ | Property | Type | Description |
49
+ | ------------------- | -------------------------- | -------------------------------------------- |
50
+ | `viewportRef` | `Ref<HTMLElement \| null>` | Direct reference to the viewport DOM element |
51
+ | `updateScrollState` | `() => void` | Manually recalculate arrow visibility |
48
52
 
49
53
  ## Recipe: Sidebar Filter List in a Blade
50
54
 
@@ -52,13 +56,19 @@ import { VcScrollableContainer } from "@vc-shell/framework";
52
56
  <template>
53
57
  <div class="tw-w-64 tw-border-r tw-border-gray-200">
54
58
  <h3 class="tw-px-3 tw-py-2 tw-font-semibold tw-text-sm">Filters</h3>
55
- <VcScrollableContainer style="max-height: 320px;" :speed="3">
59
+ <VcScrollableContainer
60
+ style="max-height: 320px;"
61
+ :speed="3"
62
+ >
56
63
  <label
57
64
  v-for="filter in filters"
58
65
  :key="filter.id"
59
66
  class="tw-flex tw-items-center tw-gap-2 tw-px-3 tw-py-1.5 hover:tw-bg-gray-50 tw-cursor-pointer"
60
67
  >
61
- <input type="checkbox" v-model="filter.active" />
68
+ <input
69
+ type="checkbox"
70
+ v-model="filter.active"
71
+ />
62
72
  <span class="tw-text-sm">{{ filter.label }}</span>
63
73
  </label>
64
74
  </VcScrollableContainer>
@@ -83,7 +93,10 @@ watch(activeCategory, () => {
83
93
  </script>
84
94
 
85
95
  <template>
86
- <VcScrollableContainer ref="scrollContainer" style="height: 300px;">
96
+ <VcScrollableContainer
97
+ ref="scrollContainer"
98
+ style="height: 300px;"
99
+ >
87
100
  <ItemList :category="activeCategory" />
88
101
  </VcScrollableContainer>
89
102
  </template>
@@ -22,14 +22,14 @@ import { VcSkeleton } from "@vc-shell/framework";
22
22
 
23
23
  ## Key Props
24
24
 
25
- | Prop | Type | Default | Description |
26
- |------|------|---------|-------------|
27
- | `variant` | `"text" \| "circle" \| "block"` | `"text"` | Shape variant: text rows, circular, or rectangular |
28
- | `rows` | `number` | `1` | Number of text rows (only for `variant="text"`) |
29
- | `width` | `string \| number` | -- | Custom width for circle/block (number = px) |
30
- | `height` | `string \| number` | -- | Custom height for circle/block (number = px) |
31
- | `animated` | `boolean` | `true` | Enables pulse animation |
32
- | `ariaLabel` | `string` | `"Loading..."` | Screen reader announcement |
25
+ | Prop | Type | Default | Description |
26
+ | ----------- | ------------------------------- | -------------- | -------------------------------------------------- |
27
+ | `variant` | `"text" \| "circle" \| "block"` | `"text"` | Shape variant: text rows, circular, or rectangular |
28
+ | `rows` | `number` | `1` | Number of text rows (only for `variant="text"`) |
29
+ | `width` | `string \| number` | -- | Custom width for circle/block (number = px) |
30
+ | `height` | `string \| number` | -- | Custom height for circle/block (number = px) |
31
+ | `animated` | `boolean` | `true` | Enables pulse animation |
32
+ | `ariaLabel` | `string` | `"Loading..."` | Screen reader announcement |
33
33
 
34
34
  ## Common Patterns
35
35
 
@@ -52,9 +52,17 @@ The last row automatically renders at 60% width for a natural paragraph feel.
52
52
  ```vue
53
53
  <template>
54
54
  <div class="tw-border tw-rounded-lg tw-overflow-hidden tw-shadow-sm">
55
- <VcSkeleton variant="block" width="100%" height="200px" />
55
+ <VcSkeleton
56
+ variant="block"
57
+ width="100%"
58
+ height="200px"
59
+ />
56
60
  <div class="tw-p-4">
57
- <VcSkeleton variant="block" width="60%" height="20px" />
61
+ <VcSkeleton
62
+ variant="block"
63
+ width="60%"
64
+ height="20px"
65
+ />
58
66
  <div class="tw-mt-3">
59
67
  <VcSkeleton :rows="3" />
60
68
  </div>
@@ -68,10 +76,22 @@ The last row automatically renders at 60% width for a natural paragraph feel.
68
76
  ```vue
69
77
  <template>
70
78
  <div class="tw-space-y-4">
71
- <div v-for="i in 3" :key="i" class="tw-flex tw-gap-4 tw-items-center">
72
- <VcSkeleton variant="circle" :width="40" :height="40" />
79
+ <div
80
+ v-for="i in 3"
81
+ :key="i"
82
+ class="tw-flex tw-gap-4 tw-items-center"
83
+ >
84
+ <VcSkeleton
85
+ variant="circle"
86
+ :width="40"
87
+ :height="40"
88
+ />
73
89
  <div class="tw-flex-1">
74
- <VcSkeleton variant="block" width="40%" height="14px" />
90
+ <VcSkeleton
91
+ variant="block"
92
+ width="40%"
93
+ height="14px"
94
+ />
75
95
  <div class="tw-mt-2">
76
96
  <VcSkeleton :rows="1" />
77
97
  </div>
@@ -83,13 +103,13 @@ The last row automatically renders at 60% width for a natural paragraph feel.
83
103
 
84
104
  ## CSS Custom Properties
85
105
 
86
- | Variable | Default | Description |
87
- |---|---|---|
88
- | `--vc-skeleton-bg` | `var(--neutrals-200)` | Shape background color |
89
- | `--vc-skeleton-highlight` | `var(--neutrals-300)` | Highlight color (for future shimmer) |
90
- | `--vc-skeleton-border-radius` | `6px` | Corner radius for text rows and blocks |
91
- | `--vc-skeleton-row-height` | `16px` | Height of each text row |
92
- | `--vc-skeleton-row-gap` | `12px` | Vertical gap between text rows |
106
+ | Variable | Default | Description |
107
+ | ----------------------------- | --------------------- | -------------------------------------- |
108
+ | `--vc-skeleton-bg` | `var(--neutrals-200)` | Shape background color |
109
+ | `--vc-skeleton-highlight` | `var(--neutrals-300)` | Highlight color (for future shimmer) |
110
+ | `--vc-skeleton-border-radius` | `6px` | Corner radius for text rows and blocks |
111
+ | `--vc-skeleton-row-height` | `16px` | Height of each text row |
112
+ | `--vc-skeleton-row-gap` | `12px` | Vertical gap between text rows |
93
113
 
94
114
  ## Accessibility
95
115