@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,7 +18,10 @@ A toggle switch component for binary on/off choices. Renders as a sliding track
18
18
 
19
19
  ```vue
20
20
  <template>
21
- <VcSwitch v-model="isEnabled" label="Enable feature" />
21
+ <VcSwitch
22
+ v-model="isEnabled"
23
+ label="Enable feature"
24
+ />
22
25
  </template>
23
26
 
24
27
  <script setup lang="ts">
@@ -36,12 +39,7 @@ const isEnabled = ref(false);
36
39
  The `label` prop renders text above the switch. Use `hint` for helper text below the track, and `labelTooltip` for an info icon on the label itself.
37
40
 
38
41
  ```vue
39
- <VcSwitch
40
- v-model="settings.darkMode"
41
- label="Dark mode"
42
- hint="Changes take effect immediately"
43
- label-tooltip="Applies to the admin panel only"
44
- />
42
+ <VcSwitch v-model="settings.darkMode" label="Dark mode" hint="Changes take effect immediately" label-tooltip="Applies to the admin panel only" />
45
43
  ```
46
44
 
47
45
  > **Important:** The `tooltip` prop is deprecated. It previously rendered as hint text below the switch (not as a true tooltip). Use `hint` for text below the switch, or `labelTooltip` for the label info icon. A console warning is emitted in development mode if `tooltip` is used.
@@ -52,12 +50,7 @@ By default, `v-model` maps `true` to the checked (on) state and `false` to unche
52
50
 
53
51
  ```vue
54
52
  <!-- Data model: isHidden=true means the item is NOT visible -->
55
- <VcSwitch
56
- v-model="product.isHidden"
57
- label="Visible on storefront"
58
- :true-value="false"
59
- :false-value="true"
60
- />
53
+ <VcSwitch v-model="product.isHidden" label="Visible on storefront" :true-value="false" :false-value="true" />
61
54
  ```
62
55
 
63
56
  When `trueValue` is `false`, the switch shows as "on" when `modelValue` is `false`, which lets you present affirmative labels ("Visible") even when the underlying boolean is negative ("isHidden").
@@ -109,12 +102,7 @@ const form = reactive({
109
102
  <VcSwitch :model-value="false" label="Unavailable feature" disabled />
110
103
 
111
104
  <!-- Error state -->
112
- <VcSwitch
113
- v-model="value"
114
- label="Accept terms"
115
- :error="true"
116
- error-message="You must accept the terms"
117
- />
105
+ <VcSwitch v-model="value" label="Accept terms" :error="true" error-message="You must accept the terms" />
118
106
  ```
119
107
 
120
108
  ### In a Settings Form
@@ -127,14 +115,23 @@ Switches work well stacked in settings panels:
127
115
  <VcRow>
128
116
  <VcCol size="6">
129
117
  <div class="tw-space-y-4">
130
- <VcSwitch v-model="settings.emailNotifications" label="Email notifications" />
131
- <VcSwitch v-model="settings.pushNotifications" label="Push notifications" />
118
+ <VcSwitch
119
+ v-model="settings.emailNotifications"
120
+ label="Email notifications"
121
+ />
122
+ <VcSwitch
123
+ v-model="settings.pushNotifications"
124
+ label="Push notifications"
125
+ />
132
126
  <VcSwitch
133
127
  v-model="settings.marketingEmails"
134
128
  label="Marketing emails"
135
129
  hint="Receive news about promotions and updates"
136
130
  />
137
- <VcSwitch v-model="settings.twoFactorAuth" label="Two-factor authentication" />
131
+ <VcSwitch
132
+ v-model="settings.twoFactorAuth"
133
+ label="Two-factor authentication"
134
+ />
138
135
  </div>
139
136
  </VcCol>
140
137
  </VcRow>
@@ -179,12 +176,7 @@ Use a switch to show or hide additional fields dynamically:
179
176
  ```vue
180
177
  <VcSwitch v-model="hasExpiration" label="Set expiration date" />
181
178
 
182
- <VcDatePicker
183
- v-if="hasExpiration"
184
- v-model="expirationDate"
185
- label="Expiration date"
186
- required
187
- />
179
+ <VcDatePicker v-if="hasExpiration" v-model="expirationDate" label="Expiration date" required />
188
180
  ```
