@redvars/peacock 3.5.1 → 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-DuASuVth.js → BaseButton-BNFAYn-S.js} +2 -2
- package/dist/{BaseButton-DuASuVth.js.map → BaseButton-BNFAYn-S.js.map} +1 -1
- package/dist/BaseInput-14YmcfK7.js +27 -0
- package/dist/BaseInput-14YmcfK7.js.map +1 -0
- package/dist/banner.js +2 -3
- package/dist/banner.js.map +1 -1
- package/dist/{button-DouvOfEU.js → button-colors-Ccys3hvS.js} +5 -294
- package/dist/button-colors-Ccys3hvS.js.map +1 -0
- package/dist/button-group.js +226 -6
- 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/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/code-editor.js +2 -1
- package/dist/code-editor.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 +7976 -4294
- package/dist/custom-elements.json +14358 -7589
- 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 +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 +29 -6
- 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/{navigation-rail-Lxetd5-Z.js → navigation-rail-DyO0oAZU.js} +306 -2197
- 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/peacock-loader.js +84 -8
- 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/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/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/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/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/html-editor/html-editor.d.ts +56 -0
- package/dist/src/html-editor/index.d.ts +2 -0
- package/dist/src/index.d.ts +13 -0
- 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/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/split-button/index.d.ts +1 -0
- package/dist/src/split-button/split-button.d.ts +72 -0
- package/dist/src/tooltip/tooltip.d.ts +2 -15
- package/dist/test/flow-designer.test.d.ts +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +4 -2
- package/readme.md +2 -2
- package/src/__controllers/floating-controller.ts +237 -0
- package/src/banner/banner.scss +2 -3
- package/src/button/button/button.ts +1 -0
- 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/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/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/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/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 +25 -0
- 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 +82 -78
- package/src/modal/index.ts +1 -0
- package/src/modal/modal.scss +206 -0
- package/src/modal/modal.ts +201 -0
- 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/peacock-loader.ts +71 -0
- 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/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/tooltip/tooltip.scss +4 -3
- package/src/tooltip/tooltip.ts +46 -104
- package/dist/button-DouvOfEU.js.map +0 -1
- package/dist/button-group-CEdMwvJJ.js +0 -464
- package/dist/button-group-CEdMwvJJ.js.map +0 -1
- package/dist/is-dark-mode-DicqGkCJ.js.map +0 -1
- package/dist/navigation-rail-Lxetd5-Z.js.map +0 -1
- package/dist/src/menu/menu/MenuSurfaceController.d.ts +0 -18
- package/src/menu/menu/MenuSurfaceController.ts +0 -61
package/dist/button-group.js
CHANGED
|
@@ -1,13 +1,233 @@
|
|
|
1
|
-
import './IndividualComponent-DUINtMGK.js';
|
|
2
|
-
import './property-1psGvXOq.js';
|
|
3
|
-
import './class-map-YU7g0o3B.js';
|
|
4
|
-
|
|
5
|
-
import './button-
|
|
1
|
+
import { a as i, _ as __decorate, I as IndividualComponent, i as i$1, b } from './IndividualComponent-DUINtMGK.js';
|
|
2
|
+
import { n } from './property-1psGvXOq.js';
|
|
3
|
+
import { e } from './class-map-YU7g0o3B.js';
|
|
4
|
+
import { Button } from './button.js';
|
|
5
|
+
import { I as IconButton } from './icon-button-CK1ZuE-2.js';
|
|
6
6
|
import './directive-ZPhl09Yt.js';
|
|
7
|
-
import './BaseButton-DuASuVth.js';
|
|
8
7
|
import './state-DwbEjqVk.js';
|
|
8
|
+
import './BaseButton-BNFAYn-S.js';
|
|
9
9
|
import './query-QBcUV-L_.js';
|
|
10
10
|
import './dispatch-event-utils-CuEqjlPT.js';
|
|
11
11
|
import './BaseHyperlinkMixin-BNuwbiEf.js';
|
|
12
|
+
import './button-colors-Ccys3hvS.js';
|
|
12
13
|
import './observe-slot-change-BGJfgg2E.js';
|
|
14
|
+
|
|
15
|
+
var css_248z = i`* {
|
|
16
|
+
box-sizing: border-box;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
.screen-reader-only {
|
|
20
|
+
display: none !important;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
.button-group {
|
|
24
|
+
display: flex;
|
|
25
|
+
gap: var(--_button-group-gap);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
.button-group.size-xs,
|
|
29
|
+
.button-group.size-extra-small {
|
|
30
|
+
--_button-group-gap: 0.125rem;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
.button-group.size-sm,
|
|
34
|
+
.button-group.size-small {
|
|
35
|
+
--_button-group-gap: 0.125rem;
|
|
36
|
+
--button-container-padding: 1.5rem;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
.button-group.size-md,
|
|
40
|
+
.button-group.size-medium {
|
|
41
|
+
--_button-group-gap: 0.125rem;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
.button-group.size-lg,
|
|
45
|
+
.button-group.size-large {
|
|
46
|
+
--_button-group-gap: 0.125rem;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
.button-group.size-xl {
|
|
50
|
+
--_button-group-gap: 0.125rem;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
.button-group.variant-standard {
|
|
54
|
+
--_button-group-gap: 0.5rem;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
.button-group.variant-connected {
|
|
58
|
+
--_button-group-gap: 0.125rem;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
.button-group.orientation-horizontal {
|
|
62
|
+
flex-direction: row;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
.button-group.orientation-vertical {
|
|
66
|
+
flex-direction: column;
|
|
67
|
+
}`;
|
|
68
|
+
|
|
69
|
+
/**
|
|
70
|
+
* @label Button Group
|
|
71
|
+
* @tag wc-button-group
|
|
72
|
+
* @rawTag button-group
|
|
73
|
+
*
|
|
74
|
+
* @summary Group a series of buttons together on a single line with the button group, and super-power.
|
|
75
|
+
|
|
76
|
+
* @example
|
|
77
|
+
* ```html
|
|
78
|
+
* <wc-button-group variant="connected">
|
|
79
|
+
* <wc-icon-button toggle selected><wc-icon name="home"></wc-icon></wc-icon-button>
|
|
80
|
+
* <wc-icon-button toggle><wc-icon name="alarm"></wc-icon></wc-icon-button>
|
|
81
|
+
* </wc-button-group>
|
|
82
|
+
* ```
|
|
83
|
+
*
|
|
84
|
+
* @tags controls
|
|
85
|
+
*/
|
|
86
|
+
let ButtonGroup = class ButtonGroup extends i$1 {
|
|
87
|
+
constructor() {
|
|
88
|
+
super(...arguments);
|
|
89
|
+
/**
|
|
90
|
+
* Button size.
|
|
91
|
+
* Possible values are `"sm"`, `"md"`, `"lg"`. Defaults to `"md"`.
|
|
92
|
+
*/
|
|
93
|
+
this.size = 'sm';
|
|
94
|
+
/**
|
|
95
|
+
* Layout variant of the button group.
|
|
96
|
+
* `"standard"` shows buttons with a small gap between them.
|
|
97
|
+
* `"connected"` places buttons with a 2px gap; in horizontal orientation outer buttons have fully
|
|
98
|
+
* rounded outer corners and middle buttons keep standard rounded corners. In vertical orientation
|
|
99
|
+
* all buttons keep their default corner shape.
|
|
100
|
+
* Defaults to `"standard"`.
|
|
101
|
+
*/
|
|
102
|
+
this.variant = 'standard';
|
|
103
|
+
/**
|
|
104
|
+
* Orientation of the button group.
|
|
105
|
+
* `"horizontal"` lays buttons out in a row.
|
|
106
|
+
* `"vertical"` stacks buttons in a column.
|
|
107
|
+
* Defaults to `"horizontal"`.
|
|
108
|
+
*/
|
|
109
|
+
this.orientation = 'horizontal';
|
|
110
|
+
}
|
|
111
|
+
updated() {
|
|
112
|
+
this._syncChildren();
|
|
113
|
+
}
|
|
114
|
+
_getSlottedElements() {
|
|
115
|
+
const slot = this.shadowRoot?.querySelector('slot');
|
|
116
|
+
return (slot?.assignedElements({ flatten: true }) ?? []);
|
|
117
|
+
}
|
|
118
|
+
_syncChildren() {
|
|
119
|
+
const children = this._getSlottedElements();
|
|
120
|
+
const isVertical = this.orientation === 'vertical';
|
|
121
|
+
children.forEach((child, index) => {
|
|
122
|
+
const isFirst = index === 0;
|
|
123
|
+
const isLast = index === children.length - 1;
|
|
124
|
+
const isOnly = children.length === 1;
|
|
125
|
+
if (this.color && 'color' in child) {
|
|
126
|
+
child.color = this.color;
|
|
127
|
+
}
|
|
128
|
+
if (this.buttonVariant && 'variant' in child) {
|
|
129
|
+
child.variant = this.buttonVariant;
|
|
130
|
+
}
|
|
131
|
+
if (this.variant === 'connected') {
|
|
132
|
+
child.style.setProperty('--button-container-shape-variant', 'round');
|
|
133
|
+
if (isOnly) {
|
|
134
|
+
child.style.setProperty('--button-container-shape', 'var(--shape-corner-full)');
|
|
135
|
+
child.style.removeProperty('--button-container-shape-start-start');
|
|
136
|
+
child.style.removeProperty('--button-container-shape-end-start');
|
|
137
|
+
child.style.removeProperty('--button-container-shape-start-end');
|
|
138
|
+
child.style.removeProperty('--button-container-shape-end-end');
|
|
139
|
+
}
|
|
140
|
+
else if (isFirst) {
|
|
141
|
+
child.style.removeProperty('--button-container-shape');
|
|
142
|
+
if (isVertical) {
|
|
143
|
+
// Top button in vertical group: leave default corner shape
|
|
144
|
+
child.style.removeProperty('--button-container-shape-start-start');
|
|
145
|
+
child.style.removeProperty('--button-container-shape-start-end');
|
|
146
|
+
child.style.removeProperty('--button-container-shape-end-start');
|
|
147
|
+
child.style.removeProperty('--button-container-shape-end-end');
|
|
148
|
+
}
|
|
149
|
+
else {
|
|
150
|
+
// Left button in horizontal group: round left corners, standard right corners
|
|
151
|
+
child.style.setProperty('--button-container-shape-start-start', 'calc(var(--button-height) / 2)');
|
|
152
|
+
child.style.setProperty('--button-container-shape-end-start', 'calc(var(--button-height) / 2)');
|
|
153
|
+
child.style.setProperty('--button-container-shape-start-end', 'var(--shape-corner-medium)');
|
|
154
|
+
child.style.setProperty('--button-container-shape-end-end', 'var(--shape-corner-medium)');
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
else if (isLast) {
|
|
158
|
+
child.style.removeProperty('--button-container-shape');
|
|
159
|
+
if (isVertical) {
|
|
160
|
+
// Bottom button in vertical group: leave default corner shape
|
|
161
|
+
child.style.removeProperty('--button-container-shape-start-start');
|
|
162
|
+
child.style.removeProperty('--button-container-shape-start-end');
|
|
163
|
+
child.style.removeProperty('--button-container-shape-end-start');
|
|
164
|
+
child.style.removeProperty('--button-container-shape-end-end');
|
|
165
|
+
}
|
|
166
|
+
else {
|
|
167
|
+
// Right button in horizontal group: standard left corners, round right corners
|
|
168
|
+
child.style.setProperty('--button-container-shape-start-start', 'var(--shape-corner-medium)');
|
|
169
|
+
child.style.setProperty('--button-container-shape-end-start', 'var(--shape-corner-medium)');
|
|
170
|
+
child.style.setProperty('--button-container-shape-start-end', 'calc(var(--button-height) / 2)');
|
|
171
|
+
child.style.setProperty('--button-container-shape-end-end', 'calc(var(--button-height) / 2)');
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
else {
|
|
175
|
+
// Middle buttons: standard rounded corners on all sides
|
|
176
|
+
child.style.setProperty('--button-container-shape', 'var(--shape-corner-medium)');
|
|
177
|
+
child.style.removeProperty('--button-container-shape-start-start');
|
|
178
|
+
child.style.removeProperty('--button-container-shape-end-start');
|
|
179
|
+
child.style.removeProperty('--button-container-shape-start-end');
|
|
180
|
+
child.style.removeProperty('--button-container-shape-end-end');
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
else {
|
|
184
|
+
child.style.removeProperty('--button-container-shape');
|
|
185
|
+
child.style.removeProperty('--button-container-shape-start-start');
|
|
186
|
+
child.style.removeProperty('--button-container-shape-end-start');
|
|
187
|
+
child.style.removeProperty('--button-container-shape-start-end');
|
|
188
|
+
child.style.removeProperty('--button-container-shape-end-end');
|
|
189
|
+
child.style.removeProperty('--button-container-shape-variant');
|
|
190
|
+
}
|
|
191
|
+
});
|
|
192
|
+
}
|
|
193
|
+
render() {
|
|
194
|
+
const cssClasses = {
|
|
195
|
+
'button-group': true,
|
|
196
|
+
[`size-${this.size}`]: true,
|
|
197
|
+
[`variant-${this.variant}`]: true,
|
|
198
|
+
[`orientation-${this.orientation}`]: true,
|
|
199
|
+
};
|
|
200
|
+
return b `
|
|
201
|
+
<div class=${e(cssClasses)}>
|
|
202
|
+
<slot @slotchange=${() => this._syncChildren()}></slot>
|
|
203
|
+
</div>
|
|
204
|
+
`;
|
|
205
|
+
}
|
|
206
|
+
};
|
|
207
|
+
// Lit prefers CSS-in-JS for better performance and scoping.
|
|
208
|
+
// If you prefer keeping the SCSS file, you'll need a build tool (like Vite or Webpack)
|
|
209
|
+
// that can import .scss files as lit-css.
|
|
210
|
+
ButtonGroup.styles = [css_248z];
|
|
211
|
+
ButtonGroup.Button = Button;
|
|
212
|
+
ButtonGroup.IconButton = IconButton;
|
|
213
|
+
__decorate([
|
|
214
|
+
n()
|
|
215
|
+
], ButtonGroup.prototype, "size", void 0);
|
|
216
|
+
__decorate([
|
|
217
|
+
n({ reflect: true })
|
|
218
|
+
], ButtonGroup.prototype, "variant", void 0);
|
|
219
|
+
__decorate([
|
|
220
|
+
n({ reflect: true })
|
|
221
|
+
], ButtonGroup.prototype, "orientation", void 0);
|
|
222
|
+
__decorate([
|
|
223
|
+
n({ reflect: true })
|
|
224
|
+
], ButtonGroup.prototype, "color", void 0);
|
|
225
|
+
__decorate([
|
|
226
|
+
n({ attribute: 'button-variant', reflect: true })
|
|
227
|
+
], ButtonGroup.prototype, "buttonVariant", void 0);
|
|
228
|
+
ButtonGroup = __decorate([
|
|
229
|
+
IndividualComponent
|
|
230
|
+
], ButtonGroup);
|
|
231
|
+
|
|
232
|
+
export { ButtonGroup };
|
|
13
233
|
//# sourceMappingURL=button-group.js.map
|
package/dist/button-group.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"button-group.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;"}
|
|
1
|
+
{"version":3,"file":"button-group.js","sources":["../../src/button/button-group/button-group.ts"],"sourcesContent":["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 toggle selected><wc-icon name=\"home\"></wc-icon></wc-icon-button>\n * <wc-icon-button toggle><wc-icon name=\"alarm\"></wc-icon></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":["LitElement","html","classMap","styles","property"],"mappings":"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"}
|
package/dist/button.js
CHANGED
|
@@ -1,12 +1,298 @@
|
|
|
1
|
-
import './IndividualComponent-DUINtMGK.js';
|
|
2
|
-
import './property-1psGvXOq.js';
|
|
3
|
-
import './state-DwbEjqVk.js';
|
|
4
|
-
import './class-map-YU7g0o3B.js';
|
|
5
|
-
import './BaseButton-
|
|
6
|
-
|
|
7
|
-
import './observe-slot-change-BGJfgg2E.js';
|
|
8
|
-
import './BaseHyperlinkMixin-BNuwbiEf.js';
|
|
1
|
+
import { a as i, _ as __decorate, I as IndividualComponent, b } from './IndividualComponent-DUINtMGK.js';
|
|
2
|
+
import { n } from './property-1psGvXOq.js';
|
|
3
|
+
import { r } from './state-DwbEjqVk.js';
|
|
4
|
+
import { e } from './class-map-YU7g0o3B.js';
|
|
5
|
+
import { B as BaseButton, o, s as spread } from './BaseButton-BNFAYn-S.js';
|
|
6
|
+
import { c as css_248z$1, a as css_248z$2 } from './button-colors-Ccys3hvS.js';
|
|
7
|
+
import { o as observerSlotChangesWithCallback } from './observe-slot-change-BGJfgg2E.js';
|
|
8
|
+
import { t as throttle } from './BaseHyperlinkMixin-BNuwbiEf.js';
|
|
9
9
|
import './directive-ZPhl09Yt.js';
|
|
10
10
|
import './query-QBcUV-L_.js';
|
|
11
11
|
import './dispatch-event-utils-CuEqjlPT.js';
|
|
12
|
+
|
|
13
|
+
var css_248z = i`:host([size=xs]),
|
|
14
|
+
:host([size=extra-small]) {
|
|
15
|
+
--button-height: 2rem;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
:host([size=xs]) .button,
|
|
19
|
+
:host([size=extra-small]) .button {
|
|
20
|
+
--_button-icon-size: 1rem;
|
|
21
|
+
--_button_container-padding: 0.75rem;
|
|
22
|
+
font-size: 0.875rem !important;
|
|
23
|
+
font-weight: var(--font-weight-medium) !important;
|
|
24
|
+
line-height: 1.25rem !important;
|
|
25
|
+
letter-spacing: 0.1px !important;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
:host([size=sm]),
|
|
29
|
+
:host([size=small]) {
|
|
30
|
+
--button-height: 2.5rem;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
:host([size=sm]) .button,
|
|
34
|
+
:host([size=small]) .button {
|
|
35
|
+
--_button-icon-size: 1.25rem;
|
|
36
|
+
--_button_container-padding: 1rem;
|
|
37
|
+
--_button-icon-label-spacing: 0.5rem;
|
|
38
|
+
font-size: 0.875rem !important;
|
|
39
|
+
font-weight: var(--font-weight-medium) !important;
|
|
40
|
+
line-height: 1.25rem !important;
|
|
41
|
+
letter-spacing: 0.1px !important;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
:host([size=md]),
|
|
45
|
+
:host([size=medium]) {
|
|
46
|
+
--button-height: 3.5rem;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
:host([size=md]) .button,
|
|
50
|
+
:host([size=medium]) .button {
|
|
51
|
+
--_button-icon-size: 1.5rem;
|
|
52
|
+
--_button_container-padding: 1.5rem;
|
|
53
|
+
font-size: 1rem !important;
|
|
54
|
+
font-weight: var(--font-weight-medium) !important;
|
|
55
|
+
line-height: 1.5rem !important;
|
|
56
|
+
letter-spacing: 0.15px !important;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
:host([size=lg]),
|
|
60
|
+
:host([size=large]) {
|
|
61
|
+
--button-height: 6rem;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
:host([size=lg]) .button,
|
|
65
|
+
:host([size=large]) .button {
|
|
66
|
+
--_button-icon-size: 2rem;
|
|
67
|
+
--_button_container-padding: 3rem;
|
|
68
|
+
font-size: 1.5rem !important;
|
|
69
|
+
font-weight: var(--font-weight-regular) !important;
|
|
70
|
+
line-height: 2rem !important;
|
|
71
|
+
letter-spacing: 0 !important;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
:host([size=xl]),
|
|
75
|
+
:host([size=extra-large]) {
|
|
76
|
+
--button-height: 8.5rem;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
:host([size=xl]) .button,
|
|
80
|
+
:host([size=extra-large]) .button {
|
|
81
|
+
--_button-icon-size: 2.5rem;
|
|
82
|
+
--_button_container-padding: 4rem;
|
|
83
|
+
font-size: 2rem !important;
|
|
84
|
+
font-weight: var(--font-weight-regular) !important;
|
|
85
|
+
line-height: 2.5rem !important;
|
|
86
|
+
letter-spacing: 0 !important;
|
|
87
|
+
}`;
|
|
88
|
+
|
|
89
|
+
/**
|
|
90
|
+
* @label Button
|
|
91
|
+
* @tag wc-button
|
|
92
|
+
* @rawTag button
|
|
93
|
+
*
|
|
94
|
+
* @summary Buttons help people initiate actions, from sending an email, to sharing a document, to liking a post.
|
|
95
|
+
* @overview
|
|
96
|
+
* <p>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. Button labels express what action will occur when the user interacts with it.</p>
|
|
97
|
+
*
|
|
98
|
+
* @cssprop --button-container-shape: Defines the border radius of the button container shape.
|
|
99
|
+
*
|
|
100
|
+
* @cssprop --button-container-shape-start-start: Defines the start position of the button container shape.
|
|
101
|
+
* @cssprop --button-container-shape-start-end: Defines the end position of the button container shape.
|
|
102
|
+
* @cssprop --button-container-shape-end-start: Defines the start position of the button container shape.
|
|
103
|
+
* @cssprop --button-container-shape-end-end: Defines the end position of the button container shape.
|
|
104
|
+
*
|
|
105
|
+
*
|
|
106
|
+
* @cssprop --filled-button-container-color: Color of the filled button container.
|
|
107
|
+
* @cssprop --filled-button-label-text-color: Text color of the filled button label.
|
|
108
|
+
*
|
|
109
|
+
* @cssprop --outlined-button-container-color: Color of the outlined button container.
|
|
110
|
+
* @cssprop --outlined-button-label-text-color: Text color of the outlined button label.
|
|
111
|
+
*
|
|
112
|
+
* @cssprop --text-button-label-text-color: Text color of the text button label.
|
|
113
|
+
*
|
|
114
|
+
* @cssprop --tonal-button-container-color: Color of the tonal button container.
|
|
115
|
+
* @cssprop --tonal-button-label-text-color: Text color of the tonal button label.
|
|
116
|
+
*
|
|
117
|
+
* @cssprop --elevated-button-container-color: Color of the elevated button container.
|
|
118
|
+
* @cssprop --elevated-button-label-text-color: Text color of the elevated button label.
|
|
119
|
+
*
|
|
120
|
+
* @cssprop --neo-button-container-color: Color of the neo button container.
|
|
121
|
+
* @cssprop --neo-button-label-text-color: Text color of the neo button label.
|
|
122
|
+
*
|
|
123
|
+
* @fires {MouseEvent} click - Dispatched when the button is clicked.
|
|
124
|
+
*
|
|
125
|
+
* @example
|
|
126
|
+
* ```html
|
|
127
|
+
* <wc-button>Button</wc-button>
|
|
128
|
+
* ```
|
|
129
|
+
* @tags display
|
|
130
|
+
*/
|
|
131
|
+
let Button = class Button extends BaseButton {
|
|
132
|
+
constructor() {
|
|
133
|
+
super(...arguments);
|
|
134
|
+
/**
|
|
135
|
+
* Icon alignment.
|
|
136
|
+
* Possible values are `"start"`, `"end"`. Defaults to `"end"`.
|
|
137
|
+
*/
|
|
138
|
+
this.iconAlign = 'end';
|
|
139
|
+
/**
|
|
140
|
+
* Button size.
|
|
141
|
+
* Possible values are `"xs"`, `"sm"`, `"md"`, `"lg"`, `"xl"`. Defaults to `"sm"`.
|
|
142
|
+
*/
|
|
143
|
+
this.size = 'sm';
|
|
144
|
+
/**
|
|
145
|
+
* The visual style of the button.
|
|
146
|
+
*
|
|
147
|
+
* Possible variant values:
|
|
148
|
+
* `"filled"` is a filled button.
|
|
149
|
+
* `"outlined"` is an outlined button.
|
|
150
|
+
* `"text"` is a transparent button.
|
|
151
|
+
* `"tonal"` is a light color button.
|
|
152
|
+
* `"elevated"` is elevated button
|
|
153
|
+
*/
|
|
154
|
+
this.variant = 'filled';
|
|
155
|
+
/**
|
|
156
|
+
* Defines the primary color of the button. This can be set to predefined color names to apply specific color themes.
|
|
157
|
+
*/
|
|
158
|
+
this.color = 'primary';
|
|
159
|
+
this.slotHasContent = false;
|
|
160
|
+
}
|
|
161
|
+
focus() {
|
|
162
|
+
this.buttonElement?.focus();
|
|
163
|
+
}
|
|
164
|
+
blur() {
|
|
165
|
+
this.buttonElement?.blur();
|
|
166
|
+
}
|
|
167
|
+
firstUpdated() {
|
|
168
|
+
this.__dispatchClickWithThrottle = throttle(this.__dispatchClick, this.throttleDelay);
|
|
169
|
+
observerSlotChangesWithCallback(this.renderRoot.querySelector('slot'), hasContent => {
|
|
170
|
+
this.slotHasContent = hasContent;
|
|
171
|
+
this.requestUpdate();
|
|
172
|
+
});
|
|
173
|
+
this.__convertTypeToVariantAndColor();
|
|
174
|
+
}
|
|
175
|
+
__convertTypeToVariantAndColor() {
|
|
176
|
+
if (this.type === 'primary') {
|
|
177
|
+
this.color = 'primary';
|
|
178
|
+
this.variant = 'filled';
|
|
179
|
+
}
|
|
180
|
+
else if (this.type === 'secondary') {
|
|
181
|
+
this.color = 'surface';
|
|
182
|
+
this.variant = 'filled';
|
|
183
|
+
}
|
|
184
|
+
else if (this.type === 'tertiary') {
|
|
185
|
+
this.color = 'primary';
|
|
186
|
+
this.variant = 'text';
|
|
187
|
+
}
|
|
188
|
+
else if (this.type === 'danger') {
|
|
189
|
+
this.color = 'danger';
|
|
190
|
+
this.variant = 'filled';
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
render() {
|
|
194
|
+
const isLink = this.__isLink();
|
|
195
|
+
const cssClasses = {
|
|
196
|
+
button: true,
|
|
197
|
+
'button-element': true,
|
|
198
|
+
[`size-${this.size}`]: true,
|
|
199
|
+
[`variant-${this.variant}`]: true,
|
|
200
|
+
[`color-${this.color}`]: true,
|
|
201
|
+
disabled: this.disabled || this.softDisabled,
|
|
202
|
+
pressed: this.isPressed,
|
|
203
|
+
'has-content': this.slotHasContent,
|
|
204
|
+
'show-skeleton': this.skeleton,
|
|
205
|
+
[`icon-align-${this.iconAlign}`]: true,
|
|
206
|
+
};
|
|
207
|
+
if (!isLink) {
|
|
208
|
+
return b `<button
|
|
209
|
+
class=${e(cssClasses)}
|
|
210
|
+
id="button"
|
|
211
|
+
type=${this.htmlType}
|
|
212
|
+
@click=${this.__dispatchClickWithThrottle}
|
|
213
|
+
@mousedown=${this.__handlePress}
|
|
214
|
+
@keydown=${this.__handlePress}
|
|
215
|
+
@keyup=${this.__handlePress}
|
|
216
|
+
|
|
217
|
+
aria-describedby=${o(this.softDisabled ? BaseButton.DISABLED_REASON_ID : undefined)}
|
|
218
|
+
?aria-disabled=${this.softDisabled}
|
|
219
|
+
|
|
220
|
+
?disabled=${this.disabled}
|
|
221
|
+
${spread(this.configAria)}
|
|
222
|
+
>
|
|
223
|
+
${this.renderButtonContent()}
|
|
224
|
+
</button>
|
|
225
|
+
${this.__renderTooltip()}`;
|
|
226
|
+
}
|
|
227
|
+
return b `<a
|
|
228
|
+
class=${e(cssClasses)}
|
|
229
|
+
id="button"
|
|
230
|
+
href=${this.href}
|
|
231
|
+
target=${this.target}
|
|
232
|
+
tabindex=${this.disabled ? '-1' : '0'}
|
|
233
|
+
|
|
234
|
+
@click=${this.__dispatchClick}
|
|
235
|
+
@mousedown=${this.__handlePress}
|
|
236
|
+
@keydown=${this.__handlePress}
|
|
237
|
+
@keyup=${this.__handlePress}
|
|
238
|
+
role="button"
|
|
239
|
+
|
|
240
|
+
aria-describedby=${o(this.softDisabled ? BaseButton.DISABLED_REASON_ID : undefined)}
|
|
241
|
+
?aria-disabled=${this.softDisabled}
|
|
242
|
+
|
|
243
|
+
${spread(this.configAria)}
|
|
244
|
+
>
|
|
245
|
+
${this.renderButtonContent()}
|
|
246
|
+
</a>
|
|
247
|
+
${this.__renderTooltip()}`;
|
|
248
|
+
}
|
|
249
|
+
renderButtonContent() {
|
|
250
|
+
return b `
|
|
251
|
+
<wc-focus-ring class="focus-ring" for='button'></wc-focus-ring>
|
|
252
|
+
<wc-elevation class="elevation"></wc-elevation>
|
|
253
|
+
<div class="neo-background"></div>
|
|
254
|
+
<div class="background"></div>
|
|
255
|
+
<div class="outline"></div>
|
|
256
|
+
<wc-ripple class="ripple"></wc-ripple>
|
|
257
|
+
<wc-skeleton class="skeleton"></wc-skeleton>
|
|
258
|
+
|
|
259
|
+
<div class="button-content">
|
|
260
|
+
<div class="slot-container">
|
|
261
|
+
<slot></slot>
|
|
262
|
+
</div>
|
|
263
|
+
|
|
264
|
+
<slot name="icon"></slot>
|
|
265
|
+
</div>
|
|
266
|
+
|
|
267
|
+
${this.__renderDisabledReason(this.softDisabled)}
|
|
268
|
+
`;
|
|
269
|
+
}
|
|
270
|
+
};
|
|
271
|
+
Button.styles = [css_248z$1, css_248z$2, css_248z];
|
|
272
|
+
__decorate([
|
|
273
|
+
n({ attribute: 'icon-align' })
|
|
274
|
+
], Button.prototype, "iconAlign", void 0);
|
|
275
|
+
__decorate([
|
|
276
|
+
n({ reflect: true })
|
|
277
|
+
], Button.prototype, "size", void 0);
|
|
278
|
+
__decorate([
|
|
279
|
+
n({ type: String })
|
|
280
|
+
], Button.prototype, "type", void 0);
|
|
281
|
+
__decorate([
|
|
282
|
+
n()
|
|
283
|
+
], Button.prototype, "variant", void 0);
|
|
284
|
+
__decorate([
|
|
285
|
+
n({ reflect: true })
|
|
286
|
+
], Button.prototype, "color", void 0);
|
|
287
|
+
__decorate([
|
|
288
|
+
n({ reflect: true })
|
|
289
|
+
], Button.prototype, "configAria", void 0);
|
|
290
|
+
__decorate([
|
|
291
|
+
r()
|
|
292
|
+
], Button.prototype, "slotHasContent", void 0);
|
|
293
|
+
Button = __decorate([
|
|
294
|
+
IndividualComponent
|
|
295
|
+
], Button);
|
|
296
|
+
|
|
297
|
+
export { Button };
|
|
12
298
|
//# sourceMappingURL=button.js.map
|
package/dist/button.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"button.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;"}
|
|
1
|
+
{"version":3,"file":"button.js","sources":["../../src/button/button/button.ts"],"sourcesContent":["import { html } from 'lit';\nimport { property, state } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport IndividualComponent from '@/IndividualComponent.js';\nimport styles from './button.scss';\nimport colorStyles from './button-colors.scss';\nimport sizeStyles from './button-sizes.scss';\nimport { observerSlotChangesWithCallback } from '@/__utils/observe-slot-change.js';\nimport { throttle } from '@/__utils/throttle.js';\nimport { spread } from '@/__directive/spread.js';\nimport { BaseButton } from '../BaseButton.js';\n\n/**\n * @label Button\n * @tag wc-button\n * @rawTag button\n *\n * @summary Buttons help people initiate actions, from sending an email, to sharing a document, to liking a post.\n * @overview\n * <p>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. Button 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 {MouseEvent} click - Dispatched when the button is clicked.\n *\n * @example\n * ```html\n * <wc-button>Button</wc-button>\n * ```\n * @tags display\n */\n@IndividualComponent\nexport class Button extends BaseButton {\n static override styles = [styles, colorStyles, sizeStyles];\n\n /**\n * Icon alignment.\n * Possible values are `\"start\"`, `\"end\"`. Defaults to `\"end\"`.\n */\n @property({ attribute: 'icon-align' })\n iconAlign: 'start' | 'end' = 'end';\n\n /**\n * Button size.\n * Possible values are `\"xs\"`, `\"sm\"`, `\"md\"`, `\"lg\"`, `\"xl\"`. Defaults to `\"sm\"`.\n */\n @property({ reflect: true }) size: 'xs' | 'sm' | 'md' | 'lg' | 'xl' = 'sm';\n\n /**\n * Type is preset of color and variant. Type will be only applied.\n *\n */\n @property({ type: String }) type?: 'primary' | 'secondary' | 'tertiary';\n \n /**\n * The visual style of the button.\n *\n * Possible variant values:\n * `\"filled\"` is a filled button.\n * `\"outlined\"` is an outlined button.\n * `\"text\"` is a transparent button.\n * `\"tonal\"` is a light color button.\n * `\"elevated\"` is elevated button\n */\n @property() variant:\n | 'elevated'\n | 'filled'\n | 'tonal'\n | 'outlined'\n | 'text'\n | 'neo' = 'filled';\n \n /**\n * Defines the primary color of the button. This can be set to predefined color names to apply specific color themes.\n */\n @property({ reflect: true }) color:\n | 'primary'\n | 'success'\n | 'danger'\n | 'warning'\n | 'surface'\n | 'on-surface' = 'primary';\n\n /**\n * Additional ARIA attributes to pass to the inner button/anchor element.\n */\n @property({ reflect: true })\n configAria?: { [key: string]: any };\n\n @state()\n private slotHasContent = false;\n\n override focus() {\n this.buttonElement?.focus();\n }\n\n override blur() {\n this.buttonElement?.blur();\n }\n\n override firstUpdated() {\n this.__dispatchClickWithThrottle = throttle(\n this.__dispatchClick,\n this.throttleDelay,\n );\n observerSlotChangesWithCallback(\n this.renderRoot.querySelector('slot'),\n hasContent => {\n this.slotHasContent = hasContent;\n this.requestUpdate();\n },\n );\n\n this.__convertTypeToVariantAndColor();\n }\n\n __convertTypeToVariantAndColor() {\n if (this.type === 'primary') {\n this.color = 'primary';\n this.variant = 'filled';\n } else if (this.type === 'secondary') {\n this.color = 'surface';\n this.variant = 'filled';\n } else if (this.type === 'tertiary') {\n this.color = 'primary';\n this.variant = 'text';\n } else if (this.type === 'danger') {\n this.color = 'danger';\n this.variant = 'filled';\n }\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 'has-content': this.slotHasContent,\n 'show-skeleton': this.skeleton,\n [`icon-align-${this.iconAlign}`]: true,\n };\n\n if (!isLink) {\n return html`<button\n class=${classMap(cssClasses)}\n id=\"button\"\n type=${this.htmlType}\n @click=${this.__dispatchClickWithThrottle}\n @mousedown=${this.__handlePress}\n @keydown=${this.__handlePress}\n @keyup=${this.__handlePress}\n\n aria-describedby=${ifDefined(this.softDisabled ? BaseButton.DISABLED_REASON_ID : undefined)}\n ?aria-disabled=${this.softDisabled}\n\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 href=${this.href}\n target=${this.target}\n tabindex=${this.disabled ? '-1' : '0'}\n \n @click=${this.__dispatchClick}\n @mousedown=${this.__handlePress}\n @keydown=${this.__handlePress}\n @keyup=${this.__handlePress}\n role=\"button\"\n\n aria-describedby=${ifDefined(this.softDisabled ? BaseButton.DISABLED_REASON_ID : undefined)}\n ?aria-disabled=${this.softDisabled}\n\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\" for='button'></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 <div class=\"slot-container\">\n <slot></slot>\n </div>\n\n <slot name=\"icon\"></slot>\n </div>\n\n ${this.__renderDisabledReason(this.softDisabled)}\n `;\n }\n}\n"],"names":["html","classMap","ifDefined","styles","colorStyles","sizeStyles","property","state"],"mappings":"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"}
|