@codemonster-ru/vueforge 0.50.0 → 0.52.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
+ SearchInput,
30
31
  PasswordInput,
31
32
  OtpInput,
32
33
  ColorPicker,
@@ -41,6 +42,7 @@ import {
41
42
  MultiSelect,
42
43
  TagInput,
43
44
  DatePicker,
45
+ Calendar,
44
46
  DateRangePicker,
45
47
  TimePicker,
46
48
  DateTimePicker,
@@ -84,6 +86,7 @@ app.use(VueForge, {
84
86
  <FormField label="Name" hint="Required field">
85
87
  <Input v-model="name" placeholder="Your name" />
86
88
  </FormField>
89
+ <SearchInput v-model="query" placeholder="Search components" clearable />
87
90
  <PasswordInput v-model="password" placeholder="Enter password" show-strength />
88
91
  <OtpInput v-model="otp" :length="6" />
89
92
  <ColorPicker v-model="brandColor" :presets="['#2b6cb0', '#0cbc87', '#d6293e']" />
@@ -97,6 +100,7 @@ app.use(VueForge, {
97
100
  <MultiSelect v-model="countries" :options="countryOptions" placeholder="Select countries" clearable />
98
101
  <TagInput v-model="skills" :options="skillOptions" placeholder="Add skills" clearable />
99
102
  <DatePicker v-model="birthday" placeholder="Pick birthday" />
103
+ <Calendar v-model="selectedDate" />
100
104
  <DateRangePicker v-model="range" placeholder="Pick range" />
101
105
  <TimePicker v-model="meetingTime" placeholder="Pick time" />
102
106
  <DateTimePicker v-model="meetingAt" placeholder="Pick date and time" />
@@ -180,6 +184,7 @@ app.use(VueForge, {
180
184
  - ToastContainer
181
185
  - Alert
182
186
  - Input
187
+ - SearchInput
183
188
  - PasswordInput
184
189
  - OtpInput
185
190
  - ColorPicker
@@ -204,6 +209,7 @@ app.use(VueForge, {
204
209
  - MultiSelect
205
210
  - TagInput
206
211
  - DatePicker
212
+ - Calendar
207
213
  - DateRangePicker
208
214
  - TimePicker
209
215
  - DateTimePicker
@@ -223,9 +229,10 @@ app.use(VueForge, {
223
229
  - TreeSelect
224
230
  - VirtualScroller
225
231
 
226
- Input / Password / Textarea (quick API):
232
+ Input / Search / Password / Textarea (quick API):
227
233
 
228
234
  - `Input`: single-line control, supports `v-model`, `size`, `variant`, `disabled`, `readonly`.
235
+ - `SearchInput`: search-focused control with `debounce`, `clearable`, `loading`, `size`, and `variant`.
229
236
  - `PasswordInput`: password control, supports visibility toggle, strength meter, CapsLock hint, `size`, and `variant`.
230
237
  - `OtpInput`: one-time code control, supports fixed length, paste handling, numeric/alphanumeric modes, `size`, and `variant`.
231
238
  - `ColorPicker`: color control with presets, optional alpha channel, and output formats (`hex`/`rgb`/`hsl`).
@@ -233,7 +240,7 @@ Input / Password / Textarea (quick API):
233
240
  - `NumberInput`: numeric control, supports `v-model`, `min`, `max`, `step`, `precision`, `controls`, `size`, `variant`.
234
241
  - `Textarea`: multi-line control, same as Input plus `rows`.
235
242
  - `TagInput`: token/tag control, supports `v-model` (array), suggestions, custom tags, `maxTags`, `clearable`, `size`, `variant`.
236
- - `OtpInput`, `ColorPicker`, `MaskedInput`, `Checkbox`, `Select`, `Autocomplete`, `MultiSelect`, `TagInput`, `DatePicker`, `DateRangePicker`, `DateTimePicker`, `Pagination`, `DataTable`, and `TreeSelect` also support `variant: 'filled' | 'outlined'`.
243
+ - `SearchInput`, `OtpInput`, `ColorPicker`, `MaskedInput`, `Checkbox`, `Select`, `Autocomplete`, `MultiSelect`, `TagInput`, `DatePicker`, `Calendar`, `DateRangePicker`, `DateTimePicker`, `Pagination`, `DataTable`, and `TreeSelect` also support `variant: 'filled' | 'outlined'`.
237
244
 
238
245
  ## FormField
239
246
 
@@ -439,6 +446,48 @@ Example:
439
446
  <DatePicker v-model="startDate" placeholder="Pick date" min="2026-01-01" max="2026-12-31" />
440
447
  ```
441
448
 
449
+ ## Calendar
450
+
451
+ Props:
452
+
453
+ - `modelValue?: string` (v-model, ISO date `YYYY-MM-DD`)
454
+ - `disabled?: boolean`
455
+ - `readonly?: boolean`
456
+ - `min?: string` (ISO date `YYYY-MM-DD`)
457
+ - `max?: string` (ISO date `YYYY-MM-DD`)
458
+ - `locale?: string` (default `en-US`)
459
+ - `firstDayOfWeek?: number` (default `0`, Sunday)
460
+ - `size?: 'small' | 'normal' | 'large'` (default `normal`)
461
+ - `variant?: 'filled' | 'outlined'` (default `filled`)
462
+
463
+ Events:
464
+
465
+ - `update:modelValue`
466
+ - `change`
467
+
468
+ Example:
469
+
470
+ ```vue
471
+ <Calendar v-model="selectedDate" min="2026-01-01" max="2026-12-31" />
472
+ <Calendar v-model="selectedDateAlt" variant="outlined" :first-day-of-week="1" />
473
+ ```
474
+
475
+ ### Calendar tokens
476
+
477
+ Component tokens (override via `theme.overrides.components.calendar`):
478
+
479
+ - `width`, `fontSize`, `padding`
480
+ - `borderRadius`, `borderColor`
481
+ - `backgroundColor`, `textColor`
482
+ - `disabledOpacity`
483
+ - `headerGap`, `headerPadding`, `monthLabelFontSize`, `monthLabelFontWeight`
484
+ - `navButtonSize`, `navButtonRadius`, `navButtonFontSize`
485
+ - `weekdayColor`, `weekdayFontSize`, `weekdaysMarginBottom`
486
+ - `daysGap`, `daySize`, `dayFontSize`, `dayBorderRadius`
487
+ - `dayHoverBackgroundColor`, `daySelectedBackgroundColor`, `daySelectedTextColor`, `dayMutedColor`, `dayTodayBorderColor`
488
+ - `small.fontSize`, `small.padding`, `small.daySize`
489
+ - `large.fontSize`, `large.padding`, `large.daySize`
490
+
442
491
  ## DateRangePicker
443
492
 
444
493
  Props:
@@ -758,6 +807,53 @@ Component tokens (override via `theme.overrides.components.fileUpload`):
758
807
  - `small.fontSize`, `small.padding`, `small.buttonPadding`
759
808
  - `large.fontSize`, `large.padding`, `large.buttonPadding`
760
809
 
810
+ ## SearchInput
811
+
812
+ Props:
813
+
814
+ - `modelValue?: string` (v-model)
815
+ - `placeholder?: string`
816
+ - `disabled?: boolean`
817
+ - `readonly?: boolean`
818
+ - `debounce?: number` (default `300`)
819
+ - `loading?: boolean` (default `false`)
820
+ - `clearable?: boolean` (default `false`)
821
+ - `size?: 'small' | 'normal' | 'large'` (default `normal`)
822
+ - `variant?: 'filled' | 'outlined'` (default `filled`)
823
+ - `ariaLabel?: string` (default `Search input`)
824
+
825
+ Events:
826
+
827
+ - `update:modelValue`
828
+ - `input`
829
+ - `change`
830
+ - `search`
831
+ - `clear`
832
+ - `focus`
833
+ - `blur`
834
+
835
+ Example:
836
+
837
+ ```vue
838
+ <SearchInput v-model="query" placeholder="Search..." clearable />
839
+ <SearchInput v-model="query" placeholder="Search..." :debounce="500" loading variant="outlined" />
840
+ ```
841
+
842
+ ### SearchInput tokens
843
+
844
+ Component tokens (override via `theme.overrides.components.searchInput`):
845
+
846
+ - `gap`, `fontSize`, `padding`
847
+ - `borderRadius`, `borderColor`
848
+ - `backgroundColor`, `textColor`, `placeholderColor`
849
+ - `focusBorderColor`, `focusRingShadow`, `hoverBorderColor`
850
+ - `disabledOpacity`
851
+ - `iconSize`, `iconColor`
852
+ - `clearSize`, `clearRadius`, `clearHoverBackgroundColor`
853
+ - `loadingSize`, `loadingBorderColor`, `loadingTopBorderColor`
854
+ - `small.fontSize`, `small.padding`, `small.iconSize`, `small.clearSize`
855
+ - `large.fontSize`, `large.padding`, `large.iconSize`, `large.clearSize`
856
+
761
857
  ## NumberInput
762
858
 
763
859
  Props:
@@ -2004,7 +2100,7 @@ VueForge exposes design tokens as CSS variables generated from the theme preset.
2004
2100
  Typed tokens:
2005
2101
 
2006
2102
  - `ThemeTokens`/`ThemeOptions`/`ThemePreset` are exported for type-safe theming in TS.
2007
- - `components.*` accepts component-specific tokens (typed keys: button/card/checkbox/radio/tabs/accordion/toast/alert/input/passwordInput/otpInput/colorPicker/maskedInput/numberInput/formField/textarea/link/breadcrumbs/menu/modal/confirmDialog/drawer/popover/dropdown/contextMenu/commandPalette/select/autocomplete/multiselect/taginput/datepicker/daterangepicker/timepicker/datetimepicker/pagination/switch/tooltip/skeleton/progress/badge/chip/avatar/datatable/slider/stepper/rating/tree/treeselect/virtualScroller).
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).
2008
2104
 
2009
2105
  Default core values (from `DefaultTheme`):
2010
2106