@codemonster-ru/vueforge 0.59.0 → 0.61.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 +94 -2
- package/dist/index.css +1 -1
- package/dist/index.d.ts +3 -0
- package/dist/index.ts.mjs +1857 -1716
- package/dist/index.ts.umd.js +3 -3
- package/dist/package/components/__tests__/empty-state.test.d.ts +1 -0
- package/dist/package/components/__tests__/input-group.test.d.ts +1 -0
- package/dist/package/components/empty-state.vue.d.ts +35 -0
- package/dist/package/components/input-addon.vue.d.ts +22 -0
- package/dist/package/components/input-group.vue.d.ts +28 -0
- package/dist/package/config/theme-core.d.ts +53 -0
- package/dist/package/themes/default/components/empty-state.d.ts +33 -0
- package/dist/package/themes/default/components/input-group.d.ts +20 -0
- package/dist/package/themes/default/index.d.ts +51 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -27,6 +27,8 @@ import {
|
|
|
27
27
|
DefaultTheme,
|
|
28
28
|
Button,
|
|
29
29
|
Input,
|
|
30
|
+
InputGroup,
|
|
31
|
+
InputAddon,
|
|
30
32
|
InlineEdit,
|
|
31
33
|
SearchInput,
|
|
32
34
|
MentionInput,
|
|
@@ -56,6 +58,7 @@ import {
|
|
|
56
58
|
Switch,
|
|
57
59
|
SegmentedControl,
|
|
58
60
|
Alert,
|
|
61
|
+
EmptyState,
|
|
59
62
|
Skeleton,
|
|
60
63
|
Progress,
|
|
61
64
|
Badge,
|
|
@@ -107,6 +110,11 @@ app.use(VueForge, {
|
|
|
107
110
|
<FormField label="Name" hint="Required field">
|
|
108
111
|
<Input v-model="name" placeholder="Your name" />
|
|
109
112
|
</FormField>
|
|
113
|
+
<InputGroup>
|
|
114
|
+
<InputAddon>$</InputAddon>
|
|
115
|
+
<NumberInput v-model="price" :min="0" :step="0.5" />
|
|
116
|
+
<InputAddon>.00</InputAddon>
|
|
117
|
+
</InputGroup>
|
|
110
118
|
<InlineEdit v-model="name" placeholder="No name" />
|
|
111
119
|
<SearchInput v-model="query" placeholder="Search components" clearable />
|
|
112
120
|
<MentionInput v-model="message" :suggestions="mentionSuggestions" placeholder="Type @name" />
|
|
@@ -140,6 +148,7 @@ app.use(VueForge, {
|
|
|
140
148
|
]"
|
|
141
149
|
/>
|
|
142
150
|
<Alert severity="info" title="Heads up" message="Project settings were updated." />
|
|
151
|
+
<EmptyState title="No projects yet" description="Create your first project to get started." icon="📂" />
|
|
143
152
|
<Skeleton height="12px" width="140px" />
|
|
144
153
|
<Progress :value="64" />
|
|
145
154
|
<Badge label="Beta" />
|
|
@@ -224,7 +233,10 @@ app.use(VueForge, {
|
|
|
224
233
|
- Toast
|
|
225
234
|
- ToastContainer
|
|
226
235
|
- Alert
|
|
236
|
+
- EmptyState
|
|
227
237
|
- Input
|
|
238
|
+
- InputGroup
|
|
239
|
+
- InputAddon
|
|
228
240
|
- InlineEdit
|
|
229
241
|
- SearchInput
|
|
230
242
|
- MentionInput
|
|
@@ -276,9 +288,11 @@ app.use(VueForge, {
|
|
|
276
288
|
- TreeSelect
|
|
277
289
|
- VirtualScroller
|
|
278
290
|
|
|
279
|
-
Input / Search / Password / Textarea (quick API):
|
|
291
|
+
Input / InputGroup / Search / Password / Textarea (quick API):
|
|
280
292
|
|
|
281
293
|
- `Input`: single-line control, supports `v-model`, `size`, `variant`, `disabled`, `readonly`.
|
|
294
|
+
- `InputGroup`: horizontal control combiner for field/addon/button layouts with unified corners and borders.
|
|
295
|
+
- `EmptyState`: reusable empty-data block with icon/title/description/actions for table/list/search blank states.
|
|
282
296
|
- `InlineEdit`: inline value editing with view/edit states, save/cancel actions, and text/number modes.
|
|
283
297
|
- `SearchInput`: search-focused control with `debounce`, `clearable`, `loading`, `size`, and `variant`.
|
|
284
298
|
- `MentionInput`: text input with `@`/`#` triggers, suggestions panel, keyboard selection, and mention insertion events.
|
|
@@ -378,6 +392,43 @@ Example:
|
|
|
378
392
|
When `error` is set, `FormField` applies invalid-state border highlighting to nested form controls.
|
|
379
393
|
Customize these colors via `theme.overrides.components.formField.errorBorderColor` and `errorFocusBorderColor`.
|
|
380
394
|
|
|
395
|
+
## InputGroup / InputAddon
|
|
396
|
+
|
|
397
|
+
Props (`InputGroup`):
|
|
398
|
+
|
|
399
|
+
- `size?: 'small' | 'normal' | 'large'` (default `normal`)
|
|
400
|
+
- `variant?: 'filled' | 'outlined'` (default `filled`)
|
|
401
|
+
- `disabled?: boolean` (default `false`)
|
|
402
|
+
|
|
403
|
+
Props (`InputAddon`):
|
|
404
|
+
|
|
405
|
+
- `as?: string` (default `span`)
|
|
406
|
+
|
|
407
|
+
Slots:
|
|
408
|
+
|
|
409
|
+
- `default` - group controls/addons content
|
|
410
|
+
|
|
411
|
+
Example:
|
|
412
|
+
|
|
413
|
+
```vue
|
|
414
|
+
<InputGroup>
|
|
415
|
+
<InputAddon>$</InputAddon>
|
|
416
|
+
<NumberInput v-model="price" :min="0" :step="0.5" />
|
|
417
|
+
<Button label="Apply" />
|
|
418
|
+
</InputGroup>
|
|
419
|
+
```
|
|
420
|
+
|
|
421
|
+
### InputGroup tokens
|
|
422
|
+
|
|
423
|
+
Component tokens (override via `theme.overrides.components.inputGroup`):
|
|
424
|
+
|
|
425
|
+
- `gap`, `borderRadius`
|
|
426
|
+
- `addonPadding`, `addonFontSize`
|
|
427
|
+
- `addonBackgroundColor`, `addonOutlinedBackgroundColor`
|
|
428
|
+
- `addonTextColor`, `addonBorderColor`, `disabledOpacity`
|
|
429
|
+
- `small.addonPadding`, `small.addonFontSize`
|
|
430
|
+
- `large.addonPadding`, `large.addonFontSize`
|
|
431
|
+
|
|
381
432
|
## InlineEdit
|
|
382
433
|
|
|
383
434
|
Props:
|
|
@@ -1619,6 +1670,47 @@ Component tokens (override via `theme.overrides.components.alert`):
|
|
|
1619
1670
|
- `actionsGap`, `closeSize`, `closeRadius`, `closeFontSize`, `closeHoverBackgroundColor`
|
|
1620
1671
|
- `info.*`, `success.*`, `warn.*`, `danger.*` (backgroundColor/borderColor/textColor)
|
|
1621
1672
|
|
|
1673
|
+
## EmptyState
|
|
1674
|
+
|
|
1675
|
+
Props:
|
|
1676
|
+
|
|
1677
|
+
- `title?: string`
|
|
1678
|
+
- `description?: string`
|
|
1679
|
+
- `icon?: string`
|
|
1680
|
+
- `size?: 'small' | 'normal' | 'large'` (default `normal`)
|
|
1681
|
+
- `variant?: 'filled' | 'outlined'` (default `filled`)
|
|
1682
|
+
|
|
1683
|
+
Slots:
|
|
1684
|
+
|
|
1685
|
+
- `default` - description content (fallbacks to `description`)
|
|
1686
|
+
- `title` (optional)
|
|
1687
|
+
- `icon` (optional)
|
|
1688
|
+
- `actions` (optional)
|
|
1689
|
+
|
|
1690
|
+
Example:
|
|
1691
|
+
|
|
1692
|
+
```vue
|
|
1693
|
+
<EmptyState title="No projects yet" description="Create your first project to get started." icon="📂">
|
|
1694
|
+
<template #actions>
|
|
1695
|
+
<Button label="Create project" size="small" />
|
|
1696
|
+
<Button label="Import" size="small" severity="secondary" />
|
|
1697
|
+
</template>
|
|
1698
|
+
</EmptyState>
|
|
1699
|
+
```
|
|
1700
|
+
|
|
1701
|
+
### EmptyState tokens
|
|
1702
|
+
|
|
1703
|
+
Component tokens (override via `theme.overrides.components.emptyState`):
|
|
1704
|
+
|
|
1705
|
+
- `gap`, `bodyGap`, `padding`, `borderRadius`
|
|
1706
|
+
- `borderColor`, `backgroundColor`, `textColor`, `maxWidth`
|
|
1707
|
+
- `iconSize`, `iconColor`
|
|
1708
|
+
- `titleFontSize`, `titleLineHeight`, `titleFontWeight`, `titleColor`
|
|
1709
|
+
- `descriptionFontSize`, `descriptionLineHeight`, `descriptionColor`
|
|
1710
|
+
- `actionsGap`
|
|
1711
|
+
- `small.padding`, `small.iconSize`, `small.titleFontSize`, `small.descriptionFontSize`
|
|
1712
|
+
- `large.padding`, `large.iconSize`, `large.titleFontSize`, `large.descriptionFontSize`
|
|
1713
|
+
|
|
1622
1714
|
### Textarea tokens
|
|
1623
1715
|
|
|
1624
1716
|
Component tokens (override via `theme.overrides.components.textarea`):
|
|
@@ -2512,7 +2604,7 @@ VueForge exposes design tokens as CSS variables generated from the theme preset.
|
|
|
2512
2604
|
Typed tokens:
|
|
2513
2605
|
|
|
2514
2606
|
- `ThemeTokens`/`ThemeOptions`/`ThemePreset` are exported for type-safe theming in TS.
|
|
2515
|
-
- `components.*` accepts component-specific tokens (typed keys: button/card/checkbox/radio/tabs/accordion/toast/alert/input/inlineEdit/searchInput/mentionInput/passwordInput/otpInput/colorPicker/maskedInput/numberInput/form/formField/textarea/link/breadcrumbs/menu/modal/confirmDialog/drawer/popover/dropdown/contextMenu/commandPalette/select/autocomplete/combobox/multiselect/taginput/datepicker/calendar/daterangepicker/timepicker/datetimepicker/pagination/switch/segmentedControl/tooltip/skeleton/progress/badge/chip/filterChips/avatar/datatable/slider/stepper/rating/tree/treeselect/virtualScroller).
|
|
2607
|
+
- `components.*` accepts component-specific tokens (typed keys: button/card/checkbox/radio/tabs/accordion/toast/alert/emptyState/input/inputGroup/inlineEdit/searchInput/mentionInput/passwordInput/otpInput/colorPicker/maskedInput/numberInput/form/formField/textarea/link/breadcrumbs/menu/modal/confirmDialog/drawer/popover/dropdown/contextMenu/commandPalette/select/autocomplete/combobox/multiselect/taginput/datepicker/calendar/daterangepicker/timepicker/datetimepicker/pagination/switch/segmentedControl/tooltip/skeleton/progress/badge/chip/filterChips/avatar/datatable/slider/stepper/rating/tree/treeselect/virtualScroller).
|
|
2516
2608
|
|
|
2517
2609
|
Default core values (from `DefaultTheme`):
|
|
2518
2610
|
|