189
181
 
190
182
  ## Common Mistakes
@@ -235,52 +227,52 @@ const isActive = ref(true);
235
227
 
236
228
  ## Props
237
229
 
238
- | Prop | Type | Default | Description |
239
- |------|------|---------|-------------|
240
- | `modelValue` | `boolean \| undefined` | -- | Bound value via `v-model` |
241
- | `label` | `string` | -- | Label text above the switch |
242
- | `hint` | `string` | -- | Helper text displayed below the switch |
243
- | `labelTooltip` | `string` | -- | Tooltip shown on the label info icon |
244
- | `tooltip` | `string` | -- | **Deprecated.** Use `hint` or `labelTooltip` instead |
245
- | `trueValue` | `boolean` | `true` | Value that represents the checked state |
246
- | `falseValue` | `boolean` | `false` | Value that represents the unchecked state |
247
- | `disabled` | `boolean` | `false` | Disables the switch |
248
- | `required` | `boolean` | `false` | Shows a required indicator on the label |
249
- | `error` | `boolean` | `false` | Enables error styling |
250
- | `errorMessage` | `string` | -- | Error message displayed below the switch |
251
- | `name` | `string` | -- | HTML name attribute for the hidden input |
230
+ | Prop | Type | Default | Description |
231
+ | -------------- | ---------------------- | ------- | ---------------------------------------------------- |
232
+ | `modelValue` | `boolean \| undefined` | -- | Bound value via `v-model` |
233
+ | `label` | `string` | -- | Label text above the switch |
234
+ | `hint` | `string` | -- | Helper text displayed below the switch |
235
+ | `labelTooltip` | `string` | -- | Tooltip shown on the label info icon |
236
+ | `tooltip` | `string` | -- | **Deprecated.** Use `hint` or `labelTooltip` instead |
237
+ | `trueValue` | `boolean` | `true` | Value that represents the checked state |
238
+ | `falseValue` | `boolean` | `false` | Value that represents the unchecked state |
239
+ | `disabled` | `boolean` | `false` | Disables the switch |
240
+ | `required` | `boolean` | `false` | Shows a required indicator on the label |
241
+ | `error` | `boolean` | `false` | Enables error styling |
242
+ | `errorMessage` | `string` | -- | Error message displayed below the switch |
243
+ | `name` | `string` | -- | HTML name attribute for the hidden input |
252
244
 
253
245
  ## Events
254
246
 
255
- | Event | Payload | Description |
256
- |-------|---------|-------------|
247
+ | Event | Payload | Description |
248
+ | ------------------- | ---------------------- | ---------------------------------- |
257
249
  | `update:modelValue` | `boolean \| undefined` | Emitted when the switch is toggled |
258
250
 
259
251
  ## Slots
260
252
 
261
- | Slot | Description |
262
- |------|-------------|
253
+ | Slot | Description |
254
+ | ------- | ----------------------------------------------------------------- |
263
255
  | `error` | Custom error message markup. Replaces the default `VcHint` error. |
264
256
 
265
257
  ## CSS Variables
266
258
 
