@proximus/lavender-selectablebox 2.0.0-alpha.2 → 2.0.0-alpha.200

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/index.es.js CHANGED
@@ -1,395 +1,416 @@
1
- import { WithExtraAttributes as n, AttributeBreakpointHandlerDelegate as f, gapValues as v, checkName as m, backgroundColorValues as k } from "@proximus/lavender-common";
2
- const A = ':host{display:block}:host([overflow-x="auto"]){margin:calc(calc(var(--px-focus-outline-mobile) + var(--px-focus-offset-mobile)) * -1)}:host([overflow-x="auto"]) .flex-container{padding:calc(var(--px-focus-outline-mobile) + var(--px-focus-offset-mobile))}.flex-container{display:flex;height:100%;width:100%;box-sizing:border-box;flex-direction:var(--flex-direction--mobile-value);gap:var(--flex-gap--mobile-value);flex-wrap:var(--flex-wrap--mobile-value);justify-content:var(--flex-justify-content--mobile-value);align-items:var(--flex-align-items--mobile-value);overflow-x:var(--overflow-x-all)}@media only screen and (max-width: 47.9375em){.flex-container{overflow-x:var(--overflow-x-all-mobile, var(--overflow-x-all));scrollbar-width:none}.flex-container::-webkit-scrollbar{display:none}}@media only screen and (min-width: 48em){.flex-container{flex-direction:var(--flex-direction--tablet-value);gap:var(--flex-gap--tablet-value);flex-wrap:var(--flex-wrap--tablet-value);justify-content:var(--flex-justify-content--tablet-value);align-items:var(--flex-align-items--tablet-value)}:host([overflow-x="auto"]){margin:calc(calc(var(--px-focus-outline-tablet) + var(--px-focus-offset-tablet)) * -1)}:host([overflow-x="auto"]) .flex-container{padding:calc(var(--px-focus-outline-tablet) + var(--px-focus-offset-tablet))}}@media only screen and (min-width: 48em) and (max-width: 64em){.flex-container{overflow-x:var(--overflow-x-all-tablet, var(--overflow-x-all));scrollbar-width:none}.flex-container::-webkit-scrollbar{display:none}}@media only screen and (min-width: 64.0625em){.flex-container{flex-direction:var(--flex-direction--laptop-value);gap:var(--flex-gap--laptop-value);flex-wrap:var(--flex-wrap--laptop-value);justify-content:var(--flex-justify-content--laptop-value);align-items:var(--flex-align-items--laptop-value)}:host([overflow-x="auto"]){margin:calc(calc(var(--px-focus-outline-laptop) + var(--px-focus-offset-laptop)) * -1)}:host([overflow-x="auto"]) .flex-container{padding:calc(var(--px-focus-outline-laptop) + var(--px-focus-offset-laptop))}}@media only screen and (min-width: 64.0625em) and (max-width: 90em){.flex-container{overflow-x:var(--overflow-x-all-laptop, var(--overflow-x-all))}}@media only screen and (min-width: 90.0625em){.flex-container{flex-direction:var(--flex-direction--desktop-value);gap:var(--flex-gap--desktop-value);flex-wrap:var(--flex-wrap--desktop-value);justify-content:var(--flex-justify-content--desktop-value);align-items:var(--flex-align-items--desktop-value);overflow-x:var(--overflow-x-all-desktop, var(--overflow-x-all))}:host([overflow-x="auto"]){margin:calc(calc(var(--px-focus-outline-desktop) + var(--px-focus-offset-desktop)) * -1)}:host([overflow-x="auto"]) .flex-container{padding:calc(var(--px-focus-outline-desktop) + var(--px-focus-offset-desktop))}}', b = new CSSStyleSheet();
3
- b.replaceSync(A);
4
- const y = [
5
- "",
6
- "default",
7
- "row",
8
- "row-reverse",
9
- "column",
10
- "column-reverse"
11
- ], w = [
12
- "",
13
- "default",
14
- "stretch",
15
- "flex-start",
16
- "flex-end",
17
- "center",
18
- "baseline"
19
- ], $ = [
20
- "",
21
- "default",
22
- "flex-start",
23
- "flex-end",
24
- "center",
25
- "space-between",
26
- "space-around",
27
- "space-evenly"
28
- ], C = ["", "default", "nowrap", "wrap", "wrap-reverse"], S = ["", "visible", "hidden", "scroll", "auto"];
29
- class c extends n {
30
- constructor() {
31
- super(b), this.overflowXAttributeDelegate = new f(
32
- this,
33
- "overflow-x",
34
- (t) => t,
35
- "--overflow-x"
36
- ), this.template = `<div class="flex-container">
37
- <slot></slot>
38
- </div>`, this.shadowRoot.innerHTML = this.template;
39
- }
40
- connectedCallback() {
41
- this.hasAttribute("direction") || (this.direction = "row"), this.hasAttribute("gap") || (this.gap = "none"), this.hasAttribute("align-items") || (this.alignItems = "stretch"), this.hasAttribute("justify-content") || (this.justifyContent = "flex-start"), this.hasAttribute("wrap") || (this.wrap = "nowrap"), this.hasAttribute("overflow-x") || this.overflowXAttributeDelegate.init("visible");
42
- }
43
- static get observedAttributes() {
44
- return [
45
- ...super.observedAttributes,
46
- "direction",
47
- "direction--mobile",
48
- "direction--tablet",
49
- "direction--laptop",
50
- "direction--desktop",
51
- "gap",
52
- "gap--mobile",
53
- "gap--tablet",
54
- "gap--laptop",
55
- "gap--desktop",
56
- "justify-content",
57
- "justify-content--mobile",
58
- "justify-content--tablet",
59
- "justify-content--laptop",
60
- "justify-content--desktop",
61
- "align-items",
62
- "align-items--mobile",
63
- "align-items--tablet",
64
- "align-items--laptop",
65
- "align-items--desktop",
66
- "wrap",
67
- "wrap--mobile",
68
- "wrap--tablet",
69
- "wrap--laptop",
70
- "wrap--desktop",
71
- "overflow-x",
72
- "overflow-x--mobile",
73
- "overflow-x--tablet",
74
- "overflow-x--laptop",
75
- "overflow-x--desktop"
76
- ];
77
- }
78
- attributeChangedCallback(t, e, i) {
79
- switch (t) {
80
- case "gap":
81
- case "gap--mobile":
82
- case "gap--tablet":
83
- case "gap--laptop":
84
- case "gap--desktop":
85
- this.updateFlexProperties(t, e, i, v);
86
- break;
87
- case "justify-content":
88
- case "justify-content--mobile":
89
- case "justify-content--tablet":
90
- case "justify-content--laptop":
91
- case "justify-content--desktop":
92
- this.updateFlexProperties(
93
- t,
94
- e,
95
- i,
96
- $
97
- );
98
- break;
99
- case "align-items":
100
- case "align-items--mobile":
101
- case "align-items--tablet":
102
- case "align-items--laptop":
103
- case "align-items--desktop":
104
- this.updateFlexProperties(t, e, i, w);
105
- break;
106
- case "wrap":
107
- case "wrap--mobile":
108
- case "wrap--tablet":
109
- case "wrap--laptop":
110
- case "wrap--desktop":
111
- this.updateFlexProperties(t, e, i, C);
112
- break;
113
- case "direction":
114
- case "direction--mobile":
115
- case "direction--tablet":
116
- case "direction--laptop":
117
- case "direction--desktop":
118
- this.updateFlexProperties(t, e, i, y);
119
- break;
120
- case "overflow-x":
121
- case "overflow-x--mobile":
122
- case "overflow-x--tablet":
123
- case "overflow-x--laptop":
124
- case "overflow-x--desktop":
125
- this.updateOverflowX(t, e, i, S);
126
- break;
127
- default:
128
- super.attributeChangedCallback(t, e, i);
129
- break;
130
- }
131
- }
132
- updateOverflowX(t, e, i, o) {
133
- if (!m(o, i)) {
134
- console.error(`${i} is not an allowed ${t} value`);
135
- return;
136
- }
137
- this.overflowXAttributeDelegate.attributeChangedCallback(
138
- t,
139
- e,
140
- i
141
- );
142
- }
143
- updateFlexProperties(t, e, i, o) {
144
- this.checkName(o, i) || console.error(`${i} is not a valid value for ${o}`);
145
- const d = t.indexOf("--") > -1, s = d ? t.split("--")[0] : t, a = [];
146
- if (!d)
147
- this.getAttribute(s + "--mobile") || a.push("mobile"), this.getAttribute(s + "--tablet") || a.push("tablet"), this.getAttribute(s + "--laptop") || a.push("laptop"), this.getAttribute(s + "--desktop") || a.push("desktop"), a.forEach((l) => {
148
- this.updateStyle(s, l, e, o), this.updateStyle(s, l, i, o);
149
- });
150
- else {
151
- const l = t.split("--")[1];
152
- this.updateStyle(s, l, e, o), this.updateStyle(s, l, i, o);
153
- }
154
- }
155
- updateStyle(t, e, i, o) {
156
- i && (t === "gap" && o && o.includes(i) ? this.$el.style.setProperty(
157
- `--flex-${t}--${e}-value`,
158
- `var(--px-spacing-${i}-${e === "laptop" ? "desktop" : e})`
159
- ) : this.$el.style.setProperty(
160
- `--flex-${t}--${e}-value`,
161
- i
162
- ));
163
- }
164
- get direction() {
165
- return this.getAttribute("direction");
166
- }
167
- set direction(t) {
168
- this.setAttribute("direction", t);
169
- }
170
- get directionMobile() {
171
- return this.getAttribute("direction--mobile");
172
- }
173
- set directionMobile(t) {
174
- this.setAttribute("direction--mobile", t);
175
- }
176
- get directionTablet() {
177
- return this.getAttribute("direction--tablet");
178
- }
179
- set directionTablet(t) {
180
- this.setAttribute("direction--tablet", t);
181
- }
182
- get directionLaptop() {
183
- return this.getAttribute("direction--laptop");
184
- }
185
- set directionLaptop(t) {
186
- this.setAttribute("direction--laptop", t);
187
- }
188
- get directionDesktop() {
189
- return this.getAttribute("direction--desktop");
190
- }
191
- set directionDesktop(t) {
192
- this.setAttribute("direction--desktop", t);
193
- }
194
- get gap() {
195
- return this.getAttribute("gap");
196
- }
197
- set gap(t) {
198
- this.setAttribute("gap", t);
199
- }
200
- get gapMobile() {
201
- return this.getAttribute("gap--mobile");
202
- }
203
- set gapMobile(t) {
204
- this.setAttribute("gap--mobile", t);
205
- }
206
- get gapTablet() {
207
- return this.getAttribute("gap--tablet");
208
- }
209
- set gapTablet(t) {
210
- this.setAttribute("gap--tablet", t);
211
- }
212
- get gapLaptop() {
213
- return this.getAttribute("gap--laptop");
214
- }
215
- set gapLaptop(t) {
216
- this.setAttribute("gap--laptop", t);
217
- }
218
- get gapDesktop() {
219
- return this.getAttribute("gap--desktop");
220
- }
221
- set gapDesktop(t) {
222
- this.setAttribute("gap--desktop", t);
223
- }
224
- get justifyContent() {
225
- return this.getAttribute("justify-content");
226
- }
227
- set justifyContent(t) {
228
- this.setAttribute("justify-content", t);
229
- }
230
- get justifyContentMobile() {
231
- return this.getAttribute("justify-content--mobile");
232
- }
233
- set justifyContentMobile(t) {
234
- this.setAttribute("justify-content--mobile", t);
235
- }
236
- get justifyContentTablet() {
237
- return this.getAttribute("justify-content--tablet");
238
- }
239
- set justifyContentTablet(t) {
240
- this.setAttribute("justify-content--tablet", t);
241
- }
242
- get justifyContentLaptop() {
243
- return this.getAttribute("justify-content--laptop");
244
- }
245
- set justifyContentLaptop(t) {
246
- this.setAttribute("justify-content--laptop", t);
247
- }
248
- get justifyContentDesktop() {
249
- return this.getAttribute("justify-content--desktop");
250
- }
251
- set justifyContentDesktop(t) {
252
- this.setAttribute("justify-content--desktop", t);
253
- }
254
- get alignItems() {
255
- return this.getAttribute("align-items");
256
- }
257
- set alignItems(t) {
258
- this.setAttribute("align-items", t);
259
- }
260
- get alignItemsMobile() {
261
- return this.getAttribute("align-items--mobile");
262
- }
263
- set alignItemsMobile(t) {
264
- this.setAttribute("align-items--mobile", t);
265
- }
266
- get alignItemsTablet() {
267
- return this.getAttribute("align-items--tablet");
268
- }
269
- set alignItemsTablet(t) {
270
- this.setAttribute("align-items--tablet", t);
271
- }
272
- get alignItemsLaptop() {
273
- return this.getAttribute("align-items--laptop");
274
- }
275
- set alignItemsLaptop(t) {
276
- this.setAttribute("align-items--laptop", t);
277
- }
278
- get alignItemsDesktop() {
279
- return this.getAttribute("align-items--desktop");
280
- }
281
- set alignItemsDesktop(t) {
282
- this.setAttribute("align-items--desktop", t);
283
- }
284
- get wrap() {
285
- return this.getAttribute("wrap");
286
- }
287
- set wrap(t) {
288
- this.setAttribute("wrap", t);
289
- }
290
- get wrapMobile() {
291
- return this.getAttribute("wrap--mobile");
292
- }
293
- set wrapMobile(t) {
294
- this.setAttribute("wrap--mobile", t);
295
- }
296
- get wrapTablet() {
297
- return this.getAttribute("wrap--tablet");
298
- }
299
- set wrapTablet(t) {
300
- this.setAttribute("wrap--tablet", t);
301
- }
302
- get wrapLaptop() {
303
- return this.getAttribute("wrap--laptop");
304
- }
305
- set wrapLaptop(t) {
306
- this.setAttribute("wrap--laptop", t);
307
- }
308
- get wrapDesktop() {
309
- return this.getAttribute("wrap--desktop");
310
- }
311
- set wrapDesktop(t) {
312
- this.setAttribute("wrap--desktop", t);
313
- }
314
- get overflowX() {
315
- return this.getAttribute("overflow-x");
316
- }
317
- set overflowX(t) {
318
- this.setAttribute("overflow-x", t);
319
- }
320
- get overflowXMobile() {
321
- return this.getAttribute("overflow-x--mobile");
322
- }
323
- set overflowXMobile(t) {
324
- this.setAttribute("overflow-x--mobile", t);
325
- }
326
- get overflowXTablet() {
327
- return this.getAttribute("overflow-x--tablet");
328
- }
329
- set overflowXTablet(t) {
330
- this.setAttribute("overflow-x--tablet", t);
331
- }
332
- get overflowXLaptop() {
333
- return this.getAttribute("overflow-x--laptop");
334
- }
335
- set overflowXLaptop(t) {
336
- this.setAttribute("overflow-x--laptop", t);
337
- }
338
- get overflowXDesktop() {
339
- return this.getAttribute("overflow-x--desktop");
340
- }
341
- set overflowXDesktop(t) {
342
- this.setAttribute("overflow-x--desktop", t);
343
- }
344
- get $el() {
345
- return this.shadowRoot.querySelector(".flex-container");
346
- }
347
- }
348
- customElements.get("px-stack") || customElements.define("px-stack", c);
349
- class _ extends c {
350
- constructor() {
351
- super();
352
- }
353
- connectedCallback() {
354
- super.connectedCallback(), this.direction = "column", this.directionMobile = "column", this.directionTablet = "column", this.directionLaptop = "column", this.directionDesktop = "column";
355
- }
356
- }
357
- customElements.get("px-vstack") || customElements.define("px-vstack", _);
358
- class E extends c {
359
- constructor() {
360
- super();
361
- }
362
- connectedCallback() {
363
- super.connectedCallback(), this.direction = "row", this.directionMobile = "row", this.directionTablet = "row", this.directionLaptop = "row", this.directionDesktop = "row";
364
- }
365
- }
366
- customElements.get("px-hstack") || customElements.define("px-hstack", E);
367
- class L extends HTMLElement {
368
- constructor() {
369
- super();
370
- }
371
- static get observedAttributes() {
372
- return ["grow"];
373
- }
374
- attributeChangedCallback(t, e, i) {
375
- t === "grow" && (this.style.flexGrow = i);
376
- }
377
- connectedCallback() {
378
- this.style.flexGrow = this.getAttribute("grow") || "1";
379
- }
380
- get grow() {
381
- return this.getAttribute("grow");
382
- }
383
- set grow(t) {
384
- this.setAttribute("grow", t);
385
- }
386
- }
387
- customElements.get("px-spacer") || customElements.define("px-spacer", L);
388
- const j = ":host{display:block;box-sizing:border-box}slot[name=body-container]{min-height:100vh}#image-sticky-box{margin-top:-2.5em}", h = new CSSStyleSheet();
389
- h.replaceSync(j);
390
- class D extends n {
391
- constructor() {
392
- super(h), this.template = (t) => `
1
+ import { AttributeBreakpointHandlerDelegate as e, WithExtraAttributes as t, backgroundColorValues as n, booleanPropertyToAttributeSetter as r, checkName as i, gapValues as a, log as o, propertyToAttributeSetter as s } from "@proximus/lavender-common";
2
+ //#region ../Layout/src/Stack.css?inline
3
+ var c = ":host{display:block}:host ::slotted(px-h1[auto-spacing]),:host ::slotted(px-h2[auto-spacing]),:host ::slotted(px-h3[auto-spacing]),:host ::slotted(px-h4[auto-spacing]),:host ::slotted(px-h5[auto-spacing]),:host ::slotted(px-h6[auto-spacing]){margin-bottom:calc(var(--px-spacing-heading-to-content-mobile) - var(--host-gap--mobile))}:host([overflow-x=auto]){margin:calc(calc(var(--px-focus-outline-mobile) + var(--px-focus-offset-mobile)) * -1)}:host([overflow-x=auto]) .flex-container{padding:calc(var(--px-focus-outline-mobile) + var(--px-focus-offset-mobile))}.flex-container{box-sizing:border-box;flex-direction:var(--flex-direction--mobile-value);gap:var(--flex-gap--mobile-value);flex-wrap:var(--flex-wrap--mobile-value);justify-content:var(--flex-justify-content--mobile-value);align-items:var(--flex-align-items--mobile-value);width:100%;height:100%;overflow-x:var(--overflow-x-all);display:flex}@media screen and (width<=47.938rem){.flex-container{overflow-x:var(--overflow-x-all-mobile,var(--overflow-x-all));scrollbar-width:none}.flex-container::-webkit-scrollbar{display:none}}@media screen and (width>=48rem){.flex-container{flex-direction:var(--flex-direction--tablet-value);gap:var(--flex-gap--tablet-value);flex-wrap:var(--flex-wrap--tablet-value);justify-content:var(--flex-justify-content--tablet-value);align-items:var(--flex-align-items--tablet-value)}:host ::slotted(px-h1[auto-spacing]),:host ::slotted(px-h2[auto-spacing]),:host ::slotted(px-h3[auto-spacing]),:host ::slotted(px-h4[auto-spacing]),:host ::slotted(px-h5[auto-spacing]),:host ::slotted(px-h6[auto-spacing]){margin-bottom:calc(var(--px-spacing-heading-to-content-tablet) - var(--host-gap--tablet))}:host([overflow-x=auto]){margin:calc(calc(var(--px-focus-outline-tablet) + var(--px-focus-offset-tablet)) * -1)}:host([overflow-x=auto]) .flex-container{padding:calc(var(--px-focus-outline-tablet) + var(--px-focus-offset-tablet))}}@media screen and (width>=48rem) and (width<=64rem){.flex-container{overflow-x:var(--overflow-x-all-tablet,var(--overflow-x-all));scrollbar-width:none}.flex-container::-webkit-scrollbar{display:none}}@media screen and (width>=64.0625rem){.flex-container{flex-direction:var(--flex-direction--laptop-value);gap:var(--flex-gap--laptop-value);flex-wrap:var(--flex-wrap--laptop-value);justify-content:var(--flex-justify-content--laptop-value);align-items:var(--flex-align-items--laptop-value)}:host ::slotted(px-h1[auto-spacing]),:host ::slotted(px-h2[auto-spacing]),:host ::slotted(px-h3[auto-spacing]),:host ::slotted(px-h4[auto-spacing]),:host ::slotted(px-h5[auto-spacing]),:host ::slotted(px-h6[auto-spacing]){margin-bottom:calc(var(--px-spacing-heading-to-content-laptop) - var(--host-gap--laptop))}:host([overflow-x=auto]){margin:calc(calc(var(--px-focus-outline-laptop) + var(--px-focus-offset-laptop)) * -1)}:host([overflow-x=auto]) .flex-container{padding:calc(var(--px-focus-outline-laptop) + var(--px-focus-offset-laptop))}}@media screen and (width>=64.0625rem) and (width<=90rem){.flex-container{overflow-x:var(--overflow-x-all-laptop,var(--overflow-x-all))}}@media screen and (width>=90.0625rem){.flex-container{flex-direction:var(--flex-direction--desktop-value);gap:var(--flex-gap--desktop-value);flex-wrap:var(--flex-wrap--desktop-value);justify-content:var(--flex-justify-content--desktop-value);align-items:var(--flex-align-items--desktop-value);overflow-x:var(--overflow-x-all-desktop,var(--overflow-x-all))}:host ::slotted(px-h1[auto-spacing]),:host ::slotted(px-h2[auto-spacing]),:host ::slotted(px-h3[auto-spacing]),:host ::slotted(px-h4[auto-spacing]),:host ::slotted(px-h5[auto-spacing]),:host ::slotted(px-h6[auto-spacing]){margin-bottom:calc(var(--px-spacing-heading-to-content-desktop) - var(--host-gap--desktop))}:host([overflow-x=auto]){margin:calc(calc(var(--px-focus-outline-desktop) + var(--px-focus-offset-desktop)) * -1)}:host([overflow-x=auto]) .flex-container{padding:calc(var(--px-focus-outline-desktop) + var(--px-focus-offset-desktop))}}", l = new CSSStyleSheet();
4
+ l.replaceSync(c);
5
+ var u = [
6
+ "",
7
+ "default",
8
+ "row",
9
+ "row-reverse",
10
+ "column",
11
+ "column-reverse"
12
+ ], d = [
13
+ "",
14
+ "default",
15
+ "stretch",
16
+ "flex-start",
17
+ "start",
18
+ "flex-end",
19
+ "end",
20
+ "center",
21
+ "baseline"
22
+ ], f = [
23
+ "",
24
+ "default",
25
+ "flex-start",
26
+ "start",
27
+ "flex-end",
28
+ "end",
29
+ "center",
30
+ "space-between",
31
+ "space-around",
32
+ "space-evenly"
33
+ ], p = [
34
+ "",
35
+ "default",
36
+ "nowrap",
37
+ "wrap",
38
+ "wrap-reverse"
39
+ ], m = [
40
+ "",
41
+ "visible",
42
+ "hidden",
43
+ "scroll",
44
+ "auto"
45
+ ], h = class extends t {
46
+ constructor() {
47
+ super(l), this.overflowXAttributeDelegate = new e(this, "overflow-x", (e) => e, "--overflow-x"), this.template = "<div class=\"flex-container\">\n <slot></slot>\n </div>", this.shadowRoot.innerHTML = this.template;
48
+ }
49
+ connectedCallback() {
50
+ this.hasAttribute("direction") || (this.direction = "row"), this.hasAttribute("gap") || (this.gap = "none"), this.hasAttribute("align-items") || (this.alignItems = "stretch"), this.hasAttribute("justify-content") || (this.justifyContent = "flex-start"), this.hasAttribute("wrap") || (this.wrap = "nowrap"), this.hasAttribute("overflow-x") || this.overflowXAttributeDelegate.init("visible");
51
+ }
52
+ static get observedAttributes() {
53
+ return [
54
+ ...super.observedAttributes,
55
+ "direction",
56
+ "direction--mobile",
57
+ "direction--tablet",
58
+ "direction--laptop",
59
+ "direction--desktop",
60
+ "gap",
61
+ "gap--mobile",
62
+ "gap--tablet",
63
+ "gap--laptop",
64
+ "gap--desktop",
65
+ "justify-content",
66
+ "justify-content--mobile",
67
+ "justify-content--tablet",
68
+ "justify-content--laptop",
69
+ "justify-content--desktop",
70
+ "align-items",
71
+ "align-items--mobile",
72
+ "align-items--tablet",
73
+ "align-items--laptop",
74
+ "align-items--desktop",
75
+ "wrap",
76
+ "wrap--mobile",
77
+ "wrap--tablet",
78
+ "wrap--laptop",
79
+ "wrap--desktop",
80
+ "overflow-x",
81
+ "overflow-x--mobile",
82
+ "overflow-x--tablet",
83
+ "overflow-x--laptop",
84
+ "overflow-x--desktop"
85
+ ];
86
+ }
87
+ attributeChangedCallback(e, t, n) {
88
+ switch (e) {
89
+ case "gap":
90
+ case "gap--mobile":
91
+ case "gap--tablet":
92
+ case "gap--laptop":
93
+ case "gap--desktop":
94
+ this.updateFlexProperties(e, t, n, a);
95
+ break;
96
+ case "justify-content":
97
+ case "justify-content--mobile":
98
+ case "justify-content--tablet":
99
+ case "justify-content--laptop":
100
+ case "justify-content--desktop":
101
+ this.updateFlexProperties(e, t, n, f);
102
+ break;
103
+ case "align-items":
104
+ case "align-items--mobile":
105
+ case "align-items--tablet":
106
+ case "align-items--laptop":
107
+ case "align-items--desktop":
108
+ this.updateFlexProperties(e, t, n, d);
109
+ break;
110
+ case "wrap":
111
+ case "wrap--mobile":
112
+ case "wrap--tablet":
113
+ case "wrap--laptop":
114
+ case "wrap--desktop":
115
+ this.updateFlexProperties(e, t, n, p);
116
+ break;
117
+ case "direction":
118
+ case "direction--mobile":
119
+ case "direction--tablet":
120
+ case "direction--laptop":
121
+ case "direction--desktop":
122
+ this.updateFlexProperties(e, t, n, u);
123
+ break;
124
+ case "overflow-x":
125
+ case "overflow-x--mobile":
126
+ case "overflow-x--tablet":
127
+ case "overflow-x--laptop":
128
+ case "overflow-x--desktop":
129
+ this.updateOverflowX(e, t, n, m);
130
+ break;
131
+ default: super.attributeChangedCallback(e, t, n);
132
+ }
133
+ }
134
+ updateOverflowX(e, t, n, r) {
135
+ if (!i(r, n)) {
136
+ o(`"${n}" is not a valid ${e} value for ${this.tagName.toLowerCase()}. Allowed values are: "${r.join("\", \"")}".`);
137
+ return;
138
+ }
139
+ this.overflowXAttributeDelegate.attributeChangedCallback(e, t, n);
140
+ }
141
+ updateFlexProperties(e, t, n, r) {
142
+ this.checkName(r, n) || o(`"${n}" is not a valid ${e} value for ${this.tagName.toLowerCase()}. Allowed values are: "${r.join("\", \"")}".`);
143
+ let i = e.indexOf("--") > -1, a = i ? e.split("--")[0] : e, s = [];
144
+ if (!i) this.getAttribute(a + "--mobile") || s.push("mobile"), this.getAttribute(a + "--tablet") || s.push("tablet"), this.getAttribute(a + "--laptop") || s.push("laptop"), this.getAttribute(a + "--desktop") || s.push("desktop"), s.forEach((e) => {
145
+ this.updateStyle(a, e, t, r), this.updateStyle(a, e, n, r);
146
+ });
147
+ else {
148
+ let i = e.split("--")[1];
149
+ this.updateStyle(a, i, t, r), this.updateStyle(a, i, n, r);
150
+ }
151
+ }
152
+ updateStyle(e, t, n, r) {
153
+ n && (e === "gap" && r && r.includes(n) ? (this.$el.style.setProperty(`--flex-${e}--${t}-value`, `var(--px-spacing-${n}-${t === "laptop" ? "desktop" : t})`), this.style.setProperty(`--host-gap--${t}`, `var(--px-spacing-${n}-${t === "laptop" ? "desktop" : t})`)) : this.$el.style.setProperty(`--flex-${e}--${t}-value`, n));
154
+ }
155
+ get direction() {
156
+ return this.getAttribute("direction");
157
+ }
158
+ set direction(e) {
159
+ s(this, "direction", e);
160
+ }
161
+ get directionMobile() {
162
+ return this.getAttribute("direction--mobile");
163
+ }
164
+ set directionMobile(e) {
165
+ s(this, "direction--mobile", e);
166
+ }
167
+ get directionTablet() {
168
+ return this.getAttribute("direction--tablet");
169
+ }
170
+ set directionTablet(e) {
171
+ s(this, "direction--tablet", e);
172
+ }
173
+ get directionLaptop() {
174
+ return this.getAttribute("direction--laptop");
175
+ }
176
+ set directionLaptop(e) {
177
+ s(this, "direction--laptop", e);
178
+ }
179
+ get directionDesktop() {
180
+ return this.getAttribute("direction--desktop");
181
+ }
182
+ set directionDesktop(e) {
183
+ s(this, "direction--desktop", e);
184
+ }
185
+ get gap() {
186
+ return this.getAttribute("gap");
187
+ }
188
+ set gap(e) {
189
+ s(this, "gap", e);
190
+ }
191
+ get gapMobile() {
192
+ return this.getAttribute("gap--mobile");
193
+ }
194
+ set gapMobile(e) {
195
+ s(this, "gap--mobile", e);
196
+ }
197
+ get gapTablet() {
198
+ return this.getAttribute("gap--tablet");
199
+ }
200
+ set gapTablet(e) {
201
+ s(this, "gap--tablet", e);
202
+ }
203
+ get gapLaptop() {
204
+ return this.getAttribute("gap--laptop");
205
+ }
206
+ set gapLaptop(e) {
207
+ s(this, "gap--laptop", e);
208
+ }
209
+ get gapDesktop() {
210
+ return this.getAttribute("gap--desktop");
211
+ }
212
+ set gapDesktop(e) {
213
+ s(this, "gap--desktop", e);
214
+ }
215
+ get justifyContent() {
216
+ return this.getAttribute("justify-content");
217
+ }
218
+ set justifyContent(e) {
219
+ s(this, "justify-content", e);
220
+ }
221
+ get justifyContentMobile() {
222
+ return this.getAttribute("justify-content--mobile");
223
+ }
224
+ set justifyContentMobile(e) {
225
+ s(this, "justify-content--mobile", e);
226
+ }
227
+ get justifyContentTablet() {
228
+ return this.getAttribute("justify-content--tablet");
229
+ }
230
+ set justifyContentTablet(e) {
231
+ s(this, "justify-content--tablet", e);
232
+ }
233
+ get justifyContentLaptop() {
234
+ return this.getAttribute("justify-content--laptop");
235
+ }
236
+ set justifyContentLaptop(e) {
237
+ s(this, "justify-content--laptop", e);
238
+ }
239
+ get justifyContentDesktop() {
240
+ return this.getAttribute("justify-content--desktop");
241
+ }
242
+ set justifyContentDesktop(e) {
243
+ s(this, "justify-content--desktop", e);
244
+ }
245
+ get alignItems() {
246
+ return this.getAttribute("align-items");
247
+ }
248
+ set alignItems(e) {
249
+ s(this, "align-items", e);
250
+ }
251
+ get alignItemsMobile() {
252
+ return this.getAttribute("align-items--mobile");
253
+ }
254
+ set alignItemsMobile(e) {
255
+ s(this, "align-items--mobile", e);
256
+ }
257
+ get alignItemsTablet() {
258
+ return this.getAttribute("align-items--tablet");
259
+ }
260
+ set alignItemsTablet(e) {
261
+ s(this, "align-items--tablet", e);
262
+ }
263
+ get alignItemsLaptop() {
264
+ return this.getAttribute("align-items--laptop");
265
+ }
266
+ set alignItemsLaptop(e) {
267
+ s(this, "align-items--laptop", e);
268
+ }
269
+ get alignItemsDesktop() {
270
+ return this.getAttribute("align-items--desktop");
271
+ }
272
+ set alignItemsDesktop(e) {
273
+ s(this, "align-items--desktop", e);
274
+ }
275
+ get wrap() {
276
+ return this.getAttribute("wrap");
277
+ }
278
+ set wrap(e) {
279
+ s(this, "wrap", e);
280
+ }
281
+ get wrapMobile() {
282
+ return this.getAttribute("wrap--mobile");
283
+ }
284
+ set wrapMobile(e) {
285
+ s(this, "wrap--mobile", e);
286
+ }
287
+ get wrapTablet() {
288
+ return this.getAttribute("wrap--tablet");
289
+ }
290
+ set wrapTablet(e) {
291
+ s(this, "wrap--tablet", e);
292
+ }
293
+ get wrapLaptop() {
294
+ return this.getAttribute("wrap--laptop");
295
+ }
296
+ set wrapLaptop(e) {
297
+ s(this, "wrap--laptop", e);
298
+ }
299
+ get wrapDesktop() {
300
+ return this.getAttribute("wrap--desktop");
301
+ }
302
+ set wrapDesktop(e) {
303
+ s(this, "wrap--desktop", e);
304
+ }
305
+ get overflowX() {
306
+ return this.getAttribute("overflow-x");
307
+ }
308
+ set overflowX(e) {
309
+ s(this, "overflow-x", e);
310
+ }
311
+ get overflowXMobile() {
312
+ return this.getAttribute("overflow-x--mobile");
313
+ }
314
+ set overflowXMobile(e) {
315
+ s(this, "overflow-x--mobile", e);
316
+ }
317
+ get overflowXTablet() {
318
+ return this.getAttribute("overflow-x--tablet");
319
+ }
320
+ set overflowXTablet(e) {
321
+ s(this, "overflow-x--tablet", e);
322
+ }
323
+ get overflowXLaptop() {
324
+ return this.getAttribute("overflow-x--laptop");
325
+ }
326
+ set overflowXLaptop(e) {
327
+ s(this, "overflow-x--laptop", e);
328
+ }
329
+ get overflowXDesktop() {
330
+ return this.getAttribute("overflow-x--desktop");
331
+ }
332
+ set overflowXDesktop(e) {
333
+ s(this, "overflow-x--desktop", e);
334
+ }
335
+ get $el() {
336
+ return this.shadowRoot.querySelector(".flex-container");
337
+ }
338
+ };
339
+ customElements.get("px-stack") || customElements.define("px-stack", h);
340
+ var g = class extends h {
341
+ constructor() {
342
+ super();
343
+ }
344
+ connectedCallback() {
345
+ super.connectedCallback(), this.direction = "column", this.directionMobile = "column", this.directionTablet = "column", this.directionLaptop = "column", this.directionDesktop = "column";
346
+ }
347
+ };
348
+ customElements.get("px-vstack") || customElements.define("px-vstack", g);
349
+ var _ = class extends h {
350
+ constructor() {
351
+ super();
352
+ }
353
+ connectedCallback() {
354
+ super.connectedCallback(), this.direction = "row", this.directionMobile = "row", this.directionTablet = "row", this.directionLaptop = "row", this.directionDesktop = "row";
355
+ }
356
+ };
357
+ customElements.get("px-hstack") || customElements.define("px-hstack", _);
358
+ //#endregion
359
+ //#region ../Layout/src/Spacer.ts
360
+ var v = class extends HTMLElement {
361
+ constructor() {
362
+ super(), this.isZeroSized = !1, this.growValue = "1", this.isVertical = !1;
363
+ }
364
+ static get observedAttributes() {
365
+ return ["grow", "nogap"];
366
+ }
367
+ attributeChangedCallback(e, t, n) {
368
+ e === "grow" && (this.growValue = n || "1", this.isZeroSized || (this.style.flexGrow = this.growValue), this.scheduleRecheck());
369
+ }
370
+ connectedCallback() {
371
+ this.growValue = this.getAttribute("grow") || "1", this.style.flexGrow = this.growValue, this.nogap && this.parentElement && (this.resizeObserver = new ResizeObserver(() => {
372
+ this.handleSizeChange();
373
+ }), this.isVertical = this.parentElement.localName === "px-vstack" || this.parentElement.style.flexDirection === "column", this.resizeObserver.observe(this), this.scheduleRecheck());
374
+ }
375
+ disconnectedCallback() {
376
+ this.resizeObserver?.disconnect(), this.recheckHandle &&= (cancelAnimationFrame(this.recheckHandle), void 0);
377
+ }
378
+ get grow() {
379
+ return this.getAttribute("grow");
380
+ }
381
+ set grow(e) {
382
+ this.setAttribute("grow", `${e}`);
383
+ }
384
+ scheduleRecheck() {
385
+ this.recheckHandle && cancelAnimationFrame(this.recheckHandle), this.recheckHandle = requestAnimationFrame(() => {
386
+ this.recheckHandle = void 0, this.recalculateVisibility();
387
+ });
388
+ }
389
+ recalculateVisibility() {
390
+ this.isConnected && (this.style.display = "", this.style.flexGrow = this.growValue, this.handleSizeChange());
391
+ }
392
+ handleSizeChange() {
393
+ let e = this.getBoundingClientRect(), t = e.width === 0 && !this.isVertical || e.height === 0 && this.isVertical;
394
+ this.isZeroSized !== t && (this.isZeroSized = t, this.updateParticipation());
395
+ }
396
+ updateParticipation() {
397
+ this.isZeroSized ? (this.style.display = "none", this.style.flexGrow = "0") : (this.style.display = "", this.style.flexGrow = this.growValue);
398
+ }
399
+ get nogap() {
400
+ return this.hasAttribute("nogap");
401
+ }
402
+ set nogap(e) {
403
+ e ? this.setAttribute("nogap", "") : this.removeAttribute("nogap");
404
+ }
405
+ };
406
+ customElements.get("px-spacer") || customElements.define("px-spacer", v);
407
+ //#endregion
408
+ //#region ../Layout/src/Page.css?inline
409
+ var y = ":host{box-sizing:border-box;display:block}slot[name=body-container]{min-height:100vh}#image-sticky-box{margin-top:-2.5rem}", b = new CSSStyleSheet();
410
+ b.replaceSync(y);
411
+ var x = class extends t {
412
+ constructor() {
413
+ super(b), this.template = () => `
393
414
  <px-container border-radius="none" padding="none">
394
415
  <px-vstack>
395
416
  <px-container id="header-container" border-radius="none">
@@ -426,15 +447,6 @@ class D extends n {
426
447
  <px-spacer></px-spacer>
427
448
  </px-hstack>
428
449
  </px-container>
429
- ${t ? ` <px-hstack>
430
- <px-spacer></px-spacer>
431
- <px-container border-radius="none" box-shadow="xl" id="image-sticky-box" border="s" grow="${this.grow}" basis="${this.basis}" border-radius="m">
432
- <px-vstack gap="s">
433
- <slot name="image-sticky-container"></slot>
434
- </px-vstack>
435
- </px-container>
436
- <px-spacer></px-spacer>
437
- </px-hstack>` : ""}
438
450
  <px-container
439
451
  id="body-container"
440
452
  id="main"
@@ -491,534 +503,462 @@ class D extends n {
491
503
  </px-container>
492
504
  </px-vstack>
493
505
  </px-container>
494
- `, this.shadowRoot.innerHTML = this.template(!!this.$imageStickySlot);
495
- }
496
- static get observedAttributes() {
497
- return [
498
- ...super.observedAttributes,
499
- "background-image",
500
- "gap",
501
- "background-color",
502
- "padding-vertical",
503
- "padding-horizontal"
504
- ];
505
- }
506
- get $wideImage() {
507
- return this.shadowRoot.querySelector("#image-box");
508
- }
509
- get $bodyVStackContainer() {
510
- return this.shadowRoot.querySelector("#header-vstack-container");
511
- }
512
- get $bodyContainer() {
513
- return this.shadowRoot.querySelector("#body-container");
514
- }
515
- get $contactContainer() {
516
- return this.shadowRoot.querySelector("#contact-container");
517
- }
518
- get $footerContainer() {
519
- return this.shadowRoot.querySelector("#footer-container");
520
- }
521
- get $headerContainer() {
522
- return this.shadowRoot.querySelector("#header-container");
523
- }
524
- get $imageContainer() {
525
- return this.shadowRoot.querySelector("#image-container");
526
- }
527
- get backgroundImage() {
528
- return this.getAttribute("background-image");
529
- }
530
- get $imageStickySlot() {
531
- return this.querySelector('*[slot="image-sticky-container"]');
532
- }
533
- get $main() {
534
- return this.shadowRoot.querySelector("#main");
535
- }
536
- get backgroundColor() {
537
- return this.getAttribute("background-color") || "none";
538
- }
539
- get paddingVertical() {
540
- return this.getAttribute("padding-vertical");
541
- }
542
- get paddingHorizontal() {
543
- return this.getAttribute("padding-horizontal");
544
- }
545
- set paddingVertical(t) {
546
- this.setAttribute("padding-vertical", t);
547
- }
548
- set paddingHorizontal(t) {
549
- this.setAttribute("padding-horizontal", t);
550
- }
551
- get gap() {
552
- return this.getAttribute("gap");
553
- }
554
- connectedCallback() {
555
- this.handlePaddingVerticalChange(this.paddingVertical), this.handlePaddingHorizontalChange(this.paddingHorizontal);
556
- }
557
- attributeChangedCallback(t, e, i) {
558
- if (e !== i)
559
- switch (t) {
560
- case "background-image":
561
- this.$imageContainer.setAttribute("background-image", i);
562
- break;
563
- case "gap":
564
- this.$bodyVStackContainer.setAttribute("gap", i);
565
- break;
566
- case "background-color":
567
- this.$bodyContainer.setAttribute(
568
- "background-color",
569
- k.indexOf(i) > 0 ? i : "none"
570
- );
571
- break;
572
- case "padding-vertical":
573
- this.handlePaddingVerticalChange(i);
574
- break;
575
- case "padding-horizontal":
576
- this.handlePaddingHorizontalChange(i);
577
- break;
578
- default:
579
- super.attributeChangedCallback(t, e, i);
580
- }
581
- }
582
- handlePaddingVerticalChange(t) {
583
- this.$headerContainer.setAttribute("padding-top", t), this.$footerContainer.setAttribute("padding-bottom", t);
584
- }
585
- handlePaddingHorizontalChange(t) {
586
- this.$headerContainer.paddingLeft = t, this.$headerContainer.paddingRight = t, this.$bodyContainer.paddingLeft = t, this.$bodyContainer.paddingRight = t, this.$contactContainer.paddingLeft = t, this.$contactContainer.paddingRight = t, this.$footerContainer.paddingLeft = t, this.$footerContainer.paddingRight = t, this.$imageContainer.paddingLeft = t, this.$imageContainer.paddingRight = t;
587
- }
588
- }
589
- customElements.get("px-page") === void 0 && customElements.define("px-page", D);
590
- const z = ':host{display:block;font-family:var(--px-font-family);font-size:var(--px-font-size-base)}:host *{box-sizing:border-box}.selectable-box{display:flex;flex-direction:column;height:100%}::slotted([slot="media"]){width:100%;height:auto}.info{display:flex;flex-grow:1}.info .info__body{display:flex;flex-direction:column;flex-basis:80%;gap:var(--px-spacing-default-mobile);padding:var(--px-padding-m-mobile);flex-grow:1}.info .info__body .header{display:flex;align-items:center;gap:var(--px-spacing-s-mobile);flex-grow:1}.info .info__body .header .titles{display:flex;flex-direction:column;gap:var(--px-spacing-xs-mobile)}.info .info__body .header .titles ::slotted([slot="title"]){font-size:var(--px-text-size-label-m-mobile);font-weight:var(--px-font-weight-title);line-height:var(--px-line-height-ratio-l);color:var(--px-color-text-neutral-default);flex-grow:1}.info .info__body .header .titles ::slotted([slot="description"]){font-size:var(--px-text-size-label-m-mobile);font-weight:var(--px-font-weight-body);line-height:var(--px-line-height-ratio-l);color:var(--px-color-text-dimmed-default);flex-grow:1}.info .info__body ::slotted([slot="content"]){color:var(--px-color-text-neutral-default)}.info .info__footer{display:flex;align-items:center;padding:var(--px-padding-s-mobile);background:var(--px-color-background-container-default-default);text-align:center}:host([hide-footer]) .info .info__body{flex-basis:auto}:host([hide-footer]) .info__footer{display:none}@media only screen and (min-width: 48em){.info{flex-direction:column}.info .info__body{flex-basis:auto;gap:var(--px-spacing-default-tablet);padding:var(--px-padding-m-tablet)}.info .info__body .header{gap:var(--px-spacing-s-tablet)}.info .info__body .header .titles{gap:var(--px-spacing-xs-tablet)}.info .info__body .header .titles ::slotted([slot="title"]){font-size:var(--px-text-size-label-m-tablet)}.info .info__body .header .titles ::slotted([slot="description"]){font-size:var(--px-text-size-label-m-tablet)}.info .info__footer{justify-content:center;padding:var(--px-padding-s-tablet)}}@media only screen and (min-width: 64.0625em){.info .info__body{gap:var(--px-spacing-default-laptop);padding:var(--px-padding-m-laptop)}.info .info__body .header{gap:var(--px-spacing-s-laptop)}.info .info__body .header .titles{gap:var(--px-spacing-xs-laptop)}.info .info__body .header .titles ::slotted([slot="title"]){font-size:var(--px-text-size-label-m-laptop)}.info .info__body .header .titles ::slotted([slot="description"]){font-size:var(--px-text-size-label-m-laptop)}.info .info__footer{padding:var(--px-padding-s-laptop)}}@media only screen and (min-width: 90.0625em){.info .info__body{gap:var(--px-spacing-default-desktop);padding:var(--px-padding-m-desktop)}.info .info__body .header{gap:var(--px-spacing-s-desktop)}.info .info__body .header .titles{gap:var(--px-spacing-xs-desktop)}.info .info__body .header .titles ::slotted([slot="title"]){font-size:var(--px-text-size-label-m-desktop)}.info .info__body .header .titles ::slotted([slot="description"]){font-size:var(--px-text-size-label-m-desktop)}.info .info__footer{padding:var(--px-padding-s-desktop)}}:host([inverted]) .info .info__body .header .titles ::slotted([slot="title"]){color:var(--px-color-text-neutral-inverted)}:host([inverted]) .info .info__body .header .titles ::slotted([slot="description"]){color:var(--px-color-text-dimmed-inverted)}:host([inverted]) .info .info__body ::slotted([slot="content"]){color:var(--px-color-text-neutral-inverted)}:host([inverted]) .info .info__footer{background:var(--px-color-background-container-default-inverted)}', p = new CSSStyleSheet();
591
- p.replaceSync(z);
592
- class R extends n {
593
- template() {
594
- return `
595
- <div class="selectable-box">
596
- <slot name="media"></slot>
597
- <div class="info">
598
- <div class="info__body">
599
- <div class="header">
600
- <slot name="action"></slot>
601
- <slot name="icon"></slot>
602
- <slot name="logo"></slot>
603
- <div class="titles">
604
- <slot name="title"></slot>
605
- <slot name="description"></slot>
606
- </div>
607
- </div>
608
- <slot name="content"></slot>
609
- </div>
610
- <div class="info__footer">
611
- <slot name="footer"></slot>
612
- </div>
613
- </div>
614
- </div>
615
- `;
616
- }
617
- constructor() {
618
- super(p), this.shadowRoot.innerHTML = this.template();
619
- }
620
- connectedCallback() {
621
- }
622
- static get observedAttributes() {
623
- return [...super.observedAttributes, "inverted", "hide-footer"];
624
- }
625
- attributeChangedCallback(t, e, i) {
626
- if (e !== i)
627
- switch (t) {
628
- default:
629
- super.attributeChangedCallback(t, e, i);
630
- break;
631
- }
632
- }
633
- get $el() {
634
- return this.shadowRoot.querySelector(".selectable-box");
635
- }
636
- get inverted() {
637
- return this.hasAttribute("inverted");
638
- }
639
- set inverted(t) {
640
- t ? this.setAttribute("inverted", "") : this.removeAttribute("inverted");
641
- }
642
- get hideFooter() {
643
- return this.hasAttribute("hide-footer");
644
- }
645
- set hideFooter(t) {
646
- t ? this.setAttribute("hide-footer", "") : this.removeAttribute("hide-footer");
647
- }
648
- }
649
- customElements.get("px-selectable-box") || customElements.define("px-selectable-box", R);
650
- const u = ':host{display:block;outline:none}:host *{box-sizing:border-box}.selectable-box-checkbox,.selectable-box-radio{box-sizing:border-box;height:100%;cursor:default;border-radius:var(--px-radius-main);overflow:hidden;--btn-transition: all .2s ease-in-out 0s;transition:var(--btn-transition);border:var(--px-size-border-m) solid transparent;outline-color:var(--px-color-border-focus-outline-default);outline-width:var(--px-focus-outline-mobile)}.selectable-box-checkbox px-selectable-box,.selectable-box-radio px-selectable-box{height:100%;background-color:var(--px-color-background-container-light-default)}:host(:not([disabled])):host(:hover) .selectable-box-checkbox,:host(:not([disabled])):host(:hover) .selectable-box-radio{border-color:var(--px-color-border-state-hover-default)}:host(:not([disabled])):host(:hover) .selectable-box-checkbox px-selectable-box,:host(:not([disabled])):host(:hover) .selectable-box-radio px-selectable-box{background-color:var( --px-color-background-state-hover-bordered-default )}:host(:not([disabled])):host(:focus-visible) .selectable-box-checkbox,:host(:not([disabled])):host(:focus-visible) .selectable-box-radio{outline-offset:var(--px-focus-offset-mobile);outline-style:solid}:host([checked]) .selectable-box-checkbox,:host([checked]) .selectable-box-radio{border-color:var(--px-color-border-state-active-default)}:host([disabled]) .selectable-box-checkbox,:host([disabled]) .selectable-box-radio{cursor:default;pointer-events:none}:host([disabled]) .selectable-box-checkbox px-selectable-box,:host([disabled]) .selectable-box-radio px-selectable-box{background-color:var(--px-color-background-state-disabled-default)}:host([disabled]) ::slotted([slot="title"]),:host([disabled]) ::slotted([slot="description"]),:host([disabled]) ::slotted([slot="content"]){color:var(--px-color-text-state-disabled-default)}@media only screen and (min-width: 48em){.selectable-box-checkbox,.selectable-box-radio{outline-width:var(--px-focus-outline-tablet)}}@media only screen and (min-width: 64.0625em){.selectable-box-checkbox,.selectable-box-radio{outline-width:var(--px-focus-outline-laptop)}}@media only screen and (min-width: 90.0625em){.selectable-box-checkbox,.selectable-box-radio{outline-width:var(--px-focus-outline-desktop)}}:host([inverted]) .selectable-box-checkbox,:host([inverted]) .selectable-box-radio{outline-color:var(--px-color-border-focus-outline-inverted)}:host([inverted]) .selectable-box-checkbox px-selectable-box,:host([inverted]) .selectable-box-radio px-selectable-box{background-color:var(--px-color-background-container-light-inverted)}:host([inverted]):host(:not([disabled])):host(:hover) .selectable-box-checkbox,:host([inverted]):host(:not([disabled])):host(:hover) .selectable-box-radio{border-color:var(--px-color-border-state-hover-inverted)}:host([inverted]):host(:not([disabled])):host(:hover) .selectable-box-checkbox px-selectable-box,:host([inverted]):host(:not([disabled])):host(:hover) .selectable-box-radio px-selectable-box{background-color:var( --px-color-background-state-hover-bordered-inverted )}:host([inverted]):host([checked]) .selectable-box-checkbox,:host([inverted]):host([checked]) .selectable-box-radio{border-color:var(--px-color-border-state-active-inverted)}:host([inverted]):host([disabled]) .selectable-box-checkbox px-selectable-box,:host([inverted]):host([disabled]) .selectable-box-radio px-selectable-box{background-color:var(--px-color-background-state-disabled-inverted)}:host([inverted]):host([disabled]) ::slotted([slot="title"]),:host([inverted]):host([disabled]) ::slotted([slot="description"]),:host([inverted]):host([disabled]) ::slotted([slot="content"]){color:var(--px-color-text-state-disabled-inverted)}', g = new CSSStyleSheet();
651
- g.replaceSync(u);
652
- class F extends n {
653
- template() {
654
- return `
655
- <div class="selectable-box-checkbox">
656
- <px-selectable-box>
657
- <slot name="media" slot="media"></slot>
658
- <px-checkbox
659
- slot="action" aria-hidden="true" tabindex="-1"
660
- name="${this.name}"
661
- value="${this.value}"
662
- ></px-checkbox>
663
- <slot name="icon" slot="icon"></slot>
664
- <slot name="logo" slot="logo"></slot>
665
- <slot name="title" slot="title"></slot>
666
- <slot name="description" slot="description"></slot>
667
- <slot name="content" slot="content"></slot>
668
- <slot name="footer" slot="footer"></slot>
669
- </px-selectable-box>
670
- </div>
671
- `;
672
- }
673
- constructor() {
674
- var t;
675
- super(g), this.shadowRoot.innerHTML = this.template(), this.internals = (t = this.attachInternals) == null ? void 0 : t.call(this), this.tabIndex = 0, this.internals && (this.internals.role = "checkbox", this.internals.ariaChecked = `${this.checked}`);
676
- }
677
- connectedCallback() {
678
- this.toggleFooterVisibility(), this.$slotFooter.addEventListener("slotchange", () => {
679
- this.toggleFooterVisibility();
680
- }), this.addEventListener("mouseover", () => {
681
- this.setHoverAttribute();
682
- }), this.addEventListener("mouseout", () => {
683
- this.removeHoverAttribute();
684
- }), this.addEventListener("keypress", (t) => {
685
- this.setKeypressEvent(t);
686
- }), this.addEventListener("click", (t) => {
687
- this.setClickEvent(t);
688
- }), this.hasAttribute("checked") && (this.checked = !0);
689
- }
690
- static get observedAttributes() {
691
- return [
692
- ...super.observedAttributes,
693
- "inverted",
694
- "name",
695
- "value",
696
- "checked",
697
- "disabled"
698
- ];
699
- }
700
- attributeChangedCallback(t, e, i) {
701
- if (e !== i)
702
- switch (t) {
703
- case "inverted":
704
- this.inverted ? (this.$selectableBox.setAttribute("inverted", ""), this.$checkbox.setAttribute("inverted", "")) : (this.$selectableBox.removeAttribute("inverted"), this.$checkbox.removeAttribute("inverted"));
705
- break;
706
- case "name":
707
- case "value":
708
- this.$checkbox && this.$checkbox.setAttribute(t, i);
709
- break;
710
- case "disabled":
711
- this.handleDisabledAttributeChange(i !== null);
712
- break;
713
- case "checked":
714
- this.handleCheckedAttributeChange(i);
715
- break;
716
- default:
717
- super.attributeChangedCallback(t, e, i);
718
- break;
719
- }
720
- }
721
- disconnectedCallback() {
722
- this.$slotFooter.removeEventListener(
723
- "slotchange",
724
- this.toggleFooterVisibility
725
- ), this.removeEventListener("mouseover", () => {
726
- this.setHoverAttribute();
727
- }), this.removeEventListener("mouseout", () => {
728
- this.removeHoverAttribute();
729
- }), this.removeEventListener("keypress", (t) => {
730
- this.setKeypressEvent(t);
731
- }), this.removeEventListener("click", (t) => {
732
- this.setClickEvent(t);
733
- });
734
- }
735
- removeHoverAttribute() {
736
- this.$checkbox.removeAttribute("hover");
737
- }
738
- setHoverAttribute() {
739
- this.$checkbox.setAttribute("hover", "");
740
- }
741
- setKeypressEvent(t) {
742
- switch (t.stopPropagation(), t.preventDefault(), t.code) {
743
- case "Space":
744
- this.click();
745
- break;
746
- }
747
- }
748
- setClickEvent(t) {
749
- this.checked = !this.checked, t.stopPropagation(), t.preventDefault();
750
- }
751
- toggleFooterVisibility() {
752
- this.$slottedFooter ? this.$selectableBox.removeAttribute("hide-footer") : this.$selectableBox.setAttribute("hide-footer", "");
753
- }
754
- handleDisabledAttributeChange(t) {
755
- t ? (this.disabled = !0, this.internals && (this.internals.ariaDisabled = "true"), this.$checkbox.setAttribute("disabled", "")) : (this.disabled = !1, this.internals && (this.internals.ariaDisabled = "false"), this.$checkbox.removeAttribute("disabled"));
756
- }
757
- handleCheckedAttributeChange(t) {
758
- var e;
759
- (e = this.internals) == null || e.setFormValue(this.formData()), t === null ? (this.internals && (this.internals.ariaChecked = "false"), this.checked = !1, this.$checkbox && this.$checkbox.removeAttribute("checked")) : (this.internals && (this.internals.ariaChecked = "true"), this.checked = !0, this.$checkbox && this.$checkbox.setAttribute("checked", ""), this.dispatchEvent(
760
- new Event("change", {
761
- bubbles: !0,
762
- composed: !0
763
- // Allow the event to pass through shadow DOM boundaries
764
- })
765
- ));
766
- }
767
- // Form-associated callbacks
768
- static get formAssociated() {
769
- return !0;
770
- }
771
- // Set default behavior when the element is attached to a form
772
- formResetCallback() {
773
- this.checked = !1;
774
- }
775
- formStateRestoreCallback(t) {
776
- this.checked = t;
777
- }
778
- formData() {
779
- if (this.name) {
780
- const t = new FormData(), e = this.getAttribute("name");
781
- return e && (this.checked ? t.set(e, this.value) : t.delete(e)), t;
782
- }
783
- }
784
- get $el() {
785
- return this.shadowRoot.querySelector(
786
- ".selectable-box-checkbox"
787
- );
788
- }
789
- get $selectableBox() {
790
- return this.shadowRoot.querySelector("px-selectable-box");
791
- }
792
- get $checkbox() {
793
- return this.shadowRoot.querySelector("px-checkbox");
794
- }
795
- get $slotFooter() {
796
- return this.shadowRoot.querySelector(
797
- 'slot[name="footer"]'
798
- );
799
- }
800
- get $slottedFooter() {
801
- return this.querySelector('[slot="footer"]');
802
- }
803
- get inverted() {
804
- return this.hasAttribute("inverted");
805
- }
806
- set inverted(t) {
807
- t ? this.setAttribute("inverted", "") : this.removeAttribute("inverted");
808
- }
809
- get checked() {
810
- return this.hasAttribute("checked");
811
- }
812
- set checked(t) {
813
- t ? this.setAttribute("checked", "") : this.removeAttribute("checked");
814
- }
815
- get name() {
816
- return this.getAttribute("name");
817
- }
818
- set name(t) {
819
- t ? this.setAttribute("name", t) : this.removeAttribute("name");
820
- }
821
- get disabled() {
822
- return this.hasAttribute("disabled");
823
- }
824
- set disabled(t) {
825
- t ? this.setAttribute("disabled", "") : this.removeAttribute("disabled");
826
- }
827
- get value() {
828
- return this.getAttribute("value");
829
- }
830
- set value(t) {
831
- t ? this.setAttribute("value", t) : this.removeAttribute("value");
832
- }
833
- }
834
- customElements.get("px-selectable-box-checkbox") || customElements.define("px-selectable-box-checkbox", F);
835
- const x = new CSSStyleSheet();
836
- x.replaceSync(u);
837
- class H extends n {
838
- template() {
839
- return `
840
- <div class="selectable-box-radio">
841
- <px-selectable-box>
842
- <slot name="media" slot="media"></slot>
843
- <px-radio-base
844
- slot="action" aria-hidden="true" tabindex="-1"
845
- name="${this.name}"
846
- value="${this.value}"
847
- ></px-radio-base>
848
- <slot name="icon" slot="icon"></slot>
849
- <slot name="logo" slot="logo"></slot>
850
- <slot name="title" slot="title"></slot>
851
- <slot name="description" slot="description"></slot>
852
- <slot name="content" slot="content"></slot>
853
- <slot name="footer" slot="footer"></slot>
854
- </px-selectable-box>
855
- </div>
856
- `;
857
- }
858
- constructor() {
859
- var t, e;
860
- super(x), this.shadowRoot.innerHTML = this.template(), this.internals = (t = this.attachInternals) == null ? void 0 : t.call(this), this.tabIndex = ((e = this.parentElement) == null ? void 0 : e.firstElementChild) === this ? 0 : -1, this.internals && (this.internals.role = "radio", this.internals.ariaChecked = `${this.checked}`);
861
- }
862
- connectedCallback() {
863
- this.toggleFooterVisibility(), this.$slotFooter.addEventListener("slotchange", () => {
864
- this.toggleFooterVisibility();
865
- }), this.addEventListener("mouseover", () => {
866
- this.setHoverAttribute();
867
- }), this.addEventListener("mouseout", () => {
868
- this.removeHoverAttribute();
869
- }), this.addEventListener("keypress", (t) => {
870
- this.setKeypressEvent(t);
871
- }), this.addEventListener("click", (t) => {
872
- this.setClickEvent(t);
873
- }), this.hasAttribute("checked") && (this.checked = !0);
874
- }
875
- static get observedAttributes() {
876
- return [
877
- ...super.observedAttributes,
878
- "inverted",
879
- "name",
880
- "value",
881
- "checked",
882
- "disabled"
883
- ];
884
- }
885
- attributeChangedCallback(t, e, i) {
886
- if (e !== i)
887
- switch (t) {
888
- case "inverted":
889
- this.inverted ? (this.$selectableBox.setAttribute("inverted", ""), this.$radio.setAttribute("inverted", "")) : (this.$selectableBox.removeAttribute("inverted"), this.$radio.removeAttribute("inverted"));
890
- break;
891
- case "name":
892
- case "value":
893
- this.$radio && this.$radio.setAttribute(t, i);
894
- break;
895
- case "disabled":
896
- this.handleDisabledAttributeChange(i !== null);
897
- break;
898
- case "checked":
899
- this.handleCheckedAttributeChange(i);
900
- break;
901
- default:
902
- super.attributeChangedCallback(t, e, i);
903
- break;
904
- }
905
- }
906
- disconnectedCallback() {
907
- this.$slotFooter.removeEventListener(
908
- "slotchange",
909
- this.toggleFooterVisibility
910
- ), this.removeEventListener("mouseover", () => {
911
- this.setHoverAttribute();
912
- }), this.removeEventListener("mouseout", () => {
913
- this.removeHoverAttribute();
914
- }), this.removeEventListener("keypress", (t) => {
915
- this.setKeypressEvent(t);
916
- }), this.removeEventListener("click", (t) => {
917
- this.setClickEvent(t);
918
- });
919
- }
920
- removeHoverAttribute() {
921
- this.$radio.removeAttribute("hover");
922
- }
923
- setHoverAttribute() {
924
- this.$radio.setAttribute("hover", "");
925
- }
926
- setKeypressEvent(t) {
927
- switch (t.preventDefault(), t.code) {
928
- case "Space":
929
- this.click();
930
- break;
931
- }
932
- }
933
- setClickEvent(t) {
934
- this.checked || (this.checked = !0), t.stopPropagation(), t.preventDefault();
935
- }
936
- toggleFooterVisibility() {
937
- this.$slottedFooter ? this.$selectableBox.removeAttribute("hide-footer") : this.$selectableBox.setAttribute("hide-footer", "");
938
- }
939
- handleDisabledAttributeChange(t) {
940
- t ? (this.disabled = !0, this.internals && (this.internals.ariaDisabled = "true"), this.$radio.setAttribute("disabled", "")) : (this.disabled = !1, this.internals && (this.internals.ariaDisabled = "false"), this.$radio.removeAttribute("disabled"));
941
- }
942
- handleCheckedAttributeChange(t) {
943
- var e;
944
- (e = this.internals) == null || e.setFormValue(this.formData()), t === null ? (this.internals && (this.internals.ariaChecked = "false"), this.setAttribute("tabIndex", "-1"), this.checked = !1, this.$radio && this.$radio.removeAttribute("checked")) : (this.internals && (this.internals.ariaChecked = "true"), this.setAttribute("tabIndex", "0"), this.checked = !0, this.$radio && this.$radio.setAttribute("checked", ""), this.dispatchEvent(
945
- new Event("change", {
946
- bubbles: !0,
947
- composed: !0
948
- // Allow the event to pass through shadow DOM boundaries
949
- })
950
- ));
951
- }
952
- // Form-associated callbacks
953
- static get formAssociated() {
954
- return !0;
955
- }
956
- // Set default behavior when the element is attached to a form
957
- formResetCallback() {
958
- this.checked = !1;
959
- }
960
- formStateRestoreCallback(t) {
961
- this.checked = t;
962
- }
963
- formData() {
964
- if (this.name) {
965
- const t = new FormData(), e = this.getAttribute("name");
966
- return e && (this.checked ? t.set(e, this.value) : t.delete(e)), t;
967
- }
968
- }
969
- get $el() {
970
- return this.shadowRoot.querySelector(
971
- ".selectable-box-radio"
972
- );
973
- }
974
- get $selectableBox() {
975
- return this.shadowRoot.querySelector("px-selectable-box");
976
- }
977
- get $radio() {
978
- return this.shadowRoot.querySelector("px-radio-base");
979
- }
980
- get $slotFooter() {
981
- return this.shadowRoot.querySelector(
982
- 'slot[name="footer"]'
983
- );
984
- }
985
- get $slottedFooter() {
986
- return this.querySelector('[slot="footer"]');
987
- }
988
- get inverted() {
989
- return this.hasAttribute("inverted");
990
- }
991
- set inverted(t) {
992
- t ? this.setAttribute("inverted", "") : this.removeAttribute("inverted");
993
- }
994
- get checked() {
995
- return this.hasAttribute("checked");
996
- }
997
- set checked(t) {
998
- t ? this.setAttribute("checked", "") : this.removeAttribute("checked");
999
- }
1000
- get name() {
1001
- return this.getAttribute("name");
1002
- }
1003
- set name(t) {
1004
- t ? this.setAttribute("name", t) : this.removeAttribute("name");
1005
- }
1006
- get disabled() {
1007
- return this.hasAttribute("disabled");
1008
- }
1009
- set disabled(t) {
1010
- t ? this.setAttribute("disabled", "") : this.removeAttribute("disabled");
1011
- }
1012
- get value() {
1013
- return this.getAttribute("value");
1014
- }
1015
- set value(t) {
1016
- t ? this.setAttribute("value", t) : this.removeAttribute("value");
1017
- }
506
+ `, this.shadowRoot.innerHTML = this.template();
507
+ }
508
+ static get observedAttributes() {
509
+ return [
510
+ ...super.observedAttributes,
511
+ "background-image",
512
+ "gap",
513
+ "background-color",
514
+ "padding-vertical",
515
+ "padding-horizontal"
516
+ ];
517
+ }
518
+ get $wideImage() {
519
+ return this.shadowRoot.querySelector("#image-box");
520
+ }
521
+ get $bodyVStackContainer() {
522
+ return this.shadowRoot.querySelector("#header-vstack-container");
523
+ }
524
+ get $bodyContainer() {
525
+ return this.shadowRoot.querySelector("#body-container");
526
+ }
527
+ get $contactContainer() {
528
+ return this.shadowRoot.querySelector("#contact-container");
529
+ }
530
+ get $footerContainer() {
531
+ return this.shadowRoot.querySelector("#footer-container");
532
+ }
533
+ get $headerContainer() {
534
+ return this.shadowRoot.querySelector("#header-container");
535
+ }
536
+ get $imageContainer() {
537
+ return this.shadowRoot.querySelector("#image-container");
538
+ }
539
+ get backgroundImage() {
540
+ return this.getAttribute("background-image");
541
+ }
542
+ get $main() {
543
+ return this.shadowRoot.querySelector("#main");
544
+ }
545
+ get backgroundColor() {
546
+ return this.getAttribute("background-color") || "none";
547
+ }
548
+ get paddingVertical() {
549
+ return this.getAttribute("padding-vertical");
550
+ }
551
+ get paddingHorizontal() {
552
+ return this.getAttribute("padding-horizontal");
553
+ }
554
+ set paddingVertical(e) {
555
+ this.setAttribute("padding-vertical", `${e}`);
556
+ }
557
+ set paddingHorizontal(e) {
558
+ this.setAttribute("padding-horizontal", `${e}`);
559
+ }
560
+ get gap() {
561
+ return this.getAttribute("gap");
562
+ }
563
+ connectedCallback() {
564
+ this.handlePaddingVerticalChange(this.paddingVertical), this.handlePaddingHorizontalChange(this.paddingHorizontal);
565
+ }
566
+ attributeChangedCallback(e, t, r) {
567
+ if (t !== r) switch (e) {
568
+ case "background-image":
569
+ this.$imageContainer.setAttribute("background-image", r);
570
+ break;
571
+ case "gap":
572
+ this.$bodyVStackContainer.setAttribute("gap", r);
573
+ break;
574
+ case "background-color":
575
+ this.$bodyContainer.setAttribute("background-color", n.indexOf(r) > 0 ? r : "none");
576
+ break;
577
+ case "padding-vertical":
578
+ this.handlePaddingVerticalChange(r);
579
+ break;
580
+ case "padding-horizontal":
581
+ this.handlePaddingHorizontalChange(r);
582
+ break;
583
+ default: super.attributeChangedCallback(e, t, r);
584
+ }
585
+ }
586
+ handlePaddingVerticalChange(e) {
587
+ this.$bodyContainer.paddingTop = e, this.$bodyContainer.paddingBottom = e;
588
+ }
589
+ handlePaddingHorizontalChange(e) {
590
+ this.$headerContainer.paddingLeft = e, this.$headerContainer.paddingRight = e, this.$bodyContainer.paddingLeft = e, this.$bodyContainer.paddingRight = e, this.$contactContainer.paddingLeft = e, this.$contactContainer.paddingRight = e, this.$footerContainer.paddingLeft = e, this.$footerContainer.paddingRight = e, this.$imageContainer.paddingLeft = e, this.$imageContainer.paddingRight = e;
591
+ }
592
+ };
593
+ customElements.get("px-page") === void 0 && customElements.define("px-page", x);
594
+ //#endregion
595
+ //#region src/selectable-box.css?inline
596
+ var S = ":host{font-family:var(--px-font-family);font-size:var(--px-font-size-base);display:block}:host *{box-sizing:border-box}.selectable-box{flex-direction:column;height:100%;display:flex}::slotted([slot=media]){width:100%;height:auto}.info{flex-grow:1;display:flex}.info .info__body{gap:var(--px-spacing-default-mobile);padding:var(--px-padding-s-mobile);flex-direction:column;flex:7 1 0;display:flex}.info .info__body .header{align-items:center;gap:var(--px-spacing-s-mobile);display:flex}.info .info__body .header ::slotted([slot=action]),.info .info__body .header ::slotted([slot=icon]),.info .info__body .header ::slotted([slot=logo]){flex-shrink:0}.info .info__body .header .titles{gap:var(--px-spacing-xs-mobile);flex-direction:column;display:flex}.info .info__body .header .titles ::slotted([slot=title]){font-size:var(--px-text-size-label-m-mobile);font-weight:var(--px-font-weight-title);line-height:var(--px-line-height-ratio-l);color:var(--px-color-text-neutral-default);flex-grow:1}.info .info__body .header .titles ::slotted([slot=description]){font-size:var(--px-text-size-label-m-mobile);font-weight:var(--px-font-weight-body);line-height:var(--px-line-height-ratio-l);color:var(--px-color-text-dimmed-default);flex-grow:1}.info .info__body ::slotted([slot=content]){color:var(--px-color-text-neutral-default)}.info .info__footer{padding:var(--px-padding-s-mobile);background:var(--px-color-background-container-default-default);text-align:center;flex:3 1 0;align-items:center;display:flex}:host([hide-footer]) .info .info__body{flex-basis:auto}:host([hide-footer]) .info__footer{display:none}:host([footer-position=bottom]) .info{flex-direction:column}:host([footer-position=bottom]) .info__body{flex-basis:auto}:host([footer-position=bottom]) .info__footer{flex:none;justify-content:center}:host([footer-position=right]) .info{flex-direction:row}:host([footer-position=right]) .info__body{flex:7 1 0}:host([footer-position=right]) .info__footer{flex:3 1 0;align-items:center;display:flex}@media screen and (width>=48rem){.info{flex-direction:column}.info .info__body{gap:var(--px-spacing-default-tablet);padding:var(--px-padding-s-tablet);flex-basis:auto}.info .info__body .header{gap:var(--px-spacing-s-tablet)}.info .info__body .header .titles{gap:var(--px-spacing-xs-tablet)}.info .info__body .header .titles ::slotted([slot=title]),.info .info__body .header .titles ::slotted([slot=description]){font-size:var(--px-text-size-label-m-tablet)}.info .info__footer{padding:var(--px-padding-s-tablet);flex:none;justify-content:center}}@media screen and (width>=64.0625rem){.info .info__body{gap:var(--px-spacing-default-laptop);padding:var(--px-padding-s-laptop)}.info .info__body .header{gap:var(--px-spacing-s-laptop)}.info .info__body .header .titles{gap:var(--px-spacing-xs-laptop)}.info .info__body .header .titles ::slotted([slot=title]),.info .info__body .header .titles ::slotted([slot=description]){font-size:var(--px-text-size-label-m-laptop)}.info .info__footer{padding:var(--px-padding-s-laptop)}}@media screen and (width>=90.0625rem){.info .info__body{gap:var(--px-spacing-default-desktop);padding:var(--px-padding-s-desktop)}.info .info__body .header{gap:var(--px-spacing-s-desktop)}.info .info__body .header .titles{gap:var(--px-spacing-xs-desktop)}.info .info__body .header .titles ::slotted([slot=title]),.info .info__body .header .titles ::slotted([slot=description]){font-size:var(--px-text-size-label-m-desktop)}.info .info__footer{padding:var(--px-padding-s-desktop)}}:host([inverted]) .info .info__body .header .titles ::slotted([slot=title]){color:var(--px-color-text-neutral-inverted)}:host([inverted]) .info .info__body .header .titles ::slotted([slot=description]){color:var(--px-color-text-dimmed-inverted)}:host([inverted]) .info .info__body ::slotted([slot=content]){color:var(--px-color-text-neutral-inverted)}:host([inverted]) .info .info__footer{background:var(--px-color-background-container-default-inverted)}", C = new CSSStyleSheet();
597
+ C.replaceSync(S);
598
+ var w = [
599
+ "",
600
+ "right",
601
+ "bottom"
602
+ ], T = class extends t {
603
+ template() {
604
+ return "\n <div class=\"selectable-box\">\n <slot name=\"media\"></slot>\n <div class=\"info\">\n <div class=\"info__body\">\n <div class=\"header\">\n <slot name=\"action\"></slot>\n <slot name=\"icon\"></slot>\n <slot name=\"logo\"></slot>\n <div class=\"titles\">\n <slot name=\"title\"></slot>\n <slot name=\"description\"></slot>\n </div>\n </div>\n <slot name=\"content\"></slot>\n </div>\n <div class=\"info__footer\">\n <slot name=\"footer\"></slot>\n </div>\n </div>\n </div>\n ";
605
+ }
606
+ constructor() {
607
+ super(C), this.shadowRoot.innerHTML = this.template();
608
+ }
609
+ static get observedAttributes() {
610
+ return [
611
+ ...super.observedAttributes,
612
+ "inverted",
613
+ "hide-footer",
614
+ "footer-position"
615
+ ];
616
+ }
617
+ attributeChangedCallback(e, t, n) {
618
+ if (t !== n) switch (e) {
619
+ case "footer-position":
620
+ this.#e(n, w);
621
+ break;
622
+ default: super.attributeChangedCallback(e, t, n);
623
+ }
624
+ }
625
+ #e(e, t) {
626
+ if (!i(t, e)) {
627
+ o(`
628
+ "${e}" is not a valid footer-position value for ${this.tagName.toLowerCase()}.
629
+ Allowed values are: "${t.join("\", \"")}".
630
+ `);
631
+ return;
632
+ }
633
+ }
634
+ get $el() {
635
+ return this.shadowRoot.querySelector(".selectable-box");
636
+ }
637
+ get inverted() {
638
+ return this.hasAttribute("inverted");
639
+ }
640
+ set inverted(e) {
641
+ e ? this.setAttribute("inverted", "") : this.removeAttribute("inverted");
642
+ }
643
+ get hideFooter() {
644
+ return this.hasAttribute("hide-footer");
645
+ }
646
+ set hideFooter(e) {
647
+ e ? this.setAttribute("hide-footer", "") : this.removeAttribute("hide-footer");
648
+ }
649
+ get footerPosition() {
650
+ return this.getAttribute("footer-position") ?? "";
651
+ }
652
+ set footerPosition(e) {
653
+ e ? this.setAttribute("footer-position", e) : this.removeAttribute("footer-position");
654
+ }
655
+ };
656
+ customElements.get("px-selectable-box") || customElements.define("px-selectable-box", T);
657
+ //#endregion
658
+ //#region src/clickEventGuards.ts
659
+ var E = ["px-a", "px-button"];
660
+ function D(e, t, n = E) {
661
+ let r = new Set(n), i = e.composedPath();
662
+ for (let e of i) {
663
+ if (e === t) break;
664
+ if (e instanceof Element && r.has(e.tagName.toLowerCase())) return !0;
665
+ }
666
+ return !1;
1018
667
  }
1019
- customElements.get("px-selectable-box-radio") || customElements.define("px-selectable-box-radio", H);
1020
- export {
1021
- R as SelectableBox,
1022
- F as SelectableBoxCheckbox,
1023
- H as SelectableBoxRadio
668
+ //#endregion
669
+ //#region src/common.css?inline
670
+ var O = ":host{outline:none;display:block}:host *{box-sizing:border-box}.selectable-box-checkbox,.selectable-box-radio{box-sizing:border-box;cursor:pointer;border-radius:var(--px-radius-main);--btn-transition:all .2s ease-in-out 0s;height:100%;transition:var(--btn-transition);border:var(--px-size-border-m) solid var(--px-color-border-main-default);outline-color:var(--px-color-border-focus-outline-default);outline-width:var(--px-focus-outline-mobile);overflow:hidden}:is(.selectable-box-checkbox,.selectable-box-radio) px-selectable-box{background-color:var(--px-color-background-container-light-default);height:100%}:host([parent-has-anchor-full]) :is(.selectable-box-checkbox,.selectable-box-radio){border-radius:0 0 var(--px-radius-main) var(--px-radius-main)}:host(:not([disabled])):host(:hover) .selectable-box-checkbox,:host(:not([disabled])):host(:hover) .selectable-box-radio{border-color:var(--px-color-border-state-hover-default)}:is(:host(:not([disabled])):host(:hover) .selectable-box-checkbox,:host(:not([disabled])):host(:hover) .selectable-box-radio) px-selectable-box{background-color:var(--px-color-background-state-hover-bordered-default)}:host(:not([disabled])):host(:focus-visible) .selectable-box-checkbox,:host(:not([disabled])):host(:focus-visible) .selectable-box-radio{outline-offset:var(--px-focus-offset-mobile);outline-style:solid}:host([checked]) .selectable-box-checkbox,:host([checked]) .selectable-box-radio{border-color:var(--px-color-border-state-active-default)}:host([disabled]) .selectable-box-checkbox,:host([disabled]) .selectable-box-radio{cursor:default;pointer-events:none;border-color:#0000}:is(:host([disabled]) .selectable-box-checkbox,:host([disabled]) .selectable-box-radio) px-selectable-box{background-color:var(--px-color-background-state-disabled-default)}:host([disabled]) ::slotted([slot=title]),:host([disabled]) ::slotted([slot=description]),:host([disabled]) ::slotted([slot=content]){color:var(--px-color-text-state-disabled-default)}@media screen and (width>=48rem){.selectable-box-checkbox,.selectable-box-radio{outline-width:var(--px-focus-outline-tablet)}}@media screen and (width>=64.0625rem){.selectable-box-checkbox,.selectable-box-radio{outline-width:var(--px-focus-outline-laptop)}}@media screen and (width>=90.0625rem){.selectable-box-checkbox,.selectable-box-radio{outline-width:var(--px-focus-outline-desktop)}}:host([inverted]) .selectable-box-checkbox,:host([inverted]) .selectable-box-radio{border-color:var(--px-color-border-main-inverted);outline-color:var(--px-color-border-focus-outline-inverted)}:is(:host([inverted]) .selectable-box-checkbox,:host([inverted]) .selectable-box-radio) px-selectable-box{background-color:var(--px-color-background-container-light-inverted)}:host([inverted]):host(:not([disabled])):host(:hover) .selectable-box-checkbox,:host([inverted]):host(:not([disabled])):host(:hover) .selectable-box-radio{border-color:var(--px-color-border-state-hover-inverted)}:is(:host([inverted]):host(:not([disabled])):host(:hover) .selectable-box-checkbox,:host([inverted]):host(:not([disabled])):host(:hover) .selectable-box-radio) px-selectable-box{background-color:var(--px-color-background-state-hover-bordered-inverted)}:host([inverted]):host([checked]) .selectable-box-checkbox,:host([inverted]):host([checked]) .selectable-box-radio{border-color:var(--px-color-border-state-active-inverted)}:host([inverted]):host([disabled]) .selectable-box-checkbox,:host([inverted]):host([disabled]) .selectable-box-radio{border-color:#0000}:is(:host([inverted]):host([disabled]) .selectable-box-checkbox,:host([inverted]):host([disabled]) .selectable-box-radio) px-selectable-box{background-color:var(--px-color-background-state-disabled-inverted)}:host([inverted]):host([disabled]) ::slotted([slot=title]),:host([inverted]):host([disabled]) ::slotted([slot=description]),:host([inverted]):host([disabled]) ::slotted([slot=content]){color:var(--px-color-text-state-disabled-inverted)}", k = new CSSStyleSheet();
671
+ k.replaceSync(O);
672
+ var A = class extends t {
673
+ template() {
674
+ return "\n <div class=\"selectable-box-checkbox\">\n <px-selectable-box>\n <slot name=\"media\" slot=\"media\"></slot>\n <px-checkbox \n slot=\"action\" inert \n ></px-checkbox>\n <slot name=\"icon\" slot=\"icon\"></slot>\n <slot name=\"logo\" slot=\"logo\"></slot>\n <slot name=\"title\" slot=\"title\"></slot>\n <slot name=\"description\" slot=\"description\"></slot>\n <slot name=\"content\" slot=\"content\"></slot>\n <slot name=\"footer\" slot=\"footer\"></slot>\n </px-selectable-box>\n </div>\n ";
675
+ }
676
+ constructor() {
677
+ super(k), this.shadowRoot.innerHTML = this.template(), this.internals = this.attachInternals?.();
678
+ }
679
+ connectedCallback() {
680
+ this.toggleFooterVisibility = this.toggleFooterVisibility.bind(this), this.role = "checkbox", this.internals && (this.internals.role = "checkbox"), this.tabIndex = 0, this.ariaChecked = `${this.checked}`, this.toggleFooterVisibility(), this.$slotFooter.addEventListener("slotchange", this.toggleFooterVisibility), this.addEventListener("mouseover", this.setHoverAttribute), this.addEventListener("mouseout", this.removeHoverAttribute), this.addEventListener("keypress", this.setKeypressEvent), this.addEventListener("click", this.setClickEvent);
681
+ }
682
+ static get observedAttributes() {
683
+ return [
684
+ ...super.observedAttributes,
685
+ "inverted",
686
+ "name",
687
+ "value",
688
+ "checked",
689
+ "disabled",
690
+ "footer-position"
691
+ ];
692
+ }
693
+ attributeChangedCallback(e, t, n) {
694
+ if (t !== n) switch (e) {
695
+ case "inverted":
696
+ this.inverted ? (this.$selectableBox.setAttribute("inverted", ""), this.$checkbox.setAttribute("inverted", "")) : (this.$selectableBox.removeAttribute("inverted"), this.$checkbox.removeAttribute("inverted"));
697
+ break;
698
+ case "name":
699
+ case "value":
700
+ this.$checkbox && this.$checkbox.setAttribute(e, n);
701
+ break;
702
+ case "disabled":
703
+ this.handleDisabledAttributeChange(n !== null);
704
+ break;
705
+ case "checked":
706
+ this.handleCheckedAttributeChange(n);
707
+ break;
708
+ case "footer-position":
709
+ this.$selectableBox && this.$selectableBox.setAttribute("footer-position", n);
710
+ break;
711
+ default: super.attributeChangedCallback(e, t, n);
712
+ }
713
+ }
714
+ disconnectedCallback() {
715
+ this.$slotFooter.removeEventListener("slotchange", this.toggleFooterVisibility), this.removeEventListener("mouseover", this.setHoverAttribute), this.removeEventListener("mouseout", this.removeHoverAttribute), this.removeEventListener("keypress", this.setKeypressEvent), this.removeEventListener("click", this.setClickEvent);
716
+ }
717
+ removeHoverAttribute() {
718
+ this.$checkbox.removeAttribute("hover");
719
+ }
720
+ setHoverAttribute() {
721
+ this.$checkbox.setAttribute("hover", "");
722
+ }
723
+ setKeypressEvent(e) {
724
+ e.stopPropagation(), e.preventDefault(), e.code === "Space" && this.click();
725
+ }
726
+ setClickEvent(e) {
727
+ D(e, this) || (this.checked = !this.checked, e.stopPropagation(), e.preventDefault());
728
+ }
729
+ toggleFooterVisibility() {
730
+ this.$slottedFooter ? this.$selectableBox.removeAttribute("hide-footer") : this.$selectableBox.setAttribute("hide-footer", "");
731
+ }
732
+ handleDisabledAttributeChange(e) {
733
+ e ? (this.disabled = !0, this.internals && (this.internals.ariaDisabled = "true"), this.ariaDisabled = "true", this.$checkbox.setAttribute("disabled", "")) : (this.disabled = !1, this.internals && (this.internals.ariaDisabled = "false"), this.ariaDisabled = "false", this.$checkbox.removeAttribute("disabled"));
734
+ }
735
+ handleCheckedAttributeChange(e) {
736
+ this.internals?.setFormValue(this.formData()), e === null ? (this.internals && (this.internals.ariaChecked = "false"), this.ariaChecked = "false", this.checked = !1, this.$checkbox && this.$checkbox.removeAttribute("checked")) : (this.internals && (this.internals.ariaChecked = "true"), this.ariaChecked = "true", this.checked = !0, this.$checkbox && this.$checkbox.setAttribute("checked", "")), this.dispatchEvent(new Event("change", {
737
+ bubbles: !0,
738
+ composed: !0
739
+ }));
740
+ }
741
+ static get formAssociated() {
742
+ return !0;
743
+ }
744
+ formResetCallback() {
745
+ this.checked = !1;
746
+ }
747
+ formStateRestoreCallback(e) {
748
+ this.checked = e;
749
+ }
750
+ formData() {
751
+ let e = new FormData();
752
+ if (this.name) {
753
+ let t = this.getAttribute("name");
754
+ t && (this.checked ? e.set(t, this.value ?? "") : e.delete(t));
755
+ }
756
+ return e;
757
+ }
758
+ get $el() {
759
+ return this.shadowRoot.querySelector(".selectable-box-checkbox");
760
+ }
761
+ get $selectableBox() {
762
+ return this.shadowRoot.querySelector("px-selectable-box");
763
+ }
764
+ get $checkbox() {
765
+ return this.shadowRoot.querySelector("px-checkbox");
766
+ }
767
+ get $slotFooter() {
768
+ return this.shadowRoot.querySelector("slot[name=\"footer\"]");
769
+ }
770
+ get $slottedFooter() {
771
+ return this.querySelector("[slot=\"footer\"]");
772
+ }
773
+ get inverted() {
774
+ return this.hasAttribute("inverted");
775
+ }
776
+ set inverted(e) {
777
+ r(this, "inverted", e);
778
+ }
779
+ get checked() {
780
+ return this.hasAttribute("checked");
781
+ }
782
+ set checked(e) {
783
+ r(this, "checked", e);
784
+ }
785
+ get name() {
786
+ return this.getAttribute("name");
787
+ }
788
+ set name(e) {
789
+ s(this, "name", e);
790
+ }
791
+ get disabled() {
792
+ return this.hasAttribute("disabled");
793
+ }
794
+ set disabled(e) {
795
+ r(this, "disabled", e);
796
+ }
797
+ get value() {
798
+ return this.getAttribute("value");
799
+ }
800
+ set value(e) {
801
+ s(this, "value", e);
802
+ }
803
+ get footerPosition() {
804
+ return this.getAttribute("footer-position") ?? "";
805
+ }
806
+ set footerPosition(e) {
807
+ e ? this.setAttribute("footer-position", e) : this.removeAttribute("footer-position");
808
+ }
809
+ };
810
+ customElements.get("px-selectable-box-checkbox") || customElements.define("px-selectable-box-checkbox", A);
811
+ //#endregion
812
+ //#region src/SelectableBoxRadio.ts
813
+ var j = new CSSStyleSheet();
814
+ j.replaceSync(O);
815
+ var M = "px-selectable-box-radio-connected", N = "px-selectable-box-radio-disconnected", P = class extends t {
816
+ template() {
817
+ return "\n <div class=\"selectable-box-radio\">\n <px-selectable-box>\n <slot name=\"media\" slot=\"media\"></slot>\n <px-radio \n slot=\"action\" inert \n ></px-radio>\n <slot name=\"icon\" slot=\"icon\"></slot>\n <slot name=\"logo\" slot=\"logo\"></slot>\n <slot name=\"title\" slot=\"title\"></slot>\n <slot name=\"description\" slot=\"description\"></slot>\n <slot name=\"content\" slot=\"content\"></slot>\n <slot name=\"footer\" slot=\"footer\"></slot>\n </px-selectable-box>\n </div>\n ";
818
+ }
819
+ constructor() {
820
+ super(j), this.shadowRoot.innerHTML = this.template(), this.internals = this.attachInternals?.();
821
+ }
822
+ connectedCallback() {
823
+ this.toggleFooterVisibility = this.toggleFooterVisibility.bind(this), this.role = "radio", this.internals && (this.internals.role = "radio"), this.dispatchEvent(new CustomEvent(M, {
824
+ bubbles: !0,
825
+ composed: !0
826
+ })), this.ariaChecked = `${this.checked}`, this.toggleFooterVisibility(), this.$slotFooter.addEventListener("slotchange", this.toggleFooterVisibility), this.$radio.addEventListener("change", this.stopInternalRadioChange), this.addEventListener("mouseover", this.setHoverAttribute), this.addEventListener("mouseout", this.removeHoverAttribute), this.addEventListener("keypress", this.setKeypressEvent), this.addEventListener("click", this.setClickEvent);
827
+ }
828
+ static get observedAttributes() {
829
+ return [
830
+ ...super.observedAttributes,
831
+ "inverted",
832
+ "name",
833
+ "value",
834
+ "checked",
835
+ "disabled",
836
+ "footer-position"
837
+ ];
838
+ }
839
+ attributeChangedCallback(e, t, n) {
840
+ if (t !== n) switch (e) {
841
+ case "inverted":
842
+ this.inverted ? (this.$selectableBox.setAttribute("inverted", ""), this.$radio.setAttribute("inverted", "")) : (this.$selectableBox.removeAttribute("inverted"), this.$radio.removeAttribute("inverted"));
843
+ break;
844
+ case "name":
845
+ case "value":
846
+ this.$radio && this.$radio.setAttribute(e, n);
847
+ break;
848
+ case "disabled":
849
+ this.handleDisabledAttributeChange(n !== null);
850
+ break;
851
+ case "checked":
852
+ this.handleCheckedAttributeChange(n);
853
+ break;
854
+ case "footer-position":
855
+ this.$selectableBox && this.$selectableBox.setAttribute("footer-position", n);
856
+ break;
857
+ default: super.attributeChangedCallback(e, t, n);
858
+ }
859
+ }
860
+ disconnectedCallback() {
861
+ this.$slotFooter.removeEventListener("slotchange", this.toggleFooterVisibility), this.$radio.removeEventListener("change", this.stopInternalRadioChange), this.removeEventListener("mouseover", this.setHoverAttribute), this.removeEventListener("mouseout", this.removeHoverAttribute), this.removeEventListener("keypress", this.setKeypressEvent), this.removeEventListener("click", this.setClickEvent), this.dispatchEvent(new CustomEvent(N, {
862
+ bubbles: !0,
863
+ composed: !0
864
+ }));
865
+ }
866
+ removeHoverAttribute() {
867
+ this.$radio.removeAttribute("hover");
868
+ }
869
+ stopInternalRadioChange(e) {
870
+ e.stopPropagation();
871
+ }
872
+ setHoverAttribute() {
873
+ this.$radio.setAttribute("hover", "");
874
+ }
875
+ setKeypressEvent(e) {
876
+ e.preventDefault(), e.code === "Space" && this.click();
877
+ }
878
+ setClickEvent(e) {
879
+ D(e, this) || (this.checked ||= !0, e.stopPropagation(), e.preventDefault());
880
+ }
881
+ toggleFooterVisibility() {
882
+ this.$slottedFooter ? this.$selectableBox.removeAttribute("hide-footer") : this.$selectableBox.setAttribute("hide-footer", "");
883
+ }
884
+ handleDisabledAttributeChange(e) {
885
+ e ? (this.disabled = !0, this.internals && (this.internals.ariaDisabled = "true"), this.ariaDisabled = "true", this.$radio.setAttribute("disabled", "")) : (this.disabled = !1, this.internals && (this.internals.ariaDisabled = "false"), this.ariaDisabled = "false", this.$radio.removeAttribute("disabled"));
886
+ }
887
+ handleCheckedAttributeChange(e) {
888
+ this.internals?.setFormValue(this.formData()), e == null ? (this.internals && (this.internals.ariaChecked = "false"), this.ariaChecked = "false", this.tabIndex = -1, this.checked = !1, this.$radio && this.$radio.removeAttribute("checked")) : (this.internals && (this.internals.ariaChecked = "true"), this.ariaChecked = "true", this.tabIndex = 0, this.checked = !0, this.$radio && this.$radio.setAttribute("checked", ""), this.dispatchEvent(new Event("change", {
889
+ bubbles: !0,
890
+ composed: !0
891
+ })));
892
+ }
893
+ static get formAssociated() {
894
+ return !0;
895
+ }
896
+ formResetCallback() {
897
+ this.checked = !1;
898
+ }
899
+ formStateRestoreCallback(e) {
900
+ this.checked = e;
901
+ }
902
+ formData() {
903
+ let e = new FormData();
904
+ if (this.name) {
905
+ let t = this.getAttribute("name");
906
+ t && (this.checked ? e.set(t, this.value ?? "") : e.delete(t));
907
+ }
908
+ return e;
909
+ }
910
+ get $el() {
911
+ return this.shadowRoot.querySelector(".selectable-box-radio");
912
+ }
913
+ get $selectableBox() {
914
+ return this.shadowRoot.querySelector("px-selectable-box");
915
+ }
916
+ get $radio() {
917
+ return this.shadowRoot.querySelector("px-radio");
918
+ }
919
+ get $slotFooter() {
920
+ return this.shadowRoot.querySelector("slot[name=\"footer\"]");
921
+ }
922
+ get $slottedFooter() {
923
+ return this.querySelector("[slot=\"footer\"]");
924
+ }
925
+ get inverted() {
926
+ return this.hasAttribute("inverted");
927
+ }
928
+ set inverted(e) {
929
+ r(this, "inverted", e);
930
+ }
931
+ get checked() {
932
+ return this.hasAttribute("checked");
933
+ }
934
+ set checked(e) {
935
+ r(this, "checked", e);
936
+ }
937
+ get name() {
938
+ return this.getAttribute("name");
939
+ }
940
+ set name(e) {
941
+ s(this, "name", e);
942
+ }
943
+ get disabled() {
944
+ return this.hasAttribute("disabled");
945
+ }
946
+ set disabled(e) {
947
+ r(this, "disabled", e);
948
+ }
949
+ get value() {
950
+ return this.getAttribute("value");
951
+ }
952
+ set value(e) {
953
+ s(this, "value", e);
954
+ }
955
+ get footerPosition() {
956
+ return this.getAttribute("footer-position") ?? "";
957
+ }
958
+ set footerPosition(e) {
959
+ e ? this.setAttribute("footer-position", e) : this.removeAttribute("footer-position");
960
+ }
1024
961
  };
962
+ customElements.get("px-selectable-box-radio") || customElements.define("px-selectable-box-radio", P);
963
+ //#endregion
964
+ export { M as SELECTABLE_BOX_RADIO_CONNECTED_EVENT, N as SELECTABLE_BOX_RADIO_DISCONNECTED_EVENT, T as SelectableBox, A as SelectableBoxCheckbox, P as SelectableBoxRadio, w as selectableBoxFooterPosition };