@codemonster-ru/vueforge 0.44.0 → 0.46.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 +126 -3
- package/dist/index.css +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.ts.mjs +2962 -2484
- package/dist/index.ts.umd.js +3 -3
- package/dist/package/components/__tests__/password-input.test.d.ts +1 -0
- package/dist/package/components/__tests__/taginput.test.d.ts +1 -0
- package/dist/package/components/number-input.vue.d.ts +1 -1
- package/dist/package/components/password-input.vue.d.ts +75 -0
- package/dist/package/components/rating.vue.d.ts +1 -1
- package/dist/package/components/slider.vue.d.ts +1 -1
- package/dist/package/components/tag-input.vue.d.ts +69 -0
- package/dist/package/config/theme-core.d.ts +93 -0
- package/dist/package/themes/default/components/password-input.d.ts +36 -0
- package/dist/package/themes/default/components/taginput.d.ts +57 -0
- package/dist/package/themes/default/index.d.ts +91 -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
|
+
PasswordInput,
|
|
30
31
|
NumberInput,
|
|
31
32
|
FormField,
|
|
32
33
|
Textarea,
|
|
@@ -35,6 +36,7 @@ import {
|
|
|
35
36
|
Select,
|
|
36
37
|
Autocomplete,
|
|
37
38
|
MultiSelect,
|
|
39
|
+
TagInput,
|
|
38
40
|
DatePicker,
|
|
39
41
|
DateRangePicker,
|
|
40
42
|
TimePicker,
|
|
@@ -78,6 +80,7 @@ app.use(VueForge, {
|
|
|
78
80
|
<FormField label="Name" hint="Required field">
|
|
79
81
|
<Input v-model="name" placeholder="Your name" />
|
|
80
82
|
</FormField>
|
|
83
|
+
<PasswordInput v-model="password" placeholder="Enter password" show-strength />
|
|
81
84
|
<NumberInput v-model="age" :min="0" :max="120" :step="1" />
|
|
82
85
|
<Textarea v-model="bio" placeholder="Tell us about yourself" />
|
|
83
86
|
<FileUpload v-model="resume" accept=".pdf,.doc,.docx" />
|
|
@@ -85,6 +88,7 @@ app.use(VueForge, {
|
|
|
85
88
|
<Select v-model="role" :options="roles" placeholder="Choose role" />
|
|
86
89
|
<Autocomplete v-model="country" :options="countries" placeholder="Find country" />
|
|
87
90
|
<MultiSelect v-model="countries" :options="countryOptions" placeholder="Select countries" clearable />
|
|
91
|
+
<TagInput v-model="skills" :options="skillOptions" placeholder="Add skills" clearable />
|
|
88
92
|
<DatePicker v-model="birthday" placeholder="Pick birthday" />
|
|
89
93
|
<DateRangePicker v-model="range" placeholder="Pick range" />
|
|
90
94
|
<TimePicker v-model="meetingTime" placeholder="Pick time" />
|
|
@@ -168,6 +172,7 @@ app.use(VueForge, {
|
|
|
168
172
|
- ToastContainer
|
|
169
173
|
- Alert
|
|
170
174
|
- Input
|
|
175
|
+
- PasswordInput
|
|
171
176
|
- NumberInput
|
|
172
177
|
- FormField
|
|
173
178
|
- Textarea
|
|
@@ -186,6 +191,7 @@ app.use(VueForge, {
|
|
|
186
191
|
- Select
|
|
187
192
|
- Autocomplete
|
|
188
193
|
- MultiSelect
|
|
194
|
+
- TagInput
|
|
189
195
|
- DatePicker
|
|
190
196
|
- DateRangePicker
|
|
191
197
|
- TimePicker
|
|
@@ -205,12 +211,14 @@ app.use(VueForge, {
|
|
|
205
211
|
- TreeSelect
|
|
206
212
|
- VirtualScroller
|
|
207
213
|
|
|
208
|
-
Input / Textarea (quick API):
|
|
214
|
+
Input / Password / Textarea (quick API):
|
|
209
215
|
|
|
210
216
|
- `Input`: single-line control, supports `v-model`, `size`, `variant`, `disabled`, `readonly`.
|
|
217
|
+
- `PasswordInput`: password control, supports visibility toggle, strength meter, CapsLock hint, `size`, and `variant`.
|
|
211
218
|
- `NumberInput`: numeric control, supports `v-model`, `min`, `max`, `step`, `precision`, `controls`, `size`, `variant`.
|
|
212
219
|
- `Textarea`: multi-line control, same as Input plus `rows`.
|
|
213
|
-
- `
|
|
220
|
+
- `TagInput`: token/tag control, supports `v-model` (array), suggestions, custom tags, `maxTags`, `clearable`, `size`, `variant`.
|
|
221
|
+
- `Checkbox`, `Select`, `Autocomplete`, `MultiSelect`, `TagInput`, `DatePicker`, `DateRangePicker`, `Pagination`, `DataTable`, and `TreeSelect` also support `variant: 'filled' | 'outlined'`.
|
|
214
222
|
|
|
215
223
|
## FormField
|
|
216
224
|
|
|
@@ -309,6 +317,66 @@ Example:
|
|
|
309
317
|
<MultiSelect v-model="countries" :options="countryOptions" placeholder="Select countries" clearable />
|
|
310
318
|
```
|
|
311
319
|
|
|
320
|
+
## TagInput
|
|
321
|
+
|
|
322
|
+
Props:
|
|
323
|
+
|
|
324
|
+
- `modelValue?: Array<string | number>` (v-model)
|
|
325
|
+
- `options?: Array<{ label: string; value: string | number; disabled?: boolean }>`
|
|
326
|
+
- `optionLabel?: string` (default `label`)
|
|
327
|
+
- `optionValue?: string` (default `value`)
|
|
328
|
+
- `placeholder?: string`
|
|
329
|
+
- `disabled?: boolean`
|
|
330
|
+
- `readonly?: boolean`
|
|
331
|
+
- `loading?: boolean`
|
|
332
|
+
- `loadingText?: string` (default `Loading...`)
|
|
333
|
+
- `emptyText?: string` (default `No results`)
|
|
334
|
+
- `filter?: boolean` (default `true`)
|
|
335
|
+
- `allowCustom?: boolean` (default `true`)
|
|
336
|
+
- `maxTags?: number`
|
|
337
|
+
- `clearable?: boolean` (default `false`)
|
|
338
|
+
- `validateTag?: (value: string) => boolean`
|
|
339
|
+
- `size?: 'small' | 'normal' | 'large'` (default `normal`)
|
|
340
|
+
- `variant?: 'filled' | 'outlined'` (default `filled`)
|
|
341
|
+
|
|
342
|
+
Events:
|
|
343
|
+
|
|
344
|
+
- `update:modelValue`
|
|
345
|
+
- `change`
|
|
346
|
+
- `search`
|
|
347
|
+
- `add` (payload: `{ value: string | number; source: 'option' | 'custom' }`)
|
|
348
|
+
- `remove`
|
|
349
|
+
- `reject` (payload: `{ reason: 'duplicate' | 'maxTags' | 'invalid' | 'readonly'; value: string }`)
|
|
350
|
+
- `focus`
|
|
351
|
+
- `blur`
|
|
352
|
+
|
|
353
|
+
Example:
|
|
354
|
+
|
|
355
|
+
```vue
|
|
356
|
+
<TagInput v-model="skills" :options="skillOptions" placeholder="Add skills" clearable />
|
|
357
|
+
```
|
|
358
|
+
|
|
359
|
+
### TagInput tokens
|
|
360
|
+
|
|
361
|
+
Component tokens (override via `theme.overrides.components.taginput`):
|
|
362
|
+
|
|
363
|
+
- `minWidth`, `minHeight`, `fontSize`, `controlGap`, `chevronSize`
|
|
364
|
+
- `padding`, `borderRadius`, `borderColor`
|
|
365
|
+
- `backgroundColor`, `textColor`, `placeholderColor`
|
|
366
|
+
- `focusBorderColor`, `focusRingShadow`, `hoverBorderColor`
|
|
367
|
+
- `disabledOpacity`
|
|
368
|
+
- `panelBackgroundColor`, `panelBorderColor`, `panelPadding`, `panelMaxHeight`, `panelRadiusOffset`, `panelShadow`
|
|
369
|
+
- `optionPadding`, `optionBorderRadius`
|
|
370
|
+
- `optionHoverBackgroundColor`, `optionHighlightedBackgroundColor`
|
|
371
|
+
- `emptyPadding`, `emptyColor`
|
|
372
|
+
- `loadingPadding`, `loadingColor`
|
|
373
|
+
- `inputMinWidth`
|
|
374
|
+
- `chipGap`, `chipPadding`, `chipRadius`, `chipBackgroundColor`, `chipTextColor`, `chipFontSize`
|
|
375
|
+
- `chipRemoveSize`, `chipRemoveRadius`, `chipRemoveHoverBackgroundColor`
|
|
376
|
+
- `clearSize`, `clearRadius`, `clearHoverBackgroundColor`
|
|
377
|
+
- `small.fontSize`, `small.padding`, `small.chipPadding`, `small.chipFontSize`
|
|
378
|
+
- `large.fontSize`, `large.padding`, `large.chipPadding`, `large.chipFontSize`
|
|
379
|
+
|
|
312
380
|
### MultiSelect tokens
|
|
313
381
|
|
|
314
382
|
Component tokens (override via `theme.overrides.components.multiselect`):
|
|
@@ -647,6 +715,61 @@ Example:
|
|
|
647
715
|
<NumberInput v-model="quantity" :min="0" :max="10" :step="1" />
|
|
648
716
|
```
|
|
649
717
|
|
|
718
|
+
## PasswordInput
|
|
719
|
+
|
|
720
|
+
Props:
|
|
721
|
+
|
|
722
|
+
- `modelValue?: string` (v-model)
|
|
723
|
+
- `placeholder?: string`
|
|
724
|
+
- `disabled?: boolean`
|
|
725
|
+
- `readonly?: boolean`
|
|
726
|
+
- `autocomplete?: string` (default `current-password`)
|
|
727
|
+
- `showToggle?: boolean` (default `true`)
|
|
728
|
+
- `showStrength?: boolean` (default `false`)
|
|
729
|
+
- `showCapsLockHint?: boolean` (default `true`)
|
|
730
|
+
- `revealLabel?: string` (default `Show password`)
|
|
731
|
+
- `hideLabel?: string` (default `Hide password`)
|
|
732
|
+
- `revealText?: string` (default `Show`)
|
|
733
|
+
- `hideText?: string` (default `Hide`)
|
|
734
|
+
- `capsLockHint?: string` (default `Caps Lock is on`)
|
|
735
|
+
- `weakLabel?: string` (default `Weak password`)
|
|
736
|
+
- `mediumLabel?: string` (default `Medium password`)
|
|
737
|
+
- `strongLabel?: string` (default `Strong password`)
|
|
738
|
+
- `size?: 'small' | 'normal' | 'large'` (default `normal`)
|
|
739
|
+
- `variant?: 'filled' | 'outlined'` (default `filled`)
|
|
740
|
+
- `ariaLabel?: string` (default `Password input`)
|
|
741
|
+
|
|
742
|
+
Events:
|
|
743
|
+
|
|
744
|
+
- `update:modelValue`
|
|
745
|
+
- `input`
|
|
746
|
+
- `change`
|
|
747
|
+
- `focus`
|
|
748
|
+
- `blur`
|
|
749
|
+
- `toggleVisibility` (payload: `boolean`)
|
|
750
|
+
|
|
751
|
+
Example:
|
|
752
|
+
|
|
753
|
+
```vue
|
|
754
|
+
<PasswordInput v-model="password" show-strength />
|
|
755
|
+
```
|
|
756
|
+
|
|
757
|
+
### PasswordInput tokens
|
|
758
|
+
|
|
759
|
+
Component tokens (override via `theme.overrides.components.passwordInput`):
|
|
760
|
+
|
|
761
|
+
- `gap`, `fontSize`, `padding`
|
|
762
|
+
- `borderRadius`, `borderColor`
|
|
763
|
+
- `backgroundColor`, `textColor`, `placeholderColor`
|
|
764
|
+
- `focusBorderColor`, `focusRingShadow`, `hoverBorderColor`
|
|
765
|
+
- `disabledOpacity`
|
|
766
|
+
- `toggleSize`, `toggleRadius`, `toggleColor`, `toggleHoverBackgroundColor`
|
|
767
|
+
- `strengthGap`, `strengthTrackHeight`, `strengthTrackRadius`, `strengthTrackBackgroundColor`
|
|
768
|
+
- `strengthWeakColor`, `strengthMediumColor`, `strengthStrongColor`
|
|
769
|
+
- `metaFontSize`, `hintColor`
|
|
770
|
+
- `small.fontSize`, `small.padding`
|
|
771
|
+
- `large.fontSize`, `large.padding`
|
|
772
|
+
|
|
650
773
|
## RadioGroup / RadioButton
|
|
651
774
|
|
|
652
775
|
Props (RadioGroup):
|
|
@@ -1675,7 +1798,7 @@ VueForge exposes design tokens as CSS variables generated from the theme preset.
|
|
|
1675
1798
|
Typed tokens:
|
|
1676
1799
|
|
|
1677
1800
|
- `ThemeTokens`/`ThemeOptions`/`ThemePreset` are exported for type-safe theming in TS.
|
|
1678
|
-
- `components.*` accepts component-specific tokens (typed keys: button/card/checkbox/radio/tabs/accordion/toast/alert/input/numberInput/formField/textarea/link/breadcrumbs/menu/modal/confirmDialog/drawer/popover/dropdown/contextMenu/commandPalette/select/autocomplete/multiselect/datepicker/daterangepicker/timepicker/pagination/switch/tooltip/skeleton/progress/badge/chip/avatar/datatable/slider/stepper/rating/tree/treeselect/virtualScroller).
|
|
1801
|
+
- `components.*` accepts component-specific tokens (typed keys: button/card/checkbox/radio/tabs/accordion/toast/alert/input/passwordInput/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).
|
|
1679
1802
|
|
|
1680
1803
|
Default core values (from `DefaultTheme`):
|
|
1681
1804
|
|