@prioticket/design-system-web 1.0.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/COMPONENT-DOCUMENTATION.md +608 -0
- package/README.md +229 -0
- package/component-documentation.json +1681 -0
- package/dist/components/pd-button.cjs.js +99 -0
- package/dist/components/pd-button.es.js +156 -0
- package/dist/components/pd-card.cjs.js +59 -0
- package/dist/components/pd-card.es.js +93 -0
- package/dist/components/pd-checkbox.cjs.js +85 -0
- package/dist/components/pd-checkbox.es.js +154 -0
- package/dist/components/pd-chip.cjs.js +118 -0
- package/dist/components/pd-chip.es.js +220 -0
- package/dist/components/pd-dialog.cjs.js +195 -0
- package/dist/components/pd-dialog.es.js +285 -0
- package/dist/components/pd-expandable-card.cjs.js +134 -0
- package/dist/components/pd-expandable-card.es.js +205 -0
- package/dist/components/pd-fab.cjs.js +119 -0
- package/dist/components/pd-fab.es.js +179 -0
- package/dist/components/pd-icon-button.cjs.js +159 -0
- package/dist/components/pd-icon-button.es.js +268 -0
- package/dist/components/pd-icon.cjs.js +71 -0
- package/dist/components/pd-icon.es.js +102 -0
- package/dist/components/pd-list.cjs.js +108 -0
- package/dist/components/pd-list.es.js +229 -0
- package/dist/components/pd-menu-item.cjs.js +85 -0
- package/dist/components/pd-menu-item.es.js +156 -0
- package/dist/components/pd-menu.cjs.js +42 -0
- package/dist/components/pd-menu.es.js +122 -0
- package/dist/components/pd-progress.cjs.js +72 -0
- package/dist/components/pd-progress.es.js +119 -0
- package/dist/components/pd-radio.cjs.js +38 -0
- package/dist/components/pd-radio.es.js +153 -0
- package/dist/components/pd-segmented-button.cjs.js +135 -0
- package/dist/components/pd-segmented-button.es.js +234 -0
- package/dist/components/pd-segmented-stepper.cjs.js +191 -0
- package/dist/components/pd-segmented-stepper.es.js +333 -0
- package/dist/components/pd-select.cjs.js +59 -0
- package/dist/components/pd-select.es.js +136 -0
- package/dist/components/pd-slider.cjs.js +42 -0
- package/dist/components/pd-slider.es.js +123 -0
- package/dist/components/pd-stepper.cjs.js +279 -0
- package/dist/components/pd-stepper.es.js +375 -0
- package/dist/components/pd-switch.cjs.js +57 -0
- package/dist/components/pd-switch.es.js +126 -0
- package/dist/components/pd-tabs.cjs.js +32 -0
- package/dist/components/pd-tabs.es.js +139 -0
- package/dist/components/pd-text-field.cjs.js +86 -0
- package/dist/components/pd-text-field.es.js +202 -0
- package/dist/design-system-web.css +1 -0
- package/dist/fonts/ProximaNova-Bold.woff2 +0 -0
- package/dist/fonts/ProximaNova-Extrabld.woff2 +0 -0
- package/dist/fonts/ProximaNova-Light.woff2 +0 -0
- package/dist/fonts/ProximaNova-Medium.woff2 +0 -0
- package/dist/fonts/ProximaNova-Regular.woff2 +0 -0
- package/dist/fonts/ProximaNova-Semibold.woff2 +0 -0
- package/dist/fonts/ProximaNovaCond-Semibold.woff2 +0 -0
- package/dist/fonts-only.css +59 -0
- package/dist/fonts.cjs.js +1 -0
- package/dist/fonts.es.js +1 -0
- package/dist/prioticket-design-system-web.cjs.js +1 -0
- package/dist/prioticket-design-system-web.es.js +52 -0
- package/dist/theme-only.css +311 -0
- package/dist/theme-with-fonts.cjs.js +1 -0
- package/dist/theme-with-fonts.css +372 -0
- package/dist/theme-with-fonts.es.js +2 -0
- package/dist/theme.cjs.js +1 -0
- package/dist/theme.es.js +1 -0
- package/dist/types/components/pd-button.d.ts +30 -0
- package/dist/types/components/pd-card.d.ts +8 -0
- package/dist/types/components/pd-checkbox.d.ts +16 -0
- package/dist/types/components/pd-chip.d.ts +26 -0
- package/dist/types/components/pd-dialog.d.ts +49 -0
- package/dist/types/components/pd-expandable-card.d.ts +39 -0
- package/dist/types/components/pd-fab.d.ts +17 -0
- package/dist/types/components/pd-icon-button.d.ts +24 -0
- package/dist/types/components/pd-icon.d.ts +9 -0
- package/dist/types/components/pd-list.d.ts +36 -0
- package/dist/types/components/pd-menu-item.d.ts +38 -0
- package/dist/types/components/pd-menu.d.ts +58 -0
- package/dist/types/components/pd-progress.d.ts +30 -0
- package/dist/types/components/pd-radio.d.ts +54 -0
- package/dist/types/components/pd-segmented-button.d.ts +53 -0
- package/dist/types/components/pd-segmented-stepper.d.ts +65 -0
- package/dist/types/components/pd-select.d.ts +46 -0
- package/dist/types/components/pd-slider.d.ts +43 -0
- package/dist/types/components/pd-stepper.d.ts +47 -0
- package/dist/types/components/pd-switch.d.ts +37 -0
- package/dist/types/components/pd-tabs.d.ts +54 -0
- package/dist/types/components/pd-text-field.d.ts +30 -0
- package/dist/types/fonts.d.ts +1 -0
- package/dist/types/index.d.ts +22 -0
- package/dist/types/theme-with-fonts.d.ts +2 -0
- package/dist/types/theme.d.ts +1 -0
- package/package.json +93 -0
|
@@ -0,0 +1,268 @@
|
|
|
1
|
+
import { css as m, LitElement as b, html as a, nothing as s } from "lit";
|
|
2
|
+
import { property as i, customElement as h } from "lit/decorators.js";
|
|
3
|
+
import "@material/web/iconbutton/icon-button.js";
|
|
4
|
+
import "@material/web/iconbutton/filled-icon-button.js";
|
|
5
|
+
import "@material/web/iconbutton/filled-tonal-icon-button.js";
|
|
6
|
+
import "@material/web/iconbutton/outlined-icon-button.js";
|
|
7
|
+
import "@material/web/icon/icon.js";
|
|
8
|
+
var v = Object.defineProperty, p = Object.getOwnPropertyDescriptor, l = (n, t, e, c) => {
|
|
9
|
+
for (var r = c > 1 ? void 0 : c ? p(t, e) : t, d = n.length - 1, u; d >= 0; d--)
|
|
10
|
+
(u = n[d]) && (r = (c ? u(t, e, r) : u(r)) || r);
|
|
11
|
+
return c && r && v(t, e, r), r;
|
|
12
|
+
};
|
|
13
|
+
let o = class extends b {
|
|
14
|
+
constructor() {
|
|
15
|
+
super(...arguments), this.variant = "standard", this.icon = "", this.selectedIcon = "", this.disabled = !1, this.toggle = !1, this.selected = !1, this.href = "", this.target = "", this.ariaLabel = "", this.ariaLabelSelected = "";
|
|
16
|
+
}
|
|
17
|
+
getIconButtonTemplate() {
|
|
18
|
+
const n = this.icon ? a`<md-icon>${this.icon}</md-icon>` : a`<slot></slot>`, t = this.selectedIcon ? a`<md-icon slot="selected">${this.selectedIcon}</md-icon>` : s, e = {
|
|
19
|
+
disabled: this.disabled,
|
|
20
|
+
toggle: this.toggle,
|
|
21
|
+
selected: this.selected,
|
|
22
|
+
href: this.href || s,
|
|
23
|
+
target: this.target || s,
|
|
24
|
+
"aria-label": this.ariaLabel || s,
|
|
25
|
+
"aria-label-selected": this.ariaLabelSelected || s
|
|
26
|
+
};
|
|
27
|
+
switch (this.variant) {
|
|
28
|
+
case "filled":
|
|
29
|
+
return a`
|
|
30
|
+
<md-filled-icon-button
|
|
31
|
+
?disabled=${e.disabled}
|
|
32
|
+
?toggle=${e.toggle}
|
|
33
|
+
?selected=${e.selected}
|
|
34
|
+
.href=${e.href}
|
|
35
|
+
.target=${e.target}
|
|
36
|
+
aria-label=${e["aria-label"]}
|
|
37
|
+
aria-label-selected=${e["aria-label-selected"]}
|
|
38
|
+
@input=${this._handleInput}
|
|
39
|
+
@change=${this._handleChange}
|
|
40
|
+
@click=${this._handleClick}
|
|
41
|
+
>
|
|
42
|
+
${n}
|
|
43
|
+
${t}
|
|
44
|
+
</md-filled-icon-button>
|
|
45
|
+
`;
|
|
46
|
+
case "tonal":
|
|
47
|
+
return a`
|
|
48
|
+
<md-filled-tonal-icon-button
|
|
49
|
+
?disabled=${e.disabled}
|
|
50
|
+
?toggle=${e.toggle}
|
|
51
|
+
?selected=${e.selected}
|
|
52
|
+
.href=${e.href}
|
|
53
|
+
.target=${e.target}
|
|
54
|
+
aria-label=${e["aria-label"]}
|
|
55
|
+
aria-label-selected=${e["aria-label-selected"]}
|
|
56
|
+
@input=${this._handleInput}
|
|
57
|
+
@change=${this._handleChange}
|
|
58
|
+
@click=${this._handleClick}
|
|
59
|
+
>
|
|
60
|
+
${n}
|
|
61
|
+
${t}
|
|
62
|
+
</md-filled-tonal-icon-button>
|
|
63
|
+
`;
|
|
64
|
+
case "outlined":
|
|
65
|
+
return a`
|
|
66
|
+
<md-outlined-icon-button
|
|
67
|
+
?disabled=${e.disabled}
|
|
68
|
+
?toggle=${e.toggle}
|
|
69
|
+
?selected=${e.selected}
|
|
70
|
+
.href=${e.href}
|
|
71
|
+
.target=${e.target}
|
|
72
|
+
aria-label=${e["aria-label"]}
|
|
73
|
+
aria-label-selected=${e["aria-label-selected"]}
|
|
74
|
+
@input=${this._handleInput}
|
|
75
|
+
@change=${this._handleChange}
|
|
76
|
+
@click=${this._handleClick}
|
|
77
|
+
>
|
|
78
|
+
${n}
|
|
79
|
+
${t}
|
|
80
|
+
</md-outlined-icon-button>
|
|
81
|
+
`;
|
|
82
|
+
default:
|
|
83
|
+
return a`
|
|
84
|
+
<md-icon-button
|
|
85
|
+
?disabled=${e.disabled}
|
|
86
|
+
?toggle=${e.toggle}
|
|
87
|
+
?selected=${e.selected}
|
|
88
|
+
.href=${e.href}
|
|
89
|
+
.target=${e.target}
|
|
90
|
+
aria-label=${e["aria-label"]}
|
|
91
|
+
aria-label-selected=${e["aria-label-selected"]}
|
|
92
|
+
@input=${this._handleInput}
|
|
93
|
+
@change=${this._handleChange}
|
|
94
|
+
@click=${this._handleClick}
|
|
95
|
+
>
|
|
96
|
+
${n}
|
|
97
|
+
${t}
|
|
98
|
+
</md-icon-button>
|
|
99
|
+
`;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
render() {
|
|
103
|
+
return this.getIconButtonTemplate();
|
|
104
|
+
}
|
|
105
|
+
_handleClick(n) {
|
|
106
|
+
this.disabled || this.dispatchEvent(new CustomEvent("icon-button-click", {
|
|
107
|
+
detail: {
|
|
108
|
+
variant: this.variant,
|
|
109
|
+
selected: this.selected,
|
|
110
|
+
toggle: this.toggle
|
|
111
|
+
},
|
|
112
|
+
bubbles: !0
|
|
113
|
+
}));
|
|
114
|
+
}
|
|
115
|
+
_handleInput(n) {
|
|
116
|
+
if (this.disabled) return;
|
|
117
|
+
const t = n.target;
|
|
118
|
+
this.selected = t.selected, this.dispatchEvent(new CustomEvent("input", {
|
|
119
|
+
detail: {
|
|
120
|
+
selected: t.selected,
|
|
121
|
+
variant: this.variant
|
|
122
|
+
},
|
|
123
|
+
bubbles: !0
|
|
124
|
+
}));
|
|
125
|
+
}
|
|
126
|
+
_handleChange(n) {
|
|
127
|
+
if (this.disabled) return;
|
|
128
|
+
const t = n.target;
|
|
129
|
+
this.selected = t.selected, this.dispatchEvent(new CustomEvent("change", {
|
|
130
|
+
detail: {
|
|
131
|
+
selected: t.selected,
|
|
132
|
+
variant: this.variant
|
|
133
|
+
},
|
|
134
|
+
bubbles: !0
|
|
135
|
+
}));
|
|
136
|
+
}
|
|
137
|
+
};
|
|
138
|
+
o.styles = m`
|
|
139
|
+
:host {
|
|
140
|
+
display: inline-block;
|
|
141
|
+
--md-icon-button-icon-size: var(--md-sys-icon-size, 1.5rem);
|
|
142
|
+
--md-filled-icon-button-icon-size: var(--md-sys-icon-size, 1.5rem);
|
|
143
|
+
--md-filled-tonal-icon-button-icon-size: var(--md-sys-icon-size, 1.5rem);
|
|
144
|
+
--md-outlined-icon-button-icon-size: var(--md-sys-icon-size, 1.5rem);
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
:host([variant="standard"]) {
|
|
148
|
+
--md-icon-button-icon-color: var(--md-sys-color-on-surface-variant);
|
|
149
|
+
--md-icon-button-hover-icon-color: var(--md-sys-color-on-surface-variant-hover);
|
|
150
|
+
--md-icon-button-focus-icon-color: var(--md-sys-color-on-surface-variant-focus);
|
|
151
|
+
--md-icon-button-pressed-icon-color: var(--md-sys-color-on-surface-variant-pressed);
|
|
152
|
+
--md-icon-button-selected-icon-color: var(--md-sys-color-primary);
|
|
153
|
+
--md-icon-button-selected-hover-icon-color: var(--md-sys-color-primary-hover);
|
|
154
|
+
--md-icon-button-selected-focus-icon-color: var(--md-sys-color-primary-focus);
|
|
155
|
+
--md-icon-button-selected-pressed-icon-color: var(--md-sys-color-primary-pressed);
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
:host([variant="filled"]) {
|
|
159
|
+
--md-filled-icon-button-container-color: var(--md-sys-color-primary);
|
|
160
|
+
--md-filled-icon-button-icon-color: var(--md-sys-color-on-primary);
|
|
161
|
+
--md-filled-icon-button-hover-container-color: var(--md-sys-color-primary-hover);
|
|
162
|
+
--md-filled-icon-button-focus-container-color: var(--md-sys-color-primary-focus);
|
|
163
|
+
--md-filled-icon-button-pressed-container-color: var(--md-sys-color-primary-pressed);
|
|
164
|
+
--md-filled-icon-button-selected-container-color: var(--md-sys-color-primary);
|
|
165
|
+
--md-filled-icon-button-toggle-selected-container-color: var(--md-sys-color-primary);
|
|
166
|
+
--md-filled-icon-button-toggle-unselected-container-color: var(--md-sys-color-surface-container-highest);
|
|
167
|
+
--md-filled-icon-button-toggle-unselected-icon-color: var(--md-sys-color-primary);
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
:host([variant="tonal"]) {
|
|
171
|
+
--md-filled-tonal-icon-button-container-color: var(--md-sys-color-secondary-container);
|
|
172
|
+
--md-filled-tonal-icon-button-icon-color: var(--md-sys-color-on-secondary-container);
|
|
173
|
+
--md-filled-tonal-icon-button-hover-container-color: var(--md-sys-color-secondary-container-hover);
|
|
174
|
+
--md-filled-tonal-icon-button-focus-container-color: var(--md-sys-color-secondary-container-focus);
|
|
175
|
+
--md-filled-tonal-icon-button-pressed-container-color: var(--md-sys-color-secondary-container-pressed);
|
|
176
|
+
--md-filled-tonal-icon-button-selected-container-color: var(--md-sys-color-secondary-container);
|
|
177
|
+
--md-filled-tonal-icon-button-toggle-selected-container-color: var(--md-sys-color-secondary-container);
|
|
178
|
+
--md-filled-tonal-icon-button-toggle-unselected-container-color: var(--md-sys-color-surface-container-highest);
|
|
179
|
+
--md-filled-tonal-icon-button-toggle-unselected-icon-color: var(--md-sys-color-on-surface-variant);
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
:host([variant="outlined"]) {
|
|
183
|
+
--md-outlined-icon-button-outline-color: var(--md-sys-color-outline);
|
|
184
|
+
--md-outlined-icon-button-icon-color: var(--md-sys-color-on-surface-variant);
|
|
185
|
+
--md-outlined-icon-button-hover-icon-color: var(--md-sys-color-on-surface-variant-hover);
|
|
186
|
+
--md-outlined-icon-button-focus-icon-color: var(--md-sys-color-on-surface-variant-focus);
|
|
187
|
+
--md-outlined-icon-button-pressed-icon-color: var(--md-sys-color-on-surface-variant-pressed);
|
|
188
|
+
--md-outlined-icon-button-selected-container-color: var(--md-sys-color-inverse-surface);
|
|
189
|
+
--md-outlined-icon-button-selected-icon-color: var(--md-sys-color-inverse-on-surface);
|
|
190
|
+
--md-outlined-icon-button-selected-outline-color: var(--md-sys-color-outline);
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
md-icon-button,
|
|
194
|
+
md-filled-icon-button,
|
|
195
|
+
md-filled-tonal-icon-button,
|
|
196
|
+
md-outlined-icon-button {
|
|
197
|
+
transition: all var(--md-sys-motion-duration-short2, 200ms) var(--md-sys-motion-easing-standard, cubic-bezier(0.2, 0.0, 0, 1.0));
|
|
198
|
+
--md-icon-button-state-layer-shape: var(--md-sys-shape-corner-full);
|
|
199
|
+
--md-filled-icon-button-container-shape: var(--md-sys-shape-corner-full);
|
|
200
|
+
--md-filled-tonal-icon-button-container-shape: var(--md-sys-shape-corner-full);
|
|
201
|
+
--md-outlined-icon-button-container-shape: var(--md-sys-shape-corner-full);
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
md-icon-button:hover,
|
|
205
|
+
md-filled-icon-button:hover,
|
|
206
|
+
md-filled-tonal-icon-button:hover,
|
|
207
|
+
md-outlined-icon-button:hover {
|
|
208
|
+
transform: scale(1.05);
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
md-icon-button:active,
|
|
212
|
+
md-filled-icon-button:active,
|
|
213
|
+
md-filled-tonal-icon-button:active,
|
|
214
|
+
md-outlined-icon-button:active {
|
|
215
|
+
transform: scale(0.95);
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
:host([disabled]) md-icon-button,
|
|
219
|
+
:host([disabled]) md-filled-icon-button,
|
|
220
|
+
:host([disabled]) md-filled-tonal-icon-button,
|
|
221
|
+
:host([disabled]) md-outlined-icon-button {
|
|
222
|
+
opacity: var(--md-sys-state-disabled-container-opacity, 0.38);
|
|
223
|
+
cursor: not-allowed;
|
|
224
|
+
}
|
|
225
|
+
|
|
226
|
+
:host([disabled]) md-icon-button:hover,
|
|
227
|
+
:host([disabled]) md-filled-icon-button:hover,
|
|
228
|
+
:host([disabled]) md-filled-tonal-icon-button:hover,
|
|
229
|
+
:host([disabled]) md-outlined-icon-button:hover {
|
|
230
|
+
transform: none;
|
|
231
|
+
}
|
|
232
|
+
`;
|
|
233
|
+
l([
|
|
234
|
+
i({ type: String })
|
|
235
|
+
], o.prototype, "variant", 2);
|
|
236
|
+
l([
|
|
237
|
+
i({ type: String })
|
|
238
|
+
], o.prototype, "icon", 2);
|
|
239
|
+
l([
|
|
240
|
+
i({ type: String, attribute: "selected-icon" })
|
|
241
|
+
], o.prototype, "selectedIcon", 2);
|
|
242
|
+
l([
|
|
243
|
+
i({ type: Boolean })
|
|
244
|
+
], o.prototype, "disabled", 2);
|
|
245
|
+
l([
|
|
246
|
+
i({ type: Boolean })
|
|
247
|
+
], o.prototype, "toggle", 2);
|
|
248
|
+
l([
|
|
249
|
+
i({ type: Boolean })
|
|
250
|
+
], o.prototype, "selected", 2);
|
|
251
|
+
l([
|
|
252
|
+
i({ type: String })
|
|
253
|
+
], o.prototype, "href", 2);
|
|
254
|
+
l([
|
|
255
|
+
i({ type: String })
|
|
256
|
+
], o.prototype, "target", 2);
|
|
257
|
+
l([
|
|
258
|
+
i({ type: String, attribute: "aria-label" })
|
|
259
|
+
], o.prototype, "ariaLabel", 2);
|
|
260
|
+
l([
|
|
261
|
+
i({ type: String, attribute: "aria-label-selected" })
|
|
262
|
+
], o.prototype, "ariaLabelSelected", 2);
|
|
263
|
+
o = l([
|
|
264
|
+
h("pd-icon-button")
|
|
265
|
+
], o);
|
|
266
|
+
export {
|
|
267
|
+
o as PdIconButton
|
|
268
|
+
};
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const l=require("lit"),e=require("lit/decorators.js");require("@material/web/icon/icon.js");var d=Object.defineProperty,m=Object.getOwnPropertyDescriptor,i=(n,o,t,s)=>{for(var r=s>1?void 0:s?m(o,t):o,a=n.length-1,c;a>=0;a--)(c=n[a])&&(r=(s?c(o,t,r):c(r))||r);return s&&r&&d(o,t,r),r};exports.PdIcon=class extends l.LitElement{constructor(){super(...arguments),this.name="",this.size="medium",this.variant="filled"}render(){return l.html`
|
|
2
|
+
<md-icon class="icon ${this.size}">
|
|
3
|
+
${this.name}
|
|
4
|
+
</md-icon>
|
|
5
|
+
`}};exports.PdIcon.styles=l.css`
|
|
6
|
+
:host {
|
|
7
|
+
display: inline-flex;
|
|
8
|
+
align-items: center;
|
|
9
|
+
justify-content: center;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
.icon {
|
|
13
|
+
color: var(--md-sys-color-on-surface, #000000);
|
|
14
|
+
transition: color var(--md-sys-transition-duration, 0.2s) ease;
|
|
15
|
+
user-select: none;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
.icon.small {
|
|
19
|
+
font-size: var(--md-sys-icon-size-small, 18px);
|
|
20
|
+
width: var(--md-sys-icon-size-small, 18px);
|
|
21
|
+
height: var(--md-sys-icon-size-small, 18px);
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
.icon.medium {
|
|
25
|
+
font-size: var(--md-sys-icon-size-medium, 24px);
|
|
26
|
+
width: var(--md-sys-icon-size-medium, 24px);
|
|
27
|
+
height: var(--md-sys-icon-size-medium, 24px);
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
.icon.large {
|
|
31
|
+
font-size: var(--md-sys-icon-size-large, 32px);
|
|
32
|
+
width: var(--md-sys-icon-size-large, 32px);
|
|
33
|
+
height: var(--md-sys-icon-size-large, 32px);
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
/* Clickable state */
|
|
37
|
+
:host([clickable]) .icon {
|
|
38
|
+
cursor: pointer;
|
|
39
|
+
border-radius: var(--md-sys-shape-corner-small, 4px);
|
|
40
|
+
padding: var(--md-sys-padding-200, 8px);
|
|
41
|
+
transition: background-color var(--md-sys-transition-duration, 0.2s) ease, color var(--md-sys-transition-duration, 0.2s) ease;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
:host([clickable]) .icon:hover {
|
|
45
|
+
background-color: var(--md-sys-color-primary-container, rgba(103, 80, 164, 0.08));
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
:host([clickable]) .icon:active {
|
|
49
|
+
background-color: var(--md-sys-color-primary-container, rgba(103, 80, 164, 0.12));
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
/* Color variants */
|
|
53
|
+
:host([color="primary"]) .icon {
|
|
54
|
+
color: var(--md-sys-color-primary, #6750a4);
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
:host([color="secondary"]) .icon {
|
|
58
|
+
color: var(--md-sys-color-secondary, #625b71);
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
:host([color="error"]) .icon {
|
|
62
|
+
color: var(--md-sys-color-error, #ba1a1a);
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
:host([color="success"]) .icon {
|
|
66
|
+
color: var(--md-sys-color-tertiary, #7d5260);
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
/* Material Web Components will use --md-* design tokens directly */
|
|
70
|
+
/* Tokens will be provided by separate theme file with --md-* naming */
|
|
71
|
+
`;i([e.property({type:String})],exports.PdIcon.prototype,"name",2);i([e.property({type:String})],exports.PdIcon.prototype,"size",2);i([e.property({type:String})],exports.PdIcon.prototype,"variant",2);exports.PdIcon=i([e.customElement("pd-icon")],exports.PdIcon);
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
import { css as m, LitElement as d, html as p } from "lit";
|
|
2
|
+
import { property as c, customElement as y } from "lit/decorators.js";
|
|
3
|
+
import "@material/web/icon/icon.js";
|
|
4
|
+
var v = Object.defineProperty, h = Object.getOwnPropertyDescriptor, i = (l, s, t, e) => {
|
|
5
|
+
for (var r = e > 1 ? void 0 : e ? h(s, t) : s, a = l.length - 1, n; a >= 0; a--)
|
|
6
|
+
(n = l[a]) && (r = (e ? n(s, t, r) : n(r)) || r);
|
|
7
|
+
return e && r && v(s, t, r), r;
|
|
8
|
+
};
|
|
9
|
+
let o = class extends d {
|
|
10
|
+
constructor() {
|
|
11
|
+
super(...arguments), this.name = "", this.size = "medium", this.variant = "filled";
|
|
12
|
+
}
|
|
13
|
+
render() {
|
|
14
|
+
return p`
|
|
15
|
+
<md-icon class="icon ${this.size}">
|
|
16
|
+
${this.name}
|
|
17
|
+
</md-icon>
|
|
18
|
+
`;
|
|
19
|
+
}
|
|
20
|
+
};
|
|
21
|
+
o.styles = m`
|
|
22
|
+
:host {
|
|
23
|
+
display: inline-flex;
|
|
24
|
+
align-items: center;
|
|
25
|
+
justify-content: center;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
.icon {
|
|
29
|
+
color: var(--md-sys-color-on-surface, #000000);
|
|
30
|
+
transition: color var(--md-sys-transition-duration, 0.2s) ease;
|
|
31
|
+
user-select: none;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
.icon.small {
|
|
35
|
+
font-size: var(--md-sys-icon-size-small, 18px);
|
|
36
|
+
width: var(--md-sys-icon-size-small, 18px);
|
|
37
|
+
height: var(--md-sys-icon-size-small, 18px);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
.icon.medium {
|
|
41
|
+
font-size: var(--md-sys-icon-size-medium, 24px);
|
|
42
|
+
width: var(--md-sys-icon-size-medium, 24px);
|
|
43
|
+
height: var(--md-sys-icon-size-medium, 24px);
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
.icon.large {
|
|
47
|
+
font-size: var(--md-sys-icon-size-large, 32px);
|
|
48
|
+
width: var(--md-sys-icon-size-large, 32px);
|
|
49
|
+
height: var(--md-sys-icon-size-large, 32px);
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
/* Clickable state */
|
|
53
|
+
:host([clickable]) .icon {
|
|
54
|
+
cursor: pointer;
|
|
55
|
+
border-radius: var(--md-sys-shape-corner-small, 4px);
|
|
56
|
+
padding: var(--md-sys-padding-200, 8px);
|
|
57
|
+
transition: background-color var(--md-sys-transition-duration, 0.2s) ease, color var(--md-sys-transition-duration, 0.2s) ease;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
:host([clickable]) .icon:hover {
|
|
61
|
+
background-color: var(--md-sys-color-primary-container, rgba(103, 80, 164, 0.08));
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
:host([clickable]) .icon:active {
|
|
65
|
+
background-color: var(--md-sys-color-primary-container, rgba(103, 80, 164, 0.12));
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
/* Color variants */
|
|
69
|
+
:host([color="primary"]) .icon {
|
|
70
|
+
color: var(--md-sys-color-primary, #6750a4);
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
:host([color="secondary"]) .icon {
|
|
74
|
+
color: var(--md-sys-color-secondary, #625b71);
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
:host([color="error"]) .icon {
|
|
78
|
+
color: var(--md-sys-color-error, #ba1a1a);
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
:host([color="success"]) .icon {
|
|
82
|
+
color: var(--md-sys-color-tertiary, #7d5260);
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
/* Material Web Components will use --md-* design tokens directly */
|
|
86
|
+
/* Tokens will be provided by separate theme file with --md-* naming */
|
|
87
|
+
`;
|
|
88
|
+
i([
|
|
89
|
+
c({ type: String })
|
|
90
|
+
], o.prototype, "name", 2);
|
|
91
|
+
i([
|
|
92
|
+
c({ type: String })
|
|
93
|
+
], o.prototype, "size", 2);
|
|
94
|
+
i([
|
|
95
|
+
c({ type: String })
|
|
96
|
+
], o.prototype, "variant", 2);
|
|
97
|
+
o = i([
|
|
98
|
+
y("pd-icon")
|
|
99
|
+
], o);
|
|
100
|
+
export {
|
|
101
|
+
o as PdIcon
|
|
102
|
+
};
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("lit"),e=require("lit/decorators.js");require("@material/web/list/list.js");require("@material/web/list/list-item.js");require("@material/web/divider/divider.js");require("@material/web/icon/icon.js");var m=Object.defineProperty,p=Object.getOwnPropertyDescriptor,i=(a,s,n,l)=>{for(var r=l>1?void 0:l?p(s,n):s,d=a.length-1,o;d>=0;d--)(o=a[d])&&(r=(l?o(s,n,r):o(r))||r);return l&&r&&m(s,n,r),r};exports.PdList=class extends t.LitElement{constructor(){super(...arguments),this.role="list",this.tabindex=-1}render(){return t.html`
|
|
2
|
+
<md-list
|
|
3
|
+
role=${this.role}
|
|
4
|
+
tabindex=${this.tabindex}
|
|
5
|
+
>
|
|
6
|
+
<slot></slot>
|
|
7
|
+
</md-list>
|
|
8
|
+
`}};exports.PdList.styles=t.css`
|
|
9
|
+
:host {
|
|
10
|
+
display: block;
|
|
11
|
+
--md-list-container-color: var(--md-sys-color-surface);
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
md-list {
|
|
15
|
+
background-color: var(--md-sys-color-surface);
|
|
16
|
+
border-radius: var(--md-sys-shape-corner-small);
|
|
17
|
+
overflow: hidden;
|
|
18
|
+
}
|
|
19
|
+
`;i([e.property({type:String})],exports.PdList.prototype,"role",2);i([e.property({type:Number})],exports.PdList.prototype,"tabindex",2);exports.PdList=i([e.customElement("pd-list")],exports.PdList);exports.PdListItem=class extends t.LitElement{constructor(){super(...arguments),this.type="text",this.headline="",this.supportingText="",this.trailingSupportingText="",this.href="",this.target="",this.disabled=!1,this.icon="",this.trailingIcon="",this.avatar="",this.image=""}getListItemTemplate(){const s=this.headline?t.html`<div slot="headline">${this.headline}</div>`:t.html`<slot name="headline" slot="headline"></slot>`,n=this.supportingText?t.html`<div slot="supporting-text">${this.supportingText}</div>`:t.html`<slot name="supporting-text" slot="supporting-text"></slot>`,l=this.trailingSupportingText?t.html`<div slot="trailing-supporting-text">${this.trailingSupportingText}</div>`:t.html`<slot name="trailing-supporting-text" slot="trailing-supporting-text"></slot>`,r=this.icon?t.html`<md-icon slot="start">${this.icon}</md-icon>`:this.avatar?t.html`<img slot="start" src="${this.avatar}" class="avatar" alt="" />`:this.image?t.html`<img slot="start" src="${this.image}" class="image" alt="" />`:t.html`<slot name="start" slot="start"></slot>`,d=this.trailingIcon?t.html`<md-icon slot="end">${this.trailingIcon}</md-icon>`:t.html`<slot name="end" slot="end"></slot>`,o={disabled:this.disabled,tabindex:this.tabindex,href:this.href||t.nothing,target:this.target||t.nothing};return t.html`
|
|
20
|
+
<md-list-item
|
|
21
|
+
.type=${this.type}
|
|
22
|
+
?disabled=${o.disabled}
|
|
23
|
+
.tabindex=${o.tabindex}
|
|
24
|
+
.href=${o.href}
|
|
25
|
+
.target=${o.target}
|
|
26
|
+
@click=${this._handleClick}
|
|
27
|
+
@keydown=${this._handleKeydown}
|
|
28
|
+
>
|
|
29
|
+
${r}
|
|
30
|
+
${s}
|
|
31
|
+
${n}
|
|
32
|
+
${l}
|
|
33
|
+
${d}
|
|
34
|
+
</md-list-item>
|
|
35
|
+
`}render(){return this.getListItemTemplate()}_handleClick(s){this.disabled||this.dispatchEvent(new CustomEvent("list-item-click",{detail:{type:this.type,headline:this.headline,href:this.href},bubbles:!0}))}_handleKeydown(s){this.disabled||(s.key==="Enter"||s.key===" ")&&(s.preventDefault(),this._handleClick(s))}};exports.PdListItem.styles=t.css`
|
|
36
|
+
:host {
|
|
37
|
+
display: block;
|
|
38
|
+
--md-list-item-list-item-container-color: var(--md-sys-color-surface);
|
|
39
|
+
--md-list-item-list-item-label-text-color: var(--md-sys-color-on-surface);
|
|
40
|
+
--md-list-item-list-item-supporting-text-color: var(--md-sys-color-on-surface-variant);
|
|
41
|
+
--md-list-item-list-item-trailing-supporting-text-color: var(--md-sys-color-on-surface-variant);
|
|
42
|
+
--md-list-item-list-item-leading-icon-color: var(--md-sys-color-on-surface-variant);
|
|
43
|
+
--md-list-item-list-item-trailing-icon-color: var(--md-sys-color-on-surface-variant);
|
|
44
|
+
--md-list-item-list-item-container-shape: var(--md-sys-shape-corner-none);
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
md-list-item {
|
|
48
|
+
--md-list-item-label-text-font: var(--md-sys-typescale-body-large-font);
|
|
49
|
+
--md-list-item-label-text-size: var(--md-sys-typescale-body-large-size);
|
|
50
|
+
--md-list-item-label-text-weight: var(--md-sys-typescale-body-large-weight);
|
|
51
|
+
--md-list-item-label-text-line-height: var(--md-sys-typescale-body-large-line-height);
|
|
52
|
+
--md-list-item-supporting-text-font: var(--md-sys-typescale-body-medium-font);
|
|
53
|
+
--md-list-item-supporting-text-size: var(--md-sys-typescale-body-medium-size);
|
|
54
|
+
--md-list-item-supporting-text-weight: var(--md-sys-typescale-body-medium-weight);
|
|
55
|
+
--md-list-item-supporting-text-line-height: var(--md-sys-typescale-body-medium-line-height);
|
|
56
|
+
--md-list-item-trailing-supporting-text-font: var(--md-sys-typescale-label-small-font);
|
|
57
|
+
--md-list-item-trailing-supporting-text-size: var(--md-sys-typescale-label-small-size);
|
|
58
|
+
--md-list-item-trailing-supporting-text-weight: var(--md-sys-typescale-label-small-weight);
|
|
59
|
+
--md-list-item-trailing-supporting-text-line-height: var(--md-sys-typescale-label-small-line-height);
|
|
60
|
+
transition: background-color var(--md-sys-motion-duration-short2, 200ms) var(--md-sys-motion-easing-standard, cubic-bezier(0.2, 0.0, 0, 1.0));
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
md-list-item:hover {
|
|
64
|
+
--md-list-item-list-item-container-color: var(--md-sys-color-surface-container-hover, var(--md-sys-color-surface-variant));
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
md-list-item:focus {
|
|
68
|
+
--md-list-item-list-item-container-color: var(--md-sys-color-surface-container-focus, var(--md-sys-color-surface-variant));
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
.avatar {
|
|
72
|
+
width: 40px;
|
|
73
|
+
height: 40px;
|
|
74
|
+
border-radius: var(--md-sys-shape-corner-full);
|
|
75
|
+
object-fit: cover;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
.image {
|
|
79
|
+
width: 56px;
|
|
80
|
+
height: 56px;
|
|
81
|
+
border-radius: var(--md-sys-shape-corner-small);
|
|
82
|
+
object-fit: cover;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
:host([disabled]) md-list-item {
|
|
86
|
+
--md-list-item-list-item-label-text-color: var(--md-sys-color-on-surface);
|
|
87
|
+
--md-list-item-list-item-supporting-text-color: var(--md-sys-color-on-surface);
|
|
88
|
+
--md-list-item-list-item-leading-icon-color: var(--md-sys-color-on-surface);
|
|
89
|
+
--md-list-item-list-item-trailing-icon-color: var(--md-sys-color-on-surface);
|
|
90
|
+
opacity: var(--md-sys-state-disabled-content-opacity, 0.38);
|
|
91
|
+
cursor: not-allowed;
|
|
92
|
+
}
|
|
93
|
+
`;i([e.property({type:String})],exports.PdListItem.prototype,"type",2);i([e.property({type:String})],exports.PdListItem.prototype,"headline",2);i([e.property({type:String,attribute:"supporting-text"})],exports.PdListItem.prototype,"supportingText",2);i([e.property({type:String,attribute:"trailing-supporting-text"})],exports.PdListItem.prototype,"trailingSupportingText",2);i([e.property({type:String})],exports.PdListItem.prototype,"href",2);i([e.property({type:String})],exports.PdListItem.prototype,"target",2);i([e.property({type:Boolean})],exports.PdListItem.prototype,"disabled",2);i([e.property({type:String})],exports.PdListItem.prototype,"icon",2);i([e.property({type:String,attribute:"trailing-icon"})],exports.PdListItem.prototype,"trailingIcon",2);i([e.property({type:String})],exports.PdListItem.prototype,"avatar",2);i([e.property({type:String})],exports.PdListItem.prototype,"image",2);i([e.property({type:Number})],exports.PdListItem.prototype,"tabindex",2);exports.PdListItem=i([e.customElement("pd-list-item")],exports.PdListItem);exports.PdListDivider=class extends t.LitElement{constructor(){super(...arguments),this.inset=!1,this.role="separator"}render(){return t.html`
|
|
94
|
+
<md-divider
|
|
95
|
+
?inset=${this.inset}
|
|
96
|
+
role=${this.role}
|
|
97
|
+
></md-divider>
|
|
98
|
+
`}};exports.PdListDivider.styles=t.css`
|
|
99
|
+
:host {
|
|
100
|
+
display: block;
|
|
101
|
+
--md-divider-color: var(--md-sys-color-outline-variant);
|
|
102
|
+
--md-divider-thickness: 1px;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
md-divider {
|
|
106
|
+
margin: var(--md-sys-spacing-100, 4px) 0;
|
|
107
|
+
}
|
|
108
|
+
`;i([e.property({type:Boolean})],exports.PdListDivider.prototype,"inset",2);i([e.property({type:String})],exports.PdListDivider.prototype,"role",2);exports.PdListDivider=i([e.customElement("pd-list-divider")],exports.PdListDivider);
|