@codemonster-ru/vueforge 0.53.0 → 0.55.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
@@ -27,6 +27,7 @@ import {
27
27
  DefaultTheme,
28
28
  Button,
29
29
  Input,
30
+ InlineEdit,
30
31
  SearchInput,
31
32
  PasswordInput,
32
33
  OtpInput,
@@ -56,6 +57,7 @@ import {
56
57
  Progress,
57
58
  Badge,
58
59
  Chip,
60
+ FilterChips,
59
61
  Accordion,
60
62
  AccordionItem,
61
63
  Slider,
@@ -87,6 +89,7 @@ app.use(VueForge, {
87
89
  <FormField label="Name" hint="Required field">
88
90
  <Input v-model="name" placeholder="Your name" />
89
91
  </FormField>
92
+ <InlineEdit v-model="name" placeholder="No name" />
90
93
  <SearchInput v-model="query" placeholder="Search components" clearable />
91
94
  <PasswordInput v-model="password" placeholder="Enter password" show-strength />
92
95
  <OtpInput v-model="otp" :length="6" />
@@ -121,6 +124,14 @@ app.use(VueForge, {
121
124
  <Progress :value="64" />
122
125
  <Badge label="Beta" />
123
126
  <Chip label="New" />
127
+ <FilterChips
128
+ v-model="filters"
129
+ :options="[
130
+ { label: 'Open', value: 'open' },
131
+ { label: 'Done', value: 'done' },
132
+ ]"
133
+ clearable
134
+ />
124
135
  <Slider v-model="volume" :min="0" :max="100" :step="5" show-value />
125
136
  <Stepper v-model="step" :steps="steps" clickable />
126
137
  <Rating v-model="rating" allow-half />
@@ -193,6 +204,7 @@ app.use(VueForge, {
193
204
  - ToastContainer
194
205
  - Alert
195
206
  - Input
207
+ - InlineEdit
196
208
  - SearchInput
197
209
  - PasswordInput
198
210
  - OtpInput
@@ -230,6 +242,7 @@ app.use(VueForge, {
230
242
  - Progress
231
243
  - Badge
232
244
  - Chip
245
+ - FilterChips
233
246
  - Avatar
234
247
  - Slider
235
248
  - Stepper
@@ -241,6 +254,7 @@ app.use(VueForge, {
241
254
  Input / Search / Password / Textarea (quick API):
242
255
 
243
256
  - `Input`: single-line control, supports `v-model`, `size`, `variant`, `disabled`, `readonly`.
257
+ - `InlineEdit`: inline value editing with view/edit states, save/cancel actions, and text/number modes.
244
258
  - `SearchInput`: search-focused control with `debounce`, `clearable`, `loading`, `size`, and `variant`.
245
259
  - `PasswordInput`: password control, supports visibility toggle, strength meter, CapsLock hint, `size`, and `variant`.
246
260
  - `OtpInput`: one-time code control, supports fixed length, paste handling, numeric/alphanumeric modes, `size`, and `variant`.
@@ -249,7 +263,8 @@ Input / Search / Password / Textarea (quick API):
249
263
  - `NumberInput`: numeric control, supports `v-model`, `min`, `max`, `step`, `precision`, `controls`, `size`, `variant`.
250
264
  - `Textarea`: multi-line control, same as Input plus `rows`.
251
265
  - `TagInput`: token/tag control, supports `v-model` (array), suggestions, custom tags, `maxTags`, `clearable`, `size`, `variant`.
252
- - `SearchInput`, `OtpInput`, `ColorPicker`, `MaskedInput`, `Checkbox`, `Select`, `Autocomplete`, `MultiSelect`, `TagInput`, `DatePicker`, `Calendar`, `DateRangePicker`, `DateTimePicker`, `Pagination`, `DataTable`, `SegmentedControl`, and `TreeSelect` also support `variant: 'filled' | 'outlined'`.
266
+ - `FilterChips`: compact chip-based filter toggles with single/multiple selection modes and optional clear action.
267
+ - `SearchInput`, `InlineEdit`, `OtpInput`, `ColorPicker`, `MaskedInput`, `Checkbox`, `Select`, `Autocomplete`, `MultiSelect`, `TagInput`, `DatePicker`, `Calendar`, `DateRangePicker`, `DateTimePicker`, `Pagination`, `DataTable`, `SegmentedControl`, and `TreeSelect` also support `variant: 'filled' | 'outlined'`.
253
268
 
254
269
  ## FormField
255
270
 
@@ -280,6 +295,53 @@ Example:
280
295
  </FormField>
281
296
  ```
282
297
 
298
+ ## InlineEdit
299
+
300
+ Props:
301
+
302
+ - `modelValue?: string | number | null` (v-model)
303
+ - `type?: 'text' | 'number'` (default `text`)
304
+ - `placeholder?: string`
305
+ - `disabled?: boolean`
306
+ - `readonly?: boolean`
307
+ - `size?: 'small' | 'normal' | 'large'` (default `normal`)
308
+ - `variant?: 'filled' | 'outlined'` (default `filled`)
309
+ - `editLabel?: string` (default `Edit`)
310
+ - `saveLabel?: string` (default `Save`)
311
+ - `cancelLabel?: string` (default `Cancel`)
312
+
313
+ Events:
314
+
315
+ - `update:modelValue`
316
+ - `save`
317
+ - `cancel`
318
+ - `start`
319
+ - `end`
320
+ - `focus`
321
+ - `blur`
322
+
323
+ Example:
324
+
325
+ ```vue
326
+ <InlineEdit v-model="projectName" placeholder="No project name" />
327
+ <InlineEdit v-model="budget" type="number" variant="outlined" />
328
+ ```
329
+
330
+ ### InlineEdit tokens
331
+
332
+ Component tokens (override via `theme.overrides.components.inlineEdit`):
333
+
334
+ - `gap`, `fontSize`, `padding`
335
+ - `borderRadius`, `borderColor`
336
+ - `backgroundColor`, `textColor`, `placeholderColor`
337
+ - `focusBorderColor`, `focusRingShadow`, `hoverBorderColor`, `disabledOpacity`
338
+ - `actionsGap`
339
+ - `buttonPadding`, `buttonRadius`, `buttonBorderColor`
340
+ - `buttonBackgroundColor`, `buttonTextColor`, `buttonHoverBackgroundColor`
341
+ - `cancelButtonBackgroundColor`, `cancelButtonTextColor`, `cancelButtonBorderColor`
342
+ - `small.fontSize`, `small.padding`, `small.buttonPadding`
343
+ - `large.fontSize`, `large.padding`, `large.buttonPadding`
344
+
283
345
  Note: default filled backgrounds for Input/Select/Textarea use `controls.backgroundColor` (defaults to `bgSoftColor`). Set it to `bgColor` to disable soft backgrounds.
284
346
 
285
347
  ## Autocomplete
@@ -1799,6 +1861,61 @@ Component tokens (override via `theme.overrides.components.chip`):
1799
1861
  - `small.fontSize`, `small.paddingX`, `small.paddingY`
1800
1862
  - `large.fontSize`, `large.paddingX`, `large.paddingY`
1801
1863
 
1864
+ ## FilterChips
1865
+
1866
+ Props:
1867
+
1868
+ - `modelValue?: string | number | Array<string | number> | null` (v-model)
1869
+ - `options?: Array<{ label: string; value: string | number; disabled?: boolean; count?: number }>` (default `[]`)
1870
+ - `multiple?: boolean` (default `true`)
1871
+ - `allowEmpty?: boolean` (default `true`, used in single mode)
1872
+ - `clearable?: boolean` (default `false`)
1873
+ - `clearText?: string` (default `Clear`)
1874
+ - `clearLabel?: string` (default `Clear filters`)
1875
+ - `disabled?: boolean`
1876
+ - `wrap?: boolean` (default `true`)
1877
+ - `size?: 'small' | 'normal' | 'large'` (default `normal`)
1878
+ - `variant?: 'soft' | 'outline' | 'solid'` (default `soft`)
1879
+ - `ariaLabel?: string`
1880
+ - `ariaLabelledby?: string`
1881
+
1882
+ Events:
1883
+
1884
+ - `update:modelValue`
1885
+ - `change`
1886
+ - `clear`
1887
+
1888
+ Example:
1889
+
1890
+ ```vue
1891
+ <FilterChips
1892
+ v-model="activeFilters"
1893
+ :options="[
1894
+ { label: 'Open', value: 'open', count: 12 },
1895
+ { label: 'In progress', value: 'progress', count: 7 },
1896
+ { label: 'Done', value: 'done', count: 18 },
1897
+ ]"
1898
+ clearable
1899
+ />
1900
+ <FilterChips v-model="activeStatus" :options="statusOptions" :multiple="false" variant="outline" />
1901
+ ```
1902
+
1903
+ ### FilterChips tokens
1904
+
1905
+ Component tokens (override via `theme.overrides.components.filterChips`):
1906
+
1907
+ - `fontSize`, `gap`
1908
+ - `chipGap`, `chipPadding`, `chipBorderRadius`
1909
+ - `chipBorderColor`, `chipBackgroundColor`, `chipTextColor`
1910
+ - `chipHoverBackgroundColor`, `chipHoverBorderColor`
1911
+ - `chipActiveBackgroundColor`, `chipActiveBorderColor`, `chipActiveTextColor`
1912
+ - `chipSolidActiveBackgroundColor`, `chipSolidActiveBorderColor`, `chipSolidActiveTextColor`
1913
+ - `countPadding`, `countFontSize`, `countBackgroundColor`, `countTextColor`
1914
+ - `countActiveBackgroundColor`, `countActiveTextColor`
1915
+ - `disabledOpacity`
1916
+ - `small.fontSize`, `small.chipPadding`
1917
+ - `large.fontSize`, `large.chipPadding`
1918
+
1802
1919
  ## Avatar
1803
1920
 
1804
1921
  Props:
@@ -2154,7 +2271,7 @@ VueForge exposes design tokens as CSS variables generated from the theme preset.
2154
2271
  Typed tokens:
2155
2272
 
2156
2273
  - `ThemeTokens`/`ThemeOptions`/`ThemePreset` are exported for type-safe theming in TS.
2157
- - `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/avatar/datatable/slider/stepper/rating/tree/treeselect/virtualScroller).
2274
+ - `components.*` accepts component-specific tokens (typed keys: button/card/checkbox/radio/tabs/accordion/toast/alert/input/inlineEdit/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).
2158
2275
 
2159
2276
  Default core values (from `DefaultTheme`):
2160
2277