@codemonster-ru/vueforge 0.52.0 → 0.54.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
@@ -50,11 +50,13 @@ import {
50
50
  DataTable,
51
51
  Checkbox,
52
52
  Switch,
53
+ SegmentedControl,
53
54
  Alert,
54
55
  Skeleton,
55
56
  Progress,
56
57
  Badge,
57
58
  Chip,
59
+ FilterChips,
58
60
  Accordion,
59
61
  AccordionItem,
60
62
  Slider,
@@ -108,11 +110,26 @@ app.use(VueForge, {
108
110
  <DataTable :columns="columns" :rows="rows" sortable striped />
109
111
  <Checkbox v-model="agreed" label="I agree" />
110
112
  <Switch v-model="darkMode" label="Dark mode" />
113
+ <SegmentedControl
114
+ v-model="view"
115
+ :options="[
116
+ { label: 'List', value: 'list' },
117
+ { label: 'Grid', value: 'grid' },
118
+ ]"
119
+ />
111
120
  <Alert severity="info" title="Heads up" message="Project settings were updated." />
112
121
  <Skeleton height="12px" width="140px" />
113
122
  <Progress :value="64" />
114
123
  <Badge label="Beta" />
115
124
  <Chip label="New" />
125
+ <FilterChips
126
+ v-model="filters"
127
+ :options="[
128
+ { label: 'Open', value: 'open' },
129
+ { label: 'Done', value: 'done' },
130
+ ]"
131
+ clearable
132
+ />
116
133
  <Slider v-model="volume" :min="0" :max="100" :step="5" show-value />
117
134
  <Stepper v-model="step" :steps="steps" clickable />
118
135
  <Rating v-model="rating" allow-half />
@@ -175,6 +192,7 @@ app.use(VueForge, {
175
192
  - Checkbox
176
193
  - RadioGroup
177
194
  - RadioButton
195
+ - SegmentedControl
178
196
  - Tabs
179
197
  - Tab
180
198
  - TabPanel
@@ -221,6 +239,7 @@ app.use(VueForge, {
221
239
  - Progress
222
240
  - Badge
223
241
  - Chip
242
+ - FilterChips
224
243
  - Avatar
225
244
  - Slider
226
245
  - Stepper
@@ -240,7 +259,8 @@ Input / Search / Password / Textarea (quick API):
240
259
  - `NumberInput`: numeric control, supports `v-model`, `min`, `max`, `step`, `precision`, `controls`, `size`, `variant`.
241
260
  - `Textarea`: multi-line control, same as Input plus `rows`.
242
261
  - `TagInput`: token/tag control, supports `v-model` (array), suggestions, custom tags, `maxTags`, `clearable`, `size`, `variant`.
243
- - `SearchInput`, `OtpInput`, `ColorPicker`, `MaskedInput`, `Checkbox`, `Select`, `Autocomplete`, `MultiSelect`, `TagInput`, `DatePicker`, `Calendar`, `DateRangePicker`, `DateTimePicker`, `Pagination`, `DataTable`, and `TreeSelect` also support `variant: 'filled' | 'outlined'`.
262
+ - `FilterChips`: compact chip-based filter toggles with single/multiple selection modes and optional clear action.
263
+ - `SearchInput`, `OtpInput`, `ColorPicker`, `MaskedInput`, `Checkbox`, `Select`, `Autocomplete`, `MultiSelect`, `TagInput`, `DatePicker`, `Calendar`, `DateRangePicker`, `DateTimePicker`, `Pagination`, `DataTable`, `SegmentedControl`, and `TreeSelect` also support `variant: 'filled' | 'outlined'`.
244
264
 
245
265
  ## FormField
246
266
 
@@ -1131,6 +1151,51 @@ Component tokens (override via `theme.overrides.components.breadcrumbs`):
1131
1151
  - `gap`, `fontSize`, `textColor`, `hoverColor`, `activeColor`
1132
1152
  - `separatorColor`, `disabledOpacity`
1133
1153
 
1154
+ ## SegmentedControl
1155
+
1156
+ Props:
1157
+
1158
+ - `modelValue?: string | number` (v-model)
1159
+ - `options?: Array<{ label: string; value: string | number; disabled?: boolean }>` (default `[]`)
1160
+ - `disabled?: boolean`
1161
+ - `fullWidth?: boolean` (default `false`)
1162
+ - `size?: 'small' | 'normal' | 'large'` (default `normal`)
1163
+ - `variant?: 'filled' | 'outlined'` (default `filled`)
1164
+ - `ariaLabel?: string`
1165
+ - `ariaLabelledby?: string`
1166
+
1167
+ Events:
1168
+
1169
+ - `update:modelValue`
1170
+ - `change`
1171
+ - `focus`
1172
+ - `blur`
1173
+
1174
+ Example:
1175
+
1176
+ ```vue
1177
+ <SegmentedControl
1178
+ v-model="view"
1179
+ :options="[
1180
+ { label: 'List', value: 'list' },
1181
+ { label: 'Grid', value: 'grid' },
1182
+ { label: 'Board', value: 'board' },
1183
+ ]"
1184
+ />
1185
+ ```
1186
+
1187
+ ### SegmentedControl tokens
1188
+
1189
+ Component tokens (override via `theme.overrides.components.segmentedControl`):
1190
+
1191
+ - `fontSize`, `padding`, `gap`
1192
+ - `borderRadius`, `borderColor`, `backgroundColor`, `textColor`
1193
+ - `hoverBackgroundColor`, `activeBackgroundColor`, `activeTextColor`
1194
+ - `focusRingShadow`, `disabledOpacity`
1195
+ - `segmentPadding`, `segmentRadius`, `segmentFontWeight`
1196
+ - `small.fontSize`, `small.padding`, `small.segmentPadding`
1197
+ - `large.fontSize`, `large.padding`, `large.segmentPadding`
1198
+
1134
1199
  ## Tabs / Tab / TabPanel
1135
1200
 
1136
1201
  Props (Tabs):
@@ -1745,6 +1810,61 @@ Component tokens (override via `theme.overrides.components.chip`):
1745
1810
  - `small.fontSize`, `small.paddingX`, `small.paddingY`
1746
1811
  - `large.fontSize`, `large.paddingX`, `large.paddingY`
1747
1812
 
1813
+ ## FilterChips
1814
+
1815
+ Props:
1816
+
1817
+ - `modelValue?: string | number | Array<string | number> | null` (v-model)
1818
+ - `options?: Array<{ label: string; value: string | number; disabled?: boolean; count?: number }>` (default `[]`)
1819
+ - `multiple?: boolean` (default `true`)
1820
+ - `allowEmpty?: boolean` (default `true`, used in single mode)
1821
+ - `clearable?: boolean` (default `false`)
1822
+ - `clearText?: string` (default `Clear`)
1823
+ - `clearLabel?: string` (default `Clear filters`)
1824
+ - `disabled?: boolean`
1825
+ - `wrap?: boolean` (default `true`)
1826
+ - `size?: 'small' | 'normal' | 'large'` (default `normal`)
1827
+ - `variant?: 'soft' | 'outline' | 'solid'` (default `soft`)
1828
+ - `ariaLabel?: string`
1829
+ - `ariaLabelledby?: string`
1830
+
1831
+ Events:
1832
+
1833
+ - `update:modelValue`
1834
+ - `change`
1835
+ - `clear`
1836
+
1837
+ Example:
1838
+
1839
+ ```vue
1840
+ <FilterChips
1841
+ v-model="activeFilters"
1842
+ :options="[
1843
+ { label: 'Open', value: 'open', count: 12 },
1844
+ { label: 'In progress', value: 'progress', count: 7 },
1845
+ { label: 'Done', value: 'done', count: 18 },
1846
+ ]"
1847
+ clearable
1848
+ />
1849
+ <FilterChips v-model="activeStatus" :options="statusOptions" :multiple="false" variant="outline" />
1850
+ ```
1851
+
1852
+ ### FilterChips tokens
1853
+
1854
+ Component tokens (override via `theme.overrides.components.filterChips`):
1855
+
1856
+ - `fontSize`, `gap`
1857
+ - `chipGap`, `chipPadding`, `chipBorderRadius`
1858
+ - `chipBorderColor`, `chipBackgroundColor`, `chipTextColor`
1859
+ - `chipHoverBackgroundColor`, `chipHoverBorderColor`
1860
+ - `chipActiveBackgroundColor`, `chipActiveBorderColor`, `chipActiveTextColor`
1861
+ - `chipSolidActiveBackgroundColor`, `chipSolidActiveBorderColor`, `chipSolidActiveTextColor`
1862
+ - `countPadding`, `countFontSize`, `countBackgroundColor`, `countTextColor`
1863
+ - `countActiveBackgroundColor`, `countActiveTextColor`
1864
+ - `disabledOpacity`
1865
+ - `small.fontSize`, `small.chipPadding`
1866
+ - `large.fontSize`, `large.chipPadding`
1867
+
1748
1868
  ## Avatar
1749
1869
 
1750
1870
  Props:
@@ -2100,7 +2220,7 @@ VueForge exposes design tokens as CSS variables generated from the theme preset.
2100
2220
  Typed tokens:
2101
2221
 
2102
2222
  - `ThemeTokens`/`ThemeOptions`/`ThemePreset` are exported for type-safe theming in TS.
2103
- - `components.*` accepts component-specific tokens (typed keys: button/card/checkbox/radio/tabs/accordion/toast/alert/input/searchInput/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/tooltip/skeleton/progress/badge/chip/avatar/datatable/slider/stepper/rating/tree/treeselect/virtualScroller).
2223
+ - `components.*` accepts component-specific tokens (typed keys: button/card/checkbox/radio/tabs/accordion/toast/alert/input/searchInput/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).
2104
2224
 
2105
2225
  Default core values (from `DefaultTheme`):
2106
2226