@vc-shell/vc-app-skill 2.1.0 → 2.2.0-pr260.a8bd3a7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/runtime/VERSION +1 -1
- package/runtime/agents/migration-agent.md +4 -2
- package/runtime/knowledge/docs/_BUILD_HASH.md +1 -1
- package/runtime/knowledge/docs/core/api/platform.docs.md +20 -18
- package/runtime/knowledge/docs/core/blade-navigation/blade-nav-composables.docs.md +43 -34
- package/runtime/knowledge/docs/core/composables/useAppBarMobileButtons/useAppBarMobileButtons.docs.md +5 -3
- package/runtime/knowledge/docs/core/composables/useAppBarWidget/useAppBarWidget.docs.md +12 -10
- package/runtime/knowledge/docs/core/composables/useAppInsights/useAppInsights.docs.md +7 -5
- package/runtime/knowledge/docs/core/composables/useAssets/useAssets.docs.md +8 -6
- package/runtime/knowledge/docs/core/composables/useAssetsManager/useAssetsManager.docs.md +3 -1
- package/runtime/knowledge/docs/core/composables/useAsync/useAsync.docs.md +1 -1
- package/runtime/knowledge/docs/core/composables/useBladeRegistry/useBladeRegistry.docs.md +8 -5
- package/runtime/knowledge/docs/core/composables/useBladeWidgets/index.docs.md +12 -12
- package/runtime/knowledge/docs/core/composables/useBreadcrumbs/useBreadcrumbs.docs.md +3 -3
- package/runtime/knowledge/docs/core/composables/useConnectionStatus/useConnectionStatus.docs.md +4 -3
- package/runtime/knowledge/docs/core/composables/useDynamicProperties/useDynamicProperties.docs.md +1 -0
- package/runtime/knowledge/docs/core/composables/useFunctions/useFunctions.docs.md +3 -3
- package/runtime/knowledge/docs/core/composables/useKeyboardNavigation/useKeyboardNavigation.docs.md +5 -4
- package/runtime/knowledge/docs/core/composables/useLanguages/useLanguages.docs.md +3 -3
- package/runtime/knowledge/docs/core/composables/useLoading/useLoading.docs.md +2 -0
- package/runtime/knowledge/docs/core/composables/useModificationTracker/useModificationTracker.docs.md +1 -2
- package/runtime/knowledge/docs/core/composables/useNotifications/useNotifications.docs.md +1 -1
- package/runtime/knowledge/docs/core/composables/usePermissions/usePermissions.docs.md +3 -3
- package/runtime/knowledge/docs/core/composables/usePlatformLocaleSync/usePlatformLocaleSync.docs.md +1 -0
- package/runtime/knowledge/docs/core/composables/usePopup/usePopup.docs.md +1 -1
- package/runtime/knowledge/docs/core/composables/useResponsive/useResponsive.docs.md +2 -2
- package/runtime/knowledge/docs/core/composables/useSettings/useSettings.docs.md +2 -1
- package/runtime/knowledge/docs/core/composables/useSettingsMenu/useSettingsMenu.docs.md +18 -18
- package/runtime/knowledge/docs/core/composables/useSidebarState/useSidebarState.docs.md +3 -3
- package/runtime/knowledge/docs/core/composables/useSlowNetworkDetection/useSlowNetworkDetection.docs.md +10 -7
- package/runtime/knowledge/docs/core/composables/useTheme/useTheme.docs.md +7 -7
- package/runtime/knowledge/docs/core/composables/useToolbar/useToolbar.docs.md +18 -12
- package/runtime/knowledge/docs/core/composables/useUser/useUser.docs.md +2 -2
- package/runtime/knowledge/docs/core/composables/useUserManagement/useUserManagement.docs.md +20 -20
- package/runtime/knowledge/docs/core/composables/useWidgets/useWidgets.docs.md +15 -24
- package/runtime/knowledge/docs/core/directives/loading/loading.docs.md +2 -2
- package/runtime/knowledge/docs/core/notifications/composables/useBladeNotifications.docs.md +1 -2
- package/runtime/knowledge/docs/core/notifications/composables/useBroadcastFilter.docs.md +3 -3
- package/runtime/knowledge/docs/core/notifications/composables/useNotificationStore.docs.md +19 -18
- package/runtime/knowledge/docs/core/notifications/notifications.docs.md +50 -30
- package/runtime/knowledge/docs/core/plugins/ai-agent/ai-agent.docs.md +30 -11
- package/runtime/knowledge/docs/core/plugins/extension-points/extension-points.docs.md +1 -1
- package/runtime/knowledge/docs/core/plugins/global-error-handler/global-error-handler.docs.md +2 -3
- package/runtime/knowledge/docs/core/plugins/modularity/modularity.docs.md +26 -26
- package/runtime/knowledge/docs/core/plugins/permissions/permissions.docs.md +2 -3
- package/runtime/knowledge/docs/core/plugins/signalR/signalR.docs.md +11 -50
- package/runtime/knowledge/docs/core/plugins/validation/validation.docs.md +9 -6
- package/runtime/knowledge/docs/core/services/services.docs.md +15 -13
- package/runtime/knowledge/docs/core/types/types.docs.md +37 -40
- package/runtime/knowledge/docs/core/utilities/date/date-utilities.docs.md +1 -2
- package/runtime/knowledge/docs/core/utilities/shared-utilities.docs.md +21 -30
- package/runtime/knowledge/docs/core/utilities/thumbnail/thumbnail.docs.md +2 -2
- package/runtime/knowledge/docs/core/utilities/utilities.docs.md +9 -8
- package/runtime/knowledge/docs/injection-keys.docs.md +6 -11
- package/runtime/knowledge/docs/modules/assets/assets-details.docs.md +7 -7
- package/runtime/knowledge/docs/modules/assets-manager/assets-manager.docs.md +1 -1
- package/runtime/knowledge/docs/shell/_internal/popup/common/popup-common.docs.md +20 -12
- package/runtime/knowledge/docs/shell/auth/ChangePasswordPage/change-password-page.docs.md +10 -10
- package/runtime/knowledge/docs/shell/auth/ForgotPasswordPage/forgot-password-page.docs.md +6 -6
- package/runtime/knowledge/docs/shell/auth/InvitePage/invite-page.docs.md +4 -4
- package/runtime/knowledge/docs/shell/auth/LoginPage/login-page.docs.md +16 -14
- package/runtime/knowledge/docs/shell/auth/ResetPasswordPage/reset-password-page.docs.md +1 -1
- package/runtime/knowledge/docs/shell/auth/sign-in/sign-in.docs.md +12 -11
- package/runtime/knowledge/docs/shell/components/change-password/change-password.docs.md +10 -3
- package/runtime/knowledge/docs/shell/components/change-password-button/change-password-button.docs.md +3 -3
- package/runtime/knowledge/docs/shell/components/error-interceptor/error-interceptor.docs.md +9 -2
- package/runtime/knowledge/docs/shell/components/language-selector/language-selector.docs.md +4 -2
- package/runtime/knowledge/docs/shell/components/logout-button/logout-button.docs.md +1 -1
- package/runtime/knowledge/docs/shell/components/notification-dropdown/notification-dropdown.docs.md +35 -31
- package/runtime/knowledge/docs/shell/components/notification-template/notification-template.docs.md +17 -11
- package/runtime/knowledge/docs/shell/components/settings-menu/settings-menu.docs.md +8 -7
- package/runtime/knowledge/docs/shell/components/settings-menu-item/settings-menu-item.docs.md +23 -21
- package/runtime/knowledge/docs/shell/components/sidebar/sidebar.docs.md +5 -3
- package/runtime/knowledge/docs/shell/components/theme-selector/theme-selector.docs.md +7 -7
- package/runtime/knowledge/docs/shell/components/user-dropdown-button/user-dropdown-button.docs.md +11 -11
- package/runtime/knowledge/docs/shell/dashboard/dashboard-charts/dashboard-charts.docs.md +28 -16
- package/runtime/knowledge/docs/shell/dashboard/dashboard-widget-card/dashboard-widget-card.docs.md +17 -19
- package/runtime/knowledge/docs/shell/dashboard/draggable-dashboard/draggable-dashboard.docs.md +21 -0
- package/runtime/knowledge/docs/ui/components/atoms/vc-badge/vc-badge.docs.md +2 -1
- package/runtime/knowledge/docs/ui/components/atoms/vc-banner/vc-banner.docs.md +2 -2
- package/runtime/knowledge/docs/ui/components/atoms/vc-button/vc-button.docs.md +15 -14
- package/runtime/knowledge/docs/ui/components/atoms/vc-container/vc-container.docs.md +9 -6
- package/runtime/knowledge/docs/ui/components/atoms/vc-environment-banner/vc-environment-banner.docs.md +42 -0
- package/runtime/knowledge/docs/ui/components/atoms/vc-hint/vc-hint.docs.md +1 -1
- package/runtime/knowledge/docs/ui/components/atoms/vc-icon/vc-icon.docs.md +10 -9
- package/runtime/knowledge/docs/ui/components/atoms/vc-image/vc-image.docs.md +19 -4
- package/runtime/knowledge/docs/ui/components/atoms/vc-label/vc-label.docs.md +2 -2
- package/runtime/knowledge/docs/ui/components/atoms/vc-link/vc-link.docs.md +5 -4
- package/runtime/knowledge/docs/ui/components/atoms/vc-loading/vc-loading.docs.md +5 -4
- package/runtime/knowledge/docs/ui/components/atoms/vc-progress/vc-progress.docs.md +9 -8
- package/runtime/knowledge/docs/ui/components/atoms/vc-scrollable-container/vc-scrollable-container.docs.md +7 -0
- package/runtime/knowledge/docs/ui/components/atoms/vc-skeleton/vc-skeleton.docs.md +1 -1
- package/runtime/knowledge/docs/ui/components/atoms/vc-status/vc-status.docs.md +2 -2
- package/runtime/knowledge/docs/ui/components/atoms/vc-status-icon/vc-status-icon.docs.md +1 -1
- package/runtime/knowledge/docs/ui/components/atoms/vc-tooltip/vc-tooltip.docs.md +11 -10
- package/runtime/knowledge/docs/ui/components/atoms/vc-video/vc-video.docs.md +28 -8
- package/runtime/knowledge/docs/ui/components/atoms/vc-widget/vc-widget.docs.md +22 -19
- package/runtime/knowledge/docs/ui/components/molecules/multilanguage-selector/multilanguage-selector.docs.md +8 -8
- package/runtime/knowledge/docs/ui/components/molecules/vc-accordion/vc-accordion.docs.md +16 -6
- package/runtime/knowledge/docs/ui/components/molecules/vc-breadcrumbs/vc-breadcrumbs.docs.md +9 -8
- package/runtime/knowledge/docs/ui/components/molecules/vc-checkbox/vc-checkbox.docs.md +42 -34
- package/runtime/knowledge/docs/ui/components/molecules/vc-checkbox-group/vc-checkbox-group.docs.md +1 -1
- package/runtime/knowledge/docs/ui/components/molecules/vc-color-input/vc-color-input.docs.md +14 -1
- package/runtime/knowledge/docs/ui/components/molecules/vc-date-picker/vc-date-picker.docs.md +3 -1
- package/runtime/knowledge/docs/ui/components/molecules/vc-dropdown/vc-dropdown.docs.md +34 -33
- package/runtime/knowledge/docs/ui/components/molecules/vc-editor/vc-editor.docs.md +26 -24
- package/runtime/knowledge/docs/ui/components/molecules/vc-field/vc-field.docs.md +12 -14
- package/runtime/knowledge/docs/ui/components/molecules/vc-file-upload/vc-file-upload.docs.md +30 -30
- package/runtime/knowledge/docs/ui/components/molecules/vc-input/vc-input.docs.md +2 -2
- package/runtime/knowledge/docs/ui/components/molecules/vc-input-currency/vc-input-currency.docs.md +1 -1
- package/runtime/knowledge/docs/ui/components/molecules/vc-input-dropdown/vc-input-dropdown.docs.md +34 -31
- package/runtime/knowledge/docs/ui/components/molecules/vc-input-group/vc-input-group.docs.md +14 -12
- package/runtime/knowledge/docs/ui/components/molecules/vc-menu/vc-menu.docs.md +1 -1
- package/runtime/knowledge/docs/ui/components/molecules/vc-multivalue/vc-multivalue.docs.md +36 -27
- package/runtime/knowledge/docs/ui/components/molecules/vc-pagination/vc-pagination.docs.md +5 -1
- package/runtime/knowledge/docs/ui/components/molecules/{vc-dropdown-panel/vc-dropdown-panel.docs.md → vc-popover/vc-popover.docs.md} +24 -27
- package/runtime/knowledge/docs/ui/components/molecules/vc-radio-button/vc-radio-button.docs.md +10 -9
- package/runtime/knowledge/docs/ui/components/molecules/vc-select/vc-select.docs.md +44 -19
- package/runtime/knowledge/docs/ui/components/molecules/vc-slider/vc-slider.docs.md +11 -11
- package/runtime/knowledge/docs/ui/components/molecules/vc-switch/vc-switch.docs.md +15 -14
- package/runtime/knowledge/docs/ui/components/molecules/vc-textarea/vc-textarea.docs.md +15 -15
- package/runtime/knowledge/docs/ui/components/molecules/vc-toast/vc-toast.docs.md +15 -13
- package/runtime/knowledge/docs/ui/components/organisms/vc-app/vc-app.docs.md +5 -1
- package/runtime/knowledge/docs/ui/components/organisms/vc-auth-layout/vc-auth-layout.docs.md +18 -0
- package/runtime/knowledge/docs/ui/components/organisms/vc-blade/vc-blade.docs.md +48 -78
- package/runtime/knowledge/docs/ui/components/organisms/vc-data-table/composables/table-composables.docs.md +9 -11
- package/runtime/knowledge/docs/ui/components/organisms/vc-data-table/vc-data-table.docs.md +71 -43
- package/runtime/knowledge/docs/ui/components/organisms/vc-dynamic-property/vc-dynamic-property.docs.md +27 -20
- package/runtime/knowledge/docs/ui/components/organisms/vc-gallery/vc-gallery.docs.md +2 -2
- package/runtime/knowledge/docs/ui/components/organisms/vc-image-upload/vc-image-upload.docs.md +12 -12
- package/runtime/knowledge/docs/ui/components/organisms/vc-popup/vc-popup.docs.md +33 -24
- package/runtime/knowledge/docs/ui/components/organisms/vc-scheduler/vc-scheduler.docs.md +509 -0
- package/runtime/knowledge/docs/ui/components/organisms/vc-sidebar/vc-sidebar.docs.md +43 -26
- package/runtime/knowledge/docs/ui/composables/ui-composables.docs.md +15 -9
- package/runtime/knowledge/docs/ui/composables/useDataTableSort.docs.md +8 -6
- package/runtime/knowledge/docs/ui/composables/useTableSearch.docs.md +3 -3
- package/runtime/knowledge/docs/ui/composables/useTableSelection.docs.md +4 -4
- package/runtime/knowledge/docs/ui/composables/useTableSort.docs.md +2 -3
- package/runtime/knowledge/migration-prompts/table-url-state-migration.md +221 -0
- package/runtime/vc-app.md +1 -0
|
@@ -49,7 +49,7 @@ const tags = ref<Array<{ id?: string }>>([]);
|
|
|
49
49
|
|
|
50
50
|
### Free-form Text Entry
|
|
51
51
|
|
|
52
|
-
In the default mode (`multivalue` is `false`), users type a value into the input and press **Enter**
|
|
52
|
+
In the default mode (`multivalue` is `false`), users type a value into the input and press **Enter** to add it as a chip. This mode works with different input types.
|
|
53
53
|
|
|
54
54
|
```vue
|
|
55
55
|
<VcMultivalue v-model="tags" label="Keywords" placeholder="Type and press Enter" />
|
|
@@ -305,34 +305,44 @@ const selectedArray = ref([{ id: "1", title: "Option 1" }]);
|
|
|
305
305
|
|
|
306
306
|
## Slots
|
|
307
307
|
|
|
308
|
-
| Slot | Scope
|
|
309
|
-
| --------------- |
|
|
310
|
-
| `option` | `{ item: T, index: number }`
|
|
311
|
-
| `selected-item` | `{ value: string \| number, item: T, index: number, remove: () => void }` | Custom rendering for selected value chips |
|
|
312
|
-
| `prepend` | --
|
|
313
|
-
| `append` | --
|
|
314
|
-
| `error` | --
|
|
315
|
-
| `hint` | --
|
|
308
|
+
| Slot | Scope | Description |
|
|
309
|
+
| --------------- | --------------------------------------------------------------------------------------- | ---------------------------------------------------------- |
|
|
310
|
+
| `option` | `{ item: T, index: number }` | Custom rendering for dropdown options (dictionary mode) |
|
|
311
|
+
| `selected-item` | `{ value: string \| number \| T[keyof T], item: T, index: number, remove: () => void }` | Custom rendering for selected value chips |
|
|
312
|
+
| `prepend` | -- | Content rendered before the field area (inside the border) |
|
|
313
|
+
| `append` | -- | Content rendered after the field area (inside the border) |
|
|
314
|
+
| `error` | -- | Custom error message markup (replaces default VcHint) |
|
|
315
|
+
| `hint` | -- | Custom hint markup (replaces default VcHint) |
|
|
316
316
|
|
|
317
317
|
## CSS Variables
|
|
318
318
|
|
|
319
319
|
The component uses `--multivalue-*` variables that fall back to `--select-*` tokens for visual consistency with VcSelect.
|
|
320
320
|
|
|
321
|
-
| Variable
|
|
322
|
-
|
|
|
323
|
-
| `--multivalue-height`
|
|
324
|
-
| `--multivalue-border-radius`
|
|
325
|
-
| `--multivalue-border-color`
|
|
326
|
-
| `--multivalue-background-color`
|
|
327
|
-
| `--multivalue-text-color`
|
|
328
|
-
| `--multivalue-
|
|
329
|
-
| `--multivalue-
|
|
330
|
-
| `--multivalue-
|
|
331
|
-
| `--multivalue-
|
|
332
|
-
| `--multivalue-
|
|
333
|
-
| `--multivalue-
|
|
334
|
-
| `--multivalue-
|
|
335
|
-
| `--multivalue-
|
|
321
|
+
| Variable | Default | Description |
|
|
322
|
+
| ------------------------------------------ | ----------------------------------------------------------------------------------------------- | --------------------------------- |
|
|
323
|
+
| `--multivalue-height` | `36px` | Minimum height of the input field |
|
|
324
|
+
| `--multivalue-border-radius` | `var(--select-border-radius, 6px)` | Border radius |
|
|
325
|
+
| `--multivalue-border-color` | `var(--select-border-color, var(--neutrals-300))` | Default border color |
|
|
326
|
+
| `--multivalue-background-color` | `var(--select-background-color, transparent)` | Field background |
|
|
327
|
+
| `--multivalue-text-color` | `var(--select-text-color, var(--neutrals-800))` | Field text color |
|
|
328
|
+
| `--multivalue-placeholder-color` | `var(--select-placeholder-color, var(--neutrals-400))` | Placeholder text color |
|
|
329
|
+
| `--multivalue-padding` | `10px` | Field inner padding |
|
|
330
|
+
| `--multivalue-dropdown-bg` | `var(--select-dropdown-bg, var(--additional-50))` | Dropdown panel background |
|
|
331
|
+
| `--multivalue-dropdown-border` | `var(--select-dropdown-border, var(--neutrals-200))` | Dropdown panel border |
|
|
332
|
+
| `--multivalue-dropdown-shadow` | `var(--select-dropdown-shadow, 0 4px 6px -1px rgba(0,0,0,0.1), 0 2px 4px -2px rgba(0,0,0,0.1))` | Dropdown panel shadow |
|
|
333
|
+
| `--multivalue-search-border-color` | `var(--select-search-border-color, var(--neutrals-200))` | Search input border color |
|
|
334
|
+
| `--multivalue-item-hover-background-color` | `var(--select-option-background-color-hover, var(--neutrals-100))` | Option row hover background |
|
|
335
|
+
| `--multivalue-chip-background-color` | `var(--select-multiple-options-background-color, var(--neutrals-100))` | Chip background |
|
|
336
|
+
| `--multivalue-chip-border-color` | `var(--select-multiple-options-border-color, var(--neutrals-200))` | Chip border |
|
|
337
|
+
| `--multivalue-clear-icon-color` | `var(--select-clear-color, var(--neutrals-400))` | Clear icon color |
|
|
338
|
+
| `--multivalue-clear-icon-color-hover` | `var(--select-clear-color-hover, var(--neutrals-600))` | Clear icon hover color |
|
|
339
|
+
| `--multivalue-border-color-focus` | `var(--select-border-color-focus, var(--primary-500))` | Border color on focus |
|
|
340
|
+
| `--multivalue-focus-ring-color` | `var(--select-focus-ring-color, var(--primary-100))` | Focus ring color |
|
|
341
|
+
| `--multivalue-border-color-error` | `var(--select-border-color-error, var(--danger-500))` | Border on error |
|
|
342
|
+
| `--multivalue-error-ring-color` | `var(--select-error-ring-color, var(--danger-100))` | Error ring color |
|
|
343
|
+
| `--multivalue-hint-color` | `var(--danger-500)` | Hint/error message text color |
|
|
344
|
+
| `--multivalue-disabled-text-color` | `var(--neutrals-500)` | Disabled text color |
|
|
345
|
+
| `--multivalue-loading-color` | `var(--select-loading-color, var(--info-500))` | Loading spinner color |
|
|
336
346
|
|
|
337
347
|
## Accessibility
|
|
338
348
|
|
|
@@ -341,8 +351,7 @@ The component uses `--multivalue-*` variables that fall back to `--select-*` tok
|
|
|
341
351
|
- Dropdown list has `role="listbox"` with a generated `id`
|
|
342
352
|
- Chip remove buttons are individually focusable
|
|
343
353
|
- Keyboard navigation:
|
|
344
|
-
- **Enter**
|
|
345
|
-
- **Backspace** -- removes the last chip when the input is empty
|
|
354
|
+
- **Enter** -- submits the current input as a new value (blur also submits, via `onInputSubmit`)
|
|
346
355
|
- **Arrow keys** -- navigate items in the dropdown (dictionary mode)
|
|
347
356
|
- **Escape** -- closes the dropdown
|
|
348
357
|
- The `required` prop sets `aria-required` on the field
|
|
@@ -366,7 +375,7 @@ This behavior is powered by `BladeLoadingKey` via Vue's provide/inject. The comp
|
|
|
366
375
|
|
|
367
376
|
- Composed of internal sub-components in `vc-multivalue/_internal/`: the chip list renderer, the dropdown panel, and the trigger input.
|
|
368
377
|
- Composables are in `vc-multivalue/composables/` — chip management and dropdown open/close state are separated into composables.
|
|
369
|
-
- Free-form mode:
|
|
378
|
+
- Free-form mode: Enter (`@keypress.enter`) or blur triggers a chip add. Chip removal is done only via the chip's remove button.
|
|
370
379
|
- Dictionary mode: already-selected items are filtered out of the dropdown list reactively.
|
|
371
380
|
- Source file: `framework/ui/components/molecules/vc-multivalue/vc-multivalue.vue`
|
|
372
381
|
- Internal components: `framework/ui/components/molecules/vc-multivalue/_internal/`
|
|
@@ -57,7 +57,7 @@ VcPagination displays a sliding window of page number buttons centered on the cu
|
|
|
57
57
|
- **Desktop:** 5 visible page buttons (default)
|
|
58
58
|
- **Mobile:** 3 visible page buttons (default)
|
|
59
59
|
|
|
60
|
-
The component detects the viewport via
|
|
60
|
+
The component detects the viewport via `useResponsive()` (`isMobile`). You can override the window size with the `maxPages` prop regardless of viewport.
|
|
61
61
|
|
|
62
62
|
```vue
|
|
63
63
|
<!-- Always show exactly 3 page buttons -->
|
|
@@ -265,6 +265,7 @@ currentPage.value = Math.min(currentPage.value, totalPages.value);
|
|
|
265
265
|
| `maxPages` | `number` | -- | Override visible page button count. Default: 3 on mobile, 5 on desktop |
|
|
266
266
|
| `showFirstLast` | `boolean` | `true` | Show first/last page navigation buttons |
|
|
267
267
|
| `variant` | `"default" \| "minimal"` | `"default"` | Visual style variant |
|
|
268
|
+
| `expanded` | `boolean` | -- | Declared but currently unused in the template |
|
|
268
269
|
|
|
269
270
|
## Events
|
|
270
271
|
|
|
@@ -287,6 +288,9 @@ currentPage.value = Math.min(currentPage.value, totalPages.value);
|
|
|
287
288
|
| `--pagination-item-color-disabled` | `var(--neutrals-400)` | Disabled button text color |
|
|
288
289
|
| `--pagination-item-background-color-disabled` | `var(--neutrals-100)` | Disabled button background |
|
|
289
290
|
| `--pagination-item-border-color` | `var(--secondary-100)` | Default border color |
|
|
291
|
+
| `--pagination-item-border-color-hover` | `var(--neutrals-200)` | Hover border color |
|
|
292
|
+
| `--pagination-item-border-color-current` | `var(--neutrals-200)` | Current page border color |
|
|
293
|
+
| `--pagination-item-border-color-disabled` | `var(--neutrals-200)` | Disabled button border color |
|
|
290
294
|
| `--pagination-focus-ring-color` | `var(--primary-100)` | Focus ring color for keyboard navigation |
|
|
291
295
|
|
|
292
296
|
## Accessibility
|
|
@@ -1,14 +1,12 @@
|
|
|
1
1
|
---
|
|
2
|
-
title:
|
|
2
|
+
title: VcPopover
|
|
3
3
|
category: components
|
|
4
4
|
group: navigation
|
|
5
5
|
---
|
|
6
6
|
|
|
7
|
-
#
|
|
7
|
+
# VcPopover
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
::storybook id="overlay-vcdropdownpanel--default"
|
|
9
|
+
Anchored floating panel (popover) positioned relative to an anchor element, with header, scrollable content, and optional footer. Built on `@floating-ui/vue`.
|
|
12
10
|
|
|
13
11
|
## When to Use
|
|
14
12
|
|
|
@@ -27,7 +25,7 @@ Floating dropdown panel positioned relative to an anchor element, with header, s
|
|
|
27
25
|
>
|
|
28
26
|
Toggle Panel
|
|
29
27
|
</button>
|
|
30
|
-
<
|
|
28
|
+
<VcPopover
|
|
31
29
|
v-model:show="open"
|
|
32
30
|
:anchor-ref="anchorEl"
|
|
33
31
|
title="Filter Options"
|
|
@@ -35,12 +33,12 @@ Floating dropdown panel positioned relative to an anchor element, with header, s
|
|
|
35
33
|
<div class="tw-p-4">
|
|
36
34
|
<p>Panel content here</p>
|
|
37
35
|
</div>
|
|
38
|
-
</
|
|
36
|
+
</VcPopover>
|
|
39
37
|
</template>
|
|
40
38
|
|
|
41
39
|
<script setup lang="ts">
|
|
42
40
|
import { ref } from "vue";
|
|
43
|
-
import {
|
|
41
|
+
import { VcPopover } from "@vc-shell/framework";
|
|
44
42
|
|
|
45
43
|
const anchorEl = ref<HTMLElement | null>(null);
|
|
46
44
|
const open = ref(false);
|
|
@@ -78,12 +76,10 @@ const open = ref(false);
|
|
|
78
76
|
|
|
79
77
|
## Common Patterns
|
|
80
78
|
|
|
81
|
-
::storybook id="overlay-vcdropdownpanel--with-footer"
|
|
82
|
-
|
|
83
79
|
### Filter Panel with Footer Actions
|
|
84
80
|
|
|
85
81
|
```vue
|
|
86
|
-
<
|
|
82
|
+
<VcPopover v-model:show="showFilters" :anchor-ref="filterButton" title="Filters">
|
|
87
83
|
<div class="tw-p-4 tw-flex tw-flex-col tw-gap-2">
|
|
88
84
|
<VcCheckbox v-model="filters.active">Active only</VcCheckbox>
|
|
89
85
|
<VcCheckbox v-model="filters.inStock">In stock</VcCheckbox>
|
|
@@ -93,13 +89,13 @@ const open = ref(false);
|
|
|
93
89
|
<VcButton variant="secondary" @click="resetFilters">Reset</VcButton>
|
|
94
90
|
<VcButton @click="applyFilters">Apply</VcButton>
|
|
95
91
|
</template>
|
|
96
|
-
</
|
|
92
|
+
</VcPopover>
|
|
97
93
|
```
|
|
98
94
|
|
|
99
95
|
### Custom Header
|
|
100
96
|
|
|
101
97
|
```vue
|
|
102
|
-
<
|
|
98
|
+
<VcPopover v-model:show="open" :anchor-ref="anchor">
|
|
103
99
|
<template #header="{ close }">
|
|
104
100
|
<div class="tw-flex tw-items-center tw-justify-between tw-w-full tw-px-4 tw-py-3">
|
|
105
101
|
<span class="tw-font-semibold">Custom Header</span>
|
|
@@ -107,13 +103,13 @@ const open = ref(false);
|
|
|
107
103
|
</div>
|
|
108
104
|
</template>
|
|
109
105
|
<div class="tw-p-4">Content here</div>
|
|
110
|
-
</
|
|
106
|
+
</VcPopover>
|
|
111
107
|
```
|
|
112
108
|
|
|
113
109
|
### Scrollable List
|
|
114
110
|
|
|
115
111
|
```vue
|
|
116
|
-
<
|
|
112
|
+
<VcPopover v-model:show="open" :anchor-ref="anchor" title="Long Content" :max-height="250">
|
|
117
113
|
<div class="tw-py-1">
|
|
118
114
|
<div
|
|
119
115
|
v-for="item in items"
|
|
@@ -123,22 +119,23 @@ const open = ref(false);
|
|
|
123
119
|
{{ item.name }}
|
|
124
120
|
</div>
|
|
125
121
|
</div>
|
|
126
|
-
</
|
|
122
|
+
</VcPopover>
|
|
127
123
|
```
|
|
128
124
|
|
|
129
125
|
## CSS Variables
|
|
130
126
|
|
|
131
|
-
| Variable
|
|
132
|
-
|
|
|
133
|
-
| `--
|
|
134
|
-
| `--
|
|
135
|
-
| `--
|
|
136
|
-
| `--
|
|
137
|
-
| `--
|
|
138
|
-
| `--
|
|
139
|
-
| `--
|
|
140
|
-
| `--
|
|
141
|
-
|
|
127
|
+
| Variable | Default | Description |
|
|
128
|
+
| -------------------------------- | ----------------------------- | ------------------------ |
|
|
129
|
+
| `--vc-popover-bg` | `var(--additional-50)` | Panel background |
|
|
130
|
+
| `--vc-popover-border-color` | `var(--neutrals-200)` | Border color |
|
|
131
|
+
| `--vc-popover-border-radius` | `6px` | Corner radius |
|
|
132
|
+
| `--vc-popover-shadow` | `0 4px 16px rgba(0,0,0,0.08)` | Box shadow |
|
|
133
|
+
| `--vc-popover-title-color` | `var(--neutrals-900)` | Title text color |
|
|
134
|
+
| `--vc-popover-close-color` | `var(--neutrals-400)` | Close button color |
|
|
135
|
+
| `--vc-popover-close-hover-color` | `var(--neutrals-600)` | Close button hover color |
|
|
136
|
+
| `--vc-popover-footer-bg` | `var(--neutrals-50)` | Footer background |
|
|
137
|
+
|
|
138
|
+
The panel's z-index comes from the global `--z-critical-floating-panel` token and is not overridable per-instance.
|
|
142
139
|
|
|
143
140
|
## Accessibility
|
|
144
141
|
|
package/runtime/knowledge/docs/ui/components/molecules/vc-radio-button/vc-radio-button.docs.md
CHANGED
|
@@ -66,15 +66,16 @@ const method = ref("standard");
|
|
|
66
66
|
|
|
67
67
|
## Key Props
|
|
68
68
|
|
|
69
|
-
| Prop | Type | Default | Description
|
|
70
|
-
| ------------------------ | -------------------- | -------------- |
|
|
71
|
-
| `modelValue` | `T` | `undefined` | Bound value via `v-model` (shared across the group)
|
|
72
|
-
| `value` | `T` | -- | This radio button's value. Selected when `modelValue === value`
|
|
73
|
-
| `label` | `string` | -- | Text label next to the radio circle
|
|
74
|
-
| `name` | `string` | `"RadioField"` | HTML `name` attribute (must be shared within a group)
|
|
75
|
-
| `binary` | `boolean` | `false` | Enables boolean toggle mode (clicking toggles `true`/`false`)
|
|
76
|
-
| `disabled` | `boolean` | `false` | Disables this radio button
|
|
77
|
-
| `error` / `errorMessage` | `boolean` / `string` | -- | Error styling and message
|
|
69
|
+
| Prop | Type | Default | Description |
|
|
70
|
+
| ------------------------ | -------------------- | -------------- | ------------------------------------------------------------------------------------------------- |
|
|
71
|
+
| `modelValue` | `T` | `undefined` | Bound value via `v-model` (shared across the group) |
|
|
72
|
+
| `value` | `T` | -- | This radio button's value. Selected when `modelValue === value` |
|
|
73
|
+
| `label` | `string` | -- | Text label next to the radio circle |
|
|
74
|
+
| `name` | `string` | `"RadioField"` | HTML `name` attribute (must be shared within a group) |
|
|
75
|
+
| `binary` | `boolean` | `false` | Enables boolean toggle mode (clicking toggles `true`/`false`) |
|
|
76
|
+
| `disabled` | `boolean` | `false` | Disables this radio button |
|
|
77
|
+
| `error` / `errorMessage` | `boolean` / `string` | -- | Error styling and message |
|
|
78
|
+
| `ariaLabel` | `string` | -- | Accessible name for the input when no visible `label` is set. Applied only when `label` is empty. |
|
|
78
79
|
|
|
79
80
|
## Common Patterns
|
|
80
81
|
|
|
@@ -642,36 +642,61 @@ Don't forget `:key` with cascading selects, otherwise the second select will ret
|
|
|
642
642
|
|
|
643
643
|
## Slots
|
|
644
644
|
|
|
645
|
-
| Slot | Scope
|
|
646
|
-
| -------------------------------- |
|
|
647
|
-
| `option` | `{ index, opt, selected, toggleOption }`
|
|
648
|
-
| `selected-item` | `{ index, opt, selected, removeAtIndex }`
|
|
649
|
-
| `control` | `{ toggleHandler, isOpened }`
|
|
650
|
-
| `prepend` / `append` | —
|
|
651
|
-
| `prepend-inner` / `append-inner` | —
|
|
652
|
-
| `no-options` | —
|
|
653
|
-
| `error` / `hint` | —
|
|
645
|
+
| Slot | Scope | Description |
|
|
646
|
+
| -------------------------------- | ----------------------------------------------- | ------------------------------------------------------------------------ |
|
|
647
|
+
| `option` | `{ index, opt, selected, label, toggleOption }` | Custom option rendering. **You must call `toggleOption(opt)` on click.** |
|
|
648
|
+
| `selected-item` | `{ index, opt, selected, removeAtIndex }` | Custom rendering of selected chips (multiple) |
|
|
649
|
+
| `control` | `{ toggleHandler, isOpened }` | Full trigger replacement |
|
|
650
|
+
| `prepend` / `append` | — | Content outside the field |
|
|
651
|
+
| `prepend-inner` / `append-inner` | — | Content inside the field |
|
|
652
|
+
| `no-options` | — | Shown when there are no options |
|
|
653
|
+
| `error` / `hint` | — | Custom rendering of error/hint |
|
|
654
654
|
|
|
655
655
|
## CSS Variables
|
|
656
656
|
|
|
657
657
|
```css
|
|
658
658
|
:root {
|
|
659
659
|
--select-height: 36px;
|
|
660
|
-
--select-height-small:
|
|
661
|
-
--select-border-radius:
|
|
660
|
+
--select-height-small: 32px;
|
|
661
|
+
--select-border-radius: 6px;
|
|
662
662
|
--select-border-color: var(--neutrals-300);
|
|
663
|
-
--select-border-color-focus: var(--primary-100);
|
|
664
|
-
--select-border-color-error: var(--danger-500);
|
|
665
663
|
--select-text-color: var(--neutrals-800);
|
|
666
|
-
--select-padding:
|
|
664
|
+
--select-padding: 12px;
|
|
665
|
+
|
|
667
666
|
--select-background-color: var(--additional-50);
|
|
668
|
-
|
|
667
|
+
|
|
669
668
|
--select-placeholder-color: var(--neutrals-400);
|
|
670
|
-
|
|
671
|
-
--select-
|
|
669
|
+
|
|
670
|
+
--select-chevron-color: var(--neutrals-500);
|
|
671
|
+
--select-chevron-color-hover: var(--neutrals-700);
|
|
672
|
+
--select-clear-color: var(--neutrals-400);
|
|
673
|
+
--select-clear-color-hover: var(--neutrals-600);
|
|
674
|
+
|
|
675
|
+
--select-loading-color: var(--info-500);
|
|
676
|
+
|
|
677
|
+
--select-option-background-color-hover: var(--neutrals-100);
|
|
678
|
+
--select-option-background-color-selected: var(--accent-100);
|
|
679
|
+
--select-option-check-color: var(--primary-500);
|
|
680
|
+
|
|
681
|
+
--select-multiple-options-background-color: var(--neutrals-100);
|
|
682
|
+
--select-multiple-options-border-color: var(--neutrals-200);
|
|
683
|
+
|
|
672
684
|
--select-dropdown-bg: var(--additional-50);
|
|
673
|
-
--select-
|
|
674
|
-
--select-
|
|
685
|
+
--select-dropdown-border: var(--neutrals-200);
|
|
686
|
+
--select-dropdown-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -2px rgba(0, 0, 0, 0.1);
|
|
687
|
+
|
|
688
|
+
--select-search-border-color: var(--neutrals-200);
|
|
689
|
+
--select-search-background-color: var(--additional-50);
|
|
690
|
+
--select-border-color-input: var(--secondary-200);
|
|
691
|
+
|
|
692
|
+
--select-border-color-focus: var(--primary-500);
|
|
693
|
+
--select-focus-ring-color: var(--primary-100);
|
|
694
|
+
|
|
695
|
+
--select-background-color-disabled: var(--neutrals-200);
|
|
696
|
+
--select-disabled-text-color: var(--neutrals-500);
|
|
697
|
+
|
|
698
|
+
--select-border-color-error: var(--danger-500);
|
|
699
|
+
--select-error-ring-color: var(--danger-100);
|
|
675
700
|
}
|
|
676
701
|
```
|
|
677
702
|
|
|
@@ -50,21 +50,21 @@ const products = [
|
|
|
50
50
|
|
|
51
51
|
## Key Props
|
|
52
52
|
|
|
53
|
-
| Prop | Type | Default
|
|
54
|
-
| -------------------- | ---------------------------------------- |
|
|
55
|
-
| `slides` | `Record<string, unknown>[] \| unknown[]` | `[]`
|
|
56
|
-
| `navigation` | `boolean` | `false`
|
|
57
|
-
| `slidesPerView` | `string \| "auto"` | `"auto"`
|
|
58
|
-
| `spaceBetweenSlides` | `number` | `10`
|
|
59
|
-
| `overflow` | `boolean` | `false`
|
|
60
|
-
| `ariaLabel` | `string` |
|
|
53
|
+
| Prop | Type | Default | Description |
|
|
54
|
+
| -------------------- | ---------------------------------------- | -------- | ------------------------------------------------------------------------------------- |
|
|
55
|
+
| `slides` | `Record<string, unknown>[] \| unknown[]` | `[]` | Array of slide data objects |
|
|
56
|
+
| `navigation` | `boolean` | `false` | Show previous/next navigation buttons |
|
|
57
|
+
| `slidesPerView` | `string \| "auto"` | `"auto"` | Number of visible slides at once |
|
|
58
|
+
| `spaceBetweenSlides` | `number` | `10` | Gap between slides in pixels |
|
|
59
|
+
| `overflow` | `boolean` | `false` | Allow slides to be visible outside the container bounds |
|
|
60
|
+
| `ariaLabel` | `string` | -- | Accessible label for the slider region. Falls back to `"Content carousel"` when unset |
|
|
61
61
|
|
|
62
62
|
## Common Patterns
|
|
63
63
|
|
|
64
64
|
### Fixed Slides Per View
|
|
65
65
|
|
|
66
66
|
```vue
|
|
67
|
-
<VcSlider :slides="items" :slides-per-view="3" navigation :space-between-slides="20">
|
|
67
|
+
<VcSlider :slides="items" :slides-per-view="'3'" navigation :space-between-slides="20">
|
|
68
68
|
<template #default="{ slide }">
|
|
69
69
|
<ProductCard :product="slide" />
|
|
70
70
|
</template>
|
|
@@ -96,7 +96,7 @@ const products = [
|
|
|
96
96
|
### Single Slide View
|
|
97
97
|
|
|
98
98
|
```vue
|
|
99
|
-
<VcSlider :slides="banners" :slides-per-view="1" navigation>
|
|
99
|
+
<VcSlider :slides="banners" :slides-per-view="'1'" navigation>
|
|
100
100
|
<template #default="{ slide }">
|
|
101
101
|
<img :src="slide.imageUrl" class="tw-w-full tw-rounded" />
|
|
102
102
|
</template>
|
|
@@ -140,7 +140,7 @@ When placed inside a `VcBlade` with `loading=true`, the component automatically
|
|
|
140
140
|
|
|
141
141
|
- VcSlider wraps the `swiper/vue` `<Swiper>` / `<SwiperSlide>` components with the `Navigation` module. Navigation buttons are custom DOM elements (`.vc-slider__prev` / `.vc-slider__next`) referenced by Swiper's `navigation.prevEl` / `nextEl` selectors.
|
|
142
142
|
- `overflow` prop toggles `overflow: visible` on the swiper container, allowing slides to bleed outside bounds — useful for "peek" effects.
|
|
143
|
-
- `slidesPerView="auto"` (default) lets each slide size itself from content. Pass a
|
|
143
|
+
- `slidesPerView="auto"` (default) lets each slide size itself from content. Pass a numeric string (e.g. `"3"`) for fixed-count layouts.
|
|
144
144
|
- The `slides` prop accepts any array. Each item is exposed as `{ slide }` in the default scoped slot.
|
|
145
145
|
- Source file: `framework/ui/components/molecules/vc-slider/vc-slider.vue`
|
|
146
146
|
|
|
@@ -240,20 +240,21 @@ const isActive = ref(true);
|
|
|
240
240
|
|
|
241
241
|
## Props
|
|
242
242
|
|
|
243
|
-
| Prop | Type | Default | Description
|
|
244
|
-
| -------------- | ---------------------- | ------- |
|
|
245
|
-
| `modelValue` | `boolean \| undefined` | -- | Bound value via `v-model`
|
|
246
|
-
| `label` | `string` | -- | Label text above the switch
|
|
247
|
-
| `hint` | `string` | -- | Helper text displayed below the switch
|
|
248
|
-
| `labelTooltip` | `string` | -- | Tooltip shown on the label info icon
|
|
249
|
-
| `tooltip` | `string` | -- | **Deprecated.** Use `hint` or `labelTooltip` instead
|
|
250
|
-
| `trueValue` | `boolean` | `true` | Value that represents the checked state
|
|
251
|
-
| `falseValue` | `boolean` | `false` | Value that represents the unchecked state
|
|
252
|
-
| `disabled` | `boolean` | `false` | Disables the switch
|
|
253
|
-
| `required` | `boolean` | `false` | Shows a required indicator on the label
|
|
254
|
-
| `error` | `boolean` | `false` | Enables error styling
|
|
255
|
-
| `errorMessage` | `string` | -- | Error message displayed below the switch
|
|
256
|
-
| `
|
|
243
|
+
| Prop | Type | Default | Description |
|
|
244
|
+
| -------------- | ---------------------- | ------- | -------------------------------------------------------------------------------------------------- |
|
|
245
|
+
| `modelValue` | `boolean \| undefined` | -- | Bound value via `v-model` |
|
|
246
|
+
| `label` | `string` | -- | Label text above the switch |
|
|
247
|
+
| `hint` | `string` | -- | Helper text displayed below the switch |
|
|
248
|
+
| `labelTooltip` | `string` | -- | Tooltip shown on the label info icon |
|
|
249
|
+
| `tooltip` | `string` | -- | **Deprecated.** Use `hint` or `labelTooltip` instead |
|
|
250
|
+
| `trueValue` | `boolean` | `true` | Value that represents the checked state |
|
|
251
|
+
| `falseValue` | `boolean` | `false` | Value that represents the unchecked state |
|
|
252
|
+
| `disabled` | `boolean` | `false` | Disables the switch |
|
|
253
|
+
| `required` | `boolean` | `false` | Shows a required indicator on the label |
|
|
254
|
+
| `error` | `boolean` | `false` | Enables error styling |
|
|
255
|
+
| `errorMessage` | `string` | -- | Error message displayed below the switch |
|
|
256
|
+
| `ariaLabel` | `string` | -- | Accessible name for the switch when no visible `label` is set. Applied only when `label` is empty. |
|
|
257
|
+
| `name` | `string` | -- | Field name used for validation/id generation (not rendered as an HTML name attribute on the input) |
|
|
257
258
|
|
|
258
259
|
## Events
|
|
259
260
|
|
|
@@ -236,21 +236,21 @@ const description = ref<string>("");
|
|
|
236
236
|
|
|
237
237
|
## Props
|
|
238
238
|
|
|
239
|
-
| Prop | Type | Default | Description
|
|
240
|
-
| ----------------- | --------- | ----------- |
|
|
241
|
-
| `modelValue` | `string` | `undefined` | Bound value via `v-model`
|
|
242
|
-
| `label` | `string` | -- | Label text displayed above the textarea
|
|
243
|
-
| `placeholder` | `string` | -- | Placeholder text inside the empty textarea
|
|
244
|
-
| `hint` | `string` | -- | Helper text displayed below the field
|
|
245
|
-
| `tooltip` | `string` | -- | Tooltip on the label info icon
|
|
246
|
-
| `maxlength` | `string` | `"1024"` | Maximum character count (native HTML attribute)
|
|
247
|
-
| `required` | `boolean` | `false` | Shows a required indicator on the label
|
|
248
|
-
| `error` | `boolean` | `false` | Enables error styling (red border + ring)
|
|
249
|
-
| `errorMessage` | `string` | -- | Error message text below the field
|
|
250
|
-
| `disabled` | `boolean` | `false` | Disables the textarea
|
|
251
|
-
| `name` | `string` | `"Field"` | HTML name attribute
|
|
252
|
-
| `multilanguage` | `boolean` | `false` | Shows language badge on the label
|
|
253
|
-
| `currentLanguage` | `string` | -- | Language code displayed in the badge
|
|
239
|
+
| Prop | Type | Default | Description |
|
|
240
|
+
| ----------------- | --------- | ----------- | ---------------------------------------------------------------------------------------------------- |
|
|
241
|
+
| `modelValue` | `string` | `undefined` | Bound value via `v-model` |
|
|
242
|
+
| `label` | `string` | -- | Label text displayed above the textarea |
|
|
243
|
+
| `placeholder` | `string` | -- | Placeholder text inside the empty textarea |
|
|
244
|
+
| `hint` | `string` | -- | Helper text displayed below the field |
|
|
245
|
+
| `tooltip` | `string` | -- | Tooltip on the label info icon |
|
|
246
|
+
| `maxlength` | `string` | `"1024"` | Maximum character count (native HTML attribute) |
|
|
247
|
+
| `required` | `boolean` | `false` | Shows a required indicator on the label |
|
|
248
|
+
| `error` | `boolean` | `false` | Enables error styling (red border + ring) |
|
|
249
|
+
| `errorMessage` | `string` | -- | Error message text below the field |
|
|
250
|
+
| `disabled` | `boolean` | `false` | Disables the textarea |
|
|
251
|
+
| `name` | `string` | `"Field"` | Field name used for validation/id generation (not applied as an HTML name attribute on the textarea) |
|
|
252
|
+
| `multilanguage` | `boolean` | `false` | Shows language badge on the label |
|
|
253
|
+
| `currentLanguage` | `string` | -- | Language code displayed in the badge |
|
|
254
254
|
|
|
255
255
|
## Events
|
|
256
256
|
|
|
@@ -148,7 +148,7 @@ Toasts use Sonner-style stacking: the newest toast is in front, older toasts sca
|
|
|
148
148
|
|
|
149
149
|
On touch devices, horizontal swipe dismisses toasts (threshold: 45px or velocity > 0.11px/ms).
|
|
150
150
|
|
|
151
|
-
The auto-dismiss timer (default
|
|
151
|
+
The auto-dismiss timer (default 3000ms) pauses on hover. Set `timeout: false` for persistent toasts.
|
|
152
152
|
|
|
153
153
|
```ts
|
|
154
154
|
notification("Quick flash", { timeout: 1500 });
|
|
@@ -246,11 +246,11 @@ These props are used internally by the notification system. You rarely need to s
|
|
|
246
246
|
|
|
247
247
|
| Prop | Type | Default | Description |
|
|
248
248
|
| ---------------- | ------------------------------------------------ | -------------- | ------------------------------------------------------ |
|
|
249
|
-
| `content` | `string \| Component`
|
|
249
|
+
| `content` | `string \| VNode \| Component` | -- | Notification message or custom component |
|
|
250
250
|
| `notificationId` | `number \| string` | -- | Unique identifier |
|
|
251
251
|
| `updateId` | `number \| string` | -- | ID for update tracking |
|
|
252
252
|
| `type` | `"default" \| "success" \| "error" \| "warning"` | `"default"` | Notification type (determines icon and accent color) |
|
|
253
|
-
| `timeout` | `number \| boolean` | `
|
|
253
|
+
| `timeout` | `number \| boolean` | `3000` | Auto-dismiss delay in ms, or `false` to disable |
|
|
254
254
|
| `pauseOnHover` | `boolean` | `true` | Pause timeout while mouse hovers over the toast |
|
|
255
255
|
| `limit` | `number` | -- | Maximum number of visible notifications |
|
|
256
256
|
| `position` | `NotificationPosition` | `"top-center"` | Screen position for the toast |
|
|
@@ -269,16 +269,18 @@ These props are used internally by the notification system. You rarely need to s
|
|
|
269
269
|
|
|
270
270
|
## Notification Service Methods
|
|
271
271
|
|
|
272
|
-
| Method
|
|
273
|
-
|
|
|
274
|
-
| `notification()`
|
|
275
|
-
| `notification.success()`
|
|
276
|
-
| `notification.error()`
|
|
277
|
-
| `notification.warning()`
|
|
278
|
-
| `notification.update()`
|
|
279
|
-
| `notification.remove()`
|
|
280
|
-
| `notification.clearAll()`
|
|
281
|
-
| `notification.
|
|
272
|
+
| Method | Signature | Description |
|
|
273
|
+
| ------------------------------ | -------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- |
|
|
274
|
+
| `notification()` | `(message: string \| VNode \| Component, options?: NotificationOptions) => string \| number` | Show a default notification |
|
|
275
|
+
| `notification.success()` | `(message: string \| VNode \| Component, options?: NotificationOptions) => string \| number` | Show a success notification |
|
|
276
|
+
| `notification.error()` | `(message: string \| VNode \| Component, options?: NotificationOptions) => string \| number` | Show an error notification |
|
|
277
|
+
| `notification.warning()` | `(message: string \| VNode \| Component, options?: NotificationOptions) => string \| number` | Show a warning notification |
|
|
278
|
+
| `notification.update()` | `(id: string \| number, options: NotificationOptions) => string \| number` | Update an existing notification; returns the id |
|
|
279
|
+
| `notification.remove()` | `(id?: string \| number) => void` | Remove a specific notification; omitting the id removes all (equivalent to `clearAll()`) |
|
|
280
|
+
| `notification.clearAll()` | `() => void` | Remove all notifications |
|
|
281
|
+
| `notification.clearPosition()` | `(position: NotificationPosition) => void` | Remove all notifications in one position |
|
|
282
|
+
| `notification.setPosition()` | `(position: NotificationPosition) => void` | Change the global position |
|
|
283
|
+
| `notification.debug()` | `() => { active; defaultOptions }` | Diagnostics helper: logs active toasts and default options, returns them |
|
|
282
284
|
|
|
283
285
|
## CSS Variables
|
|
284
286
|
|
|
@@ -89,6 +89,10 @@ VcApp orchestrates several internal systems:
|
|
|
89
89
|
|
|
90
90
|
On desktop viewports, VcApp renders a collapsible sidebar on the left with navigation menu items, user info in the footer, and the blade workspace on the right. On mobile viewports, the sidebar is replaced by a top bar with a hamburger menu that opens a slide-over navigation panel.
|
|
91
91
|
|
|
92
|
+
### Environment Indicator
|
|
93
|
+
|
|
94
|
+
VcApp renders a `VcEnvironmentBanner` when an environment name is detected via `useEnvironmentName()` (derived from the current hostname) and the environment is not ignored. The banner surfaces the environment name and color, making it obvious when you are working against a non-production instance.
|
|
95
|
+
|
|
92
96
|
### Sidebar Menu Search
|
|
93
97
|
|
|
94
98
|
::storybook id="layout-vcapp--with-sidebar-search" height="500"
|
|
@@ -140,7 +144,7 @@ If you use the `menu` slot to provide a custom menu, the `searchQuery` prop is p
|
|
|
140
144
|
|
|
141
145
|
### Dynamic Module Registration
|
|
142
146
|
|
|
143
|
-
Modules
|
|
147
|
+
Modules are provided/consumed via the `DynamicModulesKey` injection (see `injection-keys.ts` and `useShellBootstrap`) and loaded at runtime. Each module can contribute menu items, blades, toolbar actions, settings pages, and dashboard widgets. VcApp handles module loading errors gracefully by displaying notification toasts.
|
|
144
148
|
|
|
145
149
|
### App Hub
|
|
146
150
|
|
package/runtime/knowledge/docs/ui/components/organisms/vc-auth-layout/vc-auth-layout.docs.md
CHANGED
|
@@ -77,6 +77,24 @@ The card is centered both vertically and horizontally. On narrow viewports, it s
|
|
|
77
77
|
|
|
78
78
|
The layout uses a `<main>` element as the page landmark and an `<h2>` for the card title, providing a correct heading hierarchy for screen readers and SEO.
|
|
79
79
|
|
|
80
|
+
### App Version Footer
|
|
81
|
+
|
|
82
|
+
When the active route sets `meta.appVersion`, VcAuthLayout renders that string below the card (in a `.vc-auth-layout__version` element). Set it via your Vue Router route meta; when absent, nothing is rendered.
|
|
83
|
+
|
|
84
|
+
## CSS Custom Properties
|
|
85
|
+
|
|
86
|
+
| Variable | Default | Description |
|
|
87
|
+
| ------------------------------ | --------------------------------------------------------------- | ------------------------------ |
|
|
88
|
+
| `--auth-layout-bg` | `var(--neutrals-100)` | Page background |
|
|
89
|
+
| `--auth-layout-card-bg` | `var(--additional-50)` | Card background |
|
|
90
|
+
| `--auth-layout-card-border` | `var(--neutrals-200)` | Card border color |
|
|
91
|
+
| `--auth-layout-card-shadow` | `0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1)` | Card shadow |
|
|
92
|
+
| `--auth-layout-card-radius` | `12px` | Card corner radius |
|
|
93
|
+
| `--auth-layout-card-max-width` | `420px` | Card / footer max width |
|
|
94
|
+
| `--auth-layout-title-color` | `var(--neutrals-900)` | Title text color |
|
|
95
|
+
| `--auth-layout-subtitle-color` | `var(--neutrals-400)` | Subtitle and footer text color |
|
|
96
|
+
| `--auth-layout-version-color` | `var(--neutrals-400)` | Version string text color |
|
|
97
|
+
|
|
80
98
|
## Recipe: Sign-In Page with SSO
|
|
81
99
|
|
|
82
100
|
```vue
|