@codemonster-ru/vueforge 0.49.0 → 0.51.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 +116 -3
- package/dist/index.css +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.ts.mjs +3561 -3031
- package/dist/index.ts.umd.js +3 -3
- package/dist/package/components/__tests__/datetimepicker.test.d.ts +1 -0
- package/dist/package/components/__tests__/search-input.test.d.ts +1 -0
- package/dist/package/components/datetimepicker.vue.d.ts +46 -0
- package/dist/package/components/multi-select.vue.d.ts +1 -1
- package/dist/package/components/otp-input.vue.d.ts +1 -1
- package/dist/package/components/password-input.vue.d.ts +1 -1
- package/dist/package/components/search-input.vue.d.ts +45 -0
- package/dist/package/components/tag-input.vue.d.ts +1 -1
- package/dist/package/components/tree-select.vue.d.ts +1 -1
- package/dist/package/config/theme-core.d.ts +98 -0
- package/dist/package/themes/default/components/datetimepicker.d.ts +63 -0
- package/dist/package/themes/default/components/search-input.d.ts +35 -0
- package/dist/package/themes/default/index.d.ts +96 -0
- package/package.json +1 -1
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,
|
|
@@ -43,6 +44,7 @@ import {
|
|
|
43
44
|
DatePicker,
|
|
44
45
|
DateRangePicker,
|
|
45
46
|
TimePicker,
|
|
47
|
+
DateTimePicker,
|
|
46
48
|
Pagination,
|
|
47
49
|
DataTable,
|
|
48
50
|
Checkbox,
|
|
@@ -83,6 +85,7 @@ app.use(VueForge, {
|
|
|
83
85
|
<FormField label="Name" hint="Required field">
|
|
84
86
|
<Input v-model="name" placeholder="Your name" />
|
|
85
87
|
</FormField>
|
|
88
|
+
<SearchInput v-model="query" placeholder="Search components" clearable />
|
|
86
89
|
<PasswordInput v-model="password" placeholder="Enter password" show-strength />
|
|
87
90
|
<OtpInput v-model="otp" :length="6" />
|
|
88
91
|
<ColorPicker v-model="brandColor" :presets="['#2b6cb0', '#0cbc87', '#d6293e']" />
|
|
@@ -98,6 +101,7 @@ app.use(VueForge, {
|
|
|
98
101
|
<DatePicker v-model="birthday" placeholder="Pick birthday" />
|
|
99
102
|
<DateRangePicker v-model="range" placeholder="Pick range" />
|
|
100
103
|
<TimePicker v-model="meetingTime" placeholder="Pick time" />
|
|
104
|
+
<DateTimePicker v-model="meetingAt" placeholder="Pick date and time" />
|
|
101
105
|
<Pagination v-model="page" :total-items="240" :page-size="20" />
|
|
102
106
|
<DataTable :columns="columns" :rows="rows" sortable striped />
|
|
103
107
|
<Checkbox v-model="agreed" label="I agree" />
|
|
@@ -178,6 +182,7 @@ app.use(VueForge, {
|
|
|
178
182
|
- ToastContainer
|
|
179
183
|
- Alert
|
|
180
184
|
- Input
|
|
185
|
+
- SearchInput
|
|
181
186
|
- PasswordInput
|
|
182
187
|
- OtpInput
|
|
183
188
|
- ColorPicker
|
|
@@ -204,6 +209,7 @@ app.use(VueForge, {
|
|
|
204
209
|
- DatePicker
|
|
205
210
|
- DateRangePicker
|
|
206
211
|
- TimePicker
|
|
212
|
+
- DateTimePicker
|
|
207
213
|
- Pagination
|
|
208
214
|
- DataTable
|
|
209
215
|
- Switch
|
|
@@ -220,9 +226,10 @@ app.use(VueForge, {
|
|
|
220
226
|
- TreeSelect
|
|
221
227
|
- VirtualScroller
|
|
222
228
|
|
|
223
|
-
Input / Password / Textarea (quick API):
|
|
229
|
+
Input / Search / Password / Textarea (quick API):
|
|
224
230
|
|
|
225
231
|
- `Input`: single-line control, supports `v-model`, `size`, `variant`, `disabled`, `readonly`.
|
|
232
|
+
- `SearchInput`: search-focused control with `debounce`, `clearable`, `loading`, `size`, and `variant`.
|
|
226
233
|
- `PasswordInput`: password control, supports visibility toggle, strength meter, CapsLock hint, `size`, and `variant`.
|
|
227
234
|
- `OtpInput`: one-time code control, supports fixed length, paste handling, numeric/alphanumeric modes, `size`, and `variant`.
|
|
228
235
|
- `ColorPicker`: color control with presets, optional alpha channel, and output formats (`hex`/`rgb`/`hsl`).
|
|
@@ -230,7 +237,7 @@ Input / Password / Textarea (quick API):
|
|
|
230
237
|
- `NumberInput`: numeric control, supports `v-model`, `min`, `max`, `step`, `precision`, `controls`, `size`, `variant`.
|
|
231
238
|
- `Textarea`: multi-line control, same as Input plus `rows`.
|
|
232
239
|
- `TagInput`: token/tag control, supports `v-model` (array), suggestions, custom tags, `maxTags`, `clearable`, `size`, `variant`.
|
|
233
|
-
- `OtpInput`, `ColorPicker`, `MaskedInput`, `Checkbox`, `Select`, `Autocomplete`, `MultiSelect`, `TagInput`, `DatePicker`, `DateRangePicker`, `Pagination`, `DataTable`, and `TreeSelect` also support `variant: 'filled' | 'outlined'`.
|
|
240
|
+
- `SearchInput`, `OtpInput`, `ColorPicker`, `MaskedInput`, `Checkbox`, `Select`, `Autocomplete`, `MultiSelect`, `TagInput`, `DatePicker`, `DateRangePicker`, `DateTimePicker`, `Pagination`, `DataTable`, and `TreeSelect` also support `variant: 'filled' | 'outlined'`.
|
|
234
241
|
|
|
235
242
|
## FormField
|
|
236
243
|
|
|
@@ -510,6 +517,65 @@ Component tokens (override via `theme.overrides.components.timepicker`):
|
|
|
510
517
|
- `small.fontSize`, `small.padding`
|
|
511
518
|
- `large.fontSize`, `large.padding`
|
|
512
519
|
|
|
520
|
+
## DateTimePicker
|
|
521
|
+
|
|
522
|
+
Props:
|
|
523
|
+
|
|
524
|
+
- `modelValue?: string` (v-model, ISO datetime `YYYY-MM-DDTHH:mm`)
|
|
525
|
+
- `placeholder?: string`
|
|
526
|
+
- `disabled?: boolean`
|
|
527
|
+
- `readonly?: boolean`
|
|
528
|
+
- `min?: string` (ISO datetime `YYYY-MM-DDTHH:mm`)
|
|
529
|
+
- `max?: string` (ISO datetime `YYYY-MM-DDTHH:mm`)
|
|
530
|
+
- `locale?: string` (default `en-US`)
|
|
531
|
+
- `firstDayOfWeek?: number` (default `0`, Sunday)
|
|
532
|
+
- `minuteStep?: number` (default `30`)
|
|
533
|
+
- `format?: '24h' | '12h'` (default `24h`)
|
|
534
|
+
- `size?: 'small' | 'normal' | 'large'` (default `normal`)
|
|
535
|
+
- `variant?: 'filled' | 'outlined'` (default `filled`)
|
|
536
|
+
|
|
537
|
+
Events:
|
|
538
|
+
|
|
539
|
+
- `update:modelValue`
|
|
540
|
+
- `change`
|
|
541
|
+
- `focus`
|
|
542
|
+
- `blur`
|
|
543
|
+
|
|
544
|
+
Example:
|
|
545
|
+
|
|
546
|
+
```vue
|
|
547
|
+
<DateTimePicker v-model="meetingAt" placeholder="Pick date and time" />
|
|
548
|
+
<DateTimePicker
|
|
549
|
+
v-model="meetingAtAlt"
|
|
550
|
+
variant="outlined"
|
|
551
|
+
min="2026-01-10T09:00"
|
|
552
|
+
max="2026-12-31T18:00"
|
|
553
|
+
:minute-step="15"
|
|
554
|
+
format="12h"
|
|
555
|
+
/>
|
|
556
|
+
```
|
|
557
|
+
|
|
558
|
+
### DateTimePicker tokens
|
|
559
|
+
|
|
560
|
+
Component tokens (override via `theme.overrides.components.datetimepicker`):
|
|
561
|
+
|
|
562
|
+
- `minWidth`, `fontSize`, `controlGap`, `chevronSize`
|
|
563
|
+
- `padding`, `borderRadius`, `borderColor`
|
|
564
|
+
- `backgroundColor`, `textColor`, `placeholderColor`
|
|
565
|
+
- `focusBorderColor`, `focusRingShadow`, `hoverBorderColor`
|
|
566
|
+
- `disabledOpacity`
|
|
567
|
+
- `panelWidth`, `panelBackgroundColor`, `panelBorderColor`, `panelPadding`, `panelRadiusOffset`, `panelShadow`, `panelGap`
|
|
568
|
+
- `headerGap`, `headerPadding`, `monthLabelFontSize`, `monthLabelFontWeight`
|
|
569
|
+
- `navButtonSize`, `navButtonRadius`, `navButtonFontSize`
|
|
570
|
+
- `weekdayColor`, `weekdayFontSize`, `weekdaysMarginBottom`
|
|
571
|
+
- `daysGap`, `daySize`, `dayFontSize`, `dayBorderRadius`
|
|
572
|
+
- `dayHoverBackgroundColor`, `daySelectedBackgroundColor`, `daySelectedTextColor`, `dayMutedColor`, `dayTodayBorderColor`
|
|
573
|
+
- `timesWidth`, `timesMaxHeight`, `timesPaddingLeft`, `timesBorderColor`
|
|
574
|
+
- `timeOptionPadding`, `timeOptionBorderRadius`, `timeOptionFontSize`
|
|
575
|
+
- `timeOptionHoverBackgroundColor`, `timeOptionActiveBackgroundColor`, `timeOptionActiveTextColor`
|
|
576
|
+
- `small.fontSize`, `small.padding`, `small.daySize`
|
|
577
|
+
- `large.fontSize`, `large.padding`, `large.daySize`
|
|
578
|
+
|
|
513
579
|
## Pagination
|
|
514
580
|
|
|
515
581
|
Props:
|
|
@@ -696,6 +762,53 @@ Component tokens (override via `theme.overrides.components.fileUpload`):
|
|
|
696
762
|
- `small.fontSize`, `small.padding`, `small.buttonPadding`
|
|
697
763
|
- `large.fontSize`, `large.padding`, `large.buttonPadding`
|
|
698
764
|
|
|
765
|
+
## SearchInput
|
|
766
|
+
|
|
767
|
+
Props:
|
|
768
|
+
|
|
769
|
+
- `modelValue?: string` (v-model)
|
|
770
|
+
- `placeholder?: string`
|
|
771
|
+
- `disabled?: boolean`
|
|
772
|
+
- `readonly?: boolean`
|
|
773
|
+
- `debounce?: number` (default `300`)
|
|
774
|
+
- `loading?: boolean` (default `false`)
|
|
775
|
+
- `clearable?: boolean` (default `false`)
|
|
776
|
+
- `size?: 'small' | 'normal' | 'large'` (default `normal`)
|
|
777
|
+
- `variant?: 'filled' | 'outlined'` (default `filled`)
|
|
778
|
+
- `ariaLabel?: string` (default `Search input`)
|
|
779
|
+
|
|
780
|
+
Events:
|
|
781
|
+
|
|
782
|
+
- `update:modelValue`
|
|
783
|
+
- `input`
|
|
784
|
+
- `change`
|
|
785
|
+
- `search`
|
|
786
|
+
- `clear`
|
|
787
|
+
- `focus`
|
|
788
|
+
- `blur`
|
|
789
|
+
|
|
790
|
+
Example:
|
|
791
|
+
|
|
792
|
+
```vue
|
|
793
|
+
<SearchInput v-model="query" placeholder="Search..." clearable />
|
|
794
|
+
<SearchInput v-model="query" placeholder="Search..." :debounce="500" loading variant="outlined" />
|
|
795
|
+
```
|
|
796
|
+
|
|
797
|
+
### SearchInput tokens
|
|
798
|
+
|
|
799
|
+
Component tokens (override via `theme.overrides.components.searchInput`):
|
|
800
|
+
|
|
801
|
+
- `gap`, `fontSize`, `padding`
|
|
802
|
+
- `borderRadius`, `borderColor`
|
|
803
|
+
- `backgroundColor`, `textColor`, `placeholderColor`
|
|
804
|
+
- `focusBorderColor`, `focusRingShadow`, `hoverBorderColor`
|
|
805
|
+
- `disabledOpacity`
|
|
806
|
+
- `iconSize`, `iconColor`
|
|
807
|
+
- `clearSize`, `clearRadius`, `clearHoverBackgroundColor`
|
|
808
|
+
- `loadingSize`, `loadingBorderColor`, `loadingTopBorderColor`
|
|
809
|
+
- `small.fontSize`, `small.padding`, `small.iconSize`, `small.clearSize`
|
|
810
|
+
- `large.fontSize`, `large.padding`, `large.iconSize`, `large.clearSize`
|
|
811
|
+
|
|
699
812
|
## NumberInput
|
|
700
813
|
|
|
701
814
|
Props:
|
|
@@ -1942,7 +2055,7 @@ VueForge exposes design tokens as CSS variables generated from the theme preset.
|
|
|
1942
2055
|
Typed tokens:
|
|
1943
2056
|
|
|
1944
2057
|
- `ThemeTokens`/`ThemeOptions`/`ThemePreset` are exported for type-safe theming in TS.
|
|
1945
|
-
- `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/pagination/switch/tooltip/skeleton/progress/badge/chip/avatar/datatable/slider/stepper/rating/tree/treeselect/virtualScroller).
|
|
2058
|
+
- `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/daterangepicker/timepicker/datetimepicker/pagination/switch/tooltip/skeleton/progress/badge/chip/avatar/datatable/slider/stepper/rating/tree/treeselect/virtualScroller).
|
|
1946
2059
|
|
|
1947
2060
|
Default core values (from `DefaultTheme`):
|
|
1948
2061
|
|