@codemonster-ru/vueforge 0.64.0 → 0.66.0
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/README.md +120 -1
- package/dist/index.css +1 -1
- package/dist/index.d.ts +3 -0
- package/dist/index.ts.mjs +4213 -3858
- package/dist/index.ts.umd.js +3 -3
- package/dist/package/components/__tests__/app-shell.test.d.ts +1 -0
- package/dist/package/components/__tests__/notification-center.test.d.ts +1 -0
- package/dist/package/components/app-shell.vue.d.ts +66 -0
- package/dist/package/components/filter-chips.vue.d.ts +1 -1
- package/dist/package/components/notification-center.vue.d.ts +87 -0
- package/dist/package/config/theme-core.d.ts +68 -0
- package/dist/package/themes/default/components/app-shell.d.ts +25 -0
- package/dist/package/themes/default/components/notification-center.d.ts +43 -0
- package/dist/package/themes/default/index.d.ts +66 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -83,6 +83,8 @@ import {
|
|
|
83
83
|
SplitButton,
|
|
84
84
|
ContextMenu,
|
|
85
85
|
CommandPalette,
|
|
86
|
+
NotificationCenter,
|
|
87
|
+
AppShell,
|
|
86
88
|
Tour,
|
|
87
89
|
} from '@codemonster-ru/vueforge';
|
|
88
90
|
import '@codemonster-ru/vueforge/dist/index.css';
|
|
@@ -228,6 +230,12 @@ app.use(VueForge, {
|
|
|
228
230
|
{ label: 'Save as draft', value: 'draft', group: 'Actions' },
|
|
229
231
|
]"
|
|
230
232
|
/>
|
|
233
|
+
<NotificationCenter v-model="notificationsOpen" v-model:items="notificationsItems" />
|
|
234
|
+
<AppShell v-model="sidebarCollapsed">
|
|
235
|
+
<template #sidebar>Sidebar content</template>
|
|
236
|
+
<template #header>Header content</template>
|
|
237
|
+
<div>Main content</div>
|
|
238
|
+
</AppShell>
|
|
231
239
|
<Tour v-model="tourOpen" :steps="tourSteps" />
|
|
232
240
|
```
|
|
233
241
|
|
|
@@ -273,6 +281,8 @@ app.use(VueForge, {
|
|
|
273
281
|
- SplitButton
|
|
274
282
|
- ContextMenu
|
|
275
283
|
- CommandPalette
|
|
284
|
+
- NotificationCenter
|
|
285
|
+
- AppShell
|
|
276
286
|
- Tour
|
|
277
287
|
- Popover
|
|
278
288
|
- Select
|
|
@@ -322,6 +332,8 @@ Input / InputGroup / Search / Password / Textarea (quick API):
|
|
|
322
332
|
- `NumberInput`: numeric control, supports `v-model`, `min`, `max`, `step`, `precision`, `controls`, `size`, `variant`.
|
|
323
333
|
- `Splitter`: resizable multi-panel container with draggable separators and `v-model` percentage sizes.
|
|
324
334
|
- `Tour`: guided step-by-step onboarding overlay anchored to target elements.
|
|
335
|
+
- `NotificationCenter`: persistent notifications inbox with read/unread state and bulk actions.
|
|
336
|
+
- `AppShell`: application layout shell with sidebar/header/main/footer regions, collapse toggle, and mobile drawer behavior.
|
|
325
337
|
- `Wizard`: multi-step flow container with linear navigation, per-step validation, and completion events.
|
|
326
338
|
- `Textarea`: multi-line control, same as Input plus `rows`.
|
|
327
339
|
- `TagInput`: token/tag control, supports `v-model` (array), suggestions, custom tags, `maxTags`, `clearable`, `size`, `variant`.
|
|
@@ -2057,6 +2069,113 @@ Component tokens (override via `theme.overrides.components.commandPalette`):
|
|
|
2057
2069
|
- `shortcutBackgroundColor`, `shortcutTextColor`, `shortcutFontSize`
|
|
2058
2070
|
- `emptyPadding`, `emptyColor`
|
|
2059
2071
|
|
|
2072
|
+
## NotificationCenter
|
|
2073
|
+
|
|
2074
|
+
Props:
|
|
2075
|
+
|
|
2076
|
+
- `modelValue?: boolean` (v-model)
|
|
2077
|
+
- `items?: Array<{ id: string | number; title: string; message?: string; date?: string; read?: boolean; severity?: 'neutral' | 'info' | 'success' | 'warn' | 'danger'; avatar?: string }>`
|
|
2078
|
+
- `title?: string` (default `Notifications`)
|
|
2079
|
+
- `emptyText?: string` (default `No notifications`)
|
|
2080
|
+
- `closeOnOverlay?: boolean` (default `true`)
|
|
2081
|
+
- `closeOnEsc?: boolean` (default `true`)
|
|
2082
|
+
- `markAllLabel?: string` (default `Mark all as read`)
|
|
2083
|
+
- `clearLabel?: string` (default `Clear`)
|
|
2084
|
+
- `closeLabel?: string` (default `Close notifications`)
|
|
2085
|
+
- `readLabel?: string` (default `Mark as read`)
|
|
2086
|
+
- `unreadLabel?: string` (default `Mark as unread`)
|
|
2087
|
+
|
|
2088
|
+
Slots:
|
|
2089
|
+
|
|
2090
|
+
- `item` (optional) - slot props `{ item, index, toggleRead }`
|
|
2091
|
+
- `empty` (optional)
|
|
2092
|
+
|
|
2093
|
+
Events:
|
|
2094
|
+
|
|
2095
|
+
- `update:modelValue`
|
|
2096
|
+
- `update:items`
|
|
2097
|
+
- `open`
|
|
2098
|
+
- `close`
|
|
2099
|
+
- `click`
|
|
2100
|
+
- `read`
|
|
2101
|
+
- `readAll`
|
|
2102
|
+
- `clear`
|
|
2103
|
+
|
|
2104
|
+
Example:
|
|
2105
|
+
|
|
2106
|
+
```vue
|
|
2107
|
+
<NotificationCenter v-model="open" v-model:items="notifications" />
|
|
2108
|
+
```
|
|
2109
|
+
|
|
2110
|
+
### NotificationCenter tokens
|
|
2111
|
+
|
|
2112
|
+
Component tokens (override via `theme.overrides.components.notificationCenter`):
|
|
2113
|
+
|
|
2114
|
+
- `zIndex`, `overlayBackgroundColor`
|
|
2115
|
+
- `top`, `right`, `width`, `maxWidth`, `maxHeight`
|
|
2116
|
+
- `borderColor`, `borderRadius`, `backgroundColor`, `textColor`, `shadow`
|
|
2117
|
+
- `dividerColor`, `headerGap`, `headerPadding`
|
|
2118
|
+
- `titleGap`, `titleFontSize`, `titleLineHeight`, `titleFontWeight`
|
|
2119
|
+
- `badgeSize`, `badgeBackgroundColor`, `badgeTextColor`, `badgeFontSize`
|
|
2120
|
+
- `actionsGap`, `closeSize`, `closeHoverBackgroundColor`, `disabledOpacity`
|
|
2121
|
+
- `itemGap`, `itemPadding`, `unreadBackgroundColor`
|
|
2122
|
+
- `avatarSize`, `avatarBackgroundColor`, `avatarTextColor`, `avatarFontSize`
|
|
2123
|
+
- `itemTitleFontSize`, `itemTitleFontWeight`, `itemMetaFontSize`, `itemMetaColor`
|
|
2124
|
+
- `emptyPadding`, `emptyColor`
|
|
2125
|
+
|
|
2126
|
+
## AppShell
|
|
2127
|
+
|
|
2128
|
+
Props:
|
|
2129
|
+
|
|
2130
|
+
- `modelValue?: boolean` (v-model collapsed state on desktop)
|
|
2131
|
+
- `sidebarWidth?: string` (default `16rem`)
|
|
2132
|
+
- `sidebarCollapsedWidth?: string` (default `4.25rem`)
|
|
2133
|
+
- `mobileBreakpoint?: number` (default `1024`)
|
|
2134
|
+
- `stickyHeader?: boolean` (default `true`)
|
|
2135
|
+
- `fullHeight?: boolean` (default `true`)
|
|
2136
|
+
- `showToggle?: boolean` (default `true`)
|
|
2137
|
+
- `closeOnEsc?: boolean` (default `true`)
|
|
2138
|
+
- `toggleLabel?: string` (default `Toggle sidebar`)
|
|
2139
|
+
- `closeSidebarLabel?: string` (default `Close sidebar`)
|
|
2140
|
+
- `toggleIcon?: string` (default `☰`)
|
|
2141
|
+
- `mainAriaLabel?: string` (default `Main content`)
|
|
2142
|
+
|
|
2143
|
+
Slots:
|
|
2144
|
+
|
|
2145
|
+
- `sidebar` (optional) - slot props `{ mobile, collapsed }`
|
|
2146
|
+
- `header` (optional) - slot props `{ mobile, collapsed, mobileSidebarOpen, toggleSidebar }`
|
|
2147
|
+
- `default` - main content
|
|
2148
|
+
- `footer` (optional) - slot props `{ mobile, collapsed }`
|
|
2149
|
+
|
|
2150
|
+
Events:
|
|
2151
|
+
|
|
2152
|
+
- `update:modelValue`
|
|
2153
|
+
- `sidebar-toggle`
|
|
2154
|
+
- `breakpoint-change`
|
|
2155
|
+
|
|
2156
|
+
Example:
|
|
2157
|
+
|
|
2158
|
+
```vue
|
|
2159
|
+
<AppShell v-model="collapsed">
|
|
2160
|
+
<template #sidebar>Sidebar</template>
|
|
2161
|
+
<template #header>Header</template>
|
|
2162
|
+
<div>Main</div>
|
|
2163
|
+
<template #footer>Footer</template>
|
|
2164
|
+
</AppShell>
|
|
2165
|
+
```
|
|
2166
|
+
|
|
2167
|
+
### AppShell tokens
|
|
2168
|
+
|
|
2169
|
+
Component tokens (override via `theme.overrides.components.appShell`):
|
|
2170
|
+
|
|
2171
|
+
- `gap`, `backgroundColor`, `textColor`
|
|
2172
|
+
- `sidebarBackgroundColor`, `sidebarBorderColor`
|
|
2173
|
+
- `headerHeight`, `headerPadding`, `headerGap`, `headerBackgroundColor`, `headerBorderColor`
|
|
2174
|
+
- `contentPadding`, `mainBackgroundColor`
|
|
2175
|
+
- `footerPadding`, `footerBorderColor`, `footerBackgroundColor`
|
|
2176
|
+
- `toggleSize`, `toggleBorderRadius`, `toggleBackgroundColor`, `toggleTextColor`, `toggleHoverBackgroundColor`
|
|
2177
|
+
- `overlayBackgroundColor`, `zIndex`
|
|
2178
|
+
|
|
2060
2179
|
## Tour
|
|
2061
2180
|
|
|
2062
2181
|
Props:
|
|
@@ -2801,7 +2920,7 @@ VueForge exposes design tokens as CSS variables generated from the theme preset.
|
|
|
2801
2920
|
Typed tokens:
|
|
2802
2921
|
|
|
2803
2922
|
- `ThemeTokens`/`ThemeOptions`/`ThemePreset` are exported for type-safe theming in TS.
|
|
2804
|
-
- `components.*` accepts component-specific tokens (typed keys: button/card/checkbox/radio/tabs/accordion/toast/alert/emptyState/input/inputGroup/inlineEdit/searchInput/mentionInput/passwordInput/otpInput/colorPicker/maskedInput/numberInput/form/formField/textarea/link/breadcrumbs/menu/modal/confirmDialog/drawer/popover/dropdown/contextMenu/commandPalette/tour/select/autocomplete/combobox/multiselect/taginput/datepicker/calendar/daterangepicker/timepicker/datetimepicker/pagination/switch/segmentedControl/tooltip/skeleton/progress/badge/chip/filterChips/avatar/datatable/slider/splitter/stepper/wizard/rating/tree/treeselect/virtualScroller).
|
|
2923
|
+
- `components.*` accepts component-specific tokens (typed keys: button/card/checkbox/radio/tabs/accordion/toast/alert/emptyState/input/inputGroup/inlineEdit/searchInput/mentionInput/passwordInput/otpInput/colorPicker/maskedInput/numberInput/form/formField/textarea/link/breadcrumbs/menu/modal/confirmDialog/drawer/popover/dropdown/contextMenu/commandPalette/notificationCenter/appShell/tour/select/autocomplete/combobox/multiselect/taginput/datepicker/calendar/daterangepicker/timepicker/datetimepicker/pagination/switch/segmentedControl/tooltip/skeleton/progress/badge/chip/filterChips/avatar/datatable/slider/splitter/stepper/wizard/rating/tree/treeselect/virtualScroller).
|
|
2805
2924
|
|
|
2806
2925
|
Default core values (from `DefaultTheme`):
|
|
2807
2926
|
|