267
- | Variable | Default | Description |
268
- |----------|---------|-------------|
269
- | `--switch-width` | `36px` | Track width |
270
- | `--switch-height` | `20px` | Track height |
271
- | `--switch-thumb-size` | `16px` | Thumb diameter |
272
- | `--switch-translate` | `16px` | Thumb travel distance when checked |
273
- | `--switch-active-color` | `var(--primary-500)` | Track color when checked |
274
- | `--switch-inactive-color` | `var(--neutrals-300)` | Track color when unchecked |
275
- | `--switch-hover-active-color` | `var(--primary-600)` | Hover track color when checked |
276
- | `--switch-hover-inactive-color` | `var(--neutrals-400)` | Hover track color when unchecked |
277
- | `--switch-thumb-color` | `var(--additional-50)` | Thumb background color |
278
- | `--switch-thumb-shadow` | `0 1px 3px rgba(0,0,0,0.1)` | Thumb box shadow |
279
- | `--switch-focus-ring-color` | `var(--primary-100)` | Focus ring color |
280
- | `--switch-error-ring-color` | `var(--danger-100)` | Error ring color |
281
- | `--switch-error-border-color` | `var(--danger-500)` | Error border color |
282
- | `--switch-border-radius` | `9999px` | Track border radius |
283
- | `--switch-disabled-opacity` | `0.5` | Opacity when disabled |
259
+ | Variable | Default | Description |
260
+ | ------------------------------- | --------------------------- | ---------------------------------- |
261
+ | `--switch-width` | `36px` | Track width |
262
+ | `--switch-height` | `20px` | Track height |
263
+ | `--switch-thumb-size` | `16px` | Thumb diameter |
264
+ | `--switch-translate` | `16px` | Thumb travel distance when checked |
265
+ | `--switch-active-color` | `var(--primary-500)` | Track color when checked |
266
+ | `--switch-inactive-color` | `var(--neutrals-300)` | Track color when unchecked |
267
+ | `--switch-hover-active-color` | `var(--primary-600)` | Hover track color when checked |
268
+ | `--switch-hover-inactive-color` | `var(--neutrals-400)` | Hover track color when unchecked |
269
+ | `--switch-thumb-color` | `var(--additional-50)` | Thumb background color |
270
+ | `--switch-thumb-shadow` | `0 1px 3px rgba(0,0,0,0.1)` | Thumb box shadow |
271
+ | `--switch-focus-ring-color` | `var(--primary-100)` | Focus ring color |
272
+ | `--switch-error-ring-color` | `var(--danger-100)` | Error ring color |
273
+ | `--switch-error-border-color` | `var(--danger-500)` | Error border color |
274
+ | `--switch-border-radius` | `9999px` | Track border radius |
275
+ | `--switch-disabled-opacity` | `0.5` | Opacity when disabled |
284
276
 
285
277
  ## Accessibility
286
278
 
@@ -302,4 +294,3 @@ const isActive = ref(true);
302
294
  ## Skeleton / Loading State
303
295
 
304
296
  When placed inside a `VcBlade` with `loading=true`, the component renders a skeleton placeholder matching its shape — a control indicator and label block. No configuration needed.
305
-
@@ -17,7 +17,11 @@ A multi-line text input field for entering and editing large blocks of text. Pro
17
17
 
18
18
  ```vue
19
19
  <template>
20
- <VcTextarea v-model="description" label="Description" placeholder="Enter description..." />
20
+ <VcTextarea
21
+ v-model="description"
22
+ label="Description"
23
+ placeholder="Enter description..."
24
+ />
21
25
  </template>
22
26
 
23
27
  <script setup lang="ts">
@@ -35,12 +39,7 @@ const description = ref("");
35
39
  Set `maxlength` to restrict the number of characters. The browser enforces the limit natively on the `<textarea>` element.
36
40
 
37
41
  ```vue
38
- <VcTextarea
39
- v-model="bio"
40
- label="Short bio"
41
- maxlength="200"
42
- hint="Maximum 200 characters"
43
- />
42
+ <VcTextarea v-model="bio" label="Short bio" maxlength="200" hint="Maximum 200 characters" />
44
43
  ```
45
44
 
46
45
  > **Tip:** Combine `maxlength` with a `hint` slot to show a live character counter if your form requires one.
@@ -50,12 +49,7 @@ Set `maxlength` to restrict the number of characters. The browser enforces the l
50
49
  Use `hint` for helper text below the field, and `tooltip` for an info icon on the label.
51
50
 
52
51
  ```vue
53
- <VcTextarea
54
- v-model="notes"
55
- label="Internal notes"
56
- hint="These notes are visible only to administrators"
57
- tooltip="Will not appear on the public storefront"
58
- />
52
+ <VcTextarea v-model="notes" label="Internal notes" hint="These notes are visible only to administrators" tooltip="Will not appear on the public storefront" />
59
53
  ```
60
54
 
61
55
  When an error message is present, the hint is automatically hidden and replaced by the error message. The transition between them is animated.
@@ -65,13 +59,7 @@ When an error message is present, the hint is automatically hidden and replaced
65
59
  When editing translatable content, enable the language badge on the label:
66
60
 
67
61
  ```vue
