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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (192) hide show
  1. package/CHANGELOG.md +52 -55
  2. package/README.md +18 -12
  3. package/package.json +4 -4
  4. package/runtime/agents/api-analyzer.md +31 -16
  5. package/runtime/agents/blade-enhancer.md +15 -9
  6. package/runtime/agents/details-blade-generator.md +47 -31
  7. package/runtime/agents/list-blade-generator.md +21 -37
  8. package/runtime/agents/locales-generator.md +3 -0
  9. package/runtime/agents/migration-agent.md +18 -7
  10. package/runtime/agents/module-analyzer.md +2 -0
  11. package/runtime/agents/module-assembler.md +15 -0
  12. package/runtime/agents/promote-agent.md +15 -4
  13. package/runtime/agents/type-checker.md +11 -0
  14. package/runtime/knowledge/docs/core/api/platform.docs.md +30 -30
  15. package/runtime/knowledge/docs/core/blade-navigation/blade-nav-composables.docs.md +41 -41
  16. package/runtime/knowledge/docs/core/composables/bladeContext/index.docs.md +12 -10
  17. package/runtime/knowledge/docs/core/composables/useApiClient/useApiClient.docs.md +11 -14
  18. package/runtime/knowledge/docs/core/composables/useAppBarMobileButtons/useAppBarMobileButtons.docs.md +35 -35
  19. package/runtime/knowledge/docs/core/composables/useAppBarWidget/useAppBarWidget.docs.md +35 -35
  20. package/runtime/knowledge/docs/core/composables/useAppInsights/useAppInsights.docs.md +15 -15
  21. package/runtime/knowledge/docs/core/composables/useAssets/useAssets.docs.md +21 -18
  22. package/runtime/knowledge/docs/core/composables/useAssetsManager/useAssetsManager.docs.md +31 -27
  23. package/runtime/knowledge/docs/core/composables/useAsync/useAsync.docs.md +90 -61
  24. package/runtime/knowledge/docs/core/composables/useBeforeUnload/useBeforeUnload.docs.md +19 -18
  25. package/runtime/knowledge/docs/core/composables/useBlade/useBlade.docs.md +89 -68
  26. package/runtime/knowledge/docs/core/composables/useBladeForm/useBladeForm.docs.md +27 -25
  27. package/runtime/knowledge/docs/core/composables/useBladeRegistry/useBladeRegistry.docs.md +15 -15
  28. package/runtime/knowledge/docs/core/composables/useBladeWidgets/index.docs.md +74 -78
  29. package/runtime/knowledge/docs/core/composables/useBreadcrumbs/useBreadcrumbs.docs.md +11 -11
  30. package/runtime/knowledge/docs/core/composables/useConnectionStatus/useConnectionStatus.docs.md +27 -15
  31. package/runtime/knowledge/docs/core/composables/useDashboard/useDashboard.docs.md +30 -30
  32. package/runtime/knowledge/docs/core/composables/useDynamicProperties/useDynamicProperties.docs.md +34 -36
  33. package/runtime/knowledge/docs/core/composables/useErrorHandler/useErrorHandler.docs.md +44 -23
  34. package/runtime/knowledge/docs/core/composables/useFunctions/useFunctions.docs.md +14 -11
  35. package/runtime/knowledge/docs/core/composables/useKeyboardNavigation/useKeyboardNavigation.docs.md +47 -38
  36. package/runtime/knowledge/docs/core/composables/useLanguages/useLanguages.docs.md +37 -28
  37. package/runtime/knowledge/docs/core/composables/useLoading/useLoading.docs.md +23 -17
  38. package/runtime/knowledge/docs/core/composables/useMenuExpanded/index.docs.md +10 -10
  39. package/runtime/knowledge/docs/core/composables/useMenuService/useMenuService.docs.md +42 -42
  40. package/runtime/knowledge/docs/core/composables/useModificationTracker/useModificationTracker.docs.md +22 -12
  41. package/runtime/knowledge/docs/core/composables/useNotifications/useNotifications.docs.md +33 -41
  42. package/runtime/knowledge/docs/core/composables/usePermissions/usePermissions.docs.md +16 -16
  43. package/runtime/knowledge/docs/core/composables/usePopup/usePopup.docs.md +32 -24
  44. package/runtime/knowledge/docs/core/composables/useResponsive/useResponsive.docs.md +32 -11
  45. package/runtime/knowledge/docs/core/composables/useSettings/useSettings.docs.md +24 -15
  46. package/runtime/knowledge/docs/core/composables/useSettingsMenu/useSettingsMenu.docs.md +7 -7
  47. package/runtime/knowledge/docs/core/composables/useSidebarState/useSidebarState.docs.md +32 -24
  48. package/runtime/knowledge/docs/core/composables/useSlowNetworkDetection/useSlowNetworkDetection.docs.md +21 -17
  49. package/runtime/knowledge/docs/core/composables/useTheme/useTheme.docs.md +24 -24
  50. package/runtime/knowledge/docs/core/composables/useToolbar/useToolbar.docs.md +28 -31
  51. package/runtime/knowledge/docs/core/composables/useUser/useUser.docs.md +43 -24
  52. package/runtime/knowledge/docs/core/composables/useUserManagement/useUserManagement.docs.md +68 -48
  53. package/runtime/knowledge/docs/core/composables/useWebVitals/useWebVitals.docs.md +19 -19
  54. package/runtime/knowledge/docs/core/composables/useWidgets/useWidgets.docs.md +42 -47
  55. package/runtime/knowledge/docs/core/directives/autofocus/autofocus.docs.md +10 -4
  56. package/runtime/knowledge/docs/core/directives/loading/loading.docs.md +35 -20
  57. package/runtime/knowledge/docs/core/notifications/notifications.docs.md +36 -35
  58. package/runtime/knowledge/docs/core/plugins/ai-agent/ai-agent.docs.md +38 -38
  59. package/runtime/knowledge/docs/core/plugins/extension-points/extension-points.docs.md +107 -91
  60. package/runtime/knowledge/docs/core/plugins/global-error-handler/global-error-handler.docs.md +10 -10
  61. package/runtime/knowledge/docs/core/plugins/i18n/i18n.docs.md +21 -23
  62. package/runtime/knowledge/docs/core/plugins/modularity/modularity.docs.md +98 -90
  63. package/runtime/knowledge/docs/core/plugins/permissions/permissions.docs.md +10 -16
  64. package/runtime/knowledge/docs/core/plugins/signalR/signalR.docs.md +9 -9
  65. package/runtime/knowledge/docs/core/plugins/validation/validation.docs.md +65 -22
  66. package/runtime/knowledge/docs/core/services/services.docs.md +19 -22
  67. package/runtime/knowledge/docs/core/types/types.docs.md +40 -40
  68. package/runtime/knowledge/docs/core/utilities/date/date-utilities.docs.md +27 -27
  69. package/runtime/knowledge/docs/core/utilities/shared-utilities.docs.md +23 -23
  70. package/runtime/knowledge/docs/core/utilities/thumbnail/thumbnail.docs.md +22 -25
  71. package/runtime/knowledge/docs/core/utilities/utilities.docs.md +64 -64
  72. package/runtime/knowledge/docs/injection-keys.docs.md +52 -51
  73. package/runtime/knowledge/docs/modules/assets-manager/assets-manager.docs.md +9 -9
  74. package/runtime/knowledge/docs/shell/_internal/popup/common/popup-common.docs.md +23 -43
  75. package/runtime/knowledge/docs/shell/auth/ChangePasswordPage/change-password-page.docs.md +5 -5
  76. package/runtime/knowledge/docs/shell/auth/ForgotPasswordPage/forgot-password-page.docs.md +5 -5
  77. package/runtime/knowledge/docs/shell/auth/InvitePage/invite-page.docs.md +8 -7
  78. package/runtime/knowledge/docs/shell/auth/LoginPage/login-page.docs.md +7 -7
  79. package/runtime/knowledge/docs/shell/auth/ResetPasswordPage/reset-password-page.docs.md +8 -7
  80. package/runtime/knowledge/docs/shell/auth/sign-in/sign-in.docs.md +29 -13
  81. package/runtime/knowledge/docs/shell/components/change-password/change-password.docs.md +13 -16
  82. package/runtime/knowledge/docs/shell/components/change-password-button/change-password-button.docs.md +1 -7
  83. package/runtime/knowledge/docs/shell/components/error-interceptor/error-interceptor.docs.md +5 -5
  84. package/runtime/knowledge/docs/shell/components/language-selector/language-selector.docs.md +1 -1
  85. package/runtime/knowledge/docs/shell/components/logout-button/logout-button.docs.md +1 -1
  86. package/runtime/knowledge/docs/shell/components/notification-template/notification-template.docs.md +17 -9
  87. package/runtime/knowledge/docs/shell/components/settings-menu/settings-menu.docs.md +12 -18
  88. package/runtime/knowledge/docs/shell/components/settings-menu-item/settings-menu-item.docs.md +34 -65
  89. package/runtime/knowledge/docs/shell/components/sidebar/sidebar.docs.md +16 -26
  90. package/runtime/knowledge/docs/shell/components/theme-selector/theme-selector.docs.md +2 -2
  91. package/runtime/knowledge/docs/shell/components/user-dropdown-button/user-dropdown-button.docs.md +7 -9
  92. package/runtime/knowledge/docs/shell/dashboard/dashboard-charts/dashboard-charts.docs.md +30 -40
  93. package/runtime/knowledge/docs/shell/dashboard/dashboard-widget-card/dashboard-widget-card.docs.md +26 -19
  94. package/runtime/knowledge/docs/shell/dashboard/draggable-dashboard/draggable-dashboard.docs.md +15 -12
  95. package/runtime/knowledge/docs/ui/components/atoms/vc-badge/vc-badge.docs.md +15 -26
  96. package/runtime/knowledge/docs/ui/components/atoms/vc-banner/vc-banner.docs.md +21 -19
  97. package/runtime/knowledge/docs/ui/components/atoms/vc-button/vc-button.docs.md +83 -67
  98. package/runtime/knowledge/docs/ui/components/atoms/vc-card/vc-card.docs.md +100 -59
  99. package/runtime/knowledge/docs/ui/components/atoms/vc-col/vc-col.docs.md +28 -11
  100. package/runtime/knowledge/docs/ui/components/atoms/vc-container/vc-container.docs.md +20 -17
  101. package/runtime/knowledge/docs/ui/components/atoms/vc-hint/vc-hint.docs.md +26 -17
  102. package/runtime/knowledge/docs/ui/components/atoms/vc-icon/vc-icon.docs.md +30 -32
  103. package/runtime/knowledge/docs/ui/components/atoms/vc-image/vc-image.docs.md +25 -48
  104. package/runtime/knowledge/docs/ui/components/atoms/vc-label/vc-label.docs.md +29 -24
  105. package/runtime/knowledge/docs/ui/components/atoms/vc-link/vc-link.docs.md +23 -15
  106. package/runtime/knowledge/docs/ui/components/atoms/vc-loading/vc-loading.docs.md +22 -13
  107. package/runtime/knowledge/docs/ui/components/atoms/vc-progress/vc-progress.docs.md +33 -18
  108. package/runtime/knowledge/docs/ui/components/atoms/vc-row/vc-row.docs.md +56 -15
  109. package/runtime/knowledge/docs/ui/components/atoms/vc-scrollable-container/vc-scrollable-container.docs.md +28 -15
  110. package/runtime/knowledge/docs/ui/components/atoms/vc-skeleton/vc-skeleton.docs.md +40 -20
  111. package/runtime/knowledge/docs/ui/components/atoms/vc-status/vc-status.docs.md +25 -14
  112. package/runtime/knowledge/docs/ui/components/atoms/vc-status-icon/vc-status-icon.docs.md +40 -14
  113. package/runtime/knowledge/docs/ui/components/atoms/vc-tooltip/vc-tooltip.docs.md +54 -42
  114. package/runtime/knowledge/docs/ui/components/atoms/vc-video/vc-video.docs.md +17 -17
  115. package/runtime/knowledge/docs/ui/components/atoms/vc-widget/vc-widget.docs.md +21 -21
  116. package/runtime/knowledge/docs/ui/components/molecules/multilanguage-selector/multilanguage-selector.docs.md +23 -10
  117. package/runtime/knowledge/docs/ui/components/molecules/vc-accordion/vc-accordion.docs.md +55 -44
  118. package/runtime/knowledge/docs/ui/components/molecules/vc-breadcrumbs/vc-breadcrumbs.docs.md +23 -20
  119. package/runtime/knowledge/docs/ui/components/molecules/vc-checkbox/vc-checkbox.docs.md +92 -65
  120. package/runtime/knowledge/docs/ui/components/molecules/vc-checkbox-group/vc-checkbox-group.docs.md +22 -36
  121. package/runtime/knowledge/docs/ui/components/molecules/vc-color-input/vc-color-input.docs.md +65 -23
  122. package/runtime/knowledge/docs/ui/components/molecules/vc-date-picker/vc-date-picker.docs.md +52 -73
  123. package/runtime/knowledge/docs/ui/components/molecules/vc-dropdown/vc-dropdown.docs.md +91 -85
  124. package/runtime/knowledge/docs/ui/components/molecules/vc-dropdown-panel/vc-dropdown-panel.docs.md +38 -42
  125. package/runtime/knowledge/docs/ui/components/molecules/vc-editor/vc-editor.docs.md +56 -73
  126. package/runtime/knowledge/docs/ui/components/molecules/vc-field/vc-field.docs.md +61 -27
  127. package/runtime/knowledge/docs/ui/components/molecules/vc-file-upload/vc-file-upload.docs.md +42 -50
  128. package/runtime/knowledge/docs/ui/components/molecules/vc-form/vc-form.docs.md +35 -64
  129. package/runtime/knowledge/docs/ui/components/molecules/vc-image-tile/vc-image-tile.docs.md +38 -41
  130. package/runtime/knowledge/docs/ui/components/molecules/vc-input/vc-input.docs.md +109 -131
  131. package/runtime/knowledge/docs/ui/components/molecules/vc-input-currency/vc-input-currency.docs.md +47 -88
  132. package/runtime/knowledge/docs/ui/components/molecules/vc-input-dropdown/vc-input-dropdown.docs.md +50 -64
  133. package/runtime/knowledge/docs/ui/components/molecules/vc-input-group/vc-input-group.docs.md +29 -24
  134. package/runtime/knowledge/docs/ui/components/molecules/vc-menu/vc-menu.docs.md +32 -28
  135. package/runtime/knowledge/docs/ui/components/molecules/vc-multivalue/vc-multivalue.docs.md +57 -65
  136. package/runtime/knowledge/docs/ui/components/molecules/vc-pagination/vc-pagination.docs.md +28 -26
  137. package/runtime/knowledge/docs/ui/components/molecules/vc-radio-button/vc-radio-button.docs.md +55 -20
  138. package/runtime/knowledge/docs/ui/components/molecules/vc-radio-group/vc-radio-group.docs.md +21 -35
  139. package/runtime/knowledge/docs/ui/components/molecules/vc-rating/vc-rating.docs.md +38 -33
  140. package/runtime/knowledge/docs/ui/components/molecules/vc-select/vc-select.docs.md +72 -83
  141. package/runtime/knowledge/docs/ui/components/molecules/vc-slider/vc-slider.docs.md +21 -16
  142. package/runtime/knowledge/docs/ui/components/molecules/vc-switch/vc-switch.docs.md +55 -64
  143. package/runtime/knowledge/docs/ui/components/molecules/vc-textarea/vc-textarea.docs.md +51 -70
  144. package/runtime/knowledge/docs/ui/components/molecules/vc-toast/vc-toast.docs.md +58 -57
  145. package/runtime/knowledge/docs/ui/components/organisms/vc-app/vc-app.docs.md +49 -26
  146. package/runtime/knowledge/docs/ui/components/organisms/vc-auth-layout/vc-auth-layout.docs.md +82 -28
  147. package/runtime/knowledge/docs/ui/components/organisms/vc-blade/vc-blade.docs.md +90 -75
  148. package/runtime/knowledge/docs/ui/components/organisms/vc-data-table/composables/table-composables.docs.md +30 -44
  149. package/runtime/knowledge/docs/ui/components/organisms/vc-data-table/vc-data-table.docs.md +512 -369
  150. package/runtime/knowledge/docs/ui/components/organisms/vc-dynamic-property/vc-dynamic-property.docs.md +35 -52
  151. package/runtime/knowledge/docs/ui/components/organisms/vc-gallery/vc-gallery.docs.md +33 -62
  152. package/runtime/knowledge/docs/ui/components/organisms/vc-image-upload/vc-image-upload.docs.md +17 -23
  153. package/runtime/knowledge/docs/ui/components/organisms/vc-popup/vc-popup.docs.md +109 -68
  154. package/runtime/knowledge/docs/ui/components/organisms/vc-sidebar/vc-sidebar.docs.md +82 -44
  155. package/runtime/knowledge/docs/ui/composables/ui-composables.docs.md +8 -8
  156. package/runtime/knowledge/docs/ui/composables/useDataTablePagination.docs.md +164 -0
  157. package/runtime/knowledge/docs/ui/composables/useDataTableSort.docs.md +34 -26
  158. package/runtime/knowledge/docs/ui/composables/useTableSelection.docs.md +48 -40
  159. package/runtime/knowledge/docs/ui/composables/useTableSort.docs.md +30 -17
  160. package/runtime/knowledge/docs/ui/types/ui-types.docs.md +40 -29
  161. package/runtime/knowledge/examples/offers-module.md +15 -13
  162. package/runtime/knowledge/examples/team-module.md +82 -119
  163. package/runtime/knowledge/examples/videos-module.md +44 -17
  164. package/runtime/knowledge/index.md +22 -0
  165. package/runtime/knowledge/migration-prompts/blade-form-migration.md +17 -8
  166. package/runtime/knowledge/migration-prompts/blade-props-migration.md +1 -2
  167. package/runtime/knowledge/migration-prompts/datatable-migration.md +801 -0
  168. package/runtime/knowledge/migration-prompts/icon-migration.md +97 -0
  169. package/runtime/knowledge/migration-prompts/manual-migration-audit.md +117 -0
  170. package/runtime/knowledge/migration-prompts/notifications-migration.md +8 -3
  171. package/runtime/knowledge/migration-prompts/nswag-migration.md +25 -29
  172. package/runtime/knowledge/migration-prompts/use-assets-migration.md +164 -0
  173. package/runtime/knowledge/migration-prompts/use-data-table-pagination-migration.md +176 -0
  174. package/runtime/knowledge/migration-prompts/widgets-migration.md +48 -27
  175. package/runtime/knowledge/patterns/assets-management.md +20 -20
  176. package/runtime/knowledge/patterns/blade-navigation.md +7 -14
  177. package/runtime/knowledge/patterns/blade-widget.md +19 -17
  178. package/runtime/knowledge/patterns/child-blade-flow.md +19 -7
  179. package/runtime/knowledge/patterns/composable-details.md +20 -50
  180. package/runtime/knowledge/patterns/composable-list.md +43 -31
  181. package/runtime/knowledge/patterns/dashboard-widget.md +14 -16
  182. package/runtime/knowledge/patterns/datatable-pattern.md +521 -0
  183. package/runtime/knowledge/patterns/details-blade-pattern.md +78 -116
  184. package/runtime/knowledge/patterns/extension-points-usage.md +53 -44
  185. package/runtime/knowledge/patterns/form-validation.md +28 -64
  186. package/runtime/knowledge/patterns/list-blade-pattern.md +33 -21
  187. package/runtime/knowledge/patterns/module-structure.md +7 -1
  188. package/runtime/knowledge/patterns/multilanguage-fields.md +8 -14
  189. package/runtime/knowledge/patterns/notification-template.md +21 -14
  190. package/runtime/knowledge/patterns/signalr-notifications.md +30 -32
  191. package/runtime/knowledge/patterns/toolbar-pattern.md +18 -20
  192. package/runtime/vc-app.md +241 -62
