@codemonster-ru/vueforge 0.69.0 → 0.71.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 +78 -1
- package/dist/index.css +1 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.ts.mjs +3845 -3738
- package/dist/index.ts.umd.js +10 -10
- package/dist/package/components/__tests__/button-group.test.d.ts +1 -0
- package/dist/package/components/__tests__/spinner.test.d.ts +1 -0
- package/dist/package/components/button-group-context.d.ts +8 -0
- package/dist/package/components/button-group.vue.d.ts +36 -0
- package/dist/package/components/spinner.vue.d.ts +33 -0
- package/dist/package/config/theme-core.d.ts +43 -0
- package/dist/package/themes/default/components/button-group.d.ts +6 -0
- package/dist/package/themes/default/components/spinner.d.ts +37 -0
- package/dist/package/themes/default/index.d.ts +41 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -26,6 +26,7 @@ import {
|
|
|
26
26
|
VueForge,
|
|
27
27
|
DefaultTheme,
|
|
28
28
|
Button,
|
|
29
|
+
ButtonGroup,
|
|
29
30
|
Input,
|
|
30
31
|
InputGroup,
|
|
31
32
|
InputAddon,
|
|
@@ -63,6 +64,7 @@ import {
|
|
|
63
64
|
EmptyState,
|
|
64
65
|
Skeleton,
|
|
65
66
|
Progress,
|
|
67
|
+
Spinner,
|
|
66
68
|
Badge,
|
|
67
69
|
Chip,
|
|
68
70
|
FilterChips,
|
|
@@ -103,6 +105,11 @@ app.use(VueForge, {
|
|
|
103
105
|
|
|
104
106
|
```vue
|
|
105
107
|
<Button label="Hello" severity="primary" />
|
|
108
|
+
<ButtonGroup attached variant="outlined" size="small">
|
|
109
|
+
<Button label="Day" />
|
|
110
|
+
<Button label="Week" />
|
|
111
|
+
<Button label="Month" />
|
|
112
|
+
</ButtonGroup>
|
|
106
113
|
<Form v-model="formValues" :validate="validateForm" @submit="onSubmit">
|
|
107
114
|
<template #default="{ values, errors, touched, setFieldValue, setFieldTouched }">
|
|
108
115
|
<FormField label="Email" :error="touched.email ? errors.email : ''">
|
|
@@ -163,6 +170,7 @@ app.use(VueForge, {
|
|
|
163
170
|
<EmptyState title="No projects yet" description="Create your first project to get started." icon="📂" />
|
|
164
171
|
<Skeleton height="12px" width="140px" />
|
|
165
172
|
<Progress :value="64" />
|
|
173
|
+
<Spinner label="Loading..." />
|
|
166
174
|
<Badge label="Beta" />
|
|
167
175
|
<Chip label="New" />
|
|
168
176
|
<FilterChips
|
|
@@ -248,6 +256,7 @@ app.use(VueForge, {
|
|
|
248
256
|
## Components
|
|
249
257
|
|
|
250
258
|
- Button
|
|
259
|
+
- ButtonGroup
|
|
251
260
|
- Card
|
|
252
261
|
- Checkbox
|
|
253
262
|
- RadioGroup
|
|
@@ -310,6 +319,7 @@ app.use(VueForge, {
|
|
|
310
319
|
- Tooltip
|
|
311
320
|
- Skeleton
|
|
312
321
|
- Progress
|
|
322
|
+
- Spinner
|
|
313
323
|
- Badge
|
|
314
324
|
- Chip
|
|
315
325
|
- FilterChips
|
|
@@ -329,6 +339,7 @@ app.use(VueForge, {
|
|
|
329
339
|
Input / InputGroup / Search / Password / Textarea (quick API):
|
|
330
340
|
|
|
331
341
|
- `Input`: single-line control, supports `v-model`, `size`, `variant`, `disabled`, `readonly`.
|
|
342
|
+
- `ButtonGroup`: grouped button actions with shared size/variant/severity and attached/stacked layouts.
|
|
332
343
|
- `InputGroup`: horizontal control combiner for field/addon/button layouts with unified corners and borders.
|
|
333
344
|
- `EmptyState`: reusable empty-data block with icon/title/description/actions for table/list/search blank states.
|
|
334
345
|
- `InlineEdit`: inline value editing with view/edit states, save/cancel actions, and text/number modes.
|
|
@@ -346,6 +357,7 @@ Input / InputGroup / Search / Password / Textarea (quick API):
|
|
|
346
357
|
- `KanbanBoard`: task board with draggable cards, customizable column/card slots, and move events.
|
|
347
358
|
- `RichTextEditor`: formatting editor with toolbar actions and Markdown/HTML output.
|
|
348
359
|
- `Divider`: horizontal/vertical visual separator with optional label and style variants.
|
|
360
|
+
- `Spinner`: lightweight loading indicator with inline/overlay variants and severity colors.
|
|
349
361
|
- `Wizard`: multi-step flow container with linear navigation, per-step validation, and completion events.
|
|
350
362
|
- `Textarea`: multi-line control, same as Input plus `rows`.
|
|
351
363
|
- `TagInput`: token/tag control, supports `v-model` (array), suggestions, custom tags, `maxTags`, `clearable`, `size`, `variant`.
|
|
@@ -1504,6 +1516,37 @@ Example:
|
|
|
1504
1516
|
</RadioGroup>
|
|
1505
1517
|
```
|
|
1506
1518
|
|
|
1519
|
+
## ButtonGroup
|
|
1520
|
+
|
|
1521
|
+
Props:
|
|
1522
|
+
|
|
1523
|
+
- `size?: 'small' | 'normal' | 'large'` (inherits to nested `Button`/`SplitButton` when child props are not set)
|
|
1524
|
+
- `variant?: 'filled' | 'outlined' | 'text'` (inherits to nested `Button`/`SplitButton`)
|
|
1525
|
+
- `severity?: 'primary' | 'secondary' | 'success' | 'info' | 'warning' | 'danger'` (inherits to nested `Button`/`SplitButton`)
|
|
1526
|
+
- `disabled?: boolean` (default `false`)
|
|
1527
|
+
- `orientation?: 'horizontal' | 'vertical'` (default `horizontal`)
|
|
1528
|
+
- `attached?: boolean` (default `false`)
|
|
1529
|
+
|
|
1530
|
+
Slots:
|
|
1531
|
+
|
|
1532
|
+
- `default` - place `Button` / `SplitButton` items
|
|
1533
|
+
|
|
1534
|
+
Example:
|
|
1535
|
+
|
|
1536
|
+
```vue
|
|
1537
|
+
<ButtonGroup attached size="small" variant="outlined" severity="primary">
|
|
1538
|
+
<Button label="Day" />
|
|
1539
|
+
<Button label="Week" />
|
|
1540
|
+
<Button label="Month" />
|
|
1541
|
+
</ButtonGroup>
|
|
1542
|
+
```
|
|
1543
|
+
|
|
1544
|
+
### ButtonGroup tokens
|
|
1545
|
+
|
|
1546
|
+
Component tokens (override via `theme.overrides.components.buttonGroup`):
|
|
1547
|
+
|
|
1548
|
+
- `gap`, `borderRadius`, `disabledOpacity`
|
|
1549
|
+
|
|
1507
1550
|
## Breadcrumbs
|
|
1508
1551
|
|
|
1509
1552
|
Props:
|
|
@@ -2632,6 +2675,40 @@ Component tokens (override via `theme.overrides.components.progress`):
|
|
|
2632
2675
|
- `small.height`, `small.labelFontSize`, `small.circularSize`, `small.circularThickness`
|
|
2633
2676
|
- `large.height`, `large.labelFontSize`, `large.circularSize`, `large.circularThickness`
|
|
2634
2677
|
|
|
2678
|
+
## Spinner
|
|
2679
|
+
|
|
2680
|
+
Props:
|
|
2681
|
+
|
|
2682
|
+
- `variant?: 'inline' | 'overlay'` (default `inline`)
|
|
2683
|
+
- `size?: 'small' | 'normal' | 'large'` (default `normal`)
|
|
2684
|
+
- `severity?: 'neutral' | 'info' | 'success' | 'warn' | 'danger'` (default `neutral`)
|
|
2685
|
+
- `label?: string`
|
|
2686
|
+
- `ariaLabel?: string` (default `Loading`)
|
|
2687
|
+
|
|
2688
|
+
Slots:
|
|
2689
|
+
|
|
2690
|
+
- `default` (optional) - custom label content
|
|
2691
|
+
|
|
2692
|
+
Example:
|
|
2693
|
+
|
|
2694
|
+
```vue
|
|
2695
|
+
<Spinner />
|
|
2696
|
+
<Spinner label="Loading users..." size="small" />
|
|
2697
|
+
<Spinner variant="overlay" severity="info" label="Sync in progress" />
|
|
2698
|
+
```
|
|
2699
|
+
|
|
2700
|
+
### Spinner tokens
|
|
2701
|
+
|
|
2702
|
+
Component tokens (override via `theme.overrides.components.spinner`):
|
|
2703
|
+
|
|
2704
|
+
- `size`, `thickness`, `color`, `trackColor`
|
|
2705
|
+
- `gap`, `labelColor`, `labelFontSize`
|
|
2706
|
+
- `animationDuration`
|
|
2707
|
+
- `overlayMinHeight`, `overlayPadding`, `overlayBorderRadius`, `overlayBackgroundColor`
|
|
2708
|
+
- `info.color`, `success.color`, `warn.color`, `danger.color`
|
|
2709
|
+
- `small.size`, `small.thickness`, `small.labelFontSize`
|
|
2710
|
+
- `large.size`, `large.thickness`, `large.labelFontSize`
|
|
2711
|
+
|
|
2635
2712
|
## Slider
|
|
2636
2713
|
|
|
2637
2714
|
Props:
|
|
@@ -3069,7 +3146,7 @@ VueForge exposes design tokens as CSS variables generated from the theme preset.
|
|
|
3069
3146
|
Typed tokens:
|
|
3070
3147
|
|
|
3071
3148
|
- `ThemeTokens`/`ThemeOptions`/`ThemePreset` are exported for type-safe theming in TS.
|
|
3072
|
-
- `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/richTextEditor/link/breadcrumbs/divider/menu/modal/confirmDialog/drawer/popover/dropdown/contextMenu/commandPalette/notificationCenter/appShell/kanbanBoard/tour/select/autocomplete/combobox/multiselect/taginput/datepicker/calendar/daterangepicker/timepicker/datetimepicker/pagination/switch/segmentedControl/tooltip/skeleton/progress/badge/chip/filterChips/avatar/datatable/slider/splitter/stepper/wizard/rating/tree/treeselect/virtualScroller).
|
|
3149
|
+
- `components.*` accepts component-specific tokens (typed keys: button/buttonGroup/card/checkbox/radio/tabs/accordion/toast/alert/emptyState/input/inputGroup/inlineEdit/searchInput/mentionInput/passwordInput/otpInput/colorPicker/maskedInput/numberInput/form/formField/textarea/richTextEditor/link/breadcrumbs/divider/menu/modal/confirmDialog/drawer/popover/dropdown/contextMenu/commandPalette/notificationCenter/appShell/kanbanBoard/tour/select/autocomplete/combobox/multiselect/taginput/datepicker/calendar/daterangepicker/timepicker/datetimepicker/pagination/switch/segmentedControl/tooltip/skeleton/progress/spinner/badge/chip/filterChips/avatar/datatable/slider/splitter/stepper/wizard/rating/tree/treeselect/virtualScroller).
|
|
3073
3150
|
|
|
3074
3151
|
Default core values (from `DefaultTheme`):
|
|
3075
3152
|
|