68
- <VcTextarea
69
- v-model="localizedDescription"
70
- label="Description"
71
- multilanguage
72
- current-language="en-US"
73
- placeholder="Enter description in English..."
74
- />
62
+ <VcTextarea v-model="localizedDescription" label="Description" multilanguage current-language="en-US" placeholder="Enter description in English..." />
75
63
  ```
76
64
 
77
65
  ### Validation with vee-validate Field
@@ -119,12 +107,7 @@ const form = reactive({
119
107
  <VcTextarea v-model="value" label="Read-only notes" disabled />
120
108
 
121
109
  <!-- Error state -->
122
- <VcTextarea
123
- v-model="value"
124
- label="Comments"
125
- :error="true"
126
- error-message="Comments must not be empty"
127
- />
110
+ <VcTextarea v-model="value" label="Comments" :error="true" error-message="Comments must not be empty" />
128
111
  ```
129
112
 
130
113
  ## Recipes
@@ -139,7 +122,11 @@ A typical product-editing blade with a description textarea and character limit:
139
122
  <VcContainer>
140
123
  <VcRow>
141
124
  <VcCol size="8">
142
- <VcInput v-model="product.name" label="Product name" required />
125
+ <VcInput
126
+ v-model="product.name"
127
+ label="Product name"
128
+ required
129
+ />
143
130
  </VcCol>
144
131
  </VcRow>
145
132
  <VcRow>
@@ -174,12 +161,7 @@ A typical product-editing blade with a description textarea and character limit:
174
161
  Override the default error rendering with the `error` slot:
175
162
 