@@ -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
 
@@ -23,11 +23,11 @@ import { VcStatus } from "@vc-shell/framework";
23
23
 
24
24
  ## Key Props
25
25
 
26
- | Prop | Type | Default | Description |
27
- |------|------|---------|-------------|
28
- | `variant` | `"info" \| "warning" \| "danger" \| "success" \| "light-danger" \| "info-dark" \| "primary"` | `"info"` | Semantic color theme |
29
- | `extend` | `boolean` | -- | Extended layout with larger padding, rounded corners, and colored background |
30
- | `dot` | `boolean` | `false` | Renders as a small colored circle without text |
26
+ | Prop | Type | Default | Description |
27
+ | --------- | -------------------------------------------------------------------------------------------- | -------- | ---------------------------------------------------------------------------- |
28
+ | `variant` | `"info" \| "warning" \| "danger" \| "success" \| "light-danger" \| "info-dark" \| "primary"` | `"info"` | Semantic color theme |
29
+ | `extend` | `boolean` | -- | Extended layout with larger padding, rounded corners, and colored background |
30
+ | `dot` | `boolean` | `false` | Renders as a small colored circle without text |
31
31
 
32
32
  ## Common Patterns
33
33
 
@@ -60,7 +60,10 @@ Use the `dot` prop for compact status representation alongside text labels.
60
60
  ```vue
61
61
  <template>
62
62
  <div class="tw-flex tw-items-center tw-gap-2">
63
- <VcStatus variant="success" dot />
63
+ <VcStatus
64
+ variant="success"
65
+ dot
66
+ />
64
67
  <span>Online</span>
65
68
  </div>
66
69
  </template>
@@ -72,9 +75,17 @@ The `extend` prop creates a banner-like status with a colored background, suitab
72
75
 
73
76
  ```vue
