@codemonster-ru/vueforge 0.48.0 → 0.50.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
@@ -30,6 +30,7 @@ import {
30
30
  PasswordInput,
31
31
  OtpInput,
32
32
  ColorPicker,
33
+ MaskedInput,
33
34
  NumberInput,
34
35
  FormField,
35
36
  Textarea,
@@ -42,6 +43,7 @@ import {
42
43
  DatePicker,
43
44
  DateRangePicker,
44
45
  TimePicker,
46
+ DateTimePicker,
45
47
  Pagination,
46
48
  DataTable,
47
49
  Checkbox,
@@ -85,6 +87,7 @@ app.use(VueForge, {
85
87
  <PasswordInput v-model="password" placeholder="Enter password" show-strength />
86
88
  <OtpInput v-model="otp" :length="6" />
87
89
  <ColorPicker v-model="brandColor" :presets="['#2b6cb0', '#0cbc87', '#d6293e']" />
90
+ <MaskedInput v-model="phone" mask="+7 (###) ###-##-##" />
88
91
  <NumberInput v-model="age" :min="0" :max="120" :step="1" />
89
92
  <Textarea v-model="bio" placeholder="Tell us about yourself" />
90
93
  <FileUpload v-model="resume" accept=".pdf,.doc,.docx" />
@@ -96,6 +99,7 @@ app.use(VueForge, {
96
99
  <DatePicker v-model="birthday" placeholder="Pick birthday" />
97
100
  <DateRangePicker v-model="range" placeholder="Pick range" />
98
101
  <TimePicker v-model="meetingTime" placeholder="Pick time" />
102
+ <DateTimePicker v-model="meetingAt" placeholder="Pick date and time" />
99
103
  <Pagination v-model="page" :total-items="240" :page-size="20" />
100
104
  <DataTable :columns="columns" :rows="rows" sortable striped />
101
105
  <Checkbox v-model="agreed" label="I agree" />
@@ -179,6 +183,7 @@ app.use(VueForge, {
179
183
  - PasswordInput
180
184
  - OtpInput
181
185
  - ColorPicker
186
+ - MaskedInput
182
187
  - NumberInput
183
188
  - FormField
184
189
  - Textarea
@@ -201,6 +206,7 @@ app.use(VueForge, {
201
206
  - DatePicker
202
207
  - DateRangePicker
203
208
  - TimePicker
209
+ - DateTimePicker
204
210
  - Pagination
205
211
  - DataTable
206
212
  - Switch
@@ -223,10 +229,11 @@ Input / Password / Textarea (quick API):
223
229
  - `PasswordInput`: password control, supports visibility toggle, strength meter, CapsLock hint, `size`, and `variant`.
224
230
  - `OtpInput`: one-time code control, supports fixed length, paste handling, numeric/alphanumeric modes, `size`, and `variant`.
225
231
  - `ColorPicker`: color control with presets, optional alpha channel, and output formats (`hex`/`rgb`/`hsl`).
232
+ - `MaskedInput`: formatted input control with string/function masks and optional raw output (`unmask`).
226
233
  - `NumberInput`: numeric control, supports `v-model`, `min`, `max`, `step`, `precision`, `controls`, `size`, `variant`.
227
234
  - `Textarea`: multi-line control, same as Input plus `rows`.
228
235
  - `TagInput`: token/tag control, supports `v-model` (array), suggestions, custom tags, `maxTags`, `clearable`, `size`, `variant`.
229
- - `OtpInput`, `ColorPicker`, `Checkbox`, `Select`, `Autocomplete`, `MultiSelect`, `TagInput`, `DatePicker`, `DateRangePicker`, `Pagination`, `DataTable`, and `TreeSelect` also support `variant: 'filled' | 'outlined'`.
236
+ - `OtpInput`, `ColorPicker`, `MaskedInput`, `Checkbox`, `Select`, `Autocomplete`, `MultiSelect`, `TagInput`, `DatePicker`, `DateRangePicker`, `DateTimePicker`, `Pagination`, `DataTable`, and `TreeSelect` also support `variant: 'filled' | 'outlined'`.
230
237
 
231
238
  ## FormField
232
239
 
@@ -506,6 +513,65 @@ Component tokens (override via `theme.overrides.components.timepicker`):
506
513
  - `small.fontSize`, `small.padding`
507
514
  - `large.fontSize`, `large.padding`
508
515
 
516
+ ## DateTimePicker
517
+
518
+ Props:
519
+
520
+ - `modelValue?: string` (v-model, ISO datetime `YYYY-MM-DDTHH:mm`)
521
+ - `placeholder?: string`
522
+ - `disabled?: boolean`
523
+ - `readonly?: boolean`
524
+ - `min?: string` (ISO datetime `YYYY-MM-DDTHH:mm`)
525
+ - `max?: string` (ISO datetime `YYYY-MM-DDTHH:mm`)
526
+ - `locale?: string` (default `en-US`)
527
+ - `firstDayOfWeek?: number` (default `0`, Sunday)
528
+ - `minuteStep?: number` (default `30`)
529
+ - `format?: '24h' | '12h'` (default `24h`)
530
+ - `size?: 'small' | 'normal' | 'large'` (default `normal`)
531
+ - `variant?: 'filled' | 'outlined'` (default `filled`)
532
+
533
+ Events:
534
+
535
+ - `update:modelValue`
536
+ - `change`
537
+ - `focus`
538
+ - `blur`
539
+
540
+ Example:
541
+
542
+ ```vue
543
+ <DateTimePicker v-model="meetingAt" placeholder="Pick date and time" />
544
+ <DateTimePicker
545
+ v-model="meetingAtAlt"
546
+ variant="outlined"
547
+ min="2026-01-10T09:00"
548
+ max="2026-12-31T18:00"
549
+ :minute-step="15"
550
+ format="12h"
551
+ />
552
+ ```
553
+
554
+ ### DateTimePicker tokens
555
+
556
+ Component tokens (override via `theme.overrides.components.datetimepicker`):
557
+
558
+ - `minWidth`, `fontSize`, `controlGap`, `chevronSize`
559
+ - `padding`, `borderRadius`, `borderColor`
560
+ - `backgroundColor`, `textColor`, `placeholderColor`
561
+ - `focusBorderColor`, `focusRingShadow`, `hoverBorderColor`
562
+ - `disabledOpacity`
563
+ - `panelWidth`, `panelBackgroundColor`, `panelBorderColor`, `panelPadding`, `panelRadiusOffset`, `panelShadow`, `panelGap`
564
+ - `headerGap`, `headerPadding`, `monthLabelFontSize`, `monthLabelFontWeight`
565
+ - `navButtonSize`, `navButtonRadius`, `navButtonFontSize`
566
+ - `weekdayColor`, `weekdayFontSize`, `weekdaysMarginBottom`
567
+ - `daysGap`, `daySize`, `dayFontSize`, `dayBorderRadius`
568
+ - `dayHoverBackgroundColor`, `daySelectedBackgroundColor`, `daySelectedTextColor`, `dayMutedColor`, `dayTodayBorderColor`
569
+ - `timesWidth`, `timesMaxHeight`, `timesPaddingLeft`, `timesBorderColor`
570
+ - `timeOptionPadding`, `timeOptionBorderRadius`, `timeOptionFontSize`
571
+ - `timeOptionHoverBackgroundColor`, `timeOptionActiveBackgroundColor`, `timeOptionActiveTextColor`
572
+ - `small.fontSize`, `small.padding`, `small.daySize`
573
+ - `large.fontSize`, `large.padding`, `large.daySize`
574
+
509
575
  ## Pagination
510
576
 
511
577
  Props:
@@ -868,6 +934,48 @@ Component tokens (override via `theme.overrides.components.colorPicker`):
868
934
  - `small.padding`, `small.fontSize`, `small.swatchSize`, `small.presetSize`
869
935
  - `large.padding`, `large.fontSize`, `large.swatchSize`, `large.presetSize`
870
936
 
937
+ ## MaskedInput
938
+
939
+ Props:
940
+
941
+ - `modelValue?: string` (v-model)
942
+ - `mask?: string | ((value: string) => string)` (default `''`)
943
+ - `placeholder?: string`
944
+ - `placeholderChar?: string` (default `_`)
945
+ - `disabled?: boolean`
946
+ - `readonly?: boolean`
947
+ - `unmask?: boolean` (default `false`)
948
+ - `size?: 'small' | 'normal' | 'large'` (default `normal`)
949
+ - `variant?: 'filled' | 'outlined'` (default `filled`)
950
+
951
+ Events:
952
+
953
+ - `update:modelValue`
954
+ - `input`
955
+ - `change`
956
+ - `focus`
957
+ - `blur`
958
+ - `complete`
959
+
960
+ Example:
961
+
962
+ ```vue
963
+ <MaskedInput v-model="phone" mask="+7 (###) ###-##-##" />
964
+ <MaskedInput v-model="licenseRaw" mask="AA-####" unmask variant="outlined" />
965
+ ```
966
+
967
+ ### MaskedInput tokens
968
+
969
+ Component tokens (override via `theme.overrides.components.maskedInput`):
970
+
971
+ - `gap`, `fontSize`, `padding`
972
+ - `borderRadius`, `borderColor`
973
+ - `backgroundColor`, `textColor`, `placeholderColor`
974
+ - `focusBorderColor`, `focusRingShadow`, `hoverBorderColor`
975
+ - `disabledOpacity`
976
+ - `small.fontSize`, `small.padding`
977
+ - `large.fontSize`, `large.padding`
978
+
871
979
  ## RadioGroup / RadioButton
872
980
 
873
981
  Props (RadioGroup):
@@ -1896,7 +2004,7 @@ VueForge exposes design tokens as CSS variables generated from the theme preset.
1896
2004
  Typed tokens:
1897
2005
 
1898
2006
  - `ThemeTokens`/`ThemeOptions`/`ThemePreset` are exported for type-safe theming in TS.
1899
- - `components.*` accepts component-specific tokens (typed keys: button/card/checkbox/radio/tabs/accordion/toast/alert/input/passwordInput/otpInput/colorPicker/numberInput/formField/textarea/link/breadcrumbs/menu/modal/confirmDialog/drawer/popover/dropdown/contextMenu/commandPalette/select/autocomplete/multiselect/taginput/datepicker/daterangepicker/timepicker/pagination/switch/tooltip/skeleton/progress/badge/chip/avatar/datatable/slider/stepper/rating/tree/treeselect/virtualScroller).
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).
1900
2008
 
1901
2009
  Default core values (from `DefaultTheme`):
1902
2010