176
163
  ```vue
177
- <VcTextarea
178
- v-model="value"
179
- label="JSON payload"
180
- :error="!!jsonError"
181
- :error-message="jsonError"
182
- >
164
+ <VcTextarea v-model="value" label="JSON payload" :error="!!jsonError" :error-message="jsonError">
183
165
  <template #error>
184
166
  <div class="tw-flex tw-items-center tw-gap-1 tw-text-[color:var(--danger-500)] tw-text-xs tw-mt-1">
185
167
  <VcIcon icon="lucide-alert-triangle" size="xs" />
@@ -239,57 +221,57 @@ const description = ref<string>("");
239
221
 
240
222
  ## Props
241
223
 
242
- | Prop | Type | Default | Description |
243
- |------|------|---------|-------------|
244
- | `modelValue` | `string` | `undefined` | Bound value via `v-model` |
245
- | `label` | `string` | -- | Label text displayed above the textarea |
246
- | `placeholder` | `string` | -- | Placeholder text inside the empty textarea |
247
- | `hint` | `string` | -- | Helper text displayed below the field |
248
- | `tooltip` | `string` | -- | Tooltip on the label info icon |
249
- | `maxlength` | `string` | `"1024"` | Maximum character count (native HTML attribute) |
250
- | `required` | `boolean` | `false` | Shows a required indicator on the label |
251
- | `error` | `boolean` | `false` | Enables error styling (red border + ring) |
252
- | `errorMessage` | `string` | -- | Error message text below the field |
253
- | `disabled` | `boolean` | `false` | Disables the textarea |
254
- | `name` | `string` | `"Field"` | HTML name attribute |
255
- | `multilanguage` | `boolean` | `false` | Shows language badge on the label |
256
- | `currentLanguage` | `string` | -- | Language code displayed in the badge |
224
+ | Prop | Type | Default | Description |
225
+ | ----------------- | --------- | ----------- | ----------------------------------------------- |
226
+ | `modelValue` | `string` | `undefined` | Bound value via `v-model` |
227
+ | `label` | `string` | -- | Label text displayed above the textarea |
228
+ | `placeholder` | `string` | -- | Placeholder text inside the empty textarea |
229
+ | `hint` | `string` | -- | Helper text displayed below the field |
230
+ | `tooltip` | `string` | -- | Tooltip on the label info icon |
231
+ | `maxlength` | `string` | `"1024"` | Maximum character count (native HTML attribute) |
232
+ | `required` | `boolean` | `false` | Shows a required indicator on the label |
233
+ | `error` | `boolean` | `false` | Enables error styling (red border + ring) |
234
+ | `errorMessage` | `string` | -- | Error message text below the field |
235
+ | `disabled` | `boolean` | `false` | Disables the textarea |
236
+ | `name` | `string` | `"Field"` | HTML name attribute |
237
+ | `multilanguage` | `boolean` | `false` | Shows language badge on the label |
238
+ | `currentLanguage` | `string` | -- | Language code displayed in the badge |
257
239
 
258
240
  ## Events
259
241
 
260
- | Event | Payload | Description |
261
- |-------|---------|-------------|
242
+ | Event | Payload | Description |
243
+ | ------------------- | --------------------- | -------------------------------- |
262
244
  | `update:modelValue` | `string \| undefined` | Emitted on every input keystroke |
263
245
 
264
246
  ## Slots
265
247
 
266
- | Slot | Description |
267
- |------|-------------|
248
+ | Slot | Description |
249
+ | ------- | ----------------------------------------------------------------- |
268
250
  | `error` | Custom error message markup. Replaces the default `VcHint` error. |
269
- | `hint` | Custom hint text markup. Replaces the default `VcHint`. |
251
+ | `hint` | Custom hint text markup. Replaces the default `VcHint`. |
270
252
 
271
253
  ## Exposed Methods
272
254
 
273
- | Method | Description |
274
- |--------|-------------|
255
+ | Method | Description |
256
+ | --------- | -------------------------------------------------------- |
275
257
  | `focus()` | Programmatically focuses the native `<textarea>` element |
276
258
 
277
259
  ## CSS Variables
278
260
 
279
- | Variable | Default | Description |
280
- |----------|---------|-------------|
281
- | `--textarea-height` | `120px` | Minimum height of the textarea |
282
- | `--textarea-border-color` | `var(--neutrals-300)` | Default border color |
283
- | `--textarea-border-color-focus` | `var(--primary-500)` | Border color on focus |
284
- | `--textarea-border-color-error` | `var(--danger-500)` | Border color in error state |
285
- | `--textarea-border-radius` | `6px` | Corner radius |
286
- | `--textarea-background-color` | `transparent` | Background color |
287
- | `--textarea-text-color` | `var(--neutrals-800)` | Text color |
288
- | `--textarea-text-color-error` | `var(--danger-500)` | Text color in error state |
289
- | `--textarea-placeholder-color` | `var(--neutrals-400)` | Placeholder text color |
290
- | `--textarea-focus-ring-color` | `var(--primary-100)` | Focus ring color |
291
- | `--textarea-error-ring-color` | `var(--danger-100)` | Error ring color |
292
- | `--textarea-disabled-text-color` | `var(--neutrals-500)` | Text color when disabled |
261
+ | Variable | Default | Description |
262
+ | -------------------------------- | --------------------- | ------------------------------ |
263
+ | `--textarea-height` | `120px` | Minimum height of the textarea |
264
+ | `--textarea-border-color` | `var(--neutrals-300)` | Default border color |
265
+ | `--textarea-border-color-focus` | `var(--primary-500)` | Border color on focus |
266
+ | `--textarea-border-color-error` | `var(--danger-500)` | Border color in error state |
267
+ | `--textarea-border-radius` | `6px` | Corner radius |
268
+ | `--textarea-background-color` | `transparent` | Background color |
269
+ | `--textarea-text-color` | `var(--neutrals-800)` | Text color |
270
+ | `--textarea-text-color-error` | `var(--danger-500)` | Text color in error state |
271
+ | `--textarea-placeholder-color` | `var(--neutrals-400)` | Placeholder text color |
272
+ | `--textarea-focus-ring-color` | `var(--primary-100)` | Focus ring color |
273
+ | `--textarea-error-ring-color` | `var(--danger-100)` | Error ring color |
274
+ | `--textarea-disabled-text-color` | `var(--neutrals-500)` | Text color when disabled |
293
275
 
294
276
  ## Accessibility
295
277
 
@@ -311,4 +293,3 @@ const description = ref<string>("");
311
293
  When placed inside a `VcBlade` with `loading=true`, the component automatically renders a skeleton placeholder matching its visual footprint — a label block (when the `label` prop is set) and an input-shaped block. No additional props or configuration needed.
312
294
 
313
295
  This behavior is powered by `BladeLoadingKey` via Vue's provide/inject. The component injects the loading state from the nearest `VcBlade` ancestor.
314
-
@@ -10,6 +10,7 @@ Toast notification component with type-based styling, auto-dismiss timer, swipe-
10
10
  - Rich notifications with custom component content
11
11
 
12
12
  When NOT to use:
13
+
13
14
  - For persistent alerts or banners -- use a dedicated alert component
14
15
  - For inline field validation -- use `VcHint` or form-level error display
15
16
  - For modal confirmations requiring user action -- use a dialog/modal
@@ -48,9 +49,9 @@ notification.error("Network error. Please try again.");
48
49
  notification.warning("You have unsaved changes");
49
50
 
50
51
  // With options
51
- notification("Quick note", { timeout: 2000 }); // Dismiss after 2 seconds
52
- notification("Please wait...", { timeout: false }); // Persistent (no auto-dismiss)
53
- notification("Hover me", { pauseOnHover: true }); // Pause timer on hover (default)
52
+ notification("Quick note", { timeout: 2000 }); // Dismiss after 2 seconds
53
+ notification("Please wait...", { timeout: false }); // Persistent (no auto-dismiss)
54
+ notification("Hover me", { pauseOnHover: true }); // Pause timer on hover (default)
54
55
  ```
