@vc-shell/vc-app-skill 2.1.0-pr255.4dc5c0d → 2.1.0-pr256.0fe3abb
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/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/blade-navigation/table-query-state/useTableQueryState.docs.md +95 -0
- 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 +35 -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 +183 -0
- package/runtime/knowledge/docs/core/notifications/composables/useBroadcastFilter.docs.md +117 -0
- package/runtime/knowledge/docs/core/notifications/composables/useNotificationContext.docs.md +150 -0
- package/runtime/knowledge/docs/core/notifications/composables/useNotificationStore.docs.md +114 -0
- 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 +123 -0
- 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/dashboard-widget-skeleton.docs.md +33 -0
- 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} +26 -25
- 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 +412 -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 +130 -0
- package/runtime/knowledge/docs/ui/composables/useTableSelection.docs.md +4 -4
- package/runtime/knowledge/docs/ui/composables/useTableSort.docs.md +2 -3
|
@@ -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
|
|
@@ -53,7 +53,6 @@ Use VcBlade for every screen in a vc-shell application -- it is the standard con
|
|
|
53
53
|
<VcBlade
|
|
54
54
|
title="My First Blade"
|
|
55
55
|
icon="lucide-box"
|
|
56
|
-
@close="$emit('close:blade')"
|
|
57
56
|
>
|
|
58
57
|
<div class="tw-p-4">Hello from a blade!</div>
|
|
59
58
|
</VcBlade>
|
|
@@ -64,6 +63,9 @@ defineBlade({ name: "MyFirstBlade", url: "/my-first-blade" });
|
|
|
64
63
|
</script>
|
|
65
64
|
```
|
|
66
65
|
|
|
66
|
+
!!! tip "No close/expand wiring needed"
|
|
67
|
+
Inside the navigation stack VcBlade closes itself and reads its expanded/closable state from the stack automatically. You don't declare `expanded`/`closable` props or forward `@close`/`@expand`/`@collapse` events — that wiring is a legacy fallback kept only for standalone (Storybook) use.
|
|
68
|
+
|
|
67
69
|
!!! tip "Every blade needs a name"
|
|
68
70
|
Every blade must define a `name` in `defineBlade`. This is how other blades reference it: `openBlade({ name: "MyFirstBlade" })`. The `url` is optional and controls the URL segment.
|
|
69
71
|
|
|
@@ -101,14 +103,9 @@ A blade has four visual zones, rendered top-to-bottom:
|
|
|
101
103
|
:title="title"
|
|
102
104
|
icon="lucide-tag"
|
|
103
105
|
width="50%"
|
|
104
|
-
:expanded="expanded"
|
|
105
|
-
:closable="closable"
|
|
106
106
|
:toolbar-items="toolbar"
|
|
107
107
|
:modified="hasChanges"
|
|
108
108
|
:loading="isLoading"
|
|
109
|
-
@close="$emit('close:blade')"
|
|
110
|
-
@expand="$emit('expand:blade')"
|
|
111
|
-
@collapse="$emit('collapse:blade')"
|
|
112
109
|
>
|
|
113
110
|
<!-- Your content here -->
|
|
114
111
|
</VcBlade>
|
|
@@ -125,29 +122,13 @@ defineBlade({
|
|
|
125
122
|
routable: false, // Optional: exclude from direct URL access
|
|
126
123
|
});
|
|
127
124
|
|
|
128
|
-
//
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
options?: { sellerProduct?: object };
|
|
134
|
-
}
|
|
135
|
-
|
|
136
|
-
const props = withDefaults(defineProps<Props>(), {
|
|
137
|
-
expanded: true,
|
|
138
|
-
closable: true,
|
|
139
|
-
});
|
|
140
|
-
|
|
141
|
-
export interface Emits {
|
|
142
|
-
(event: "close:blade"): void;
|
|
143
|
-
(event: "expand:blade"): void;
|
|
144
|
-
(event: "collapse:blade"): void;
|
|
145
|
-
}
|
|
146
|
-
const emit = defineEmits<Emits>();
|
|
147
|
-
|
|
148
|
-
const { openBlade, closeSelf, callParent, onBeforeClose } = useBlade();
|
|
125
|
+
// Navigation state and data come from useBlade() — not props.
|
|
126
|
+
// `param` (entity id) and `options` (rich context) are reactive refs.
|
|
127
|
+
const { openBlade, closeSelf, callParent, onBeforeClose, param, options } = useBlade<{
|
|
128
|
+
sellerProduct?: object;
|
|
129
|
+
}>();
|
|
149
130
|
|
|
150
|
-
const title = computed(() => (
|
|
131
|
+
const title = computed(() => (param.value ? "Edit Offer" : "New Offer"));
|
|
151
132
|
const isLoading = ref(false);
|
|
152
133
|
const hasChanges = ref(false);
|
|
153
134
|
|
|
@@ -166,15 +147,18 @@ defineExpose({ title });
|
|
|
166
147
|
</script>
|
|
167
148
|
```
|
|
168
149
|
|
|
150
|
+
!!! warning "Legacy pattern: `expanded` / `closable` props and `close:blade` emits"
|
|
151
|
+
Older blades declared `defineProps<{ expanded; closable; param }>()`, wired `withDefaults`, and re-emitted `close:blade` / `expand:blade` / `collapse:blade`. This is no longer needed. The navigation stack owns expanded/closable state (a workspace root is not closable, the rightmost blade is expanded), and VcBlade closes itself. Read `param`, `options`, `query`, `expanded`, and `closable` from `useBlade()` instead — see [useBlade docs](../../../../core/composables/useBlade/useBlade.docs.md).
|
|
152
|
+
|
|
169
153
|
### defineOptions Reference
|
|
170
154
|
|
|
171
|
-
| Property | Type | Description
|
|
172
|
-
| ------------- | --------- |
|
|
173
|
-
| `name` | `string` | **Required.** Unique blade identifier for `openBlade({ name: "..." })`.
|
|
174
|
-
| `url` | `string` | URL path segment (e.g., `"/offers"` produces `/#/.../offers`).
|
|
175
|
-
| `isWorkspace` | `boolean` | Marks blade as a workspace (root-level, not closable).
|
|
176
|
-
| `routable` | `boolean` | When `false`, blade cannot be opened via direct URL navigation.
|
|
177
|
-
| `menuItem` | `object` | Registers a sidebar menu entry: `{
|
|
155
|
+
| Property | Type | Description |
|
|
156
|
+
| ------------- | --------- | ------------------------------------------------------------------------------------------------------------------ |
|
|
157
|
+
| `name` | `string` | **Required.** Unique blade identifier for `openBlade({ name: "..." })`. |
|
|
158
|
+
| `url` | `string` | URL path segment (e.g., `"/offers"` produces `/#/.../offers`). |
|
|
159
|
+
| `isWorkspace` | `boolean` | Marks blade as a workspace (root-level, not closable). |
|
|
160
|
+
| `routable` | `boolean` | When `false`, blade cannot be opened via direct URL navigation. |
|
|
161
|
+
| `menuItem` | `object` | Registers a sidebar menu entry: `{ title, icon, priority }` (plus optional `groupConfig`, `permissions`, `badge`). |
|
|
178
162
|
|
|
179
163
|
### defineExpose
|
|
180
164
|
|
|
@@ -310,10 +294,13 @@ const entityId = computed(() => ctx.value.item?.id);
|
|
|
310
294
|
|
|
311
295
|
### Expanded / Collapsed
|
|
312
296
|
|
|
313
|
-
`expanded` indicates whether this blade is the active (rightmost) one. The navigation system manages it --
|
|
297
|
+
`expanded` indicates whether this blade is the active (rightmost) one. The navigation system manages it entirely -- **don't** declare an `expanded` prop or forward `@expand`/`@collapse`. If you need the current value, read it reactively from `useBlade()`:
|
|
314
298
|
|
|
315
|
-
```
|
|
316
|
-
|
|
299
|
+
```ts
|
|
300
|
+
const { expanded } = useBlade();
|
|
301
|
+
|
|
302
|
+
// e.g. show a compact layout when this blade is collapsed behind others
|
|
303
|
+
const layout = computed(() => (expanded.value ? "full" : "compact"));
|
|
317
304
|
```
|
|
318
305
|
|
|
319
306
|
### Closing
|
|
@@ -372,10 +359,11 @@ interface IBladeToolbar {
|
|
|
372
359
|
id?: string;
|
|
373
360
|
title?: string | Ref<string> | ComputedRef<string>;
|
|
374
361
|
icon?: string | (() => string);
|
|
375
|
-
clickHandler?(): void;
|
|
376
|
-
disabled?: boolean | ComputedRef<boolean>;
|
|
377
|
-
isVisible?: boolean | Ref<boolean> | ComputedRef<boolean> | ((blade?: BladeDescriptor) => boolean);
|
|
362
|
+
clickHandler?(app?: Record<string, any> | null): void;
|
|
363
|
+
disabled?: boolean | ComputedRef<boolean | undefined>;
|
|
364
|
+
isVisible?: boolean | Ref<boolean | undefined> | ComputedRef<boolean | undefined> | ((blade?: BladeDescriptor) => boolean | undefined);
|
|
378
365
|
separator?: "left" | "right" | "both";
|
|
366
|
+
permissions?: string | string[];
|
|
379
367
|
}
|
|
380
368
|
```
|
|
381
369
|
|
|
@@ -555,7 +543,7 @@ const toolbar = ref([
|
|
|
555
543
|
### Blade with Data Table
|
|
556
544
|
|
|
557
545
|
```vue
|
|
558
|
-
<VcBlade :title="$t('ORDERS.LIST.TITLE')" icon="lucide-file-text" width="50%" :
|
|
546
|
+
<VcBlade :title="$t('ORDERS.LIST.TITLE')" icon="lucide-file-text" width="50%" :toolbar-items="toolbar">
|
|
559
547
|
<VcDataTable
|
|
560
548
|
v-model:sort-field="sortField" v-model:sort-order="sortOrder"
|
|
561
549
|
v-model:search-value="searchValue" v-model:active-item-id="selectedItemId"
|
|
@@ -582,16 +570,6 @@ defineOptions({});
|
|
|
582
570
|
defineBlade({ name: "ProductDetails", url: "/product" });
|
|
583
571
|
```
|
|
584
572
|
|
|
585
|
-
### Forgetting to expose the title
|
|
586
|
-
|
|
587
|
-
```ts
|
|
588
|
-
// WRONG -- Breadcrumbs show nothing
|
|
589
|
-
const title = computed(() => product.value?.name);
|
|
590
|
-
|
|
591
|
-
// CORRECT
|
|
592
|
-
defineExpose({ title });
|
|
593
|
-
```
|
|
594
|
-
|
|
595
573
|
### Wrong onBeforeClose return value
|
|
596
574
|
|
|
597
575
|
```ts
|
|
@@ -614,37 +592,29 @@ const { openBlade } = useBlade();
|
|
|
614
592
|
openBlade({ name: "ProductsList" });
|
|
615
593
|
```
|
|
616
594
|
|
|
617
|
-
### Not passing expanded/closable through
|
|
618
|
-
|
|
619
|
-
```vue
|
|
620
|
-
<!-- WRONG -- hardcoded, ignores navigation system -->
|
|
621
|
-
<VcBlade :expanded="true" :closable="true">
|
|
622
|
-
|
|
623
|
-
<!-- CORRECT -- pass props from navigation -->
|
|
624
|
-
<VcBlade :expanded="expanded" :closable="closable">
|
|
625
|
-
```
|
|
626
|
-
|
|
627
595
|
## Props
|
|
628
596
|
|
|
629
|
-
| Prop | Type | Default | Description
|
|
630
|
-
| -------------- | ------------------ | ----------- |
|
|
631
|
-
| `title` | `string` | `undefined` | Title text in the blade header.
|
|
632
|
-
| `subtitle` | `string` | `undefined` | Secondary text below the title.
|
|
633
|
-
| `icon` | `string` | `undefined` | Icon name (e.g., `"lucide-box"`) displayed before the title.
|
|
634
|
-
| `width` | `number \| string` | `"30%"` | Blade width. Numbers are pixels; strings are CSS values.
|
|
635
|
-
|
|
|
636
|
-
|
|
|
637
|
-
| `toolbarItems` | `IBladeToolbar[]` | `[]` | Action buttons in the toolbar zone.
|
|
638
|
-
| `modified` | `boolean` | `undefined` | Shows unsaved changes indicator and banner.
|
|
639
|
-
| `loading` | `boolean` | `undefined` | Shows skeleton placeholders for all blade zones.
|
|
597
|
+
| Prop | Type | Default | Description |
|
|
598
|
+
| -------------- | ------------------ | ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
599
|
+
| `title` | `string` | `undefined` | Title text in the blade header. |
|
|
600
|
+
| `subtitle` | `string` | `undefined` | Secondary text below the title. |
|
|
601
|
+
| `icon` | `string` | `undefined` | Icon name (e.g., `"lucide-box"`) displayed before the title. |
|
|
602
|
+
| `width` | `number \| string` | `"30%"` | Blade width. Numbers are pixels; strings are CSS values. |
|
|
603
|
+
| ~~`expanded`~~ | `boolean` | `undefined` | **Deprecated.** Managed by the navigation stack — ignored inside blade navigation, where the active (rightmost) blade is expanded automatically. Read the live value from `useBlade().expanded`. Retained only as a standalone/Storybook fallback. |
|
|
604
|
+
| ~~`closable`~~ | `boolean` | `true` | **Deprecated.** Managed by the navigation stack — ignored inside blade navigation, where closability is derived from stack position (a workspace root is not closable). Read the live value from `useBlade().closable`. Retained only as a standalone/Storybook fallback. |
|
|
605
|
+
| `toolbarItems` | `IBladeToolbar[]` | `[]` | Action buttons in the toolbar zone. |
|
|
606
|
+
| `modified` | `boolean` | `undefined` | Shows unsaved changes indicator and banner. |
|
|
607
|
+
| `loading` | `boolean` | `undefined` | Shows skeleton placeholders for all blade zones. |
|
|
640
608
|
|
|
641
609
|
## Events
|
|
642
610
|
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
|
646
|
-
|
|
|
647
|
-
| `
|
|
611
|
+
> **Note:** These events fire **only in standalone/Storybook use**. Inside the navigation stack VcBlade closes itself (via `closeSelf()`) and handles expand/collapse internally, so there is nothing to forward. Use `onBeforeClose()` from `useBlade()` to run logic (like an unsaved-changes guard) before the blade closes. A leftover `@close` listener inside blade navigation triggers a dev-mode deprecation warning.
|
|
612
|
+
|
|
613
|
+
| Event | Payload | Description |
|
|
614
|
+
| ---------- | ------- | ------------------------------------------------------------------ |
|
|
615
|
+
| `close` | -- | Standalone only. Close button clicked. |
|
|
616
|
+
| `expand` | -- | Standalone only. Blade expanded (no `maximized` context present). |
|
|
617
|
+
| `collapse` | -- | Standalone only. Blade collapsed (no `maximized` context present). |
|
|
648
618
|
|
|
649
619
|
## Slots
|
|
650
620
|
|
|
@@ -73,20 +73,18 @@ The central engine. Distributes `availableWidth` among visible columns according
|
|
|
73
73
|
|
|
74
74
|
```ts
|
|
75
75
|
interface EngineInput {
|
|
76
|
-
visibleIds: string[]; // Ordered list of visible column IDs
|
|
77
|
-
specs: Record<string, ColumnSpec>; // Per-column: weight, minWidth, maxWidth
|
|
78
76
|
availableWidth: number; // Container width in px
|
|
79
|
-
|
|
77
|
+
columns: { id: string; spec: ColumnSpec }[]; // Ordered visible columns with per-column weight, minPx, maxPx
|
|
78
|
+
mode: "fit" | "gap"; // "gap" leaves filler space, "fit" fills width
|
|
80
79
|
}
|
|
81
80
|
|
|
82
81
|
interface EngineOutput {
|
|
83
82
|
widths: Record<string, number>; // Computed px width per column ID
|
|
84
|
-
|
|
85
|
-
overflow: boolean; // true when sum(minWidth) > availableWidth
|
|
83
|
+
fillerWidth: number; // Leftover space returned to the filler pseudo-element
|
|
86
84
|
}
|
|
87
85
|
```
|
|
88
86
|
|
|
89
|
-
In crisis (`
|
|
87
|
+
In crisis (when `sum(minPx) > availableWidth`), the engine squeezes columns proportionally below their minimums (`crisisSqueeze`) and emits a `console.warn`.
|
|
90
88
|
|
|
91
89
|
#### `parseColumnWidth(value: string | number | undefined, availableWidth: number): ParsedWidth`
|
|
92
90
|
|
|
@@ -94,14 +92,14 @@ Parses a `VcColumn` `width` prop into a concrete pixel value.
|
|
|
94
92
|
|
|
95
93
|
```ts
|
|
96
94
|
type ParsedWidth =
|
|
97
|
-
| { type: "px";
|
|
98
|
-
| { type: "
|
|
99
|
-
| { type: "auto";
|
|
95
|
+
| { type: "px"; desiredPx: number } // "200", 200, "200px"
|
|
96
|
+
| { type: "percent"; desiredPx: number } // "20%" → 0.2 * availableWidth
|
|
97
|
+
| { type: "auto"; desiredPx: null }; // undefined, "auto"
|
|
100
98
|
```
|
|
101
99
|
|
|
102
|
-
#### `buildInitialWeights(parsed: ParsedWidth[], availableWidth: number): Record<string, number>`
|
|
100
|
+
#### `buildInitialWeights(parsed: { id: string; parsed: ParsedWidth }[], availableWidth: number): Record<string, number>`
|
|
103
101
|
|
|
104
|
-
Converts an array of `
|
|
102
|
+
Converts an array of `{ id, parsed }` entries (one per column) into initial weights. Auto columns receive an equal share of the space not claimed by px/% columns.
|
|
105
103
|
|
|
106
104
|
```ts
|
|
107
105
|
// Example: three columns — 200px, 20%, auto — with 800px available
|