@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 +122 -2
- package/dist/index.css +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.ts.mjs +3200 -2998
- package/dist/index.ts.umd.js +3 -3
- package/dist/package/components/__tests__/filter-chips.test.d.ts +1 -0
- package/dist/package/components/__tests__/segmented-control.test.d.ts +1 -0
- package/dist/package/components/filter-chips.vue.d.ts +49 -0
- package/dist/package/components/segmented-control.vue.d.ts +39 -0
- package/dist/package/config/theme-core.d.ts +62 -0
- package/dist/package/themes/default/components/filter-chips.d.ts +34 -0
- package/dist/package/themes/default/components/segmented-control.d.ts +28 -0
- package/dist/package/themes/default/index.d.ts +60 -0
- package/package.json +1 -1
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
|
-
- `
|
|
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
|
|