@redvars/peacock 3.5.0 → 3.6.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/dist/BaseButton-BNFAYn-S.js +219 -0
- package/dist/BaseButton-BNFAYn-S.js.map +1 -0
- package/dist/BaseHyperlinkMixin-BNuwbiEf.js +65 -0
- package/dist/BaseHyperlinkMixin-BNuwbiEf.js.map +1 -0
- package/dist/BaseInput-14YmcfK7.js +27 -0
- package/dist/BaseInput-14YmcfK7.js.map +1 -0
- package/dist/assets/components.css +1 -1
- package/dist/assets/components.css.map +1 -1
- package/dist/assets/styles.css +1 -1
- package/dist/assets/styles.css.map +1 -1
- package/dist/banner.js +14 -30
- package/dist/banner.js.map +1 -1
- package/dist/{button-DMN1dPAg.js → button-colors-Ccys3hvS.js} +5 -468
- package/dist/button-colors-Ccys3hvS.js.map +1 -0
- package/dist/button-group.js +228 -8
- package/dist/button-group.js.map +1 -1
- package/dist/button.js +294 -8
- package/dist/button.js.map +1 -1
- package/dist/calendar-column-view.js +634 -0
- package/dist/calendar-column-view.js.map +1 -0
- package/dist/calendar-event-BrQ_SEKD.js +199 -0
- package/dist/calendar-event-BrQ_SEKD.js.map +1 -0
- package/dist/calendar-month-view.js +376 -0
- package/dist/calendar-month-view.js.map +1 -0
- package/dist/calendar.js +339 -0
- package/dist/calendar.js.map +1 -0
- package/dist/canvas.js +361 -0
- package/dist/canvas.js.map +1 -0
- package/dist/card.js +18 -73
- package/dist/card.js.map +1 -1
- package/dist/cb-compound-expression.js +125 -0
- package/dist/cb-compound-expression.js.map +1 -0
- package/dist/cb-divider.js +150 -0
- package/dist/cb-divider.js.map +1 -0
- package/dist/cb-expression.js +75 -0
- package/dist/cb-expression.js.map +1 -0
- package/dist/cb-predicate.js +137 -0
- package/dist/cb-predicate.js.map +1 -0
- package/dist/chart-bar.js.map +1 -1
- package/dist/chart-doughnut.js +2 -2
- package/dist/chart-doughnut.js.map +1 -1
- package/dist/chart-pie.js +2 -2
- package/dist/chart-pie.js.map +1 -1
- package/dist/chart-stacked-bar.js.map +1 -1
- package/dist/code-editor.js +2 -1
- package/dist/code-editor.js.map +1 -1
- package/dist/code-highlighter.js +2 -1
- package/dist/code-highlighter.js.map +1 -1
- package/dist/condition-builder.js +58 -0
- package/dist/condition-builder.js.map +1 -0
- package/dist/custom-elements-jsdocs.json +10860 -5567
- package/dist/custom-elements.json +16180 -7996
- package/dist/dropdown-button.js +216 -0
- package/dist/dropdown-button.js.map +1 -0
- package/dist/event-manager-D-QCmUgR.js +113 -0
- package/dist/event-manager-D-QCmUgR.js.map +1 -0
- package/dist/fab.js +421 -9
- package/dist/fab.js.map +1 -1
- package/dist/flow-designer-dZnLJOQT.js +1656 -0
- package/dist/flow-designer-dZnLJOQT.js.map +1 -0
- package/dist/flow-designer-node-XMe-jlKg.js +548 -0
- package/dist/flow-designer-node-XMe-jlKg.js.map +1 -0
- package/dist/flow-designer-node.js +4 -0
- package/dist/flow-designer-node.js.map +1 -0
- package/dist/flow-designer.js +16 -0
- package/dist/flow-designer.js.map +1 -0
- package/dist/html-editor.js +358 -0
- package/dist/html-editor.js.map +1 -0
- package/dist/icon-button-CK1ZuE-2.js +247 -0
- package/dist/icon-button-CK1ZuE-2.js.map +1 -0
- package/dist/index.js +31 -8
- package/dist/index.js.map +1 -1
- package/dist/{is-dark-mode-DicqGkCJ.js → is-dark-mode-DOcaw4Yq.js} +2 -27
- package/dist/is-dark-mode-DOcaw4Yq.js.map +1 -0
- package/dist/modal.js +418 -0
- package/dist/modal.js.map +1 -0
- package/dist/{select-4pl4XBj7.js → navigation-rail-DyO0oAZU.js} +2000 -2767
- package/dist/navigation-rail-DyO0oAZU.js.map +1 -0
- package/dist/notification-manager.js +268 -0
- package/dist/notification-manager.js.map +1 -0
- package/dist/notification.js +3 -2
- package/dist/notification.js.map +1 -1
- package/dist/peacock-loader.js +102 -14
- package/dist/peacock-loader.js.map +1 -1
- package/dist/popover-NC7b1lTq.js +1971 -0
- package/dist/popover-NC7b1lTq.js.map +1 -0
- package/dist/popover-content.js +125 -0
- package/dist/popover-content.js.map +1 -0
- package/dist/popover.js +4 -0
- package/dist/popover.js.map +1 -0
- package/dist/search.js +4 -0
- package/dist/search.js.map +1 -1
- package/dist/split-button.js +388 -0
- package/dist/split-button.js.map +1 -0
- package/dist/src/__controllers/floating-controller.d.ts +35 -0
- package/dist/src/__mixins/BaseButtonMixin.d.ts +20 -0
- package/dist/src/__mixins/BaseHyperlinkMixin.d.ts +18 -0
- package/dist/src/__mixins/MixinConstructor.d.ts +1 -0
- package/dist/src/banner/banner.d.ts +0 -4
- package/dist/src/button/BaseButton.d.ts +4 -47
- package/dist/src/button/button/button.d.ts +32 -3
- package/dist/src/button/button-group/button-group.d.ts +2 -2
- package/dist/src/button/icon-button/icon-button.d.ts +33 -8
- package/dist/src/calendar/base-event.d.ts +10 -0
- package/dist/src/calendar/calendar-column-view.d.ts +41 -0
- package/dist/src/calendar/calendar-event.d.ts +7 -0
- package/dist/src/calendar/calendar-month-view.d.ts +31 -0
- package/dist/src/calendar/calendar.d.ts +65 -0
- package/dist/src/calendar/event-manager.d.ts +17 -0
- package/dist/src/calendar/index.d.ts +4 -0
- package/dist/src/calendar/types.d.ts +13 -0
- package/dist/src/calendar/utils.d.ts +31 -0
- package/dist/src/canvas/canvas.d.ts +92 -0
- package/dist/src/canvas/index.d.ts +2 -0
- package/dist/src/card/card.d.ts +4 -15
- package/dist/src/condition-builder/cb-compound-expression.d.ts +31 -0
- package/dist/src/condition-builder/cb-divider.d.ts +26 -0
- package/dist/src/condition-builder/cb-expression.d.ts +31 -0
- package/dist/src/condition-builder/cb-predicate.d.ts +30 -0
- package/dist/src/condition-builder/condition-builder.d.ts +27 -0
- package/dist/src/condition-builder/index.d.ts +5 -0
- package/dist/src/dropdown-button/dropdown-button.d.ts +68 -0
- package/dist/src/dropdown-button/index.d.ts +1 -0
- package/dist/src/fab/fab.d.ts +4 -35
- package/dist/src/flow-designer/commands.d.ts +66 -0
- package/dist/src/flow-designer/flow-designer-node.d.ts +46 -0
- package/dist/src/flow-designer/flow-designer.d.ts +133 -0
- package/dist/src/flow-designer/index.d.ts +7 -0
- package/dist/src/flow-designer/layout.d.ts +30 -0
- package/dist/src/flow-designer/types.d.ts +142 -0
- package/dist/src/flow-designer/validation.d.ts +43 -0
- package/dist/src/flow-designer/workflow-utils.d.ts +40 -0
- package/dist/src/focus-ring/focus-ring.d.ts +11 -5
- package/dist/src/html-editor/html-editor.d.ts +56 -0
- package/dist/src/html-editor/index.d.ts +2 -0
- package/dist/src/index.d.ts +16 -1
- package/dist/src/link/link.d.ts +1 -1
- package/dist/src/menu/menu/menu.d.ts +5 -7
- package/dist/src/menu/menu-item/menu-item.d.ts +14 -13
- package/dist/src/modal/index.d.ts +1 -0
- package/dist/src/modal/modal.d.ts +63 -0
- package/dist/src/navigation-rail/index.d.ts +2 -0
- package/dist/src/navigation-rail/navigation-rail-item.d.ts +55 -0
- package/dist/src/navigation-rail/navigation-rail.d.ts +71 -0
- package/dist/src/notification-manager/index.d.ts +1 -0
- package/dist/src/notification-manager/notification-manager.d.ts +44 -0
- package/dist/src/popover/index.d.ts +2 -0
- package/dist/src/popover/popover-content.d.ts +29 -0
- package/dist/src/popover/popover.d.ts +62 -0
- package/dist/src/sidebar-menu/index.d.ts +3 -0
- package/dist/src/sidebar-menu/sidebar-menu-item.d.ts +58 -0
- package/dist/src/sidebar-menu/sidebar-menu.d.ts +38 -0
- package/dist/src/sidebar-menu/sidebar-sub-menu.d.ts +35 -0
- package/dist/src/split-button/index.d.ts +1 -0
- package/dist/src/split-button/split-button.d.ts +72 -0
- package/dist/src/toolbar/toolbar.d.ts +10 -10
- package/dist/src/tooltip/tooltip.d.ts +5 -15
- package/dist/src/url-field/index.d.ts +1 -0
- package/dist/src/url-field/url-field.d.ts +48 -0
- package/dist/test/flow-designer.test.d.ts +1 -0
- package/dist/test/sidebar-menu.test.d.ts +1 -0
- package/dist/toolbar.js +10 -10
- package/dist/toolbar.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +4 -2
- package/readme.md +73 -65
- package/scss/mixin.scss +16 -0
- package/src/__controllers/floating-controller.ts +237 -0
- package/src/__mixins/BaseButtonMixin.ts +83 -0
- package/src/__mixins/BaseHyperlinkMixin.ts +68 -0
- package/src/__mixins/MixinConstructor.ts +1 -0
- package/src/{__base_element → __mixins}/README.md +2 -2
- package/src/banner/banner.scss +20 -25
- package/src/banner/banner.ts +1 -7
- package/src/button/BaseButton.ts +11 -100
- package/src/button/button/button-sizes.scss +4 -2
- package/src/button/button/button.ts +77 -23
- package/src/button/button-group/button-group.ts +2 -2
- package/src/button/icon-button/icon-button.ts +75 -33
- package/src/calendar/base-event.ts +49 -0
- package/src/calendar/calendar-column-view.scss +326 -0
- package/src/calendar/calendar-column-view.ts +392 -0
- package/src/calendar/calendar-event.ts +20 -0
- package/src/calendar/calendar-month-view.scss +192 -0
- package/src/calendar/calendar-month-view.ts +244 -0
- package/src/calendar/calendar.scss +71 -0
- package/src/calendar/calendar.ts +298 -0
- package/src/calendar/event-manager.ts +117 -0
- package/src/calendar/index.ts +4 -0
- package/src/calendar/types.ts +14 -0
- package/src/calendar/utils.ts +180 -0
- package/src/canvas/canvas.scss +60 -0
- package/src/canvas/canvas.ts +391 -0
- package/src/canvas/index.ts +2 -0
- package/src/card/card.ts +11 -71
- package/src/chart-bar/chart-bar.ts +9 -14
- package/src/chart-bar/chart-stacked-bar.ts +12 -18
- package/src/chart-doughnut/chart-doughnut.ts +23 -27
- package/src/chart-pie/chart-pie.ts +19 -23
- package/src/checkbox/checkbox.scss +17 -34
- package/src/checkbox/checkbox.ts +3 -1
- package/src/code-highlighter/code-highlighter.scss +1 -0
- package/src/code-highlighter/code-highlighter.ts +1 -1
- package/src/condition-builder/cb-compound-expression.scss +37 -0
- package/src/condition-builder/cb-compound-expression.ts +80 -0
- package/src/condition-builder/cb-divider.scss +93 -0
- package/src/condition-builder/cb-divider.ts +56 -0
- package/src/condition-builder/cb-expression.scss +14 -0
- package/src/condition-builder/cb-expression.ts +49 -0
- package/src/condition-builder/cb-predicate.scss +35 -0
- package/src/condition-builder/cb-predicate.ts +102 -0
- package/src/condition-builder/condition-builder.scss +13 -0
- package/src/condition-builder/condition-builder.ts +38 -0
- package/src/condition-builder/index.ts +5 -0
- package/src/date-picker/date-picker.ts +1 -1
- package/src/dropdown-button/demo/index.html +110 -0
- package/src/dropdown-button/dropdown-button.scss +22 -0
- package/src/dropdown-button/dropdown-button.ts +206 -0
- package/src/dropdown-button/index.ts +1 -0
- package/src/elevation/elevation.scss +5 -5
- package/src/fab/fab.ts +29 -100
- package/src/flow-designer/DEMO.md +239 -0
- package/src/flow-designer/commands.ts +278 -0
- package/src/flow-designer/flow-designer-node.ts +172 -0
- package/src/flow-designer/flow-designer.scss +457 -0
- package/src/flow-designer/flow-designer.ts +611 -0
- package/src/flow-designer/index.ts +41 -0
- package/src/flow-designer/layout.ts +357 -0
- package/src/flow-designer/types.ts +166 -0
- package/src/flow-designer/validation.ts +284 -0
- package/src/flow-designer/workflow-utils.ts +282 -0
- package/src/focus-ring/focus-ring.ts +47 -40
- package/src/html-editor/html-editor.scss +146 -0
- package/src/html-editor/html-editor.ts +276 -0
- package/src/html-editor/index.ts +3 -0
- package/src/index.ts +28 -1
- package/src/input/input.ts +3 -1
- package/src/link/link.ts +2 -2
- package/src/menu/menu/menu.scss +2 -2
- package/src/menu/menu/menu.ts +91 -101
- package/src/menu/menu-item/menu-item.scss +4 -0
- package/src/menu/menu-item/menu-item.ts +85 -79
- package/src/modal/index.ts +1 -0
- package/src/modal/modal.scss +206 -0
- package/src/modal/modal.ts +201 -0
- package/src/navigation-rail/index.ts +2 -0
- package/src/navigation-rail/navigation-rail-item.scss +216 -0
- package/src/navigation-rail/navigation-rail-item.ts +223 -0
- package/src/navigation-rail/navigation-rail.scss +72 -0
- package/src/navigation-rail/navigation-rail.ts +149 -0
- package/src/notification/notification.ts +3 -2
- package/src/notification-manager/index.ts +1 -0
- package/src/notification-manager/notification-manager.scss +113 -0
- package/src/notification-manager/notification-manager.ts +199 -0
- package/src/number-field/number-field.ts +6 -4
- package/src/pagination/pagination.ts +6 -4
- package/src/peacock-loader.ts +93 -5
- package/src/popover/index.ts +2 -0
- package/src/popover/popover-content.scss +69 -0
- package/src/popover/popover-content.ts +51 -0
- package/src/popover/popover.scss +7 -0
- package/src/popover/popover.ts +170 -0
- package/src/search/search.ts +4 -0
- package/src/sidebar-menu/demo/index.html +68 -0
- package/src/sidebar-menu/index.ts +3 -0
- package/src/sidebar-menu/sidebar-menu-item.scss +102 -0
- package/src/sidebar-menu/sidebar-menu-item.ts +151 -0
- package/src/{tree-view/tree-view.scss → sidebar-menu/sidebar-menu.scss} +1 -1
- package/src/sidebar-menu/sidebar-menu.ts +182 -0
- package/src/sidebar-menu/sidebar-sub-menu.scss +130 -0
- package/src/sidebar-menu/sidebar-sub-menu.ts +160 -0
- package/src/skeleton/skeleton.scss +18 -24
- package/src/snackbar/snackbar.ts +1 -1
- package/src/split-button/index.ts +1 -0
- package/src/split-button/split-button-colors.scss +56 -0
- package/src/split-button/split-button-sizes.scss +28 -0
- package/src/split-button/split-button.scss +79 -0
- package/src/split-button/split-button.ts +236 -0
- package/src/table/table.ts +2 -2
- package/src/tabs/tab.ts +4 -3
- package/src/text/text.css-component.scss +7 -1
- package/src/time-picker/time-picker.ts +1 -1
- package/src/toolbar/toolbar.ts +10 -10
- package/src/tooltip/tooltip.scss +4 -3
- package/src/tooltip/tooltip.ts +64 -98
- package/src/url-field/index.ts +1 -0
- package/src/url-field/url-field.scss +50 -0
- package/src/url-field/url-field.ts +239 -0
- package/dist/button-DMN1dPAg.js.map +0 -1
- package/dist/button-group-CX9CUUXk.js +0 -435
- package/dist/button-group-CX9CUUXk.js.map +0 -1
- package/dist/fab-C5Nzxk0E.js +0 -497
- package/dist/fab-C5Nzxk0E.js.map +0 -1
- package/dist/is-dark-mode-DicqGkCJ.js.map +0 -1
- package/dist/select-4pl4XBj7.js.map +0 -1
- package/dist/spread-B5cgadZl.js +0 -32
- package/dist/spread-B5cgadZl.js.map +0 -1
- package/dist/src/__base_element/BaseHyperlink.d.ts +0 -20
- package/dist/src/menu/menu/MenuSurfaceController.d.ts +0 -18
- package/dist/src/tree-view/index.d.ts +0 -2
- package/dist/src/tree-view/tree-node.d.ts +0 -69
- package/dist/src/tree-view/tree-view.d.ts +0 -40
- package/dist/src/tree-view/wc-tree-view.d.ts +0 -6
- package/dist/test/tree-view.test.d.ts +0 -1
- package/dist/throttle-C7ZAPqtu.js +0 -24
- package/dist/throttle-C7ZAPqtu.js.map +0 -1
- package/src/__base_element/BaseHyperlink.ts +0 -42
- package/src/menu/menu/MenuSurfaceController.ts +0 -61
- package/src/tree-view/demo/index.html +0 -57
- package/src/tree-view/index.ts +0 -2
- package/src/tree-view/tree-node.scss +0 -101
- package/src/tree-view/tree-node.ts +0 -268
- package/src/tree-view/tree-view.ts +0 -182
- package/src/tree-view/wc-tree-view.ts +0 -9
|
@@ -1,435 +0,0 @@
|
|
|
1
|
-
import { a as i, _ as __decorate, c as __classPrivateFieldGet, b, I as IndividualComponent, i as i$1 } from './IndividualComponent-DUINtMGK.js';
|
|
2
|
-
import { n } from './property-1psGvXOq.js';
|
|
3
|
-
import { e } from './class-map-YU7g0o3B.js';
|
|
4
|
-
import { c as css_248z$2, a as css_248z$3, b as BaseButton, B as Button } from './button-DMN1dPAg.js';
|
|
5
|
-
import { s as spread } from './spread-B5cgadZl.js';
|
|
6
|
-
import { t as throttle } from './throttle-C7ZAPqtu.js';
|
|
7
|
-
|
|
8
|
-
var css_248z$1 = i`* {
|
|
9
|
-
box-sizing: border-box;
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
.screen-reader-only {
|
|
13
|
-
display: none !important;
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
.button-group {
|
|
17
|
-
display: flex;
|
|
18
|
-
gap: var(--_button-group-gap);
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
.button-group.size-xs,
|
|
22
|
-
.button-group.size-extra-small {
|
|
23
|
-
--_button-group-gap: 0.125rem;
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
.button-group.size-sm,
|
|
27
|
-
.button-group.size-small {
|
|
28
|
-
--_button-group-gap: 0.125rem;
|
|
29
|
-
--button-container-padding: 1.5rem;
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
.button-group.size-md,
|
|
33
|
-
.button-group.size-medium {
|
|
34
|
-
--_button-group-gap: 0.125rem;
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
.button-group.size-lg,
|
|
38
|
-
.button-group.size-large {
|
|
39
|
-
--_button-group-gap: 0.125rem;
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
.button-group.size-xl {
|
|
43
|
-
--_button-group-gap: 0.125rem;
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
.button-group.variant-standard {
|
|
47
|
-
--_button-group-gap: 0.5rem;
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
.button-group.variant-connected {
|
|
51
|
-
--_button-group-gap: 0.125rem;
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
.button-group.orientation-horizontal {
|
|
55
|
-
flex-direction: row;
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
.button-group.orientation-vertical {
|
|
59
|
-
flex-direction: column;
|
|
60
|
-
}`;
|
|
61
|
-
|
|
62
|
-
var css_248z = i`.button {
|
|
63
|
-
--_container-padding: 0.75rem;
|
|
64
|
-
width: var(--button-height);
|
|
65
|
-
--_container-padding: 0;
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
:host([size=xs]),
|
|
69
|
-
:host([size=extra-small]) {
|
|
70
|
-
--button-height: 2rem;
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
:host([size=xs]) .button,
|
|
74
|
-
:host([size=extra-small]) .button {
|
|
75
|
-
--_button-icon-size: 1rem;
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
:host([size=sm]),
|
|
79
|
-
:host([size=small]) {
|
|
80
|
-
--button-height: 2.5rem;
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
:host([size=sm]) .button,
|
|
84
|
-
:host([size=small]) .button {
|
|
85
|
-
--_button-icon-size: 1.25rem;
|
|
86
|
-
--_button-icon-label-spacing: 0.5rem;
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
:host([size=md]),
|
|
90
|
-
:host([size=medium]) {
|
|
91
|
-
--button-height: 3.5rem;
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
:host([size=md]) .button,
|
|
95
|
-
:host([size=medium]) .button {
|
|
96
|
-
--_button-icon-size: 1.5rem;
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
:host([size=lg]),
|
|
100
|
-
:host([size=large]) {
|
|
101
|
-
--button-height: 6rem;
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
:host([size=lg]) .button,
|
|
105
|
-
:host([size=large]) .button {
|
|
106
|
-
--_button-icon-size: 2rem;
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
:host([size=xl]) {
|
|
110
|
-
--button-height: 8.5rem;
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
:host([size=xl]) .button {
|
|
114
|
-
--_button-icon-size: 2.5rem;
|
|
115
|
-
}`;
|
|
116
|
-
|
|
117
|
-
var _IconButton_tabindex;
|
|
118
|
-
/**
|
|
119
|
-
* @label Icon Button
|
|
120
|
-
* @tag wc-icon-button
|
|
121
|
-
* @rawTag icon-button
|
|
122
|
-
*
|
|
123
|
-
* @summary Icon buttons allow users to take actions, and make choices, with a single tap.
|
|
124
|
-
*
|
|
125
|
-
* @overview
|
|
126
|
-
* <p>Icon buttons are clickable elements that are used to trigger actions. They communicate calls to action to the user and allow users to interact with pages in a variety of ways. IconButton labels express what action will occur when the user interacts with it.</p>
|
|
127
|
-
*
|
|
128
|
-
* @cssprop --button-container-shape: Defines the border radius of the button container shape.
|
|
129
|
-
*
|
|
130
|
-
* @cssprop --button-container-shape-start-start: Defines the start position of the button container shape.
|
|
131
|
-
* @cssprop --button-container-shape-start-end: Defines the end position of the button container shape.
|
|
132
|
-
* @cssprop --button-container-shape-end-start: Defines the start position of the button container shape.
|
|
133
|
-
* @cssprop --button-container-shape-end-end: Defines the end position of the button container shape.
|
|
134
|
-
*
|
|
135
|
-
*
|
|
136
|
-
* @cssprop --filled-button-container-color: Color of the filled button container.
|
|
137
|
-
* @cssprop --filled-button-label-text-color: Text color of the filled button label.
|
|
138
|
-
*
|
|
139
|
-
* @cssprop --outlined-button-container-color: Color of the outlined button container.
|
|
140
|
-
* @cssprop --outlined-button-label-text-color: Text color of the outlined button label.
|
|
141
|
-
*
|
|
142
|
-
* @cssprop --text-button-label-text-color: Text color of the text button label.
|
|
143
|
-
*
|
|
144
|
-
* @cssprop --tonal-button-container-color: Color of the tonal button container.
|
|
145
|
-
* @cssprop --tonal-button-label-text-color: Text color of the tonal button label.
|
|
146
|
-
*
|
|
147
|
-
* @cssprop --elevated-button-container-color: Color of the elevated button container.
|
|
148
|
-
* @cssprop --elevated-button-label-text-color: Text color of the elevated button label.
|
|
149
|
-
*
|
|
150
|
-
* @cssprop --neo-button-container-color: Color of the neo button container.
|
|
151
|
-
* @cssprop --neo-button-label-text-color: Text color of the neo button label.
|
|
152
|
-
*
|
|
153
|
-
* @fires {CustomEvent} button:click - Dispatched when the button is clicked.
|
|
154
|
-
*
|
|
155
|
-
* @example
|
|
156
|
-
* ```html
|
|
157
|
-
* <wc-icon-button name="home"></wc-icon-button>
|
|
158
|
-
* ```
|
|
159
|
-
* @tags display
|
|
160
|
-
*/
|
|
161
|
-
class IconButton extends BaseButton {
|
|
162
|
-
constructor() {
|
|
163
|
-
super(...arguments);
|
|
164
|
-
_IconButton_tabindex.set(this, 0);
|
|
165
|
-
this.provider = 'material-symbols';
|
|
166
|
-
}
|
|
167
|
-
focus() {
|
|
168
|
-
this.buttonElement?.focus();
|
|
169
|
-
}
|
|
170
|
-
blur() {
|
|
171
|
-
this.buttonElement?.blur();
|
|
172
|
-
}
|
|
173
|
-
connectedCallback() {
|
|
174
|
-
super.connectedCallback();
|
|
175
|
-
this.addEventListener('click', this.__dispatchClickWithThrottle);
|
|
176
|
-
window.addEventListener('mouseup', this.__handlePress);
|
|
177
|
-
}
|
|
178
|
-
disconnectedCallback() {
|
|
179
|
-
window.removeEventListener('mouseup', this.__handlePress);
|
|
180
|
-
this.removeEventListener('click', this.__dispatchClickWithThrottle);
|
|
181
|
-
super.disconnectedCallback();
|
|
182
|
-
}
|
|
183
|
-
firstUpdated() {
|
|
184
|
-
this.__dispatchClickWithThrottle = throttle(this.__dispatchClick, this.throttleDelay);
|
|
185
|
-
this.__convertTypeToVariantAndColor();
|
|
186
|
-
}
|
|
187
|
-
render() {
|
|
188
|
-
const isLink = this.__isLink();
|
|
189
|
-
const cssClasses = {
|
|
190
|
-
button: true,
|
|
191
|
-
'button-element': true,
|
|
192
|
-
[`size-${this.size}`]: true,
|
|
193
|
-
[`variant-${this.variant}`]: true,
|
|
194
|
-
[`color-${this.color}`]: true,
|
|
195
|
-
disabled: this.disabled || this.softDisabled,
|
|
196
|
-
pressed: this.isPressed,
|
|
197
|
-
skeleton: this.skeleton,
|
|
198
|
-
};
|
|
199
|
-
if (!isLink) {
|
|
200
|
-
return b `<button
|
|
201
|
-
class=${e(cssClasses)}
|
|
202
|
-
id="button"
|
|
203
|
-
tabindex=${__classPrivateFieldGet(this, _IconButton_tabindex, "f")}
|
|
204
|
-
type=${this.htmlType}
|
|
205
|
-
@click=${this.__dispatchClickWithThrottle}
|
|
206
|
-
@mousedown=${this.__handlePress}
|
|
207
|
-
@keydown=${this.__handlePress}
|
|
208
|
-
@keyup=${this.__handlePress}
|
|
209
|
-
aria-describedby=${this.__disabledReasonID}
|
|
210
|
-
aria-disabled=${`${this.disabled || this.softDisabled}`}
|
|
211
|
-
?disabled=${this.disabled}
|
|
212
|
-
${spread(this.configAria)}
|
|
213
|
-
>
|
|
214
|
-
${this.renderButtonContent()}
|
|
215
|
-
</button>
|
|
216
|
-
${this.__renderTooltip()}`;
|
|
217
|
-
}
|
|
218
|
-
return b `<a
|
|
219
|
-
class=${e(cssClasses)}
|
|
220
|
-
id="button"
|
|
221
|
-
tabindex=${__classPrivateFieldGet(this, _IconButton_tabindex, "f")}
|
|
222
|
-
href=${this.href}
|
|
223
|
-
target=${this.target}
|
|
224
|
-
@click=${this.__dispatchClickWithThrottle}
|
|
225
|
-
@mousedown=${this.__handlePress}
|
|
226
|
-
@keydown=${this.__handlePress}
|
|
227
|
-
@keyup=${this.__handlePress}
|
|
228
|
-
role="button"
|
|
229
|
-
aria-describedby=${this.__disabledReasonID}
|
|
230
|
-
aria-disabled=${`${this.disabled}`}
|
|
231
|
-
${spread(this.configAria)}
|
|
232
|
-
>
|
|
233
|
-
${this.renderButtonContent()}
|
|
234
|
-
</a>
|
|
235
|
-
${this.__renderTooltip()}`;
|
|
236
|
-
}
|
|
237
|
-
renderButtonContent() {
|
|
238
|
-
return b `
|
|
239
|
-
<wc-focus-ring class="focus-ring" .control=${this} .forElement=${this.buttonElement}></wc-focus-ring>
|
|
240
|
-
<wc-elevation class="elevation"></wc-elevation>
|
|
241
|
-
<div class="neo-background"></div>
|
|
242
|
-
<div class="background"></div>
|
|
243
|
-
<div class="outline"></div>
|
|
244
|
-
<wc-ripple class="ripple"></wc-ripple>
|
|
245
|
-
<wc-skeleton class="skeleton"></wc-skeleton>
|
|
246
|
-
|
|
247
|
-
<div class="button-content">
|
|
248
|
-
<wc-icon
|
|
249
|
-
name=${this.name}
|
|
250
|
-
src=${this.src}
|
|
251
|
-
provider=${this.provider}
|
|
252
|
-
></wc-icon>
|
|
253
|
-
</div>
|
|
254
|
-
|
|
255
|
-
${this.__renderDisabledReason()}
|
|
256
|
-
`;
|
|
257
|
-
}
|
|
258
|
-
}
|
|
259
|
-
_IconButton_tabindex = new WeakMap();
|
|
260
|
-
IconButton.styles = [css_248z$2, css_248z$3, css_248z];
|
|
261
|
-
__decorate([
|
|
262
|
-
n({ type: String, reflect: true })
|
|
263
|
-
], IconButton.prototype, "name", void 0);
|
|
264
|
-
__decorate([
|
|
265
|
-
n({ type: String, reflect: true })
|
|
266
|
-
], IconButton.prototype, "src", void 0);
|
|
267
|
-
__decorate([
|
|
268
|
-
n({ type: String })
|
|
269
|
-
], IconButton.prototype, "provider", void 0);
|
|
270
|
-
|
|
271
|
-
/**
|
|
272
|
-
* @label Button Group
|
|
273
|
-
* @tag wc-button-group
|
|
274
|
-
* @rawTag button-group
|
|
275
|
-
*
|
|
276
|
-
* @summary Group a series of buttons together on a single line with the button group, and super-power.
|
|
277
|
-
|
|
278
|
-
* @example
|
|
279
|
-
* ```html
|
|
280
|
-
* <wc-button-group variant="connected">
|
|
281
|
-
* <wc-icon-button name="home" toggle selected></wc-icon-button>
|
|
282
|
-
* <wc-icon-button name="alarm" toggle></wc-icon-button>
|
|
283
|
-
* </wc-button-group>
|
|
284
|
-
* ```
|
|
285
|
-
*
|
|
286
|
-
* @tags controls
|
|
287
|
-
*/
|
|
288
|
-
let ButtonGroup = class ButtonGroup extends i$1 {
|
|
289
|
-
constructor() {
|
|
290
|
-
super(...arguments);
|
|
291
|
-
/**
|
|
292
|
-
* Button size.
|
|
293
|
-
* Possible values are `"sm"`, `"md"`, `"lg"`. Defaults to `"md"`.
|
|
294
|
-
*/
|
|
295
|
-
this.size = 'sm';
|
|
296
|
-
/**
|
|
297
|
-
* Layout variant of the button group.
|
|
298
|
-
* `"standard"` shows buttons with a small gap between them.
|
|
299
|
-
* `"connected"` places buttons with a 2px gap; in horizontal orientation outer buttons have fully
|
|
300
|
-
* rounded outer corners and middle buttons keep standard rounded corners. In vertical orientation
|
|
301
|
-
* all buttons keep their default corner shape.
|
|
302
|
-
* Defaults to `"standard"`.
|
|
303
|
-
*/
|
|
304
|
-
this.variant = 'standard';
|
|
305
|
-
/**
|
|
306
|
-
* Orientation of the button group.
|
|
307
|
-
* `"horizontal"` lays buttons out in a row.
|
|
308
|
-
* `"vertical"` stacks buttons in a column.
|
|
309
|
-
* Defaults to `"horizontal"`.
|
|
310
|
-
*/
|
|
311
|
-
this.orientation = 'horizontal';
|
|
312
|
-
}
|
|
313
|
-
updated() {
|
|
314
|
-
this._syncChildren();
|
|
315
|
-
}
|
|
316
|
-
_getSlottedElements() {
|
|
317
|
-
const slot = this.shadowRoot?.querySelector('slot');
|
|
318
|
-
return (slot?.assignedElements({ flatten: true }) ?? []);
|
|
319
|
-
}
|
|
320
|
-
_syncChildren() {
|
|
321
|
-
const children = this._getSlottedElements();
|
|
322
|
-
const isVertical = this.orientation === 'vertical';
|
|
323
|
-
children.forEach((child, index) => {
|
|
324
|
-
const isFirst = index === 0;
|
|
325
|
-
const isLast = index === children.length - 1;
|
|
326
|
-
const isOnly = children.length === 1;
|
|
327
|
-
if (this.color && 'color' in child) {
|
|
328
|
-
child.color = this.color;
|
|
329
|
-
}
|
|
330
|
-
if (this.buttonVariant && 'variant' in child) {
|
|
331
|
-
child.variant = this.buttonVariant;
|
|
332
|
-
}
|
|
333
|
-
if (this.variant === 'connected') {
|
|
334
|
-
child.style.setProperty('--button-container-shape-variant', 'round');
|
|
335
|
-
if (isOnly) {
|
|
336
|
-
child.style.setProperty('--button-container-shape', 'var(--shape-corner-full)');
|
|
337
|
-
child.style.removeProperty('--button-container-shape-start-start');
|
|
338
|
-
child.style.removeProperty('--button-container-shape-end-start');
|
|
339
|
-
child.style.removeProperty('--button-container-shape-start-end');
|
|
340
|
-
child.style.removeProperty('--button-container-shape-end-end');
|
|
341
|
-
}
|
|
342
|
-
else if (isFirst) {
|
|
343
|
-
child.style.removeProperty('--button-container-shape');
|
|
344
|
-
if (isVertical) {
|
|
345
|
-
// Top button in vertical group: leave default corner shape
|
|
346
|
-
child.style.removeProperty('--button-container-shape-start-start');
|
|
347
|
-
child.style.removeProperty('--button-container-shape-start-end');
|
|
348
|
-
child.style.removeProperty('--button-container-shape-end-start');
|
|
349
|
-
child.style.removeProperty('--button-container-shape-end-end');
|
|
350
|
-
}
|
|
351
|
-
else {
|
|
352
|
-
// Left button in horizontal group: round left corners, standard right corners
|
|
353
|
-
child.style.setProperty('--button-container-shape-start-start', 'calc(var(--button-height) / 2)');
|
|
354
|
-
child.style.setProperty('--button-container-shape-end-start', 'calc(var(--button-height) / 2)');
|
|
355
|
-
child.style.setProperty('--button-container-shape-start-end', 'var(--shape-corner-medium)');
|
|
356
|
-
child.style.setProperty('--button-container-shape-end-end', 'var(--shape-corner-medium)');
|
|
357
|
-
}
|
|
358
|
-
}
|
|
359
|
-
else if (isLast) {
|
|
360
|
-
child.style.removeProperty('--button-container-shape');
|
|
361
|
-
if (isVertical) {
|
|
362
|
-
// Bottom button in vertical group: leave default corner shape
|
|
363
|
-
child.style.removeProperty('--button-container-shape-start-start');
|
|
364
|
-
child.style.removeProperty('--button-container-shape-start-end');
|
|
365
|
-
child.style.removeProperty('--button-container-shape-end-start');
|
|
366
|
-
child.style.removeProperty('--button-container-shape-end-end');
|
|
367
|
-
}
|
|
368
|
-
else {
|
|
369
|
-
// Right button in horizontal group: standard left corners, round right corners
|
|
370
|
-
child.style.setProperty('--button-container-shape-start-start', 'var(--shape-corner-medium)');
|
|
371
|
-
child.style.setProperty('--button-container-shape-end-start', 'var(--shape-corner-medium)');
|
|
372
|
-
child.style.setProperty('--button-container-shape-start-end', 'calc(var(--button-height) / 2)');
|
|
373
|
-
child.style.setProperty('--button-container-shape-end-end', 'calc(var(--button-height) / 2)');
|
|
374
|
-
}
|
|
375
|
-
}
|
|
376
|
-
else {
|
|
377
|
-
// Middle buttons: standard rounded corners on all sides
|
|
378
|
-
child.style.setProperty('--button-container-shape', 'var(--shape-corner-medium)');
|
|
379
|
-
child.style.removeProperty('--button-container-shape-start-start');
|
|
380
|
-
child.style.removeProperty('--button-container-shape-end-start');
|
|
381
|
-
child.style.removeProperty('--button-container-shape-start-end');
|
|
382
|
-
child.style.removeProperty('--button-container-shape-end-end');
|
|
383
|
-
}
|
|
384
|
-
}
|
|
385
|
-
else {
|
|
386
|
-
child.style.removeProperty('--button-container-shape');
|
|
387
|
-
child.style.removeProperty('--button-container-shape-start-start');
|
|
388
|
-
child.style.removeProperty('--button-container-shape-end-start');
|
|
389
|
-
child.style.removeProperty('--button-container-shape-start-end');
|
|
390
|
-
child.style.removeProperty('--button-container-shape-end-end');
|
|
391
|
-
child.style.removeProperty('--button-container-shape-variant');
|
|
392
|
-
}
|
|
393
|
-
});
|
|
394
|
-
}
|
|
395
|
-
render() {
|
|
396
|
-
const cssClasses = {
|
|
397
|
-
'button-group': true,
|
|
398
|
-
[`size-${this.size}`]: true,
|
|
399
|
-
[`variant-${this.variant}`]: true,
|
|
400
|
-
[`orientation-${this.orientation}`]: true,
|
|
401
|
-
};
|
|
402
|
-
return b `
|
|
403
|
-
<div class=${e(cssClasses)}>
|
|
404
|
-
<slot @slotchange=${() => this._syncChildren()}></slot>
|
|
405
|
-
</div>
|
|
406
|
-
`;
|
|
407
|
-
}
|
|
408
|
-
};
|
|
409
|
-
// Lit prefers CSS-in-JS for better performance and scoping.
|
|
410
|
-
// If you prefer keeping the SCSS file, you'll need a build tool (like Vite or Webpack)
|
|
411
|
-
// that can import .scss files as lit-css.
|
|
412
|
-
ButtonGroup.styles = [css_248z$1];
|
|
413
|
-
ButtonGroup.Button = Button;
|
|
414
|
-
ButtonGroup.IconButton = IconButton;
|
|
415
|
-
__decorate([
|
|
416
|
-
n()
|
|
417
|
-
], ButtonGroup.prototype, "size", void 0);
|
|
418
|
-
__decorate([
|
|
419
|
-
n({ reflect: true })
|
|
420
|
-
], ButtonGroup.prototype, "variant", void 0);
|
|
421
|
-
__decorate([
|
|
422
|
-
n({ reflect: true })
|
|
423
|
-
], ButtonGroup.prototype, "orientation", void 0);
|
|
424
|
-
__decorate([
|
|
425
|
-
n({ reflect: true })
|
|
426
|
-
], ButtonGroup.prototype, "color", void 0);
|
|
427
|
-
__decorate([
|
|
428
|
-
n({ attribute: 'button-variant', reflect: true })
|
|
429
|
-
], ButtonGroup.prototype, "buttonVariant", void 0);
|
|
430
|
-
ButtonGroup = __decorate([
|
|
431
|
-
IndividualComponent
|
|
432
|
-
], ButtonGroup);
|
|
433
|
-
|
|
434
|
-
export { ButtonGroup as B, IconButton as I };
|
|
435
|
-
//# sourceMappingURL=button-group-CX9CUUXk.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"button-group-CX9CUUXk.js","sources":["../../src/button/icon-button/icon-button.ts","../../src/button/button-group/button-group.ts"],"sourcesContent":["import { html } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport styles from '../button/button.scss';\nimport colorStyles from '../button/button-colors.scss';\nimport sizeStyles from './icon-button-sizes.scss';\nimport { spread } from '@/__directive/spread.js';\nimport { throttle } from '@/__utils/throttle.js';\nimport { BaseButton } from '../BaseButton.js';\nimport { IconProvider } from '../../icon/icon.js';\n\n/**\n * @label Icon Button\n * @tag wc-icon-button\n * @rawTag icon-button\n *\n * @summary Icon buttons allow users to take actions, and make choices, with a single tap.\n *\n * @overview\n * <p>Icon buttons are clickable elements that are used to trigger actions. They communicate calls to action to the user and allow users to interact with pages in a variety of ways. IconButton labels express what action will occur when the user interacts with it.</p>\n *\n * @cssprop --button-container-shape: Defines the border radius of the button container shape.\n *\n * @cssprop --button-container-shape-start-start: Defines the start position of the button container shape.\n * @cssprop --button-container-shape-start-end: Defines the end position of the button container shape.\n * @cssprop --button-container-shape-end-start: Defines the start position of the button container shape.\n * @cssprop --button-container-shape-end-end: Defines the end position of the button container shape.\n *\n *\n * @cssprop --filled-button-container-color: Color of the filled button container.\n * @cssprop --filled-button-label-text-color: Text color of the filled button label.\n *\n * @cssprop --outlined-button-container-color: Color of the outlined button container.\n * @cssprop --outlined-button-label-text-color: Text color of the outlined button label.\n *\n * @cssprop --text-button-label-text-color: Text color of the text button label.\n *\n * @cssprop --tonal-button-container-color: Color of the tonal button container.\n * @cssprop --tonal-button-label-text-color: Text color of the tonal button label.\n *\n * @cssprop --elevated-button-container-color: Color of the elevated button container.\n * @cssprop --elevated-button-label-text-color: Text color of the elevated button label.\n *\n * @cssprop --neo-button-container-color: Color of the neo button container.\n * @cssprop --neo-button-label-text-color: Text color of the neo button label.\n *\n * @fires {CustomEvent} button:click - Dispatched when the button is clicked.\n *\n * @example\n * ```html\n * <wc-icon-button name=\"home\"></wc-icon-button>\n * ```\n * @tags display\n */\nexport class IconButton extends BaseButton {\n static override styles = [styles, colorStyles, sizeStyles];\n\n #tabindex?: number = 0;\n\n @property({ type: String, reflect: true }) name?: string;\n\n @property({ type: String, reflect: true }) src?: string;\n\n @property({ type: String }) provider: IconProvider = 'material-symbols';\n\n override focus() {\n this.buttonElement?.focus();\n }\n\n override blur() {\n this.buttonElement?.blur();\n }\n\n override connectedCallback() {\n super.connectedCallback();\n this.addEventListener('click', this.__dispatchClickWithThrottle);\n window.addEventListener('mouseup', this.__handlePress);\n }\n\n override disconnectedCallback() {\n window.removeEventListener('mouseup', this.__handlePress);\n this.removeEventListener('click', this.__dispatchClickWithThrottle);\n super.disconnectedCallback();\n }\n \n override firstUpdated() {\n this.__dispatchClickWithThrottle = throttle(\n this.__dispatchClick,\n this.throttleDelay,\n );\n this.__convertTypeToVariantAndColor();\n }\n\n override render() {\n const isLink = this.__isLink();\n\n const cssClasses = {\n button: true,\n 'button-element': true,\n [`size-${this.size}`]: true,\n [`variant-${this.variant}`]: true,\n [`color-${this.color}`]: true,\n disabled: this.disabled || this.softDisabled,\n pressed: this.isPressed,\n skeleton: this.skeleton,\n };\n\n if (!isLink) {\n return html`<button\n class=${classMap(cssClasses)}\n id=\"button\"\n tabindex=${this.#tabindex}\n type=${this.htmlType}\n @click=${this.__dispatchClickWithThrottle}\n @mousedown=${this.__handlePress}\n @keydown=${this.__handlePress}\n @keyup=${this.__handlePress}\n aria-describedby=${this.__disabledReasonID}\n aria-disabled=${`${this.disabled || this.softDisabled}`}\n ?disabled=${this.disabled}\n ${spread(this.configAria)}\n >\n ${this.renderButtonContent()}\n </button>\n ${this.__renderTooltip()}`;\n }\n return html`<a\n class=${classMap(cssClasses)}\n id=\"button\"\n tabindex=${this.#tabindex}\n href=${this.href}\n target=${this.target}\n @click=${this.__dispatchClickWithThrottle}\n @mousedown=${this.__handlePress}\n @keydown=${this.__handlePress}\n @keyup=${this.__handlePress}\n role=\"button\"\n aria-describedby=${this.__disabledReasonID}\n aria-disabled=${`${this.disabled}`}\n ${spread(this.configAria)}\n >\n ${this.renderButtonContent()}\n </a>\n ${this.__renderTooltip()}`;\n }\n\n renderButtonContent() {\n return html`\n <wc-focus-ring class=\"focus-ring\" .control=${this} .forElement=${this.buttonElement}></wc-focus-ring>\n <wc-elevation class=\"elevation\"></wc-elevation>\n <div class=\"neo-background\"></div>\n <div class=\"background\"></div>\n <div class=\"outline\"></div>\n <wc-ripple class=\"ripple\"></wc-ripple>\n <wc-skeleton class=\"skeleton\"></wc-skeleton>\n\n <div class=\"button-content\">\n <wc-icon\n name=${this.name}\n src=${this.src}\n provider=${this.provider}\n ></wc-icon>\n </div>\n\n ${this.__renderDisabledReason()}\n `;\n }\n}\n","import { html, LitElement } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport IndividualComponent from '@/IndividualComponent.js';\nimport styles from './button-group.scss';\nimport { Button } from '../button/button.js';\nimport { IconButton } from '../icon-button/icon-button.js';\nimport { BaseButton } from '../BaseButton.js';\n\n/**\n * @label Button Group\n * @tag wc-button-group\n * @rawTag button-group\n *\n * @summary Group a series of buttons together on a single line with the button group, and super-power.\n\n * @example\n * ```html\n * <wc-button-group variant=\"connected\">\n * <wc-icon-button name=\"home\" toggle selected></wc-icon-button>\n * <wc-icon-button name=\"alarm\" toggle></wc-icon-button>\n * </wc-button-group>\n * ```\n *\n * @tags controls\n */\n@IndividualComponent\nexport class ButtonGroup extends LitElement {\n // Lit prefers CSS-in-JS for better performance and scoping.\n // If you prefer keeping the SCSS file, you'll need a build tool (like Vite or Webpack)\n // that can import .scss files as lit-css.\n static styles = [styles];\n\n static Button = Button;\n\n static IconButton = IconButton;\n\n /**\n * Button size.\n * Possible values are `\"sm\"`, `\"md\"`, `\"lg\"`. Defaults to `\"md\"`.\n */\n @property() size: 'xs' | 'sm' | 'md' | 'lg' | 'xl' = 'sm';\n\n /**\n * Layout variant of the button group.\n * `\"standard\"` shows buttons with a small gap between them.\n * `\"connected\"` places buttons with a 2px gap; in horizontal orientation outer buttons have fully\n * rounded outer corners and middle buttons keep standard rounded corners. In vertical orientation\n * all buttons keep their default corner shape.\n * Defaults to `\"standard\"`.\n */\n @property({ reflect: true }) variant: 'standard' | 'connected' = 'standard';\n\n /**\n * Orientation of the button group.\n * `\"horizontal\"` lays buttons out in a row.\n * `\"vertical\"` stacks buttons in a column.\n * Defaults to `\"horizontal\"`.\n */\n @property({ reflect: true }) orientation: 'horizontal' | 'vertical' = 'horizontal';\n\n /**\n * Color applied to all buttons in the group.\n * Possible values are `\"primary\"`, `\"success\"`, `\"danger\"`, `\"warning\"`, `\"surface\"`, `\"on-surface\"`.\n */\n @property({ reflect: true }) color?: 'primary' | 'success' | 'danger' | 'warning' | 'surface' | 'on-surface';\n\n /**\n * Visual style applied to all buttons in the group.\n * Possible values are `\"filled\"`, `\"tonal\"`, `\"outlined\"`.\n */\n @property({ attribute: 'button-variant', reflect: true }) buttonVariant?: 'filled' | 'tonal' | 'outlined';\n\n override updated() {\n this._syncChildren();\n }\n\n private _getSlottedElements(): HTMLElement[] {\n const slot = this.shadowRoot?.querySelector('slot');\n return (slot?.assignedElements({ flatten: true }) ?? []) as HTMLElement[];\n }\n\n private _syncChildren() {\n const children = this._getSlottedElements();\n const isVertical = this.orientation === 'vertical';\n\n children.forEach((child, index) => {\n const isFirst = index === 0;\n const isLast = index === children.length - 1;\n const isOnly = children.length === 1;\n\n if (this.color && 'color' in child) {\n (child as BaseButton).color = this.color;\n }\n\n if (this.buttonVariant && 'variant' in child) {\n (child as BaseButton).variant = this.buttonVariant;\n }\n\n if (this.variant === 'connected') {\n child.style.setProperty('--button-container-shape-variant', 'round');\n\n if (isOnly) {\n child.style.setProperty('--button-container-shape', 'var(--shape-corner-full)');\n child.style.removeProperty('--button-container-shape-start-start');\n child.style.removeProperty('--button-container-shape-end-start');\n child.style.removeProperty('--button-container-shape-start-end');\n child.style.removeProperty('--button-container-shape-end-end');\n } else if (isFirst) {\n child.style.removeProperty('--button-container-shape');\n if (isVertical) {\n // Top button in vertical group: leave default corner shape\n child.style.removeProperty('--button-container-shape-start-start');\n child.style.removeProperty('--button-container-shape-start-end');\n child.style.removeProperty('--button-container-shape-end-start');\n child.style.removeProperty('--button-container-shape-end-end');\n } else {\n // Left button in horizontal group: round left corners, standard right corners\n child.style.setProperty('--button-container-shape-start-start', 'calc(var(--button-height) / 2)');\n child.style.setProperty('--button-container-shape-end-start', 'calc(var(--button-height) / 2)');\n child.style.setProperty('--button-container-shape-start-end', 'var(--shape-corner-medium)');\n child.style.setProperty('--button-container-shape-end-end', 'var(--shape-corner-medium)');\n }\n } else if (isLast) {\n child.style.removeProperty('--button-container-shape');\n if (isVertical) {\n // Bottom button in vertical group: leave default corner shape\n child.style.removeProperty('--button-container-shape-start-start');\n child.style.removeProperty('--button-container-shape-start-end');\n child.style.removeProperty('--button-container-shape-end-start');\n child.style.removeProperty('--button-container-shape-end-end');\n } else {\n // Right button in horizontal group: standard left corners, round right corners\n child.style.setProperty('--button-container-shape-start-start', 'var(--shape-corner-medium)');\n child.style.setProperty('--button-container-shape-end-start', 'var(--shape-corner-medium)');\n child.style.setProperty('--button-container-shape-start-end', 'calc(var(--button-height) / 2)');\n child.style.setProperty('--button-container-shape-end-end', 'calc(var(--button-height) / 2)');\n }\n } else {\n // Middle buttons: standard rounded corners on all sides\n child.style.setProperty('--button-container-shape', 'var(--shape-corner-medium)');\n child.style.removeProperty('--button-container-shape-start-start');\n child.style.removeProperty('--button-container-shape-end-start');\n child.style.removeProperty('--button-container-shape-start-end');\n child.style.removeProperty('--button-container-shape-end-end');\n }\n } else {\n child.style.removeProperty('--button-container-shape');\n child.style.removeProperty('--button-container-shape-start-start');\n child.style.removeProperty('--button-container-shape-end-start');\n child.style.removeProperty('--button-container-shape-start-end');\n child.style.removeProperty('--button-container-shape-end-end');\n child.style.removeProperty('--button-container-shape-variant');\n }\n });\n }\n\n render() {\n const cssClasses = {\n 'button-group': true,\n [`size-${this.size}`]: true,\n [`variant-${this.variant}`]: true,\n [`orientation-${this.orientation}`]: true,\n };\n return html`\n <div class=${classMap(cssClasses)}>\n <slot @slotchange=${() => this._syncChildren()}></slot>\n </div>\n `;\n }\n}\n"],"names":["html","classMap","styles","colorStyles","sizeStyles","property","LitElement"],"mappings":"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"}
|