@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.
- package/CHANGELOG.md +78 -54
- package/README.md +42 -12
- package/package.json +4 -4
- package/runtime/VERSION +1 -1
- package/runtime/agents/api-analyzer.md +31 -16
- package/runtime/agents/blade-enhancer.md +15 -9
- package/runtime/agents/details-blade-generator.md +47 -31
- package/runtime/agents/list-blade-generator.md +21 -37
- package/runtime/agents/locales-generator.md +3 -0
- package/runtime/agents/migration-agent.md +18 -7
- package/runtime/agents/module-analyzer.md +2 -0
- package/runtime/agents/module-assembler.md +15 -0
- package/runtime/agents/promote-agent.md +15 -4
- package/runtime/agents/type-checker.md +11 -0
- package/runtime/knowledge/docs/_BUILD_HASH.md +1 -1
- package/runtime/knowledge/docs/core/api/platform.docs.md +30 -30
- package/runtime/knowledge/docs/core/blade-navigation/blade-nav-composables.docs.md +41 -41
- package/runtime/knowledge/docs/core/composables/bladeContext/index.docs.md +12 -10
- package/runtime/knowledge/docs/core/composables/useApiClient/useApiClient.docs.md +11 -14
- package/runtime/knowledge/docs/core/composables/useAppBarMobileButtons/useAppBarMobileButtons.docs.md +35 -35
- package/runtime/knowledge/docs/core/composables/useAppBarWidget/useAppBarWidget.docs.md +35 -35
- package/runtime/knowledge/docs/core/composables/useAppInsights/useAppInsights.docs.md +15 -15
- package/runtime/knowledge/docs/core/composables/useAssets/useAssets.docs.md +21 -18
- package/runtime/knowledge/docs/core/composables/useAssetsManager/useAssetsManager.docs.md +28 -24
- package/runtime/knowledge/docs/core/composables/useAsync/useAsync.docs.md +90 -61
- package/runtime/knowledge/docs/core/composables/useBeforeUnload/useBeforeUnload.docs.md +19 -18
- package/runtime/knowledge/docs/core/composables/useBlade/useBlade.docs.md +89 -68
- package/runtime/knowledge/docs/core/composables/useBladeForm/useBladeForm.docs.md +27 -25
- package/runtime/knowledge/docs/core/composables/useBladeRegistry/useBladeRegistry.docs.md +15 -15
- package/runtime/knowledge/docs/core/composables/useBladeWidgets/index.docs.md +43 -47
- package/runtime/knowledge/docs/core/composables/useBreadcrumbs/useBreadcrumbs.docs.md +11 -11
- package/runtime/knowledge/docs/core/composables/useConnectionStatus/useConnectionStatus.docs.md +27 -15
- package/runtime/knowledge/docs/core/composables/useDashboard/useDashboard.docs.md +30 -30
- package/runtime/knowledge/docs/core/composables/useDynamicProperties/useDynamicProperties.docs.md +34 -36
- package/runtime/knowledge/docs/core/composables/useErrorHandler/useErrorHandler.docs.md +44 -23
- package/runtime/knowledge/docs/core/composables/useFunctions/useFunctions.docs.md +14 -11
- package/runtime/knowledge/docs/core/composables/useKeyboardNavigation/useKeyboardNavigation.docs.md +47 -38
- package/runtime/knowledge/docs/core/composables/useLanguages/useLanguages.docs.md +37 -28
- package/runtime/knowledge/docs/core/composables/useLoading/useLoading.docs.md +23 -17
- package/runtime/knowledge/docs/core/composables/useMenuExpanded/index.docs.md +9 -9
- package/runtime/knowledge/docs/core/composables/useMenuService/useMenuService.docs.md +42 -42
- package/runtime/knowledge/docs/core/composables/useModificationTracker/useModificationTracker.docs.md +22 -12
- package/runtime/knowledge/docs/core/composables/useNotifications/useNotifications.docs.md +33 -41
- package/runtime/knowledge/docs/core/composables/usePermissions/usePermissions.docs.md +16 -16
- package/runtime/knowledge/docs/core/composables/usePlatformLocaleSync/usePlatformLocaleSync.docs.md +28 -0
- package/runtime/knowledge/docs/core/composables/usePopup/usePopup.docs.md +32 -24
- package/runtime/knowledge/docs/core/composables/useResponsive/useResponsive.docs.md +32 -11
- package/runtime/knowledge/docs/core/composables/useSettings/useSettings.docs.md +22 -13
- package/runtime/knowledge/docs/core/composables/useSettingsMenu/useSettingsMenu.docs.md +7 -7
- package/runtime/knowledge/docs/core/composables/useSidebarState/useSidebarState.docs.md +32 -24
- package/runtime/knowledge/docs/core/composables/useSlowNetworkDetection/useSlowNetworkDetection.docs.md +21 -17
- package/runtime/knowledge/docs/core/composables/useTheme/useTheme.docs.md +24 -24
- package/runtime/knowledge/docs/core/composables/useToolbar/useToolbar.docs.md +28 -31
- package/runtime/knowledge/docs/core/composables/useUser/useUser.docs.md +43 -24
- package/runtime/knowledge/docs/core/composables/useUserManagement/useUserManagement.docs.md +68 -48
- package/runtime/knowledge/docs/core/composables/useWebVitals/useWebVitals.docs.md +19 -19
- package/runtime/knowledge/docs/core/composables/useWidgets/useWidgets.docs.md +42 -47
- package/runtime/knowledge/docs/core/directives/autofocus/autofocus.docs.md +10 -4
- package/runtime/knowledge/docs/core/directives/loading/loading.docs.md +35 -20
- package/runtime/knowledge/docs/core/notifications/notifications.docs.md +36 -35
- package/runtime/knowledge/docs/core/plugins/ai-agent/ai-agent.docs.md +38 -38
- package/runtime/knowledge/docs/core/plugins/extension-points/extension-points.docs.md +79 -62
- package/runtime/knowledge/docs/core/plugins/global-error-handler/global-error-handler.docs.md +10 -10
- package/runtime/knowledge/docs/core/plugins/i18n/i18n.docs.md +21 -23
- package/runtime/knowledge/docs/core/plugins/modularity/modularity.docs.md +91 -83
- package/runtime/knowledge/docs/core/plugins/permissions/permissions.docs.md +10 -16
- package/runtime/knowledge/docs/core/plugins/signalR/signalR.docs.md +9 -9
- package/runtime/knowledge/docs/core/plugins/validation/validation.docs.md +65 -22
- package/runtime/knowledge/docs/core/services/services.docs.md +19 -22
- package/runtime/knowledge/docs/core/types/types.docs.md +40 -40
- package/runtime/knowledge/docs/core/utilities/date/date-utilities.docs.md +27 -27
- package/runtime/knowledge/docs/core/utilities/shared-utilities.docs.md +23 -23
- package/runtime/knowledge/docs/core/utilities/thumbnail/thumbnail.docs.md +22 -25
- package/runtime/knowledge/docs/core/utilities/utilities.docs.md +64 -64
- package/runtime/knowledge/docs/injection-keys.docs.md +52 -51
- package/runtime/knowledge/docs/modules/assets-manager/assets-manager.docs.md +9 -9
- package/runtime/knowledge/docs/shell/_internal/popup/common/popup-common.docs.md +23 -43
- package/runtime/knowledge/docs/shell/auth/ChangePasswordPage/change-password-page.docs.md +5 -5
- package/runtime/knowledge/docs/shell/auth/ForgotPasswordPage/forgot-password-page.docs.md +5 -5
- package/runtime/knowledge/docs/shell/auth/InvitePage/invite-page.docs.md +8 -7
- package/runtime/knowledge/docs/shell/auth/LoginPage/login-page.docs.md +7 -7
- package/runtime/knowledge/docs/shell/auth/ResetPasswordPage/reset-password-page.docs.md +8 -7
- package/runtime/knowledge/docs/shell/auth/sign-in/sign-in.docs.md +29 -13
- package/runtime/knowledge/docs/shell/components/change-password/change-password.docs.md +13 -16
- package/runtime/knowledge/docs/shell/components/change-password-button/change-password-button.docs.md +1 -7
- package/runtime/knowledge/docs/shell/components/error-interceptor/error-interceptor.docs.md +5 -5
- package/runtime/knowledge/docs/shell/components/language-selector/language-selector.docs.md +1 -1
- package/runtime/knowledge/docs/shell/components/logout-button/logout-button.docs.md +1 -1
- package/runtime/knowledge/docs/shell/components/notification-template/notification-template.docs.md +17 -9
- package/runtime/knowledge/docs/shell/components/settings-menu/settings-menu.docs.md +11 -17
- package/runtime/knowledge/docs/shell/components/settings-menu-item/settings-menu-item.docs.md +34 -65
- package/runtime/knowledge/docs/shell/components/sidebar/sidebar.docs.md +16 -26
- package/runtime/knowledge/docs/shell/components/theme-selector/theme-selector.docs.md +2 -2
- package/runtime/knowledge/docs/shell/components/user-dropdown-button/user-dropdown-button.docs.md +7 -9
- package/runtime/knowledge/docs/shell/dashboard/dashboard-charts/dashboard-charts.docs.md +30 -40
- package/runtime/knowledge/docs/shell/dashboard/dashboard-widget-card/dashboard-widget-card.docs.md +26 -19
- package/runtime/knowledge/docs/shell/dashboard/draggable-dashboard/draggable-dashboard.docs.md +15 -12
- package/runtime/knowledge/docs/ui/components/atoms/vc-badge/vc-badge.docs.md +15 -26
- package/runtime/knowledge/docs/ui/components/atoms/vc-banner/vc-banner.docs.md +21 -19
- package/runtime/knowledge/docs/ui/components/atoms/vc-button/vc-button.docs.md +83 -67
- package/runtime/knowledge/docs/ui/components/atoms/vc-card/vc-card.docs.md +100 -59
- package/runtime/knowledge/docs/ui/components/atoms/vc-col/vc-col.docs.md +28 -11
- package/runtime/knowledge/docs/ui/components/atoms/vc-container/vc-container.docs.md +20 -17
- package/runtime/knowledge/docs/ui/components/atoms/vc-hint/vc-hint.docs.md +26 -17
- package/runtime/knowledge/docs/ui/components/atoms/vc-icon/vc-icon.docs.md +30 -32
- package/runtime/knowledge/docs/ui/components/atoms/vc-image/vc-image.docs.md +25 -48
- package/runtime/knowledge/docs/ui/components/atoms/vc-label/vc-label.docs.md +29 -24
- package/runtime/knowledge/docs/ui/components/atoms/vc-link/vc-link.docs.md +23 -15
- package/runtime/knowledge/docs/ui/components/atoms/vc-loading/vc-loading.docs.md +22 -13
- package/runtime/knowledge/docs/ui/components/atoms/vc-progress/vc-progress.docs.md +33 -18
- package/runtime/knowledge/docs/ui/components/atoms/vc-row/vc-row.docs.md +56 -15
- package/runtime/knowledge/docs/ui/components/atoms/vc-scrollable-container/vc-scrollable-container.docs.md +28 -15
- package/runtime/knowledge/docs/ui/components/atoms/vc-skeleton/vc-skeleton.docs.md +40 -20
- package/runtime/knowledge/docs/ui/components/atoms/vc-status/vc-status.docs.md +25 -14
- package/runtime/knowledge/docs/ui/components/atoms/vc-status-icon/vc-status-icon.docs.md +40 -14
- package/runtime/knowledge/docs/ui/components/atoms/vc-tooltip/vc-tooltip.docs.md +54 -42
- package/runtime/knowledge/docs/ui/components/atoms/vc-video/vc-video.docs.md +17 -17
- package/runtime/knowledge/docs/ui/components/atoms/vc-widget/vc-widget.docs.md +21 -21
- package/runtime/knowledge/docs/ui/components/molecules/multilanguage-selector/multilanguage-selector.docs.md +23 -10
- package/runtime/knowledge/docs/ui/components/molecules/vc-accordion/vc-accordion.docs.md +55 -44
- package/runtime/knowledge/docs/ui/components/molecules/vc-breadcrumbs/vc-breadcrumbs.docs.md +23 -20
- package/runtime/knowledge/docs/ui/components/molecules/vc-checkbox/vc-checkbox.docs.md +92 -65
- package/runtime/knowledge/docs/ui/components/molecules/vc-checkbox-group/vc-checkbox-group.docs.md +22 -36
- package/runtime/knowledge/docs/ui/components/molecules/vc-color-input/vc-color-input.docs.md +65 -23
- package/runtime/knowledge/docs/ui/components/molecules/vc-date-picker/vc-date-picker.docs.md +52 -73
- package/runtime/knowledge/docs/ui/components/molecules/vc-dropdown/vc-dropdown.docs.md +91 -85
- package/runtime/knowledge/docs/ui/components/molecules/vc-dropdown-panel/vc-dropdown-panel.docs.md +38 -42
- package/runtime/knowledge/docs/ui/components/molecules/vc-editor/vc-editor.docs.md +56 -73
- package/runtime/knowledge/docs/ui/components/molecules/vc-field/vc-field.docs.md +61 -27
- package/runtime/knowledge/docs/ui/components/molecules/vc-file-upload/vc-file-upload.docs.md +42 -50
- package/runtime/knowledge/docs/ui/components/molecules/vc-form/vc-form.docs.md +35 -64
- package/runtime/knowledge/docs/ui/components/molecules/vc-image-tile/vc-image-tile.docs.md +38 -41
- package/runtime/knowledge/docs/ui/components/molecules/vc-input/vc-input.docs.md +109 -131
- package/runtime/knowledge/docs/ui/components/molecules/vc-input-currency/vc-input-currency.docs.md +47 -88
- package/runtime/knowledge/docs/ui/components/molecules/vc-input-dropdown/vc-input-dropdown.docs.md +50 -64
- package/runtime/knowledge/docs/ui/components/molecules/vc-input-group/vc-input-group.docs.md +29 -24
- package/runtime/knowledge/docs/ui/components/molecules/vc-menu/vc-menu.docs.md +32 -28
- package/runtime/knowledge/docs/ui/components/molecules/vc-multivalue/vc-multivalue.docs.md +57 -65
- package/runtime/knowledge/docs/ui/components/molecules/vc-pagination/vc-pagination.docs.md +28 -26
- package/runtime/knowledge/docs/ui/components/molecules/vc-radio-button/vc-radio-button.docs.md +55 -20
- package/runtime/knowledge/docs/ui/components/molecules/vc-radio-group/vc-radio-group.docs.md +21 -35
- package/runtime/knowledge/docs/ui/components/molecules/vc-rating/vc-rating.docs.md +38 -33
- package/runtime/knowledge/docs/ui/components/molecules/vc-select/vc-select.docs.md +72 -83
- package/runtime/knowledge/docs/ui/components/molecules/vc-slider/vc-slider.docs.md +21 -16
- package/runtime/knowledge/docs/ui/components/molecules/vc-switch/vc-switch.docs.md +55 -64
- package/runtime/knowledge/docs/ui/components/molecules/vc-textarea/vc-textarea.docs.md +51 -70
- package/runtime/knowledge/docs/ui/components/molecules/vc-toast/vc-toast.docs.md +58 -57
- package/runtime/knowledge/docs/ui/components/organisms/vc-app/vc-app.docs.md +49 -26
- package/runtime/knowledge/docs/ui/components/organisms/vc-auth-layout/vc-auth-layout.docs.md +82 -28
- package/runtime/knowledge/docs/ui/components/organisms/vc-blade/vc-blade.docs.md +90 -75
- package/runtime/knowledge/docs/ui/components/organisms/vc-data-table/composables/table-composables.docs.md +99 -48
- package/runtime/knowledge/docs/ui/components/organisms/vc-data-table/vc-data-table.docs.md +548 -367
- package/runtime/knowledge/docs/ui/components/organisms/vc-dynamic-property/vc-dynamic-property.docs.md +35 -52
- package/runtime/knowledge/docs/ui/components/organisms/vc-gallery/vc-gallery.docs.md +33 -62
- package/runtime/knowledge/docs/ui/components/organisms/vc-image-upload/vc-image-upload.docs.md +17 -23
- package/runtime/knowledge/docs/ui/components/organisms/vc-popup/vc-popup.docs.md +109 -68
- package/runtime/knowledge/docs/ui/components/organisms/vc-sidebar/vc-sidebar.docs.md +82 -44
- package/runtime/knowledge/docs/ui/composables/ui-composables.docs.md +8 -8
- package/runtime/knowledge/docs/ui/composables/useDataTablePagination.docs.md +164 -0
- package/runtime/knowledge/docs/ui/composables/useDataTableSort.docs.md +34 -26
- package/runtime/knowledge/docs/ui/composables/useTableSelection.docs.md +48 -40
- package/runtime/knowledge/docs/ui/composables/useTableSort.docs.md +30 -17
- package/runtime/knowledge/docs/ui/types/ui-types.docs.md +40 -29
- package/runtime/knowledge/examples/offers-module.md +15 -13
- package/runtime/knowledge/examples/team-module.md +82 -119
- package/runtime/knowledge/examples/videos-module.md +44 -17
- package/runtime/knowledge/index.md +22 -0
- package/runtime/knowledge/migration-prompts/blade-form-migration.md +17 -8
- package/runtime/knowledge/migration-prompts/blade-props-migration.md +1 -2
- package/runtime/knowledge/migration-prompts/datatable-migration.md +801 -0
- package/runtime/knowledge/migration-prompts/icon-migration.md +97 -0
- package/runtime/knowledge/migration-prompts/manual-migration-audit.md +117 -0
- package/runtime/knowledge/migration-prompts/notifications-migration.md +8 -3
- package/runtime/knowledge/migration-prompts/nswag-migration.md +25 -29
- package/runtime/knowledge/migration-prompts/use-assets-migration.md +164 -0
- package/runtime/knowledge/migration-prompts/use-data-table-pagination-migration.md +176 -0
- package/runtime/knowledge/migration-prompts/widgets-migration.md +48 -27
- package/runtime/knowledge/patterns/assets-management.md +20 -20
- package/runtime/knowledge/patterns/blade-navigation.md +7 -14
- package/runtime/knowledge/patterns/blade-widget.md +19 -17
- package/runtime/knowledge/patterns/child-blade-flow.md +19 -7
- package/runtime/knowledge/patterns/composable-details.md +20 -50
- package/runtime/knowledge/patterns/composable-list.md +43 -31
- package/runtime/knowledge/patterns/dashboard-widget.md +14 -16
- package/runtime/knowledge/patterns/datatable-pattern.md +521 -0
- package/runtime/knowledge/patterns/details-blade-pattern.md +78 -116
- package/runtime/knowledge/patterns/extension-points-usage.md +53 -44
- package/runtime/knowledge/patterns/form-validation.md +28 -64
- package/runtime/knowledge/patterns/list-blade-pattern.md +33 -21
- package/runtime/knowledge/patterns/module-structure.md +7 -1
- package/runtime/knowledge/patterns/multilanguage-fields.md +8 -14
- package/runtime/knowledge/patterns/notification-template.md +21 -14
- package/runtime/knowledge/patterns/signalr-notifications.md +30 -32
- package/runtime/knowledge/patterns/toolbar-pattern.md +18 -20
- 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
|
|
26
|
-
|
|
27
|
-
| `required`
|
|
28
|
-
| `error`
|
|
29
|
-
| `htmlFor`
|
|
30
|
-
| `tooltipIcon`
|
|
31
|
-
| `multilanguage`
|
|
32
|
-
| `currentLanguage` | `string`
|
|
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
|
|
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
|
|
44
|
-
|
|
45
|
-
| `--label-text-color`
|
|
46
|
-
| `--label-required-color` | `var(--danger-500)`
|
|
47
|
-
| `--label-tooltip-color`
|
|
48
|
-
| `--label-lang-color`
|
|
49
|
-
| `--label-error-color`
|
|
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
|
|
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
|
|
109
|
-
|
|
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
|
|
31
|
-
|
|
32
|
-
| `active`
|
|
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
|
|
38
|
-
|
|
39
|
-
| `click` | none
|
|
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
|
|
49
|
-
|
|
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
|
|
109
|
-
|
|
110
|
-
| `--link-text-color`
|
|
111
|
-
| `--link-text-color-hover`
|
|
112
|
-
| `--link-text-color-active`
|
|
113
|
-
| `--link-text-color-disabled` | `var(--neutrals-300)` | Text color when disabled
|
|
114
|
-
| `--link-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
|
|
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
|
|
41
|
-
|
|
42
|
-
| `--loading-bar-color`
|
|
43
|
-
| `--loading-bar-track`
|
|
44
|
-
| `--loading-overlay-bg` | `rgba(255,255,255,0.6)` | Overlay background color
|
|
45
|
-
| `--loading-bar-width`
|
|
46
|
-
| `--loading-bar-height` | `4px`
|
|
47
|
-
| `--loading-z-index`
|
|
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
|
|
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
|
|
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
|
|
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
|
|
30
|
-
|
|
31
|
-
| `value`
|
|
32
|
-
| `variant`
|
|
33
|
-
| `ariaLabel` | `string`
|
|
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
|
|
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
|
|
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
|
|
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
|
|
109
|
-
|
|
117
|
+
<VcButton
|
|
118
|
+
:disabled="isUploading"
|
|
119
|
+
@click="triggerUpload"
|
|
120
|
+
>
|
|
121
|
+
{{ isUploading ? "Uploading..." : "Select File" }}
|
|
110
122
|
</VcButton>
|
|
111
123
|
|
|
112
|
-
<div
|
|
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
|
|
127
|
-
|
|
128
|
-
| `--progressbar-height`
|
|
129
|
-
| `--progressbar-border-radius`
|
|
130
|
-
| `--progressbar-background-color` | `var(--neutrals-200)` | Track background
|
|
131
|
-
| `--progressbar-foreground-color` | `var(--primary-500)`
|
|
132
|
-
| `--progressbar-striped-bg`
|
|
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
|
|
18
|
-
|
|
19
|
-
|
|
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
|
|
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
|
|
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
|
|
84
|
+
<VcImage
|
|
85
|
+
:src="product.imageUrl"
|
|
86
|
+
size="xl"
|
|
87
|
+
/>
|
|
68
88
|
</VcCol>
|
|
69
89
|
<VcCol :size="2">
|
|
70
|
-
<VcInput
|
|
71
|
-
|
|
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
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
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
|
|
99
|
-
|
|
100
|
-
| `--row-gap` | `0`
|
|
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
|
|
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
|
|
31
|
-
|
|
32
|
-
| `speed` | `number` | `2`
|
|
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
|
|
37
|
-
|
|
38
|
-
| `default`
|
|
39
|
-
| `arrow-up`
|
|
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
|
|
45
|
-
|
|
46
|
-
| `viewportRef`
|
|
47
|
-
| `updateScrollState` | `() => void`
|
|
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
|
|
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
|
|
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
|
|
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
|
|
26
|
-
|
|
27
|
-
| `variant`
|
|
28
|
-
| `rows`
|
|
29
|
-
| `width`
|
|
30
|
-
| `height`
|
|
31
|
-
| `animated`
|
|
32
|
-
| `ariaLabel` | `string`
|
|
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
|
|
55
|
+
<VcSkeleton
|
|
56
|
+
variant="block"
|
|
57
|
+
width="100%"
|
|
58
|
+
height="200px"
|
|
59
|
+
/>
|
|
56
60
|
<div class="tw-p-4">
|
|
57
|
-
<VcSkeleton
|
|
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
|
|
72
|
-
|
|
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
|
|
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
|
|
87
|
-
|
|
88
|
-
| `--vc-skeleton-bg`
|
|
89
|
-
| `--vc-skeleton-highlight`
|
|
90
|
-
| `--vc-skeleton-border-radius` | `6px`
|
|
91
|
-
| `--vc-skeleton-row-height`
|
|
92
|
-
| `--vc-skeleton-row-gap`
|
|
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
|
|