@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
@@ -4,11 +4,11 @@ A lightweight `<form>` wrapper that provides consistent styling, prevents defaul
4
4
 
5
5
  ## When to Use
6
6
 
7
- | Scenario | Component |
8
- |----------|-----------|
9
- | Blade detail view with editable fields | **VcForm** |
10
- | Popup with a short input form | **VcForm** |
11
- | Read-only display of data | Plain `<div>` or `VcField` |
7
+ | Scenario | Component |
8
+ | -------------------------------------- | -------------------------- |
9
+ | Blade detail view with editable fields | **VcForm** |
10
+ | Popup with a short input form | **VcForm** |
11
+ | Read-only display of data | Plain `<div>` or `VcField` |
12
12
 
13
13
  > **Important:** VcForm renders a native `<form>` element with `novalidate`. All validation is handled by **vee-validate** `Field` components, not by the browser.
14
14
 
@@ -20,8 +20,16 @@ A lightweight `<form>` wrapper that provides consistent styling, prevents defaul
20
20
  <template>
21
21
  <VcForm @submit="handleSubmit">
22
22
  <div class="tw-space-y-4">
23
- <VcInput v-model="name" label="Name" required />
24
- <VcInput v-model="email" label="Email" required />
23
+ <VcInput
24
+ v-model="name"
25
+ label="Name"
26
+ required
27
+ />
28
+ <VcInput
29
+ v-model="email"
30
+ label="Email"
31
+ required
32
+ />
25
33
  <VcButton type="submit">Save</VcButton>
26
34
  </div>
27
35
  </VcForm>
@@ -73,12 +81,7 @@ Use `VcRow` and `VcCol` inside VcForm to create multi-column layouts that match
73
81
  VcForm itself does **not** manage validation. Validation is provided by wrapping each input with the `Field` component from `vee-validate`. This is the standard pattern used across the entire codebase:
74
82
 
75
83
  ```vue
76
- <Field
77
- v-slot="{ errorMessage, handleChange, errors }"
78
- :model-value="form.fieldName"
79
- name="fieldName"
80
- rules="required"
81
- >
84
+ <Field v-slot="{ errorMessage, handleChange, errors }" :model-value="form.fieldName" name="fieldName" rules="required">
82
85
  <VcInput
83
86
  v-model="form.fieldName"
84
87
  label="Field Label"
@@ -105,12 +108,7 @@ This same pattern works with all VcShell inputs:
105
108
 
106
109
  ```vue
107
110
  <!-- VcSelect -->
108
- <Field
109
- v-slot="{ errorMessage, handleChange, errors }"
110
- :model-value="form.category"
111
- name="category"
112
- rules="required"
113
- >
111
+ <Field v-slot="{ errorMessage, handleChange, errors }" :model-value="form.category" name="category" rules="required">
114
112
  <VcSelect
115
113
  v-model="form.category"
116
114
  label="Category"
@@ -125,12 +123,7 @@ This same pattern works with all VcShell inputs:
125
123
  </Field>
126
124
 
127
125
  <!-- VcTextarea -->
128
- <Field
129
- v-slot="{ errorMessage, handleChange, errors }"
130
- :model-value="form.description"
131
- name="description"
132
- rules="required|min:10"
133
- >
126
+ <Field v-slot="{ errorMessage, handleChange, errors }" :model-value="form.description" name="description" rules="required|min:10">
134
127
  <VcTextarea
135
128
  v-model="form.description"
136
129
  label="Description"
