@codemonster-ru/vueforge 0.64.0 → 0.65.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 CHANGED
@@ -83,6 +83,7 @@ import {
83
83
  SplitButton,
84
84
  ContextMenu,
85
85
  CommandPalette,
86
+ NotificationCenter,
86
87
  Tour,
87
88
  } from '@codemonster-ru/vueforge';
88
89
  import '@codemonster-ru/vueforge/dist/index.css';
@@ -228,6 +229,7 @@ app.use(VueForge, {
228
229
  { label: 'Save as draft', value: 'draft', group: 'Actions' },
229
230
  ]"
230
231
  />
232
+ <NotificationCenter v-model="notificationsOpen" v-model:items="notificationsItems" />
231
233
  <Tour v-model="tourOpen" :steps="tourSteps" />
232
234
  ```
233
235
 
@@ -273,6 +275,7 @@ app.use(VueForge, {
273
275
  - SplitButton
274
276
  - ContextMenu
275
277
  - CommandPalette
278
+ - NotificationCenter
276
279
  - Tour
277
280
  - Popover
278
281
  - Select
@@ -322,6 +325,7 @@ Input / InputGroup / Search / Password / Textarea (quick API):
322
325
  - `NumberInput`: numeric control, supports `v-model`, `min`, `max`, `step`, `precision`, `controls`, `size`, `variant`.
323
326
  - `Splitter`: resizable multi-panel container with draggable separators and `v-model` percentage sizes.
324
327
  - `Tour`: guided step-by-step onboarding overlay anchored to target elements.
328
+ - `NotificationCenter`: persistent notifications inbox with read/unread state and bulk actions.
325
329
  - `Wizard`: multi-step flow container with linear navigation, per-step validation, and completion events.
326
330
  - `Textarea`: multi-line control, same as Input plus `rows`.
327
331
  - `TagInput`: token/tag control, supports `v-model` (array), suggestions, custom tags, `maxTags`, `clearable`, `size`, `variant`.
@@ -2057,6 +2061,60 @@ Component tokens (override via `theme.overrides.components.commandPalette`):
2057
2061
  - `shortcutBackgroundColor`, `shortcutTextColor`, `shortcutFontSize`
2058
2062
  - `emptyPadding`, `emptyColor`
2059
2063
 
2064
+ ## NotificationCenter
2065
+
2066
+ Props:
2067
+
2068
+ - `modelValue?: boolean` (v-model)
2069
+ - `items?: Array<{ id: string | number; title: string; message?: string; date?: string; read?: boolean; severity?: 'neutral' | 'info' | 'success' | 'warn' | 'danger'; avatar?: string }>`
2070
+ - `title?: string` (default `Notifications`)
2071
+ - `emptyText?: string` (default `No notifications`)
2072
+ - `closeOnOverlay?: boolean` (default `true`)
2073
+ - `closeOnEsc?: boolean` (default `true`)
2074
+ - `markAllLabel?: string` (default `Mark all as read`)
2075
+ - `clearLabel?: string` (default `Clear`)
2076
+ - `closeLabel?: string` (default `Close notifications`)
2077
+ - `readLabel?: string` (default `Mark as read`)
2078
+ - `unreadLabel?: string` (default `Mark as unread`)
2079
+
2080
+ Slots:
2081
+
2082
+ - `item` (optional) - slot props `{ item, index, toggleRead }`
2083
+ - `empty` (optional)
2084
+
2085
+ Events:
2086
+
2087
+ - `update:modelValue`
2088
+ - `update:items`
2089
+ - `open`
2090
+ - `close`
2091
+ - `click`
2092
+ - `read`
2093
+ - `readAll`
2094
+ - `clear`
2095
+
2096
+ Example:
2097
+
2098
+ ```vue
2099
+ <NotificationCenter v-model="open" v-model:items="notifications" />
2100
+ ```
2101
+
2102
+ ### NotificationCenter tokens
2103
+
2104
+ Component tokens (override via `theme.overrides.components.notificationCenter`):
2105
+
2106
+ - `zIndex`, `overlayBackgroundColor`
2107
+ - `top`, `right`, `width`, `maxWidth`, `maxHeight`
2108
+ - `borderColor`, `borderRadius`, `backgroundColor`, `textColor`, `shadow`
2109
+ - `dividerColor`, `headerGap`, `headerPadding`
2110
+ - `titleGap`, `titleFontSize`, `titleLineHeight`, `titleFontWeight`
2111
+ - `badgeSize`, `badgeBackgroundColor`, `badgeTextColor`, `badgeFontSize`
2112
+ - `actionsGap`, `closeSize`, `closeHoverBackgroundColor`, `disabledOpacity`
2113
+ - `itemGap`, `itemPadding`, `unreadBackgroundColor`
2114
+ - `avatarSize`, `avatarBackgroundColor`, `avatarTextColor`, `avatarFontSize`
2115
+ - `itemTitleFontSize`, `itemTitleFontWeight`, `itemMetaFontSize`, `itemMetaColor`
2116
+ - `emptyPadding`, `emptyColor`
2117
+
2060
2118
  ## Tour
2061
2119
 
2062
2120
  Props:
@@ -2801,7 +2859,7 @@ VueForge exposes design tokens as CSS variables generated from the theme preset.
2801
2859
  Typed tokens:
2802
2860
 
2803
2861
  - `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).
2862
+ - `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/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
2863
 
2806
2864
  Default core values (from `DefaultTheme`):
2807
2865