@codemonster-ru/vueforge 0.67.0 → 0.69.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,8 +40,10 @@ import {
40
40
  Form,
41
41
  FormField,
42
42
  Textarea,
43
+ RichTextEditor,
43
44
  FileUpload,
44
45
  Breadcrumbs,
46
+ Divider,
45
47
  Select,
46
48
  Autocomplete,
47
49
  Combobox,
@@ -132,8 +134,10 @@ app.use(VueForge, {
132
134
  <MaskedInput v-model="phone" mask="+7 (###) ###-##-##" />
133
135
  <NumberInput v-model="age" :min="0" :max="120" :step="1" />
134
136
  <Textarea v-model="bio" placeholder="Tell us about yourself" />
137
+ <RichTextEditor v-model="article" />
135
138
  <FileUpload v-model="resume" accept=".pdf,.doc,.docx" />
136
139
  <Breadcrumbs :items="breadcrumbItems" />
140
+ <Divider label="OR" />
137
141
  <Select v-model="role" :options="roles" placeholder="Choose role" />
138
142
  <Autocomplete v-model="country" :options="countries" placeholder="Find country" />
139
143
  <Combobox v-model="countryId" :options="countries" placeholder="Pick country" clearable />
@@ -272,9 +276,11 @@ app.use(VueForge, {
272
276
  - Form
273
277
  - FormField
274
278
  - Textarea
279
+ - RichTextEditor
275
280
  - FileUpload
276
281
  - Link
277
282
  - Breadcrumbs
283
+ - Divider
278
284
  - Menu
279
285
  - Modal
280
286
  - ConfirmDialog
@@ -338,11 +344,13 @@ Input / InputGroup / Search / Password / Textarea (quick API):
338
344
  - `NotificationCenter`: persistent notifications inbox with read/unread state and bulk actions.
339
345
  - `AppShell`: application layout shell with sidebar/header/main/footer regions, collapse toggle, and mobile drawer behavior.
340
346
  - `KanbanBoard`: task board with draggable cards, customizable column/card slots, and move events.
347
+ - `RichTextEditor`: formatting editor with toolbar actions and Markdown/HTML output.
348
+ - `Divider`: horizontal/vertical visual separator with optional label and style variants.
341
349
  - `Wizard`: multi-step flow container with linear navigation, per-step validation, and completion events.
342
350
  - `Textarea`: multi-line control, same as Input plus `rows`.
343
351
  - `TagInput`: token/tag control, supports `v-model` (array), suggestions, custom tags, `maxTags`, `clearable`, `size`, `variant`.
344
352
  - `FilterChips`: compact chip-based filter toggles with single/multiple selection modes and optional clear action.
345
- - `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'`.
353
+ - `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'`.
346
354
 
347
355
  ## Form
348
356
 
@@ -1120,6 +1128,45 @@ Example:
1120
1128
  <Textarea v-model="bio" placeholder="Tell us about yourself" rows="4" />
1121
1129
  ```
1122
1130
 
1131
+ ## RichTextEditor
1132
+
1133
+ Props:
1134
+
1135
+ - `modelValue?: string` (v-model)
1136
+ - `placeholder?: string`
1137
+ - `disabled?: boolean`
1138
+ - `readonly?: boolean`
1139
+ - `size?: 'small' | 'normal' | 'large'` (default `normal`)
1140
+ - `variant?: 'filled' | 'outlined'` (default `filled`)
1141
+ - `format?: 'markdown' | 'html'` (default `markdown`)
1142
+ - `rows?: number` (default `6`)
1143
+ - `maxLength?: number` (default `0`, disabled when `0`)
1144
+ - `showToolbar?: boolean` (default `true`)
1145
+ - `toolbar?: Array<'bold' | 'italic' | 'underline' | 'link' | 'bulletList' | 'orderedList' | 'code'>`
1146
+ - `toolbarLabel?: string` (default `Text formatting toolbar`)
1147
+ - `ariaLabel?: string` (default `Rich text editor`)
1148
+
1149
+ Events:
1150
+
1151
+ - `update:modelValue`
1152
+ - `input`
1153
+ - `change`
1154
+ - `focus`
1155
+ - `blur`
1156
+ - `action` (payload: `action`, `nextValue`)
1157
+
1158
+ Example:
1159
+
1160
+ ```vue
1161
+ <RichTextEditor
1162
+ v-model="article"
1163
+ format="markdown"
1164
+ :rows="8"
1165
+ :max-length="2000"
1166
+ :toolbar="['bold', 'italic', 'link', 'bulletList', 'code']"
1167
+ />
1168
+ ```
1169
+
1123
1170
  ## FileUpload
1124
1171
 
1125
1172
  Props:
@@ -1489,6 +1536,40 @@ Component tokens (override via `theme.overrides.components.breadcrumbs`):
1489
1536
  - `gap`, `fontSize`, `textColor`, `hoverColor`, `activeColor`
1490
1537
  - `separatorColor`, `disabledOpacity`
1491
1538
 
1539
+ ## Divider
1540
+
1541
+ Props:
1542
+
1543
+ - `orientation?: 'horizontal' | 'vertical'` (default `horizontal`)
1544
+ - `variant?: 'solid' | 'dashed' | 'dotted'` (default `solid`)
1545
+ - `inset?: boolean` (default `false`)
1546
+ - `label?: string`
1547
+ - `ariaLabel?: string` (default `Divider`)
1548
+
1549
+ Slots:
1550
+
1551
+ - `default` (optional) - custom label content (horizontal mode only)
1552
+
1553
+ Example:
1554
+
1555
+ ```vue
1556
+ <Divider />
1557
+ <Divider label="OR" />
1558
+ <div style="height: 32px; display: flex; align-items: center; gap: 8px">
1559
+ <span>Left</span>
1560
+ <Divider orientation="vertical" />
1561
+ <span>Right</span>
1562
+ </div>
1563
+ ```
1564
+
1565
+ ### Divider tokens
1566
+
1567
+ Component tokens (override via `theme.overrides.components.divider`):
1568
+
1569
+ - `color`, `textColor`, `thickness`, `minLength`
1570
+ - `gap`, `inset`
1571
+ - `labelPadding`, `labelFontSize`
1572
+
1492
1573
  ## SegmentedControl
1493
1574
 
1494
1575
  Props:
@@ -1762,6 +1843,24 @@ Component tokens (override via `theme.overrides.components.textarea`):
1762
1843
  - `small.fontSize`, `small.padding`
1763
1844
  - `large.fontSize`, `large.padding`
1764
1845
 
1846
+ ### RichTextEditor tokens
1847
+
1848
+ Component tokens (override via `theme.overrides.components.richTextEditor`):
1849
+
1850
+ - `gap`, `fontSize`, `padding`
1851
+ - `borderRadius`, `borderColor`
1852
+ - `backgroundColor`, `textColor`, `placeholderColor`
1853
+ - `focusBorderColor`, `focusRingShadow`, `hoverBorderColor`
1854
+ - `disabledOpacity`
1855
+ - `minHeight`, `resize`
1856
+ - `toolbarGap`, `toolbarPadding`, `toolbarBorderColor`, `toolbarBackgroundColor`
1857
+ - `toolbarButtonMinWidth`, `toolbarButtonPadding`, `toolbarButtonRadius`
1858
+ - `toolbarButtonBorderColor`, `toolbarButtonBackgroundColor`, `toolbarButtonTextColor`
1859
+ - `toolbarButtonHoverBackgroundColor`, `toolbarButtonActiveBackgroundColor`
1860
+ - `counterFontSize`, `counterColor`, `counterDangerColor`
1861
+ - `small.fontSize`, `small.padding`, `small.toolbarButtonPadding`
1862
+ - `large.fontSize`, `large.padding`, `large.toolbarButtonPadding`
1863
+
1765
1864
  ## Modal
1766
1865
 
1767
1866
  Props:
@@ -2970,7 +3069,7 @@ VueForge exposes design tokens as CSS variables generated from the theme preset.
2970
3069
  Typed tokens:
2971
3070
 
2972
3071
  - `ThemeTokens`/`ThemeOptions`/`ThemePreset` are exported for type-safe theming in TS.
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).
3072
+ - `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/divider/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).
2974
3073
 
2975
3074
  Default core values (from `DefaultTheme`):
2976
3075