@haiilo/catalyst 0.5.13 → 0.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/catalyst/catalyst.css +1 -1
- package/dist/catalyst/catalyst.esm.js +1 -1
- package/dist/catalyst/catalyst.esm.js.map +1 -1
- package/dist/catalyst/p-12486027.js.map +1 -1
- package/dist/catalyst/p-12b96af6.js +2 -0
- package/dist/catalyst/p-12b96af6.js.map +1 -0
- package/dist/catalyst/p-4c9cd203.entry.js +2 -0
- package/dist/catalyst/p-4c9cd203.entry.js.map +1 -0
- package/dist/catalyst/p-5616e2cd.js +2 -0
- package/dist/catalyst/p-5616e2cd.js.map +1 -0
- package/dist/catalyst/p-9d2eab4f.entry.js +10 -0
- package/dist/catalyst/p-9d2eab4f.entry.js.map +1 -0
- package/dist/cjs/app-globals-aa29ad72.js.map +1 -1
- package/dist/cjs/{cat-alert_15.cjs.entry.js → cat-alert_18.cjs.entry.js} +277 -65
- package/dist/cjs/cat-alert_18.cjs.entry.js.map +1 -0
- package/dist/cjs/cat-form-hint-93a6936b.js +22 -0
- package/dist/cjs/cat-form-hint-93a6936b.js.map +1 -0
- package/dist/cjs/cat-textarea.cjs.entry.js +12 -12
- package/dist/cjs/cat-textarea.cjs.entry.js.map +1 -1
- package/dist/cjs/catalyst.cjs.js +2 -2
- package/dist/cjs/{index-5d72f0e4.js → index-499bad41.js} +44 -1
- package/dist/cjs/index-499bad41.js.map +1 -0
- package/dist/cjs/loader.cjs.js +2 -2
- package/dist/collection/collection-manifest.json +3 -0
- package/dist/collection/components/cat-avatar/cat-avatar.css +81 -0
- package/dist/collection/components/cat-avatar/cat-avatar.js +225 -0
- package/dist/collection/components/cat-avatar/cat-avatar.js.map +1 -0
- package/dist/collection/components/cat-badge/cat-badge.css +5 -5
- package/dist/collection/components/cat-button/cat-button.js +8 -8
- package/dist/collection/components/cat-button/cat-button.js.map +1 -1
- package/dist/collection/components/cat-checkbox/cat-checkbox.css +14 -0
- package/dist/collection/components/cat-checkbox/cat-checkbox.js +43 -11
- package/dist/collection/components/cat-checkbox/cat-checkbox.js.map +1 -1
- package/dist/collection/components/cat-form-hint/cat-form-hint.js +16 -0
- package/dist/collection/components/cat-form-hint/cat-form-hint.js.map +1 -0
- package/dist/collection/components/cat-input/cat-input.css +12 -6
- package/dist/collection/components/cat-input/cat-input.js +23 -25
- package/dist/collection/components/cat-input/cat-input.js.map +1 -1
- package/dist/collection/components/cat-radio/cat-radio.css +14 -0
- package/dist/collection/components/cat-radio/cat-radio.js +40 -8
- package/dist/collection/components/cat-radio/cat-radio.js.map +1 -1
- package/dist/collection/components/cat-scrollable/cat-scrollable.js +44 -44
- package/dist/collection/components/cat-scrollable/cat-scrollable.js.map +1 -1
- package/dist/collection/components/cat-tab/cat-tab.css +12 -0
- package/dist/collection/components/cat-tab/cat-tab.js +203 -0
- package/dist/collection/components/cat-tab/cat-tab.js.map +1 -0
- package/dist/collection/components/cat-tabs/cat-tabs.css +33 -0
- package/dist/collection/components/cat-tabs/cat-tabs.js +122 -0
- package/dist/collection/components/cat-tabs/cat-tabs.js.map +1 -0
- package/dist/collection/components/cat-textarea/cat-textarea.css +12 -6
- package/dist/collection/components/cat-textarea/cat-textarea.js +23 -18
- package/dist/collection/components/cat-textarea/cat-textarea.js.map +1 -1
- package/dist/collection/components/cat-toggle/cat-toggle.css +14 -0
- package/dist/collection/components/cat-toggle/cat-toggle.js +39 -7
- package/dist/collection/components/cat-toggle/cat-toggle.js.map +1 -1
- package/dist/collection/components/cat-tooltip/cat-tooltip.js +13 -8
- package/dist/collection/components/cat-tooltip/cat-tooltip.js.map +1 -1
- package/dist/collection/utils/load-img.js +16 -0
- package/dist/collection/utils/load-img.js.map +1 -0
- package/dist/components/cat-avatar.d.ts +11 -0
- package/dist/components/cat-avatar.js +125 -0
- package/dist/components/cat-avatar.js.map +1 -0
- package/dist/components/cat-badge.js +1 -1
- package/dist/components/cat-badge.js.map +1 -1
- package/dist/components/cat-button2.js +5 -5
- package/dist/components/cat-button2.js.map +1 -1
- package/dist/components/cat-checkbox.js +15 -5
- package/dist/components/cat-checkbox.js.map +1 -1
- package/dist/components/cat-form-hint.js +20 -0
- package/dist/components/cat-form-hint.js.map +1 -0
- package/dist/components/cat-input.js +15 -18
- package/dist/components/cat-input.js.map +1 -1
- package/dist/components/cat-radio.js +15 -5
- package/dist/components/cat-radio.js.map +1 -1
- package/dist/components/cat-scrollable.js +23 -23
- package/dist/components/cat-scrollable.js.map +1 -1
- package/dist/components/cat-tab.d.ts +11 -0
- package/dist/components/cat-tab.js +70 -0
- package/dist/components/cat-tab.js.map +1 -0
- package/dist/components/cat-tabs.d.ts +11 -0
- package/dist/components/cat-tabs.js +107 -0
- package/dist/components/cat-tabs.js.map +1 -0
- package/dist/components/cat-textarea.js +13 -12
- package/dist/components/cat-textarea.js.map +1 -1
- package/dist/components/cat-toggle.js +15 -5
- package/dist/components/cat-toggle.js.map +1 -1
- package/dist/components/cat-tooltip.js +13 -8
- package/dist/components/cat-tooltip.js.map +1 -1
- package/dist/components/index.js.map +1 -1
- package/dist/esm/app-globals-cf55f7f5.js.map +1 -1
- package/dist/esm/{cat-alert_15.entry.js → cat-alert_18.entry.js} +275 -66
- package/dist/esm/cat-alert_18.entry.js.map +1 -0
- package/dist/esm/cat-form-hint-dc443c7c.js +20 -0
- package/dist/esm/cat-form-hint-dc443c7c.js.map +1 -0
- package/dist/esm/cat-textarea.entry.js +12 -12
- package/dist/esm/cat-textarea.entry.js.map +1 -1
- package/dist/esm/catalyst.js +2 -2
- package/dist/esm/{index-fd12be19.js → index-039e6f5f.js} +44 -2
- package/dist/esm/index-039e6f5f.js.map +1 -0
- package/dist/esm/loader.js +2 -2
- package/dist/types/components/cat-avatar/cat-avatar.d.ts +46 -0
- package/dist/types/components/cat-button/cat-button.d.ts +2 -2
- package/dist/types/components/cat-checkbox/cat-checkbox.d.ts +9 -0
- package/dist/types/components/cat-form-hint/cat-form-hint.d.ts +19 -0
- package/dist/types/components/cat-input/cat-input.d.ts +7 -5
- package/dist/types/components/cat-radio/cat-radio.d.ts +9 -0
- package/dist/types/components/cat-scrollable/cat-scrollable.d.ts +12 -12
- package/dist/types/components/cat-tab/cat-tab.d.ts +43 -0
- package/dist/types/components/cat-tabs/cat-tabs.d.ts +25 -0
- package/dist/types/components/cat-textarea/cat-textarea.d.ts +7 -2
- package/dist/types/components/cat-toggle/cat-toggle.d.ts +9 -0
- package/dist/types/components/cat-tooltip/cat-tooltip.d.ts +1 -0
- package/dist/types/components.d.ts +255 -52
- package/dist/types/utils/load-img.d.ts +8 -0
- package/package.json +2 -2
- package/dist/catalyst/p-a8629c54.entry.js +0 -2
- package/dist/catalyst/p-a8629c54.entry.js.map +0 -1
- package/dist/catalyst/p-bfc656ca.js +0 -2
- package/dist/catalyst/p-bfc656ca.js.map +0 -1
- package/dist/catalyst/p-e6491f33.entry.js +0 -10
- package/dist/catalyst/p-e6491f33.entry.js.map +0 -1
- package/dist/cjs/cat-alert_15.cjs.entry.js.map +0 -1
- package/dist/cjs/index-5d72f0e4.js.map +0 -1
- package/dist/esm/cat-alert_15.entry.js.map +0 -1
- package/dist/esm/index-fd12be19.js.map +0 -1
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import { r as registerInstance, h, H as Host, c as createEvent } from './index-
|
|
1
|
+
import { r as registerInstance, h, H as Host, c as createEvent, g as getElement } from './index-039e6f5f.js';
|
|
2
2
|
import { l as loglevel } from './loglevel-39a9e3f9.js';
|
|
3
|
+
import { C as CatFormHint } from './cat-form-hint-dc443c7c.js';
|
|
3
4
|
import { C as CatIconRegistry, a as CatI18nRegistry } from './cat-icon-registry-3ea75755.js';
|
|
4
5
|
import { N as NotificationsService } from './cat-notification-cd98c266.js';
|
|
5
6
|
|
|
@@ -31,7 +32,92 @@ const CatAlert = class {
|
|
|
31
32
|
};
|
|
32
33
|
CatAlert.style = catAlertCss;
|
|
33
34
|
|
|
34
|
-
|
|
35
|
+
/**
|
|
36
|
+
* Loads an image and wraps the result in a promise.
|
|
37
|
+
*
|
|
38
|
+
* @param src the image URL
|
|
39
|
+
* @returns a promise
|
|
40
|
+
*/
|
|
41
|
+
const loadImg = (src) => {
|
|
42
|
+
return new Promise((resolve, reject) => {
|
|
43
|
+
const image = new Image();
|
|
44
|
+
image.addEventListener('load', resolve);
|
|
45
|
+
image.addEventListener('error', reject);
|
|
46
|
+
image.src = src;
|
|
47
|
+
});
|
|
48
|
+
};
|
|
49
|
+
|
|
50
|
+
const catAvatarCss = ":host{display:inline-block;vertical-align:middle;-webkit-user-select:none;-ms-user-select:none;user-select:none;}:host([hidden]){display:none}.avatar{display:flex;align-items:center;justify-content:center;border-radius:0.25rem;text-decoration:inherit;color:var(--cat-avatar-fill, white);background-color:var(--cat-avatar-bg, #697687);background-size:cover;background-position:center;white-space:nowrap;overflow:hidden}.avatar:focus-visible{outline:2px solid rgb(var(--cat-border-color-focus, 0, 113, 255));outline-offset:1px}.avatar-round{border-radius:50%}.avatar-xs{width:var(--cat-avatar-size, 1.5rem);height:var(--cat-avatar-size, 1.5rem);line-height:var(--cat-avatar-size, 1.5rem);font-size:var(--cat-avatar-font-size, 0.75rem)}.avatar-s{width:var(--cat-avatar-size, 2rem);height:var(--cat-avatar-size, 2rem);line-height:var(--cat-avatar-size, 2rem);font-size:var(--cat-avatar-font-size, 0.875rem)}.avatar-m{width:var(--cat-avatar-size, 2.5rem);height:var(--cat-avatar-size, 2.5rem);line-height:var(--cat-avatar-size, 2.5rem);font-size:var(--cat-avatar-font-size, 0.9375rem)}.avatar-l{width:var(--cat-avatar-size, 3rem);height:var(--cat-avatar-size, 3rem);line-height:var(--cat-avatar-size, 3rem);font-size:var(--cat-avatar-font-size, 1.125rem)}.avatar-xl{width:var(--cat-avatar-size, 3.5rem);height:var(--cat-avatar-size, 3.5rem);line-height:var(--cat-avatar-size, 3.5rem);font-size:var(--cat-avatar-font-size, 1.25rem)}";
|
|
51
|
+
|
|
52
|
+
const CatAvatar = class {
|
|
53
|
+
constructor(hostRef) {
|
|
54
|
+
registerInstance(this, hostRef);
|
|
55
|
+
/**
|
|
56
|
+
* The size of the avatar.
|
|
57
|
+
*/
|
|
58
|
+
this.size = 'm';
|
|
59
|
+
/**
|
|
60
|
+
* Use round avatar edges.
|
|
61
|
+
*/
|
|
62
|
+
this.round = false;
|
|
63
|
+
/**
|
|
64
|
+
* The label of the avatar.
|
|
65
|
+
*/
|
|
66
|
+
this.label = '';
|
|
67
|
+
}
|
|
68
|
+
onSrcChanged(value) {
|
|
69
|
+
if (value) {
|
|
70
|
+
loadImg(value).then(() => (this.backgroundImage = `url(${value})`), () => (this.backgroundImage = undefined));
|
|
71
|
+
}
|
|
72
|
+
else {
|
|
73
|
+
this.backgroundImage = undefined;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
componentWillLoad() {
|
|
77
|
+
this.onSrcChanged(this.src);
|
|
78
|
+
}
|
|
79
|
+
componentWillRender() {
|
|
80
|
+
if (!this.label) {
|
|
81
|
+
loglevel.warn('[A11y] Missing ARIA label on avatar', this);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
render() {
|
|
85
|
+
if (this.url) {
|
|
86
|
+
return (h("a", { href: this.url, target: this.urlTarget, style: this.cssStyle, class: this.cssClass, "aria-label": this.label }, this.content));
|
|
87
|
+
}
|
|
88
|
+
else {
|
|
89
|
+
return (h("span", { style: this.cssStyle, class: this.cssClass, "aria-label": this.label }, this.content));
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
get content() {
|
|
93
|
+
return !this.backgroundImage
|
|
94
|
+
? [this.icon ? h("cat-icon", { icon: this.icon, size: this.size }) : this.getInitials()]
|
|
95
|
+
: [];
|
|
96
|
+
}
|
|
97
|
+
get cssStyle() {
|
|
98
|
+
return { 'background-image': this.backgroundImage };
|
|
99
|
+
}
|
|
100
|
+
get cssClass() {
|
|
101
|
+
return {
|
|
102
|
+
avatar: true,
|
|
103
|
+
'avatar-round': this.round,
|
|
104
|
+
[`avatar-${this.size}`]: Boolean(this.size)
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
getInitials() {
|
|
108
|
+
var _a;
|
|
109
|
+
return ((_a = this.initials) !== null && _a !== void 0 ? _a : this.label
|
|
110
|
+
.split(' ')
|
|
111
|
+
.map(n => n[0])
|
|
112
|
+
.join(''));
|
|
113
|
+
}
|
|
114
|
+
static get watchers() { return {
|
|
115
|
+
"src": ["onSrcChanged"]
|
|
116
|
+
}; }
|
|
117
|
+
};
|
|
118
|
+
CatAvatar.style = catAvatarCss;
|
|
119
|
+
|
|
120
|
+
const catBadgeCss = ":host{display:inline-flex;max-width:100%;vertical-align:baseline}:host([hidden]){display:none}.badge{font:inherit;flex:1 1 auto;display:inline-flex;align-items:center;justify-content:center;border-radius:0.125rem;text-decoration:none;width:100%;box-sizing:border-box;line-height:1;white-space:nowrap}.badge slot{display:inline-block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}.badge-round{border-radius:10rem}.badge-filled{background-color:rgb(var(--bg));color:rgb(var(--fill));font-weight:600;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:greyscale}.badge-outlined{background-color:white;box-shadow:inset 0 0 0 1px rgba(var(--border), 0.2);color:rgb(var(--text))}.badge-primary{--bg:var(--cat-primary-bg, 32, 127, 138);--fill:var(--cat-primary-fill, 255, 255, 255);--text:var(--cat-primary-text, 32, 127, 138);--border:var(--cat-primary-text, 32, 127, 138)}.badge-secondary{--bg:105, 118, 135;--fill:255, 255, 255;--text:0, 0, 0;--border:105, 118, 135}.badge-success{--bg:0, 132, 88;--fill:255, 255, 255;--text:0, 132, 88;--border:0, 132, 88}.badge-warning{--bg:255, 206, 128;--fill:0, 0, 0;--text:159, 97, 0;--border:159, 97, 0}.badge-danger{--bg:217, 52, 13;--fill:255, 255, 255;--text:217, 52, 13;--border:217, 52, 13}.badge-xs{height:0.75rem;min-width:0.75rem;font-size:0.75rem;padding:0rem 0.25rem}.badge-s{height:1rem;min-width:1rem;font-size:0.75rem;padding:0.25rem 0.5rem}.badge-m{height:1.25rem;min-width:1.25rem;font-size:0.75rem;padding:0.5rem 0.75rem}.badge-l{height:1.5rem;min-width:1.5rem;font-size:0.875rem;padding:0.75rem 1rem}.badge-xl{height:1.75rem;min-width:1.75rem;font-size:0.9375rem;padding:1rem 1.25rem}.badge-pulse.badge-filled{animation:1.5s ease 0s infinite normal none running pulse}.badge-pulse.badge-outlined{animation:1.5s ease 0s infinite normal none running pulse-outlined}@keyframes pulse{0%{box-shadow:0 0 0 0 rgb(var(--bg))}70%{box-shadow:transparent 0 0 0 0.5rem}100%{box-shadow:transparent 0 0 0 0}}@keyframes pulse-outlined{0%{box-shadow:0 0 0 0 rgb(var(--bg)), inset 0 0 0 1px rgba(var(--border), 0.2)}70%{box-shadow:transparent 0 0 0 0.5rem, inset 0 0 0 1px rgba(var(--border), 0.2)}100%{box-shadow:transparent 0 0 0 0, inset 0 0 0 1px rgba(var(--border), 0.2)}}";
|
|
35
121
|
|
|
36
122
|
const CatBadge = class {
|
|
37
123
|
constructor(hostRef) {
|
|
@@ -226,9 +312,9 @@ const CatButton = class {
|
|
|
226
312
|
*/
|
|
227
313
|
this.submit = false;
|
|
228
314
|
/**
|
|
229
|
-
*
|
|
315
|
+
* Disables ellipse overflowing button content.
|
|
230
316
|
*/
|
|
231
|
-
this.
|
|
317
|
+
this.noEllipsis = false;
|
|
232
318
|
/**
|
|
233
319
|
* Use round button edges.
|
|
234
320
|
*/
|
|
@@ -293,7 +379,7 @@ const CatButton = class {
|
|
|
293
379
|
'cat-button-round': this.round,
|
|
294
380
|
'cat-button-loading': this.loading,
|
|
295
381
|
'cat-button-disabled': this.disabled,
|
|
296
|
-
'cat-button-ellipsed': this.
|
|
382
|
+
'cat-button-ellipsed': !this.noEllipsis && !this.isIconButton,
|
|
297
383
|
[`cat-button-${this.variant}`]: Boolean(this.variant),
|
|
298
384
|
[`cat-button-${this.color}`]: Boolean(this.color),
|
|
299
385
|
[`cat-button-${this.size}`]: Boolean(this.size)
|
|
@@ -307,7 +393,7 @@ const CatButton = class {
|
|
|
307
393
|
'cat-button-round': (_a = this.round) !== null && _a !== void 0 ? _a : this.isIconButton,
|
|
308
394
|
'cat-button-loading': this.loading,
|
|
309
395
|
'cat-button-disabled': this.disabled,
|
|
310
|
-
'cat-button-ellipsed': this.
|
|
396
|
+
'cat-button-ellipsed': !this.noEllipsis && !this.isIconButton,
|
|
311
397
|
[`cat-button-${this.variant}`]: Boolean(this.variant),
|
|
312
398
|
[`cat-button-${this.color}`]: Boolean(this.color),
|
|
313
399
|
[`cat-button-${this.size}`]: Boolean(this.size)
|
|
@@ -374,16 +460,17 @@ const CatCard = class {
|
|
|
374
460
|
};
|
|
375
461
|
CatCard.style = catCardCss;
|
|
376
462
|
|
|
377
|
-
const catCheckboxCss = ":host{display:flex;margin-bottom:1rem}:host([hidden]){display:none}label{flex:0 1 auto;display:flex;gap:0.5rem;font-size:0.9375rem;line-height:1.25rem;-webkit-user-select:none;-ms-user-select:none;user-select:none;cursor:pointer}input{position:absolute !important;width:1px !important;height:1px !important;padding:0 !important;margin:-1px !important;overflow:hidden !important;clip:rect(0, 0, 0, 0) !important;white-space:nowrap !important;border:0 !important}.box{flex:0 0 auto;display:flex;position:relative;height:1.25rem;width:1.25rem;background-color:white;border:1px solid #d7dbe0;border-radius:0.125rem;transition:background-color 0.13s ease, border-color 0.13s ease}.box svg{fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:16px;stroke-dashoffset:16px;transition:all 0.13s ease;width:70%;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%) scale(0.99)}:checked+.box{background-color:rgb(var(--cat-primary-bg, 32, 127, 138));border-color:rgb(var(--cat-primary-bg, 32, 127, 138));stroke:rgb(var(--cat-primary-fill, 255, 255, 255))}:checked+.box .check{stroke-dashoffset:0}:indeterminate+.box{background-color:rgb(var(--cat-primary-bg, 32, 127, 138));border-color:rgb(var(--cat-primary-bg, 32, 127, 138));stroke:rgb(var(--cat-primary-fill, 255, 255, 255))}:indeterminate+.box .dash{stroke-dashoffset:0}:focus-visible+.box{outline:2px solid rgb(var(--cat-border-color-focus, 0, 113, 255));outline-offset:1px}.label{flex:1 1 auto}.is-hidden .label{position:absolute !important;width:1px !important;height:1px !important;padding:0 !important;margin:-1px !important;overflow:hidden !important;clip:rect(0, 0, 0, 0) !important;white-space:nowrap !important;border:0 !important}.is-disabled{cursor:not-allowed;color:rgb(var(--cat-font-color-muted, 105, 118, 135))}";
|
|
463
|
+
const catCheckboxCss = ".hint-section{display:flex;gap:0.5rem;flex-direction:column}.hint-section .input-hint,.hint-section ::slotted([slot=hint]){font-size:0.875rem;line-height:1rem;margin:0}:host{display:flex;flex-direction:column;gap:0.5rem;margin-bottom:1rem}:host([hidden]){display:none}label{flex:0 1 auto;display:flex;gap:0.5rem;font-size:0.9375rem;line-height:1.25rem;-webkit-user-select:none;-ms-user-select:none;user-select:none;cursor:pointer}input{position:absolute !important;width:1px !important;height:1px !important;padding:0 !important;margin:-1px !important;overflow:hidden !important;clip:rect(0, 0, 0, 0) !important;white-space:nowrap !important;border:0 !important}.box{flex:0 0 auto;display:flex;position:relative;height:1.25rem;width:1.25rem;background-color:white;border:1px solid #d7dbe0;border-radius:0.125rem;transition:background-color 0.13s ease, border-color 0.13s ease}.box svg{fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:16px;stroke-dashoffset:16px;transition:all 0.13s ease;width:70%;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%) scale(0.99)}:checked+.box{background-color:rgb(var(--cat-primary-bg, 32, 127, 138));border-color:rgb(var(--cat-primary-bg, 32, 127, 138));stroke:rgb(var(--cat-primary-fill, 255, 255, 255))}:checked+.box .check{stroke-dashoffset:0}:indeterminate+.box{background-color:rgb(var(--cat-primary-bg, 32, 127, 138));border-color:rgb(var(--cat-primary-bg, 32, 127, 138));stroke:rgb(var(--cat-primary-fill, 255, 255, 255))}:indeterminate+.box .dash{stroke-dashoffset:0}:focus-visible+.box{outline:2px solid rgb(var(--cat-border-color-focus, 0, 113, 255));outline-offset:1px}.label{flex:1 1 auto}.is-hidden .label{position:absolute !important;width:1px !important;height:1px !important;padding:0 !important;margin:-1px !important;overflow:hidden !important;clip:rect(0, 0, 0, 0) !important;white-space:nowrap !important;border:0 !important}.is-disabled{cursor:not-allowed;color:rgb(var(--cat-font-color-muted, 105, 118, 135))}";
|
|
378
464
|
|
|
379
|
-
let nextUniqueId$
|
|
465
|
+
let nextUniqueId$6 = 0;
|
|
380
466
|
const CatCheckbox = class {
|
|
381
467
|
constructor(hostRef) {
|
|
382
468
|
registerInstance(this, hostRef);
|
|
383
469
|
this.catChange = createEvent(this, "catChange", 7);
|
|
384
470
|
this.catFocus = createEvent(this, "catFocus", 7);
|
|
385
471
|
this.catBlur = createEvent(this, "catBlur", 7);
|
|
386
|
-
this.id = `cat-checkbox-${nextUniqueId$
|
|
472
|
+
this.id = `cat-checkbox-${nextUniqueId$6++}`;
|
|
473
|
+
this.hasSlottedLabel = false;
|
|
387
474
|
/**
|
|
388
475
|
* Checked state of the checkbox
|
|
389
476
|
*/
|
|
@@ -415,7 +502,7 @@ const CatCheckbox = class {
|
|
|
415
502
|
}
|
|
416
503
|
}
|
|
417
504
|
componentWillRender() {
|
|
418
|
-
if (!this.label) {
|
|
505
|
+
if (!this.label && !this.hostElement.querySelector('[slot="label"]')) {
|
|
419
506
|
loglevel.error('[A11y] Missing ARIA label on checkbox', this);
|
|
420
507
|
}
|
|
421
508
|
}
|
|
@@ -429,9 +516,14 @@ const CatCheckbox = class {
|
|
|
429
516
|
this.input.focus(options);
|
|
430
517
|
}
|
|
431
518
|
render() {
|
|
432
|
-
return (h("label", { htmlFor: this.id, class: { 'is-hidden': this.labelHidden, 'is-disabled': this.disabled } }, h("input", { ref: el => (this.input = el), id: this.id, type: "checkbox", name: this.name, value: this.value, checked: this.checked, required: this.required, disabled: this.disabled, onInput: this.onInput.bind(this), onFocus: this.onFocus.bind(this), onBlur: this.onBlur.bind(this) }), h("span", { class: "box", "aria-hidden": "true", part: "checkbox" }, h("svg", { class: "check", viewBox: "0 0 12 10" }, h("polyline", { points: "1.5 6 4.5 9 10.5 1" })), h("svg", { class: "dash", viewBox: "0 0 12 10" }, h("polyline", { points: "1.5 5 10.5 5" }))), h("span", { class: "label", part: "label" }, this.label)));
|
|
519
|
+
return (h(Host, null, h("label", { htmlFor: this.id, class: { 'is-hidden': this.labelHidden, 'is-disabled': this.disabled } }, h("input", { ref: el => (this.input = el), id: this.id, type: "checkbox", name: this.name, value: this.value, checked: this.checked, required: this.required, disabled: this.disabled, onInput: this.onInput.bind(this), onFocus: this.onFocus.bind(this), onBlur: this.onBlur.bind(this) }), h("span", { class: "box", "aria-hidden": "true", part: "checkbox" }, h("svg", { class: "check", viewBox: "0 0 12 10" }, h("polyline", { points: "1.5 6 4.5 9 10.5 1" })), h("svg", { class: "dash", viewBox: "0 0 12 10" }, h("polyline", { points: "1.5 5 10.5 5" }))), h("span", { class: "label", part: "label" }, (this.hasSlottedLabel && h("slot", { name: "label" })) || this.label)), this.hintSection));
|
|
520
|
+
}
|
|
521
|
+
get hintSection() {
|
|
522
|
+
const hasSlottedHint = !!this.hostElement.querySelector('[slot="hint"]');
|
|
523
|
+
return ((this.hint || hasSlottedHint) && (h(CatFormHint, { hint: this.hint, slottedHint: hasSlottedHint && h("slot", { name: "hint" }) })));
|
|
433
524
|
}
|
|
434
525
|
onInput(event) {
|
|
526
|
+
this.value = this.input.value;
|
|
435
527
|
this.catChange.emit(event);
|
|
436
528
|
}
|
|
437
529
|
onFocus(event) {
|
|
@@ -440,6 +532,7 @@ const CatCheckbox = class {
|
|
|
440
532
|
onBlur(event) {
|
|
441
533
|
this.catBlur.emit(event);
|
|
442
534
|
}
|
|
535
|
+
get hostElement() { return getElement(this); }
|
|
443
536
|
};
|
|
444
537
|
CatCheckbox.style = catCheckboxCss;
|
|
445
538
|
|
|
@@ -467,9 +560,9 @@ const CatIcon = class {
|
|
|
467
560
|
};
|
|
468
561
|
CatIcon.style = catIconCss;
|
|
469
562
|
|
|
470
|
-
const catInputCss = ":host{display:flex;flex-direction:column;gap:0.5rem;font-size:0.9375rem;line-height:1.25rem;margin-bottom:1rem}:host([hidden]){display:none}.input-wrapper{display:flex;align-items:stretch;gap:0.75rem;padding:0 0.75rem;height:2.5rem;overflow:hidden;background:white;border-radius:0.25rem;box-shadow:0 0 0 1px #d7dbe0;transition:box-shadow 0.13s linear}.input-wrapper.input-round{border-radius:10rem}.input-wrapper.input-disabled{background:#f8f8fb;cursor:not-allowed;color:rgb(var(--cat-font-color-muted, 105, 118, 135))}.input-wrapper:not(.input-disabled):hover{box-shadow:0 0 0 2px #d7dbe0}.input-wrapper:not(.input-disabled):focus-within{outline:2px solid rgb(var(--cat-border-color-focus, 0, 113, 255))}label{align-self:flex-start}label.hidden{position:absolute !important;width:1px !important;height:1px !important;padding:0 !important;margin:-1px !important;overflow:hidden !important;clip:rect(0, 0, 0, 0) !important;white-space:nowrap !important;border:0 !important}.input-optional{margin-left:0.25rem;font-size:0.75rem;line-height:1rem;color:rgb(var(--cat-font-color-muted, 105, 118, 135))}.text-prefix,.text-suffix{display:inline-flex;align-items:center;-webkit-user-select:none;-ms-user-select:none;user-select:none;}.text-prefix{border-right:1px solid #d7dbe0;padding-right:0.75rem}.text-suffix{border-left:1px solid #d7dbe0;padding-left:0.75rem}.icon-prefix,.icon-suffix{align-self:center}.input-inner-wrapper{display:flex;position:relative;flex:1 1 auto}input{font:inherit;margin:0;padding:0;width:100%;min-width:0;border:none;outline:none;background:none}.input-disabled input{cursor:not-allowed;color:rgb(var(--cat-font-color-muted, 105, 118, 135))}input.has-clearable{padding-right:1.5rem}input::placeholder{color:rgb(var(--cat-font-color-muted, 105, 118, 135))}.clearable{position:absolute;top:calc(50% - 1rem);right:-0.5rem}
|
|
563
|
+
const catInputCss = ".hint-section{display:flex;gap:0.5rem;flex-direction:column}.hint-section .input-hint,.hint-section ::slotted([slot=hint]){font-size:0.875rem;line-height:1rem;margin:0}:host{display:flex;flex-direction:column;gap:0.5rem;font-size:0.9375rem;line-height:1.25rem;margin-bottom:1rem}:host([hidden]){display:none}.input-wrapper{display:flex;align-items:stretch;gap:0.75rem;padding:0 0.75rem;height:2.5rem;overflow:hidden;background:white;border-radius:0.25rem;box-shadow:0 0 0 1px #d7dbe0;transition:box-shadow 0.13s linear}.input-wrapper.input-round{border-radius:10rem}.input-wrapper.input-disabled{background:#f8f8fb;cursor:not-allowed;color:rgb(var(--cat-font-color-muted, 105, 118, 135))}.input-wrapper:not(.input-disabled):hover{box-shadow:0 0 0 2px #d7dbe0}.input-wrapper:not(.input-disabled):focus-within{outline:2px solid rgb(var(--cat-border-color-focus, 0, 113, 255))}label{align-self:flex-start}label.hidden{position:absolute !important;width:1px !important;height:1px !important;padding:0 !important;margin:-1px !important;overflow:hidden !important;clip:rect(0, 0, 0, 0) !important;white-space:nowrap !important;border:0 !important}.input-optional{margin-left:0.25rem;font-size:0.75rem;line-height:1rem;color:rgb(var(--cat-font-color-muted, 105, 118, 135))}.text-prefix,.text-suffix{display:inline-flex;align-items:center;-webkit-user-select:none;-ms-user-select:none;user-select:none;}.text-prefix{border-right:1px solid #d7dbe0;padding-right:0.75rem}.text-suffix{border-left:1px solid #d7dbe0;padding-left:0.75rem}.icon-prefix,.icon-suffix{align-self:center}.input-inner-wrapper{display:flex;position:relative;flex:1 1 auto}input{font:inherit;margin:0;padding:0;width:100%;min-width:0;border:none;outline:none;background:none}.input-disabled input{cursor:not-allowed;color:rgb(var(--cat-font-color-muted, 105, 118, 135))}input.has-clearable{padding-right:1.5rem}input::placeholder{color:rgb(var(--cat-font-color-muted, 105, 118, 135))}.clearable{position:absolute;top:calc(50% - 1rem);right:-0.5rem}";
|
|
471
564
|
|
|
472
|
-
let nextUniqueId$
|
|
565
|
+
let nextUniqueId$5 = 0;
|
|
473
566
|
const CatInput = class {
|
|
474
567
|
constructor(hostRef) {
|
|
475
568
|
registerInstance(this, hostRef);
|
|
@@ -477,8 +570,8 @@ const CatInput = class {
|
|
|
477
570
|
this.catFocus = createEvent(this, "catFocus", 7);
|
|
478
571
|
this.catBlur = createEvent(this, "catBlur", 7);
|
|
479
572
|
this.i18n = CatI18nRegistry.getInstance();
|
|
480
|
-
this.id = `cat-input-${nextUniqueId$
|
|
481
|
-
this.
|
|
573
|
+
this.id = `cat-input-${nextUniqueId$5++}`;
|
|
574
|
+
this.hasSlottedLabel = false;
|
|
482
575
|
/**
|
|
483
576
|
* Whether the input should show a clear button.
|
|
484
577
|
*/
|
|
@@ -520,14 +613,8 @@ const CatInput = class {
|
|
|
520
613
|
*/
|
|
521
614
|
this.type = 'text';
|
|
522
615
|
}
|
|
523
|
-
onValueChange(value) {
|
|
524
|
-
this.inputValue = '' + (value !== null && value !== void 0 ? value : '');
|
|
525
|
-
}
|
|
526
|
-
componentWillLoad() {
|
|
527
|
-
this.onValueChange(this.value);
|
|
528
|
-
}
|
|
529
616
|
componentWillRender() {
|
|
530
|
-
if (!this.label) {
|
|
617
|
+
if (!this.label && !this.hostElement.querySelector('[slot="label"]')) {
|
|
531
618
|
loglevel.error('[A11y] Missing ARIA label on input', this);
|
|
532
619
|
}
|
|
533
620
|
}
|
|
@@ -544,19 +631,23 @@ const CatInput = class {
|
|
|
544
631
|
* Clear the input.
|
|
545
632
|
*/
|
|
546
633
|
async clear() {
|
|
547
|
-
this.
|
|
634
|
+
this.value = '';
|
|
548
635
|
}
|
|
549
636
|
render() {
|
|
550
|
-
return (h(Host, null, this.label && (h("label", { htmlFor: this.id, class: { hidden: this.labelHidden } }, h("span", { part: "label" }, this.label, !this.required && (h("span", { class: "input-optional", "aria-hidden": "true" }, "(", this.i18n.getMessage('input.optional'), ")"))))), h("div", { class: {
|
|
637
|
+
return (h(Host, null, (this.hasSlottedLabel || this.label) && (h("label", { htmlFor: this.id, class: { hidden: this.labelHidden } }, h("span", { part: "label" }, (this.hasSlottedLabel && h("slot", { name: "label" })) || this.label, !this.required && (h("span", { class: "input-optional", "aria-hidden": "true" }, "(", this.i18n.getMessage('input.optional'), ")"))))), h("div", { class: {
|
|
551
638
|
'input-wrapper': true,
|
|
552
639
|
'input-round': this.round,
|
|
553
640
|
'input-disabled': this.disabled
|
|
554
641
|
}, onClick: () => this.input.focus() }, this.textPrefix && (h("span", { class: "text-prefix", part: "prefix" }, this.textPrefix)), this.icon && !this.iconRight && h("cat-icon", { icon: this.icon, class: "icon-prefix", size: "l" }), h("div", { class: "input-inner-wrapper" }, h("input", { ref: el => (this.input = el), id: this.id, class: {
|
|
555
642
|
'has-clearable': this.clearable && !this.disabled
|
|
556
|
-
}, autocomplete: this.autoComplete, disabled: this.disabled, max: this.max, maxlength: this.maxLength, min: this.max, minlength: this.minLength, name: this.name, placeholder: this.placeholder, readonly: this.readonly, required: this.required, type: this.type, value: this.
|
|
643
|
+
}, autocomplete: this.autoComplete, disabled: this.disabled, max: this.max, maxlength: this.maxLength, min: this.max, minlength: this.minLength, name: this.name, placeholder: this.placeholder, readonly: this.readonly, required: this.required, type: this.type, value: this.value, onInput: this.onInput.bind(this), onFocus: this.onFocus.bind(this), onBlur: this.onBlur.bind(this) }), this.clearable && !this.disabled && this.value && (h("cat-button", { class: "clearable", icon: "cross-circle-outlined", "icon-only": "true", size: "s", variant: "text", "a11y-label": this.i18n.getMessage('input.clear'), onClick: this.clear.bind(this) }))), this.icon && this.iconRight && h("cat-icon", { icon: this.icon, class: "icon-suffix", size: "l" }), this.textSuffix && (h("span", { class: "text-suffix", part: "suffix" }, this.textSuffix))), this.hintSection));
|
|
644
|
+
}
|
|
645
|
+
get hintSection() {
|
|
646
|
+
const hasSlottedHint = !!this.hostElement.querySelector('[slot="hint"]');
|
|
647
|
+
return ((this.hint || hasSlottedHint) && (h(CatFormHint, { hint: this.hint, slottedHint: hasSlottedHint && h("slot", { name: "hint" }) })));
|
|
557
648
|
}
|
|
558
649
|
onInput(event) {
|
|
559
|
-
this.
|
|
650
|
+
this.value = this.input.value;
|
|
560
651
|
this.catChange.emit(event);
|
|
561
652
|
}
|
|
562
653
|
onFocus(event) {
|
|
@@ -565,9 +656,7 @@ const CatInput = class {
|
|
|
565
656
|
onBlur(event) {
|
|
566
657
|
this.catBlur.emit(event);
|
|
567
658
|
}
|
|
568
|
-
|
|
569
|
-
"value": ["onValueChange"]
|
|
570
|
-
}; }
|
|
659
|
+
get hostElement() { return getElement(this); }
|
|
571
660
|
};
|
|
572
661
|
CatInput.style = catInputCss;
|
|
573
662
|
|
|
@@ -2806,13 +2895,13 @@ const firstTabbable = (container) => {
|
|
|
2806
2895
|
|
|
2807
2896
|
const catMenuCss = ":host{display:contents}:host([hidden]){display:none}.content{padding-top:0.5rem;padding-bottom:0.5rem;position:absolute;background:white;display:none;overflow:auto;-webkit-overflow-scrolling:touch;min-width:8rem;max-width:16rem;min-height:2rem;max-height:calc(100vh - 48px);box-shadow:0 1px 4px 0 rgba(16, 29, 48, 0.2);border-radius:0.25rem;z-index:100}";
|
|
2808
2897
|
|
|
2809
|
-
let nextUniqueId$
|
|
2898
|
+
let nextUniqueId$4 = 0;
|
|
2810
2899
|
const CatMenu = class {
|
|
2811
2900
|
constructor(hostRef) {
|
|
2812
2901
|
registerInstance(this, hostRef);
|
|
2813
2902
|
this.catOpen = createEvent(this, "catOpen", 7);
|
|
2814
2903
|
this.catClose = createEvent(this, "catClose", 7);
|
|
2815
|
-
this.id = nextUniqueId$
|
|
2904
|
+
this.id = nextUniqueId$4++;
|
|
2816
2905
|
/**
|
|
2817
2906
|
* The placement of the menu.
|
|
2818
2907
|
*/
|
|
@@ -2907,16 +2996,17 @@ const CatMenu = class {
|
|
|
2907
2996
|
CatMenu.OFFSET = 4;
|
|
2908
2997
|
CatMenu.style = catMenuCss;
|
|
2909
2998
|
|
|
2910
|
-
const catRadioCss = ":host{display:flex;margin-bottom:1rem}:host([hidden]){display:none}label{display:flex;gap:0.5rem;font-size:0.9375rem;line-height:1.25rem;cursor:pointer}.radio{display:flex;position:relative}.circle{position:absolute;width:0.75rem;height:0.75rem;background-color:rgb(var(--cat-primary-bg, 32, 127, 138));border-radius:10rem;top:calc(50% - 0.375rem);left:calc(50% - 0.375rem);visibility:hidden}input{margin:0;width:1.25rem;height:1.25rem;appearance:none;background-color:white;border:1px solid #d7dbe0;border-radius:10rem;cursor:inherit}input:checked{border-color:rgb(var(--cat-primary-bg, 32, 127, 138))}input:checked+.circle{visibility:visible}input:focus-visible{outline:2px solid rgb(var(--cat-border-color-focus, 0, 113, 255));outline-offset:1px}.is-hidden .label{position:absolute !important;width:1px !important;height:1px !important;padding:0 !important;margin:-1px !important;overflow:hidden !important;clip:rect(0, 0, 0, 0) !important;white-space:nowrap !important;border:0 !important}.is-disabled{cursor:not-allowed;color:rgb(var(--cat-font-color-muted, 105, 118, 135))}.is-disabled input{background-color:#f8f8fb}.is-disabled input:checked{border-color:#d7dbe0}.is-disabled .circle{background-color:#d7dbe0}";
|
|
2999
|
+
const catRadioCss = ".hint-section{display:flex;gap:0.5rem;flex-direction:column}.hint-section .input-hint,.hint-section ::slotted([slot=hint]){font-size:0.875rem;line-height:1rem;margin:0}:host{display:flex;flex-direction:column;gap:0.5rem;margin-bottom:1rem}:host([hidden]){display:none}label{display:flex;gap:0.5rem;font-size:0.9375rem;line-height:1.25rem;cursor:pointer}.radio{display:flex;position:relative}.circle{position:absolute;width:0.75rem;height:0.75rem;background-color:rgb(var(--cat-primary-bg, 32, 127, 138));border-radius:10rem;top:calc(50% - 0.375rem);left:calc(50% - 0.375rem);visibility:hidden}input{margin:0;width:1.25rem;height:1.25rem;appearance:none;background-color:white;border:1px solid #d7dbe0;border-radius:10rem;cursor:inherit}input:checked{border-color:rgb(var(--cat-primary-bg, 32, 127, 138))}input:checked+.circle{visibility:visible}input:focus-visible{outline:2px solid rgb(var(--cat-border-color-focus, 0, 113, 255));outline-offset:1px}.is-hidden .label{position:absolute !important;width:1px !important;height:1px !important;padding:0 !important;margin:-1px !important;overflow:hidden !important;clip:rect(0, 0, 0, 0) !important;white-space:nowrap !important;border:0 !important}.is-disabled{cursor:not-allowed;color:rgb(var(--cat-font-color-muted, 105, 118, 135))}.is-disabled input{background-color:#f8f8fb}.is-disabled input:checked{border-color:#d7dbe0}.is-disabled .circle{background-color:#d7dbe0}";
|
|
2911
3000
|
|
|
2912
|
-
let nextUniqueId$
|
|
3001
|
+
let nextUniqueId$3 = 0;
|
|
2913
3002
|
const CatRadio = class {
|
|
2914
3003
|
constructor(hostRef) {
|
|
2915
3004
|
registerInstance(this, hostRef);
|
|
2916
3005
|
this.catChange = createEvent(this, "catChange", 7);
|
|
2917
3006
|
this.catFocus = createEvent(this, "catFocus", 7);
|
|
2918
3007
|
this.catBlur = createEvent(this, "catBlur", 7);
|
|
2919
|
-
this.id = `cat-radio-${++nextUniqueId$
|
|
3008
|
+
this.id = `cat-radio-${++nextUniqueId$3}`;
|
|
3009
|
+
this.hasSlottedLabel = false;
|
|
2920
3010
|
/**
|
|
2921
3011
|
* Whether this radio is checked.
|
|
2922
3012
|
*/
|
|
@@ -2939,7 +3029,7 @@ const CatRadio = class {
|
|
|
2939
3029
|
this.required = false;
|
|
2940
3030
|
}
|
|
2941
3031
|
componentWillRender() {
|
|
2942
|
-
if (!this.label) {
|
|
3032
|
+
if (!this.label && !this.hostElement.querySelector('[slot="label"]')) {
|
|
2943
3033
|
loglevel.error('[A11y] Missing ARIA label on radio', this);
|
|
2944
3034
|
}
|
|
2945
3035
|
}
|
|
@@ -2953,9 +3043,14 @@ const CatRadio = class {
|
|
|
2953
3043
|
this.input.focus(options);
|
|
2954
3044
|
}
|
|
2955
3045
|
render() {
|
|
2956
|
-
return (h("label", { htmlFor: this.id, class: { 'is-hidden': this.labelHidden, 'is-disabled': this.disabled } }, h("span", { class: "radio" }, h("input", { ref: el => (this.input = el), id: this.id, type: "radio", name: this.name, value: this.value, checked: this.checked, required: this.required, disabled: this.disabled, onInput: this.onChange.bind(this), onFocus: this.onFocus.bind(this), onBlur: this.onBlur.bind(this) }), h("span", { class: "circle" })), h("span", { class: "label", part: "label" }, this.label)));
|
|
3046
|
+
return (h(Host, null, h("label", { htmlFor: this.id, class: { 'is-hidden': this.labelHidden, 'is-disabled': this.disabled } }, h("span", { class: "radio" }, h("input", { ref: el => (this.input = el), id: this.id, type: "radio", name: this.name, value: this.value, checked: this.checked, required: this.required, disabled: this.disabled, onInput: this.onChange.bind(this), onFocus: this.onFocus.bind(this), onBlur: this.onBlur.bind(this) }), h("span", { class: "circle" })), h("span", { class: "label", part: "label" }, (this.hasSlottedLabel && h("slot", { name: "label" })) || this.label)), this.hintSection));
|
|
3047
|
+
}
|
|
3048
|
+
get hintSection() {
|
|
3049
|
+
const hasSlottedHint = !!this.hostElement.querySelector('[slot="hint"]');
|
|
3050
|
+
return ((this.hint || hasSlottedHint) && (h(CatFormHint, { hint: this.hint, slottedHint: hasSlottedHint && h("slot", { name: "hint" }) })));
|
|
2957
3051
|
}
|
|
2958
3052
|
onChange(event) {
|
|
3053
|
+
this.value = this.input.value;
|
|
2959
3054
|
this.catChange.emit(event);
|
|
2960
3055
|
}
|
|
2961
3056
|
onFocus(event) {
|
|
@@ -2964,6 +3059,7 @@ const CatRadio = class {
|
|
|
2964
3059
|
onBlur(event) {
|
|
2965
3060
|
this.catBlur.emit(event);
|
|
2966
3061
|
}
|
|
3062
|
+
get hostElement() { return getElement(this); }
|
|
2967
3063
|
};
|
|
2968
3064
|
CatRadio.style = catRadioCss;
|
|
2969
3065
|
|
|
@@ -4198,20 +4294,20 @@ const CatScrollable = class {
|
|
|
4198
4294
|
this.scrolledBottom = createEvent(this, "scrolledBottom", 7);
|
|
4199
4295
|
this.init = new Subject();
|
|
4200
4296
|
this.destroyed = new Subject();
|
|
4201
|
-
/** Flags to enable
|
|
4202
|
-
this.
|
|
4203
|
-
/** Flags to enable
|
|
4204
|
-
this.
|
|
4205
|
-
/** Flags to enable
|
|
4206
|
-
this.
|
|
4207
|
-
/** Flags to enable
|
|
4208
|
-
this.
|
|
4209
|
-
/** Flag to enable
|
|
4210
|
-
this.
|
|
4297
|
+
/** Flags to disable/enable scroll shadowX. */
|
|
4298
|
+
this.noShadowX = false;
|
|
4299
|
+
/** Flags to disable/enable scroll shadowY. */
|
|
4300
|
+
this.noShadowY = false;
|
|
4301
|
+
/** Flags to disable/enable overflowX. */
|
|
4302
|
+
this.noOverflowX = false;
|
|
4303
|
+
/** Flags to disable/enable overflowY. */
|
|
4304
|
+
this.noOverflowY = false;
|
|
4305
|
+
/** Flag to disable/enable overscroll behavior. */
|
|
4306
|
+
this.noOverscroll = false;
|
|
4211
4307
|
/**
|
|
4212
|
-
* Flag to fire an initial event after content initialization.
|
|
4308
|
+
* Flag to not fire an initial event after content initialization.
|
|
4213
4309
|
*/
|
|
4214
|
-
this.
|
|
4310
|
+
this.noScrolledInit = false;
|
|
4215
4311
|
/**
|
|
4216
4312
|
* Buffer to be used to calculate the scroll distance.
|
|
4217
4313
|
*/
|
|
@@ -4240,7 +4336,7 @@ const CatScrollable = class {
|
|
|
4240
4336
|
});
|
|
4241
4337
|
}
|
|
4242
4338
|
componentDidLoad() {
|
|
4243
|
-
if (this.
|
|
4339
|
+
if (!this.noScrolledInit) {
|
|
4244
4340
|
this.init.next();
|
|
4245
4341
|
}
|
|
4246
4342
|
}
|
|
@@ -4251,12 +4347,12 @@ const CatScrollable = class {
|
|
|
4251
4347
|
}
|
|
4252
4348
|
render() {
|
|
4253
4349
|
return [
|
|
4254
|
-
h("div", { class: "scrollable-wrapper", ref: el => (this.scrollWrapperElement = el) }, this.
|
|
4350
|
+
h("div", { class: "scrollable-wrapper", ref: el => (this.scrollWrapperElement = el) }, !this.noShadowY && h("div", { class: "shadow-top" }), !this.noShadowX && h("div", { class: "shadow-left" }), !this.noShadowX && h("div", { class: "shadow-right" }), !this.noShadowY && h("div", { class: "shadow-bottom" })),
|
|
4255
4351
|
h("div", { ref: el => (this.scrollElement = el), class: {
|
|
4256
4352
|
'scrollable-content': true,
|
|
4257
|
-
'scroll-x': this.
|
|
4258
|
-
'scroll-y': this.
|
|
4259
|
-
'no-overscroll':
|
|
4353
|
+
'scroll-x': !this.noOverflowX,
|
|
4354
|
+
'scroll-y': !this.noOverflowY,
|
|
4355
|
+
'no-overscroll': this.noOverscroll
|
|
4260
4356
|
} }, h("slot", null))
|
|
4261
4357
|
];
|
|
4262
4358
|
}
|
|
@@ -4366,6 +4462,107 @@ const CatSpinner = class {
|
|
|
4366
4462
|
};
|
|
4367
4463
|
CatSpinner.style = catSpinnerCss;
|
|
4368
4464
|
|
|
4465
|
+
const catTabCss = ":host{display:block}:host([hidden]){display:none}";
|
|
4466
|
+
|
|
4467
|
+
let nextUniqueId$2 = 0;
|
|
4468
|
+
const CatTab = class {
|
|
4469
|
+
constructor(hostRef) {
|
|
4470
|
+
registerInstance(this, hostRef);
|
|
4471
|
+
this.tabClick = createEvent(this, "tabClick", 7);
|
|
4472
|
+
/**
|
|
4473
|
+
* The label of the tab.
|
|
4474
|
+
*/
|
|
4475
|
+
this.label = '';
|
|
4476
|
+
/**
|
|
4477
|
+
* Hide the actual button content and only display the tab.
|
|
4478
|
+
*/
|
|
4479
|
+
this.iconOnly = false;
|
|
4480
|
+
/**
|
|
4481
|
+
* Display the icon on the right.
|
|
4482
|
+
*/
|
|
4483
|
+
this.iconRight = false;
|
|
4484
|
+
/**
|
|
4485
|
+
* Specifies that the tab should be deactivated.
|
|
4486
|
+
*/
|
|
4487
|
+
this.deactivated = false;
|
|
4488
|
+
}
|
|
4489
|
+
connectedCallback() {
|
|
4490
|
+
if (!this.hostElement.id) {
|
|
4491
|
+
this.hostElement.id = `cat-tab-${nextUniqueId$2++}`;
|
|
4492
|
+
}
|
|
4493
|
+
}
|
|
4494
|
+
onClick(event) {
|
|
4495
|
+
this.tabClick.emit(event);
|
|
4496
|
+
}
|
|
4497
|
+
render() {
|
|
4498
|
+
return h(Host, null);
|
|
4499
|
+
}
|
|
4500
|
+
get hostElement() { return getElement(this); }
|
|
4501
|
+
};
|
|
4502
|
+
CatTab.style = catTabCss;
|
|
4503
|
+
|
|
4504
|
+
const catTabsCss = ":host{display:flex;flex-direction:row;box-shadow:inset 0 -1px 0 0 #d7dbe0}:host([hidden]){display:none}:host([tabs-align=center]){justify-content:center}:host([tabs-align=right]){justify-content:end}:host([tabs-align=justify]) cat-button{flex:1 0 auto}.tab{padding:0.5rem}.tab.tab-active{box-shadow:inset 0 -3px 0 0 #207f8a}";
|
|
4505
|
+
|
|
4506
|
+
const CatTabs = class {
|
|
4507
|
+
constructor(hostRef) {
|
|
4508
|
+
registerInstance(this, hostRef);
|
|
4509
|
+
this.tabs = [];
|
|
4510
|
+
this.buttons = [];
|
|
4511
|
+
/**
|
|
4512
|
+
* The ID of the active tab.
|
|
4513
|
+
*/
|
|
4514
|
+
this.activeTab = '';
|
|
4515
|
+
/**
|
|
4516
|
+
* The alignment of the tabs.
|
|
4517
|
+
*/
|
|
4518
|
+
this.tabsAlign = 'left';
|
|
4519
|
+
}
|
|
4520
|
+
onActiveTabChanged(newActiveTab) {
|
|
4521
|
+
const activeTab = this.tabs.find(value => value.id === newActiveTab);
|
|
4522
|
+
activeTab === null || activeTab === void 0 ? void 0 : activeTab.click();
|
|
4523
|
+
}
|
|
4524
|
+
componentWillLoad() {
|
|
4525
|
+
this.tabs = Array.from(this.hostElement.querySelectorAll('cat-tab'));
|
|
4526
|
+
if (this.tabs.length) {
|
|
4527
|
+
this.activeTabId = this.activeTab;
|
|
4528
|
+
}
|
|
4529
|
+
}
|
|
4530
|
+
onKeydown(event) {
|
|
4531
|
+
var _a;
|
|
4532
|
+
if (['ArrowDown', 'ArrowUp', 'ArrowRight', 'ArrowLeft'].includes(event.key)) {
|
|
4533
|
+
const targetElements = this.buttons.filter(button => !button.disabled);
|
|
4534
|
+
const activeElement = (_a = this.hostElement.shadowRoot) === null || _a === void 0 ? void 0 : _a.activeElement;
|
|
4535
|
+
const activeIdx = activeElement ? targetElements.indexOf(activeElement) : -1;
|
|
4536
|
+
const activeOff = ['ArrowDown', 'ArrowRight'].includes(event.key) ? 1 : -1;
|
|
4537
|
+
const targetIdx = activeIdx < 0 ? 0 : (activeIdx + activeOff + targetElements.length) % targetElements.length;
|
|
4538
|
+
targetElements[targetIdx].setFocus();
|
|
4539
|
+
event.preventDefault();
|
|
4540
|
+
}
|
|
4541
|
+
}
|
|
4542
|
+
render() {
|
|
4543
|
+
return (h(Host, null, this.tabs.map((tab) => {
|
|
4544
|
+
return (h("cat-button", { ref: el => el && this.updateButtonsRef(el), buttonId: tab.id, role: "tab", part: "tab", class: {
|
|
4545
|
+
tab: true,
|
|
4546
|
+
'tab-active': Boolean(this.activeTabId && tab.id === this.activeTabId)
|
|
4547
|
+
}, color: this.activeTabId && tab.id === this.activeTabId ? 'primary' : 'secondary', variant: "text", icon: tab.icon, iconOnly: tab.iconOnly, iconRight: tab.iconRight, url: tab.url, disabled: tab.deactivated, urlTarget: tab.urlTarget, onCatClick: () => (this.activeTabId = tab.id) }, tab.label));
|
|
4548
|
+
})));
|
|
4549
|
+
}
|
|
4550
|
+
updateButtonsRef(button) {
|
|
4551
|
+
const indexOf = this.buttons.indexOf(button);
|
|
4552
|
+
if (indexOf >= 0) {
|
|
4553
|
+
this.buttons[indexOf] = button;
|
|
4554
|
+
}
|
|
4555
|
+
else {
|
|
4556
|
+
this.buttons.push(button);
|
|
4557
|
+
}
|
|
4558
|
+
}
|
|
4559
|
+
get hostElement() { return getElement(this); }
|
|
4560
|
+
static get watchers() { return {
|
|
4561
|
+
"activeTabId": ["onActiveTabChanged"]
|
|
4562
|
+
}; }
|
|
4563
|
+
};
|
|
4564
|
+
CatTabs.style = catTabsCss;
|
|
4565
|
+
|
|
4369
4566
|
const catToastDemoCss = ":host{display:block}";
|
|
4370
4567
|
|
|
4371
4568
|
const CatToastDemo = class {
|
|
@@ -4409,7 +4606,7 @@ const CatToastDemo = class {
|
|
|
4409
4606
|
};
|
|
4410
4607
|
CatToastDemo.style = catToastDemoCss;
|
|
4411
4608
|
|
|
4412
|
-
const catToggleCss = ":host{display:flex;margin-bottom:1rem}:host([hidden]){display:none}label{flex:0 1 auto;display:flex;gap:0.5rem;font-size:0.9375rem;line-height:1.25rem;-webkit-user-select:none;-ms-user-select:none;user-select:none;cursor:pointer}input{position:absolute !important;width:1px !important;height:1px !important;padding:0 !important;margin:-1px !important;overflow:hidden !important;clip:rect(0, 0, 0, 0) !important;white-space:nowrap !important;border:0 !important}.toggle{flex:0 0 auto;display:flex;align-items:center;justify-content:center;position:relative;width:2rem;height:1.25rem;border-radius:10rem;background-color:#d7dbe0;transition:background-color 0.13s ease}:checked+.toggle{background-color:rgb(var(--cat-primary-bg, 32, 127, 138))}:focus-visible+.toggle{outline:2px solid rgb(var(--cat-border-color-focus, 0, 113, 255));outline-offset:1px}.toggle::after{content:\"\";position:absolute;width:1rem;height:1rem;background:#fff;border-radius:10rem;transform:translateX(calc(2px - 0.5rem));transition:transform 0.13s linear;box-shadow:0 1px 4px 0 rgba(16, 29, 48, 0.2)}:checked+.toggle::after{transform:translateX(calc(-2px + 0.5rem))}.label{flex:1 1 auto}.is-hidden .label{position:absolute !important;width:1px !important;height:1px !important;padding:0 !important;margin:-1px !important;overflow:hidden !important;clip:rect(0, 0, 0, 0) !important;white-space:nowrap !important;border:0 !important}.is-disabled{cursor:not-allowed;color:rgb(var(--cat-font-color-muted, 105, 118, 135))}";
|
|
4609
|
+
const catToggleCss = ".hint-section{display:flex;gap:0.5rem;flex-direction:column}.hint-section .input-hint,.hint-section ::slotted([slot=hint]){font-size:0.875rem;line-height:1rem;margin:0}:host{display:flex;flex-direction:column;gap:0.5rem;margin-bottom:1rem}:host([hidden]){display:none}label{flex:0 1 auto;display:flex;gap:0.5rem;font-size:0.9375rem;line-height:1.25rem;-webkit-user-select:none;-ms-user-select:none;user-select:none;cursor:pointer}input{position:absolute !important;width:1px !important;height:1px !important;padding:0 !important;margin:-1px !important;overflow:hidden !important;clip:rect(0, 0, 0, 0) !important;white-space:nowrap !important;border:0 !important}.toggle{flex:0 0 auto;display:flex;align-items:center;justify-content:center;position:relative;width:2rem;height:1.25rem;border-radius:10rem;background-color:#d7dbe0;transition:background-color 0.13s ease}:checked+.toggle{background-color:rgb(var(--cat-primary-bg, 32, 127, 138))}:focus-visible+.toggle{outline:2px solid rgb(var(--cat-border-color-focus, 0, 113, 255));outline-offset:1px}.toggle::after{content:\"\";position:absolute;width:1rem;height:1rem;background:#fff;border-radius:10rem;transform:translateX(calc(2px - 0.5rem));transition:transform 0.13s linear;box-shadow:0 1px 4px 0 rgba(16, 29, 48, 0.2)}:checked+.toggle::after{transform:translateX(calc(-2px + 0.5rem))}.label{flex:1 1 auto}.is-hidden .label{position:absolute !important;width:1px !important;height:1px !important;padding:0 !important;margin:-1px !important;overflow:hidden !important;clip:rect(0, 0, 0, 0) !important;white-space:nowrap !important;border:0 !important}.is-disabled{cursor:not-allowed;color:rgb(var(--cat-font-color-muted, 105, 118, 135))}";
|
|
4413
4610
|
|
|
4414
4611
|
let nextUniqueId$1 = 0;
|
|
4415
4612
|
const CatToggle = class {
|
|
@@ -4419,6 +4616,7 @@ const CatToggle = class {
|
|
|
4419
4616
|
this.catFocus = createEvent(this, "catFocus", 7);
|
|
4420
4617
|
this.catBlur = createEvent(this, "catBlur", 7);
|
|
4421
4618
|
this.id = `cat-toggle-${nextUniqueId$1++}`;
|
|
4619
|
+
this.hasSlottedLabel = false;
|
|
4422
4620
|
/**
|
|
4423
4621
|
* Checked state of the toggle.
|
|
4424
4622
|
*/
|
|
@@ -4441,7 +4639,7 @@ const CatToggle = class {
|
|
|
4441
4639
|
this.required = false;
|
|
4442
4640
|
}
|
|
4443
4641
|
componentWillRender() {
|
|
4444
|
-
if (!this.label) {
|
|
4642
|
+
if (!this.label && !this.hostElement.querySelector('[slot="label"]')) {
|
|
4445
4643
|
loglevel.error('[A11y] Missing ARIA label on toggle', this);
|
|
4446
4644
|
}
|
|
4447
4645
|
}
|
|
@@ -4455,9 +4653,14 @@ const CatToggle = class {
|
|
|
4455
4653
|
this.input.focus(options);
|
|
4456
4654
|
}
|
|
4457
4655
|
render() {
|
|
4458
|
-
return (h("label", { htmlFor: this.id, class: { 'is-hidden': this.labelHidden, 'is-disabled': this.disabled } }, h("input", { ref: el => (this.input = el), id: this.id, type: "checkbox", name: this.name, value: this.value, checked: this.checked, required: this.required, disabled: this.disabled, class: "form-check-input", role: "switch", onInput: this.onInput.bind(this), onFocus: this.onFocus.bind(this), onBlur: this.onBlur.bind(this) }), h("span", { class: "toggle", part: "toggle" }), h("span", { class: "label", part: "label" }, this.label)));
|
|
4656
|
+
return (h(Host, null, h("label", { htmlFor: this.id, class: { 'is-hidden': this.labelHidden, 'is-disabled': this.disabled } }, h("input", { ref: el => (this.input = el), id: this.id, type: "checkbox", name: this.name, value: this.value, checked: this.checked, required: this.required, disabled: this.disabled, class: "form-check-input", role: "switch", onInput: this.onInput.bind(this), onFocus: this.onFocus.bind(this), onBlur: this.onBlur.bind(this) }), h("span", { class: "toggle", part: "toggle" }), h("span", { class: "label", part: "label" }, (this.hasSlottedLabel && h("slot", { name: "label" })) || this.label)), this.hintSection));
|
|
4657
|
+
}
|
|
4658
|
+
get hintSection() {
|
|
4659
|
+
const hasSlottedHint = !!this.hostElement.querySelector('[slot="hint"]');
|
|
4660
|
+
return ((this.hint || hasSlottedHint) && (h(CatFormHint, { hint: this.hint, slottedHint: hasSlottedHint && h("slot", { name: "hint" }) })));
|
|
4459
4661
|
}
|
|
4460
4662
|
onInput(event) {
|
|
4663
|
+
this.value = this.input.value;
|
|
4461
4664
|
this.catChange.emit(event);
|
|
4462
4665
|
}
|
|
4463
4666
|
onFocus(event) {
|
|
@@ -4466,6 +4669,7 @@ const CatToggle = class {
|
|
|
4466
4669
|
onBlur(event) {
|
|
4467
4670
|
this.catBlur.emit(event);
|
|
4468
4671
|
}
|
|
4672
|
+
get hostElement() { return getElement(this); }
|
|
4469
4673
|
};
|
|
4470
4674
|
CatToggle.style = catToggleCss;
|
|
4471
4675
|
|
|
@@ -4517,6 +4721,7 @@ const CatTooltip = class {
|
|
|
4517
4721
|
autoUpdate(this.trigger, this.tooltip, () => this.update());
|
|
4518
4722
|
}
|
|
4519
4723
|
if (isTouchDevice) {
|
|
4724
|
+
window.addEventListener('touchstart', this.windowTouchStartListener.bind(this));
|
|
4520
4725
|
(_b = this.trigger) === null || _b === void 0 ? void 0 : _b.addEventListener('touchstart', this.touchStartListener.bind(this));
|
|
4521
4726
|
(_c = this.trigger) === null || _c === void 0 ? void 0 : _c.addEventListener('touchend', this.touchEndListener.bind(this));
|
|
4522
4727
|
}
|
|
@@ -4530,6 +4735,7 @@ const CatTooltip = class {
|
|
|
4530
4735
|
disconnectedCallback() {
|
|
4531
4736
|
var _a, _b, _c, _d, _e, _f;
|
|
4532
4737
|
if (isTouchDevice) {
|
|
4738
|
+
window.removeEventListener('touchstart', this.windowTouchStartListener.bind(this));
|
|
4533
4739
|
(_a = this.trigger) === null || _a === void 0 ? void 0 : _a.removeEventListener('touchstart', this.touchStartListener.bind(this));
|
|
4534
4740
|
(_b = this.trigger) === null || _b === void 0 ? void 0 : _b.removeEventListener('touchend', this.touchEndListener.bind(this));
|
|
4535
4741
|
}
|
|
@@ -4564,34 +4770,37 @@ const CatTooltip = class {
|
|
|
4564
4770
|
showListener() {
|
|
4565
4771
|
window.clearTimeout(this.hideTimeout);
|
|
4566
4772
|
this.showTimeout = window.setTimeout(() => {
|
|
4567
|
-
var _a
|
|
4568
|
-
(_a = this.
|
|
4569
|
-
(_b = this.tooltip) === null || _b === void 0 ? void 0 : _b.classList.add('tooltip-show');
|
|
4773
|
+
var _a;
|
|
4774
|
+
(_a = this.tooltip) === null || _a === void 0 ? void 0 : _a.classList.add('tooltip-show');
|
|
4570
4775
|
}, this.showDelay);
|
|
4571
4776
|
}
|
|
4572
4777
|
hideListener() {
|
|
4573
4778
|
window.clearTimeout(this.showTimeout);
|
|
4574
4779
|
this.hideTimeout = window.setTimeout(() => {
|
|
4575
|
-
var _a
|
|
4576
|
-
(_a = this.
|
|
4577
|
-
(_b = this.tooltip) === null || _b === void 0 ? void 0 : _b.classList.remove('tooltip-show');
|
|
4780
|
+
var _a;
|
|
4781
|
+
(_a = this.tooltip) === null || _a === void 0 ? void 0 : _a.classList.remove('tooltip-show');
|
|
4578
4782
|
}, this.hideDelay);
|
|
4579
4783
|
}
|
|
4580
|
-
touchStartListener() {
|
|
4784
|
+
touchStartListener(event) {
|
|
4785
|
+
event.stopPropagation();
|
|
4581
4786
|
this.touchTimeout = window.setTimeout(() => {
|
|
4582
4787
|
var _a;
|
|
4583
4788
|
(_a = this.tooltip) === null || _a === void 0 ? void 0 : _a.classList.add('tooltip-show');
|
|
4584
4789
|
}, this.longTouchDuration);
|
|
4585
4790
|
}
|
|
4586
4791
|
touchEndListener() {
|
|
4792
|
+
if (this.touchTimeout) {
|
|
4793
|
+
window.clearTimeout(this.touchTimeout);
|
|
4794
|
+
}
|
|
4795
|
+
}
|
|
4796
|
+
windowTouchStartListener() {
|
|
4587
4797
|
var _a;
|
|
4588
|
-
window.clearTimeout(this.touchTimeout);
|
|
4589
4798
|
(_a = this.tooltip) === null || _a === void 0 ? void 0 : _a.classList.remove('tooltip-show');
|
|
4590
4799
|
}
|
|
4591
4800
|
};
|
|
4592
4801
|
CatTooltip.OFFSET = 4;
|
|
4593
4802
|
CatTooltip.style = catTooltipCss;
|
|
4594
4803
|
|
|
4595
|
-
export { CatAlert as cat_alert, CatBadge as cat_badge, CatButton as cat_button, CatCard as cat_card, CatCheckbox as cat_checkbox, CatIcon as cat_icon, CatInput as cat_input, CatMenu as cat_menu, CatRadio as cat_radio, CatScrollable as cat_scrollable, CatSkeleton as cat_skeleton, CatSpinner as cat_spinner, CatToastDemo as cat_toast_demo, CatToggle as cat_toggle, CatTooltip as cat_tooltip };
|
|
4804
|
+
export { CatAlert as cat_alert, CatAvatar as cat_avatar, CatBadge as cat_badge, CatButton as cat_button, CatCard as cat_card, CatCheckbox as cat_checkbox, CatIcon as cat_icon, CatInput as cat_input, CatMenu as cat_menu, CatRadio as cat_radio, CatScrollable as cat_scrollable, CatSkeleton as cat_skeleton, CatSpinner as cat_spinner, CatTab as cat_tab, CatTabs as cat_tabs, CatToastDemo as cat_toast_demo, CatToggle as cat_toggle, CatTooltip as cat_tooltip };
|
|
4596
4805
|
|
|
4597
|
-
//# sourceMappingURL=cat-
|
|
4806
|
+
//# sourceMappingURL=cat-alert_18.entry.js.map
|