74
77
  <template>
75
- <VcStatus variant="danger" extend>
78
+ <VcStatus
79
+ variant="danger"
80
+ extend
81
+ >
76
82
  <div class="tw-flex tw-items-center">
77
- <VcIcon icon="lucide-triangle-alert" size="xl" variant="danger" class="tw-mr-3" />
83
+ <VcIcon
84
+ icon="lucide-triangle-alert"
85
+ size="xl"
86
+ variant="danger"
87
+ class="tw-mr-3"
88
+ />
78
89
  <div>
79
90
  <h3 class="tw-font-bold">Payment Failed</h3>
80
91
  <p>The last transaction was declined. Please update your payment method.</p>
@@ -88,12 +99,12 @@ The `extend` prop creates a banner-like status with a colored background, suitab
88
99
 
89
100
  Each variant has its own set of CSS variables following the pattern `--status-{variant}-color`, `--status-{variant}-main-color`, `--status-{variant}-bg-color`. Key shared variables:
90
101
 
91
- | Variable | Default | Description |
92
- |---|---|---|
93
- | `--status-border-radius` | `9999px` | Pill shape for standard mode |
94
- | `--status-border-radius-extended` | `6px` | Rounded corners for extended mode |
95
- | `--status-dot-size` | `10px` | Diameter of the dot indicator |
96
- | `--status-text-color` | `var(--neutrals-700)` | Default label text color |
102
+ | Variable | Default | Description |
103
+ | --------------------------------- | --------------------- | --------------------------------- |
104
+ | `--status-border-radius` | `9999px` | Pill shape for standard mode |
105
+ | `--status-border-radius-extended` | `6px` | Rounded corners for extended mode |
106
+ | `--status-dot-size` | `10px` | Diameter of the dot indicator |
107
+ | `--status-text-color` | `var(--neutrals-700)` | Default label text color |
97
108
 
