@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
|
@@ -23,11 +23,11 @@ import { VcStatus } from "@vc-shell/framework";
|
|
|
23
23
|
|
|
24
24
|
## Key Props
|
|
25
25
|
|
|
26
|
-
| Prop
|
|
27
|
-
|
|
28
|
-
| `variant` | `"info" \| "warning" \| "danger" \| "success" \| "light-danger" \| "info-dark" \| "primary"` | `"info"` | Semantic color theme
|
|
29
|
-
| `extend`
|
|
30
|
-
| `dot`
|
|
26
|
+
| Prop | Type | Default | Description |
|
|
27
|
+
| --------- | -------------------------------------------------------------------------------------------- | -------- | ---------------------------------------------------------------------------- |
|
|
28
|
+
| `variant` | `"info" \| "warning" \| "danger" \| "success" \| "light-danger" \| "info-dark" \| "primary"` | `"info"` | Semantic color theme |
|
|
29
|
+
| `extend` | `boolean` | -- | Extended layout with larger padding, rounded corners, and colored background |
|
|
30
|
+
| `dot` | `boolean` | `false` | Renders as a small colored circle without text |
|
|
31
31
|
|
|
32
32
|
## Common Patterns
|
|
33
33
|
|
|
@@ -60,7 +60,10 @@ Use the `dot` prop for compact status representation alongside text labels.
|
|
|
60
60
|
```vue
|
|
61
61
|
<template>
|
|
62
62
|
<div class="tw-flex tw-items-center tw-gap-2">
|
|
63
|
-
<VcStatus
|
|
63
|
+
<VcStatus
|
|
64
|
+
variant="success"
|
|
65
|
+
dot
|
|
66
|
+
/>
|
|
64
67
|
<span>Online</span>
|
|
65
68
|
</div>
|
|
66
69
|
</template>
|
|
@@ -72,9 +75,17 @@ The `extend` prop creates a banner-like status with a colored background, suitab
|
|
|
72
75
|
|
|
73
76
|
```vue
|
|
74
77
|
<template>
|
|
75
|
-
<VcStatus
|
|
78
|
+
<VcStatus
|
|
79
|
+
variant="danger"
|
|
80
|
+
extend
|
|
81
|
+
>
|
|
76
82
|
<div class="tw-flex tw-items-center">
|
|
77
|
-
<VcIcon
|
|
83
|
+
<VcIcon
|
|
84
|
+
icon="lucide-triangle-alert"
|
|
85
|
+
size="xl"
|
|
86
|
+
variant="danger"
|
|
87
|
+
class="tw-mr-3"
|
|
88
|
+
/>
|
|
78
89
|
<div>
|
|
79
90
|
<h3 class="tw-font-bold">Payment Failed</h3>
|
|
80
91
|
<p>The last transaction was declined. Please update your payment method.</p>
|
|
@@ -88,12 +99,12 @@ The `extend` prop creates a banner-like status with a colored background, suitab
|
|
|
88
99
|
|
|
89
100
|
Each variant has its own set of CSS variables following the pattern `--status-{variant}-color`, `--status-{variant}-main-color`, `--status-{variant}-bg-color`. Key shared variables:
|
|
90
101
|
|
|
91
|
-
| Variable
|
|
92
|
-
|
|
93
|
-
| `--status-border-radius`
|
|
94
|
-
| `--status-border-radius-extended` | `6px`
|
|
95
|
-
| `--status-dot-size`
|
|
96
|
-
| `--status-text-color`
|
|
102
|
+
| Variable | Default | Description |
|
|
103
|
+
| --------------------------------- | --------------------- | --------------------------------- |
|
|
104
|
+
| `--status-border-radius` | `9999px` | Pill shape for standard mode |
|
|
105
|
+
| `--status-border-radius-extended` | `6px` | Rounded corners for extended mode |
|
|
106
|
+
| `--status-dot-size` | `10px` | Diameter of the dot indicator |
|
|
107
|
+
| `--status-text-color` | `var(--neutrals-700)` | Default label text color |
|
|
97
108
|
|
|
98
109
|
## Accessibility
|
|
99
110
|
|
|
@@ -23,8 +23,8 @@ import { VcStatusIcon } from "@vc-shell/framework";
|
|
|
23
23
|
|
|
24
24
|
## Key Props
|
|
25
25
|
|
|
26
|
-
| Prop
|
|
27
|
-
|
|
26
|
+
| Prop | Type | Default | Description |
|
|
27
|
+
| -------- | --------- | ----------- | --------------------------------------------------------------------- |
|
|
28
28
|
| `status` | `boolean` | `undefined` | `true` shows a green check circle; `false` shows a muted cross circle |
|
|
29
29
|
|
|
30
30
|
## Common Patterns
|
|
@@ -33,7 +33,11 @@ import { VcStatusIcon } from "@vc-shell/framework";
|
|
|
33
33
|
|
|
34
34
|
```vue
|
|
35
35
|
<template>
|
|
36
|
-
<VcColumn
|
|
36
|
+
<VcColumn
|
|
37
|
+
id="isActive"
|
|
38
|
+
header="Active"
|
|
39
|
+
:width="80"
|
|
40
|
+
>
|
|
37
41
|
<template #default="{ row }">
|
|
38
42
|
<VcStatusIcon :status="row.isActive" />
|
|
39
43
|
</template>
|
|
@@ -45,18 +49,33 @@ import { VcStatusIcon } from "@vc-shell/framework";
|
|
|
45
49
|
|
|
46
50
|
```vue
|
|
47
51
|
<template>
|
|
48
|
-
<VcDataTable
|
|
49
|
-
|
|
52
|
+
<VcDataTable
|
|
53
|
+
:columns="columns"
|
|
54
|
+
:items="users"
|
|
55
|
+
>
|
|
56
|
+
<VcColumn
|
|
57
|
+
id="emailVerified"
|
|
58
|
+
header="Email"
|
|
59
|
+
:width="70"
|
|
60
|
+
>
|
|
50
61
|
<template #default="{ row }">
|
|
51
62
|
<VcStatusIcon :status="row.emailVerified" />
|
|
52
63
|
</template>
|
|
53
64
|
</VcColumn>
|
|
54
|
-
<VcColumn
|
|
65
|
+
<VcColumn
|
|
66
|
+
id="isActive"
|
|
67
|
+
header="Active"
|
|
68
|
+
:width="70"
|
|
69
|
+
>
|
|
55
70
|
<template #default="{ row }">
|
|
56
71
|
<VcStatusIcon :status="row.isActive" />
|
|
57
72
|
</template>
|
|
58
73
|
</VcColumn>
|
|
59
|
-
<VcColumn
|
|
74
|
+
<VcColumn
|
|
75
|
+
id="hasAvatar"
|
|
76
|
+
header="Avatar"
|
|
77
|
+
:width="70"
|
|
78
|
+
>
|
|
60
79
|
<template #default="{ row }">
|
|
61
80
|
<VcStatusIcon :status="!!row.avatarUrl" />
|
|
62
81
|
</template>
|
|
@@ -70,10 +89,14 @@ import { VcStatusIcon } from "@vc-shell/framework";
|
|
|
70
89
|
```vue
|
|
71
90
|
<template>
|
|
72
91
|
<div class="tw-space-y-2">
|
|
73
|
-
<div
|
|
92
|
+
<div
|
|
93
|
+
v-for="service in services"
|
|
94
|
+
:key="service.name"
|
|
95
|
+
class="tw-flex tw-justify-between tw-items-center tw-py-2 tw-border-b"
|
|
96
|
+
>
|
|
74
97
|
<span>{{ service.name }}</span>
|
|
75
98
|
<div class="tw-flex tw-items-center tw-gap-2">
|
|
76
|
-
<span class="tw-text-sm">{{ service.status ?
|
|
99
|
+
<span class="tw-text-sm">{{ service.status ? "Online" : "Offline" }}</span>
|
|
77
100
|
<VcStatusIcon :status="service.status" />
|
|
78
101
|
</div>
|
|
79
102
|
</div>
|
|
@@ -89,8 +112,11 @@ VcStatusIcon is intentionally minimal. If you need a text label next to the icon
|
|
|
89
112
|
<template>
|
|
90
113
|
<div class="tw-flex tw-items-center tw-gap-2">
|
|
91
114
|
<VcStatusIcon :status="order.isPaid" />
|
|
92
|
-
<span
|
|
93
|
-
|
|
115
|
+
<span
|
|
116
|
+
class="tw-text-sm"
|
|
117
|
+
:class="order.isPaid ? 'tw-text-green-600' : 'tw-text-gray-400'"
|
|
118
|
+
>
|
|
119
|
+
{{ order.isPaid ? "Paid" : "Unpaid" }}
|
|
94
120
|
</span>
|
|
95
121
|
</div>
|
|
96
122
|
</template>
|
|
@@ -98,9 +124,9 @@ VcStatusIcon is intentionally minimal. If you need a text label next to the icon
|
|
|
98
124
|
|
|
99
125
|
## CSS Custom Properties
|
|
100
126
|
|
|
101
|
-
| Variable
|
|
102
|
-
|
|
103
|
-
| `--status-icon-success-color`
|
|
127
|
+
| Variable | Default | Description |
|
|
128
|
+
| ------------------------------ | --------------------- | ----------------------- |
|
|
129
|
+
| `--status-icon-success-color` | `var(--success-500)` | Color of the check icon |
|
|
104
130
|
| `--status-icon-inactive-color` | `var(--neutrals-300)` | Color of the cross icon |
|
|
105
131
|
|
|
106
132
|
## Tips
|
|
@@ -7,7 +7,11 @@ A floating tooltip that appears on hover or focus to provide contextual informat
|
|
|
7
7
|
```vue
|
|
8
8
|
<template>
|
|
9
9
|
<VcTooltip>
|
|
10
|
-
<VcButton
|
|
10
|
+
<VcButton
|
|
11
|
+
size="icon"
|
|
12
|
+
icon="lucide-trash-2"
|
|
13
|
+
aria-label="Delete"
|
|
14
|
+
/>
|
|
11
15
|
<template #tooltip>Delete selected items</template>
|
|
12
16
|
</VcTooltip>
|
|
13
17
|
</template>
|
|
@@ -32,12 +36,12 @@ VcTooltip supports 12 placement positions relative to the trigger element. The t
|
|
|
32
36
|
|
|
33
37
|
### All placement options
|
|
34
38
|
|
|
35
|
-
| Primary
|
|
36
|
-
|
|
37
|
-
| `top`
|
|
39
|
+
| Primary | Start Variant | End Variant |
|
|
40
|
+
| -------- | -------------- | ------------ |
|
|
41
|
+
| `top` | `top-start` | `top-end` |
|
|
38
42
|
| `bottom` | `bottom-start` | `bottom-end` |
|
|
39
|
-
| `left`
|
|
40
|
-
| `right`
|
|
43
|
+
| `left` | `left-start` | `left-end` |
|
|
44
|
+
| `right` | `right-start` | `right-end` |
|
|
41
45
|
|
|
42
46
|
The `start` and `end` variants align the tooltip to the beginning or end of the trigger element along the cross axis:
|
|
43
47
|
|
|
@@ -70,11 +74,11 @@ Three visual themes control the tooltip's appearance.
|
|
|
70
74
|
</VcTooltip>
|
|
71
75
|
```
|
|
72
76
|
|
|
73
|
-
| Variant
|
|
74
|
-
|
|
75
|
-
| `default` | `var(--additional-50)` (light) | `var(--neutrals-700)`
|
|
76
|
-
| `dark`
|
|
77
|
-
| `info`
|
|
77
|
+
| Variant | Background | Text Color | Use Case |
|
|
78
|
+
| --------- | ------------------------------ | ------------------------------ | ------------------------------------- |
|
|
79
|
+
| `default` | `var(--additional-50)` (light) | `var(--neutrals-700)` | General-purpose tooltips |
|
|
80
|
+
| `dark` | `var(--neutrals-800)` | `var(--additional-50)` (white) | High-contrast tooltips, dark UI areas |
|
|
81
|
+
| `info` | `var(--primary-600)` | `var(--additional-50)` (white) | Branded or informational tooltips |
|
|
78
82
|
|
|
79
83
|
## Delayed Display
|
|
80
84
|
|
|
@@ -115,10 +119,10 @@ Control the distance between the trigger and the tooltip:
|
|
|
115
119
|
<VcTooltip :offset="{ mainAxis: 8, crossAxis: 10 }">...</VcTooltip>
|
|
116
120
|
```
|
|
117
121
|
|
|
118
|
-
| Axis
|
|
119
|
-
|
|
120
|
-
| `mainAxis`
|
|
121
|
-
| `crossAxis` | Along the trigger edge (parallel to placement edge)
|
|
122
|
+
| Axis | Direction | Default |
|
|
123
|
+
| ----------- | ------------------------------------------------------- | ------- |
|
|
124
|
+
| `mainAxis` | Away from the trigger (perpendicular to placement edge) | `8` |
|
|
125
|
+
| `crossAxis` | Along the trigger edge (parallel to placement edge) | `0` |
|
|
122
126
|
|
|
123
127
|
## Width Control
|
|
124
128
|
|
|
@@ -177,7 +181,12 @@ The `#tooltip` slot accepts any HTML or Vue components, not just text:
|
|
|
177
181
|
```vue
|
|
178
182
|
<template>
|
|
179
183
|
<div class="tw-flex tw-gap-1">
|
|
180
|
-
<VcTooltip
|
|
184
|
+
<VcTooltip
|
|
185
|
+
v-for="action in actions"
|
|
186
|
+
:key="action.id"
|
|
187
|
+
placement="top"
|
|
188
|
+
variant="dark"
|
|
189
|
+
>
|
|
181
190
|
<VcButton
|
|
182
191
|
variant="ghost"
|
|
183
192
|
size="icon"
|
|
@@ -203,7 +212,10 @@ const actions = [
|
|
|
203
212
|
|
|
204
213
|
```vue
|
|
205
214
|
<template>
|
|
206
|
-
<VcTooltip
|
|
215
|
+
<VcTooltip
|
|
216
|
+
placement="top"
|
|
217
|
+
:max-width="400"
|
|
218
|
+
>
|
|
207
219
|
<span class="tw-truncate tw-max-w-[200px] tw-block">
|
|
208
220
|
{{ longProductName }}
|
|
209
221
|
</span>
|
|
@@ -270,38 +282,38 @@ const actions = [
|
|
|
270
282
|
|
|
271
283
|
## Props
|
|
272
284
|
|
|
273
|
-
| Prop
|
|
274
|
-
|
|
275
|
-
| `placement` | `TooltipPlacement`
|
|
276
|
-
| `variant`
|
|
277
|
-
| `arrow`
|
|
278
|
-
| `delay`
|
|
279
|
-
| `maxWidth`
|
|
280
|
-
| `offset`
|
|
281
|
-
| `disabled`
|
|
285
|
+
| Prop | Type | Default | Description |
|
|
286
|
+
| ----------- | ------------------------------------------- | ----------------- | ----------------------------------------------- |
|
|
287
|
+
| `placement` | `TooltipPlacement` | `"bottom"` | Position relative to the trigger (12 options) |
|
|
288
|
+
| `variant` | `"default" \| "dark" \| "info"` | `"default"` | Visual theme |
|
|
289
|
+
| `arrow` | `boolean` | `true` | Show directional arrow pointing at the trigger |
|
|
290
|
+
| `delay` | `number` | `0` | Milliseconds to wait before showing |
|
|
291
|
+
| `maxWidth` | `number \| string` | `240` | Maximum width (number = px, string = CSS value) |
|
|
292
|
+
| `offset` | `{ mainAxis?: number; crossAxis?: number }` | `{ mainAxis: 8 }` | Distance from the trigger element |
|
|
293
|
+
| `disabled` | `boolean` | `false` | Suppress the tooltip entirely |
|
|
282
294
|
|
|
283
295
|
## Slots
|
|
284
296
|
|
|
285
|
-
| Slot
|
|
286
|
-
|
|
297
|
+
| Slot | Description |
|
|
298
|
+
| --------- | --------------------------------------------------------- |
|
|
287
299
|
| `default` | Trigger element that activates the tooltip on hover/focus |
|
|
288
|
-
| `tooltip` | Content rendered inside the floating tooltip panel
|
|
300
|
+
| `tooltip` | Content rendered inside the floating tooltip panel |
|
|
289
301
|
|
|
290
302
|
## CSS Custom Properties
|
|
291
303
|
|
|
292
|
-
| Variable
|
|
293
|
-
|
|
294
|
-
| `--tooltip-bg`
|
|
295
|
-
| `--tooltip-text`
|
|
296
|
-
| `--tooltip-dark-bg`
|
|
297
|
-
| `--tooltip-dark-text`
|
|
298
|
-
| `--tooltip-info-bg`
|
|
299
|
-
| `--tooltip-info-text`
|
|
300
|
-
| `--tooltip-border-radius` | `6px`
|
|
301
|
-
| `--tooltip-font-size`
|
|
302
|
-
| `--tooltip-padding-x`
|
|
303
|
-
| `--tooltip-padding-y`
|
|
304
|
-
| `--tooltip-z-index`
|
|
304
|
+
| Variable | Default | Description |
|
|
305
|
+
| ------------------------- | ---------------------- | -------------------------- |
|
|
306
|
+
| `--tooltip-bg` | `var(--additional-50)` | Default variant background |
|
|
307
|
+
| `--tooltip-text` | `var(--neutrals-700)` | Default variant text color |
|
|
308
|
+
| `--tooltip-dark-bg` | `var(--neutrals-800)` | Dark variant background |
|
|
309
|
+
| `--tooltip-dark-text` | `var(--additional-50)` | Dark variant text color |
|
|
310
|
+
| `--tooltip-info-bg` | `var(--primary-600)` | Info variant background |
|
|
311
|
+
| `--tooltip-info-text` | `var(--additional-50)` | Info variant text color |
|
|
312
|
+
| `--tooltip-border-radius` | `6px` | Corner radius |
|
|
313
|
+
| `--tooltip-font-size` | `12px` | Text size |
|
|
314
|
+
| `--tooltip-padding-x` | `10px` | Horizontal padding |
|
|
315
|
+
| `--tooltip-padding-y` | `6px` | Vertical padding |
|
|
316
|
+
| `--tooltip-z-index` | `1002` | Stacking order |
|
|
305
317
|
|
|
306
318
|
## Accessibility
|
|
307
319
|
|
|
@@ -26,22 +26,18 @@ import { VcVideo } from "@vc-shell/framework";
|
|
|
26
26
|
|
|
27
27
|
## Key Props
|
|
28
28
|
|
|
29
|
-
| Prop
|
|
30
|
-
|
|
31
|
-
| `source`
|
|
32
|
-
| `label`
|
|
33
|
-
| `tooltip` | `string` | --
|
|
29
|
+
| Prop | Type | Default | Description |
|
|
30
|
+
| --------- | -------- | ------- | -------------------------------------------------- |
|
|
31
|
+
| `source` | `string` | -- | Embed URL for the video (e.g., YouTube embed link) |
|
|
32
|
+
| `label` | `string` | -- | Label text displayed above the video |
|
|
33
|
+
| `tooltip` | `string` | -- | Tooltip text shown on the label's info icon |
|
|
34
34
|
|
|
35
35
|
## Common Patterns
|
|
36
36
|
|
|
37
37
|
### Video with Label and Tooltip
|
|
38
38
|
|
|
39
39
|
```vue
|
|
40
|
-
<VcVideo
|
|
41
|
-
source="https://www.youtube.com/embed/dQw4w9WgXcQ"
|
|
42
|
-
label="Setup Guide"
|
|
43
|
-
tooltip="This video walks through the initial configuration steps"
|
|
44
|
-
/>
|
|
40
|
+
<VcVideo source="https://www.youtube.com/embed/dQw4w9WgXcQ" label="Setup Guide" tooltip="This video walks through the initial configuration steps" />
|
|
45
41
|
```
|
|
46
42
|
|
|
47
43
|
### Placeholder When Source Is Missing
|
|
@@ -57,7 +53,11 @@ When `source` is not provided, VcVideo renders a centered film icon placeholder
|
|
|
57
53
|
```vue
|
|
58
54
|
<template>
|
|
59
55
|
<VcBlade title="Product Details">
|
|
60
|
-
<VcInput
|
|
56
|
+
<VcInput
|
|
57
|
+
label="Video URL"
|
|
58
|
+
v-model="product.videoUrl"
|
|
59
|
+
placeholder="https://youtube.com/embed/..."
|
|
60
|
+
/>
|
|
61
61
|
<VcVideo
|
|
62
62
|
:source="product.videoUrl"
|
|
63
63
|
label="Product Video"
|
|
@@ -89,12 +89,12 @@ When `source` is not provided, VcVideo renders a centered film icon placeholder
|
|
|
89
89
|
|
|
90
90
|
## CSS Custom Properties
|
|
91
91
|
|
|
92
|
-
| Variable
|
|
93
|
-
|
|
94
|
-
| `--video-icon-color`
|
|
95
|
-
| `--video-placeholder-bg` | `var(--neutrals-100)` | Placeholder background
|
|
96
|
-
| `--video-border-radius`
|
|
97
|
-
| `--video-border-color`
|
|
92
|
+
| Variable | Default | Description |
|
|
93
|
+
| ------------------------ | --------------------- | ----------------------- |
|
|
94
|
+
| `--video-icon-color` | `var(--neutrals-400)` | Placeholder icon color |
|
|
95
|
+
| `--video-placeholder-bg` | `var(--neutrals-100)` | Placeholder background |
|
|
96
|
+
| `--video-border-radius` | `6px` | Container corner radius |
|
|
97
|
+
| `--video-border-color` | `var(--neutrals-200)` | Container border color |
|
|
98
98
|
|
|
99
99
|
## Tips
|
|
100
100
|
|
|
@@ -34,20 +34,20 @@ function openNotifications() {
|
|
|
34
34
|
|
|
35
35
|
## Key Props
|
|
36
36
|
|
|
37
|
-
| Prop
|
|
38
|
-
|
|
39
|
-
| `icon`
|
|
40
|
-
| `title`
|
|
41
|
-
| `value`
|
|
42
|
-
| `disabled`
|
|
43
|
-
| `isExpanded` | `boolean`
|
|
44
|
-
| `horizontal` | `boolean`
|
|
37
|
+
| Prop | Type | Default | Description |
|
|
38
|
+
| ------------ | ------------------ | ------- | ----------------------------------------------------------------- |
|
|
39
|
+
| `icon` | `string` | -- | Icon name (Lucide format, e.g., `"lucide-save"`) |
|
|
40
|
+
| `title` | `string` | -- | Label text below (or beside) the icon |
|
|
41
|
+
| `value` | `string \| number` | -- | Badge count displayed on the icon; numbers above 99 show as "99+" |
|
|
42
|
+
| `disabled` | `boolean` | `false` | Prevents clicks and applies muted styling |
|
|
43
|
+
| `isExpanded` | `boolean` | `false` | Expanded visual state |
|
|
44
|
+
| `horizontal` | `boolean` | `false` | Arranges icon and title side by side instead of stacked |
|
|
45
45
|
|
|
46
46
|
## Events
|
|
47
47
|
|
|
48
|
-
| Event
|
|
49
|
-
|
|
50
|
-
| `click` | none
|
|
48
|
+
| Event | Payload | Description |
|
|
49
|
+
| ------- | ------- | ------------------------------------------------------------- |
|
|
50
|
+
| `click` | none | Fired when the widget is clicked (suppressed when `disabled`) |
|
|
51
51
|
|
|
52
52
|
## Common Patterns
|
|
53
53
|
|
|
@@ -87,16 +87,16 @@ Badge values above 99 are automatically displayed as "99+".
|
|
|
87
87
|
|
|
88
88
|
## CSS Custom Properties
|
|
89
89
|
|
|
90
|
-
| Variable
|
|
91
|
-
|
|
92
|
-
| `--widget-bg-color`
|
|
93
|
-
| `--widget-bg-hover-color`
|
|
94
|
-
| `--widget-icon-color`
|
|
95
|
-
| `--widget-icon-hover-color`
|
|
96
|
-
| `--widget-title-color`
|
|
97
|
-
| `--widget-title-hover-color` | `var(--primary-600)`
|
|
98
|
-
| `--widget-border-radius`
|
|
99
|
-
| `--widget-focus-ring-color`
|
|
90
|
+
| Variable | Default | Description |
|
|
91
|
+
| ---------------------------- | --------------------- | -------------------- |
|
|
92
|
+
| `--widget-bg-color` | `transparent` | Background color |
|
|
93
|
+
| `--widget-bg-hover-color` | `var(--neutrals-50)` | Background on hover |
|
|
94
|
+
| `--widget-icon-color` | `var(--neutrals-700)` | Icon color |
|
|
95
|
+
| `--widget-icon-hover-color` | `var(--primary-600)` | Icon color on hover |
|
|
96
|
+
| `--widget-title-color` | `var(--neutrals-600)` | Title text color |
|
|
97
|
+
| `--widget-title-hover-color` | `var(--primary-600)` | Title color on hover |
|
|
98
|
+
| `--widget-border-radius` | `8px` | Corner radius |
|
|
99
|
+
| `--widget-focus-ring-color` | `var(--primary-300)` | Focus ring color |
|
|
100
100
|
|
|
101
101
|
## Accessibility
|
|
102
102
|
|
|
@@ -33,11 +33,11 @@ const languages = [
|
|
|
33
33
|
|
|
34
34
|
## Key Props
|
|
35
35
|
|
|
36
|
-
| Prop
|
|
37
|
-
|
|
38
|
-
| `modelValue` | `string`
|
|
39
|
-
| `options`
|
|
40
|
-
| `disabled`
|
|
36
|
+
| Prop | Type | Default | Description |
|
|
37
|
+
| ------------ | ------------------ | ------- | --------------------------------- |
|
|
38
|
+
| `modelValue` | `string` | `""` | Currently selected language value |
|
|
39
|
+
| `options` | `LanguageOption[]` | `[]` | Available language options |
|
|
40
|
+
| `disabled` | `boolean` | `false` | Disables interaction |
|
|
41
41
|
|
|
42
42
|
Each `LanguageOption` has: `{ value: string; label: string; flag?: string }`.
|
|
43
43
|
|
|
@@ -65,23 +65,36 @@ const languages = [
|
|
|
65
65
|
|
|
66
66
|
const currentName = computed({
|
|
67
67
|
get: () => product.value.names[currentLang.value] ?? "",
|
|
68
|
-
set: (val) => {
|
|
68
|
+
set: (val) => {
|
|
69
|
+
product.value.names[currentLang.value] = val;
|
|
70
|
+
},
|
|
69
71
|
});
|
|
70
72
|
|
|
71
73
|
const currentDescription = computed({
|
|
72
74
|
get: () => product.value.descriptions[currentLang.value] ?? "",
|
|
73
|
-
set: (val) => {
|
|
75
|
+
set: (val) => {
|
|
76
|
+
product.value.descriptions[currentLang.value] = val;
|
|
77
|
+
},
|
|
74
78
|
});
|
|
75
79
|
</script>
|
|
76
80
|
|
|
77
81
|
<template>
|
|
78
82
|
<VcBlade title="Edit Product">
|
|
79
83
|
<template #actions>
|
|
80
|
-
<MultilanguageSelector
|
|
84
|
+
<MultilanguageSelector
|
|
85
|
+
v-model="currentLang"
|
|
86
|
+
:options="languages"
|
|
87
|
+
/>
|
|
81
88
|
</template>
|
|
82
89
|
|
|
83
|
-
<VcInput
|
|
84
|
-
|
|
90
|
+
<VcInput
|
|
91
|
+
v-model="currentName"
|
|
92
|
+
label="Name"
|
|
93
|
+
/>
|
|
94
|
+
<VcTextarea
|
|
95
|
+
v-model="currentDescription"
|
|
96
|
+
label="Description"
|
|
97
|
+
/>
|
|
85
98
|
</VcBlade>
|
|
86
99
|
</template>
|
|
87
100
|
```
|