@codemonster-ru/vueforge 0.70.0 → 0.72.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 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,
@@ -44,6 +45,7 @@ import {
44
45
  FileUpload,
45
46
  Breadcrumbs,
46
47
  Divider,
48
+ PageHeader,
47
49
  Select,
48
50
  Autocomplete,
49
51
  Combobox,
@@ -104,6 +106,11 @@ app.use(VueForge, {
104
106
 
105
107
  ```vue
106
108
  <Button label="Hello" severity="primary" />
109
+ <ButtonGroup attached variant="outlined" size="small">
110
+ <Button label="Day" />
111
+ <Button label="Week" />
112
+ <Button label="Month" />
113
+ </ButtonGroup>
107
114
  <Form v-model="formValues" :validate="validateForm" @submit="onSubmit">
108
115
  <template #default="{ values, errors, touched, setFieldValue, setFieldTouched }">
109
116
  <FormField label="Email" :error="touched.email ? errors.email : ''">
@@ -139,6 +146,12 @@ app.use(VueForge, {
139
146
  <FileUpload v-model="resume" accept=".pdf,.doc,.docx" />
140
147
  <Breadcrumbs :items="breadcrumbItems" />
141
148
  <Divider label="OR" />
149
+ <PageHeader title="Projects" subtitle="Manage active projects and team workload.">
150
+ <template #actions>
151
+ <Button label="Import" variant="outlined" severity="secondary" />
152
+ <Button label="New project" icon="plus" />
153
+ </template>
154
+ </PageHeader>
142
155
  <Select v-model="role" :options="roles" placeholder="Choose role" />
143
156
  <Autocomplete v-model="country" :options="countries" placeholder="Find country" />
144
157
  <Combobox v-model="countryId" :options="countries" placeholder="Pick country" clearable />
@@ -250,6 +263,7 @@ app.use(VueForge, {
250
263
  ## Components
251
264
 
252
265
  - Button
266
+ - ButtonGroup
253
267
  - Card
254
268
  - Checkbox
255
269
  - RadioGroup
@@ -283,6 +297,7 @@ app.use(VueForge, {
283
297
  - Link
284
298
  - Breadcrumbs
285
299
  - Divider
300
+ - PageHeader
286
301
  - Menu
287
302
  - Modal
288
303
  - ConfirmDialog
@@ -332,6 +347,7 @@ app.use(VueForge, {
332
347
  Input / InputGroup / Search / Password / Textarea (quick API):
333
348
 
334
349
  - `Input`: single-line control, supports `v-model`, `size`, `variant`, `disabled`, `readonly`.
350
+ - `ButtonGroup`: grouped button actions with shared size/variant/severity and attached/stacked layouts.
335
351
  - `InputGroup`: horizontal control combiner for field/addon/button layouts with unified corners and borders.
336
352
  - `EmptyState`: reusable empty-data block with icon/title/description/actions for table/list/search blank states.
337
353
  - `InlineEdit`: inline value editing with view/edit states, save/cancel actions, and text/number modes.
@@ -350,6 +366,7 @@ Input / InputGroup / Search / Password / Textarea (quick API):
350
366
  - `RichTextEditor`: formatting editor with toolbar actions and Markdown/HTML output.
351
367
  - `Divider`: horizontal/vertical visual separator with optional label and style variants.
352
368
  - `Spinner`: lightweight loading indicator with inline/overlay variants and severity colors.
369
+ - `PageHeader`: page-level heading block with breadcrumbs/meta/actions slots for dashboard screens.
353
370
  - `Wizard`: multi-step flow container with linear navigation, per-step validation, and completion events.
354
371
  - `Textarea`: multi-line control, same as Input plus `rows`.
355
372
  - `TagInput`: token/tag control, supports `v-model` (array), suggestions, custom tags, `maxTags`, `clearable`, `size`, `variant`.
@@ -1508,6 +1525,37 @@ Example:
1508
1525
  </RadioGroup>
1509
1526
  ```
1510
1527
 
1528
+ ## ButtonGroup
1529
+
1530
+ Props:
1531
+
1532
+ - `size?: 'small' | 'normal' | 'large'` (inherits to nested `Button`/`SplitButton` when child props are not set)
1533
+ - `variant?: 'filled' | 'outlined' | 'text'` (inherits to nested `Button`/`SplitButton`)
1534
+ - `severity?: 'primary' | 'secondary' | 'success' | 'info' | 'warning' | 'danger'` (inherits to nested `Button`/`SplitButton`)
1535
+ - `disabled?: boolean` (default `false`)
1536
+ - `orientation?: 'horizontal' | 'vertical'` (default `horizontal`)
1537
+ - `attached?: boolean` (default `false`)
1538
+
1539
+ Slots:
1540
+
1541
+ - `default` - place `Button` / `SplitButton` items
1542
+
1543
+ Example:
1544
+
1545
+ ```vue
1546
+ <ButtonGroup attached size="small" variant="outlined" severity="primary">
1547
+ <Button label="Day" />
1548
+ <Button label="Week" />
1549
+ <Button label="Month" />
1550
+ </ButtonGroup>
1551
+ ```
1552
+
1553
+ ### ButtonGroup tokens
1554
+
1555
+ Component tokens (override via `theme.overrides.components.buttonGroup`):
1556
+
1557
+ - `gap`, `borderRadius`, `disabledOpacity`
1558
+
1511
1559
  ## Breadcrumbs
1512
1560
 
1513
1561
  Props:
@@ -1574,6 +1622,53 @@ Component tokens (override via `theme.overrides.components.divider`):
1574
1622
  - `gap`, `inset`
1575
1623
  - `labelPadding`, `labelFontSize`
1576
1624
 
1625
+ ## PageHeader
1626
+
1627
+ Props:
1628
+
1629
+ - `title?: string`
1630
+ - `subtitle?: string`
1631
+ - `size?: 'small' | 'normal' | 'large'` (default `normal`)
1632
+ - `divider?: boolean` (default `false`)
1633
+
1634
+ Slots:
1635
+
1636
+ - `breadcrumbs` (optional)
1637
+ - `title` (optional) - replaces `title` prop rendering
1638
+ - `subtitle` (optional) - replaces `subtitle` prop rendering
1639
+ - `meta` (optional)
1640
+ - `actions` (optional)
1641
+ - `default` (optional) - additional body content
1642
+
1643
+ Example:
1644
+
1645
+ ```vue
1646
+ <PageHeader title="Projects" subtitle="Manage active projects and team workload.">
1647
+ <template #breadcrumbs>
1648
+ <Breadcrumbs :items="breadcrumbItems" />
1649
+ </template>
1650
+ <template #meta>
1651
+ <Badge severity="info" variant="soft">24 active</Badge>
1652
+ <Chip label="Last sync: 2m ago" />
1653
+ </template>
1654
+ <template #actions>
1655
+ <Button label="Import" variant="outlined" severity="secondary" />
1656
+ <Button label="New project" icon="plus" />
1657
+ </template>
1658
+ </PageHeader>
1659
+ ```
1660
+
1661
+ ### PageHeader tokens
1662
+
1663
+ Component tokens (override via `theme.overrides.components.pageHeader`):
1664
+
1665
+ - `gap`, `contentGap`, `breadcrumbGap`, `actionsGap`, `metaGap`
1666
+ - `padding`, `borderRadius`, `borderColor`, `backgroundColor`, `textColor`, `dividerColor`
1667
+ - `titleFontSize`, `titleLineHeight`, `titleFontWeight`
1668
+ - `subtitleFontSize`, `subtitleColor`
1669
+ - `small.padding`, `small.titleFontSize`, `small.subtitleFontSize`
1670
+ - `large.padding`, `large.titleFontSize`, `large.subtitleFontSize`
1671
+
1577
1672
  ## SegmentedControl
1578
1673
 
1579
1674
  Props:
@@ -3107,7 +3202,7 @@ VueForge exposes design tokens as CSS variables generated from the theme preset.
3107
3202
  Typed tokens:
3108
3203
 
3109
3204
  - `ThemeTokens`/`ThemeOptions`/`ThemePreset` are exported for type-safe theming in TS.
3110
- - `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/spinner/badge/chip/filterChips/avatar/datatable/slider/splitter/stepper/wizard/rating/tree/treeselect/virtualScroller).
3205
+ - `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/pageHeader/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).
3111
3206
 
3112
3207
  Default core values (from `DefaultTheme`):
3113
3208