55
56
 
56
57
  Each call returns a unique `id` that can be used to update or remove the notification later.
@@ -99,11 +100,11 @@ Available positions: `"top-center"`, `"top-right"`, `"top-left"`, `"bottom-cente
99
100
 
100
101
  Each type displays a distinct icon and colored left accent border.
101
102
 
102
- | Type | Icon | Accent Color | Use Case |
103
- |------|------|-------------|----------|
104
- | `default` | Info circle | `--notification-info` | General information |
105
- | `success` | Check circle | `--notification-success` | Successful operations |
106
- | `error` | Alert circle | `--notification-error` | Failed operations, errors |
103
+ | Type | Icon | Accent Color | Use Case |
104
+ | --------- | -------------- | ------------------------ | ---------------------------- |
105
+ | `default` | Info circle | `--notification-info` | General information |
106
+ | `success` | Check circle | `--notification-success` | Successful operations |
107
+ | `error` | Alert circle | `--notification-error` | Failed operations, errors |
107
108
  | `warning` | Alert triangle | `--notification-warning` | Caution, destructive actions |
108
109
 
109
110
  ### Custom Component Content
@@ -176,11 +177,11 @@ function deleteItem(item: { id: string; name: string }) {
176
177
  softDelete(item.id);
177
178
  const UndoContent = defineComponent({
178
179
  setup() {
179
- const undo = () => { restoreItem(item.id); notification.remove(notifId); };
180
- return () => h("div", { class: "tw-flex tw-gap-3" }, [
181
- h("span", `"${item.name}" deleted.`),
182
- h("button", { class: "tw-text-[color:var(--primary-600)] tw-underline", onClick: undo }, "Undo"),
183
- ]);
180
+ const undo = () => {
181
+ restoreItem(item.id);
182
+ notification.remove(notifId);
183
+ };
184
+ return () => h("div", { class: "tw-flex tw-gap-3" }, [h("span", `"${item.name}" deleted.`), h("button", { class: "tw-text-[color:var(--primary-600)] tw-underline", onClick: undo }, "Undo")]);
184
185
  },
185
186
  });
186
187
  const notifId = notification(UndoContent, { timeout: 8000, pauseOnHover: true });
@@ -228,60 +229,60 @@ notification("Please wait...", { timeout: false });
228
229
 
229
230
  These props are used internally by the notification system. You rarely need to set them directly.
230
231
 
231
- | Prop | Type | Default | Description |
232
- |------|------|---------|-------------|
233
- | `content` | `string \| Component` | -- | Notification message or custom component |
234
- | `notificationId` | `number \| string` | -- | Unique identifier |
235
- | `updateId` | `number \| string` | -- | ID for update tracking |
236
- | `type` | `"default" \| "success" \| "error" \| "warning"` | `"default"` | Notification type (determines icon and accent color) |
237
- | `timeout` | `number \| boolean` | `5000` | Auto-dismiss delay in ms, or `false` to disable |
238
- | `pauseOnHover` | `boolean` | `true` | Pause timeout while mouse hovers over the toast |
239
- | `limit` | `number` | -- | Maximum number of visible notifications |
240
- | `position` | `NotificationPosition` | `"top-center"` | Screen position for the toast |
241
- | `dismissing` | `boolean` | -- | Programmatic dismissal trigger |
242
- | `toastIndex` | `number` | `0` | Stack index (0 = front/newest) |
243
- | `toastsCount` | `number` | -- | Total number of toasts in the position stack |
244
- | `expanded` | `boolean` | `true` | Whether the toast group is in expanded (hovered) state |
245
- | `visibleToasts` | `number` | `3` | Maximum visible toasts in collapsed stack |
246
- | `onReportHeight` | `(id, height) => void` | -- | Callback to report measured height to container |
232
+ | Prop | Type | Default | Description |
233
+ | ---------------- | ------------------------------------------------ | -------------- | ------------------------------------------------------ |
234
+ | `content` | `string \| Component` | -- | Notification message or custom component |
235
+ | `notificationId` | `number \| string` | -- | Unique identifier |
236
+ | `updateId` | `number \| string` | -- | ID for update tracking |
237
+ | `type` | `"default" \| "success" \| "error" \| "warning"` | `"default"` | Notification type (determines icon and accent color) |
238
+ | `timeout` | `number \| boolean` | `5000` | Auto-dismiss delay in ms, or `false` to disable |
239
+ | `pauseOnHover` | `boolean` | `true` | Pause timeout while mouse hovers over the toast |
240
+ | `limit` | `number` | -- | Maximum number of visible notifications |
241
+ | `position` | `NotificationPosition` | `"top-center"` | Screen position for the toast |
242
+ | `dismissing` | `boolean` | -- | Programmatic dismissal trigger |
243
+ | `toastIndex` | `number` | `0` | Stack index (0 = front/newest) |
244
+ | `toastsCount` | `number` | -- | Total number of toasts in the position stack |
245
+ | `expanded` | `boolean` | `true` | Whether the toast group is in expanded (hovered) state |
246
+ | `visibleToasts` | `number` | `3` | Maximum visible toasts in collapsed stack |
247
+ | `onReportHeight` | `(id, height) => void` | -- | Callback to report measured height to container |
247
248
 
248
249
  ## Events
249
250
 
250
- | Event | Payload | Description |
251
- |-------|---------|-------------|
251
+ | Event | Payload | Description |
252
+ | ------- | ------------------------------- | -------------------------------------------------- |
252
253
  | `close` | `number \| string \| undefined` | Toast dismissed (by user click, timeout, or swipe) |
253
254
 
254
255
  ## Notification Service Methods
255
256
 
256
- | Method | Signature | Description |
257
- |--------|-----------|-------------|
258
- | `notification()` | `(message: string \| Component, options?: NotificationOptions) => string \| number` | Show a default notification |
259
- | `notification.success()` | `(message: string \| Component) => string \| number` | Show a success notification |
260
- | `notification.error()` | `(message: string \| Component) => string \| number` | Show an error notification |
261
- | `notification.warning()` | `(message: string \| Component) => string \| number` | Show a warning notification |
262
- | `notification.update()` | `(id, options: Partial<NotificationOptions>) => void` | Update an existing notification |
263
- | `notification.remove()` | `(id: string \| number) => void` | Remove a specific notification |
264
- | `notification.clearAll()` | `() => void` | Remove all notifications |
265
- | `notification.setPosition()` | `(position: NotificationPosition) => void` | Change the global position |
257
+ | Method | Signature | Description |
258
+ | ---------------------------- | ----------------------------------------------------------------------------------- | ------------------------------- |
259
+ | `notification()` | `(message: string \| Component, options?: NotificationOptions) => string \| number` | Show a default notification |
260
+ | `notification.success()` | `(message: string \| Component) => string \| number` | Show a success notification |
261
+ | `notification.error()` | `(message: string \| Component) => string \| number` | Show an error notification |
262
+ | `notification.warning()` | `(message: string \| Component) => string \| number` | Show a warning notification |
263
+ | `notification.update()` | `(id, options: Partial<NotificationOptions>) => void` | Update an existing notification |
264
+ | `notification.remove()` | `(id: string \| number) => void` | Remove a specific notification |
265
+ | `notification.clearAll()` | `() => void` | Remove all notifications |
266
+ | `notification.setPosition()` | `(position: NotificationPosition) => void` | Change the global position |
266
267
 
267
268
  ## CSS Variables
268
269
 
269
- | Variable | Default | Description |
270
- |----------|---------|-------------|
271
- | `--notification-background` | `var(--additional-50)` | Toast background color |
272
- | `--notification-border-radius` | `6px` | Corner radius |
273
- | `--notification-border-color` | `var(--neutrals-200)` | Border color |
274
- | `--notification-content-color` | `var(--neutrals-800)` | Text color |
275
- | `--notification-shadow` | `0 4px 12px rgba(0,0,0,0.08)` | Default box shadow |
276
- | `--notification-hover-shadow` | `0 4px 16px rgba(0,0,0,0.12)` | Box shadow on hover |
277
- | `--notification-dismiss-color` | `var(--neutrals-400)` | Dismiss button icon color |
278
- | `--notification-dismiss-hover-color` | `var(--neutrals-600)` | Dismiss button hover color |
279
- | `--notification-success` | `var(--success-500)` | Success accent and icon color |
280
- | `--notification-error` | `var(--danger-500)` | Error accent and icon color |
281
- | `--notification-warning` | `var(--warning-500)` | Warning accent and icon color |
282
- | `--notification-info` | `var(--info-500)` | Info/default accent and icon color |
283
- | `--notification-accent-width` | `3px` | Left accent border width |
284
- | `--notification-focus-ring-color` | `var(--primary-100)` | Focus ring color on dismiss button |
270
+ | Variable | Default | Description |
271
+ | ------------------------------------ | ----------------------------- | ---------------------------------- |
272
+ | `--notification-background` | `var(--additional-50)` | Toast background color |
273
+ | `--notification-border-radius` | `6px` | Corner radius |
274
+ | `--notification-border-color` | `var(--neutrals-200)` | Border color |
275
+ | `--notification-content-color` | `var(--neutrals-800)` | Text color |
276
+ | `--notification-shadow` | `0 4px 12px rgba(0,0,0,0.08)` | Default box shadow |
277
+ | `--notification-hover-shadow` | `0 4px 16px rgba(0,0,0,0.12)` | Box shadow on hover |
278
+ | `--notification-dismiss-color` | `var(--neutrals-400)` | Dismiss button icon color |
279
+ | `--notification-dismiss-hover-color` | `var(--neutrals-600)` | Dismiss button hover color |
280
+ | `--notification-success` | `var(--success-500)` | Success accent and icon color |
281
+ | `--notification-error` | `var(--danger-500)` | Error accent and icon color |
282
+ | `--notification-warning` | `var(--warning-500)` | Warning accent and icon color |
283
+ | `--notification-info` | `var(--info-500)` | Info/default accent and icon color |
284
+ | `--notification-accent-width` | `3px` | Left accent border width |
285
+ | `--notification-focus-ring-color` | `var(--primary-100)` | Focus ring color on dismiss button |
285
286
 
286
287
  ## Accessibility
287
288