@codemonster-ru/vueforge 0.65.0 → 0.67.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 +112 -1
- package/dist/index.css +1 -1
- package/dist/index.d.ts +3 -0
- package/dist/index.ts.mjs +3898 -3577
- 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__/kanban-board.test.d.ts +1 -0
- package/dist/package/components/app-shell.vue.d.ts +66 -0
- package/dist/package/components/kanban-board.vue.d.ts +90 -0
- package/dist/package/config/theme-core.d.ts +66 -0
- package/dist/package/themes/default/components/app-shell.d.ts +25 -0
- package/dist/package/themes/default/components/kanban-board.d.ts +41 -0
- package/dist/package/themes/default/index.d.ts +64 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -84,6 +84,8 @@ import {
|
|
|
84
84
|
ContextMenu,
|
|
85
85
|
CommandPalette,
|
|
86
86
|
NotificationCenter,
|
|
87
|
+
AppShell,
|
|
88
|
+
KanbanBoard,
|
|
87
89
|
Tour,
|
|
88
90
|
} from '@codemonster-ru/vueforge';
|
|
89
91
|
import '@codemonster-ru/vueforge/dist/index.css';
|
|
@@ -230,6 +232,12 @@ app.use(VueForge, {
|
|
|
230
232
|
]"
|
|
231
233
|
/>
|
|
232
234
|
<NotificationCenter v-model="notificationsOpen" v-model:items="notificationsItems" />
|
|
235
|
+
<AppShell v-model="sidebarCollapsed">
|
|
236
|
+
<template #sidebar>Sidebar content</template>
|
|
237
|
+
<template #header>Header content</template>
|
|
238
|
+
<div>Main content</div>
|
|
239
|
+
</AppShell>
|
|
240
|
+
<KanbanBoard v-model:items="kanbanItems" :columns="kanbanColumns" />
|
|
233
241
|
<Tour v-model="tourOpen" :steps="tourSteps" />
|
|
234
242
|
```
|
|
235
243
|
|
|
@@ -276,6 +284,8 @@ app.use(VueForge, {
|
|
|
276
284
|
- ContextMenu
|
|
277
285
|
- CommandPalette
|
|
278
286
|
- NotificationCenter
|
|
287
|
+
- AppShell
|
|
288
|
+
- KanbanBoard
|
|
279
289
|
- Tour
|
|
280
290
|
- Popover
|
|
281
291
|
- Select
|
|
@@ -326,6 +336,8 @@ Input / InputGroup / Search / Password / Textarea (quick API):
|
|
|
326
336
|
- `Splitter`: resizable multi-panel container with draggable separators and `v-model` percentage sizes.
|
|
327
337
|
- `Tour`: guided step-by-step onboarding overlay anchored to target elements.
|
|
328
338
|
- `NotificationCenter`: persistent notifications inbox with read/unread state and bulk actions.
|
|
339
|
+
- `AppShell`: application layout shell with sidebar/header/main/footer regions, collapse toggle, and mobile drawer behavior.
|
|
340
|
+
- `KanbanBoard`: task board with draggable cards, customizable column/card slots, and move events.
|
|
329
341
|
- `Wizard`: multi-step flow container with linear navigation, per-step validation, and completion events.
|
|
330
342
|
- `Textarea`: multi-line control, same as Input plus `rows`.
|
|
331
343
|
- `TagInput`: token/tag control, supports `v-model` (array), suggestions, custom tags, `maxTags`, `clearable`, `size`, `variant`.
|
|
@@ -2115,6 +2127,105 @@ Component tokens (override via `theme.overrides.components.notificationCenter`):
|
|
|
2115
2127
|
- `itemTitleFontSize`, `itemTitleFontWeight`, `itemMetaFontSize`, `itemMetaColor`
|
|
2116
2128
|
- `emptyPadding`, `emptyColor`
|
|
2117
2129
|
|
|
2130
|
+
## AppShell
|
|
2131
|
+
|
|
2132
|
+
Props:
|
|
2133
|
+
|
|
2134
|
+
- `modelValue?: boolean` (v-model collapsed state on desktop)
|
|
2135
|
+
- `sidebarWidth?: string` (default `16rem`)
|
|
2136
|
+
- `sidebarCollapsedWidth?: string` (default `4.25rem`)
|
|
2137
|
+
- `mobileBreakpoint?: number` (default `1024`)
|
|
2138
|
+
- `stickyHeader?: boolean` (default `true`)
|
|
2139
|
+
- `fullHeight?: boolean` (default `true`)
|
|
2140
|
+
- `showToggle?: boolean` (default `true`)
|
|
2141
|
+
- `closeOnEsc?: boolean` (default `true`)
|
|
2142
|
+
- `toggleLabel?: string` (default `Toggle sidebar`)
|
|
2143
|
+
- `closeSidebarLabel?: string` (default `Close sidebar`)
|
|
2144
|
+
- `toggleIcon?: string` (default `☰`)
|
|
2145
|
+
- `mainAriaLabel?: string` (default `Main content`)
|
|
2146
|
+
|
|
2147
|
+
Slots:
|
|
2148
|
+
|
|
2149
|
+
- `sidebar` (optional) - slot props `{ mobile, collapsed }`
|
|
2150
|
+
- `header` (optional) - slot props `{ mobile, collapsed, mobileSidebarOpen, toggleSidebar }`
|
|
2151
|
+
- `default` - main content
|
|
2152
|
+
- `footer` (optional) - slot props `{ mobile, collapsed }`
|
|
2153
|
+
|
|
2154
|
+
Events:
|
|
2155
|
+
|
|
2156
|
+
- `update:modelValue`
|
|
2157
|
+
- `sidebar-toggle`
|
|
2158
|
+
- `breakpoint-change`
|
|
2159
|
+
|
|
2160
|
+
Example:
|
|
2161
|
+
|
|
2162
|
+
```vue
|
|
2163
|
+
<AppShell v-model="collapsed">
|
|
2164
|
+
<template #sidebar>Sidebar</template>
|
|
2165
|
+
<template #header>Header</template>
|
|
2166
|
+
<div>Main</div>
|
|
2167
|
+
<template #footer>Footer</template>
|
|
2168
|
+
</AppShell>
|
|
2169
|
+
```
|
|
2170
|
+
|
|
2171
|
+
### AppShell tokens
|
|
2172
|
+
|
|
2173
|
+
Component tokens (override via `theme.overrides.components.appShell`):
|
|
2174
|
+
|
|
2175
|
+
- `gap`, `backgroundColor`, `textColor`
|
|
2176
|
+
- `sidebarBackgroundColor`, `sidebarBorderColor`
|
|
2177
|
+
- `headerHeight`, `headerPadding`, `headerGap`, `headerBackgroundColor`, `headerBorderColor`
|
|
2178
|
+
- `contentPadding`, `mainBackgroundColor`
|
|
2179
|
+
- `footerPadding`, `footerBorderColor`, `footerBackgroundColor`
|
|
2180
|
+
- `toggleSize`, `toggleBorderRadius`, `toggleBackgroundColor`, `toggleTextColor`, `toggleHoverBackgroundColor`
|
|
2181
|
+
- `overlayBackgroundColor`, `zIndex`
|
|
2182
|
+
|
|
2183
|
+
## KanbanBoard
|
|
2184
|
+
|
|
2185
|
+
Props:
|
|
2186
|
+
|
|
2187
|
+
- `columns?: Array<{ id: string | number; title: string }>`
|
|
2188
|
+
- `items?: Array<{ id: string | number; columnId: string | number; title: string; description?: string; assignee?: string; priority?: 'low' | 'medium' | 'high'; tags?: string[] }>`
|
|
2189
|
+
- `ariaLabel?: string` (default `Kanban board`)
|
|
2190
|
+
- `emptyColumnText?: string` (default `Drop cards here`)
|
|
2191
|
+
|
|
2192
|
+
Slots:
|
|
2193
|
+
|
|
2194
|
+
- `column-header` (optional) - slot props `{ column, items }`
|
|
2195
|
+
- `card` (optional) - slot props `{ item, column, index }`
|
|
2196
|
+
- `column-footer` (optional) - slot props `{ column, items }`
|
|
2197
|
+
- `empty-column` (optional) - slot props `{ column }`
|
|
2198
|
+
|
|
2199
|
+
Events:
|
|
2200
|
+
|
|
2201
|
+
- `update:items`
|
|
2202
|
+
- `move`
|
|
2203
|
+
- `click`
|
|
2204
|
+
|
|
2205
|
+
Example:
|
|
2206
|
+
|
|
2207
|
+
```vue
|
|
2208
|
+
<KanbanBoard v-model:items="items" :columns="columns" @move="onMove" />
|
|
2209
|
+
```
|
|
2210
|
+
|
|
2211
|
+
### KanbanBoard tokens
|
|
2212
|
+
|
|
2213
|
+
Component tokens (override via `theme.overrides.components.kanbanBoard`):
|
|
2214
|
+
|
|
2215
|
+
- `gap`, `columnMinWidth`, `columnGap`
|
|
2216
|
+
- `columnBorderColor`, `columnBorderRadius`, `columnBackgroundColor`
|
|
2217
|
+
- `columnHeaderPadding`, `columnHeaderBorderColor`
|
|
2218
|
+
- `columnTitleFontSize`, `columnTitleFontWeight`, `columnCountFontSize`, `columnCountColor`
|
|
2219
|
+
- `bodyPadding`
|
|
2220
|
+
- `cardGap`, `cardPadding`, `cardBorderRadius`, `cardBorderColor`, `cardBackgroundColor`, `cardHoverBorderColor`
|
|
2221
|
+
- `cardTitleFontSize`, `cardTitleFontWeight`, `cardDescriptionFontSize`, `cardDescriptionColor`
|
|
2222
|
+
- `priorityLowColor`, `priorityMediumColor`, `priorityHighColor`
|
|
2223
|
+
- `tagGap`, `tagPadding`, `tagBorderRadius`, `tagBackgroundColor`, `tagTextColor`
|
|
2224
|
+
- `assigneeFontSize`, `assigneeColor`
|
|
2225
|
+
- `emptyPadding`, `emptyColor`
|
|
2226
|
+
- `columnFooterPadding`, `columnFooterBorderColor`
|
|
2227
|
+
- `dragOpacity`
|
|
2228
|
+
|
|
2118
2229
|
## Tour
|
|
2119
2230
|
|
|
2120
2231
|
Props:
|
|
@@ -2859,7 +2970,7 @@ VueForge exposes design tokens as CSS variables generated from the theme preset.
|
|
|
2859
2970
|
Typed tokens:
|
|
2860
2971
|
|
|
2861
2972
|
- `ThemeTokens`/`ThemeOptions`/`ThemePreset` are exported for type-safe theming in TS.
|
|
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).
|
|
2973
|
+
- `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/kanbanBoard/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).
|
|
2863
2974
|
|
|
2864
2975
|
Default core values (from `DefaultTheme`):
|
|
2865
2976
|
|