@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 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