@codemonster-ru/vueforge 0.38.0 → 0.40.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 +132 -2
- package/dist/index.css +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.ts.mjs +2823 -2433
- package/dist/index.ts.umd.js +3 -3
- package/dist/package/components/__tests__/confirm-dialog.test.d.ts +1 -0
- package/dist/package/components/__tests__/treeselect.test.d.ts +1 -0
- package/dist/package/components/tree-select.vue.d.ts +92 -0
- package/dist/package/config/theme-core.d.ts +49 -0
- package/dist/package/themes/default/components/confirm-dialog.d.ts +8 -0
- package/dist/package/themes/default/components/treeselect.d.ts +41 -0
- package/dist/package/themes/default/index.d.ts +47 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -53,7 +53,9 @@ import {
|
|
|
53
53
|
Stepper,
|
|
54
54
|
Rating,
|
|
55
55
|
Tree,
|
|
56
|
+
TreeSelect,
|
|
56
57
|
Drawer,
|
|
58
|
+
ConfirmDialog,
|
|
57
59
|
Dropdown,
|
|
58
60
|
} from '@codemonster-ru/vueforge';
|
|
59
61
|
import '@codemonster-ru/vueforge/dist/index.css';
|
|
@@ -95,6 +97,7 @@ app.use(VueForge, {
|
|
|
95
97
|
<Stepper v-model="step" :steps="steps" clickable />
|
|
96
98
|
<Rating v-model="rating" allow-half />
|
|
97
99
|
<Tree v-model="selectedNode" v-model:expandedKeys="expandedKeys" :items="treeItems" />
|
|
100
|
+
<TreeSelect v-model="selectedNode" v-model:expandedKeys="expandedKeys" :items="treeItems" placeholder="Select node" />
|
|
98
101
|
<Accordion v-model="faq">
|
|
99
102
|
<AccordionItem value="shipping" title="Shipping">
|
|
100
103
|
Shipping details
|
|
@@ -108,6 +111,13 @@ app.use(VueForge, {
|
|
|
108
111
|
Drawer content
|
|
109
112
|
</template>
|
|
110
113
|
</Drawer>
|
|
114
|
+
<ConfirmDialog
|
|
115
|
+
v-model="confirmOpen"
|
|
116
|
+
title="Delete item?"
|
|
117
|
+
message="This action cannot be undone."
|
|
118
|
+
confirm-label="Delete"
|
|
119
|
+
@confirm="removeItem"
|
|
120
|
+
/>
|
|
111
121
|
<Dropdown :items="menuItems">
|
|
112
122
|
<template #trigger>
|
|
113
123
|
<Button label="Actions" />
|
|
@@ -139,6 +149,7 @@ app.use(VueForge, {
|
|
|
139
149
|
- Breadcrumbs
|
|
140
150
|
- Menu
|
|
141
151
|
- Modal
|
|
152
|
+
- ConfirmDialog
|
|
142
153
|
- Drawer
|
|
143
154
|
- Dropdown
|
|
144
155
|
- Popover
|
|
@@ -161,13 +172,14 @@ app.use(VueForge, {
|
|
|
161
172
|
- Stepper
|
|
162
173
|
- Rating
|
|
163
174
|
- Tree
|
|
175
|
+
- TreeSelect
|
|
164
176
|
|
|
165
177
|
Input / Textarea (quick API):
|
|
166
178
|
|
|
167
179
|
- `Input`: single-line control, supports `v-model`, `size`, `variant`, `disabled`, `readonly`.
|
|
168
180
|
- `NumberInput`: numeric control, supports `v-model`, `min`, `max`, `step`, `precision`, `controls`, `size`, `variant`.
|
|
169
181
|
- `Textarea`: multi-line control, same as Input plus `rows`.
|
|
170
|
-
- `Checkbox`, `Select`, `Autocomplete`, `MultiSelect`, `DatePicker`, `DateRangePicker`, `Pagination`, and `
|
|
182
|
+
- `Checkbox`, `Select`, `Autocomplete`, `MultiSelect`, `DatePicker`, `DateRangePicker`, `Pagination`, `DataTable`, and `TreeSelect` also support `variant: 'filled' | 'outlined'`.
|
|
171
183
|
|
|
172
184
|
## FormField
|
|
173
185
|
|
|
@@ -907,6 +919,57 @@ Component tokens (override via `theme.overrides.components.modal`):
|
|
|
907
919
|
- `closeSize`, `closeRadius`, `closeOffset`
|
|
908
920
|
- `closeColor`, `closeFontSize`, `closeHoverBackgroundColor`
|
|
909
921
|
|
|
922
|
+
## ConfirmDialog
|
|
923
|
+
|
|
924
|
+
Props:
|
|
925
|
+
|
|
926
|
+
- `modelValue?: boolean` (v-model)
|
|
927
|
+
- `title?: string` (default `Confirm action`)
|
|
928
|
+
- `message?: string`
|
|
929
|
+
- `confirmLabel?: string` (default `Confirm`)
|
|
930
|
+
- `cancelLabel?: string` (default `Cancel`)
|
|
931
|
+
- `confirmSeverity?: 'primary' | 'secondary' | 'success' | 'info' | 'warning' | 'danger'` (default `danger`)
|
|
932
|
+
- `loading?: boolean` (default `false`)
|
|
933
|
+
- `closeOnConfirm?: boolean` (default `true`)
|
|
934
|
+
- `size?: 'sm' | 'md' | 'lg'` (default `sm`)
|
|
935
|
+
- `closeOnOverlay?: boolean` (default `true`)
|
|
936
|
+
- `closeOnEsc?: boolean` (default `true`)
|
|
937
|
+
- `showClose?: boolean` (default `true`)
|
|
938
|
+
- `lockScroll?: boolean` (default `true`)
|
|
939
|
+
|
|
940
|
+
Slots:
|
|
941
|
+
|
|
942
|
+
- `default` (optional) - dialog message/body content (fallbacks to `message`)
|
|
943
|
+
- `actions` (optional) - custom action buttons; slot props: `{ confirm, cancel }`
|
|
944
|
+
|
|
945
|
+
Events:
|
|
946
|
+
|
|
947
|
+
- `update:modelValue`
|
|
948
|
+
- `confirm`
|
|
949
|
+
- `cancel`
|
|
950
|
+
- `open`
|
|
951
|
+
- `close`
|
|
952
|
+
|
|
953
|
+
Example:
|
|
954
|
+
|
|
955
|
+
```vue
|
|
956
|
+
<ConfirmDialog
|
|
957
|
+
v-model="open"
|
|
958
|
+
title="Delete item?"
|
|
959
|
+
message="This action cannot be undone."
|
|
960
|
+
confirm-label="Delete"
|
|
961
|
+
@confirm="removeItem"
|
|
962
|
+
/>
|
|
963
|
+
```
|
|
964
|
+
|
|
965
|
+
### ConfirmDialog tokens
|
|
966
|
+
|
|
967
|
+
Component tokens (override via `theme.overrides.components.confirmDialog`):
|
|
968
|
+
|
|
969
|
+
- `maxWidth`
|
|
970
|
+
- `messageColor`, `messageFontSize`, `messageLineHeight`
|
|
971
|
+
- `actionsGap`
|
|
972
|
+
|
|
910
973
|
## Drawer
|
|
911
974
|
|
|
912
975
|
Props:
|
|
@@ -1355,6 +1418,73 @@ Component tokens (override via `theme.overrides.components.tree`):
|
|
|
1355
1418
|
- `small.rowPadding`, `small.rowPaddingInline`, `small.rowFontSize`, `small.toggleSize`
|
|
1356
1419
|
- `large.rowPadding`, `large.rowPaddingInline`, `large.rowFontSize`, `large.toggleSize`
|
|
1357
1420
|
|
|
1421
|
+
## TreeSelect
|
|
1422
|
+
|
|
1423
|
+
Props:
|
|
1424
|
+
|
|
1425
|
+
- `items?: Array<{ key: string | number; label: string; disabled?: boolean; children?: Array<...> }>` (default `[]`)
|
|
1426
|
+
- `modelValue?: string | number | Array<string | number>` (v-model)
|
|
1427
|
+
- `expandedKeys?: Array<string | number>` (`v-model:expandedKeys`)
|
|
1428
|
+
- `multiple?: boolean` (default `false`)
|
|
1429
|
+
- `selectable?: boolean` (default `true`)
|
|
1430
|
+
- `expandOnClick?: boolean` (default `true`)
|
|
1431
|
+
- `placeholder?: string`
|
|
1432
|
+
- `searchPlaceholder?: string` (default `Search...`)
|
|
1433
|
+
- `disabled?: boolean`
|
|
1434
|
+
- `readonly?: boolean`
|
|
1435
|
+
- `loading?: boolean` (default `false`)
|
|
1436
|
+
- `loadingText?: string` (default `Loading...`)
|
|
1437
|
+
- `emptyText?: string` (default `No results`)
|
|
1438
|
+
- `filter?: boolean` (default `true`)
|
|
1439
|
+
- `clearable?: boolean` (default `false`)
|
|
1440
|
+
- `size?: 'small' | 'normal' | 'large'` (default `normal`)
|
|
1441
|
+
- `variant?: 'filled' | 'outlined'` (default `filled`)
|
|
1442
|
+
|
|
1443
|
+
Events:
|
|
1444
|
+
|
|
1445
|
+
- `update:modelValue`
|
|
1446
|
+
- `change`
|
|
1447
|
+
- `update:expandedKeys`
|
|
1448
|
+
- `toggle`
|
|
1449
|
+
- `nodeClick`
|
|
1450
|
+
- `search`
|
|
1451
|
+
- `focus`
|
|
1452
|
+
- `blur`
|
|
1453
|
+
|
|
1454
|
+
Slots:
|
|
1455
|
+
|
|
1456
|
+
- `label` - forwarded Tree node label slot props: `{ node, level, selected, expanded, disabled }`
|
|
1457
|
+
|
|
1458
|
+
Example:
|
|
1459
|
+
|
|
1460
|
+
```vue
|
|
1461
|
+
<TreeSelect
|
|
1462
|
+
v-model="selectedNode"
|
|
1463
|
+
v-model:expandedKeys="expandedKeys"
|
|
1464
|
+
:items="treeItems"
|
|
1465
|
+
placeholder="Select docs section"
|
|
1466
|
+
clearable
|
|
1467
|
+
/>
|
|
1468
|
+
<TreeSelect v-model="selectedMany" :items="treeItems" multiple variant="outlined" />
|
|
1469
|
+
```
|
|
1470
|
+
|
|
1471
|
+
### TreeSelect tokens
|
|
1472
|
+
|
|
1473
|
+
Component tokens (override via `theme.overrides.components.treeselect`):
|
|
1474
|
+
|
|
1475
|
+
- `minWidth`, `fontSize`, `controlGap`, `chevronSize`
|
|
1476
|
+
- `padding`, `borderRadius`, `borderColor`
|
|
1477
|
+
- `backgroundColor`, `textColor`, `placeholderColor`
|
|
1478
|
+
- `focusBorderColor`, `focusRingShadow`, `hoverBorderColor`
|
|
1479
|
+
- `disabledOpacity`
|
|
1480
|
+
- `panelBackgroundColor`, `panelBorderColor`, `panelPadding`, `panelMaxHeight`, `panelRadiusOffset`, `panelShadow`
|
|
1481
|
+
- `searchPadding`, `searchBorderColor`, `searchBorderRadius`
|
|
1482
|
+
- `emptyPadding`, `emptyColor`
|
|
1483
|
+
- `loadingPadding`, `loadingColor`
|
|
1484
|
+
- `clearSize`, `clearRadius`, `clearHoverBackgroundColor`
|
|
1485
|
+
- `small.fontSize`, `small.padding`
|
|
1486
|
+
- `large.fontSize`, `large.padding`
|
|
1487
|
+
|
|
1358
1488
|
## Tokens
|
|
1359
1489
|
|
|
1360
1490
|
VueForge exposes design tokens as CSS variables generated from the theme preset. Core groups:
|
|
@@ -1369,7 +1499,7 @@ VueForge exposes design tokens as CSS variables generated from the theme preset.
|
|
|
1369
1499
|
Typed tokens:
|
|
1370
1500
|
|
|
1371
1501
|
- `ThemeTokens`/`ThemeOptions`/`ThemePreset` are exported for type-safe theming in TS.
|
|
1372
|
-
- `components.*` accepts component-specific tokens (typed keys: button/card/checkbox/radio/tabs/accordion/toast/alert/input/numberInput/formField/textarea/link/breadcrumbs/menu/modal/drawer/popover/dropdown/select/autocomplete/multiselect/datepicker/daterangepicker/timepicker/pagination/switch/tooltip/skeleton/progress/badge/chip/avatar/datatable/slider/stepper/rating/tree).
|
|
1502
|
+
- `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/select/autocomplete/multiselect/datepicker/daterangepicker/timepicker/pagination/switch/tooltip/skeleton/progress/badge/chip/avatar/datatable/slider/stepper/rating/tree/treeselect).
|
|
1373
1503
|
|
|
1374
1504
|
Default core values (from `DefaultTheme`):
|
|
1375
1505
|
|