@@ -411,10 +404,7 @@ const validateSku = (value: string) => {
411
404
  const debouncedValidation = useDebounceFn(async () => {
412
405
  const errors = await validateOffer({ ...offer.value, sku: value });
413
406
  const skuErrors = errors?.filter((e) => e.propertyName?.toLowerCase() === "sku");
414
- setFieldError(
415
- "sku",
416
- skuErrors.map((e) => t(`ERRORS.${e.errorCode}`, { value: e.attemptedValue })).join("\n"),
417
- );
407
+ setFieldError("sku", skuErrors.map((e) => t(`ERRORS.${e.errorCode}`, { value: e.attemptedValue })).join("\n"));
418
408
  }, 1000);
419
409
 
420
410
  debouncedValidation();
@@ -429,12 +419,7 @@ const validateSku = (value: string) => {
429
419
 
430
420
  ```vue
431
421
  <!-- BAD: vee-validate never learns about value changes -->
432
- <Field
433
- v-slot="{ errorMessage, errors }"
434
- :model-value="form.name"
435
- name="name"
436
- rules="required"
437
- >
422
+ <Field v-slot="{ errorMessage, errors }" :model-value="form.name" name="name" rules="required">
438
423
  <VcInput
439
424
  v-model="form.name"
440
425
  label="Name"
@@ -444,12 +429,7 @@ const validateSku = (value: string) => {
444
429
  </Field>
445
430
 
446
431
  <!-- GOOD: handleChange keeps vee-validate in sync -->
447
- <Field
448
- v-slot="{ errorMessage, handleChange, errors }"
449
- :model-value="form.name"
450
- name="name"
451
- rules="required"
452
- >
432
+ <Field v-slot="{ errorMessage, handleChange, errors }" :model-value="form.name" name="name" rules="required">
453
433
  <VcInput
454
434
  v-model="form.name"
455
435
  label="Name"
@@ -464,21 +444,12 @@ const validateSku = (value: string) => {
464
444
 
465
445
  ```vue
466
446
  <!-- BAD: Field does not track the current value -->
467
- <Field
468
- v-slot="{ errorMessage, handleChange, errors }"
469
- name="name"
470
- rules="required"
471
- >
447
+ <Field v-slot="{ errorMessage, handleChange, errors }" name="name" rules="required">
472
448
  <VcInput v-model="form.name" label="Name" />
473
449
  </Field>
474
450
 
475
451
  <!-- GOOD: Field receives the value and can validate it -->
476
- <Field
477
- v-slot="{ errorMessage, handleChange, errors }"
478
- :model-value="form.name"
479
- name="name"
480
- rules="required"
481
- >
452
+ <Field v-slot="{ errorMessage, handleChange, errors }" :model-value="form.name" name="name" rules="required">
482
453
  <VcInput
483
454
  v-model="form.name"
484
455
  label="Name"
@@ -514,28 +485,28 @@ disabled: computed(() => !modified.value),
514
485
 
515
486
  ## Props
516
487
 
517
- | Prop | Type | Default | Description |
518
- |------|------|---------|-------------|
519
- | `ariaLabel` | `string` | `undefined` | Accessible label for the `<form>` element |
520
- | `ariaLabelledby` | `string` | `undefined` | ID of an element that labels the form |
488
+ | Prop | Type | Default | Description |
489
+ | ---------------- | -------- | ----------- | ----------------------------------------- |
490
+ | `ariaLabel` | `string` | `undefined` | Accessible label for the `<form>` element |
491
+ | `ariaLabelledby` | `string` | `undefined` | ID of an element that labels the form |
521
492
 
522
493
  ## Events
523
494
 
524
- | Event | Payload | Description |
525
- |-------|---------|-------------|
526
- | `submit` | -- | Emitted on form submission. Native `submit` is already `preventDefault`-ed. |
495
+ | Event | Payload | Description |
496
+ | -------- | ------- | --------------------------------------------------------------------------- |
497
+ | `submit` | -- | Emitted on form submission. Native `submit` is already `preventDefault`-ed. |
527
498
 
528
499
  ## Slots
529
500
 
530
- | Slot | Description |
531
- |------|-------------|
501
+ | Slot | Description |
502
+ | --------- | --------------------------------------------------------------- |
532
503
  | `default` | Form content -- inputs, buttons, fieldsets, VcRow/VcCol layouts |
533
504
 
534
505
  ## CSS Custom Properties
535
506
 
536
- | Variable | Default | Description |
537
- |----------|---------|-------------|
538
- | `--form-gap` | `1rem` | Default gap between form children (when using flex gap) |
507
+ | Variable | Default | Description |
508
+ | ------------ | ------- | ------------------------------------------------------- |
509
+ | `--form-gap` | `1rem` | Default gap between form children (when using flex gap) |
539
510
 
540
511
  ## Accessibility
541
512
 
@@ -26,46 +26,50 @@ Square image tile with skeleton loading, fade-in transition, and a slide-up acti
26
26
  <script setup lang="ts">
27
27
  import { VcImageTile } from "@vc-shell/framework";
28
28
 
29
- function openPreview() { /* open lightbox */ }
30
- function deleteImage() { /* remove from list */ }
29
+ function openPreview() {
30
+ /* open lightbox */
31
+ }
32
+ function deleteImage() {
33
+ /* remove from list */
34
+ }
31
35
  </script>
32
36
  ```
33
37
 
34
38
  ## Key Props
35
39
 
36
- | Prop | Type | Default | Description |
37
- |------|------|---------|-------------|
38
- | `src` | `string` | — | Image source URL |
39
- | `alt` | `string` | — | Image alt text |
40
- | `name` | `string` | — | File name displayed in the tray |
41
- | `imageFit` | `"contain" \| "cover"` | `"contain"` | How the image fits within the tile |
42
- | `actions` | `VcImageTileActions` | — | Which built-in action buttons to show |
43
- | `thumbnailSize` | `ThumbnailSize` | — | Load a thumbnail variant instead of full-size image |
40
+ | Prop | Type | Default | Description |
41
+ | --------------- | ---------------------- | ----------- | --------------------------------------------------- |
42
+ | `src` | `string` | — | Image source URL |
43
+ | `alt` | `string` | — | Image alt text |
44
+ | `name` | `string` | — | File name displayed in the tray |
45
+ | `imageFit` | `"contain" \| "cover"` | `"contain"` | How the image fits within the tile |
46
+ | `actions` | `VcImageTileActions` | — | Which built-in action buttons to show |
47
+ | `thumbnailSize` | `ThumbnailSize` | — | Load a thumbnail variant instead of full-size image |
44
48
 
45
49
  ## VcImageTileActions Interface
46
50
 
47
51
  ```ts
48
52
  interface VcImageTileActions {
49
- preview?: boolean; // Fullscreen/maximize button (default visible)
50
- edit?: boolean; // Pencil edit button
51
- remove?: boolean; // Trash delete button
53
+ preview?: boolean; // Fullscreen/maximize button (default visible)
54
+ edit?: boolean; // Pencil edit button
55
+ remove?: boolean; // Trash delete button
52
56
  }
53
57
  ```
54
58
 
55
59
  ## Events
56
60
 
57
- | Event | Description |
58
- |-------|-------------|
61
+ | Event | Description |
62
+ | --------- | ---------------------- |
59
63
  | `preview` | Preview button clicked |
60
- | `edit` | Edit button clicked |
61
- | `remove` | Remove button clicked |
64
+ | `edit` | Edit button clicked |
65
+ | `remove` | Remove button clicked |
62
66
 
63
67
  ## Slots
64
68
 
65
- | Slot | Description |
66
- |------|-------------|
69
+ | Slot | Description |
70
+ | --------- | ------------------------------------------------------- |
67
71
  | `overlay` | Overlay content on top of the image (e.g., drag handle) |
68
- | `actions` | Additional action buttons in the tray |
72
+ | `actions` | Additional action buttons in the tray |
69
73
 
70
74
  ## Common Patterns
71
75
 
@@ -88,14 +92,7 @@ interface VcImageTileActions {
88
92
  ### All Actions Enabled
89
93
 
90
94
  ```vue
91
- <VcImageTile
92
- src="/img/photo.jpg"
93
- name="photo.jpg"
94
- :actions="{ preview: true, edit: true, remove: true }"
95
- @preview="onPreview"
96
- @edit="onEdit"
97
- @remove="onRemove"
98
- />
95
+ <VcImageTile src="/img/photo.jpg" name="photo.jpg" :actions="{ preview: true, edit: true, remove: true }" @preview="onPreview" @edit="onEdit" @remove="onRemove" />
99
96
  ```
100
97
 
101
98
  ### Cover Fit for Photos
@@ -123,19 +120,19 @@ When `src` is not provided or the image is still loading, a shimmer animation sk
123
120
 
124
121
  ## CSS Variables
125
122
 
126
- | Variable | Default | Description |
127
- |----------|---------|-------------|
128
- | `--image-tile-radius` | `8px` | Corner radius |
129
- | `--image-tile-border` | `var(--secondary-200)` | Border color |
130
- | `--image-tile-shadow` | `0 1px 2px rgb(0 0 0 / 0.05)` | Default shadow |
131
- | `--image-tile-shadow-hover` | `0 4px 12px rgb(0 0 0 / 0.1)` | Hover shadow |
132
- | `--image-tile-tray-bg` | `rgba(255, 255, 255, 0.85)` | Tray background |
133
- | `--image-tile-tray-blur` | `12px` | Tray backdrop blur |
134
- | `--image-tile-skeleton-from` | `var(--secondary-100)` | Skeleton gradient start |
135
- | `--image-tile-skeleton-to` | `var(--secondary-200)` | Skeleton gradient end |
136
- | `--image-tile-action-color` | `var(--secondary-600)` | Action button color |
137
- | `--image-tile-action-hover` | `var(--primary-500)` | Action button hover color |
138
- | `--image-tile-action-danger` | `var(--danger-500)` | Danger action hover color |
123
+ | Variable | Default | Description |
124
+ | ---------------------------- | ----------------------------- | ------------------------- |
125
+ | `--image-tile-radius` | `8px` | Corner radius |
126
+ | `--image-tile-border` | `var(--secondary-200)` | Border color |
127
+ | `--image-tile-shadow` | `0 1px 2px rgb(0 0 0 / 0.05)` | Default shadow |
128
+ | `--image-tile-shadow-hover` | `0 4px 12px rgb(0 0 0 / 0.1)` | Hover shadow |
129
+ | `--image-tile-tray-bg` | `rgba(255, 255, 255, 0.85)` | Tray background |
130
+ | `--image-tile-tray-blur` | `12px` | Tray backdrop blur |
131
+ | `--image-tile-skeleton-from` | `var(--secondary-100)` | Skeleton gradient start |
132
+ | `--image-tile-skeleton-to` | `var(--secondary-200)` | Skeleton gradient end |
133
+ | `--image-tile-action-color` | `var(--secondary-600)` | Action button color |
134
+ | `--image-tile-action-hover` | `var(--primary-500)` | Action button hover color |
135
+ | `--image-tile-action-danger` | `var(--danger-500)` | Danger action hover color |
139
136
 
140
137
  ## Accessibility
141
138