@codemonster-ru/vueforge 0.56.0 → 0.58.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
@@ -41,6 +41,7 @@ import {
41
41
  Breadcrumbs,
42
42
  Select,
43
43
  Autocomplete,
44
+ Combobox,
44
45
  MultiSelect,
45
46
  TagInput,
46
47
  DatePicker,
@@ -63,6 +64,7 @@ import {
63
64
  AccordionItem,
64
65
  Slider,
65
66
  Stepper,
67
+ Timeline,
66
68
  Rating,
67
69
  Tree,
68
70
  TreeSelect,
@@ -103,6 +105,7 @@ app.use(VueForge, {
103
105
  <Breadcrumbs :items="breadcrumbItems" />
104
106
  <Select v-model="role" :options="roles" placeholder="Choose role" />
105
107
  <Autocomplete v-model="country" :options="countries" placeholder="Find country" />
108
+ <Combobox v-model="countryId" :options="countries" placeholder="Pick country" clearable />
106
109
  <MultiSelect v-model="countries" :options="countryOptions" placeholder="Select countries" clearable />
107
110
  <TagInput v-model="skills" :options="skillOptions" placeholder="Add skills" clearable />
108
111
  <DatePicker v-model="birthday" placeholder="Pick birthday" />
@@ -136,6 +139,7 @@ app.use(VueForge, {
136
139
  />
137
140
  <Slider v-model="volume" :min="0" :max="100" :step="5" show-value />
138
141
  <Stepper v-model="step" :steps="steps" clickable />
142
+ <Timeline :items="timelineItems" />
139
143
  <Rating v-model="rating" allow-half />
140
144
  <Tree v-model="selectedNode" v-model:expandedKeys="expandedKeys" :items="treeItems" />
141
145
  <TreeSelect v-model="selectedNode" v-model:expandedKeys="expandedKeys" :items="treeItems" placeholder="Select node" />
@@ -230,6 +234,7 @@ app.use(VueForge, {
230
234
  - Popover
231
235
  - Select
232
236
  - Autocomplete
237
+ - Combobox
233
238
  - MultiSelect
234
239
  - TagInput
235
240
  - DatePicker
@@ -249,6 +254,7 @@ app.use(VueForge, {
249
254
  - Avatar
250
255
  - Slider
251
256
  - Stepper
257
+ - Timeline
252
258
  - Rating
253
259
  - Tree
254
260
  - TreeSelect
@@ -439,6 +445,62 @@ Example:
439
445
  <Autocomplete v-model="country" :options="countries" placeholder="Find country" />
440
446
  ```
441
447
 
448
+ ## Combobox
449
+
450
+ Props:
451
+
452
+ - `modelValue?: string | number` (v-model selected value)
453
+ - `inputValue?: string` (v-model:inputValue typed query)
454
+ - `options?: Array<{ label: string; value: string | number; disabled?: boolean }>`
455
+ - `optionLabel?: string` (default `label`)
456
+ - `optionValue?: string` (default `value`)
457
+ - `placeholder?: string`
458
+ - `disabled?: boolean`
459
+ - `readonly?: boolean`
460
+ - `loading?: boolean`
461
+ - `loadingText?: string` (default `Loading...`)
462
+ - `emptyText?: string` (default `No results`)
463
+ - `filter?: boolean` (default `true`)
464
+ - `strict?: boolean` (default `true`)
465
+ - `allowCreate?: boolean` (default `false`)
466
+ - `clearable?: boolean` (default `false`)
467
+ - `size?: 'small' | 'normal' | 'large'` (default `normal`)
468
+ - `variant?: 'filled' | 'outlined'` (default `filled`)
469
+
470
+ Events:
471
+
472
+ - `update:modelValue`
473
+ - `update:inputValue`
474
+ - `change`
475
+ - `search`
476
+ - `create`
477
+ - `focus`
478
+ - `blur`
479
+
480
+ Example:
481
+
482
+ ```vue
483
+ <Combobox v-model="countryId" v-model:inputValue="countryQuery" :options="countries" placeholder="Pick country" />
484
+ ```
485
+
486
+ ### Combobox tokens
487
+
488
+ Component tokens (override via `theme.overrides.components.combobox`):
489
+
490
+ - `minWidth`, `fontSize`, `controlGap`, `chevronSize`
491
+ - `padding`, `borderRadius`, `borderColor`
492
+ - `backgroundColor`, `textColor`, `placeholderColor`
493
+ - `focusBorderColor`, `focusRingShadow`, `hoverBorderColor`
494
+ - `disabledOpacity`
495
+ - `panelBackgroundColor`, `panelBorderColor`, `panelPadding`, `panelMaxHeight`, `panelRadiusOffset`, `panelShadow`
496
+ - `optionPadding`, `optionBorderRadius`
497
+ - `optionHoverBackgroundColor`, `optionActiveBackgroundColor`, `optionActiveTextColor`, `optionHighlightedBackgroundColor`
498
+ - `emptyPadding`, `emptyColor`
499
+ - `loadingPadding`, `loadingColor`
500
+ - `clearSize`, `clearRadius`, `clearHoverBackgroundColor`
501
+ - `small.fontSize`, `small.padding`
502
+ - `large.fontSize`, `large.padding`
503
+
442
504
  ## MultiSelect
443
505
 
444
506
  Props:
@@ -2130,6 +2192,49 @@ Component tokens (override via `theme.overrides.components.stepper`):
2130
2192
  - `small.indicatorSize`, `small.indicatorFontSize`, `small.labelFontSize`, `small.descriptionFontSize`, `small.lineLength`, `small.itemGap`
2131
2193
  - `large.indicatorSize`, `large.indicatorFontSize`, `large.labelFontSize`, `large.descriptionFontSize`, `large.lineLength`, `large.itemGap`
2132
2194
 
2195
+ ## Timeline
2196
+
2197
+ Props:
2198
+
2199
+ - `items?: Array<{ id?: string | number; title?: string; description?: string; date?: string; icon?: string; status?: 'neutral' | 'info' | 'success' | 'warn' | 'danger' }>` (default `[]`)
2200
+ - `orientation?: 'vertical' | 'horizontal'` (default `vertical`)
2201
+ - `size?: 'small' | 'normal' | 'large'` (default `normal`)
2202
+ - `ariaLabel?: string`
2203
+ - `ariaLabelledby?: string`
2204
+
2205
+ Slots:
2206
+
2207
+ - `marker` (props: `item`, `index`)
2208
+ - `item` (props: `item`, `index`)
2209
+
2210
+ Example:
2211
+
2212
+ ```vue
2213
+ <Timeline
2214
+ :items="[
2215
+ { title: 'Created', description: 'Issue created', date: '2026-02-17', status: 'info' },
2216
+ { title: 'In progress', description: 'Developer started work', date: '2026-02-18', status: 'warn' },
2217
+ { title: 'Done', description: 'Issue closed', date: '2026-02-19', status: 'success' },
2218
+ ]"
2219
+ />
2220
+ <Timeline :items="events" orientation="horizontal" size="small" />
2221
+ ```
2222
+
2223
+ ### Timeline tokens
2224
+
2225
+ Component tokens (override via `theme.overrides.components.timeline`):
2226
+
2227
+ - `gap`, `itemGap`
2228
+ - `markerSize`, `markerBorderRadius`, `markerBorderWidth`, `markerBackgroundColor`, `markerBorderColor`, `markerTextColor`, `markerIconSize`, `dotSize`
2229
+ - `lineThickness`, `lineLength`, `lineColor`
2230
+ - `titleFontSize`, `titleColor`, `descriptionFontSize`, `descriptionColor`, `dateFontSize`, `dateColor`
2231
+ - `info.markerBackgroundColor`, `info.markerBorderColor`, `info.markerTextColor`, `info.lineColor`
2232
+ - `success.markerBackgroundColor`, `success.markerBorderColor`, `success.markerTextColor`, `success.lineColor`
2233
+ - `warn.markerBackgroundColor`, `warn.markerBorderColor`, `warn.markerTextColor`, `warn.lineColor`
2234
+ - `danger.markerBackgroundColor`, `danger.markerBorderColor`, `danger.markerTextColor`, `danger.lineColor`
2235
+ - `small.itemGap`, `small.markerSize`, `small.markerIconSize`, `small.dotSize`, `small.lineLength`, `small.dateFontSize`, `small.titleFontSize`, `small.descriptionFontSize`
2236
+ - `large.itemGap`, `large.markerSize`, `large.markerIconSize`, `large.dotSize`, `large.lineLength`, `large.dateFontSize`, `large.titleFontSize`, `large.descriptionFontSize`
2237
+
2133
2238
  ## Rating
2134
2239
 
2135
2240
  Props:
@@ -2334,7 +2439,7 @@ VueForge exposes design tokens as CSS variables generated from the theme preset.
2334
2439
  Typed tokens:
2335
2440
 
2336
2441
  - `ThemeTokens`/`ThemeOptions`/`ThemePreset` are exported for type-safe theming in TS.
2337
- - `components.*` accepts component-specific tokens (typed keys: button/card/checkbox/radio/tabs/accordion/toast/alert/input/inlineEdit/searchInput/mentionInput/passwordInput/otpInput/colorPicker/maskedInput/numberInput/formField/textarea/link/breadcrumbs/menu/modal/confirmDialog/drawer/popover/dropdown/contextMenu/commandPalette/select/autocomplete/multiselect/taginput/datepicker/calendar/daterangepicker/timepicker/datetimepicker/pagination/switch/segmentedControl/tooltip/skeleton/progress/badge/chip/filterChips/avatar/datatable/slider/stepper/rating/tree/treeselect/virtualScroller).
2442
+ - `components.*` accepts component-specific tokens (typed keys: button/card/checkbox/radio/tabs/accordion/toast/alert/input/inlineEdit/searchInput/mentionInput/passwordInput/otpInput/colorPicker/maskedInput/numberInput/formField/textarea/link/breadcrumbs/menu/modal/confirmDialog/drawer/popover/dropdown/contextMenu/commandPalette/select/autocomplete/combobox/multiselect/taginput/datepicker/calendar/daterangepicker/timepicker/datetimepicker/pagination/switch/segmentedControl/tooltip/skeleton/progress/badge/chip/filterChips/avatar/datatable/slider/stepper/rating/tree/treeselect/virtualScroller).
2338
2443
 
2339
2444
  Default core values (from `DefaultTheme`):
2340
2445