@haiilo/catalyst 0.6.0 → 0.7.2
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.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-4254363e.entry.js +2 -0
- package/dist/catalyst/p-4254363e.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-dda85567.entry.js +10 -0
- package/dist/catalyst/p-dda85567.entry.js.map +1 -0
- package/dist/catalyst/scss/_mixins.scss +9 -0
- package/dist/catalyst/scss/_variables.scss +64 -0
- package/dist/catalyst/scss/_variables.tokens.scss +84 -0
- package/dist/catalyst/scss/core/_base.scss +12 -0
- package/dist/catalyst/scss/core/_nav.scss +23 -0
- package/dist/catalyst/scss/core/_typography.scss +237 -0
- package/dist/catalyst/scss/fonts/_fonts.mixins.azeret.scss +14 -0
- package/dist/catalyst/scss/fonts/_fonts.mixins.dm.scss +53 -0
- package/dist/catalyst/scss/fonts/_fonts.mixins.lato.scss +185 -0
- package/dist/catalyst/scss/fonts/_fonts.mixins.scss +3 -0
- package/dist/catalyst/scss/fonts/_fonts.scss +13 -0
- package/dist/catalyst/scss/index.scss +32 -0
- package/dist/catalyst/scss/utils/_color.scss +52 -0
- package/dist/catalyst/scss/utils/_disabled.mixins.scss +7 -0
- package/dist/catalyst/scss/utils/_display.scss +20 -0
- package/dist/catalyst/scss/utils/_elevation.mixins.scss +10 -0
- package/dist/catalyst/scss/utils/_elevation.scss +19 -0
- package/dist/catalyst/scss/utils/_layout.scss +78 -0
- package/dist/catalyst/scss/utils/_media.mixins.scss +37 -0
- package/dist/catalyst/scss/utils/_ratio.mixins.scss +12 -0
- package/dist/catalyst/scss/utils/_ratio.scss +20 -0
- package/dist/catalyst/scss/utils/_sizing.mixins.scss +15 -0
- package/dist/catalyst/scss/utils/_sizing.scss +16 -0
- package/dist/catalyst/scss/utils/_spacing.mixins.scss +5 -0
- package/dist/catalyst/scss/utils/_spacing.scss +49 -0
- package/dist/catalyst/scss/utils/_toast.scss +77 -0
- package/dist/catalyst/scss/utils/_typography.mixins.scss +102 -0
- package/dist/catalyst/scss/utils/_typography.scss +34 -0
- package/dist/catalyst/scss/utils/_visibility.mixins.scss +29 -0
- package/dist/catalyst/scss/utils/_visibility.scss +13 -0
- package/dist/cjs/app-globals-aa29ad72.js.map +1 -1
- package/dist/cjs/{cat-alert_16.cjs.entry.js → cat-alert_18.cjs.entry.js} +174 -44
- 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 +13 -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 +2 -0
- package/dist/collection/components/cat-checkbox/cat-checkbox.css +14 -0
- package/dist/collection/components/cat-checkbox/cat-checkbox.js +44 -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-icon/cat-icon.css +4 -1
- package/dist/collection/components/cat-input/cat-input.css +12 -6
- package/dist/collection/components/cat-input/cat-input.js +24 -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 +41 -8
- package/dist/collection/components/cat-radio/cat-radio.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 +24 -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 +40 -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/scss/_mixins.scss +9 -0
- package/dist/collection/scss/_variables.scss +64 -0
- package/dist/collection/scss/_variables.tokens.scss +84 -0
- package/dist/collection/scss/core/_base.scss +12 -0
- package/dist/collection/scss/core/_nav.scss +23 -0
- package/dist/collection/scss/core/_typography.scss +237 -0
- package/dist/collection/scss/fonts/_fonts.mixins.azeret.scss +14 -0
- package/dist/collection/scss/fonts/_fonts.mixins.dm.scss +53 -0
- package/dist/collection/scss/fonts/_fonts.mixins.lato.scss +185 -0
- package/dist/collection/scss/fonts/_fonts.mixins.scss +3 -0
- package/dist/collection/scss/fonts/_fonts.scss +13 -0
- package/dist/collection/scss/index.scss +32 -0
- package/dist/collection/scss/utils/_color.scss +52 -0
- package/dist/collection/scss/utils/_disabled.mixins.scss +7 -0
- package/dist/collection/scss/utils/_display.scss +20 -0
- package/dist/collection/scss/utils/_elevation.mixins.scss +10 -0
- package/dist/collection/scss/utils/_elevation.scss +19 -0
- package/dist/collection/scss/utils/_layout.scss +78 -0
- package/dist/collection/scss/utils/_media.mixins.scss +37 -0
- package/dist/collection/scss/utils/_ratio.mixins.scss +12 -0
- package/dist/collection/scss/utils/_ratio.scss +20 -0
- package/dist/collection/scss/utils/_sizing.mixins.scss +15 -0
- package/dist/collection/scss/utils/_sizing.scss +16 -0
- package/dist/collection/scss/utils/_spacing.mixins.scss +5 -0
- package/dist/collection/scss/utils/_spacing.scss +49 -0
- package/dist/collection/scss/utils/_toast.scss +77 -0
- package/dist/collection/scss/utils/_typography.mixins.scss +102 -0
- package/dist/collection/scss/utils/_typography.scss +34 -0
- package/dist/collection/scss/utils/_visibility.mixins.scss +29 -0
- package/dist/collection/scss/utils/_visibility.scss +13 -0
- package/dist/components/cat-checkbox.js +16 -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-icon2.js +1 -1
- package/dist/components/cat-icon2.js.map +1 -1
- package/dist/components/cat-input.js +16 -18
- package/dist/components/cat-input.js.map +1 -1
- package/dist/components/cat-radio.js +16 -5
- package/dist/components/cat-radio.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 +14 -12
- package/dist/components/cat-textarea.js.map +1 -1
- package/dist/components/cat-toggle.js +16 -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_16.entry.js → cat-alert_18.entry.js} +173 -45
- 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 +13 -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-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-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 +134 -8
- package/package.json +2 -2
- package/dist/catalyst/p-6a5f0d4a.entry.js +0 -10
- package/dist/catalyst/p-6a5f0d4a.entry.js.map +0 -1
- 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/cjs/cat-alert_16.cjs.entry.js.map +0 -1
- package/dist/cjs/index-5d72f0e4.js.map +0 -1
- package/dist/esm/cat-alert_16.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
|
|
|
@@ -459,16 +460,17 @@ const CatCard = class {
|
|
|
459
460
|
};
|
|
460
461
|
CatCard.style = catCardCss;
|
|
461
462
|
|
|
462
|
-
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))}";
|
|
463
464
|
|
|
464
|
-
let nextUniqueId$
|
|
465
|
+
let nextUniqueId$6 = 0;
|
|
465
466
|
const CatCheckbox = class {
|
|
466
467
|
constructor(hostRef) {
|
|
467
468
|
registerInstance(this, hostRef);
|
|
468
469
|
this.catChange = createEvent(this, "catChange", 7);
|
|
469
470
|
this.catFocus = createEvent(this, "catFocus", 7);
|
|
470
471
|
this.catBlur = createEvent(this, "catBlur", 7);
|
|
471
|
-
this.id = `cat-checkbox-${nextUniqueId$
|
|
472
|
+
this.id = `cat-checkbox-${nextUniqueId$6++}`;
|
|
473
|
+
this.hasSlottedLabel = false;
|
|
472
474
|
/**
|
|
473
475
|
* Checked state of the checkbox
|
|
474
476
|
*/
|
|
@@ -500,7 +502,8 @@ const CatCheckbox = class {
|
|
|
500
502
|
}
|
|
501
503
|
}
|
|
502
504
|
componentWillRender() {
|
|
503
|
-
|
|
505
|
+
this.hasSlottedLabel = !!this.hostElement.querySelector('[slot="label"]');
|
|
506
|
+
if (!this.label && !this.hasSlottedLabel) {
|
|
504
507
|
loglevel.error('[A11y] Missing ARIA label on checkbox', this);
|
|
505
508
|
}
|
|
506
509
|
}
|
|
@@ -514,9 +517,14 @@ const CatCheckbox = class {
|
|
|
514
517
|
this.input.focus(options);
|
|
515
518
|
}
|
|
516
519
|
render() {
|
|
517
|
-
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)));
|
|
520
|
+
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));
|
|
521
|
+
}
|
|
522
|
+
get hintSection() {
|
|
523
|
+
const hasSlottedHint = !!this.hostElement.querySelector('[slot="hint"]');
|
|
524
|
+
return ((this.hint || hasSlottedHint) && (h(CatFormHint, { hint: this.hint, slottedHint: hasSlottedHint && h("slot", { name: "hint" }) })));
|
|
518
525
|
}
|
|
519
526
|
onInput(event) {
|
|
527
|
+
this.value = this.input.value;
|
|
520
528
|
this.catChange.emit(event);
|
|
521
529
|
}
|
|
522
530
|
onFocus(event) {
|
|
@@ -525,10 +533,11 @@ const CatCheckbox = class {
|
|
|
525
533
|
onBlur(event) {
|
|
526
534
|
this.catBlur.emit(event);
|
|
527
535
|
}
|
|
536
|
+
get hostElement() { return getElement(this); }
|
|
528
537
|
};
|
|
529
538
|
CatCheckbox.style = catCheckboxCss;
|
|
530
539
|
|
|
531
|
-
const catIconCss = ":host{display:inline-flex;vertical-align:middle;-webkit-user-select:none;-ms-user-select:none;user-select:none;}:host([hidden]){display:none}span{display:inline-flex}svg{fill:currentColor;stroke:none;transform-origin:center center;
|
|
540
|
+
const catIconCss = ":host{display:inline-flex;vertical-align:middle;-webkit-user-select:none;-ms-user-select:none;user-select:none;}:host([hidden]){display:none}span{display:inline-flex}svg{fill:currentColor;stroke:none;transform-origin:center center;height:1em;width:calc(var(--cat-icon-ratio, 1) * 1em)}.icon-xs svg{font-size:0.75rem}.icon-s svg{font-size:1rem}.icon-m svg{font-size:1.25rem}.icon-l svg{font-size:1.5rem}.icon-xl svg{font-size:1.75rem}";
|
|
532
541
|
|
|
533
542
|
const CatIcon = class {
|
|
534
543
|
constructor(hostRef) {
|
|
@@ -552,9 +561,9 @@ const CatIcon = class {
|
|
|
552
561
|
};
|
|
553
562
|
CatIcon.style = catIconCss;
|
|
554
563
|
|
|
555
|
-
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}
|
|
564
|
+
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}";
|
|
556
565
|
|
|
557
|
-
let nextUniqueId$
|
|
566
|
+
let nextUniqueId$5 = 0;
|
|
558
567
|
const CatInput = class {
|
|
559
568
|
constructor(hostRef) {
|
|
560
569
|
registerInstance(this, hostRef);
|
|
@@ -562,8 +571,8 @@ const CatInput = class {
|
|
|
562
571
|
this.catFocus = createEvent(this, "catFocus", 7);
|
|
563
572
|
this.catBlur = createEvent(this, "catBlur", 7);
|
|
564
573
|
this.i18n = CatI18nRegistry.getInstance();
|
|
565
|
-
this.id = `cat-input-${nextUniqueId$
|
|
566
|
-
this.
|
|
574
|
+
this.id = `cat-input-${nextUniqueId$5++}`;
|
|
575
|
+
this.hasSlottedLabel = false;
|
|
567
576
|
/**
|
|
568
577
|
* Whether the input should show a clear button.
|
|
569
578
|
*/
|
|
@@ -605,14 +614,9 @@ const CatInput = class {
|
|
|
605
614
|
*/
|
|
606
615
|
this.type = 'text';
|
|
607
616
|
}
|
|
608
|
-
onValueChange(value) {
|
|
609
|
-
this.inputValue = '' + (value !== null && value !== void 0 ? value : '');
|
|
610
|
-
}
|
|
611
|
-
componentWillLoad() {
|
|
612
|
-
this.onValueChange(this.value);
|
|
613
|
-
}
|
|
614
617
|
componentWillRender() {
|
|
615
|
-
|
|
618
|
+
this.hasSlottedLabel = !!this.hostElement.querySelector('[slot="label"]');
|
|
619
|
+
if (!this.label && !this.hasSlottedLabel) {
|
|
616
620
|
loglevel.error('[A11y] Missing ARIA label on input', this);
|
|
617
621
|
}
|
|
618
622
|
}
|
|
@@ -629,19 +633,23 @@ const CatInput = class {
|
|
|
629
633
|
* Clear the input.
|
|
630
634
|
*/
|
|
631
635
|
async clear() {
|
|
632
|
-
this.
|
|
636
|
+
this.value = '';
|
|
633
637
|
}
|
|
634
638
|
render() {
|
|
635
|
-
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: {
|
|
639
|
+
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: {
|
|
636
640
|
'input-wrapper': true,
|
|
637
641
|
'input-round': this.round,
|
|
638
642
|
'input-disabled': this.disabled
|
|
639
643
|
}, 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: {
|
|
640
644
|
'has-clearable': this.clearable && !this.disabled
|
|
641
|
-
}, 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.
|
|
645
|
+
}, 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));
|
|
646
|
+
}
|
|
647
|
+
get hintSection() {
|
|
648
|
+
const hasSlottedHint = !!this.hostElement.querySelector('[slot="hint"]');
|
|
649
|
+
return ((this.hint || hasSlottedHint) && (h(CatFormHint, { hint: this.hint, slottedHint: hasSlottedHint && h("slot", { name: "hint" }) })));
|
|
642
650
|
}
|
|
643
651
|
onInput(event) {
|
|
644
|
-
this.
|
|
652
|
+
this.value = this.input.value;
|
|
645
653
|
this.catChange.emit(event);
|
|
646
654
|
}
|
|
647
655
|
onFocus(event) {
|
|
@@ -650,9 +658,7 @@ const CatInput = class {
|
|
|
650
658
|
onBlur(event) {
|
|
651
659
|
this.catBlur.emit(event);
|
|
652
660
|
}
|
|
653
|
-
|
|
654
|
-
"value": ["onValueChange"]
|
|
655
|
-
}; }
|
|
661
|
+
get hostElement() { return getElement(this); }
|
|
656
662
|
};
|
|
657
663
|
CatInput.style = catInputCss;
|
|
658
664
|
|
|
@@ -2891,13 +2897,13 @@ const firstTabbable = (container) => {
|
|
|
2891
2897
|
|
|
2892
2898
|
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}";
|
|
2893
2899
|
|
|
2894
|
-
let nextUniqueId$
|
|
2900
|
+
let nextUniqueId$4 = 0;
|
|
2895
2901
|
const CatMenu = class {
|
|
2896
2902
|
constructor(hostRef) {
|
|
2897
2903
|
registerInstance(this, hostRef);
|
|
2898
2904
|
this.catOpen = createEvent(this, "catOpen", 7);
|
|
2899
2905
|
this.catClose = createEvent(this, "catClose", 7);
|
|
2900
|
-
this.id = nextUniqueId$
|
|
2906
|
+
this.id = nextUniqueId$4++;
|
|
2901
2907
|
/**
|
|
2902
2908
|
* The placement of the menu.
|
|
2903
2909
|
*/
|
|
@@ -2992,16 +2998,17 @@ const CatMenu = class {
|
|
|
2992
2998
|
CatMenu.OFFSET = 4;
|
|
2993
2999
|
CatMenu.style = catMenuCss;
|
|
2994
3000
|
|
|
2995
|
-
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}";
|
|
3001
|
+
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}";
|
|
2996
3002
|
|
|
2997
|
-
let nextUniqueId$
|
|
3003
|
+
let nextUniqueId$3 = 0;
|
|
2998
3004
|
const CatRadio = class {
|
|
2999
3005
|
constructor(hostRef) {
|
|
3000
3006
|
registerInstance(this, hostRef);
|
|
3001
3007
|
this.catChange = createEvent(this, "catChange", 7);
|
|
3002
3008
|
this.catFocus = createEvent(this, "catFocus", 7);
|
|
3003
3009
|
this.catBlur = createEvent(this, "catBlur", 7);
|
|
3004
|
-
this.id = `cat-radio-${++nextUniqueId$
|
|
3010
|
+
this.id = `cat-radio-${++nextUniqueId$3}`;
|
|
3011
|
+
this.hasSlottedLabel = false;
|
|
3005
3012
|
/**
|
|
3006
3013
|
* Whether this radio is checked.
|
|
3007
3014
|
*/
|
|
@@ -3024,7 +3031,8 @@ const CatRadio = class {
|
|
|
3024
3031
|
this.required = false;
|
|
3025
3032
|
}
|
|
3026
3033
|
componentWillRender() {
|
|
3027
|
-
|
|
3034
|
+
this.hasSlottedLabel = !!this.hostElement.querySelector('[slot="label"]');
|
|
3035
|
+
if (!this.label && !this.hasSlottedLabel) {
|
|
3028
3036
|
loglevel.error('[A11y] Missing ARIA label on radio', this);
|
|
3029
3037
|
}
|
|
3030
3038
|
}
|
|
@@ -3038,9 +3046,14 @@ const CatRadio = class {
|
|
|
3038
3046
|
this.input.focus(options);
|
|
3039
3047
|
}
|
|
3040
3048
|
render() {
|
|
3041
|
-
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)));
|
|
3049
|
+
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));
|
|
3050
|
+
}
|
|
3051
|
+
get hintSection() {
|
|
3052
|
+
const hasSlottedHint = !!this.hostElement.querySelector('[slot="hint"]');
|
|
3053
|
+
return ((this.hint || hasSlottedHint) && (h(CatFormHint, { hint: this.hint, slottedHint: hasSlottedHint && h("slot", { name: "hint" }) })));
|
|
3042
3054
|
}
|
|
3043
3055
|
onChange(event) {
|
|
3056
|
+
this.value = this.input.value;
|
|
3044
3057
|
this.catChange.emit(event);
|
|
3045
3058
|
}
|
|
3046
3059
|
onFocus(event) {
|
|
@@ -3049,6 +3062,7 @@ const CatRadio = class {
|
|
|
3049
3062
|
onBlur(event) {
|
|
3050
3063
|
this.catBlur.emit(event);
|
|
3051
3064
|
}
|
|
3065
|
+
get hostElement() { return getElement(this); }
|
|
3052
3066
|
};
|
|
3053
3067
|
CatRadio.style = catRadioCss;
|
|
3054
3068
|
|
|
@@ -4451,6 +4465,107 @@ const CatSpinner = class {
|
|
|
4451
4465
|
};
|
|
4452
4466
|
CatSpinner.style = catSpinnerCss;
|
|
4453
4467
|
|
|
4468
|
+
const catTabCss = ":host{display:block}:host([hidden]){display:none}";
|
|
4469
|
+
|
|
4470
|
+
let nextUniqueId$2 = 0;
|
|
4471
|
+
const CatTab = class {
|
|
4472
|
+
constructor(hostRef) {
|
|
4473
|
+
registerInstance(this, hostRef);
|
|
4474
|
+
this.tabClick = createEvent(this, "tabClick", 7);
|
|
4475
|
+
/**
|
|
4476
|
+
* The label of the tab.
|
|
4477
|
+
*/
|
|
4478
|
+
this.label = '';
|
|
4479
|
+
/**
|
|
4480
|
+
* Hide the actual button content and only display the tab.
|
|
4481
|
+
*/
|
|
4482
|
+
this.iconOnly = false;
|
|
4483
|
+
/**
|
|
4484
|
+
* Display the icon on the right.
|
|
4485
|
+
*/
|
|
4486
|
+
this.iconRight = false;
|
|
4487
|
+
/**
|
|
4488
|
+
* Specifies that the tab should be deactivated.
|
|
4489
|
+
*/
|
|
4490
|
+
this.deactivated = false;
|
|
4491
|
+
}
|
|
4492
|
+
connectedCallback() {
|
|
4493
|
+
if (!this.hostElement.id) {
|
|
4494
|
+
this.hostElement.id = `cat-tab-${nextUniqueId$2++}`;
|
|
4495
|
+
}
|
|
4496
|
+
}
|
|
4497
|
+
onClick(event) {
|
|
4498
|
+
this.tabClick.emit(event);
|
|
4499
|
+
}
|
|
4500
|
+
render() {
|
|
4501
|
+
return h(Host, null);
|
|
4502
|
+
}
|
|
4503
|
+
get hostElement() { return getElement(this); }
|
|
4504
|
+
};
|
|
4505
|
+
CatTab.style = catTabCss;
|
|
4506
|
+
|
|
4507
|
+
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}";
|
|
4508
|
+
|
|
4509
|
+
const CatTabs = class {
|
|
4510
|
+
constructor(hostRef) {
|
|
4511
|
+
registerInstance(this, hostRef);
|
|
4512
|
+
this.tabs = [];
|
|
4513
|
+
this.buttons = [];
|
|
4514
|
+
/**
|
|
4515
|
+
* The ID of the active tab.
|
|
4516
|
+
*/
|
|
4517
|
+
this.activeTab = '';
|
|
4518
|
+
/**
|
|
4519
|
+
* The alignment of the tabs.
|
|
4520
|
+
*/
|
|
4521
|
+
this.tabsAlign = 'left';
|
|
4522
|
+
}
|
|
4523
|
+
onActiveTabChanged(newActiveTab) {
|
|
4524
|
+
const activeTab = this.tabs.find(value => value.id === newActiveTab);
|
|
4525
|
+
activeTab === null || activeTab === void 0 ? void 0 : activeTab.click();
|
|
4526
|
+
}
|
|
4527
|
+
componentWillLoad() {
|
|
4528
|
+
this.tabs = Array.from(this.hostElement.querySelectorAll('cat-tab'));
|
|
4529
|
+
if (this.tabs.length) {
|
|
4530
|
+
this.activeTabId = this.activeTab;
|
|
4531
|
+
}
|
|
4532
|
+
}
|
|
4533
|
+
onKeydown(event) {
|
|
4534
|
+
var _a;
|
|
4535
|
+
if (['ArrowDown', 'ArrowUp', 'ArrowRight', 'ArrowLeft'].includes(event.key)) {
|
|
4536
|
+
const targetElements = this.buttons.filter(button => !button.disabled);
|
|
4537
|
+
const activeElement = (_a = this.hostElement.shadowRoot) === null || _a === void 0 ? void 0 : _a.activeElement;
|
|
4538
|
+
const activeIdx = activeElement ? targetElements.indexOf(activeElement) : -1;
|
|
4539
|
+
const activeOff = ['ArrowDown', 'ArrowRight'].includes(event.key) ? 1 : -1;
|
|
4540
|
+
const targetIdx = activeIdx < 0 ? 0 : (activeIdx + activeOff + targetElements.length) % targetElements.length;
|
|
4541
|
+
targetElements[targetIdx].setFocus();
|
|
4542
|
+
event.preventDefault();
|
|
4543
|
+
}
|
|
4544
|
+
}
|
|
4545
|
+
render() {
|
|
4546
|
+
return (h(Host, null, this.tabs.map((tab) => {
|
|
4547
|
+
return (h("cat-button", { ref: el => el && this.updateButtonsRef(el), buttonId: tab.id, role: "tab", part: "tab", class: {
|
|
4548
|
+
tab: true,
|
|
4549
|
+
'tab-active': Boolean(this.activeTabId && tab.id === this.activeTabId)
|
|
4550
|
+
}, 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));
|
|
4551
|
+
})));
|
|
4552
|
+
}
|
|
4553
|
+
updateButtonsRef(button) {
|
|
4554
|
+
const indexOf = this.buttons.indexOf(button);
|
|
4555
|
+
if (indexOf >= 0) {
|
|
4556
|
+
this.buttons[indexOf] = button;
|
|
4557
|
+
}
|
|
4558
|
+
else {
|
|
4559
|
+
this.buttons.push(button);
|
|
4560
|
+
}
|
|
4561
|
+
}
|
|
4562
|
+
get hostElement() { return getElement(this); }
|
|
4563
|
+
static get watchers() { return {
|
|
4564
|
+
"activeTabId": ["onActiveTabChanged"]
|
|
4565
|
+
}; }
|
|
4566
|
+
};
|
|
4567
|
+
CatTabs.style = catTabsCss;
|
|
4568
|
+
|
|
4454
4569
|
const catToastDemoCss = ":host{display:block}";
|
|
4455
4570
|
|
|
4456
4571
|
const CatToastDemo = class {
|
|
@@ -4494,7 +4609,7 @@ const CatToastDemo = class {
|
|
|
4494
4609
|
};
|
|
4495
4610
|
CatToastDemo.style = catToastDemoCss;
|
|
4496
4611
|
|
|
4497
|
-
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))}";
|
|
4612
|
+
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))}";
|
|
4498
4613
|
|
|
4499
4614
|
let nextUniqueId$1 = 0;
|
|
4500
4615
|
const CatToggle = class {
|
|
@@ -4504,6 +4619,7 @@ const CatToggle = class {
|
|
|
4504
4619
|
this.catFocus = createEvent(this, "catFocus", 7);
|
|
4505
4620
|
this.catBlur = createEvent(this, "catBlur", 7);
|
|
4506
4621
|
this.id = `cat-toggle-${nextUniqueId$1++}`;
|
|
4622
|
+
this.hasSlottedLabel = false;
|
|
4507
4623
|
/**
|
|
4508
4624
|
* Checked state of the toggle.
|
|
4509
4625
|
*/
|
|
@@ -4526,7 +4642,8 @@ const CatToggle = class {
|
|
|
4526
4642
|
this.required = false;
|
|
4527
4643
|
}
|
|
4528
4644
|
componentWillRender() {
|
|
4529
|
-
|
|
4645
|
+
this.hasSlottedLabel = !!this.hostElement.querySelector('[slot="label"]');
|
|
4646
|
+
if (!this.label && !this.hasSlottedLabel) {
|
|
4530
4647
|
loglevel.error('[A11y] Missing ARIA label on toggle', this);
|
|
4531
4648
|
}
|
|
4532
4649
|
}
|
|
@@ -4540,9 +4657,14 @@ const CatToggle = class {
|
|
|
4540
4657
|
this.input.focus(options);
|
|
4541
4658
|
}
|
|
4542
4659
|
render() {
|
|
4543
|
-
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)));
|
|
4660
|
+
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));
|
|
4661
|
+
}
|
|
4662
|
+
get hintSection() {
|
|
4663
|
+
const hasSlottedHint = !!this.hostElement.querySelector('[slot="hint"]');
|
|
4664
|
+
return ((this.hint || hasSlottedHint) && (h(CatFormHint, { hint: this.hint, slottedHint: hasSlottedHint && h("slot", { name: "hint" }) })));
|
|
4544
4665
|
}
|
|
4545
4666
|
onInput(event) {
|
|
4667
|
+
this.value = this.input.value;
|
|
4546
4668
|
this.catChange.emit(event);
|
|
4547
4669
|
}
|
|
4548
4670
|
onFocus(event) {
|
|
@@ -4551,6 +4673,7 @@ const CatToggle = class {
|
|
|
4551
4673
|
onBlur(event) {
|
|
4552
4674
|
this.catBlur.emit(event);
|
|
4553
4675
|
}
|
|
4676
|
+
get hostElement() { return getElement(this); }
|
|
4554
4677
|
};
|
|
4555
4678
|
CatToggle.style = catToggleCss;
|
|
4556
4679
|
|
|
@@ -4602,6 +4725,7 @@ const CatTooltip = class {
|
|
|
4602
4725
|
autoUpdate(this.trigger, this.tooltip, () => this.update());
|
|
4603
4726
|
}
|
|
4604
4727
|
if (isTouchDevice) {
|
|
4728
|
+
window.addEventListener('touchstart', this.windowTouchStartListener.bind(this));
|
|
4605
4729
|
(_b = this.trigger) === null || _b === void 0 ? void 0 : _b.addEventListener('touchstart', this.touchStartListener.bind(this));
|
|
4606
4730
|
(_c = this.trigger) === null || _c === void 0 ? void 0 : _c.addEventListener('touchend', this.touchEndListener.bind(this));
|
|
4607
4731
|
}
|
|
@@ -4615,6 +4739,7 @@ const CatTooltip = class {
|
|
|
4615
4739
|
disconnectedCallback() {
|
|
4616
4740
|
var _a, _b, _c, _d, _e, _f;
|
|
4617
4741
|
if (isTouchDevice) {
|
|
4742
|
+
window.removeEventListener('touchstart', this.windowTouchStartListener.bind(this));
|
|
4618
4743
|
(_a = this.trigger) === null || _a === void 0 ? void 0 : _a.removeEventListener('touchstart', this.touchStartListener.bind(this));
|
|
4619
4744
|
(_b = this.trigger) === null || _b === void 0 ? void 0 : _b.removeEventListener('touchend', this.touchEndListener.bind(this));
|
|
4620
4745
|
}
|
|
@@ -4649,34 +4774,37 @@ const CatTooltip = class {
|
|
|
4649
4774
|
showListener() {
|
|
4650
4775
|
window.clearTimeout(this.hideTimeout);
|
|
4651
4776
|
this.showTimeout = window.setTimeout(() => {
|
|
4652
|
-
var _a
|
|
4653
|
-
(_a = this.
|
|
4654
|
-
(_b = this.tooltip) === null || _b === void 0 ? void 0 : _b.classList.add('tooltip-show');
|
|
4777
|
+
var _a;
|
|
4778
|
+
(_a = this.tooltip) === null || _a === void 0 ? void 0 : _a.classList.add('tooltip-show');
|
|
4655
4779
|
}, this.showDelay);
|
|
4656
4780
|
}
|
|
4657
4781
|
hideListener() {
|
|
4658
4782
|
window.clearTimeout(this.showTimeout);
|
|
4659
4783
|
this.hideTimeout = window.setTimeout(() => {
|
|
4660
|
-
var _a
|
|
4661
|
-
(_a = this.
|
|
4662
|
-
(_b = this.tooltip) === null || _b === void 0 ? void 0 : _b.classList.remove('tooltip-show');
|
|
4784
|
+
var _a;
|
|
4785
|
+
(_a = this.tooltip) === null || _a === void 0 ? void 0 : _a.classList.remove('tooltip-show');
|
|
4663
4786
|
}, this.hideDelay);
|
|
4664
4787
|
}
|
|
4665
|
-
touchStartListener() {
|
|
4788
|
+
touchStartListener(event) {
|
|
4789
|
+
event.stopPropagation();
|
|
4666
4790
|
this.touchTimeout = window.setTimeout(() => {
|
|
4667
4791
|
var _a;
|
|
4668
4792
|
(_a = this.tooltip) === null || _a === void 0 ? void 0 : _a.classList.add('tooltip-show');
|
|
4669
4793
|
}, this.longTouchDuration);
|
|
4670
4794
|
}
|
|
4671
4795
|
touchEndListener() {
|
|
4796
|
+
if (this.touchTimeout) {
|
|
4797
|
+
window.clearTimeout(this.touchTimeout);
|
|
4798
|
+
}
|
|
4799
|
+
}
|
|
4800
|
+
windowTouchStartListener() {
|
|
4672
4801
|
var _a;
|
|
4673
|
-
window.clearTimeout(this.touchTimeout);
|
|
4674
4802
|
(_a = this.tooltip) === null || _a === void 0 ? void 0 : _a.classList.remove('tooltip-show');
|
|
4675
4803
|
}
|
|
4676
4804
|
};
|
|
4677
4805
|
CatTooltip.OFFSET = 4;
|
|
4678
4806
|
CatTooltip.style = catTooltipCss;
|
|
4679
4807
|
|
|
4680
|
-
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, CatToastDemo as cat_toast_demo, CatToggle as cat_toggle, CatTooltip as cat_tooltip };
|
|
4808
|
+
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 };
|
|
4681
4809
|
|
|
4682
|
-
//# sourceMappingURL=cat-
|
|
4810
|
+
//# sourceMappingURL=cat-alert_18.entry.js.map
|