98
109
  ## Accessibility
99
110
 
@@ -23,8 +23,8 @@ import { VcStatusIcon } from "@vc-shell/framework";
23
23
 
24
24
  ## Key Props
25
25
 
26
- | Prop | Type | Default | Description |
27
- |------|------|---------|-------------|
26
+ | Prop | Type | Default | Description |
27
+ | -------- | --------- | ----------- | --------------------------------------------------------------------- |
28
28
  | `status` | `boolean` | `undefined` | `true` shows a green check circle; `false` shows a muted cross circle |
29
29
 
30
30
  ## Common Patterns
@@ -33,7 +33,11 @@ import { VcStatusIcon } from "@vc-shell/framework";
33
33
 
34
34
  ```vue
35
35
  <template>
36
- <VcColumn id="isActive" header="Active" :width="80">
36
+ <VcColumn
37
+ id="isActive"
38
+ header="Active"
39
+ :width="80"
40
+ >
37
41
  <template #default="{ row }">
38
42
  <VcStatusIcon :status="row.isActive" />
39
43
  </template>
@@ -45,18 +49,33 @@ import { VcStatusIcon } from "@vc-shell/framework";
45
49
 
46
50
  ```vue
47
51
  <template>
48
- <VcDataTable :columns="columns" :items="users">
49
- <VcColumn id="emailVerified" header="Email" :width="70">
52
+ <VcDataTable
53
+ :columns="columns"
54
+ :items="users"
55
+ >
56
+ <VcColumn
57
+ id="emailVerified"
58
+ header="Email"
59
+ :width="70"
60
+ >
50
61
  <template #default="{ row }">
