@politiet/sheriff-web-components 1.3.0 → 2.0.0-beta.1
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/frameworks/preact.d.ts +4 -5
- package/dist/frameworks/preact.d.ts.map +1 -1
- package/dist/frameworks/react.d.ts +55 -19
- package/dist/frameworks/react.d.ts.map +1 -1
- package/dist/frameworks/solidjs.d.ts +4 -5
- package/dist/frameworks/solidjs.d.ts.map +1 -1
- package/dist/frameworks/svelte.d.ts +4 -5
- package/dist/frameworks/svelte.d.ts.map +1 -1
- package/dist/frameworks/vue.d.ts +4 -5
- package/dist/frameworks/vue.d.ts.map +1 -1
- package/dist/index.d.ts +21 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -6
- package/dist/index.js.map +1 -1
- package/dist/playwright-util/screenshot.d.ts +3 -0
- package/dist/playwright-util/screenshot.d.ts.map +1 -0
- package/dist/playwright-util/screenshot.js +25 -0
- package/dist/playwright-util/screenshot.js.map +1 -0
- package/dist/react-wrappers/SDSAlertWrapper.d.ts +5 -0
- package/dist/react-wrappers/SDSAlertWrapper.d.ts.map +1 -0
- package/dist/react-wrappers/SDSAlertWrapper.js +12 -0
- package/dist/react-wrappers/SDSAlertWrapper.js.map +1 -0
- package/dist/react-wrappers/SDSCardWrapper.d.ts +3 -0
- package/dist/react-wrappers/SDSCardWrapper.d.ts.map +1 -0
- package/dist/react-wrappers/SDSCardWrapper.js +10 -0
- package/dist/react-wrappers/SDSCardWrapper.js.map +1 -0
- package/dist/react-wrappers/SDSTagWrapper.d.ts +3 -0
- package/dist/react-wrappers/SDSTagWrapper.d.ts.map +1 -0
- package/dist/react-wrappers/SDSTagWrapper.js +10 -0
- package/dist/react-wrappers/SDSTagWrapper.js.map +1 -0
- package/dist/react-wrappers/SDSTextAreaWrapper.d.ts +9 -0
- package/dist/react-wrappers/SDSTextAreaWrapper.d.ts.map +1 -0
- package/dist/react-wrappers/SDSTextAreaWrapper.js +16 -0
- package/dist/react-wrappers/SDSTextAreaWrapper.js.map +1 -0
- package/dist/react-wrappers/index.d.ts +2 -5
- package/dist/react-wrappers/index.d.ts.map +1 -1
- package/dist/react-wrappers/index.js +2 -5
- package/dist/react-wrappers/index.js.map +1 -1
- package/dist/sds-alert/sds-alert.d.ts +27 -0
- package/dist/sds-alert/sds-alert.d.ts.map +1 -0
- package/dist/sds-alert/sds-alert.js +65 -0
- package/dist/sds-alert/sds-alert.js.map +1 -0
- package/dist/sds-alert/sds-alert.styles.d.ts +2 -0
- package/dist/sds-alert/sds-alert.styles.d.ts.map +1 -0
- package/dist/sds-alert/sds-alert.styles.js +166 -0
- package/dist/sds-alert/sds-alert.styles.js.map +1 -0
- package/dist/sds-button/sds-button.d.ts +23 -14
- package/dist/sds-button/sds-button.d.ts.map +1 -1
- package/dist/sds-button/sds-button.js +42 -27
- package/dist/sds-button/sds-button.js.map +1 -1
- package/dist/sds-button/sds-button.spec.js +53 -38
- package/dist/sds-button/sds-button.spec.js.map +1 -1
- package/dist/sds-button/sds-button.styles.d.ts.map +1 -1
- package/dist/sds-button/sds-button.styles.js +107 -92
- package/dist/sds-button/sds-button.styles.js.map +1 -1
- package/dist/sds-card/sds-card.d.ts +18 -0
- package/dist/sds-card/sds-card.d.ts.map +1 -0
- package/dist/sds-card/sds-card.js +58 -0
- package/dist/sds-card/sds-card.js.map +1 -0
- package/dist/sds-card/sds-card.styles.d.ts +2 -0
- package/dist/sds-card/sds-card.styles.d.ts.map +1 -0
- package/dist/sds-card/sds-card.styles.js +124 -0
- package/dist/sds-card/sds-card.styles.js.map +1 -0
- package/dist/sds-checkbox/sds-checkbox.d.ts +9 -0
- package/dist/sds-checkbox/sds-checkbox.d.ts.map +1 -1
- package/dist/sds-checkbox/sds-checkbox.js +40 -35
- package/dist/sds-checkbox/sds-checkbox.js.map +1 -1
- package/dist/sds-checkbox/sds-checkbox.styles.d.ts.map +1 -1
- package/dist/sds-checkbox/sds-checkbox.styles.js +162 -62
- package/dist/sds-checkbox/sds-checkbox.styles.js.map +1 -1
- package/dist/sds-checkbox-group/sds-checkbox-group.d.ts +14 -0
- package/dist/sds-checkbox-group/sds-checkbox-group.d.ts.map +1 -1
- package/dist/sds-checkbox-group/sds-checkbox-group.js +58 -6
- package/dist/sds-checkbox-group/sds-checkbox-group.js.map +1 -1
- package/dist/sds-checkbox-group/sds-checkbox-group.styles.d.ts.map +1 -1
- package/dist/sds-checkbox-group/sds-checkbox-group.styles.js +61 -22
- package/dist/sds-checkbox-group/sds-checkbox-group.styles.js.map +1 -1
- package/dist/sds-chip/sds-chip.d.ts +3 -1
- package/dist/sds-chip/sds-chip.d.ts.map +1 -1
- package/dist/sds-chip/sds-chip.js +21 -15
- package/dist/sds-chip/sds-chip.js.map +1 -1
- package/dist/sds-chip/sds-chip.styles.d.ts.map +1 -1
- package/dist/sds-chip/sds-chip.styles.js +105 -40
- package/dist/sds-chip/sds-chip.styles.js.map +1 -1
- package/dist/sds-detail/sds-detail.styles.js +2 -2
- package/dist/sds-detail/sds-detail.styles.js.map +1 -1
- package/dist/sds-heading/sds-heading.d.ts +2 -1
- package/dist/sds-heading/sds-heading.d.ts.map +1 -1
- package/dist/sds-heading/sds-heading.js +12 -15
- package/dist/sds-heading/sds-heading.js.map +1 -1
- package/dist/sds-heading/sds-heading.styles.d.ts.map +1 -1
- package/dist/sds-heading/sds-heading.styles.js +89 -42
- package/dist/sds-heading/sds-heading.styles.js.map +1 -1
- package/dist/sds-icon/sds-icon-names.d.ts +1 -1
- package/dist/sds-icon/sds-icon-names.d.ts.map +1 -1
- package/dist/sds-icon/sds-icon-names.js +3626 -554
- package/dist/sds-icon/sds-icon-names.js.map +1 -1
- package/dist/sds-icon/sds-icon.allowed-colors.js +12 -12
- package/dist/sds-icon/sds-icon.color-types.d.ts +1 -1
- package/dist/sds-icon/sds-icon.d.ts +10 -1
- package/dist/sds-icon/sds-icon.d.ts.map +1 -1
- package/dist/sds-icon/sds-icon.js +3 -10
- package/dist/sds-icon/sds-icon.js.map +1 -1
- package/dist/sds-icon/sds-icon.styles.d.ts.map +1 -1
- package/dist/sds-icon/sds-icon.styles.js +20 -6
- package/dist/sds-icon/sds-icon.styles.js.map +1 -1
- package/dist/sds-label/sds-label.styles.js +2 -2
- package/dist/sds-label/sds-label.styles.js.map +1 -1
- package/dist/sds-link/sds-link.styles.js +6 -6
- package/dist/sds-link/sds-link.styles.js.map +1 -1
- package/dist/sds-loader/sds-loader.d.ts +4 -3
- package/dist/sds-loader/sds-loader.d.ts.map +1 -1
- package/dist/sds-loader/sds-loader.js +16 -8
- package/dist/sds-loader/sds-loader.js.map +1 -1
- package/dist/sds-loader/sds-loader.styles.d.ts.map +1 -1
- package/dist/sds-loader/sds-loader.styles.js +65 -20
- package/dist/sds-loader/sds-loader.styles.js.map +1 -1
- package/dist/sds-nav-card/sds-nav-card.styles.d.ts.map +1 -1
- package/dist/sds-nav-card/sds-nav-card.styles.js +18 -25
- package/dist/sds-nav-card/sds-nav-card.styles.js.map +1 -1
- package/dist/sds-notification/sds-notification.d.ts +6 -2
- package/dist/sds-notification/sds-notification.d.ts.map +1 -1
- package/dist/sds-notification/sds-notification.js +31 -19
- package/dist/sds-notification/sds-notification.js.map +1 -1
- package/dist/sds-notification/sds-notification.styles.d.ts.map +1 -1
- package/dist/sds-notification/sds-notification.styles.js +93 -113
- package/dist/sds-notification/sds-notification.styles.js.map +1 -1
- package/dist/sds-paragraph/sds-paragraph.styles.js +2 -2
- package/dist/sds-paragraph/sds-paragraph.styles.js.map +1 -1
- package/dist/sds-radio/sds-radio.d.ts +9 -0
- package/dist/sds-radio/sds-radio.d.ts.map +1 -1
- package/dist/sds-radio/sds-radio.js +43 -33
- package/dist/sds-radio/sds-radio.js.map +1 -1
- package/dist/sds-radio/sds-radio.styles.d.ts.map +1 -1
- package/dist/sds-radio/sds-radio.styles.js +150 -64
- package/dist/sds-radio/sds-radio.styles.js.map +1 -1
- package/dist/sds-radio-group/sds-radio-group.d.ts +17 -1
- package/dist/sds-radio-group/sds-radio-group.d.ts.map +1 -1
- package/dist/sds-radio-group/sds-radio-group.js +79 -13
- package/dist/sds-radio-group/sds-radio-group.js.map +1 -1
- package/dist/sds-radio-group/sds-radio-group.styles.d.ts.map +1 -1
- package/dist/sds-radio-group/sds-radio-group.styles.js +73 -23
- package/dist/sds-radio-group/sds-radio-group.styles.js.map +1 -1
- package/dist/sds-switch/sds-switch.d.ts +7 -1
- package/dist/sds-switch/sds-switch.d.ts.map +1 -1
- package/dist/sds-switch/sds-switch.js +27 -10
- package/dist/sds-switch/sds-switch.js.map +1 -1
- package/dist/sds-switch/sds-switch.styles.d.ts.map +1 -1
- package/dist/sds-switch/sds-switch.styles.js +92 -64
- package/dist/sds-switch/sds-switch.styles.js.map +1 -1
- package/dist/sds-tag/sds-tag.d.ts +21 -0
- package/dist/sds-tag/sds-tag.d.ts.map +1 -0
- package/dist/sds-tag/sds-tag.js +38 -0
- package/dist/sds-tag/sds-tag.js.map +1 -0
- package/dist/sds-tag/sds-tag.styles.d.ts +2 -0
- package/dist/sds-tag/sds-tag.styles.d.ts.map +1 -0
- package/dist/sds-tag/sds-tag.styles.js +90 -0
- package/dist/sds-tag/sds-tag.styles.js.map +1 -0
- package/dist/sds-text/sds-text.d.ts +6 -1
- package/dist/sds-text/sds-text.d.ts.map +1 -1
- package/dist/sds-text/sds-text.js +11 -11
- package/dist/sds-text/sds-text.js.map +1 -1
- package/dist/sds-text/sds-text.styles.d.ts.map +1 -1
- package/dist/sds-text/sds-text.styles.js +257 -14
- package/dist/sds-text/sds-text.styles.js.map +1 -1
- package/dist/sds-textarea/sds-textarea.d.ts +7 -0
- package/dist/sds-textarea/sds-textarea.d.ts.map +1 -1
- package/dist/sds-textarea/sds-textarea.js +21 -24
- package/dist/sds-textarea/sds-textarea.js.map +1 -1
- package/dist/sds-textarea/sds-textarea.styles.d.ts.map +1 -1
- package/dist/sds-textarea/sds-textarea.styles.js +121 -58
- package/dist/sds-textarea/sds-textarea.styles.js.map +1 -1
- package/dist/sds-textfield/sds-textfield.d.ts +5 -0
- package/dist/sds-textfield/sds-textfield.d.ts.map +1 -1
- package/dist/sds-textfield/sds-textfield.js +7 -5
- package/dist/sds-textfield/sds-textfield.js.map +1 -1
- package/dist/sds-textfield/sds-textfield.styles.d.ts.map +1 -1
- package/dist/sds-textfield/sds-textfield.styles.js +104 -62
- package/dist/sds-textfield/sds-textfield.styles.js.map +1 -1
- package/dist/sheriff-web-components.js +2931 -1966
- package/dist/types.d.ts +5 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/dist/utils/renderErrorMessage.js +1 -1
- package/dist/utils/slot-validator.d.ts +2 -0
- package/dist/utils/slot-validator.d.ts.map +1 -0
- package/dist/utils/slot-validator.js +24 -0
- package/dist/utils/slot-validator.js.map +1 -0
- package/package.json +24 -29
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
import { LitElement, html, nothing } from 'lit';
|
|
8
|
+
import { property } from 'lit/decorators.js';
|
|
9
|
+
import { guardedCustomElement } from '../utils/guarded-custom-element';
|
|
10
|
+
import { styles } from './sds-alert.styles';
|
|
11
|
+
import '../sds-icon/sds-icon';
|
|
12
|
+
import '../sds-button/sds-button';
|
|
13
|
+
const alertIcons = {
|
|
14
|
+
info: 'InformationSquareFill-aksel-filled',
|
|
15
|
+
success: 'check_circle-material-filled',
|
|
16
|
+
attention: 'warning-material-filled',
|
|
17
|
+
danger: 'dangerous-material-filled',
|
|
18
|
+
};
|
|
19
|
+
let SDSAlert = class SDSAlert extends LitElement {
|
|
20
|
+
constructor() {
|
|
21
|
+
super(...arguments);
|
|
22
|
+
this.color = 'info';
|
|
23
|
+
this.variant = 'primary';
|
|
24
|
+
this._remove = () => {
|
|
25
|
+
this.dispatchEvent(new CustomEvent('sds-remove', {
|
|
26
|
+
bubbles: true,
|
|
27
|
+
composed: true,
|
|
28
|
+
}));
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
render() {
|
|
32
|
+
const buttonColor = this.color === 'danger' ? 'danger' : 'accent';
|
|
33
|
+
return html `<div class="sds-alert">
|
|
34
|
+
<div class="sds-alert__type">
|
|
35
|
+
<sds-icon class="sds-alert__icon" name="${alertIcons[this.color]}" size="md"></sds-icon>
|
|
36
|
+
</div>
|
|
37
|
+
<div class="sds-alert__content">
|
|
38
|
+
<slot name="title"></slot>
|
|
39
|
+
<slot name="message"></slot>
|
|
40
|
+
</div>
|
|
41
|
+
${this.removableLabel && this.variant === 'primary'
|
|
42
|
+
? html `<div class="sds-alert__actions">
|
|
43
|
+
<sds-button icon variant="tertiary" color="${buttonColor}" size="sm" @click=${this._remove} aria-label="${this.removableLabel}">
|
|
44
|
+
<sds-icon name="close-material-outlined" size="sm"></sds-icon>
|
|
45
|
+
</sds-button>
|
|
46
|
+
</div>`
|
|
47
|
+
: nothing}
|
|
48
|
+
</div>`;
|
|
49
|
+
}
|
|
50
|
+
};
|
|
51
|
+
SDSAlert.styles = [styles];
|
|
52
|
+
__decorate([
|
|
53
|
+
property({ type: String, reflect: true })
|
|
54
|
+
], SDSAlert.prototype, "color", void 0);
|
|
55
|
+
__decorate([
|
|
56
|
+
property({ type: String, reflect: true })
|
|
57
|
+
], SDSAlert.prototype, "variant", void 0);
|
|
58
|
+
__decorate([
|
|
59
|
+
property({ type: String, attribute: 'removable-label', reflect: true })
|
|
60
|
+
], SDSAlert.prototype, "removableLabel", void 0);
|
|
61
|
+
SDSAlert = __decorate([
|
|
62
|
+
guardedCustomElement('sds-alert')
|
|
63
|
+
], SDSAlert);
|
|
64
|
+
export { SDSAlert };
|
|
65
|
+
//# sourceMappingURL=sds-alert.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sds-alert.js","sourceRoot":"","sources":["../../src/sds-alert/sds-alert.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,KAAK,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AACvE,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAG5C,OAAO,sBAAsB,CAAC;AAC9B,OAAO,0BAA0B,CAAC;AAKlC,MAAM,UAAU,GAAiC;IAChD,IAAI,EAAE,oCAAoC;IAC1C,OAAO,EAAE,8BAA8B;IACvC,SAAS,EAAE,yBAAyB;IACpC,MAAM,EAAE,2BAA2B;CACnC,CAAC;AAUK,IAAM,QAAQ,GAAd,MAAM,QAAS,SAAQ,UAAU;IAAjC;;QAGqC,UAAK,GAAiB,MAAM,CAAC;QAC7B,YAAO,GAAa,SAAS,CAAC;QAGxD,YAAO,GAAG,GAAG,EAAE;YAC/B,IAAI,CAAC,aAAa,CACjB,IAAI,WAAW,CAAC,YAAY,EAAE;gBAC7B,OAAO,EAAE,IAAI;gBACb,QAAQ,EAAE,IAAI;aACd,CAAC,CACF,CAAC;QACH,CAAC,CAAC;IAsBH,CAAC;IApBS,MAAM;QACd,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC;QAElE,OAAO,IAAI,CAAA;;8CAEiC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC;;;;;;KAM/D,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS;YAClD,CAAC,CAAC,IAAI,CAAA;mDACyC,WAAW,sBAAsB,IAAI,CAAC,OAAO,gBAAgB,IAAI,CAAC,cAAc;;;YAGvH;YACR,CAAC,CAAC,OAAO;SACJ,CAAC;IACT,CAAC;;AAlCe,eAAM,GAAG,CAAC,MAAM,CAAC,AAAX,CAAY;AAES;IAA1C,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;uCAA8B;AAC7B;IAA1C,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;yCAA+B;AACA;IAAxE,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,iBAAiB,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;gDAAyB;AALrF,QAAQ;IADpB,oBAAoB,CAAC,WAAW,CAAC;GACrB,QAAQ,CAoCpB","sourcesContent":["import { LitElement, html, nothing } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { guardedCustomElement } from '../utils/guarded-custom-element';\nimport { styles } from './sds-alert.styles';\nimport { SDS_COLOR_PALETTES, SDS_VARIANTS } from '../types';\n\nimport '../sds-icon/sds-icon';\nimport '../sds-button/sds-button';\n\ntype ColorPalette = Extract<SDS_COLOR_PALETTES, 'info' | 'success' | 'attention' | 'danger'>;\ntype Variants = Extract<SDS_VARIANTS, 'primary' | 'secondary'>;\n\nconst alertIcons: Record<ColorPalette, string> = {\n\tinfo: 'InformationSquareFill-aksel-filled',\n\tsuccess: 'check_circle-material-filled',\n\tattention: 'warning-material-filled',\n\tdanger: 'dangerous-material-filled',\n};\n\nexport interface SDSAlertProps {\n\tcolor?: ColorPalette;\n\tvariant?: Variants;\n\t'removable-label'?: string;\n\tonSdsRemove?: (event: CustomEvent) => void;\n}\n\n@guardedCustomElement('sds-alert')\nexport class SDSAlert extends LitElement {\n\tstatic override styles = [styles];\n\n\t@property({ type: String, reflect: true }) color: ColorPalette = 'info';\n\t@property({ type: String, reflect: true }) variant: Variants = 'primary';\n\t@property({ type: String, attribute: 'removable-label', reflect: true }) removableLabel?: string;\n\n\tprivate readonly _remove = () => {\n\t\tthis.dispatchEvent(\n\t\t\tnew CustomEvent('sds-remove', {\n\t\t\t\tbubbles: true,\n\t\t\t\tcomposed: true,\n\t\t\t})\n\t\t);\n\t};\n\n\toverride render() {\n\t\tconst buttonColor = this.color === 'danger' ? 'danger' : 'accent';\n\n\t\treturn html`<div class=\"sds-alert\">\n\t\t\t<div class=\"sds-alert__type\">\n\t\t\t\t<sds-icon class=\"sds-alert__icon\" name=\"${alertIcons[this.color]}\" size=\"md\"></sds-icon>\n\t\t\t</div>\n\t\t\t<div class=\"sds-alert__content\">\n\t\t\t\t<slot name=\"title\"></slot>\n\t\t\t\t<slot name=\"message\"></slot>\n\t\t\t</div>\n\t\t\t${this.removableLabel && this.variant === 'primary'\n\t\t\t\t? html`<div class=\"sds-alert__actions\">\n\t\t\t\t\t\t<sds-button icon variant=\"tertiary\" color=\"${buttonColor}\" size=\"sm\" @click=${this._remove} aria-label=\"${this.removableLabel}\">\n\t\t\t\t\t\t\t<sds-icon name=\"close-material-outlined\" size=\"sm\"></sds-icon>\n\t\t\t\t\t\t</sds-button>\n\t\t\t\t\t</div>`\n\t\t\t\t: nothing}\n\t\t</div>`;\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'sds-alert': SDSAlert;\n\t}\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sds-alert.styles.d.ts","sourceRoot":"","sources":["../../src/sds-alert/sds-alert.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,MAAM,yBAmKlB,CAAC"}
|
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
import { css } from 'lit';
|
|
2
|
+
export const styles = css `
|
|
3
|
+
:host {
|
|
4
|
+
--_sds-alert-background-color: var(--sds-alert-background-color, var(--sds-color-alert-info-surface-tinted));
|
|
5
|
+
|
|
6
|
+
--_sds-alert-border-color: var(--sds-alert-border-color, var(--sds-color-alert-info-border-default));
|
|
7
|
+
--_sds-alert-border-radius: var(--sds-alert-border-radius, var(--sds-radius-sm));
|
|
8
|
+
--_sds-alert-border-width: var(--sds-alert-border-width, var(--sds-border-sm));
|
|
9
|
+
|
|
10
|
+
--_sds-alert-column-gap: var(--sds-alert-column-gap, var(--sds-spacing-2xs));
|
|
11
|
+
--_sds-alert-content-gap: var(--sds-alert-content-gap, var(--sds-spacing-3xs));
|
|
12
|
+
|
|
13
|
+
--_sds-alert-font-family: var(--sds-alert-font-family, var(--sds-typography-font-family-roboto));
|
|
14
|
+
--_sds-alert-font-size: var(--sds-alert-font-size, var(--sds-components-font-size-md));
|
|
15
|
+
--_sds-alert-font-weight: var(--sds-alert-font-weight, var(--sds-typography-body-md-desktop-font-weight));
|
|
16
|
+
--_sds-alert-line-height: var(--sds-alert-line-height, var(--sds-components-line-height-squeezed-md));
|
|
17
|
+
--_sds-alert-text-color: var(--sds-alert-text-color, var(--sds-color-alert-info-text-default));
|
|
18
|
+
|
|
19
|
+
--_sds-alert-title-font-size: var(--sds-alert-title-font-size, var(--sds-typography-body-lg-desktop-tall-font-size));
|
|
20
|
+
--_sds-alert-title-font-weight: var(--sds-alert-title-font-weight, var(--sds-typography-body-lg-strong-tall-desktop-font-weight));
|
|
21
|
+
--_sds-alert-title-line-height: var(--sds-alert-title-line-height, var(--sds-typography-body-lg-strong-tall-desktop-line-height));
|
|
22
|
+
|
|
23
|
+
--_sds-alert-icon-color: var(--sds-alert-icon-color, var(--sds-color-alert-info-text-subtle));
|
|
24
|
+
--_sds-alert-max-line-width: var(--sds-alert-max-line-width, var(--sds-typography-max-line-width));
|
|
25
|
+
--_sds-alert-padding: var(--sds-alert-padding, var(--sds-spacing-sm));
|
|
26
|
+
|
|
27
|
+
display: block;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
.sds-alert {
|
|
31
|
+
display: flex;
|
|
32
|
+
gap: var(--_sds-alert-column-gap);
|
|
33
|
+
padding: var(--_sds-alert-padding);
|
|
34
|
+
|
|
35
|
+
background-color: var(--_sds-alert-background-color);
|
|
36
|
+
border: var(--_sds-alert-border-width) solid var(--_sds-alert-border-color);
|
|
37
|
+
border-radius: var(--_sds-alert-border-radius);
|
|
38
|
+
color: var(--_sds-alert-text-color);
|
|
39
|
+
|
|
40
|
+
font-family: var(--_sds-alert-font-family);
|
|
41
|
+
text-align: left;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
.sds-alert__type {
|
|
45
|
+
color: var(--_sds-alert-icon-color);
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
.sds-alert__content {
|
|
49
|
+
align-self: center;
|
|
50
|
+
display: flex;
|
|
51
|
+
flex: 1;
|
|
52
|
+
flex-direction: column;
|
|
53
|
+
gap: var(--_sds-alert-content-gap);
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
.sds-alert__actions {
|
|
57
|
+
--sds-button-padding-inline: 0;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
.sds-alert__icon {
|
|
61
|
+
display: block;
|
|
62
|
+
position: relative;
|
|
63
|
+
z-index: 1;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
:host([color='success']) {
|
|
67
|
+
--_sds-alert-background-color: var(--sds-alert-background-color, var(--sds-color-alert-success-surface-tinted));
|
|
68
|
+
--_sds-alert-border-color: var(--sds-alert-border-color, var(--sds-color-alert-success-border-default));
|
|
69
|
+
--_sds-alert-text-color: var(--sds-alert-text-color, var(--sds-color-alert-attention-text-default));
|
|
70
|
+
--_sds-alert-icon-color: var(--sds-alert-icon-color, var(--sds-color-alert-success-text-subtle));
|
|
71
|
+
|
|
72
|
+
sds-button {
|
|
73
|
+
--sds-button-text-color: var(--sds-color-alert-success-action-default);
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
sds-button:hover {
|
|
77
|
+
--sds-button-background-color: var(--sds-color-alert-success-surface-hover);
|
|
78
|
+
--sds-button-border-color: var(--sds-color-alert-success-surface-hover);
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
sds-button:active {
|
|
82
|
+
--sds-button-background-color: var(--sds-color-alert-success-surface-active);
|
|
83
|
+
--sds-button-border-color: var(--sds-color-alert-success-surface-active);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
:host([color='attention']) {
|
|
88
|
+
--_sds-alert-background-color: var(--sds-alert-background-color, var(--sds-color-alert-attention-surface-tinted));
|
|
89
|
+
--_sds-alert-border-color: var(--sds-alert-border-color, var(--sds-color-alert-attention-border-default));
|
|
90
|
+
--_sds-alert-text-color: var(--sds-alert-text-color, var(--sds-color-alert-attention-text-default));
|
|
91
|
+
--_sds-alert-icon-color: var(--sds-alert-icon-color, var(--sds-color-alert-attention-text-subtle));
|
|
92
|
+
|
|
93
|
+
sds-button {
|
|
94
|
+
--sds-button-text-color: var(--sds-color-alert-attention-border-default);
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
sds-button:hover {
|
|
98
|
+
--sds-button-background-color: var(--sds-color-alert-attention-surface-hover);
|
|
99
|
+
--sds-button-border-color: var(--sds-color-alert-attention-surface-hover);
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
sds-button:active {
|
|
103
|
+
--sds-button-background-color: var(--sds-color-alert-attention-surface-active);
|
|
104
|
+
--sds-button-border-color: var(--sds-color-alert-attention-surface-active);
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
:host([color='danger']) {
|
|
109
|
+
--_sds-alert-background-color: var(--sds-alert-background-color, var(--sds-color-alert-danger-surface-tinted));
|
|
110
|
+
--_sds-alert-border-color: var(--sds-alert-border-color, var(--sds-color-alert-danger-border-default));
|
|
111
|
+
--_sds-alert-text-color: var(--sds-alert-text-color, var(--sds-color-alert-danger-text-default));
|
|
112
|
+
--_sds-alert-icon-color: var(--sds-alert-icon-color, var(--sds-color-alert-danger-text-subtle));
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
:host([variant='secondary']) {
|
|
116
|
+
--_sds-alert-background-color: var(--sds-alert-background-color, transparent);
|
|
117
|
+
--_sds-alert-border-color: var(--sds-alert-border-color, transparent);
|
|
118
|
+
--_sds-alert-padding: var(--sds-alert-padding, 0);
|
|
119
|
+
--_sds-alert-column-gap: var(--sds-alert-column-gap, var(--sds-spacing-3xs));
|
|
120
|
+
--_sds-alert-content-gap: var(--sds-alert-content-gap, 0);
|
|
121
|
+
|
|
122
|
+
::slotted([slot='message']) {
|
|
123
|
+
padding: 3px 0 !important;
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
:host([variant='secondary']):host([color='info']) {
|
|
128
|
+
--_sds-alert-text-color: var(--sds-alert-text-color, var(--sds-color-alert-info-text-subtle));
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
:host([variant='secondary']):host([color='success']) {
|
|
132
|
+
--_sds-alert-text-color: var(--sds-alert-text-color, var(--sds-color-alert-success-text-subtle));
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
:host([variant='secondary']):host([color='attention']) {
|
|
136
|
+
--_sds-alert-text-color: var(--sds-alert-text-color, var(--sds-color-alert-attention-text-subtle));
|
|
137
|
+
--_sds-alert-icon-color: var(--sds-alert-icon-color, var(--sds-color-alert-attention-action-default));
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
:host([variant='secondary']):host([color='danger']) {
|
|
141
|
+
--_sds-alert-text-color: var(--sds-alert-text-color, var(--sds-color-alert-danger-text-subtle));
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
::slotted([slot='title']),
|
|
145
|
+
::slotted(:is(h1, h2, h3, h4, h5, h6)) {
|
|
146
|
+
color: var(--_sds-alert-text-color) !important;
|
|
147
|
+
font-size: var(--_sds-alert-title-font-size) !important;
|
|
148
|
+
font-style: normal !important;
|
|
149
|
+
font-weight: var(--_sds-alert-title-font-weight) !important;
|
|
150
|
+
line-height: var(--_sds-alert-title-line-height) !important;
|
|
151
|
+
margin: 0 !important;
|
|
152
|
+
max-width: var(--_sds-alert-max-line-width) !important;
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
::slotted([slot='message']),
|
|
156
|
+
::slotted(:is(p)) {
|
|
157
|
+
color: var(--_sds-alert-text-color) !important;
|
|
158
|
+
font-size: var(--_sds-alert-font-size) !important;
|
|
159
|
+
font-style: normal !important;
|
|
160
|
+
font-weight: var(--_sds-alert-font-weight) !important;
|
|
161
|
+
line-height: var(--_sds-alert-line-height) !important;
|
|
162
|
+
margin: 0 !important;
|
|
163
|
+
max-width: var(--_sds-alert-max-line-width) !important;
|
|
164
|
+
}
|
|
165
|
+
`;
|
|
166
|
+
//# sourceMappingURL=sds-alert.styles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sds-alert.styles.js","sourceRoot":"","sources":["../../src/sds-alert/sds-alert.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmKxB,CAAC","sourcesContent":["import { css } from 'lit';\n\nexport const styles = css`\n\t:host {\n\t\t--_sds-alert-background-color: var(--sds-alert-background-color, var(--sds-color-alert-info-surface-tinted));\n\n\t\t--_sds-alert-border-color: var(--sds-alert-border-color, var(--sds-color-alert-info-border-default));\n\t\t--_sds-alert-border-radius: var(--sds-alert-border-radius, var(--sds-radius-sm));\n\t\t--_sds-alert-border-width: var(--sds-alert-border-width, var(--sds-border-sm));\n\n\t\t--_sds-alert-column-gap: var(--sds-alert-column-gap, var(--sds-spacing-2xs));\n\t\t--_sds-alert-content-gap: var(--sds-alert-content-gap, var(--sds-spacing-3xs));\n\n\t\t--_sds-alert-font-family: var(--sds-alert-font-family, var(--sds-typography-font-family-roboto));\n\t\t--_sds-alert-font-size: var(--sds-alert-font-size, var(--sds-components-font-size-md));\n\t\t--_sds-alert-font-weight: var(--sds-alert-font-weight, var(--sds-typography-body-md-desktop-font-weight));\n\t\t--_sds-alert-line-height: var(--sds-alert-line-height, var(--sds-components-line-height-squeezed-md));\n\t\t--_sds-alert-text-color: var(--sds-alert-text-color, var(--sds-color-alert-info-text-default));\n\n\t\t--_sds-alert-title-font-size: var(--sds-alert-title-font-size, var(--sds-typography-body-lg-desktop-tall-font-size));\n\t\t--_sds-alert-title-font-weight: var(--sds-alert-title-font-weight, var(--sds-typography-body-lg-strong-tall-desktop-font-weight));\n\t\t--_sds-alert-title-line-height: var(--sds-alert-title-line-height, var(--sds-typography-body-lg-strong-tall-desktop-line-height));\n\n\t\t--_sds-alert-icon-color: var(--sds-alert-icon-color, var(--sds-color-alert-info-text-subtle));\n\t\t--_sds-alert-max-line-width: var(--sds-alert-max-line-width, var(--sds-typography-max-line-width));\n\t\t--_sds-alert-padding: var(--sds-alert-padding, var(--sds-spacing-sm));\n\n\t\tdisplay: block;\n\t}\n\n\t.sds-alert {\n\t\tdisplay: flex;\n\t\tgap: var(--_sds-alert-column-gap);\n\t\tpadding: var(--_sds-alert-padding);\n\n\t\tbackground-color: var(--_sds-alert-background-color);\n\t\tborder: var(--_sds-alert-border-width) solid var(--_sds-alert-border-color);\n\t\tborder-radius: var(--_sds-alert-border-radius);\n\t\tcolor: var(--_sds-alert-text-color);\n\n\t\tfont-family: var(--_sds-alert-font-family);\n\t\ttext-align: left;\n\t}\n\n\t.sds-alert__type {\n\t\tcolor: var(--_sds-alert-icon-color);\n\t}\n\n\t.sds-alert__content {\n\t\talign-self: center;\n\t\tdisplay: flex;\n\t\tflex: 1;\n\t\tflex-direction: column;\n\t\tgap: var(--_sds-alert-content-gap);\n\t}\n\n\t.sds-alert__actions {\n\t\t--sds-button-padding-inline: 0;\n\t}\n\n\t.sds-alert__icon {\n\t\tdisplay: block;\n\t\tposition: relative;\n\t\tz-index: 1;\n\t}\n\n\t:host([color='success']) {\n\t\t--_sds-alert-background-color: var(--sds-alert-background-color, var(--sds-color-alert-success-surface-tinted));\n\t\t--_sds-alert-border-color: var(--sds-alert-border-color, var(--sds-color-alert-success-border-default));\n\t\t--_sds-alert-text-color: var(--sds-alert-text-color, var(--sds-color-alert-attention-text-default));\n\t\t--_sds-alert-icon-color: var(--sds-alert-icon-color, var(--sds-color-alert-success-text-subtle));\n\n\t\tsds-button {\n\t\t\t--sds-button-text-color: var(--sds-color-alert-success-action-default);\n\t\t}\n\n\t\tsds-button:hover {\n\t\t\t--sds-button-background-color: var(--sds-color-alert-success-surface-hover);\n\t\t\t--sds-button-border-color: var(--sds-color-alert-success-surface-hover);\n\t\t}\n\n\t\tsds-button:active {\n\t\t\t--sds-button-background-color: var(--sds-color-alert-success-surface-active);\n\t\t\t--sds-button-border-color: var(--sds-color-alert-success-surface-active);\n\t\t}\n\t}\n\n\t:host([color='attention']) {\n\t\t--_sds-alert-background-color: var(--sds-alert-background-color, var(--sds-color-alert-attention-surface-tinted));\n\t\t--_sds-alert-border-color: var(--sds-alert-border-color, var(--sds-color-alert-attention-border-default));\n\t\t--_sds-alert-text-color: var(--sds-alert-text-color, var(--sds-color-alert-attention-text-default));\n\t\t--_sds-alert-icon-color: var(--sds-alert-icon-color, var(--sds-color-alert-attention-text-subtle));\n\n\t\tsds-button {\n\t\t\t--sds-button-text-color: var(--sds-color-alert-attention-border-default);\n\t\t}\n\n\t\tsds-button:hover {\n\t\t\t--sds-button-background-color: var(--sds-color-alert-attention-surface-hover);\n\t\t\t--sds-button-border-color: var(--sds-color-alert-attention-surface-hover);\n\t\t}\n\n\t\tsds-button:active {\n\t\t\t--sds-button-background-color: var(--sds-color-alert-attention-surface-active);\n\t\t\t--sds-button-border-color: var(--sds-color-alert-attention-surface-active);\n\t\t}\n\t}\n\n\t:host([color='danger']) {\n\t\t--_sds-alert-background-color: var(--sds-alert-background-color, var(--sds-color-alert-danger-surface-tinted));\n\t\t--_sds-alert-border-color: var(--sds-alert-border-color, var(--sds-color-alert-danger-border-default));\n\t\t--_sds-alert-text-color: var(--sds-alert-text-color, var(--sds-color-alert-danger-text-default));\n\t\t--_sds-alert-icon-color: var(--sds-alert-icon-color, var(--sds-color-alert-danger-text-subtle));\n\t}\n\n\t:host([variant='secondary']) {\n\t\t--_sds-alert-background-color: var(--sds-alert-background-color, transparent);\n\t\t--_sds-alert-border-color: var(--sds-alert-border-color, transparent);\n\t\t--_sds-alert-padding: var(--sds-alert-padding, 0);\n\t\t--_sds-alert-column-gap: var(--sds-alert-column-gap, var(--sds-spacing-3xs));\n\t\t--_sds-alert-content-gap: var(--sds-alert-content-gap, 0);\n\n\t\t::slotted([slot='message']) {\n\t\t\tpadding: 3px 0 !important;\n\t\t}\n\t}\n\n\t:host([variant='secondary']):host([color='info']) {\n\t\t--_sds-alert-text-color: var(--sds-alert-text-color, var(--sds-color-alert-info-text-subtle));\n\t}\n\n\t:host([variant='secondary']):host([color='success']) {\n\t\t--_sds-alert-text-color: var(--sds-alert-text-color, var(--sds-color-alert-success-text-subtle));\n\t}\n\n\t:host([variant='secondary']):host([color='attention']) {\n\t\t--_sds-alert-text-color: var(--sds-alert-text-color, var(--sds-color-alert-attention-text-subtle));\n\t\t--_sds-alert-icon-color: var(--sds-alert-icon-color, var(--sds-color-alert-attention-action-default));\n\t}\n\n\t:host([variant='secondary']):host([color='danger']) {\n\t\t--_sds-alert-text-color: var(--sds-alert-text-color, var(--sds-color-alert-danger-text-subtle));\n\t}\n\n\t::slotted([slot='title']),\n\t::slotted(:is(h1, h2, h3, h4, h5, h6)) {\n\t\tcolor: var(--_sds-alert-text-color) !important;\n\t\tfont-size: var(--_sds-alert-title-font-size) !important;\n\t\tfont-style: normal !important;\n\t\tfont-weight: var(--_sds-alert-title-font-weight) !important;\n\t\tline-height: var(--_sds-alert-title-line-height) !important;\n\t\tmargin: 0 !important;\n\t\tmax-width: var(--_sds-alert-max-line-width) !important;\n\t}\n\n\t::slotted([slot='message']),\n\t::slotted(:is(p)) {\n\t\tcolor: var(--_sds-alert-text-color) !important;\n\t\tfont-size: var(--_sds-alert-font-size) !important;\n\t\tfont-style: normal !important;\n\t\tfont-weight: var(--_sds-alert-font-weight) !important;\n\t\tline-height: var(--_sds-alert-line-height) !important;\n\t\tmargin: 0 !important;\n\t\tmax-width: var(--_sds-alert-max-line-width) !important;\n\t}\n`;\n"]}
|
|
@@ -1,36 +1,45 @@
|
|
|
1
|
-
import { LitElement } from 'lit';
|
|
1
|
+
import { LitElement, PropertyValues } from 'lit';
|
|
2
|
+
import { SDS_COLOR_PALETTES, SDS_SIZES, SDS_VARIANTS } from '../types';
|
|
2
3
|
type ButtonType = 'button' | 'submit' | 'reset';
|
|
3
|
-
type ButtonVariant =
|
|
4
|
-
type
|
|
4
|
+
type ButtonVariant = SDS_VARIANTS | 'critical';
|
|
5
|
+
type ButtonColorPalette = Extract<SDS_COLOR_PALETTES, 'accent' | 'danger'>;
|
|
6
|
+
type ButtonSize = 'large' | 'medium' | 'small' | Extract<SDS_SIZES, 'lg' | 'md' | 'sm'>;
|
|
5
7
|
type TargetTypes = '_self' | '_blank' | '_parent' | '_top';
|
|
6
8
|
export interface SDSButtonProps {
|
|
7
|
-
|
|
8
|
-
variant?: ButtonVariant;
|
|
9
|
-
size?: ButtonSize;
|
|
9
|
+
color?: ButtonColorPalette;
|
|
10
10
|
disabled?: boolean;
|
|
11
|
-
name?: string;
|
|
12
|
-
value?: string;
|
|
13
11
|
form?: string;
|
|
14
12
|
href?: string;
|
|
13
|
+
icon?: boolean;
|
|
14
|
+
loading?: boolean;
|
|
15
|
+
name?: string;
|
|
16
|
+
size?: ButtonSize;
|
|
15
17
|
target?: TargetTypes;
|
|
18
|
+
type?: ButtonType;
|
|
19
|
+
value?: string;
|
|
20
|
+
variant?: ButtonVariant;
|
|
16
21
|
onClick?: (event: CustomEvent) => void;
|
|
17
|
-
onSubmit?: (event: CustomEvent) => void;
|
|
18
22
|
onReset?: (event: CustomEvent) => void;
|
|
23
|
+
onSubmit?: (event: CustomEvent) => void;
|
|
19
24
|
}
|
|
20
25
|
export declare class SDSButton extends LitElement {
|
|
21
26
|
static styles: import("lit").CSSResult[];
|
|
22
27
|
static formAssociated: boolean;
|
|
23
28
|
readonly internals: ElementInternals;
|
|
24
|
-
type: ButtonType;
|
|
25
|
-
variant: ButtonVariant;
|
|
26
|
-
size: ButtonSize;
|
|
27
29
|
disabled: boolean;
|
|
28
|
-
|
|
29
|
-
|
|
30
|
+
icon: boolean;
|
|
31
|
+
loading: boolean;
|
|
32
|
+
color?: ButtonColorPalette;
|
|
30
33
|
form?: string;
|
|
31
34
|
href?: string;
|
|
35
|
+
name?: string;
|
|
36
|
+
size: ButtonSize;
|
|
32
37
|
target?: TargetTypes;
|
|
38
|
+
type: ButtonType;
|
|
39
|
+
value: string;
|
|
40
|
+
variant: ButtonVariant;
|
|
33
41
|
constructor();
|
|
42
|
+
updated(changed: PropertyValues): void;
|
|
34
43
|
private readonly _handleClick;
|
|
35
44
|
focus(): void;
|
|
36
45
|
blur(): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sds-button.d.ts","sourceRoot":"","sources":["../../src/sds-button/sds-button.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,
|
|
1
|
+
{"version":3,"file":"sds-button.d.ts","sourceRoot":"","sources":["../../src/sds-button/sds-button.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,cAAc,EAAiB,MAAM,KAAK,CAAC;AAOhE,OAAO,EAAE,kBAAkB,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAEvE,KAAK,UAAU,GAAG,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAC;AAChD,KAAK,aAAa,GAAG,YAAY,GAAG,UAAU,CAAC;AAC/C,KAAK,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,EAAE,QAAQ,GAAG,QAAQ,CAAC,CAAC;AAC3E,KAAK,UAAU,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,GAAG,OAAO,CAAC,SAAS,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC;AACxF,KAAK,WAAW,GAAG,OAAO,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,CAAC;AAE3D,MAAM,WAAW,cAAc;IAC9B,KAAK,CAAC,EAAE,kBAAkB,CAAC;IAC3B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;IACvC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;IACvC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;CACxC;AAED,qBACa,SAAU,SAAQ,UAAU;IACxC,OAAgB,MAAM,4BAAY;IAElC,MAAM,CAAC,cAAc,UAAQ;IAC7B,SAAgB,SAAS,EAAE,gBAAgB,CAAC;IAEA,QAAQ,EAAE,OAAO,CAAS;IAC1B,IAAI,EAAE,OAAO,CAAS;IACtB,OAAO,EAAE,OAAO,CAAS;IAC1B,KAAK,CAAC,EAAE,kBAAkB,CAAC;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,UAAU,CAAQ;IACxB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,IAAI,EAAE,UAAU,CAAY;IAC5B,KAAK,EAAE,MAAM,CAAM;IACnB,OAAO,EAAE,aAAa,CAAa;;IAQrE,OAAO,CAAC,OAAO,EAAE,cAAc;IAQxC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAuD3B;IAEO,KAAK,IAAI,IAAI;IAIb,IAAI,IAAI,IAAI;IAIZ,KAAK,IAAI,IAAI;IAIb,MAAM;CAsCf;AAED,OAAO,CAAC,MAAM,CAAC;IACd,UAAU,qBAAqB;QAC9B,YAAY,EAAE,SAAS,CAAC;KACxB;CACD"}
|
|
@@ -4,7 +4,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
4
4
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
5
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
6
|
};
|
|
7
|
-
import { LitElement, html } from 'lit';
|
|
7
|
+
import { LitElement, html, nothing } from 'lit';
|
|
8
8
|
import { property } from 'lit/decorators.js';
|
|
9
9
|
import { classMap } from 'lit/directives/class-map.js';
|
|
10
10
|
import { ifDefined } from 'lit/directives/if-defined.js';
|
|
@@ -13,11 +13,13 @@ import { styles } from './sds-button.styles';
|
|
|
13
13
|
let SDSButton = class SDSButton extends LitElement {
|
|
14
14
|
constructor() {
|
|
15
15
|
super();
|
|
16
|
-
this.type = 'button';
|
|
17
|
-
this.variant = 'primary';
|
|
18
|
-
this.size = 'large';
|
|
19
16
|
this.disabled = false;
|
|
17
|
+
this.icon = false;
|
|
18
|
+
this.loading = false;
|
|
19
|
+
this.size = 'lg';
|
|
20
|
+
this.type = 'button';
|
|
20
21
|
this.value = '';
|
|
22
|
+
this.variant = 'primary';
|
|
21
23
|
this._handleClick = (event) => {
|
|
22
24
|
event.preventDefault();
|
|
23
25
|
event.stopImmediatePropagation();
|
|
@@ -72,6 +74,13 @@ let SDSButton = class SDSButton extends LitElement {
|
|
|
72
74
|
this.internals = this.attachInternals();
|
|
73
75
|
this.attachShadow({ mode: 'open', delegatesFocus: true });
|
|
74
76
|
}
|
|
77
|
+
updated(changed) {
|
|
78
|
+
// Cast critical variant to primary and color to danger to prevent breaking changes
|
|
79
|
+
if (changed.has('variant') && this.variant === 'critical') {
|
|
80
|
+
this.variant = 'primary';
|
|
81
|
+
this.color = 'danger';
|
|
82
|
+
}
|
|
83
|
+
}
|
|
75
84
|
focus() {
|
|
76
85
|
if (!this.disabled)
|
|
77
86
|
this.shadowRoot?.querySelector('button')?.focus();
|
|
@@ -87,20 +96,17 @@ let SDSButton = class SDSButton extends LitElement {
|
|
|
87
96
|
render() {
|
|
88
97
|
const buttonClasses = {
|
|
89
98
|
'sds-button': true,
|
|
90
|
-
'sds-button--secondary': this.variant === 'secondary',
|
|
91
|
-
'sds-button--tertiary': this.variant === 'tertiary',
|
|
92
|
-
'sds-button--critical': this.variant === 'critical',
|
|
93
|
-
'sds-button--medium': this.size === 'medium',
|
|
94
|
-
'sds-button--small': this.size === 'small',
|
|
95
99
|
'sds-button--as-link': !!this.href,
|
|
96
100
|
};
|
|
101
|
+
let loaderColor;
|
|
102
|
+
if (this.color === 'danger') {
|
|
103
|
+
loaderColor = ['primary', 'critical'].includes(this.variant) ? 'danger' : 'danger-contrast';
|
|
104
|
+
}
|
|
105
|
+
else {
|
|
106
|
+
loaderColor = ['primary', 'critical'].includes(this.variant) ? 'accent' : 'accent-contrast';
|
|
107
|
+
}
|
|
97
108
|
if (this.href) {
|
|
98
|
-
return html ` <a
|
|
99
|
-
id="link"
|
|
100
|
-
class="${classMap(buttonClasses)}"
|
|
101
|
-
href="${this.href}"
|
|
102
|
-
target="${ifDefined(this.target)}"
|
|
103
|
-
>
|
|
109
|
+
return html ` <a id="link" class="${classMap(buttonClasses)}" href="${this.href}" target="${ifDefined(this.target)}">
|
|
104
110
|
<slot name="before"></slot>
|
|
105
111
|
<slot></slot>
|
|
106
112
|
<slot name="after"></slot>
|
|
@@ -117,9 +123,9 @@ let SDSButton = class SDSButton extends LitElement {
|
|
|
117
123
|
?disabled="${this.disabled}"
|
|
118
124
|
@click="${this._handleClick}"
|
|
119
125
|
>
|
|
120
|
-
|
|
126
|
+
${this.loading ? html `<sds-loader slot="before" color=${loaderColor}></sds-loader>` : nothing} ${this.loading ? nothing : html `<slot name="before"></slot>`}
|
|
121
127
|
<slot></slot>
|
|
122
|
-
|
|
128
|
+
${this.loading ? nothing : html `<slot name="after"></slot>`}
|
|
123
129
|
</button>
|
|
124
130
|
`;
|
|
125
131
|
}
|
|
@@ -127,32 +133,41 @@ let SDSButton = class SDSButton extends LitElement {
|
|
|
127
133
|
SDSButton.styles = [styles];
|
|
128
134
|
SDSButton.formAssociated = true;
|
|
129
135
|
__decorate([
|
|
130
|
-
property({ type:
|
|
131
|
-
], SDSButton.prototype, "
|
|
136
|
+
property({ type: Boolean, reflect: true })
|
|
137
|
+
], SDSButton.prototype, "disabled", void 0);
|
|
138
|
+
__decorate([
|
|
139
|
+
property({ type: Boolean, reflect: true })
|
|
140
|
+
], SDSButton.prototype, "icon", void 0);
|
|
141
|
+
__decorate([
|
|
142
|
+
property({ type: Boolean, reflect: true })
|
|
143
|
+
], SDSButton.prototype, "loading", void 0);
|
|
132
144
|
__decorate([
|
|
133
145
|
property({ type: String, reflect: true })
|
|
134
|
-
], SDSButton.prototype, "
|
|
146
|
+
], SDSButton.prototype, "color", void 0);
|
|
135
147
|
__decorate([
|
|
136
148
|
property({ type: String, reflect: true })
|
|
137
|
-
], SDSButton.prototype, "
|
|
149
|
+
], SDSButton.prototype, "form", void 0);
|
|
138
150
|
__decorate([
|
|
139
|
-
property({ type:
|
|
140
|
-
], SDSButton.prototype, "
|
|
151
|
+
property({ type: String, reflect: true })
|
|
152
|
+
], SDSButton.prototype, "href", void 0);
|
|
141
153
|
__decorate([
|
|
142
154
|
property({ type: String, reflect: true })
|
|
143
155
|
], SDSButton.prototype, "name", void 0);
|
|
144
156
|
__decorate([
|
|
145
157
|
property({ type: String, reflect: true })
|
|
146
|
-
], SDSButton.prototype, "
|
|
158
|
+
], SDSButton.prototype, "size", void 0);
|
|
147
159
|
__decorate([
|
|
148
160
|
property({ type: String, reflect: true })
|
|
149
|
-
], SDSButton.prototype, "
|
|
161
|
+
], SDSButton.prototype, "target", void 0);
|
|
150
162
|
__decorate([
|
|
151
163
|
property({ type: String, reflect: true })
|
|
152
|
-
], SDSButton.prototype, "
|
|
164
|
+
], SDSButton.prototype, "type", void 0);
|
|
153
165
|
__decorate([
|
|
154
166
|
property({ type: String, reflect: true })
|
|
155
|
-
], SDSButton.prototype, "
|
|
167
|
+
], SDSButton.prototype, "value", void 0);
|
|
168
|
+
__decorate([
|
|
169
|
+
property({ type: String, reflect: true })
|
|
170
|
+
], SDSButton.prototype, "variant", void 0);
|
|
156
171
|
SDSButton = __decorate([
|
|
157
172
|
guardedCustomElement('sds-button')
|
|
158
173
|
], SDSButton);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sds-button.js","sourceRoot":"","sources":["../../src/sds-button/sds-button.ts"],"names":[],"mappings":"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","sourcesContent":["import { LitElement, html } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { guardedCustomElement } from '../utils/guarded-custom-element';\nimport { styles } from './sds-button.styles';\n\ntype ButtonType = 'button' | 'submit' | 'reset';\ntype ButtonVariant = 'primary' | 'secondary' | 'tertiary' | 'critical';\ntype ButtonSize = 'large' | 'medium' | 'small';\ntype TargetTypes = '_self' | '_blank' | '_parent' | '_top';\n\nexport interface SDSButtonProps {\n\ttype?: ButtonType;\n\tvariant?: ButtonVariant;\n\tsize?: ButtonSize;\n\tdisabled?: boolean;\n\tname?: string;\n\tvalue?: string;\n\tform?: string;\n\thref?: string;\n\ttarget?: TargetTypes;\n\tonClick?: (event: CustomEvent) => void;\n\tonSubmit?: (event: CustomEvent) => void;\n\tonReset?: (event: CustomEvent) => void;\n}\n\n@guardedCustomElement('sds-button')\nexport class SDSButton extends LitElement {\n\tstatic override styles = [styles];\n\n\tstatic formAssociated = true;\n\tpublic readonly internals: ElementInternals;\n\n\t@property({ type: String, reflect: true })\n\ttype: ButtonType = 'button';\n\n\t@property({ type: String, reflect: true })\n\tvariant: ButtonVariant = 'primary';\n\n\t@property({ type: String, reflect: true })\n\tsize: ButtonSize = 'large';\n\n\t@property({ type: Boolean, reflect: true }) disabled: boolean = false;\n\t@property({ type: String, reflect: true }) name?: string;\n\t@property({ type: String, reflect: true }) value: string = '';\n\t@property({ type: String, reflect: true }) form?: string;\n\t@property({ type: String, reflect: true }) href?: string;\n\t@property({ type: String, reflect: true }) target?: TargetTypes;\n\n\tconstructor() {\n\t\tsuper();\n\t\tthis.internals = this.attachInternals();\n\t\tthis.attachShadow({ mode: 'open', delegatesFocus: true });\n\t}\n\n\tprivate readonly _handleClick = (event: MouseEvent) => {\n\t\tevent.preventDefault();\n\t\tevent.stopImmediatePropagation();\n\n\t\tif (!this.disabled) {\n\t\t\tswitch (this.type) {\n\t\t\t\tcase 'submit': {\n\t\t\t\t\tconst submitEvent = new CustomEvent('submit', {\n\t\t\t\t\t\tbubbles: true,\n\t\t\t\t\t\tcomposed: true,\n\t\t\t\t\t\tcancelable: true,\n\t\t\t\t\t});\n\t\t\t\t\tconst shouldSubmit = this.dispatchEvent(submitEvent);\n\n\t\t\t\t\tif (shouldSubmit) {\n\t\t\t\t\t\tif (this.form) {\n\t\t\t\t\t\t\tconst root = this.getRootNode() as Document | ShadowRoot;\n\t\t\t\t\t\t\tconst formElement: HTMLFormElement | null = root.querySelector(`form#${this.form}`);\n\t\t\t\t\t\t\tformElement?.requestSubmit();\n\t\t\t\t\t\t} else if (this.internals.form) {\n\t\t\t\t\t\t\tthis.internals.form.requestSubmit();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tcase 'reset': {\n\t\t\t\t\tconst resetEvent = new CustomEvent('reset', {\n\t\t\t\t\t\tbubbles: true,\n\t\t\t\t\t\tcomposed: true,\n\t\t\t\t\t\tcancelable: true,\n\t\t\t\t\t});\n\t\t\t\t\tconst shouldReset = this.dispatchEvent(resetEvent);\n\n\t\t\t\t\tif (shouldReset) {\n\t\t\t\t\t\tif (this.form) {\n\t\t\t\t\t\t\tconst root = this.getRootNode() as Document | ShadowRoot;\n\t\t\t\t\t\t\tconst formElement: HTMLFormElement | null = root.querySelector(`form#${this.form}`);\n\t\t\t\t\t\t\tformElement?.reset();\n\t\t\t\t\t\t} else if (this.internals.form) {\n\t\t\t\t\t\t\tthis.internals.form.reset();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tdefault:\n\t\t\t\t\tthis.dispatchEvent(\n\t\t\t\t\t\tnew CustomEvent('click', {\n\t\t\t\t\t\t\tbubbles: true,\n\t\t\t\t\t\t\tcomposed: true,\n\t\t\t\t\t\t})\n\t\t\t\t\t);\n\t\t\t}\n\t\t}\n\t};\n\n\toverride focus(): void {\n\t\tif (!this.disabled) this.shadowRoot?.querySelector('button')?.focus();\n\t}\n\n\toverride blur(): void {\n\t\tif (!this.disabled) this.shadowRoot?.querySelector('button')?.blur();\n\t}\n\n\toverride click(): void {\n\t\tif (!this.disabled) this.shadowRoot?.querySelector('button')?.click();\n\t}\n\n\toverride render() {\n\t\tconst buttonClasses = {\n\t\t\t'sds-button': true,\n\t\t\t'sds-button--secondary': this.variant === 'secondary',\n\t\t\t'sds-button--tertiary': this.variant === 'tertiary',\n\t\t\t'sds-button--critical': this.variant === 'critical',\n\t\t\t'sds-button--medium': this.size === 'medium',\n\t\t\t'sds-button--small': this.size === 'small',\n\t\t\t'sds-button--as-link': !!this.href,\n\t\t};\n\n\t\tif (this.href) {\n\t\t\treturn html` <a\n\t\t\t\tid=\"link\"\n\t\t\t\tclass=\"${classMap(buttonClasses)}\"\n\t\t\t\thref=\"${this.href}\"\n\t\t\t\ttarget=\"${ifDefined(this.target)}\"\n\t\t\t>\n\t\t\t\t<slot name=\"before\"></slot>\n\t\t\t\t<slot></slot>\n\t\t\t\t<slot name=\"after\"></slot>\n\t\t\t</a>`;\n\t\t}\n\n\t\treturn html`\n\t\t\t<button\n\t\t\t\tid=\"control\"\n\t\t\t\tform=\"${ifDefined(this.form)}\"\n\t\t\t\tclass=\"${classMap(buttonClasses)}\"\n\t\t\t\ttype=\"${this.type}\"\n\t\t\t\tname=\"${ifDefined(this.name)}\"\n\t\t\t\tvalue=\"${ifDefined(this.value)}\"\n\t\t\t\t?disabled=\"${this.disabled}\"\n\t\t\t\t@click=\"${this._handleClick}\"\n\t\t\t>\n\t\t\t\t<slot name=\"before\"></slot>\n\t\t\t\t<slot></slot>\n\t\t\t\t<slot name=\"after\"></slot>\n\t\t\t</button>\n\t\t`;\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'sds-button': SDSButton;\n\t}\n}\n"]}
|
|
1
|
+
{"version":3,"file":"sds-button.js","sourceRoot":"","sources":["../../src/sds-button/sds-button.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,UAAU,EAAkB,IAAI,EAAE,OAAO,EAAE,MAAM,KAAK,CAAC;AAChE,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AACvE,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AA6BtC,IAAM,SAAS,GAAf,MAAM,SAAU,SAAQ,UAAU;IAmBxC;QACC,KAAK,EAAE,CAAC;QAdmC,aAAQ,GAAY,KAAK,CAAC;QAC1B,SAAI,GAAY,KAAK,CAAC;QACtB,YAAO,GAAY,KAAK,CAAC;QAK1B,SAAI,GAAe,IAAI,CAAC;QAExB,SAAI,GAAe,QAAQ,CAAC;QAC5B,UAAK,GAAW,EAAE,CAAC;QACnB,YAAO,GAAkB,SAAS,CAAC;QAgB7D,iBAAY,GAAG,CAAC,KAAiB,EAAE,EAAE;YACrD,KAAK,CAAC,cAAc,EAAE,CAAC;YACvB,KAAK,CAAC,wBAAwB,EAAE,CAAC;YAEjC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACpB,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;oBACnB,KAAK,QAAQ,CAAC,CAAC,CAAC;wBACf,MAAM,WAAW,GAAG,IAAI,WAAW,CAAC,QAAQ,EAAE;4BAC7C,OAAO,EAAE,IAAI;4BACb,QAAQ,EAAE,IAAI;4BACd,UAAU,EAAE,IAAI;yBAChB,CAAC,CAAC;wBACH,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;wBAErD,IAAI,YAAY,EAAE,CAAC;4BAClB,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;gCACf,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,EAA2B,CAAC;gCACzD,MAAM,WAAW,GAA2B,IAAI,CAAC,aAAa,CAAC,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;gCACpF,WAAW,EAAE,aAAa,EAAE,CAAC;4BAC9B,CAAC;iCAAM,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;gCAChC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;4BACrC,CAAC;wBACF,CAAC;wBACD,MAAM;oBACP,CAAC;oBAED,KAAK,OAAO,CAAC,CAAC,CAAC;wBACd,MAAM,UAAU,GAAG,IAAI,WAAW,CAAC,OAAO,EAAE;4BAC3C,OAAO,EAAE,IAAI;4BACb,QAAQ,EAAE,IAAI;4BACd,UAAU,EAAE,IAAI;yBAChB,CAAC,CAAC;wBACH,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;wBAEnD,IAAI,WAAW,EAAE,CAAC;4BACjB,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;gCACf,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,EAA2B,CAAC;gCACzD,MAAM,WAAW,GAA2B,IAAI,CAAC,aAAa,CAAC,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;gCACpF,WAAW,EAAE,KAAK,EAAE,CAAC;4BACtB,CAAC;iCAAM,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;gCAChC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;4BAC7B,CAAC;wBACF,CAAC;wBACD,MAAM;oBACP,CAAC;oBAED;wBACC,IAAI,CAAC,aAAa,CACjB,IAAI,WAAW,CAAC,OAAO,EAAE;4BACxB,OAAO,EAAE,IAAI;4BACb,QAAQ,EAAE,IAAI;yBACd,CAAC,CACF,CAAC;gBACJ,CAAC;YACF,CAAC;QACF,CAAC,CAAC;QAnED,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QACxC,IAAI,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC;IAC3D,CAAC;IAEQ,OAAO,CAAC,OAAuB;QACvC,mFAAmF;QACnF,IAAI,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,OAAO,KAAK,UAAU,EAAE,CAAC;YAC3D,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC;YACzB,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC;QACvB,CAAC;IACF,CAAC;IA2DQ,KAAK;QACb,IAAI,CAAC,IAAI,CAAC,QAAQ;YAAE,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC;IACvE,CAAC;IAEQ,IAAI;QACZ,IAAI,CAAC,IAAI,CAAC,QAAQ;YAAE,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,CAAC;IACtE,CAAC;IAEQ,KAAK;QACb,IAAI,CAAC,IAAI,CAAC,QAAQ;YAAE,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC;IACvE,CAAC;IAEQ,MAAM;QACd,MAAM,aAAa,GAAG;YACrB,YAAY,EAAE,IAAI;YAClB,qBAAqB,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI;SAClC,CAAC;QAEF,IAAI,WAA4B,CAAC;QACjC,IAAI,IAAI,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC7B,WAAW,GAAG,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,iBAAiB,CAAC;QAC7F,CAAC;aAAM,CAAC;YACP,WAAW,GAAG,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,iBAAiB,CAAC;QAC7F,CAAC;QAED,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACf,OAAO,IAAI,CAAA,wBAAwB,QAAQ,CAAC,aAAa,CAAC,WAAW,IAAI,CAAC,IAAI,aAAa,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC;;;;QAI5G,CAAC;QACP,CAAC;QAED,OAAO,IAAI,CAAA;;;YAGD,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;aACnB,QAAQ,CAAC,aAAa,CAAC;YACxB,IAAI,CAAC,IAAI;YACT,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;aACnB,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC;iBACjB,IAAI,CAAC,QAAQ;cAChB,IAAI,CAAC,YAAY;;MAEzB,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAA,mCAAmC,WAAW,gBAAgB,CAAC,CAAC,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAA,6BAA6B;;MAEzJ,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAA,4BAA4B;;GAE5D,CAAC;IACH,CAAC;;AA1Ie,gBAAM,GAAG,CAAC,MAAM,CAAC,AAAX,CAAY;AAE3B,wBAAc,GAAG,IAAI,AAAP,CAAQ;AAGe;IAA3C,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;2CAA2B;AAC1B;IAA3C,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;uCAAuB;AACtB;IAA3C,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;0CAA0B;AAC1B;IAA1C,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;wCAA4B;AAC3B;IAA1C,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;uCAAe;AACd;IAA1C,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;uCAAe;AACd;IAA1C,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;uCAAe;AACd;IAA1C,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;uCAAyB;AACxB;IAA1C,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;yCAAsB;AACrB;IAA1C,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;uCAA6B;AAC5B;IAA1C,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;wCAAoB;AACnB;IAA1C,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;0CAAoC;AAjBlE,SAAS;IADrB,oBAAoB,CAAC,YAAY,CAAC;GACtB,SAAS,CA4IrB","sourcesContent":["import { LitElement, PropertyValues, html, nothing } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { guardedCustomElement } from '../utils/guarded-custom-element';\nimport { styles } from './sds-button.styles';\nimport { ColorMode as LoaderColorMode } from '../sds-loader/sds-loader';\nimport { SDS_COLOR_PALETTES, SDS_SIZES, SDS_VARIANTS } from '../types';\n\ntype ButtonType = 'button' | 'submit' | 'reset';\ntype ButtonVariant = SDS_VARIANTS | 'critical';\ntype ButtonColorPalette = Extract<SDS_COLOR_PALETTES, 'accent' | 'danger'>;\ntype ButtonSize = 'large' | 'medium' | 'small' | Extract<SDS_SIZES, 'lg' | 'md' | 'sm'>;\ntype TargetTypes = '_self' | '_blank' | '_parent' | '_top';\n\nexport interface SDSButtonProps {\n\tcolor?: ButtonColorPalette;\n\tdisabled?: boolean;\n\tform?: string;\n\thref?: string;\n\ticon?: boolean;\n\tloading?: boolean;\n\tname?: string;\n\tsize?: ButtonSize;\n\ttarget?: TargetTypes;\n\ttype?: ButtonType;\n\tvalue?: string;\n\tvariant?: ButtonVariant;\n\tonClick?: (event: CustomEvent) => void;\n\tonReset?: (event: CustomEvent) => void;\n\tonSubmit?: (event: CustomEvent) => void;\n}\n\n@guardedCustomElement('sds-button')\nexport class SDSButton extends LitElement {\n\tstatic override styles = [styles];\n\n\tstatic formAssociated = true;\n\tpublic readonly internals: ElementInternals;\n\n\t@property({ type: Boolean, reflect: true }) disabled: boolean = false;\n\t@property({ type: Boolean, reflect: true }) icon: boolean = false;\n\t@property({ type: Boolean, reflect: true }) loading: boolean = false;\n\t@property({ type: String, reflect: true }) color?: ButtonColorPalette;\n\t@property({ type: String, reflect: true }) form?: string;\n\t@property({ type: String, reflect: true }) href?: string;\n\t@property({ type: String, reflect: true }) name?: string;\n\t@property({ type: String, reflect: true }) size: ButtonSize = 'lg';\n\t@property({ type: String, reflect: true }) target?: TargetTypes;\n\t@property({ type: String, reflect: true }) type: ButtonType = 'button';\n\t@property({ type: String, reflect: true }) value: string = '';\n\t@property({ type: String, reflect: true }) variant: ButtonVariant = 'primary';\n\n\tconstructor() {\n\t\tsuper();\n\t\tthis.internals = this.attachInternals();\n\t\tthis.attachShadow({ mode: 'open', delegatesFocus: true });\n\t}\n\n\toverride updated(changed: PropertyValues) {\n\t\t// Cast critical variant to primary and color to danger to prevent breaking changes\n\t\tif (changed.has('variant') && this.variant === 'critical') {\n\t\t\tthis.variant = 'primary';\n\t\t\tthis.color = 'danger';\n\t\t}\n\t}\n\n\tprivate readonly _handleClick = (event: MouseEvent) => {\n\t\tevent.preventDefault();\n\t\tevent.stopImmediatePropagation();\n\n\t\tif (!this.disabled) {\n\t\t\tswitch (this.type) {\n\t\t\t\tcase 'submit': {\n\t\t\t\t\tconst submitEvent = new CustomEvent('submit', {\n\t\t\t\t\t\tbubbles: true,\n\t\t\t\t\t\tcomposed: true,\n\t\t\t\t\t\tcancelable: true,\n\t\t\t\t\t});\n\t\t\t\t\tconst shouldSubmit = this.dispatchEvent(submitEvent);\n\n\t\t\t\t\tif (shouldSubmit) {\n\t\t\t\t\t\tif (this.form) {\n\t\t\t\t\t\t\tconst root = this.getRootNode() as Document | ShadowRoot;\n\t\t\t\t\t\t\tconst formElement: HTMLFormElement | null = root.querySelector(`form#${this.form}`);\n\t\t\t\t\t\t\tformElement?.requestSubmit();\n\t\t\t\t\t\t} else if (this.internals.form) {\n\t\t\t\t\t\t\tthis.internals.form.requestSubmit();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tcase 'reset': {\n\t\t\t\t\tconst resetEvent = new CustomEvent('reset', {\n\t\t\t\t\t\tbubbles: true,\n\t\t\t\t\t\tcomposed: true,\n\t\t\t\t\t\tcancelable: true,\n\t\t\t\t\t});\n\t\t\t\t\tconst shouldReset = this.dispatchEvent(resetEvent);\n\n\t\t\t\t\tif (shouldReset) {\n\t\t\t\t\t\tif (this.form) {\n\t\t\t\t\t\t\tconst root = this.getRootNode() as Document | ShadowRoot;\n\t\t\t\t\t\t\tconst formElement: HTMLFormElement | null = root.querySelector(`form#${this.form}`);\n\t\t\t\t\t\t\tformElement?.reset();\n\t\t\t\t\t\t} else if (this.internals.form) {\n\t\t\t\t\t\t\tthis.internals.form.reset();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tdefault:\n\t\t\t\t\tthis.dispatchEvent(\n\t\t\t\t\t\tnew CustomEvent('click', {\n\t\t\t\t\t\t\tbubbles: true,\n\t\t\t\t\t\t\tcomposed: true,\n\t\t\t\t\t\t})\n\t\t\t\t\t);\n\t\t\t}\n\t\t}\n\t};\n\n\toverride focus(): void {\n\t\tif (!this.disabled) this.shadowRoot?.querySelector('button')?.focus();\n\t}\n\n\toverride blur(): void {\n\t\tif (!this.disabled) this.shadowRoot?.querySelector('button')?.blur();\n\t}\n\n\toverride click(): void {\n\t\tif (!this.disabled) this.shadowRoot?.querySelector('button')?.click();\n\t}\n\n\toverride render() {\n\t\tconst buttonClasses = {\n\t\t\t'sds-button': true,\n\t\t\t'sds-button--as-link': !!this.href,\n\t\t};\n\n\t\tlet loaderColor: LoaderColorMode;\n\t\tif (this.color === 'danger') {\n\t\t\tloaderColor = ['primary', 'critical'].includes(this.variant) ? 'danger' : 'danger-contrast';\n\t\t} else {\n\t\t\tloaderColor = ['primary', 'critical'].includes(this.variant) ? 'accent' : 'accent-contrast';\n\t\t}\n\n\t\tif (this.href) {\n\t\t\treturn html` <a id=\"link\" class=\"${classMap(buttonClasses)}\" href=\"${this.href}\" target=\"${ifDefined(this.target)}\">\n\t\t\t\t<slot name=\"before\"></slot>\n\t\t\t\t<slot></slot>\n\t\t\t\t<slot name=\"after\"></slot>\n\t\t\t</a>`;\n\t\t}\n\n\t\treturn html`\n\t\t\t<button\n\t\t\t\tid=\"control\"\n\t\t\t\tform=\"${ifDefined(this.form)}\"\n\t\t\t\tclass=\"${classMap(buttonClasses)}\"\n\t\t\t\ttype=\"${this.type}\"\n\t\t\t\tname=\"${ifDefined(this.name)}\"\n\t\t\t\tvalue=\"${ifDefined(this.value)}\"\n\t\t\t\t?disabled=\"${this.disabled}\"\n\t\t\t\t@click=\"${this._handleClick}\"\n\t\t\t>\n\t\t\t\t${this.loading ? html`<sds-loader slot=\"before\" color=${loaderColor}></sds-loader>` : nothing} ${this.loading ? nothing : html`<slot name=\"before\"></slot>`}\n\t\t\t\t<slot></slot>\n\t\t\t\t${this.loading ? nothing : html`<slot name=\"after\"></slot>`}\n\t\t\t</button>\n\t\t`;\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'sds-button': SDSButton;\n\t}\n}\n"]}
|