@codemonster-ru/vueforge 0.66.0 → 0.68.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 +113 -2
- package/dist/index.css +1 -1
- package/dist/index.d.ts +3 -0
- package/dist/index.ts.mjs +4299 -3932
- package/dist/index.ts.umd.js +15 -3
- package/dist/package/components/__tests__/kanban-board.test.d.ts +1 -0
- package/dist/package/components/__tests__/rich-text-editor.test.d.ts +1 -0
- package/dist/package/components/kanban-board.vue.d.ts +90 -0
- package/dist/package/components/rich-text-editor.vue.d.ts +51 -0
- package/dist/package/config/theme-core.d.ts +83 -0
- package/dist/package/themes/default/components/kanban-board.d.ts +41 -0
- package/dist/package/themes/default/components/rich-text-editor.d.ts +42 -0
- package/dist/package/themes/default/index.d.ts +81 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -40,6 +40,7 @@ import {
|
|
|
40
40
|
Form,
|
|
41
41
|
FormField,
|
|
42
42
|
Textarea,
|
|
43
|
+
RichTextEditor,
|
|
43
44
|
FileUpload,
|
|
44
45
|
Breadcrumbs,
|
|
45
46
|
Select,
|
|
@@ -85,6 +86,7 @@ import {
|
|
|
85
86
|
CommandPalette,
|
|
86
87
|
NotificationCenter,
|
|
87
88
|
AppShell,
|
|
89
|
+
KanbanBoard,
|
|
88
90
|
Tour,
|
|
89
91
|
} from '@codemonster-ru/vueforge';
|
|
90
92
|
import '@codemonster-ru/vueforge/dist/index.css';
|
|
@@ -131,6 +133,7 @@ app.use(VueForge, {
|
|
|
131
133
|
<MaskedInput v-model="phone" mask="+7 (###) ###-##-##" />
|
|
132
134
|
<NumberInput v-model="age" :min="0" :max="120" :step="1" />
|
|
133
135
|
<Textarea v-model="bio" placeholder="Tell us about yourself" />
|
|
136
|
+
<RichTextEditor v-model="article" />
|
|
134
137
|
<FileUpload v-model="resume" accept=".pdf,.doc,.docx" />
|
|
135
138
|
<Breadcrumbs :items="breadcrumbItems" />
|
|
136
139
|
<Select v-model="role" :options="roles" placeholder="Choose role" />
|
|
@@ -236,6 +239,7 @@ app.use(VueForge, {
|
|
|
236
239
|
<template #header>Header content</template>
|
|
237
240
|
<div>Main content</div>
|
|
238
241
|
</AppShell>
|
|
242
|
+
<KanbanBoard v-model:items="kanbanItems" :columns="kanbanColumns" />
|
|
239
243
|
<Tour v-model="tourOpen" :steps="tourSteps" />
|
|
240
244
|
```
|
|
241
245
|
|
|
@@ -270,6 +274,7 @@ app.use(VueForge, {
|
|
|
270
274
|
- Form
|
|
271
275
|
- FormField
|
|
272
276
|
- Textarea
|
|
277
|
+
- RichTextEditor
|
|
273
278
|
- FileUpload
|
|
274
279
|
- Link
|
|
275
280
|
- Breadcrumbs
|
|
@@ -283,6 +288,7 @@ app.use(VueForge, {
|
|
|
283
288
|
- CommandPalette
|
|
284
289
|
- NotificationCenter
|
|
285
290
|
- AppShell
|
|
291
|
+
- KanbanBoard
|
|
286
292
|
- Tour
|
|
287
293
|
- Popover
|
|
288
294
|
- Select
|
|
@@ -334,11 +340,13 @@ Input / InputGroup / Search / Password / Textarea (quick API):
|
|
|
334
340
|
- `Tour`: guided step-by-step onboarding overlay anchored to target elements.
|
|
335
341
|
- `NotificationCenter`: persistent notifications inbox with read/unread state and bulk actions.
|
|
336
342
|
- `AppShell`: application layout shell with sidebar/header/main/footer regions, collapse toggle, and mobile drawer behavior.
|
|
343
|
+
- `KanbanBoard`: task board with draggable cards, customizable column/card slots, and move events.
|
|
344
|
+
- `RichTextEditor`: formatting editor with toolbar actions and Markdown/HTML output.
|
|
337
345
|
- `Wizard`: multi-step flow container with linear navigation, per-step validation, and completion events.
|
|
338
346
|
- `Textarea`: multi-line control, same as Input plus `rows`.
|
|
339
347
|
- `TagInput`: token/tag control, supports `v-model` (array), suggestions, custom tags, `maxTags`, `clearable`, `size`, `variant`.
|
|
340
348
|
- `FilterChips`: compact chip-based filter toggles with single/multiple selection modes and optional clear action.
|
|
341
|
-
- `SearchInput`, `MentionInput`, `InlineEdit`, `OtpInput`, `ColorPicker`, `MaskedInput`, `Checkbox`, `Select`, `Autocomplete`, `MultiSelect`, `TagInput`, `DatePicker`, `Calendar`, `DateRangePicker`, `DateTimePicker`, `Pagination`, `DataTable`, `SegmentedControl`, and `TreeSelect` also support `variant: 'filled' | 'outlined'`.
|
|
349
|
+
- `SearchInput`, `MentionInput`, `InlineEdit`, `OtpInput`, `ColorPicker`, `MaskedInput`, `RichTextEditor`, `Checkbox`, `Select`, `Autocomplete`, `MultiSelect`, `TagInput`, `DatePicker`, `Calendar`, `DateRangePicker`, `DateTimePicker`, `Pagination`, `DataTable`, `SegmentedControl`, and `TreeSelect` also support `variant: 'filled' | 'outlined'`.
|
|
342
350
|
|
|
343
351
|
## Form
|
|
344
352
|
|
|
@@ -1116,6 +1124,45 @@ Example:
|
|
|
1116
1124
|
<Textarea v-model="bio" placeholder="Tell us about yourself" rows="4" />
|
|
1117
1125
|
```
|
|
1118
1126
|
|
|
1127
|
+
## RichTextEditor
|
|
1128
|
+
|
|
1129
|
+
Props:
|
|
1130
|
+
|
|
1131
|
+
- `modelValue?: string` (v-model)
|
|
1132
|
+
- `placeholder?: string`
|
|
1133
|
+
- `disabled?: boolean`
|
|
1134
|
+
- `readonly?: boolean`
|
|
1135
|
+
- `size?: 'small' | 'normal' | 'large'` (default `normal`)
|
|
1136
|
+
- `variant?: 'filled' | 'outlined'` (default `filled`)
|
|
1137
|
+
- `format?: 'markdown' | 'html'` (default `markdown`)
|
|
1138
|
+
- `rows?: number` (default `6`)
|
|
1139
|
+
- `maxLength?: number` (default `0`, disabled when `0`)
|
|
1140
|
+
- `showToolbar?: boolean` (default `true`)
|
|
1141
|
+
- `toolbar?: Array<'bold' | 'italic' | 'underline' | 'link' | 'bulletList' | 'orderedList' | 'code'>`
|
|
1142
|
+
- `toolbarLabel?: string` (default `Text formatting toolbar`)
|
|
1143
|
+
- `ariaLabel?: string` (default `Rich text editor`)
|
|
1144
|
+
|
|
1145
|
+
Events:
|
|
1146
|
+
|
|
1147
|
+
- `update:modelValue`
|
|
1148
|
+
- `input`
|
|
1149
|
+
- `change`
|
|
1150
|
+
- `focus`
|
|
1151
|
+
- `blur`
|
|
1152
|
+
- `action` (payload: `action`, `nextValue`)
|
|
1153
|
+
|
|
1154
|
+
Example:
|
|
1155
|
+
|
|
1156
|
+
```vue
|
|
1157
|
+
<RichTextEditor
|
|
1158
|
+
v-model="article"
|
|
1159
|
+
format="markdown"
|
|
1160
|
+
:rows="8"
|
|
1161
|
+
:max-length="2000"
|
|
1162
|
+
:toolbar="['bold', 'italic', 'link', 'bulletList', 'code']"
|
|
1163
|
+
/>
|
|
1164
|
+
```
|
|
1165
|
+
|
|
1119
1166
|
## FileUpload
|
|
1120
1167
|
|
|
1121
1168
|
Props:
|
|
@@ -1758,6 +1805,24 @@ Component tokens (override via `theme.overrides.components.textarea`):
|
|
|
1758
1805
|
- `small.fontSize`, `small.padding`
|
|
1759
1806
|
- `large.fontSize`, `large.padding`
|
|
1760
1807
|
|
|
1808
|
+
### RichTextEditor tokens
|
|
1809
|
+
|
|
1810
|
+
Component tokens (override via `theme.overrides.components.richTextEditor`):
|
|
1811
|
+
|
|
1812
|
+
- `gap`, `fontSize`, `padding`
|
|
1813
|
+
- `borderRadius`, `borderColor`
|
|
1814
|
+
- `backgroundColor`, `textColor`, `placeholderColor`
|
|
1815
|
+
- `focusBorderColor`, `focusRingShadow`, `hoverBorderColor`
|
|
1816
|
+
- `disabledOpacity`
|
|
1817
|
+
- `minHeight`, `resize`
|
|
1818
|
+
- `toolbarGap`, `toolbarPadding`, `toolbarBorderColor`, `toolbarBackgroundColor`
|
|
1819
|
+
- `toolbarButtonMinWidth`, `toolbarButtonPadding`, `toolbarButtonRadius`
|
|
1820
|
+
- `toolbarButtonBorderColor`, `toolbarButtonBackgroundColor`, `toolbarButtonTextColor`
|
|
1821
|
+
- `toolbarButtonHoverBackgroundColor`, `toolbarButtonActiveBackgroundColor`
|
|
1822
|
+
- `counterFontSize`, `counterColor`, `counterDangerColor`
|
|
1823
|
+
- `small.fontSize`, `small.padding`, `small.toolbarButtonPadding`
|
|
1824
|
+
- `large.fontSize`, `large.padding`, `large.toolbarButtonPadding`
|
|
1825
|
+
|
|
1761
1826
|
## Modal
|
|
1762
1827
|
|
|
1763
1828
|
Props:
|
|
@@ -2176,6 +2241,52 @@ Component tokens (override via `theme.overrides.components.appShell`):
|
|
|
2176
2241
|
- `toggleSize`, `toggleBorderRadius`, `toggleBackgroundColor`, `toggleTextColor`, `toggleHoverBackgroundColor`
|
|
2177
2242
|
- `overlayBackgroundColor`, `zIndex`
|
|
2178
2243
|
|
|
2244
|
+
## KanbanBoard
|
|
2245
|
+
|
|
2246
|
+
Props:
|
|
2247
|
+
|
|
2248
|
+
- `columns?: Array<{ id: string | number; title: string }>`
|
|
2249
|
+
- `items?: Array<{ id: string | number; columnId: string | number; title: string; description?: string; assignee?: string; priority?: 'low' | 'medium' | 'high'; tags?: string[] }>`
|
|
2250
|
+
- `ariaLabel?: string` (default `Kanban board`)
|
|
2251
|
+
- `emptyColumnText?: string` (default `Drop cards here`)
|
|
2252
|
+
|
|
2253
|
+
Slots:
|
|
2254
|
+
|
|
2255
|
+
- `column-header` (optional) - slot props `{ column, items }`
|
|
2256
|
+
- `card` (optional) - slot props `{ item, column, index }`
|
|
2257
|
+
- `column-footer` (optional) - slot props `{ column, items }`
|
|
2258
|
+
- `empty-column` (optional) - slot props `{ column }`
|
|
2259
|
+
|
|
2260
|
+
Events:
|
|
2261
|
+
|
|
2262
|
+
- `update:items`
|
|
2263
|
+
- `move`
|
|
2264
|
+
- `click`
|
|
2265
|
+
|
|
2266
|
+
Example:
|
|
2267
|
+
|
|
2268
|
+
```vue
|
|
2269
|
+
<KanbanBoard v-model:items="items" :columns="columns" @move="onMove" />
|
|
2270
|
+
```
|
|
2271
|
+
|
|
2272
|
+
### KanbanBoard tokens
|
|
2273
|
+
|
|
2274
|
+
Component tokens (override via `theme.overrides.components.kanbanBoard`):
|
|
2275
|
+
|
|
2276
|
+
- `gap`, `columnMinWidth`, `columnGap`
|
|
2277
|
+
- `columnBorderColor`, `columnBorderRadius`, `columnBackgroundColor`
|
|
2278
|
+
- `columnHeaderPadding`, `columnHeaderBorderColor`
|
|
2279
|
+
- `columnTitleFontSize`, `columnTitleFontWeight`, `columnCountFontSize`, `columnCountColor`
|
|
2280
|
+
- `bodyPadding`
|
|
2281
|
+
- `cardGap`, `cardPadding`, `cardBorderRadius`, `cardBorderColor`, `cardBackgroundColor`, `cardHoverBorderColor`
|
|
2282
|
+
- `cardTitleFontSize`, `cardTitleFontWeight`, `cardDescriptionFontSize`, `cardDescriptionColor`
|
|
2283
|
+
- `priorityLowColor`, `priorityMediumColor`, `priorityHighColor`
|
|
2284
|
+
- `tagGap`, `tagPadding`, `tagBorderRadius`, `tagBackgroundColor`, `tagTextColor`
|
|
2285
|
+
- `assigneeFontSize`, `assigneeColor`
|
|
2286
|
+
- `emptyPadding`, `emptyColor`
|
|
2287
|
+
- `columnFooterPadding`, `columnFooterBorderColor`
|
|
2288
|
+
- `dragOpacity`
|
|
2289
|
+
|
|
2179
2290
|
## Tour
|
|
2180
2291
|
|
|
2181
2292
|
Props:
|
|
@@ -2920,7 +3031,7 @@ VueForge exposes design tokens as CSS variables generated from the theme preset.
|
|
|
2920
3031
|
Typed tokens:
|
|
2921
3032
|
|
|
2922
3033
|
- `ThemeTokens`/`ThemeOptions`/`ThemePreset` are exported for type-safe theming in TS.
|
|
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).
|
|
3034
|
+
- `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/richTextEditor/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).
|
|
2924
3035
|
|
|
2925
3036
|
Default core values (from `DefaultTheme`):
|
|
2926
3037
|
|