@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.
Files changed (195) hide show
  1. package/CHANGELOG.md +78 -54
  2. package/README.md +42 -12
  3. package/package.json +4 -4
  4. package/runtime/VERSION +1 -1
  5. package/runtime/agents/api-analyzer.md +31 -16
  6. package/runtime/agents/blade-enhancer.md +15 -9
  7. package/runtime/agents/details-blade-generator.md +47 -31
  8. package/runtime/agents/list-blade-generator.md +21 -37
  9. package/runtime/agents/locales-generator.md +3 -0
  10. package/runtime/agents/migration-agent.md +18 -7
  11. package/runtime/agents/module-analyzer.md +2 -0
  12. package/runtime/agents/module-assembler.md +15 -0
  13. package/runtime/agents/promote-agent.md +15 -4
  14. package/runtime/agents/type-checker.md +11 -0
  15. package/runtime/knowledge/docs/_BUILD_HASH.md +1 -1
  16. package/runtime/knowledge/docs/core/api/platform.docs.md +30 -30
  17. package/runtime/knowledge/docs/core/blade-navigation/blade-nav-composables.docs.md +41 -41
  18. package/runtime/knowledge/docs/core/composables/bladeContext/index.docs.md +12 -10
  19. package/runtime/knowledge/docs/core/composables/useApiClient/useApiClient.docs.md +11 -14
  20. package/runtime/knowledge/docs/core/composables/useAppBarMobileButtons/useAppBarMobileButtons.docs.md +35 -35
  21. package/runtime/knowledge/docs/core/composables/useAppBarWidget/useAppBarWidget.docs.md +35 -35
  22. package/runtime/knowledge/docs/core/composables/useAppInsights/useAppInsights.docs.md +15 -15
  23. package/runtime/knowledge/docs/core/composables/useAssets/useAssets.docs.md +21 -18
  24. package/runtime/knowledge/docs/core/composables/useAssetsManager/useAssetsManager.docs.md +28 -24
  25. package/runtime/knowledge/docs/core/composables/useAsync/useAsync.docs.md +90 -61
  26. package/runtime/knowledge/docs/core/composables/useBeforeUnload/useBeforeUnload.docs.md +19 -18
  27. package/runtime/knowledge/docs/core/composables/useBlade/useBlade.docs.md +89 -68
  28. package/runtime/knowledge/docs/core/composables/useBladeForm/useBladeForm.docs.md +27 -25
  29. package/runtime/knowledge/docs/core/composables/useBladeRegistry/useBladeRegistry.docs.md +15 -15
  30. package/runtime/knowledge/docs/core/composables/useBladeWidgets/index.docs.md +43 -47
  31. package/runtime/knowledge/docs/core/composables/useBreadcrumbs/useBreadcrumbs.docs.md +11 -11
  32. package/runtime/knowledge/docs/core/composables/useConnectionStatus/useConnectionStatus.docs.md +27 -15
  33. package/runtime/knowledge/docs/core/composables/useDashboard/useDashboard.docs.md +30 -30
  34. package/runtime/knowledge/docs/core/composables/useDynamicProperties/useDynamicProperties.docs.md +34 -36
  35. package/runtime/knowledge/docs/core/composables/useErrorHandler/useErrorHandler.docs.md +44 -23
  36. package/runtime/knowledge/docs/core/composables/useFunctions/useFunctions.docs.md +14 -11
  37. package/runtime/knowledge/docs/core/composables/useKeyboardNavigation/useKeyboardNavigation.docs.md +47 -38
  38. package/runtime/knowledge/docs/core/composables/useLanguages/useLanguages.docs.md +37 -28
  39. package/runtime/knowledge/docs/core/composables/useLoading/useLoading.docs.md +23 -17
  40. package/runtime/knowledge/docs/core/composables/useMenuExpanded/index.docs.md +9 -9
  41. package/runtime/knowledge/docs/core/composables/useMenuService/useMenuService.docs.md +42 -42
  42. package/runtime/knowledge/docs/core/composables/useModificationTracker/useModificationTracker.docs.md +22 -12
  43. package/runtime/knowledge/docs/core/composables/useNotifications/useNotifications.docs.md +33 -41
  44. package/runtime/knowledge/docs/core/composables/usePermissions/usePermissions.docs.md +16 -16
  45. package/runtime/knowledge/docs/core/composables/usePlatformLocaleSync/usePlatformLocaleSync.docs.md +28 -0
  46. package/runtime/knowledge/docs/core/composables/usePopup/usePopup.docs.md +32 -24
  47. package/runtime/knowledge/docs/core/composables/useResponsive/useResponsive.docs.md +32 -11
  48. package/runtime/knowledge/docs/core/composables/useSettings/useSettings.docs.md +22 -13
  49. package/runtime/knowledge/docs/core/composables/useSettingsMenu/useSettingsMenu.docs.md +7 -7
  50. package/runtime/knowledge/docs/core/composables/useSidebarState/useSidebarState.docs.md +32 -24
  51. package/runtime/knowledge/docs/core/composables/useSlowNetworkDetection/useSlowNetworkDetection.docs.md +21 -17
  52. package/runtime/knowledge/docs/core/composables/useTheme/useTheme.docs.md +24 -24
  53. package/runtime/knowledge/docs/core/composables/useToolbar/useToolbar.docs.md +28 -31
  54. package/runtime/knowledge/docs/core/composables/useUser/useUser.docs.md +43 -24
  55. package/runtime/knowledge/docs/core/composables/useUserManagement/useUserManagement.docs.md +68 -48
  56. package/runtime/knowledge/docs/core/composables/useWebVitals/useWebVitals.docs.md +19 -19
  57. package/runtime/knowledge/docs/core/composables/useWidgets/useWidgets.docs.md +42 -47
  58. package/runtime/knowledge/docs/core/directives/autofocus/autofocus.docs.md +10 -4
  59. package/runtime/knowledge/docs/core/directives/loading/loading.docs.md +35 -20
  60. package/runtime/knowledge/docs/core/notifications/notifications.docs.md +36 -35
  61. package/runtime/knowledge/docs/core/plugins/ai-agent/ai-agent.docs.md +38 -38
  62. package/runtime/knowledge/docs/core/plugins/extension-points/extension-points.docs.md +79 -62
  63. package/runtime/knowledge/docs/core/plugins/global-error-handler/global-error-handler.docs.md +10 -10
  64. package/runtime/knowledge/docs/core/plugins/i18n/i18n.docs.md +21 -23
  65. package/runtime/knowledge/docs/core/plugins/modularity/modularity.docs.md +91 -83
  66. package/runtime/knowledge/docs/core/plugins/permissions/permissions.docs.md +10 -16
  67. package/runtime/knowledge/docs/core/plugins/signalR/signalR.docs.md +9 -9
  68. package/runtime/knowledge/docs/core/plugins/validation/validation.docs.md +65 -22
  69. package/runtime/knowledge/docs/core/services/services.docs.md +19 -22
  70. package/runtime/knowledge/docs/core/types/types.docs.md +40 -40
  71. package/runtime/knowledge/docs/core/utilities/date/date-utilities.docs.md +27 -27
  72. package/runtime/knowledge/docs/core/utilities/shared-utilities.docs.md +23 -23
  73. package/runtime/knowledge/docs/core/utilities/thumbnail/thumbnail.docs.md +22 -25
  74. package/runtime/knowledge/docs/core/utilities/utilities.docs.md +64 -64
  75. package/runtime/knowledge/docs/injection-keys.docs.md +52 -51
  76. package/runtime/knowledge/docs/modules/assets-manager/assets-manager.docs.md +9 -9
  77. package/runtime/knowledge/docs/shell/_internal/popup/common/popup-common.docs.md +23 -43
  78. package/runtime/knowledge/docs/shell/auth/ChangePasswordPage/change-password-page.docs.md +5 -5
  79. package/runtime/knowledge/docs/shell/auth/ForgotPasswordPage/forgot-password-page.docs.md +5 -5
  80. package/runtime/knowledge/docs/shell/auth/InvitePage/invite-page.docs.md +8 -7
  81. package/runtime/knowledge/docs/shell/auth/LoginPage/login-page.docs.md +7 -7
  82. package/runtime/knowledge/docs/shell/auth/ResetPasswordPage/reset-password-page.docs.md +8 -7
  83. package/runtime/knowledge/docs/shell/auth/sign-in/sign-in.docs.md +29 -13
  84. package/runtime/knowledge/docs/shell/components/change-password/change-password.docs.md +13 -16
  85. package/runtime/knowledge/docs/shell/components/change-password-button/change-password-button.docs.md +1 -7
  86. package/runtime/knowledge/docs/shell/components/error-interceptor/error-interceptor.docs.md +5 -5
  87. package/runtime/knowledge/docs/shell/components/language-selector/language-selector.docs.md +1 -1
  88. package/runtime/knowledge/docs/shell/components/logout-button/logout-button.docs.md +1 -1
  89. package/runtime/knowledge/docs/shell/components/notification-template/notification-template.docs.md +17 -9
  90. package/runtime/knowledge/docs/shell/components/settings-menu/settings-menu.docs.md +11 -17
  91. package/runtime/knowledge/docs/shell/components/settings-menu-item/settings-menu-item.docs.md +34 -65
  92. package/runtime/knowledge/docs/shell/components/sidebar/sidebar.docs.md +16 -26
  93. package/runtime/knowledge/docs/shell/components/theme-selector/theme-selector.docs.md +2 -2
  94. package/runtime/knowledge/docs/shell/components/user-dropdown-button/user-dropdown-button.docs.md +7 -9
  95. package/runtime/knowledge/docs/shell/dashboard/dashboard-charts/dashboard-charts.docs.md +30 -40
  96. package/runtime/knowledge/docs/shell/dashboard/dashboard-widget-card/dashboard-widget-card.docs.md +26 -19
  97. package/runtime/knowledge/docs/shell/dashboard/draggable-dashboard/draggable-dashboard.docs.md +15 -12
  98. package/runtime/knowledge/docs/ui/components/atoms/vc-badge/vc-badge.docs.md +15 -26
  99. package/runtime/knowledge/docs/ui/components/atoms/vc-banner/vc-banner.docs.md +21 -19
  100. package/runtime/knowledge/docs/ui/components/atoms/vc-button/vc-button.docs.md +83 -67
  101. package/runtime/knowledge/docs/ui/components/atoms/vc-card/vc-card.docs.md +100 -59
  102. package/runtime/knowledge/docs/ui/components/atoms/vc-col/vc-col.docs.md +28 -11
  103. package/runtime/knowledge/docs/ui/components/atoms/vc-container/vc-container.docs.md +20 -17
  104. package/runtime/knowledge/docs/ui/components/atoms/vc-hint/vc-hint.docs.md +26 -17
  105. package/runtime/knowledge/docs/ui/components/atoms/vc-icon/vc-icon.docs.md +30 -32
  106. package/runtime/knowledge/docs/ui/components/atoms/vc-image/vc-image.docs.md +25 -48
  107. package/runtime/knowledge/docs/ui/components/atoms/vc-label/vc-label.docs.md +29 -24
  108. package/runtime/knowledge/docs/ui/components/atoms/vc-link/vc-link.docs.md +23 -15
  109. package/runtime/knowledge/docs/ui/components/atoms/vc-loading/vc-loading.docs.md +22 -13
  110. package/runtime/knowledge/docs/ui/components/atoms/vc-progress/vc-progress.docs.md +33 -18
  111. package/runtime/knowledge/docs/ui/components/atoms/vc-row/vc-row.docs.md +56 -15
  112. package/runtime/knowledge/docs/ui/components/atoms/vc-scrollable-container/vc-scrollable-container.docs.md +28 -15
  113. package/runtime/knowledge/docs/ui/components/atoms/vc-skeleton/vc-skeleton.docs.md +40 -20
  114. package/runtime/knowledge/docs/ui/components/atoms/vc-status/vc-status.docs.md +25 -14
  115. package/runtime/knowledge/docs/ui/components/atoms/vc-status-icon/vc-status-icon.docs.md +40 -14
  116. package/runtime/knowledge/docs/ui/components/atoms/vc-tooltip/vc-tooltip.docs.md +54 -42
  117. package/runtime/knowledge/docs/ui/components/atoms/vc-video/vc-video.docs.md +17 -17
  118. package/runtime/knowledge/docs/ui/components/atoms/vc-widget/vc-widget.docs.md +21 -21
  119. package/runtime/knowledge/docs/ui/components/molecules/multilanguage-selector/multilanguage-selector.docs.md +23 -10
  120. package/runtime/knowledge/docs/ui/components/molecules/vc-accordion/vc-accordion.docs.md +55 -44
  121. package/runtime/knowledge/docs/ui/components/molecules/vc-breadcrumbs/vc-breadcrumbs.docs.md +23 -20
  122. package/runtime/knowledge/docs/ui/components/molecules/vc-checkbox/vc-checkbox.docs.md +92 -65
  123. package/runtime/knowledge/docs/ui/components/molecules/vc-checkbox-group/vc-checkbox-group.docs.md +22 -36
  124. package/runtime/knowledge/docs/ui/components/molecules/vc-color-input/vc-color-input.docs.md +65 -23
  125. package/runtime/knowledge/docs/ui/components/molecules/vc-date-picker/vc-date-picker.docs.md +52 -73
  126. package/runtime/knowledge/docs/ui/components/molecules/vc-dropdown/vc-dropdown.docs.md +91 -85
  127. package/runtime/knowledge/docs/ui/components/molecules/vc-dropdown-panel/vc-dropdown-panel.docs.md +38 -42
  128. package/runtime/knowledge/docs/ui/components/molecules/vc-editor/vc-editor.docs.md +56 -73
  129. package/runtime/knowledge/docs/ui/components/molecules/vc-field/vc-field.docs.md +61 -27
  130. package/runtime/knowledge/docs/ui/components/molecules/vc-file-upload/vc-file-upload.docs.md +42 -50
  131. package/runtime/knowledge/docs/ui/components/molecules/vc-form/vc-form.docs.md +35 -64
  132. package/runtime/knowledge/docs/ui/components/molecules/vc-image-tile/vc-image-tile.docs.md +38 -41
  133. package/runtime/knowledge/docs/ui/components/molecules/vc-input/vc-input.docs.md +109 -131
  134. package/runtime/knowledge/docs/ui/components/molecules/vc-input-currency/vc-input-currency.docs.md +47 -88
  135. package/runtime/knowledge/docs/ui/components/molecules/vc-input-dropdown/vc-input-dropdown.docs.md +50 -64
  136. package/runtime/knowledge/docs/ui/components/molecules/vc-input-group/vc-input-group.docs.md +29 -24
  137. package/runtime/knowledge/docs/ui/components/molecules/vc-menu/vc-menu.docs.md +32 -28
  138. package/runtime/knowledge/docs/ui/components/molecules/vc-multivalue/vc-multivalue.docs.md +57 -65
  139. package/runtime/knowledge/docs/ui/components/molecules/vc-pagination/vc-pagination.docs.md +28 -26
  140. package/runtime/knowledge/docs/ui/components/molecules/vc-radio-button/vc-radio-button.docs.md +55 -20
  141. package/runtime/knowledge/docs/ui/components/molecules/vc-radio-group/vc-radio-group.docs.md +21 -35
  142. package/runtime/knowledge/docs/ui/components/molecules/vc-rating/vc-rating.docs.md +38 -33
  143. package/runtime/knowledge/docs/ui/components/molecules/vc-select/vc-select.docs.md +72 -83
  144. package/runtime/knowledge/docs/ui/components/molecules/vc-slider/vc-slider.docs.md +21 -16
  145. package/runtime/knowledge/docs/ui/components/molecules/vc-switch/vc-switch.docs.md +55 -64
  146. package/runtime/knowledge/docs/ui/components/molecules/vc-textarea/vc-textarea.docs.md +51 -70
  147. package/runtime/knowledge/docs/ui/components/molecules/vc-toast/vc-toast.docs.md +58 -57
  148. package/runtime/knowledge/docs/ui/components/organisms/vc-app/vc-app.docs.md +49 -26
  149. package/runtime/knowledge/docs/ui/components/organisms/vc-auth-layout/vc-auth-layout.docs.md +82 -28
  150. package/runtime/knowledge/docs/ui/components/organisms/vc-blade/vc-blade.docs.md +90 -75
  151. package/runtime/knowledge/docs/ui/components/organisms/vc-data-table/composables/table-composables.docs.md +99 -48
  152. package/runtime/knowledge/docs/ui/components/organisms/vc-data-table/vc-data-table.docs.md +548 -367
  153. package/runtime/knowledge/docs/ui/components/organisms/vc-dynamic-property/vc-dynamic-property.docs.md +35 -52
  154. package/runtime/knowledge/docs/ui/components/organisms/vc-gallery/vc-gallery.docs.md +33 -62
  155. package/runtime/knowledge/docs/ui/components/organisms/vc-image-upload/vc-image-upload.docs.md +17 -23
  156. package/runtime/knowledge/docs/ui/components/organisms/vc-popup/vc-popup.docs.md +109 -68
  157. package/runtime/knowledge/docs/ui/components/organisms/vc-sidebar/vc-sidebar.docs.md +82 -44
  158. package/runtime/knowledge/docs/ui/composables/ui-composables.docs.md +8 -8
  159. package/runtime/knowledge/docs/ui/composables/useDataTablePagination.docs.md +164 -0
  160. package/runtime/knowledge/docs/ui/composables/useDataTableSort.docs.md +34 -26
  161. package/runtime/knowledge/docs/ui/composables/useTableSelection.docs.md +48 -40
  162. package/runtime/knowledge/docs/ui/composables/useTableSort.docs.md +30 -17
  163. package/runtime/knowledge/docs/ui/types/ui-types.docs.md +40 -29
  164. package/runtime/knowledge/examples/offers-module.md +15 -13
  165. package/runtime/knowledge/examples/team-module.md +82 -119
  166. package/runtime/knowledge/examples/videos-module.md +44 -17
  167. package/runtime/knowledge/index.md +22 -0
  168. package/runtime/knowledge/migration-prompts/blade-form-migration.md +17 -8
  169. package/runtime/knowledge/migration-prompts/blade-props-migration.md +1 -2
  170. package/runtime/knowledge/migration-prompts/datatable-migration.md +801 -0
  171. package/runtime/knowledge/migration-prompts/icon-migration.md +97 -0
  172. package/runtime/knowledge/migration-prompts/manual-migration-audit.md +117 -0
  173. package/runtime/knowledge/migration-prompts/notifications-migration.md +8 -3
  174. package/runtime/knowledge/migration-prompts/nswag-migration.md +25 -29
  175. package/runtime/knowledge/migration-prompts/use-assets-migration.md +164 -0
  176. package/runtime/knowledge/migration-prompts/use-data-table-pagination-migration.md +176 -0
  177. package/runtime/knowledge/migration-prompts/widgets-migration.md +48 -27
  178. package/runtime/knowledge/patterns/assets-management.md +20 -20
  179. package/runtime/knowledge/patterns/blade-navigation.md +7 -14
  180. package/runtime/knowledge/patterns/blade-widget.md +19 -17
  181. package/runtime/knowledge/patterns/child-blade-flow.md +19 -7
  182. package/runtime/knowledge/patterns/composable-details.md +20 -50
  183. package/runtime/knowledge/patterns/composable-list.md +43 -31
  184. package/runtime/knowledge/patterns/dashboard-widget.md +14 -16
  185. package/runtime/knowledge/patterns/datatable-pattern.md +521 -0
  186. package/runtime/knowledge/patterns/details-blade-pattern.md +78 -116
  187. package/runtime/knowledge/patterns/extension-points-usage.md +53 -44
  188. package/runtime/knowledge/patterns/form-validation.md +28 -64
  189. package/runtime/knowledge/patterns/list-blade-pattern.md +33 -21
  190. package/runtime/knowledge/patterns/module-structure.md +7 -1
  191. package/runtime/knowledge/patterns/multilanguage-fields.md +8 -14
  192. package/runtime/knowledge/patterns/notification-template.md +21 -14
  193. package/runtime/knowledge/patterns/signalr-notifications.md +30 -32
  194. package/runtime/knowledge/patterns/toolbar-pattern.md +18 -20
  195. package/runtime/vc-app.md +241 -62