51
62
  <VcStatusIcon :status="row.emailVerified" />
52
63
  </template>
53
64
  </VcColumn>
54
- <VcColumn id="isActive" header="Active" :width="70">
65
+ <VcColumn
66
+ id="isActive"
67
+ header="Active"
68
+ :width="70"
69
+ >
55
70
  <template #default="{ row }">
56
71
  <VcStatusIcon :status="row.isActive" />
57
72
  </template>
58
73
  </VcColumn>
59
- <VcColumn id="hasAvatar" header="Avatar" :width="70">
74
+ <VcColumn
75
+ id="hasAvatar"
76
+ header="Avatar"
77
+ :width="70"
78
+ >
60
79
  <template #default="{ row }">
61
80
  <VcStatusIcon :status="!!row.avatarUrl" />
62
81
  </template>
@@ -70,10 +89,14 @@ import { VcStatusIcon } from "@vc-shell/framework";
70
89
  ```vue
71
90
  <template>
72
91
  <div class="tw-space-y-2">
73
- <div v-for="service in services" :key="service.name" class="tw-flex tw-justify-between tw-items-center tw-py-2 tw-border-b">
92
+ <div
93
+ v-for="service in services"
94
+ :key="service.name"
95
+ class="tw-flex tw-justify-between tw-items-center tw-py-2 tw-border-b"
96
+ >
74
97
  <span>{{ service.name }}</span>
75
98
  <div class="tw-flex tw-items-center tw-gap-2">
76
- <span class="tw-text-sm">{{ service.status ? 'Online' : 'Offline' }}</span>
99
+ <span class="tw-text-sm">{{ service.status ? "Online" : "Offline" }}</span>
77
100
  <VcStatusIcon :status="service.status" />
78
101
  </div>
79
102
  </div>
@@ -89,8 +112,11 @@ VcStatusIcon is intentionally minimal. If you need a text label next to the icon
89
112
  <template>
90
113
  <div class="tw-flex tw-items-center tw-gap-2">
91
114
  <VcStatusIcon :status="order.isPaid" />
92
- <span class="tw-text-sm" :class="order.isPaid ? 'tw-text-green-600' : 'tw-text-gray-400'">
93
- {{ order.isPaid ? 'Paid' : 'Unpaid' }}
115
+ <span
116
+ class="tw-text-sm"
117
+ :class="order.isPaid ? 'tw-text-green-600' : 'tw-text-gray-400'"
118
+ >
119
+ {{ order.isPaid ? "Paid" : "Unpaid" }}
94
120
  </span>
95
121
  </div>
96
122
  </template>
@@ -98,9 +124,9 @@ VcStatusIcon is intentionally minimal. If you need a text label next to the icon
98
124
 
99
125
  ## CSS Custom Properties
100
126
 
101
- | Variable | Default | Description |
102
- |---|---|---|
103
- | `--status-icon-success-color` | `var(--success-500)` | Color of the check icon |
127
+ | Variable | Default | Description |
128
+ | ------------------------------ | --------------------- | ----------------------- |
129
+ | `--status-icon-success-color` | `var(--success-500)` | Color of the check icon |
104
130
  | `--status-icon-inactive-color` | `var(--neutrals-300)` | Color of the cross icon |
105
131
 
106
132
  ## Tips