@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,19 +20,19 @@ A small indicator component for displaying counts, status dots, or short text la
|
|
|
20
20
|
|
|
21
21
|
## Key Props
|
|
22
22
|
|
|
23
|
-
| Prop
|
|
24
|
-
|
|
25
|
-
| `content`
|
|
26
|
-
| `variant`
|
|
27
|
-
| `size`
|
|
28
|
-
| `isDot`
|
|
29
|
-
| `inline`
|
|
30
|
-
| `clickable`
|
|
31
|
-
| `disabled`
|
|
32
|
-
| `customPosition` | `boolean`
|
|
33
|
-
| `top`
|
|
34
|
-
| `right`
|
|
35
|
-
| `ariaLabel`
|
|
23
|
+
| Prop | Type | Default | Description |
|
|
24
|
+
| ---------------- | -------------------------------------------------------------------------- | ----------- | --------------------------------------------------------- |
|
|
25
|
+
| `content` | `string \| number` | -- | Text or number displayed inside the badge |
|
|
26
|
+
| `variant` | `"primary" \| "success" \| "warning" \| "danger" \| "info" \| "secondary"` | `"primary"` | Color variant |
|
|
27
|
+
| `size` | `"s" \| "m"` | `"m"` | Badge size |
|
|
28
|
+
| `isDot` | `boolean` | `false` | Renders as a small dot without text |
|
|
29
|
+
| `inline` | `boolean` | `false` | Renders as an inline element without absolute positioning |
|
|
30
|
+
| `clickable` | `boolean` | `false` | Makes the badge respond to click events |
|
|
31
|
+
| `disabled` | `boolean` | `false` | Disables interaction on clickable badges |
|
|
32
|
+
| `customPosition` | `boolean` | `false` | Enables custom `top`/`right` positioning |
|
|
33
|
+
| `top` | `string` | -- | Custom top offset (requires `customPosition`) |
|
|
34
|
+
| `right` | `string` | -- | Custom right offset (requires `customPosition`) |
|
|
35
|
+
| `ariaLabel` | `string` | -- | Custom accessible label for the badge |
|
|
36
36
|
|
|
37
37
|
## Common Patterns
|
|
38
38
|
|
|
@@ -65,12 +65,7 @@ A small indicator component for displaying counts, status dots, or short text la
|
|
|
65
65
|
### Clickable Badge with Dismiss
|
|
66
66
|
|
|
67
67
|
```vue
|
|
68
|
-
<VcBadge
|
|
69
|
-
:content="count"
|
|
70
|
-
clickable
|
|
71
|
-
variant="primary"
|
|
72
|
-
@click="clearNotifications"
|
|
73
|
-
>
|
|
68
|
+
<VcBadge :content="count" clickable variant="primary" @click="clearNotifications">
|
|
74
69
|
<VcIcon icon="lucide-inbox" size="xl" />
|
|
75
70
|
</VcBadge>
|
|
76
71
|
```
|
|
@@ -104,13 +99,7 @@ const statusVariantMap: Record<string, string> = {
|
|
|
104
99
|
Fine-tune the badge position relative to its parent:
|
|
105
100
|
|
|
106
101
|
```vue
|
|
107
|
-
<VcBadge
|
|
108
|
-
content="NEW"
|
|
109
|
-
variant="info"
|
|
110
|
-
custom-position
|
|
111
|
-
top="-4px"
|
|
112
|
-
right="-12px"
|
|
113
|
-
>
|
|
102
|
+
<VcBadge content="NEW" variant="info" custom-position top="-4px" right="-12px">
|
|
114
103
|
<img src="/product.jpg" class="tw-w-16 tw-h-16 tw-rounded" />
|
|
115
104
|
</VcBadge>
|
|
116
105
|
```
|
|
@@ -21,20 +21,20 @@ A contextual alert component for displaying important messages, warnings, or sta
|
|
|
21
21
|
|
|
22
22
|
## Key Props
|
|
23
23
|
|
|
24
|
-
| Prop
|
|
25
|
-
|
|
26
|
-
| `variant`
|
|
27
|
-
| `icon`
|
|
28
|
-
| `iconSize`
|
|
29
|
-
| `iconVariant`
|
|
30
|
-
| `collapsedHeight` | `number`
|
|
24
|
+
| Prop | Type | Default | Description |
|
|
25
|
+
| ----------------- | ---------------------------------------------- | -------- | ------------------------------------------------------------- |
|
|
26
|
+
| `variant` | `"info" \| "warning" \| "danger" \| "success"` | `"info"` | Semantic color variant |
|
|
27
|
+
| `icon` | `string` | -- | Icon identifier (e.g. `lucide-info`, `lucide-triangle-alert`) |
|
|
28
|
+
| `iconSize` | `IconSize` | `"l"` | Size of the leading icon |
|
|
29
|
+
| `iconVariant` | `IconVariant` | -- | Color variant for the icon |
|
|
30
|
+
| `collapsedHeight` | `number` | `100` | Max height in pixels before content becomes collapsible |
|
|
31
31
|
|
|
32
32
|
## Slots
|
|
33
33
|
|
|
34
|
-
| Slot
|
|
35
|
-
|
|
36
|
-
| `title`
|
|
37
|
-
| `default` | Body/description content
|
|
34
|
+
| Slot | Description |
|
|
35
|
+
| --------- | ------------------------------------------------------------------------ |
|
|
36
|
+
| `title` | Bold title text above the body content |
|
|
37
|
+
| `default` | Body/description content |
|
|
38
38
|
| `trigger` | Custom expand/collapse trigger (receives `{ isExpanded, toggle }` props) |
|
|
39
39
|
|
|
40
40
|
## Features
|
|
@@ -69,12 +69,7 @@ For backward compatibility, the deprecated variants `"light-danger"`, `"info-dar
|
|
|
69
69
|
### Decline Reason on a Detail Blade
|
|
70
70
|
|
|
71
71
|
```vue
|
|
72
|
-
<VcBanner
|
|
73
|
-
v-if="declineReason"
|
|
74
|
-
variant="danger"
|
|
75
|
-
icon="lucide-circle-alert"
|
|
76
|
-
icon-variant="danger"
|
|
77
|
-
>
|
|
72
|
+
<VcBanner v-if="declineReason" variant="danger" icon="lucide-circle-alert" icon-variant="danger">
|
|
78
73
|
<template #title>Decline Reason</template>
|
|
79
74
|
{{ declineReason }}
|
|
80
75
|
</VcBanner>
|
|
@@ -112,8 +107,15 @@ Place a banner inside a blade to notify the user of important context before the
|
|
|
112
107
|
This product has been marked as discontinued. Editing is limited to metadata fields only.
|
|
113
108
|
</VcBanner>
|
|
114
109
|
|
|
115
|
-
<VcInput
|
|
116
|
-
|
|
110
|
+
<VcInput
|
|
111
|
+
label="Name"
|
|
112
|
+
v-model="product.name"
|
|
113
|
+
:disabled="product.isDiscontinued"
|
|
114
|
+
/>
|
|
115
|
+
<VcTextarea
|
|
116
|
+
label="Notes"
|
|
117
|
+
v-model="product.notes"
|
|
118
|
+
/>
|
|
117
119
|
</VcBlade>
|
|
118
120
|
</template>
|
|
119
121
|
```
|
|
@@ -4,12 +4,12 @@ A versatile button component supporting 9 style variants, 5 size options, loadin
|
|
|
4
4
|
|
|
5
5
|
## When to Use
|
|
6
6
|
|
|
7
|
-
| Scenario
|
|
8
|
-
|
|
9
|
-
| Triggering an action (save, delete, submit) | **VcButton**
|
|
10
|
-
| Navigating to another URL or route
|
|
11
|
-
| Action inside a blade toolbar
|
|
12
|
-
| Inline text-style link within a paragraph
|
|
7
|
+
| Scenario | Component |
|
|
8
|
+
| ------------------------------------------- | --------------------------------------------------------- |
|
|
9
|
+
| Triggering an action (save, delete, submit) | **VcButton** |
|
|
10
|
+
| Navigating to another URL or route | `<router-link>` or `<a>` tag |
|
|
11
|
+
| Action inside a blade toolbar | `IBladeToolbar` items (rendered as buttons automatically) |
|
|
12
|
+
| Inline text-style link within a paragraph | Native `<a>` or `<router-link>` |
|
|
13
13
|
|
|
14
14
|
Use VcButton for any user-initiated action that does not navigate to a URL. **Do not use** VcButton for navigation -- the `link` variant looks like a link but calls `preventDefault()`, so actual URL navigation will not work. For toolbar actions, define `IBladeToolbar` objects instead of placing VcButton manually.
|
|
15
15
|
|
|
@@ -17,7 +17,11 @@ Use VcButton for any user-initiated action that does not navigate to a URL. **Do
|
|
|
17
17
|
|
|
18
18
|
```vue
|
|
19
19
|
<template>
|
|
20
|
-
<VcButton
|
|
20
|
+
<VcButton
|
|
21
|
+
variant="primary"
|
|
22
|
+
@click="handleSave"
|
|
23
|
+
>Save Changes</VcButton
|
|
24
|
+
>
|
|
21
25
|
</template>
|
|
22
26
|
|
|
23
27
|
<script setup lang="ts">
|
|
@@ -41,13 +45,13 @@ Solid background colors for primary and prominent actions.
|
|
|
41
45
|
<VcButton variant="info">Learn More</VcButton>
|
|
42
46
|
```
|
|
43
47
|
|
|
44
|
-
| Variant
|
|
45
|
-
|
|
46
|
-
| `primary` | Main CTA -- save, submit, confirm
|
|
47
|
-
| `danger`
|
|
48
|
-
| `warning` | Caution actions -- override, force
|
|
49
|
-
| `success` | Positive actions -- approve, publish
|
|
50
|
-
| `info`
|
|
48
|
+
| Variant | Use Case | Text Color |
|
|
49
|
+
| --------- | -------------------------------------- | ------------------- |
|
|
50
|
+
| `primary` | Main CTA -- save, submit, confirm | White |
|
|
51
|
+
| `danger` | Destructive actions -- delete, remove | White |
|
|
52
|
+
| `warning` | Caution actions -- override, force | Dark (for contrast) |
|
|
53
|
+
| `success` | Positive actions -- approve, publish | White |
|
|
54
|
+
| `info` | Informational actions -- details, help | White |
|
|
51
55
|
|
|
52
56
|
### Structural Variants (Medium Emphasis)
|
|
53
57
|
|
|
@@ -58,10 +62,10 @@ Bordered or transparent backgrounds for secondary actions.
|
|
|
58
62
|
<VcButton variant="outline">Export</VcButton>
|
|
59
63
|
```
|
|
60
64
|
|
|
61
|
-
| Variant
|
|
62
|
-
|
|
63
|
-
| `secondary` | Cancel, dismiss, secondary actions
|
|
64
|
-
| `outline`
|
|
65
|
+
| Variant | Use Case | Hover Behavior |
|
|
66
|
+
| ----------- | ------------------------------------- | ------------------------------------------------ |
|
|
67
|
+
| `secondary` | Cancel, dismiss, secondary actions | Background changes to primary-50 |
|
|
68
|
+
| `outline` | Alternative actions alongside primary | Background changes to primary-50, border darkens |
|
|
65
69
|
|
|
66
70
|
### Minimal Variants (Low Emphasis)
|
|
67
71
|
|
|
@@ -72,10 +76,10 @@ No border or background, used for inline or de-emphasized actions.
|
|
|
72
76
|
<VcButton variant="link">View Documentation</VcButton>
|
|
73
77
|
```
|
|
74
78
|
|
|
75
|
-
| Variant | Use Case
|
|
76
|
-
|
|
77
|
-
| `ghost` | Toolbar icons, inline actions
|
|
78
|
-
| `link`
|
|
79
|
+
| Variant | Use Case | Hover Behavior |
|
|
80
|
+
| ------- | ---------------------------------- | --------------------- |
|
|
81
|
+
| `ghost` | Toolbar icons, inline actions | Light background tint |
|
|
82
|
+
| `link` | Text-like navigation, inline links | Underline on text |
|
|
79
83
|
|
|
80
84
|
## Sizes
|
|
81
85
|
|
|
@@ -89,13 +93,13 @@ Five size options cover all common use cases from toolbar icons to prominent CTA
|
|
|
89
93
|
<VcButton size="icon-sm" icon="lucide-pencil" aria-label="Edit" />
|
|
90
94
|
```
|
|
91
95
|
|
|
92
|
-
| Size
|
|
93
|
-
|
|
94
|
-
| `sm`
|
|
95
|
-
| `default` | 36px
|
|
96
|
-
| `lg`
|
|
97
|
-
| `icon`
|
|
98
|
-
| `icon-sm` | 24x24px | 0 (square)
|
|
96
|
+
| Size | Height | Padding | Typical Use |
|
|
97
|
+
| --------- | ------- | ----------------------------- | ----------------------------------- |
|
|
98
|
+
| `sm` | 32px | 12px horizontal | Compact form actions, table footers |
|
|
99
|
+
| `default` | 36px | 16px horizontal, 8px vertical | Standard blade actions |
|
|
100
|
+
| `lg` | 40px | 24px horizontal | Prominent CTAs, dialog actions |
|
|
101
|
+
| `icon` | 36x36px | 0 (square) | Toolbar icon buttons |
|
|
102
|
+
| `icon-sm` | 24x24px | 0 (square) | Table cell actions, inline controls |
|
|
99
103
|
|
|
100
104
|
> **Note:** Legacy aliases `xs` (maps to `sm`) and `base` (maps to `default`) are supported for backward compatibility.
|
|
101
105
|
|
|
@@ -127,6 +131,7 @@ When `loading` is `true`, the button shows a spinner in place of its icon and be
|
|
|
127
131
|
```
|
|
128
132
|
|
|
129
133
|
During loading:
|
|
134
|
+
|
|
130
135
|
- The icon is replaced with a spinning `lucide-loader-2`
|
|
131
136
|
- The button is disabled (`pointer-events: none`)
|
|
132
137
|
- The cursor changes to `wait`
|
|
@@ -137,13 +142,7 @@ During loading:
|
|
|
137
142
|
The `selected` prop applies a visual highlight. Useful for toggle buttons or active states:
|
|
138
143
|
|
|
139
144
|
```vue
|
|
140
|
-
<VcButton
|
|
141
|
-
variant="ghost"
|
|
142
|
-
:selected="isGridView"
|
|
143
|
-
icon="lucide-grid"
|
|
144
|
-
aria-label="Grid view"
|
|
145
|
-
@click="isGridView = true"
|
|
146
|
-
/>
|
|
145
|
+
<VcButton variant="ghost" :selected="isGridView" icon="lucide-grid" aria-label="Grid view" @click="isGridView = true" />
|
|
147
146
|
```
|
|
148
147
|
|
|
149
148
|
When selected, `aria-pressed="true"` is set on the button element.
|
|
@@ -176,8 +175,16 @@ VcButton integrates with `VcButtonGroup` via provide/inject. The group can set a
|
|
|
176
175
|
```vue
|
|
177
176
|
<template>
|
|
178
177
|
<div class="tw-flex tw-gap-2">
|
|
179
|
-
<VcButton
|
|
180
|
-
|
|
178
|
+
<VcButton
|
|
179
|
+
variant="secondary"
|
|
180
|
+
@click="cancel"
|
|
181
|
+
>Cancel</VcButton
|
|
182
|
+
>
|
|
183
|
+
<VcButton
|
|
184
|
+
variant="primary"
|
|
185
|
+
:loading="isSaving"
|
|
186
|
+
@click="save"
|
|
187
|
+
>
|
|
181
188
|
Save
|
|
182
189
|
</VcButton>
|
|
183
190
|
</div>
|
|
@@ -189,8 +196,17 @@ VcButton integrates with `VcButtonGroup` via provide/inject. The group can set a
|
|
|
189
196
|
```vue
|
|
190
197
|
<template>
|
|
191
198
|
<div class="tw-flex tw-justify-end tw-gap-3 tw-p-4">
|
|
192
|
-
<VcButton
|
|
193
|
-
|
|
199
|
+
<VcButton
|
|
200
|
+
variant="outline"
|
|
201
|
+
@click="dismiss"
|
|
202
|
+
>Cancel</VcButton
|
|
203
|
+
>
|
|
204
|
+
<VcButton
|
|
205
|
+
variant="danger"
|
|
206
|
+
:loading="isDeleting"
|
|
207
|
+
icon="lucide-trash-2"
|
|
208
|
+
@click="confirmDelete"
|
|
209
|
+
>
|
|
194
210
|
Delete Permanently
|
|
195
211
|
</VcButton>
|
|
196
212
|
</div>
|
|
@@ -231,46 +247,46 @@ VcButton integrates with `VcButtonGroup` via provide/inject. The group can set a
|
|
|
231
247
|
|
|
232
248
|
## Props
|
|
233
249
|
|
|
234
|
-
| Prop
|
|
235
|
-
|
|
236
|
-
| `variant`
|
|
237
|
-
| `size`
|
|
238
|
-
| `icon`
|
|
239
|
-
| `iconClass` | `string`
|
|
240
|
-
| `iconSize`
|
|
241
|
-
| `loading`
|
|
242
|
-
| `disabled`
|
|
243
|
-
| `selected`
|
|
244
|
-
| `text`
|
|
245
|
-
| `type`
|
|
246
|
-
| `ariaLabel` | `string`
|
|
250
|
+
| Prop | Type | Default | Description |
|
|
251
|
+
| ----------- | ------------------------------------------------------------------------------------------------------------ | ----------- | --------------------------------------------------------------- |
|
|
252
|
+
| `variant` | `"primary" \| "secondary" \| "danger" \| "warning" \| "success" \| "info" \| "outline" \| "ghost" \| "link"` | `"primary"` | Visual style variant |
|
|
253
|
+
| `size` | `"sm" \| "default" \| "lg" \| "icon" \| "icon-sm"` | `"default"` | Button size |
|
|
254
|
+
| `icon` | `string \| Component` | -- | Icon identifier or Vue component |
|
|
255
|
+
| `iconClass` | `string` | -- | Additional CSS class for the icon element |
|
|
256
|
+
| `iconSize` | `IconSize` | `"s"` | Size of the icon (`"xs"`, `"s"`, `"m"`, `"l"`, `"xl"`, `"xxl"`) |
|
|
257
|
+
| `loading` | `boolean` | `false` | Shows spinner, disables interaction, sets `aria-busy` |
|
|
258
|
+
| `disabled` | `boolean` | `false` | Disables the button |
|
|
259
|
+
| `selected` | `boolean` | `false` | Applies selected/active visual state, sets `aria-pressed` |
|
|
260
|
+
| `text` | `boolean` | `false` | Renders as borderless text in the variant's color |
|
|
261
|
+
| `type` | `"button" \| "submit" \| "reset"` | `"button"` | HTML button type |
|
|
262
|
+
| `ariaLabel` | `string` | -- | Accessible label (required for icon-only buttons) |
|
|
247
263
|
|
|
248
264
|
## Events
|
|
249
265
|
|
|
250
|
-
| Event
|
|
251
|
-
|
|
266
|
+
| Event | Payload | Description |
|
|
267
|
+
| ------- | ------- | ------------------------------------------------------------------------ |
|
|
252
268
|
| `click` | `Event` | Emitted when the button is clicked (suppressed when disabled or loading) |
|
|
253
269
|
|
|
254
270
|
## Slots
|
|
255
271
|
|
|
256
|
-
| Slot
|
|
257
|
-
|
|
272
|
+
| Slot | Description |
|
|
273
|
+
| --------- | ----------------------------------------------------------------- |
|
|
258
274
|
| `default` | Button text content. When empty, the button renders as icon-only. |
|
|
259
275
|
|
|
260
276
|
## CSS Custom Properties
|
|
261
277
|
|
|
262
278
|
All visual properties are customizable through CSS custom properties. Each variant has three property sets (normal, hover, disabled) for background, text, and border colors.
|
|
263
279
|
|
|
264
|
-
| Pattern
|
|
265
|
-
|
|
266
|
-
| `--button-{variant}-background-color`
|
|
267
|
-
| `--button-{variant}-background-color-hover` | `--button-primary-background-color-hover` | Hover background
|
|
268
|
-
| `--button-{variant}-text-color`
|
|
269
|
-
| `--button-{variant}-border-color`
|
|
270
|
-
| `--button-border-radius`
|
|
271
|
-
| `--button-focus-ring-color`
|
|
272
|
-
| `--button-focus-ring-width`
|
|
273
|
-
| `--button-{size}-height`
|
|
280
|
+
| Pattern | Example | Description |
|
|
281
|
+
| ------------------------------------------- | ----------------------------------------- | ----------------------------- |
|
|
282
|
+
| `--button-{variant}-background-color` | `--button-primary-background-color` | Normal background |
|
|
283
|
+
| `--button-{variant}-background-color-hover` | `--button-primary-background-color-hover` | Hover background |
|
|
284
|
+
| `--button-{variant}-text-color` | `--button-primary-text-color` | Normal text color |
|
|
285
|
+
| `--button-{variant}-border-color` | `--button-primary-border-color` | Normal border color |
|
|
286
|
+
| `--button-border-radius` | `6px` | Corner radius for all buttons |
|
|
287
|
+
| `--button-focus-ring-color` | `var(--primary-300)` | Focus ring color |
|
|
288
|
+
| `--button-focus-ring-width` | `2px` | Focus ring thickness |
|
|
289
|
+
| `--button-{size}-height` | `--button-default-height: 36px` | Height per size |
|
|
274
290
|
|
|
275
291
|
## Accessibility
|
|
276
292
|
|
|
@@ -4,12 +4,12 @@ A bordered container with an optional header, icon, action buttons, and collapsi
|
|
|
4
4
|
|
|
5
5
|
## When to Use
|
|
6
6
|
|
|
7
|
-
| Scenario
|
|
8
|
-
|
|
9
|
-
| Grouping form fields or content with a header | **VcCard**
|
|
10
|
-
| Scrollable content wrapper without a header
|
|
7
|
+
| Scenario | Component |
|
|
8
|
+
| --------------------------------------------- | ---------------------------------------------------------------------------- |
|
|
9
|
+
| Grouping form fields or content with a header | **VcCard** |
|
|
10
|
+
| Scrollable content wrapper without a header | [VcContainer](../vc-container/) |
|
|
11
11
|
| Collapsible section with rich toggle behavior | [VcAccordion](../../molecules/vc-accordion/) (for multiple exclusive panels) |
|
|
12
|
-
| Alert or notification banner
|
|
12
|
+
| Alert or notification banner | [VcBanner](../vc-banner/) |
|
|
13
13
|
|
|
14
14
|
Use VcCard to visually separate content sections on a blade -- especially when you need a titled header, action buttons, or collapsible body. **Do not use** VcCard for dismissible alerts or status messages (use `VcBanner`), and avoid nesting VcCard when a simple `VcContainer` with padding would suffice.
|
|
15
15
|
|
|
@@ -66,11 +66,11 @@ Three variants control the header's background and text color to communicate sem
|
|
|
66
66
|
</VcCard>
|
|
67
67
|
```
|
|
68
68
|
|
|
69
|
-
| Variant
|
|
70
|
-
|
|
71
|
-
| `default` | `var(--secondary-50)` (light gray) | `var(--secondary-950)` (dark) | Standard content grouping
|
|
72
|
-
| `success` | `var(--success-100)` (light green) | `var(--success-600)` (green)
|
|
73
|
-
| `danger`
|
|
69
|
+
| Variant | Header Background | Header Text | Use Case |
|
|
70
|
+
| --------- | ---------------------------------- | ----------------------------- | ------------------------------------- |
|
|
71
|
+
| `default` | `var(--secondary-50)` (light gray) | `var(--secondary-950)` (dark) | Standard content grouping |
|
|
72
|
+
| `success` | `var(--success-100)` (light green) | `var(--success-600)` (green) | Positive state confirmation |
|
|
73
|
+
| `danger` | `var(--danger-100)` (light red) | `var(--danger-600)` (red) | Errors, warnings, destructive content |
|
|
74
74
|
|
|
75
75
|
## Collapsible Sections
|
|
76
76
|
|
|
@@ -193,24 +193,61 @@ When `fill` is `true`, the card body applies `display: flex` to allow child cont
|
|
|
193
193
|
```vue
|
|
194
194
|
<template>
|
|
195
195
|
<div class="tw-flex tw-flex-col tw-gap-4">
|
|
196
|
-
<VcCard
|
|
196
|
+
<VcCard
|
|
197
|
+
header="Basic Information"
|
|
198
|
+
icon="lucide-file-text"
|
|
199
|
+
>
|
|
197
200
|
<div class="tw-p-4 tw-grid tw-grid-cols-2 tw-gap-4">
|
|
198
|
-
<VcInput
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
201
|
+
<VcInput
|
|
202
|
+
v-model="form.name"
|
|
203
|
+
label="Product Name"
|
|
204
|
+
required
|
|
205
|
+
/>
|
|
206
|
+
<VcInput
|
|
207
|
+
v-model="form.sku"
|
|
208
|
+
label="SKU"
|
|
209
|
+
required
|
|
210
|
+
/>
|
|
211
|
+
<VcInput
|
|
212
|
+
v-model="form.price"
|
|
213
|
+
label="Price"
|
|
214
|
+
type="number"
|
|
215
|
+
/>
|
|
216
|
+
<VcSelect
|
|
217
|
+
v-model="form.category"
|
|
218
|
+
label="Category"
|
|
219
|
+
:options="categories"
|
|
220
|
+
/>
|
|
202
221
|
</div>
|
|
203
222
|
</VcCard>
|
|
204
223
|
|
|
205
|
-
<VcCard
|
|
224
|
+
<VcCard
|
|
225
|
+
header="SEO Settings"
|
|
226
|
+
icon="lucide-search"
|
|
227
|
+
is-collapsable
|
|
228
|
+
is-collapsed
|
|
229
|
+
>
|
|
206
230
|
<div class="tw-p-4 tw-grid tw-grid-cols-2 tw-gap-4">
|
|
207
|
-
<VcInput
|
|
208
|
-
|
|
209
|
-
|
|
231
|
+
<VcInput
|
|
232
|
+
v-model="form.metaTitle"
|
|
233
|
+
label="Meta Title"
|
|
234
|
+
/>
|
|
235
|
+
<VcInput
|
|
236
|
+
v-model="form.metaDescription"
|
|
237
|
+
label="Meta Description"
|
|
238
|
+
/>
|
|
239
|
+
<VcInput
|
|
240
|
+
v-model="form.slug"
|
|
241
|
+
label="URL Slug"
|
|
242
|
+
/>
|
|
210
243
|
</div>
|
|
211
244
|
</VcCard>
|
|
212
245
|
|
|
213
|
-
<VcCard
|
|
246
|
+
<VcCard
|
|
247
|
+
header="Inventory"
|
|
248
|
+
icon="lucide-warehouse"
|
|
249
|
+
is-collapsable
|
|
250
|
+
>
|
|
214
251
|
<div class="tw-p-4">
|
|
215
252
|
<!-- inventory fields -->
|
|
216
253
|
</div>
|
|
@@ -229,8 +266,16 @@ When `fill` is `true`, the card body applies `display: flex` to allow child cont
|
|
|
229
266
|
:icon="errors.length > 0 ? 'lucide-alert-triangle' : 'lucide-check-circle'"
|
|
230
267
|
>
|
|
231
268
|
<div class="tw-p-4">
|
|
232
|
-
<ul
|
|
233
|
-
|
|
269
|
+
<ul
|
|
270
|
+
v-if="errors.length > 0"
|
|
271
|
+
class="tw-list-disc tw-pl-4 tw-space-y-1"
|
|
272
|
+
>
|
|
273
|
+
<li
|
|
274
|
+
v-for="error in errors"
|
|
275
|
+
:key="error"
|
|
276
|
+
>
|
|
277
|
+
{{ error }}
|
|
278
|
+
</li>
|
|
234
279
|
</ul>
|
|
235
280
|
<p v-else>All validations passed.</p>
|
|
236
281
|
</div>
|
|
@@ -241,11 +286,7 @@ When `fill` is `true`, the card body applies `display: flex` to allow child cont
|
|
|
241
286
|
import { computed } from "vue";
|
|
242
287
|
|
|
243
288
|
const errors = ref<string[]>([]);
|
|
244
|
-
const validationHeader = computed(() =>
|
|
245
|
-
errors.value.length > 0
|
|
246
|
-
? `${errors.value.length} Validation Error(s)`
|
|
247
|
-
: "Validation Passed"
|
|
248
|
-
);
|
|
289
|
+
const validationHeader = computed(() => (errors.value.length > 0 ? `${errors.value.length} Validation Error(s)` : "Validation Passed"));
|
|
249
290
|
</script>
|
|
250
291
|
```
|
|
251
292
|
|
|
@@ -295,47 +336,47 @@ const validationHeader = computed(() =>
|
|
|
295
336
|
|
|
296
337
|
## Props
|
|
297
338
|
|
|
298
|
-
| Prop
|
|
299
|
-
|
|
300
|
-
| `header`
|
|
301
|
-
| `icon`
|
|
302
|
-
| `variant`
|
|
303
|
-
| `isCollapsable` | `boolean`
|
|
304
|
-
| `isCollapsed`
|
|
305
|
-
| `fill`
|
|
339
|
+
| Prop | Type | Default | Description |
|
|
340
|
+
| --------------- | ------------------------------------ | ----------- | --------------------------------------------------------- |
|
|
341
|
+
| `header` | `string` | -- | Title text displayed in the card header |
|
|
342
|
+
| `icon` | `string` | -- | Icon identifier shown before the title |
|
|
343
|
+
| `variant` | `"default" \| "success" \| "danger"` | `"default"` | Header color variant |
|
|
344
|
+
| `isCollapsable` | `boolean` | `false` | Enables collapse/expand on header click |
|
|
345
|
+
| `isCollapsed` | `boolean` | `false` | Controls the collapsed state (requires `isCollapsable`) |
|
|
346
|
+
| `fill` | `boolean` | `false` | Makes body content fill available vertical space via flex |
|
|
306
347
|
|
|
307
348
|
## Events
|
|
308
349
|
|
|
309
|
-
| Event
|
|
310
|
-
|
|
311
|
-
| `header:click`
|
|
312
|
-
| `state:collapsed` | `boolean` | Emitted when the collapsed state changes (`true` = collapsed)
|
|
350
|
+
| Event | Payload | Description |
|
|
351
|
+
| ----------------- | --------- | ---------------------------------------------------------------------------- |
|
|
352
|
+
| `header:click` | -- | Emitted when the header is clicked (always, regardless of collapsable state) |
|
|
353
|
+
| `state:collapsed` | `boolean` | Emitted when the collapsed state changes (`true` = collapsed) |
|
|
313
354
|
|
|
314
355
|
## Slots
|
|
315
356
|
|
|
316
|
-
| Slot
|
|
317
|
-
|
|
318
|
-
| `default` | Card body content
|
|
319
|
-
| `header`
|
|
320
|
-
| `actions` | Action buttons rendered on the right side of the header
|
|
357
|
+
| Slot | Description |
|
|
358
|
+
| --------- | --------------------------------------------------------- |
|
|
359
|
+
| `default` | Card body content |
|
|
360
|
+
| `header` | Custom header content (replaces the default title + icon) |
|
|
361
|
+
| `actions` | Action buttons rendered on the right side of the header |
|
|
321
362
|
|
|
322
363
|
## CSS Custom Properties
|
|
323
364
|
|
|
324
|
-
| Variable
|
|
325
|
-
|
|
326
|
-
| `--card-background`
|
|
327
|
-
| `--card-border-color`
|
|
328
|
-
| `--card-border-radius`
|
|
329
|
-
| `--card-header-background`
|
|
330
|
-
| `--card-header-color`
|
|
331
|
-
| `--card-header-background-success` | `var(--success-100)`
|
|
332
|
-
| `--card-header-background-danger`
|
|
333
|
-
| `--card-header-color-success`
|
|
334
|
-
| `--card-header-color-danger`
|
|
335
|
-
| `--card-header-padding-hor`
|
|
336
|
-
| `--card-header-padding-vert`
|
|
337
|
-
| `--card-hover-shadow`
|
|
338
|
-
| `--card-focus-ring-color`
|
|
365
|
+
| Variable | Default | Description |
|
|
366
|
+
| ---------------------------------- | ---------------------------- | ---------------------------------- |
|
|
367
|
+
| `--card-background` | `var(--additional-50)` | Card body background |
|
|
368
|
+
| `--card-border-color` | `var(--neutrals-200)` | Border color |
|
|
369
|
+
| `--card-border-radius` | `6px` | Corner radius |
|
|
370
|
+
| `--card-header-background` | `var(--secondary-50)` | Default header background |
|
|
371
|
+
| `--card-header-color` | `var(--secondary-950)` | Default header text color |
|
|
372
|
+
| `--card-header-background-success` | `var(--success-100)` | Success variant header background |
|
|
373
|
+
| `--card-header-background-danger` | `var(--danger-100)` | Danger variant header background |
|
|
374
|
+
| `--card-header-color-success` | `var(--success-600)` | Success variant header text |
|
|
375
|
+
| `--card-header-color-danger` | `var(--danger-600)` | Danger variant header text |
|
|
376
|
+
| `--card-header-padding-hor` | `24px` | Header horizontal padding |
|
|
377
|
+
| `--card-header-padding-vert` | `17px` | Header vertical padding |
|
|
378
|
+
| `--card-hover-shadow` | `0 2px 8px rgba(0,0,0,0.06)` | Hover shadow |
|
|
379
|
+
| `--card-focus-ring-color` | `var(--primary-300)` | Focus ring for collapsable headers |
|
|
339
380
|
|
|
340
381
|
## Accessibility
|
|
341
382
|
|