@@ -18,11 +18,11 @@ The charts are designed to work inside `DashboardWidgetCard` components, automat
18
18
 
19
19
  ## Components
20
20
 
21
- | Component | Description |
22
- |-----------|-------------|
23
- | `DashboardLineChart` | Time-series or continuous data with connected points |
24
- | `DashboardBarChart` | Grouped or single bar charts for categorical comparison |
25
- | `DashboardDonutChart` | Circular chart for part-to-whole relationships |
21
+ | Component | Description |
22
+ | --------------------- | ------------------------------------------------------- |
23
+ | `DashboardLineChart` | Time-series or continuous data with connected points |
24
+ | `DashboardBarChart` | Grouped or single bar charts for categorical comparison |
25
+ | `DashboardDonutChart` | Circular chart for part-to-whole relationships |
26
26
 
27
27
  ## Basic Usage
28
28
 
@@ -54,35 +54,38 @@ const config: ChartConfig = {
54
54
 
55
55
  ## Key Props (shared across chart types)
56
56
 
57
- | Prop | Type | Default | Description |
58
- |------|------|---------|-------------|
59
- | `data` | `T[]` | -- | Array of data points |
60
- | `config` | `ChartConfig` | -- | Series color and label configuration |
61
- | `xKey` | `keyof T` | -- | Key for x-axis values (line/bar) |
62
- | `yKeys` | `(keyof T)[]` | -- | Keys for y-axis series (line/bar) |
63
- | `showTooltip` | `boolean` | `true` | Enable hover tooltips |
64
- | `showLegend` | `boolean` | `true` | Show color legend below chart |
65
- | `rangeStart` | `number` | `undefined` | Filter data from this x value |
66
- | `rangeEnd` | `number` | `undefined` | Filter data up to this x value |
57
+ | Prop | Type | Default | Description |
58
+ | ------------- | ------------- | ----------- | ------------------------------------ |
59
+ | `data` | `T[]` | -- | Array of data points |
60
+ | `config` | `ChartConfig` | -- | Series color and label configuration |
61
+ | `xKey` | `keyof T` | -- | Key for x-axis values (line/bar) |
62
+ | `yKeys` | `(keyof T)[]` | -- | Keys for y-axis series (line/bar) |
63
+ | `showTooltip` | `boolean` | `true` | Enable hover tooltips |
64
+ | `showLegend` | `boolean` | `true` | Show color legend below chart |
65
+ | `rangeStart` | `number` | `undefined` | Filter data from this x value |
66
+ | `rangeEnd` | `number` | `undefined` | Filter data up to this x value |
67
67
 
68
68
  ### Donut-specific props
69
69
 
70
- | Prop | Type | Default | Description |
71
- |------|------|---------|-------------|
72
- | `valueKey` | `keyof T` | -- | Key for segment values |
73
- | `centralLabel` | `string` | `undefined` | Large text in donut center |
74
- | `centralSubLabel` | `string` | `undefined` | Small text below central label |
75
- | `arcWidth` | `number` | `60` | Donut arc thickness |
70
+ | Prop | Type | Default | Description |
71
+ | ----------------- | --------- | ----------- | ------------------------------ |
72
+ | `valueKey` | `keyof T` | -- | Key for segment values |
73
+ | `centralLabel` | `string` | `undefined` | Large text in donut center |
74
+ | `centralSubLabel` | `string` | `undefined` | Small text below central label |
75
+ | `arcWidth` | `number` | `60` | Donut arc thickness |
76
76
 
77
77
  ## ChartConfig Type
78
78
 
79
79
  The `ChartConfig` object maps data field names to their visual configuration:
80
80
 
81
81
  ```typescript
82
- type ChartConfig = Record<string, {
83
- label: string; // Display name in legend and tooltip
84
- color: string; // CSS color value (hex, var(), rgb, etc.)
85
- }>;
82
+ type ChartConfig = Record<
83
+ string,
84
+ {
85
+ label: string; // Display name in legend and tooltip
86
+ color: string; // CSS color value (hex, var(), rgb, etc.)
87
+ }
88
+ >;
86
89
  ```
87
90
 
88
91
  ## Common Patterns
@@ -117,26 +120,13 @@ const salesConfig: ChartConfig = {
117
120
  ### Bar Chart with Formatted Axes
118
121
 
119
122
  ```vue
120
- <DashboardBarChart
121
- :data="quarterlyData"
122
- :config="quarterConfig"
123
- x-key="quarter"
124
- :y-keys="['electronics', 'clothing']"
125
- :x-tick-format="(v) => ['Q1', 'Q2', 'Q3', 'Q4'][v]"
126
- :y-tick-format="(v) => '$' + (v / 1000).toFixed(0) + 'k'"
127
- />
123
+ <DashboardBarChart :data="quarterlyData" :config="quarterConfig" x-key="quarter" :y-keys="['electronics', 'clothing']" :x-tick-format="(v) => ['Q1', 'Q2', 'Q3', 'Q4'][v]" :y-tick-format="(v) => '$' + (v / 1000).toFixed(0) + 'k'" />
128
124
  ```
129
125
 
130
126
  ### Donut Chart
131
127
 
132
128
  ```vue
133
- <DashboardDonutChart
134
- :data="categoryData"
135
- :config="categoryConfig"
136
- value-key="count"
137
- central-label="1,000"
138
- central-sub-label="Total Products"
139
- />
129
+ <DashboardDonutChart :data="categoryData" :config="categoryConfig" value-key="count" central-label="1,000" central-sub-label="Total Products" />
140
130
  ```
141
131
 
142
132
  ### Chart Inside a Widget Card
@@ -24,7 +24,10 @@ import { DashboardWidgetCard } from "@vc-shell/framework";
24
24
  </script>
25
25
 
26
26
  <template>
27
- <DashboardWidgetCard header="Products" icon="lucide-package-open">
27
+ <DashboardWidgetCard
28
+ header="Products"
29
+ icon="lucide-package-open"
30
+ >
28
31
  <template #content>
29
32
  <div class="tw-p-4">Widget body content here</div>
30
33
  </template>
@@ -34,21 +37,21 @@ import { DashboardWidgetCard } from "@vc-shell/framework";
34
37
 
35
38
  ## Key Props
36
39
 
37
- | Prop | Type | Default | Description |
38
- |------|------|---------|-------------|
39
- | `header` | `string` | `undefined` | Card title text |
40
- | `icon` | `string` | `undefined` | Icon displayed next to the header |
41
- | `loading` | `boolean` | `false` | Shows a loading overlay on the body |
40
+ | Prop | Type | Default | Description |
41
+ | --------- | --------- | ----------- | ----------------------------------- |
42
+ | `header` | `string` | `undefined` | Card title text |
43
+ | `icon` | `string` | `undefined` | Icon displayed next to the header |
44
+ | `loading` | `boolean` | `false` | Shows a loading overlay on the body |
42
45
 
43
46
  ## Slots
44
47
 
45
- | Slot | Description |
46
- |------|-------------|
47
- | `header` | Override the entire header area (replaces default icon + title) |
48
- | `actions` | Action buttons in the header row (right side) |
49
- | `stats` | KPI stat items below the header |
50
- | `content` | Main body content |
51
- | `footer` | Footer area with links or actions |
48
+ | Slot | Description |
49
+ | --------- | --------------------------------------------------------------- |
50
+ | `header` | Override the entire header area (replaces default icon + title) |
51
+ | `actions` | Action buttons in the header row (right side) |
52
+ | `stats` | KPI stat items below the header |
53
+ | `content` | Main body content |
54
+ | `footer` | Footer area with links or actions |
52
55
 
53
56
  ## Common Patterns
54
57
 
@@ -134,7 +137,11 @@ onMounted(() => loadData());
134
137
  </script>
135
138
 
136
139
  <template>
137
- <DashboardWidgetCard header="System Status" icon="lucide-activity" :loading="loading">
140
+ <DashboardWidgetCard
141
+ header="System Status"
142
+ icon="lucide-activity"
143
+ :loading="loading"
144
+ >
138
145
  <template #content>
139
146
  <!-- Content shown when not loading -->
140
147
  </template>
@@ -164,11 +171,11 @@ dashboard.register({
164
171
 
165
172
  ## Companion Components
166
173
 
167
- | Component | Description |
168
- |-----------|-------------|
169
- | `DashboardStatItem` | Single KPI stat with value, label, and optional color variant |
170
- | `DashboardFeedList` | Scrollable list container for feed rows |
171
- | `DashboardFeedRow` | Individual feed item with icon, title, subtitle, and meta slots |
174
+ | Component | Description |
175
+ | ------------------- | --------------------------------------------------------------- |
176
+ | `DashboardStatItem` | Single KPI stat with value, label, and optional color variant |
177
+ | `DashboardFeedList` | Scrollable list container for feed rows |
178
+ | `DashboardFeedRow` | Individual feed item with icon, title, subtitle, and meta slots |
172
179
 
173
180
  ## Tip: Set a Minimum Height
174
181
 
@@ -40,20 +40,20 @@ dashboard.registerWidget({
40
40
 
41
41
  ## Key Props
42
42
 
43
- | Prop | Type | Default | Description |
44
- |------|------|---------|-------------|
45
- | `showDragHandles` | `boolean` | `false` | Shows visible drag handle icons on widgets |
46
- | `resizable` | `boolean` | `false` | Enables widget resize handles |
47
- | `ariaLabel` | `string` | `"Dashboard widgets..."` | Accessible label for the grid container |
43
+ | Prop | Type | Default | Description |
44
+ | ----------------- | --------- | ------------------------ | ------------------------------------------ |
45
+ | `showDragHandles` | `boolean` | `false` | Shows visible drag handle icons on widgets |
46
+ | `resizable` | `boolean` | `false` | Enables widget resize handles |
47
+ | `ariaLabel` | `string` | `"Dashboard widgets..."` | Accessible label for the grid container |
48
48
 
49
49
  ## Exposed Methods
50
50
 
51
- | Method | Description |
52
- |--------|-------------|
53
- | `rearrangeWidgets()` | Re-layout all widgets to fill gaps |
54
- | `recalculateLayout()` | Recalculate grid dimensions |
55
- | `saveLayout()` | Persist current layout to localStorage |
56
- | `useBuiltInPositions()` | Reset to default widget positions |
51
+ | Method | Description |
52
+ | ----------------------- | -------------------------------------- |
53
+ | `rearrangeWidgets()` | Re-layout all widgets to fill gaps |
54
+ | `recalculateLayout()` | Recalculate grid dimensions |
55
+ | `saveLayout()` | Persist current layout to localStorage |
56
+ | `useBuiltInPositions()` | Reset to default widget positions |
57
57
 
58
58
  ## Recipe: Registering Dashboard Widgets in a Module
59
59
 
@@ -107,7 +107,10 @@ function resetLayout() {
107
107
  <template>
108
108
  <div>
109
109
  <button @click="resetLayout">Reset Layout</button>
110
- <DraggableDashboard ref="dashboardRef" :resizable="true" />
110
+ <DraggableDashboard
111
+ ref="dashboardRef"
112
+ :resizable="true"
113
+ />
111
114
  </div>
112
115
  </template>
113
116
  ```
@@ -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 | 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 |
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 | 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 |
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 | Description |
35
- |------|-------------|
36
- | `title` | Bold title text above the body content |
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 label="Name" v-model="product.name" :disabled="product.isDiscontinued" />
116
- <VcTextarea label="Notes" v-model="product.notes" />
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 | 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>` |
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 variant="primary" @click="handleSave">Save Changes</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 | Use Case | Text Color |
45
- |---------|----------|------------|
46
- | `primary` | Main CTA -- save, submit, confirm | White |
47
- | `danger` | Destructive actions -- delete, remove | White |
48
- | `warning` | Caution actions -- override, force | Dark (for contrast) |
49
- | `success` | Positive actions -- approve, publish | White |
50
- | `info` | Informational actions -- details, help | White |
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 | Use Case | Hover Behavior |
62
- |---------|----------|----------------|
63
- | `secondary` | Cancel, dismiss, secondary actions | Background changes to primary-50 |
64
- | `outline` | Alternative actions alongside primary | Background changes to primary-50, border darkens |
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 | Hover Behavior |
76
- |---------|----------|----------------|
77
- | `ghost` | Toolbar icons, inline actions | Light background tint |
78
- | `link` | Text-like navigation, inline links | Underline on text |
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 | Height | Padding | Typical Use |
93
- |------|--------|---------|-------------|
94
- | `sm` | 32px | 12px horizontal | Compact form actions, table footers |
95
- | `default` | 36px | 16px horizontal, 8px vertical | Standard blade actions |
96
- | `lg` | 40px | 24px horizontal | Prominent CTAs, dialog actions |
97
- | `icon` | 36x36px | 0 (square) | Toolbar icon buttons |
98
- | `icon-sm` | 24x24px | 0 (square) | Table cell actions, inline controls |
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 variant="secondary" @click="cancel">Cancel</VcButton>
180
- <VcButton variant="primary" :loading="isSaving" @click="save">
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 variant="outline" @click="dismiss">Cancel</VcButton>
193
- <VcButton variant="danger" :loading="isDeleting" icon="lucide-trash-2" @click="confirmDelete">
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 | Type | Default | Description |
235
- |------|------|---------|-------------|
236
- | `variant` | `"primary" \| "secondary" \| "danger" \| "warning" \| "success" \| "info" \| "outline" \| "ghost" \| "link"` | `"primary"` | Visual style variant |
237
- | `size` | `"sm" \| "default" \| "lg" \| "icon" \| "icon-sm"` | `"default"` | Button size |
238
- | `icon` | `string \| Component` | -- | Icon identifier or Vue component |
239
- | `iconClass` | `string` | -- | Additional CSS class for the icon element |
240
- | `iconSize` | `IconSize` | `"s"` | Size of the icon (`"xs"`, `"s"`, `"m"`, `"l"`, `"xl"`, `"xxl"`) |
241
- | `loading` | `boolean` | `false` | Shows spinner, disables interaction, sets `aria-busy` |
242
- | `disabled` | `boolean` | `false` | Disables the button |
243
- | `selected` | `boolean` | `false` | Applies selected/active visual state, sets `aria-pressed` |
244
- | `text` | `boolean` | `false` | Renders as borderless text in the variant's color |
245
- | `type` | `"button" \| "submit" \| "reset"` | `"button"` | HTML button type |
246
- | `ariaLabel` | `string` | -- | Accessible label (required for icon-only buttons) |
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 | Payload | Description |
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 | Description |
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 | Example | Description |
265
- |---------|---------|-------------|
266
- | `--button-{variant}-background-color` | `--button-primary-background-color` | Normal background |
267
- | `--button-{variant}-background-color-hover` | `--button-primary-background-color-hover` | Hover background |
268
- | `--button-{variant}-text-color` | `--button-primary-text-color` | Normal text color |
269
- | `--button-{variant}-border-color` | `--button-primary-border-color` | Normal border color |
270
- | `--button-border-radius` | `6px` | Corner radius for all buttons |
271
- | `--button-focus-ring-color` | `var(--primary-300)` | Focus ring color |
272
- | `--button-focus-ring-width` | `2px` | Focus ring thickness |
273
- | `--button-{size}-height` | `--button-default-height: 36px` | Height per size |
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