@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.
- package/CHANGELOG.md +52 -55
- package/README.md +18 -12
- package/package.json +4 -4
- 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/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 +31 -27
- 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 +74 -78
- 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 +10 -10
- 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/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 +24 -15
- 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 +107 -91
- 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 +98 -90
- 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 +12 -18
- 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 +30 -44
- package/runtime/knowledge/docs/ui/components/organisms/vc-data-table/vc-data-table.docs.md +512 -369
- 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
|
@@ -20,15 +20,15 @@ A flexbox column layout primitive that stacks its children vertically. Designed
|
|
|
20
20
|
|
|
21
21
|
## Key Props
|
|
22
22
|
|
|
23
|
-
| Prop
|
|
24
|
-
|
|
25
|
-
| `size` | `number` | `1`
|
|
23
|
+
| Prop | Type | Default | Description |
|
|
24
|
+
| ------ | -------- | ------- | ----------------------------------------------------------------------------------- |
|
|
25
|
+
| `size` | `number` | `1` | Flex-grow value controlling how much space the column occupies relative to siblings |
|
|
26
26
|
|
|
27
27
|
## CSS Variables
|
|
28
28
|
|
|
29
|
-
| Variable
|
|
30
|
-
|
|
31
|
-
| `--col-gap` | `0`
|
|
29
|
+
| Variable | Default | Description |
|
|
30
|
+
| ----------- | ------- | ----------------------------------- |
|
|
31
|
+
| `--col-gap` | `0` | Vertical gap between child elements |
|
|
32
32
|
|
|
33
33
|
## Common Patterns
|
|
34
34
|
|
|
@@ -75,12 +75,29 @@ A common blade layout places metadata in a narrow sidebar column and form fields
|
|
|
75
75
|
```vue
|
|
76
76
|
<template>
|
|
77
77
|
<VcRow class="tw-gap-6">
|
|
78
|
-
<VcCol
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
78
|
+
<VcCol
|
|
79
|
+
:size="3"
|
|
80
|
+
class="tw-gap-4"
|
|
81
|
+
>
|
|
82
|
+
<VcInput
|
|
83
|
+
label="Name"
|
|
84
|
+
v-model="form.name"
|
|
85
|
+
required
|
|
86
|
+
/>
|
|
87
|
+
<VcTextarea
|
|
88
|
+
label="Description"
|
|
89
|
+
v-model="form.description"
|
|
90
|
+
/>
|
|
91
|
+
<VcSelect
|
|
92
|
+
label="Category"
|
|
93
|
+
v-model="form.category"
|
|
94
|
+
:options="categories"
|
|
95
|
+
/>
|
|
82
96
|
</VcCol>
|
|
83
|
-
<VcCol
|
|
97
|
+
<VcCol
|
|
98
|
+
:size="1"
|
|
99
|
+
class="tw-gap-4"
|
|
100
|
+
>
|
|
84
101
|
<VcStatusIcon :status="form.isPublished" />
|
|
85
102
|
<VcHint>Created: {{ form.createdDate }}</VcHint>
|
|
86
103
|
<VcHint>Modified: {{ form.modifiedDate }}</VcHint>
|
|
@@ -19,32 +19,32 @@ A scrollable content wrapper that fills its parent, provides configurable paddin
|
|
|
19
19
|
|
|
20
20
|
## Key Props
|
|
21
21
|
|
|
22
|
-
| Prop
|
|
23
|
-
|
|
24
|
-
| `shadow`
|
|
25
|
-
| `noPadding` | `boolean` | `false` | Removes the default 16px inner padding
|
|
26
|
-
| `ariaLabel` | `string`
|
|
22
|
+
| Prop | Type | Default | Description |
|
|
23
|
+
| ----------- | --------- | ------- | ------------------------------------------------------------------------ |
|
|
24
|
+
| `shadow` | `boolean` | `false` | Shows an inset shadow when content overflows |
|
|
25
|
+
| `noPadding` | `boolean` | `false` | Removes the default 16px inner padding |
|
|
26
|
+
| `ariaLabel` | `string` | — | When provided, renders as `<section>` with this label instead of `<div>` |
|
|
27
27
|
|
|
28
28
|
## CSS Variables
|
|
29
29
|
|
|
30
|
-
| Variable
|
|
31
|
-
|
|
32
|
-
| `--container-padding`
|
|
33
|
-
| `--container-bg`
|
|
34
|
-
| `--container-border-radius` | `0`
|
|
35
|
-
| `--container-gap`
|
|
30
|
+
| Variable | Default | Description |
|
|
31
|
+
| --------------------------- | ------------- | ------------------------------------ |
|
|
32
|
+
| `--container-padding` | `16px` | Inner padding of the scrollable area |
|
|
33
|
+
| `--container-bg` | `transparent` | Background color |
|
|
34
|
+
| `--container-border-radius` | `0` | Border radius |
|
|
35
|
+
| `--container-gap` | `0` | Gap between child elements |
|
|
36
36
|
|
|
37
37
|
## Exposed Methods
|
|
38
38
|
|
|
39
|
-
| Method
|
|
40
|
-
|
|
39
|
+
| Method | Description |
|
|
40
|
+
| ------------- | ------------------------------------------------ |
|
|
41
41
|
| `scrollTop()` | Programmatically scroll the container to the top |
|
|
42
|
-
| `component`
|
|
42
|
+
| `component` | Ref to the inner scrollable DOM element |
|
|
43
43
|
|
|
44
44
|
## Events
|
|
45
45
|
|
|
46
|
-
| Event
|
|
47
|
-
|
|
46
|
+
| Event | Payload | Description |
|
|
47
|
+
| -------- | ------- | ----------------------------- |
|
|
48
48
|
| `scroll` | `Event` | Emitted on every scroll event |
|
|
49
49
|
|
|
50
50
|
## Common Patterns
|
|
@@ -88,7 +88,10 @@ function scrollToTop() {
|
|
|
88
88
|
</script>
|
|
89
89
|
|
|
90
90
|
<template>
|
|
91
|
-
<VcContainer
|
|
91
|
+
<VcContainer
|
|
92
|
+
ref="containerRef"
|
|
93
|
+
shadow
|
|
94
|
+
>
|
|
92
95
|
<!-- long content -->
|
|
93
96
|
</VcContainer>
|
|
94
97
|
<VcButton @click="scrollToTop">Back to Top</VcButton>
|
|
@@ -18,19 +18,19 @@ A small text component for displaying helper text, validation messages, or suppl
|
|
|
18
18
|
|
|
19
19
|
## Key Props
|
|
20
20
|
|
|
21
|
-
| Prop
|
|
22
|
-
|
|
23
|
-
| `id`
|
|
24
|
-
| `error` | `boolean` | `false` | Shows the hint in error state (danger color)
|
|
21
|
+
| Prop | Type | Default | Description |
|
|
22
|
+
| ------- | --------- | ------- | ----------------------------------------------------------------------- |
|
|
23
|
+
| `id` | `string` | -- | Optional id for linking with `aria-describedby` on the associated input |
|
|
24
|
+
| `error` | `boolean` | `false` | Shows the hint in error state (danger color) |
|
|
25
25
|
|
|
26
26
|
## CSS Variables
|
|
27
27
|
|
|
28
|
-
| Variable
|
|
29
|
-
|
|
30
|
-
| `--hint-color`
|
|
31
|
-
| `--hint-error-color` | `var(--danger-500)`
|
|
32
|
-
| `--hint-font-size`
|
|
33
|
-
| `--hint-line-height` | `1.4`
|
|
28
|
+
| Variable | Default | Description |
|
|
29
|
+
| -------------------- | --------------------- | ------------------------- |
|
|
30
|
+
| `--hint-color` | `var(--neutrals-500)` | Default text color |
|
|
31
|
+
| `--hint-error-color` | `var(--danger-500)` | Text color in error state |
|
|
32
|
+
| `--hint-font-size` | `12px` | Font size |
|
|
33
|
+
| `--hint-line-height` | `1.4` | Line height |
|
|
34
34
|
|
|
35
35
|
## Common Patterns
|
|
36
36
|
|
|
@@ -82,10 +82,11 @@ const isOverLimit = computed(() => remaining.value < 0);
|
|
|
82
82
|
</script>
|
|
83
83
|
|
|
84
84
|
<template>
|
|
85
|
-
<VcTextarea
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
85
|
+
<VcTextarea
|
|
86
|
+
label="Description"
|
|
87
|
+
v-model="description"
|
|
88
|
+
/>
|
|
89
|
+
<VcHint :error="isOverLimit"> {{ remaining }} characters remaining </VcHint>
|
|
89
90
|
</template>
|
|
90
91
|
```
|
|
91
92
|
|
|
@@ -95,9 +96,17 @@ Show helper text by default, but swap to an error message when validation fails:
|
|
|
95
96
|
|
|
96
97
|
```vue
|
|
97
98
|
<template>
|
|
98
|
-
<VcInput
|
|
99
|
-
|
|
100
|
-
|
|
99
|
+
<VcInput
|
|
100
|
+
label="Slug"
|
|
101
|
+
v-model="slug"
|
|
102
|
+
:error="!!slugError"
|
|
103
|
+
aria-describedby="slug-hint"
|
|
104
|
+
/>
|
|
105
|
+
<VcHint
|
|
106
|
+
id="slug-hint"
|
|
107
|
+
:error="!!slugError"
|
|
108
|
+
>
|
|
109
|
+
{{ slugError || "URL-friendly identifier. Use lowercase letters and hyphens." }}
|
|
101
110
|
</VcHint>
|
|
102
111
|
</template>
|
|
103
112
|
```
|
|
@@ -17,37 +17,37 @@ A unified icon component that renders icons from multiple libraries. Lucide Icon
|
|
|
17
17
|
|
|
18
18
|
## Key Props
|
|
19
19
|
|
|
20
|
-
| Prop
|
|
21
|
-
|
|
22
|
-
| `icon`
|
|
23
|
-
| `size`
|
|
24
|
-
| `variant`
|
|
25
|
-
| `customSize` | `number`
|
|
26
|
-
| `ariaLabel`
|
|
27
|
-
| `basePath`
|
|
20
|
+
| Prop | Type | Default | Description |
|
|
21
|
+
| ------------ | ------------------------------------------------------ | ----------------- | ---------------------------------------- |
|
|
22
|
+
| `icon` | `string \| Component` | `"lucide-square"` | Icon identifier or Vue component |
|
|
23
|
+
| `size` | `"xs" \| "s" \| "m" \| "l" \| "xl" \| "xxl" \| "xxxl"` | `"m"` | Predefined size |
|
|
24
|
+
| `variant` | `"warning" \| "danger" \| "success"` | — | Semantic color variant |
|
|
25
|
+
| `customSize` | `number` | — | Custom size in pixels (overrides `size`) |
|
|
26
|
+
| `ariaLabel` | `string` | — | Accessible label for meaningful icons |
|
|
27
|
+
| `basePath` | `string` | `"/assets/icons"` | Base path for SVG sprite icons |
|
|
28
28
|
|
|
29
29
|
## Size Reference
|
|
30
30
|
|
|
31
|
-
| Size
|
|
32
|
-
|
|
33
|
-
| `xs`
|
|
34
|
-
| `s`
|
|
35
|
-
| `m`
|
|
36
|
-
| `l`
|
|
37
|
-
| `xl`
|
|
38
|
-
| `xxl`
|
|
39
|
-
| `xxxl` | 64px
|
|
31
|
+
| Size | Pixels |
|
|
32
|
+
| ------ | ------ |
|
|
33
|
+
| `xs` | 12px |
|
|
34
|
+
| `s` | 14px |
|
|
35
|
+
| `m` | 18px |
|
|
36
|
+
| `l` | 20px |
|
|
37
|
+
| `xl` | 22px |
|
|
38
|
+
| `xxl` | 30px |
|
|
39
|
+
| `xxxl` | 64px |
|
|
40
40
|
|
|
41
41
|
## Icon Prefix Guide
|
|
42
42
|
|
|
43
|
-
| Prefix
|
|
44
|
-
|
|
45
|
-
| `lucide-`
|
|
46
|
-
| `fa-` / `fas fa-` | Font Awesome
|
|
47
|
-
| `bi-`
|
|
48
|
-
| `material-`
|
|
49
|
-
| `svg:`
|
|
50
|
-
| _(Component)_
|
|
43
|
+
| Prefix | Library | Status |
|
|
44
|
+
| ----------------- | ---------------------- | ---------------------- |
|
|
45
|
+
| `lucide-` | Lucide Icons | Standard (recommended) |
|
|
46
|
+
| `fa-` / `fas fa-` | Font Awesome | Deprecated |
|
|
47
|
+
| `bi-` | Bootstrap Icons | Deprecated |
|
|
48
|
+
| `material-` | Material Symbols | Deprecated |
|
|
49
|
+
| `svg:` | SVG sprite file | Supported |
|
|
50
|
+
| _(Component)_ | Vue component instance | Supported |
|
|
51
51
|
|
|
52
52
|
## Common Patterns
|
|
53
53
|
|
|
@@ -75,12 +75,7 @@ A unified icon component that renders icons from multiple libraries. Lucide Icon
|
|
|
75
75
|
### Meaningful Icon with Accessible Label
|
|
76
76
|
|
|
77
77
|
```vue
|
|
78
|
-
<VcIcon
|
|
79
|
-
icon="lucide-triangle-alert"
|
|
80
|
-
variant="warning"
|
|
81
|
-
size="l"
|
|
82
|
-
aria-label="Warning: low stock"
|
|
83
|
-
/>
|
|
78
|
+
<VcIcon icon="lucide-triangle-alert" variant="warning" size="l" aria-label="Warning: low stock" />
|
|
84
79
|
```
|
|
85
80
|
|
|
86
81
|
### Custom Vue Component as Icon
|
|
@@ -92,7 +87,10 @@ import MyCustomIcon from "./MyCustomIcon.vue";
|
|
|
92
87
|
</script>
|
|
93
88
|
|
|
94
89
|
<template>
|
|
95
|
-
<VcIcon
|
|
90
|
+
<VcIcon
|
|
91
|
+
:icon="MyCustomIcon"
|
|
92
|
+
size="l"
|
|
93
|
+
/>
|
|
96
94
|
</template>
|
|
97
95
|
```
|
|
98
96
|
|
|
@@ -17,30 +17,30 @@ An image display component with predefined sizes, aspect ratio control, and a pl
|
|
|
17
17
|
|
|
18
18
|
## Key Props
|
|
19
19
|
|
|
20
|
-
| Prop
|
|
21
|
-
|
|
22
|
-
| `src`
|
|
23
|
-
| `size`
|
|
24
|
-
| `aspect`
|
|
25
|
-
| `background`
|
|
26
|
-
| `rounded`
|
|
27
|
-
| `bordered`
|
|
28
|
-
| `clickable`
|
|
29
|
-
| `emptyIcon`
|
|
30
|
-
| `alt`
|
|
31
|
-
| `thumbnailSize` | `ThumbnailSize`
|
|
20
|
+
| Prop | Type | Default | Description |
|
|
21
|
+
| --------------- | --------------------------------------------------------------- | ---------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
22
|
+
| `src` | `string` | — | Image URL; shows a placeholder icon when empty |
|
|
23
|
+
| `size` | `"auto" \| "xxs" \| "xs" \| "s" \| "m" \| "l" \| "xl" \| "xxl"` | `"auto"` | Predefined width |
|
|
24
|
+
| `aspect` | `"1x1" \| "16x9" \| "4x3" \| "3x2"` | `"1x1"` | Aspect ratio of the container |
|
|
25
|
+
| `background` | `"cover" \| "contain" \| "auto"` | `"cover"` | CSS background-size mode |
|
|
26
|
+
| `rounded` | `boolean` | `false` | Applies fully rounded corners (circular on 1x1) |
|
|
27
|
+
| `bordered` | `boolean` | `false` | Adds a subtle border |
|
|
28
|
+
| `clickable` | `boolean` | `false` | Makes the image interactive with cursor and click event |
|
|
29
|
+
| `emptyIcon` | `string` | `"lucide-image"` | Icon shown when `src` is empty |
|
|
30
|
+
| `alt` | `string` | — | Accessible alt text |
|
|
31
|
+
| `thumbnailSize` | `ThumbnailSize` | — | Load a thumbnail variant instead of full-size image. Values: `"sm"`, `"md"`, `"lg"`, `"64x64"`, `"128x128"`, `"168x168"`, `"216x216"`, `"348x348"` |
|
|
32
32
|
|
|
33
33
|
## Size Reference
|
|
34
34
|
|
|
35
|
-
| Size
|
|
36
|
-
|
|
37
|
-
| `xxs`
|
|
38
|
-
| `xs`
|
|
39
|
-
| `s`
|
|
40
|
-
| `m`
|
|
41
|
-
| `l`
|
|
42
|
-
| `xl`
|
|
43
|
-
| `xxl`
|
|
35
|
+
| Size | Width |
|
|
36
|
+
| ------ | -------------- |
|
|
37
|
+
| `xxs` | 24px |
|
|
38
|
+
| `xs` | 32px |
|
|
39
|
+
| `s` | 48px |
|
|
40
|
+
| `m` | 64px |
|
|
41
|
+
| `l` | 96px |
|
|
42
|
+
| `xl` | 128px |
|
|
43
|
+
| `xxl` | 145px |
|
|
44
44
|
| `auto` | 100% of parent |
|
|
45
45
|
|
|
46
46
|
## Common Patterns
|
|
@@ -48,48 +48,25 @@ An image display component with predefined sizes, aspect ratio control, and a pl
|
|
|
48
48
|
### Product Thumbnail in a List
|
|
49
49
|
|
|
50
50
|
```vue
|
|
51
|
-
<VcImage
|
|
52
|
-
:src="product.primaryImage"
|
|
53
|
-
size="s"
|
|
54
|
-
aspect="1x1"
|
|
55
|
-
bordered
|
|
56
|
-
:alt="product.name"
|
|
57
|
-
/>
|
|
51
|
+
<VcImage :src="product.primaryImage" size="s" aspect="1x1" bordered :alt="product.name" />
|
|
58
52
|
```
|
|
59
53
|
|
|
60
54
|
### Profile Avatar
|
|
61
55
|
|
|
62
56
|
```vue
|
|
63
|
-
<VcImage
|
|
64
|
-
:src="user.avatarUrl"
|
|
65
|
-
size="m"
|
|
66
|
-
rounded
|
|
67
|
-
:alt="user.displayName"
|
|
68
|
-
/>
|
|
57
|
+
<VcImage :src="user.avatarUrl" size="m" rounded :alt="user.displayName" />
|
|
69
58
|
```
|
|
70
59
|
|
|
71
60
|
### Widescreen Banner
|
|
72
61
|
|
|
73
62
|
```vue
|
|
74
|
-
<VcImage
|
|
75
|
-
:src="category.bannerUrl"
|
|
76
|
-
aspect="16x9"
|
|
77
|
-
background="cover"
|
|
78
|
-
alt="Category banner"
|
|
79
|
-
/>
|
|
63
|
+
<VcImage :src="category.bannerUrl" aspect="16x9" background="cover" alt="Category banner" />
|
|
80
64
|
```
|
|
81
65
|
|
|
82
66
|
### Clickable Gallery Image
|
|
83
67
|
|
|
84
68
|
```vue
|
|
85
|
-
<VcImage
|
|
86
|
-
:src="image.url"
|
|
87
|
-
size="l"
|
|
88
|
-
bordered
|
|
89
|
-
clickable
|
|
90
|
-
:alt="image.caption"
|
|
91
|
-
@click="openLightbox(image)"
|
|
92
|
-
/>
|
|
69
|
+
<VcImage :src="image.url" size="l" bordered clickable :alt="image.caption" @click="openLightbox(image)" />
|
|
93
70
|
```
|
|
94
71
|
|
|
95
72
|
### Empty State Placeholder
|
|
@@ -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>
|