@scania/tegel 0.0.31 → 0.0.33
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/cjs/sdds-toast.cjs.entry.js +1 -1
- package/dist/cjs/sdds-toast.cjs.entry.js.map +1 -1
- package/dist/collection/components/toast/sdds-toast.js +2 -2
- package/dist/collection/components/toast/sdds-toast.js.map +1 -1
- package/dist/components/dropdown-option.js +103 -0
- package/dist/components/dropdown-option.js.map +1 -0
- package/dist/components/dropdown.js +306 -0
- package/dist/components/dropdown.js.map +1 -0
- package/dist/components/icon.js +61 -0
- package/dist/components/icon.js.map +1 -0
- package/dist/components/index.d.ts +27 -0
- package/dist/components/index.js +3 -0
- package/dist/components/index.js.map +1 -0
- package/dist/components/popper.js +1801 -0
- package/dist/components/popper.js.map +1 -0
- package/dist/components/sdds-accordion-item.d.ts +11 -0
- package/dist/components/sdds-accordion-item.js +63 -0
- package/dist/components/sdds-accordion-item.js.map +1 -0
- package/dist/components/sdds-accordion.d.ts +11 -0
- package/dist/components/sdds-accordion.js +41 -0
- package/dist/components/sdds-accordion.js.map +1 -0
- package/dist/components/sdds-badges.d.ts +11 -0
- package/dist/components/sdds-badges.js +78 -0
- package/dist/components/sdds-badges.js.map +1 -0
- package/dist/components/sdds-banner.d.ts +11 -0
- package/dist/components/sdds-banner.js +122 -0
- package/dist/components/sdds-banner.js.map +1 -0
- package/dist/components/sdds-block.d.ts +11 -0
- package/dist/components/sdds-block.js +51 -0
- package/dist/components/sdds-block.js.map +1 -0
- package/dist/components/sdds-body-cell.d.ts +11 -0
- package/dist/components/sdds-body-cell.js +8 -0
- package/dist/components/sdds-body-cell.js.map +1 -0
- package/dist/components/sdds-breadcrumb-item.d.ts +11 -0
- package/dist/components/sdds-breadcrumb-item.js +46 -0
- package/dist/components/sdds-breadcrumb-item.js.map +1 -0
- package/dist/components/sdds-breadcrumb.d.ts +11 -0
- package/dist/components/sdds-breadcrumb.js +40 -0
- package/dist/components/sdds-breadcrumb.js.map +1 -0
- package/dist/components/sdds-button.d.ts +11 -0
- package/dist/components/sdds-button.js +62 -0
- package/dist/components/sdds-button.js.map +1 -0
- package/dist/components/sdds-card.d.ts +11 -0
- package/dist/components/sdds-card.js +87 -0
- package/dist/components/sdds-card.js.map +1 -0
- package/dist/components/sdds-checkbox.d.ts +11 -0
- package/dist/components/sdds-checkbox.js +79 -0
- package/dist/components/sdds-checkbox.js.map +1 -0
- package/dist/components/sdds-datetime.d.ts +11 -0
- package/dist/components/sdds-datetime.js +132 -0
- package/dist/components/sdds-datetime.js.map +1 -0
- package/dist/components/sdds-dropdown-filter.d.ts +11 -0
- package/dist/components/sdds-dropdown-filter.js +141 -0
- package/dist/components/sdds-dropdown-filter.js.map +1 -0
- package/dist/components/sdds-dropdown-option.d.ts +11 -0
- package/dist/components/sdds-dropdown-option.js +8 -0
- package/dist/components/sdds-dropdown-option.js.map +1 -0
- package/dist/components/sdds-dropdown.d.ts +11 -0
- package/dist/components/sdds-dropdown.js +8 -0
- package/dist/components/sdds-dropdown.js.map +1 -0
- package/dist/components/sdds-header-cell.d.ts +11 -0
- package/dist/components/sdds-header-cell.js +173 -0
- package/dist/components/sdds-header-cell.js.map +1 -0
- package/dist/components/sdds-icon.d.ts +11 -0
- package/dist/components/sdds-icon.js +8 -0
- package/dist/components/sdds-icon.js.map +1 -0
- package/dist/components/sdds-inline-tab.d.ts +11 -0
- package/dist/components/sdds-inline-tab.js +43 -0
- package/dist/components/sdds-inline-tab.js.map +1 -0
- package/dist/components/sdds-inline-tabs-fullbleed.d.ts +11 -0
- package/dist/components/sdds-inline-tabs-fullbleed.js +120 -0
- package/dist/components/sdds-inline-tabs-fullbleed.js.map +1 -0
- package/dist/components/sdds-inline-tabs.d.ts +11 -0
- package/dist/components/sdds-inline-tabs.js +248 -0
- package/dist/components/sdds-inline-tabs.js.map +1 -0
- package/dist/components/sdds-link.d.ts +11 -0
- package/dist/components/sdds-link.js +8 -0
- package/dist/components/sdds-link.js.map +1 -0
- package/dist/components/sdds-link2.js +47 -0
- package/dist/components/sdds-link2.js.map +1 -0
- package/dist/components/sdds-message.d.ts +11 -0
- package/dist/components/sdds-message.js +70 -0
- package/dist/components/sdds-message.js.map +1 -0
- package/dist/components/sdds-modal.d.ts +11 -0
- package/dist/components/sdds-modal.js +80 -0
- package/dist/components/sdds-modal.js.map +1 -0
- package/dist/components/sdds-navigation-tabs.d.ts +11 -0
- package/dist/components/sdds-navigation-tabs.js +120 -0
- package/dist/components/sdds-navigation-tabs.js.map +1 -0
- package/dist/components/sdds-popover-canvas.d.ts +11 -0
- package/dist/components/sdds-popover-canvas.js +111 -0
- package/dist/components/sdds-popover-canvas.js.map +1 -0
- package/dist/components/sdds-popover-menu.d.ts +11 -0
- package/dist/components/sdds-popover-menu.js +112 -0
- package/dist/components/sdds-popover-menu.js.map +1 -0
- package/dist/components/sdds-radio-button.d.ts +11 -0
- package/dist/components/sdds-radio-button.js +55 -0
- package/dist/components/sdds-radio-button.js.map +1 -0
- package/dist/components/sdds-slider.d.ts +11 -0
- package/dist/components/sdds-slider.js +397 -0
- package/dist/components/sdds-slider.js.map +1 -0
- package/dist/components/sdds-spinner.d.ts +11 -0
- package/dist/components/sdds-spinner.js +40 -0
- package/dist/components/sdds-spinner.js.map +1 -0
- package/dist/components/sdds-table-body-row-expandable.d.ts +11 -0
- package/dist/components/sdds-table-body-row-expandable.js +108 -0
- package/dist/components/sdds-table-body-row-expandable.js.map +1 -0
- package/dist/components/sdds-table-body-row.d.ts +11 -0
- package/dist/components/sdds-table-body-row.js +8 -0
- package/dist/components/sdds-table-body-row.js.map +1 -0
- package/dist/components/sdds-table-body.d.ts +11 -0
- package/dist/components/sdds-table-body.js +340 -0
- package/dist/components/sdds-table-body.js.map +1 -0
- package/dist/components/sdds-table-footer.d.ts +11 -0
- package/dist/components/sdds-table-footer.js +198 -0
- package/dist/components/sdds-table-footer.js.map +1 -0
- package/dist/components/sdds-table-header.d.ts +11 -0
- package/dist/components/sdds-table-header.js +127 -0
- package/dist/components/sdds-table-header.js.map +1 -0
- package/dist/components/sdds-table-toolbar.d.ts +11 -0
- package/dist/components/sdds-table-toolbar.js +90 -0
- package/dist/components/sdds-table-toolbar.js.map +1 -0
- package/dist/components/sdds-table.d.ts +11 -0
- package/dist/components/sdds-table.js +94 -0
- package/dist/components/sdds-table.js.map +1 -0
- package/dist/components/sdds-textarea.d.ts +11 -0
- package/dist/components/sdds-textarea.js +112 -0
- package/dist/components/sdds-textarea.js.map +1 -0
- package/dist/components/sdds-textfield.d.ts +11 -0
- package/dist/components/sdds-textfield.js +130 -0
- package/dist/components/sdds-textfield.js.map +1 -0
- package/dist/components/sdds-toast.d.ts +11 -0
- package/dist/components/sdds-toast.js +120 -0
- package/dist/components/sdds-toast.js.map +1 -0
- package/dist/components/sdds-toggle.d.ts +11 -0
- package/dist/components/sdds-toggle.js +72 -0
- package/dist/components/sdds-toggle.js.map +1 -0
- package/dist/components/sdds-tooltip.d.ts +11 -0
- package/dist/components/sdds-tooltip.js +130 -0
- package/dist/components/sdds-tooltip.js.map +1 -0
- package/dist/components/table-body-cell.js +104 -0
- package/dist/components/table-body-cell.js.map +1 -0
- package/dist/components/table-body-row.js +123 -0
- package/dist/components/table-body-row.js.map +1 -0
- package/dist/esm/sdds-toast.entry.js +1 -1
- package/dist/esm/sdds-toast.entry.js.map +1 -1
- package/{loader → dist/loader}/cdn.js +1 -1
- package/{loader → dist/loader}/index.cjs.js +1 -1
- package/{loader → dist/loader}/index.d.ts +1 -1
- package/dist/loader/index.es2017.js +3 -0
- package/{loader → dist/loader}/index.js +2 -2
- package/{loader → dist/loader}/package.json +0 -0
- package/dist/tegel/{p-46013562.entry.js → p-f51fe381.entry.js} +2 -2
- package/dist/tegel/p-f51fe381.entry.js.map +1 -0
- package/dist/tegel/tegel.esm.js +1 -1
- package/dist/types/components/toast/sdds-toast.d.ts +1 -1
- package/dist/types/components.d.ts +2 -2
- package/package.json +3 -3
- package/dist/tegel/p-46013562.entry.js.map +0 -1
- package/loader/index.es2017.js +0 -3
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { proxyCustomElement, HTMLElement, h, Host } from '@stencil/core/internal/client';
|
|
2
|
+
import { d as defineCustomElement$2 } from './icon.js';
|
|
3
|
+
|
|
4
|
+
const sddsMessageCss = ":host .message-wrapper{display:flex;padding:16px;background-color:var(--sdds-message-background);border-radius:4px}:host .message-wrapper.information{border-left:4px solid var(--sdds-information)}:host .message-wrapper.information sdds-icon{color:var(--sdds-information)}:host .message-wrapper.success{border-left:4px solid var(--sdds-positive)}:host .message-wrapper.success sdds-icon{color:var(--sdds-positive)}:host .message-wrapper.error{background-color:var(--sdds-message-type-error-background);border-left:4px solid var(--sdds-negative)}:host .message-wrapper.error sdds-icon{color:var(--sdds-negative)}:host .message-wrapper.warning{border-left:4px solid var(--sdds-warning)}:host .message-wrapper.warning sdds-icon{color:var(--sdds-warning)}:host .message-wrapper.message-minimal{border:none;display:flex;align-items:center;padding:0;background-color:transparent}:host .message-wrapper.message-minimal .message-header{font:var(--sdds-detail-02);letter-spacing:var(--sdds-detail-02-ls)}:host .message-wrapper.message-minimal sdds-icon{padding-right:8px}:host sdds-icon{padding-right:16px}:host .message-content{display:flex;flex-direction:column;gap:4px;color:var(--sdds-message-color);padding:2px 0}:host .message-content .message-header{font:var(--sdds-headline-07);letter-spacing:var(--sdds-headline-07-ls)}:host .message-content .message-extended-message{color:var(--sdds-message-color);font:var(--sdds-detail-02);letter-spacing:var(--sdds-detail-02-ls)}:host .sdds-mode-variant-primary{--sdds-message-background:var(--sdds-message-background-primary)}:host .sdds-mode-variant-secondary{--sdds-message-background:var(--sdds-message-background-secondary)}";
|
|
5
|
+
|
|
6
|
+
const SddsMessage$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
|
|
7
|
+
constructor() {
|
|
8
|
+
super();
|
|
9
|
+
this.__registerHost();
|
|
10
|
+
this.__attachShadow();
|
|
11
|
+
this.getIconName = () => {
|
|
12
|
+
switch (this.type) {
|
|
13
|
+
case 'information':
|
|
14
|
+
return 'info';
|
|
15
|
+
case 'error':
|
|
16
|
+
return 'error';
|
|
17
|
+
case 'warning':
|
|
18
|
+
return 'warning';
|
|
19
|
+
case 'success':
|
|
20
|
+
return 'tick';
|
|
21
|
+
default:
|
|
22
|
+
return 'info';
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
this.header = undefined;
|
|
26
|
+
this.modeVariant = null;
|
|
27
|
+
this.type = 'information';
|
|
28
|
+
this.noIcon = false;
|
|
29
|
+
this.minimal = false;
|
|
30
|
+
}
|
|
31
|
+
render() {
|
|
32
|
+
return (h(Host, null, h("div", { class: `
|
|
33
|
+
message-wrapper ${this.type}
|
|
34
|
+
${this.minimal ? 'message-minimal' : ''}
|
|
35
|
+
${this.modeVariant !== null ? `sdds-mode-variant-${this.modeVariant}` : ''}` }, !this.noIcon && h("sdds-icon", { name: this.getIconName(), size: "20px" }), h("div", { class: `message-content` }, this.header && h("div", { class: "message-header" }, this.header), !this.minimal && (h("div", { class: "message-extended-message" }, h("slot", null)))))));
|
|
36
|
+
}
|
|
37
|
+
static get style() { return sddsMessageCss; }
|
|
38
|
+
}, [1, "sdds-message", {
|
|
39
|
+
"header": [1],
|
|
40
|
+
"modeVariant": [1, "mode-variant"],
|
|
41
|
+
"type": [1],
|
|
42
|
+
"noIcon": [4, "no-icon"],
|
|
43
|
+
"minimal": [4]
|
|
44
|
+
}]);
|
|
45
|
+
function defineCustomElement$1() {
|
|
46
|
+
if (typeof customElements === "undefined") {
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
49
|
+
const components = ["sdds-message", "sdds-icon"];
|
|
50
|
+
components.forEach(tagName => { switch (tagName) {
|
|
51
|
+
case "sdds-message":
|
|
52
|
+
if (!customElements.get(tagName)) {
|
|
53
|
+
customElements.define(tagName, SddsMessage$1);
|
|
54
|
+
}
|
|
55
|
+
break;
|
|
56
|
+
case "sdds-icon":
|
|
57
|
+
if (!customElements.get(tagName)) {
|
|
58
|
+
defineCustomElement$2();
|
|
59
|
+
}
|
|
60
|
+
break;
|
|
61
|
+
} });
|
|
62
|
+
}
|
|
63
|
+
defineCustomElement$1();
|
|
64
|
+
|
|
65
|
+
const SddsMessage = SddsMessage$1;
|
|
66
|
+
const defineCustomElement = defineCustomElement$1;
|
|
67
|
+
|
|
68
|
+
export { SddsMessage, defineCustomElement };
|
|
69
|
+
|
|
70
|
+
//# sourceMappingURL=sdds-message.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"file":"sdds-message.js","mappings":";;;AAAA,MAAM,cAAc,GAAG,ooDAAooD;;MCO9oDA,aAAW;;;;;IAgBtB,gBAAW,GAAG;MACZ,QAAQ,IAAI,CAAC,IAAI;QACf,KAAK,aAAa;UAChB,OAAO,MAAM,CAAC;QAChB,KAAK,OAAO;UACV,OAAO,OAAO,CAAC;QACjB,KAAK,SAAS;UACZ,OAAO,SAAS,CAAC;QACnB,KAAK,SAAS;UACZ,OAAO,MAAM,CAAC;QAChB;UACE,OAAO,MAAM,CAAC;OACjB;KACF,CAAC;;uBAxB6C,IAAI;gBAGa,aAAa;kBAGnD,KAAK;mBAGJ,KAAK;;EAiBhC,MAAM;IACJ,QACE,EAAC,IAAI,QACH,WACE,KAAK,EAAE;0BACS,IAAI,CAAC,IAAI;UACzB,IAAI,CAAC,OAAO,GAAG,iBAAiB,GAAG,EAAE;UACrC,IAAI,CAAC,WAAW,KAAK,IAAI,GAAG,qBAAqB,IAAI,CAAC,WAAW,EAAE,GAAE,EAAE,EAAE,IAExE,CAAC,IAAI,CAAC,MAAM,IAAI,iBAAW,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,EAAE,IAAI,EAAC,MAAM,GAAa,EAC9E,WAAK,KAAK,EAAE,iBAAiB,IAC1B,IAAI,CAAC,MAAM,IAAI,WAAK,KAAK,EAAC,gBAAgB,IAAE,IAAI,CAAC,MAAM,CAAO,EAC9D,CAAC,IAAI,CAAC,OAAO,KACZ,WAAK,KAAK,EAAC,0BAA0B,IACnC,eAAa,CACT,CACP,CACG,CACF,CACD,EACP;GACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":["SddsMessage"],"sources":["./src/components/message/sdds-message.scss?tag=sdds-message&encapsulation=shadow","./src/components/message/sdds-message.tsx"],"sourcesContent":[":host {\n .message-wrapper {\n display: flex;\n padding: 16px;\n background-color: var(--sdds-message-background);\n border-radius: 4px;\n\n &.information {\n border-left: 4px solid var(--sdds-information);\n\n sdds-icon {\n color: var(--sdds-information);\n }\n }\n\n &.success {\n border-left: 4px solid var(--sdds-positive);\n\n sdds-icon {\n color: var(--sdds-positive);\n }\n }\n\n &.error {\n background-color: var(--sdds-message-type-error-background);\n border-left: 4px solid var(--sdds-negative);\n\n sdds-icon {\n color: var(--sdds-negative);\n }\n }\n\n &.warning {\n border-left: 4px solid var(--sdds-warning);\n\n sdds-icon {\n color: var(--sdds-warning);\n }\n }\n\n &.message-minimal {\n border: none;\n display: flex;\n align-items: center;\n padding: 0;\n background-color: transparent;\n\n .message-header {\n font: var(--sdds-detail-02);\n letter-spacing: var(--sdds-detail-02-ls);\n }\n\n sdds-icon {\n padding-right: 8px;\n }\n }\n }\n\n sdds-icon {\n padding-right: 16px;\n }\n\n .message-content {\n display: flex;\n flex-direction: column;\n gap: 4px;\n color: var(--sdds-message-color);\n padding: 2px 0;\n\n .message-header {\n font: var(--sdds-headline-07);\n letter-spacing: var(--sdds-headline-07-ls);\n }\n\n .message-extended-message {\n color: var(--sdds-message-color);\n font: var(--sdds-detail-02);\n letter-spacing: var(--sdds-detail-02-ls);\n }\n }\n\n .sdds-mode-variant-primary {\n --sdds-message-background: var(--sdds-message-background-primary);\n }\n\n .sdds-mode-variant-secondary {\n --sdds-message-background: var(--sdds-message-background-secondary);\n }\n}\n","import { Component, Host, h, Prop } from '@stencil/core';\n\n@Component({\n tag: 'sdds-message',\n styleUrl: 'sdds-message.scss',\n shadow: true,\n})\nexport class SddsMessage {\n /** Header text for the component. */\n @Prop() header: string;\n\n /** Variant of the component, based on current mode. */\n @Prop() modeVariant: 'primary' | 'secondary' = null;\n\n /** Type of message. */\n @Prop() type: 'information' | 'error' | 'warning' | 'success' = 'information';\n\n /** Removes the icon in the message. */\n @Prop() noIcon: boolean = false;\n\n /** Minimal message styling. */\n @Prop() minimal: boolean = false;\n\n getIconName = () => {\n switch (this.type) {\n case 'information':\n return 'info';\n case 'error':\n return 'error';\n case 'warning':\n return 'warning';\n case 'success':\n return 'tick';\n default:\n return 'info';\n }\n };\n\n render() {\n return (\n <Host>\n <div\n class={`\n message-wrapper ${this.type}\n ${this.minimal ? 'message-minimal' : ''}\n ${this.modeVariant !== null ? `sdds-mode-variant-${this.modeVariant}`: ''}`}\n >\n {!this.noIcon && <sdds-icon name={this.getIconName()} size=\"20px\"></sdds-icon>}\n <div class={`message-content`}>\n {this.header && <div class=\"message-header\">{this.header}</div>}\n {!this.minimal && (\n <div class=\"message-extended-message\">\n <slot></slot>\n </div>\n )}\n </div>\n </div>\n </Host>\n );\n }\n}\n"],"version":3}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { Components, JSX } from "../types/components";
|
|
2
|
+
|
|
3
|
+
interface SddsModal extends Components.SddsModal, HTMLElement {}
|
|
4
|
+
export const SddsModal: {
|
|
5
|
+
prototype: SddsModal;
|
|
6
|
+
new (): SddsModal;
|
|
7
|
+
};
|
|
8
|
+
/**
|
|
9
|
+
* Used to define this component and all nested components recursively.
|
|
10
|
+
*/
|
|
11
|
+
export const defineCustomElement: () => void;
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { proxyCustomElement, HTMLElement, h, Host } from '@stencil/core/internal/client';
|
|
2
|
+
import { d as defineCustomElement$2 } from './icon.js';
|
|
3
|
+
|
|
4
|
+
const modalCss = ":root,.sdds-mode-light{--sdds-modal-backdrop:rgba(0 0 0 / 40%);--sdds-modal-background:var(--sdds-white);--sdds-modal-text:var(--sdds-grey-958);--sdds-modal-icon:var(--sdds-black);--sdds-modal-icon-native:url(\"data:image/svg+xml,%3Csvg width='16' height='16' viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M3.40338 2.34308C3.11048 2.05019 2.63561 2.05019 2.34272 2.34308C2.04982 2.63598 2.04982 3.11085 2.34272 3.40374L6.93897 8L2.34283 12.5961C2.04994 12.889 2.04994 13.3639 2.34283 13.6568C2.63572 13.9497 3.1106 13.9497 3.40349 13.6568L7.99963 9.06066L12.5958 13.6568C12.8887 13.9497 13.3635 13.9497 13.6564 13.6568C13.9493 13.3639 13.9493 12.889 13.6564 12.5961L9.06029 8L13.6565 3.40376C13.9494 3.11086 13.9494 2.63599 13.6565 2.3431C13.3636 2.0502 12.8888 2.0502 12.5959 2.3431L7.99963 6.93934L3.40338 2.34308Z' fill='black'/%3E%3C/svg%3E%0A\");--sdds-modal-scrollbar:var(--sdds-grey-300);--sdds-modal-scrollbar-track:var(--sdds-grey-300);--sdds-modal-scrollbar-thumb:var(--sdds-grey-500)}.sdds-mode-dark{--sdds-modal-backdrop:rgba(0 0 0 / 40%);--sdds-modal-background:var(--sdds-grey-900);--sdds-modal-text:var(--sdds-grey-50);--sdds-modal-icon:var(--sdds-white);--sdds-modal-icon-native:url(\"data:image/svg+xml,%3Csvg width='16' height='16' viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M3.40338 2.34308C3.11048 2.05019 2.63561 2.05019 2.34272 2.34308C2.04982 2.63598 2.04982 3.11085 2.34272 3.40374L6.93897 8L2.34283 12.5961C2.04994 12.889 2.04994 13.3639 2.34283 13.6568C2.63572 13.9497 3.1106 13.9497 3.40349 13.6568L7.99963 9.06066L12.5958 13.6568C12.8887 13.9497 13.3635 13.9497 13.6564 13.6568C13.9493 13.3639 13.9493 12.889 13.6564 12.5961L9.06029 8L13.6565 3.40376C13.9494 3.11086 13.9494 2.63599 13.6565 2.3431C13.3636 2.0502 12.8888 2.0502 12.5959 2.3431L7.99963 6.93934L3.40338 2.34308Z' fill='white'/%3E%3C/svg%3E%0A\");--sdds-modal-scrollbar:var(--sdds-grey-300);--sdds-modal-scrollbar-track:var(--sdds-grey-300);--sdds-modal-scrollbar-thumb:var(--sdds-grey-500)}.sdds-modal{box-sizing:border-box;background-color:var(--sdds-modal-background);margin:auto;position:relative;border-radius:4px;padding:16px;max-height:85vh;overflow-y:auto;}.sdds-modal *{box-sizing:border-box}.sdds-modal::-webkit-scrollbar{width:5px;background-color:var(--sdds-grey-300);border-radius:0 1em 1em 0}.sdds-modal::-webkit-scrollbar-track{background-color:var(--sdds-grey-300);border-radius:0 1em 1em 0}.sdds-modal::-webkit-scrollbar-thumb{background-color:var(--sdds-grey-500);border-radius:0 1em 1em 0}.sdds-modal__actions-sticky{overflow:hidden}.sdds-modal__actions-sticky .sdds-modal-body{font:var(--sdds-body-01);letter-spacing:var(--sdds-body-01-ls);padding-bottom:96px;margin:0 -16px 0 0;max-height:calc(85vh - 36px);overflow-y:auto}.sdds-modal__actions-sticky .sdds-modal-actions{position:absolute;bottom:-1px;left:0;right:0;background-color:var(--sdds-modal-background);padding:var(--sdds-spacing-element-16);display:flex;gap:16px}.sdds-modal__actions-static .sdds-modal-actions{background-color:var(--sdds-modal-background);display:flex;gap:16px}@media (min-width: 320px){.sdds-modal-xs{width:100%}.sdds-modal-sm{width:100%}.sdds-modal-md{width:100%}.sdds-modal-lg{width:100%}}@media (min-width: 672px){.sdds-modal-xs{width:75%}.sdds-modal-sm{width:62.5%}.sdds-modal-md{width:75%}.sdds-modal-lg{width:100%}}@media (min-width: 1056px){.sdds-modal-xs{width:31.25%}.sdds-modal-sm{width:43.75%}.sdds-modal-md{width:62.5%}.sdds-modal-lg{width:75%}}@media (min-width: 1312px){.sdds-modal-xs{width:31.25%}.sdds-modal-sm{width:37.5%}.sdds-modal-md{width:62.5%}.sdds-modal-lg{width:75%}}@media (min-width: 1584px){.sdds-modal-xs{width:25%}.sdds-modal-sm{width:37.5%}.sdds-modal-md{width:50%}.sdds-modal-lg{width:75%}}@media (max-width: 320px){.sdds-modal-md,.sdds-modal-lg,.sdds-modal-sm{height:100%}.sdds-modal-md slot[name=sdds-modal-actions]::slotted(*),.sdds-modal-lg slot[name=sdds-modal-actions]::slotted(*),.sdds-modal-sm slot[name=sdds-modal-actions]::slotted(*){display:flex}}.sdds-modal-header{display:flex;padding-bottom:var(--sdds-spacing-element-8);position:sticky;top:0;background-color:var(--sdds-modal-background);z-index:1}.sdds-modal-header::before{content:\" \";position:absolute;height:16px;top:-16px;width:100%;background-color:var(--sdds-modal-background)}.sdds-modal-headline{color:var(--sdds-modal-text);font:var(--sdds-headline-05);letter-spacing:var(--sdds-headline-05-ls);margin:0;flex:1;color:var(--sdds-modal-text)}.sdds-modal-body{color:var(--sdds-modal-text);font:var(--sdds-body-01);letter-spacing:var(--sdds-body-01-ls);padding-bottom:40px;overflow-y:visible;padding-right:16px;}.sdds-modal-body::-webkit-scrollbar{width:5px;background-color:var(--sdds-grey-300)}.sdds-modal-body::-webkit-scrollbar-track{background-color:var(--sdds-grey-300)}.sdds-modal-body::-webkit-scrollbar-thumb{background-color:var(--sdds-grey-500)}@media (min-width: 1056px){.sdds-modal-body{padding-right:64px}}.sdds-modal-backdrop{box-sizing:border-box;left:0;top:0;position:fixed;height:100%;width:100%;z-index:600;background-color:var(--sdds-modal-backdrop);padding:0 16px}.sdds-modal-backdrop *{box-sizing:border-box}@media (max-width: 320px){.sdds-modal-backdrop{padding:0}}.sdds-modal-backdrop.show{display:flex}.sdds-modal-backdrop.hide{display:none}button.sdds-modal-close{background-color:transparent;border:0;padding:0;appearance:unset}.sdds-modal-close{display:inline-block;height:auto;color:var(--sdds-modal-icon);cursor:pointer}.sdds-modal-close:focus{outline:2px solid var(--sdds-blue-400);outline-offset:-2px}@media (min-width: 320px){.sdds-modal-close{margin-left:var(--sdds-spacing-element-16)}}@media (min-width: 1056px){.sdds-modal-close{margin-left:var(--sdds-spacing-element-48)}}.sdds-modal-close-btn{display:inline-block;height:auto;background-repeat:no-repeat;cursor:pointer}@media (min-width: 320px){.sdds-modal-close-btn{margin-left:var(--sdds-spacing-element-16)}}@media (min-width: 1056px){.sdds-modal-close-btn{margin-left:var(--sdds-spacing-element-48)}}.sdds-modal-close-btn svg{fill:var(--sdds-modal-icon)}.sdds-modal-overflow{overflow:hidden}:host{left:0;top:0;position:fixed;height:100%;width:100%;z-index:600;background-color:var(--sdds-modal-backdrop);padding:0 16px}@media (max-width: 320px){:host{padding:0}}:host.show{display:flex}:host.hide{display:none}:host .sdds-modal-close{border:none;background-color:transparent}:host .sdds-modal-close-btn{border:none;background-color:transparent}:host(.show){display:flex}:host(.hide){display:none}";
|
|
5
|
+
|
|
6
|
+
const Modal = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
|
|
7
|
+
constructor() {
|
|
8
|
+
super();
|
|
9
|
+
this.__registerHost();
|
|
10
|
+
this.__attachShadow();
|
|
11
|
+
this.prevent = false;
|
|
12
|
+
this.size = 'md';
|
|
13
|
+
this.actions = 'static';
|
|
14
|
+
this.open = false;
|
|
15
|
+
}
|
|
16
|
+
/** Shows the modal */
|
|
17
|
+
async openModal() {
|
|
18
|
+
this.open = true;
|
|
19
|
+
}
|
|
20
|
+
setDissmissButtons() {
|
|
21
|
+
const nodes = this.el.querySelectorAll('[data-dismiss-modal]');
|
|
22
|
+
[...Array.from(nodes), this.closeButtonEl].forEach((el) => {
|
|
23
|
+
el.addEventListener('click', () => {
|
|
24
|
+
this.open = false;
|
|
25
|
+
});
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
handleClick(e) {
|
|
29
|
+
const targetList = e.composedPath();
|
|
30
|
+
const target = targetList[0];
|
|
31
|
+
if (target.classList[0] === 'sdds-modal-close' ||
|
|
32
|
+
(target.classList[0] === 'sdds-modal-backdrop' && this.prevent === false)) {
|
|
33
|
+
this.open = false;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
componentDidRender() {
|
|
37
|
+
this.setDissmissButtons();
|
|
38
|
+
}
|
|
39
|
+
render() {
|
|
40
|
+
return (h(Host, { onClick: (event) => {
|
|
41
|
+
this.handleClick(event);
|
|
42
|
+
}, class: `sdds-modal-backdrop ${this.open ? 'show' : 'hide'}` }, h("div", { class: `sdds-modal ${this.actions ? `sdds-modal__actions-${this.actions}` : ''} ${this.size ? `sdds-modal-${this.size}` : ''} ` }, h("div", { class: "sdds-modal-header" }, h("slot", { name: "sdds-modal-headline" }), h("button", { class: "sdds-modal-close", "aria-label": "close", ref: (el) => {
|
|
43
|
+
this.closeButtonEl = el;
|
|
44
|
+
} }, h("sdds-icon", { name: "cross", size: "20px" }))), h("div", { class: "sdds-modal-body" }, h("slot", { name: "sdds-modal-body" })), h("div", { class: "sdds-modal-actions" }, h("slot", { name: "sdds-modal-actions" })))));
|
|
45
|
+
}
|
|
46
|
+
get el() { return this; }
|
|
47
|
+
static get style() { return modalCss; }
|
|
48
|
+
}, [1, "sdds-modal", {
|
|
49
|
+
"prevent": [4],
|
|
50
|
+
"size": [1],
|
|
51
|
+
"actions": [1],
|
|
52
|
+
"open": [4],
|
|
53
|
+
"openModal": [64]
|
|
54
|
+
}]);
|
|
55
|
+
function defineCustomElement$1() {
|
|
56
|
+
if (typeof customElements === "undefined") {
|
|
57
|
+
return;
|
|
58
|
+
}
|
|
59
|
+
const components = ["sdds-modal", "sdds-icon"];
|
|
60
|
+
components.forEach(tagName => { switch (tagName) {
|
|
61
|
+
case "sdds-modal":
|
|
62
|
+
if (!customElements.get(tagName)) {
|
|
63
|
+
customElements.define(tagName, Modal);
|
|
64
|
+
}
|
|
65
|
+
break;
|
|
66
|
+
case "sdds-icon":
|
|
67
|
+
if (!customElements.get(tagName)) {
|
|
68
|
+
defineCustomElement$2();
|
|
69
|
+
}
|
|
70
|
+
break;
|
|
71
|
+
} });
|
|
72
|
+
}
|
|
73
|
+
defineCustomElement$1();
|
|
74
|
+
|
|
75
|
+
const SddsModal = Modal;
|
|
76
|
+
const defineCustomElement = defineCustomElement$1;
|
|
77
|
+
|
|
78
|
+
export { SddsModal, defineCustomElement };
|
|
79
|
+
|
|
80
|
+
//# sourceMappingURL=sdds-modal.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"file":"sdds-modal.js","mappings":";;;AAAA,MAAM,QAAQ,GAAG,8+MAA8+M;;MCOl/M,KAAK;;;;;mBAEW,KAAK;gBAGU,IAAI;mBAGP,QAAQ;gBAGvB,KAAK;;;EAQ7B,MAAM,SAAS;IACb,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;GAClB;EAED,kBAAkB;IAChB,MAAM,KAAK,GAAG,IAAI,CAAC,EAAE,CAAC,gBAAgB,CAAC,sBAAsB,CAAC,CAAC;IAE/D,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE;MACpD,EAAE,CAAC,gBAAgB,CAAC,OAAO,EAAE;QAC3B,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;OACnB,CAAC,CAAC;KACJ,CAAC,CAAC;GACJ;EAED,WAAW,CAAC,CAAC;IACX,MAAM,UAAU,GAAG,CAAC,CAAC,YAAY,EAAE,CAAC;IACpC,MAAM,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;IAC7B,IACE,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,kBAAkB;OACzC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,qBAAqB,IAAI,IAAI,CAAC,OAAO,KAAK,KAAK,CAAC,EACzE;MACA,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;KACnB;GACF;EAED,kBAAkB;IAChB,IAAI,CAAC,kBAAkB,EAAE,CAAC;GAC3B;EAED,MAAM;IACJ,QACE,EAAC,IAAI,IACH,OAAO,EAAE,CAAC,KAAK;QACb,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;OACzB,EACD,KAAK,EAAE,uBAAuB,IAAI,CAAC,IAAI,GAAG,MAAM,GAAG,MAAM,EAAE,IAE3D,WACE,KAAK,EAAE,cAAc,IAAI,CAAC,OAAO,GAAG,uBAAuB,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,IAC5E,IAAI,CAAC,IAAI,GAAG,cAAc,IAAI,CAAC,IAAI,EAAE,GAAG,EAC1C,GAAG,IAEH,WAAK,KAAK,EAAC,mBAAmB,IAC5B,YAAM,IAAI,EAAC,qBAAqB,GAAQ,EACxC,cACE,KAAK,EAAC,kBAAkB,gBACb,OAAO,EAClB,GAAG,EAAE,CAAC,EAAE;QACN,IAAI,CAAC,aAAa,GAAG,EAAiB,CAAC;OACxC,IAED,iBAAW,IAAI,EAAC,OAAO,EAAC,IAAI,EAAC,MAAM,GAAa,CACzC,CACL,EAEN,WAAK,KAAK,EAAC,iBAAiB,IAC1B,YAAM,IAAI,EAAC,iBAAiB,GAAQ,CAChC,EAEN,WAAK,KAAK,EAAC,oBAAoB,IAC7B,YAAM,IAAI,EAAC,oBAAoB,GAAQ,CACnC,CACF,CACD,EACP;GACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":[],"sources":["./src/components/modal/modal.scss?tag=sdds-modal&encapsulation=shadow","./src/components/modal/modal.tsx"],"sourcesContent":["@import '../../mixins/z-index';\n@import 'modal-theme-vars';\n@import '../../mixins/box-sizing';\n@import '../../mixins/focus-state';\n\n//TODO: Find a way to create a mixin in spacings that can be used for screen size in rem\n//Media rules doesn't calculate correct with using rem\n// Screen breakpoints\n$screen-s: 320px; //320px\n$screen-md: 672px; // 672px\n$screen-l: 1056px; //1056px\n$screen-xl: 1312px; //1312px\n$screen-xxl: 1584px; //1584px\n\n$modals: (\n $screen-s: (\n xs: 100%,\n sm: 100%,\n md: 100%,\n lg: 100%,\n ),\n $screen-md: (\n xs: 75%,\n sm: 62.5%,\n md: 75%,\n lg: 100%,\n ),\n $screen-l: (\n xs: 31.25%,\n sm: 43.75%,\n md: 62.5%,\n lg: 75%,\n ),\n $screen-xl: (\n xs: 31.25%,\n sm: 37.5%,\n md: 62.5%,\n lg: 75%,\n ),\n $screen-xxl: (\n xs: 25%,\n sm: 37.5%,\n md: 50%,\n lg: 75%,\n ),\n);\n\n/* MIXINS */\n\n@mixin modal-scroll-inner {\n /* SCROLL STUFF */\n\n /* width */\n &::-webkit-scrollbar {\n width: 5px;\n background-color: var(--sdds-grey-300);\n }\n\n /* Track */\n &::-webkit-scrollbar-track {\n background-color: var(--sdds-grey-300);\n }\n\n /* Handle */\n &::-webkit-scrollbar-thumb {\n background-color: var(--sdds-grey-500);\n }\n}\n\n@mixin modal-scroll-outer {\n /* SCROLL STUFF */\n\n /* width */\n &::-webkit-scrollbar {\n width: 5px;\n background-color: var(--sdds-grey-300);\n border-radius: 0 1em 1em 0;\n }\n\n /* Track */\n &::-webkit-scrollbar-track {\n background-color: var(--sdds-grey-300);\n border-radius: 0 1em 1em 0;\n }\n\n /* Handle */\n &::-webkit-scrollbar-thumb {\n background-color: var(--sdds-grey-500);\n border-radius: 0 1em 1em 0;\n }\n}\n\n@mixin modal-host {\n left: 0;\n top: 0;\n position: fixed;\n height: 100%;\n width: 100%;\n z-index: z(modal);\n background-color: var(--sdds-modal-backdrop);\n padding: 0 16px;\n\n @media (max-width: $screen-s) {\n padding: 0;\n }\n\n &.show {\n display: flex;\n }\n\n &.hide {\n display: none;\n }\n}\n\n@mixin modal-header {\n display: flex;\n padding-bottom: var(--sdds-spacing-element-8);\n position: sticky;\n top: 0;\n background-color: var(--sdds-modal-background);\n z-index: 1;\n\n &::before {\n content: ' ';\n position: absolute;\n height: 16px;\n top: -16px;\n width: 100%;\n background-color: var(--sdds-modal-background);\n }\n}\n\n@mixin modal-headline {\n color: var(--sdds-modal-text);\n font: var(--sdds-headline-05);\n letter-spacing: var(--sdds-headline-05-ls);\n margin: 0;\n flex: 1;\n}\n\n@mixin modal-body {\n color: var(--sdds-modal-text);\n font: var(--sdds-body-01);\n letter-spacing: var(--sdds-body-01-ls);\n padding-bottom: 40px;\n overflow-y: visible;\n padding-right: 16px;\n @include modal-scroll-inner;\n\n @media (min-width: $screen-l) {\n padding-right: 64px;\n }\n}\n\n/* MODAL STYLING */\n\n.sdds-modal {\n @include sdds-box-sizing;\n\n background-color: var(--sdds-modal-background);\n margin: auto;\n position: relative;\n border-radius: 4px;\n padding: 16px;\n max-height: 85vh;\n overflow-y: auto;\n\n @include modal-scroll-outer;\n\n &__actions-sticky {\n overflow: hidden;\n\n .sdds-modal-body {\n font: var(--sdds-body-01);\n letter-spacing: var(--sdds-body-01-ls);\n padding-bottom: 96px;\n margin: 0 -16px 0 0;\n max-height: calc(85vh - 36px);\n overflow-y: auto;\n }\n\n .sdds-modal-actions {\n position: absolute;\n bottom: -1px;\n left: 0;\n right: 0;\n background-color: var(--sdds-modal-background);\n padding: var(--sdds-spacing-element-16);\n display: flex;\n gap: 16px;\n }\n }\n\n &__actions-static {\n .sdds-modal-actions {\n background-color: var(--sdds-modal-background);\n display: flex;\n gap: 16px;\n }\n }\n}\n\n//Width of modals in different breakpoints\n@each $screen, $modals in $modals {\n @media (min-width: $screen) {\n @each $modal, $value in $modals {\n .sdds-modal-#{$modal} {\n width: $value;\n }\n }\n }\n}\n\n@media (max-width: $screen-s) {\n .sdds-modal-md,\n .sdds-modal-lg,\n .sdds-modal-sm {\n height: 100%;\n\n slot[name='sdds-modal-actions']::slotted(*) {\n display: flex;\n }\n }\n}\n\n/* MODAL SUBELEMENTS */\n\n.sdds-modal-header {\n @include modal-header;\n}\n\n.sdds-modal-headline {\n @include modal-headline;\n\n color: var(--sdds-modal-text);\n}\n\n.sdds-modal-body {\n @include modal-body;\n}\n\n.sdds-modal-backdrop {\n @include sdds-box-sizing;\n @include modal-host;\n}\n\nbutton.sdds-modal-close {\n background-color: transparent;\n border: 0;\n padding: 0;\n appearance: unset;\n}\n\n.sdds-modal-close {\n display: inline-block;\n height: auto;\n color: var(--sdds-modal-icon);\n cursor: pointer;\n\n &:focus {\n @include sdds-focus-state;\n }\n\n @media (min-width: $screen-s) {\n margin-left: var(--sdds-spacing-element-16);\n }\n\n @media (min-width: $screen-l) {\n margin-left: var(--sdds-spacing-element-48);\n }\n}\n\n//web component with nested svg\n.sdds-modal-close-btn {\n display: inline-block;\n height: auto;\n background-repeat: no-repeat;\n cursor: pointer;\n\n @media (min-width: $screen-s) {\n margin-left: var(--sdds-spacing-element-16);\n }\n\n @media (min-width: $screen-l) {\n margin-left: var(--sdds-spacing-element-48);\n }\n\n svg {\n fill: var(--sdds-modal-icon);\n }\n}\n\n.sdds-modal-overflow {\n overflow: hidden;\n}\n\n/* WEB COMPONENT STUFF */\n\n:host {\n @include modal-host;\n\n .sdds-modal-close {\n border: none;\n background-color: transparent;\n }\n\n .sdds-modal-close-btn {\n border: none;\n background-color: transparent;\n }\n}\n\n:host(.show) {\n display: flex;\n}\n\n:host(.hide) {\n display: none;\n}\n","import { Component, h, Host, Prop, Element, Method } from '@stencil/core';\n\n@Component({\n tag: 'sdds-modal',\n styleUrl: 'modal.scss',\n shadow: true,\n})\nexport class Modal {\n /** Disables closing modal on clicking on overlay area. */\n @Prop() prevent: boolean = false;\n\n /** Size of modal */\n @Prop() size: 'xs' | 'sm' | 'md' | 'lg' = 'md';\n\n /** Sticky or Static Actions */\n @Prop() actions: 'sticky' | 'static' = 'static';\n\n /* Opens or closes the modal. */\n @Prop() open: boolean = false;\n\n @Element() el: HTMLElement;\n\n closeButtonEl: HTMLElement;\n\n /** Shows the modal */\n @Method()\n async openModal() {\n this.open = true;\n }\n\n setDissmissButtons() {\n const nodes = this.el.querySelectorAll('[data-dismiss-modal]');\n\n [...Array.from(nodes), this.closeButtonEl].forEach((el) => {\n el.addEventListener('click', () => {\n this.open = false;\n });\n });\n }\n\n handleClick(e) {\n const targetList = e.composedPath();\n const target = targetList[0];\n if (\n target.classList[0] === 'sdds-modal-close' ||\n (target.classList[0] === 'sdds-modal-backdrop' && this.prevent === false)\n ) {\n this.open = false;\n }\n }\n\n componentDidRender() {\n this.setDissmissButtons();\n }\n\n render() {\n return (\n <Host\n onClick={(event) => {\n this.handleClick(event);\n }}\n class={`sdds-modal-backdrop ${this.open ? 'show' : 'hide'}`}\n >\n <div\n class={`sdds-modal ${this.actions ? `sdds-modal__actions-${this.actions}` : ''} ${\n this.size ? `sdds-modal-${this.size}` : ''\n } `}\n >\n <div class=\"sdds-modal-header\">\n <slot name=\"sdds-modal-headline\"></slot>\n <button\n class=\"sdds-modal-close\"\n aria-label=\"close\"\n ref={(el) => {\n this.closeButtonEl = el as HTMLElement;\n }}\n >\n <sdds-icon name=\"cross\" size=\"20px\"></sdds-icon>\n </button>\n </div>\n\n <div class=\"sdds-modal-body\">\n <slot name=\"sdds-modal-body\"></slot>\n </div>\n\n <div class=\"sdds-modal-actions\">\n <slot name=\"sdds-modal-actions\"></slot>\n </div>\n </div>\n </Host>\n );\n }\n}\n"],"version":3}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { Components, JSX } from "../types/components";
|
|
2
|
+
|
|
3
|
+
interface SddsNavigationTabs extends Components.SddsNavigationTabs, HTMLElement {}
|
|
4
|
+
export const SddsNavigationTabs: {
|
|
5
|
+
prototype: SddsNavigationTabs;
|
|
6
|
+
new (): SddsNavigationTabs;
|
|
7
|
+
};
|
|
8
|
+
/**
|
|
9
|
+
* Used to define this component and all nested components recursively.
|
|
10
|
+
*/
|
|
11
|
+
export const defineCustomElement: () => void;
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
import { proxyCustomElement, HTMLElement, h, Host } from '@stencil/core/internal/client';
|
|
2
|
+
|
|
3
|
+
const navigationTabsCss = ".sdds-navigation-tabs{box-sizing:border-box;background-color:var(--sdds-navigation-tabs-background);position:relative;display:flex;}.sdds-navigation-tabs *{box-sizing:border-box}.sdds-navigation-tabs::after{content:\" \";display:block;border-bottom:1px solid var(--sdds-navigation-tabs-horizontal-divider-background);opacity:var(--sdds-navigation-tabs-horizontal-divider-opacity);left:0;right:0;bottom:0;position:absolute}.sdds-navigation-tabs-wrapper{display:flex;flex-wrap:nowrap;width:100%;overflow-x:scroll;scrollbar-width:none}.sdds-navigation-tabs-wrapper::-webkit-scrollbar{display:none}.sdds-navigation-tabs-forward{cursor:pointer;width:48px;height:100%;border:0;position:absolute;right:0;top:0;background-color:var(--sdds-navigation-tabs-scroll-btn-background);display:flex;justify-content:center;align-items:center;opacity:0;pointer-events:none}.sdds-navigation-tabs-forward__show{opacity:1;pointer-events:all}.sdds-navigation-tabs-forward:hover{background-color:var(--sdds-navigation-tabs-scroll-btn-background-hover);text-decoration:none}.sdds-navigation-tabs-forward:active{background-color:var(--sdds-navigation-tabs-scroll-btn-background-active)}.sdds-navigation-tabs-forward:focus{outline:2px solid var(--sdds-blue-400);outline-offset:-2px}.sdds-navigation-tabs-back{cursor:pointer;width:48px;height:100%;border:0;position:absolute;left:0;top:0;background-color:var(--sdds-navigation-tabs-scroll-btn-background);display:flex;justify-content:center;align-items:center;opacity:0;pointer-events:none}.sdds-navigation-tabs-back__show{opacity:1;pointer-events:all}.sdds-navigation-tabs-back:hover{background-color:var(--sdds-navigation-tabs-scroll-btn-background-hover)}.sdds-navigation-tabs-back:active{background-color:var(--sdds-navigation-tabs-scroll-btn-background-active)}.sdds-navigation-tabs-back:focus{outline:2px solid var(--sdds-blue-400);outline-offset:-2px}::slotted(.sdds-navigation-tabs-tab){font:var(--sdds-headline-07);letter-spacing:var(--sdds-headline-07-ls);color:var(--sdds-navigation-tabs-tab-color);opacity:0.6;padding:26px 0;margin-right:32px;text-decoration:none;display:block;position:relative;transition:color 0.15s ease-in-out;white-space:nowrap;background-color:transparent;border:0}::slotted(.sdds-navigation-tabs-tab)::after{content:\" \";position:absolute;bottom:0;right:0;left:0;margin-left:auto;width:0;margin-right:auto;height:2px;background-color:var(--sdds-navigation-tabs-tab-indicator-background-hover);transition:width 0.15s ease-in-out;z-index:1}::slotted(.sdds-navigation-tabs-tab:first-child){margin-left:32px}::slotted(.sdds-navigation-tabs-tab:last-child){margin-right:32px}::slotted(.sdds-navigation-tabs-tab:hover){color:var(--sdds-navigation-tabs-tab-color-hover);opacity:1}::slotted(.sdds-navigation-tabs-tab:hover)::after{width:100%}::slotted(.sdds-navigation-tabs-tab:focus){outline:2px solid var(--sdds-blue-400);outline-offset:-2px;color:var(--sdds-navigation-tabs-tab-color-focus);opacity:1}::slotted(.sdds-navigation-tabs-tab:focus)::after{width:0}::slotted(.sdds-navigation-tabs-tab-active){color:var(--sdds-navigation-tabs-tab-color-active);opacity:1}::slotted(.sdds-navigation-tabs-tab-active)::after{width:100%;background-color:var(--sdds-navigation-tabs-tab-indicator-background-active)}::slotted(.sdds-navigation-tabs-tab-active:focus)::after{width:100%}::slotted(.sdds-navigation-tabs-tab-disabled){color:var(--sdds-navigation-tabs-tab-color-disabled);opacity:var(--sdds-navigation-tabs-tab-color-opacity-disabled);pointer-events:none}";
|
|
4
|
+
|
|
5
|
+
const NavigationTabs = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
|
|
6
|
+
constructor() {
|
|
7
|
+
super();
|
|
8
|
+
this.__registerHost();
|
|
9
|
+
this.__attachShadow();
|
|
10
|
+
this.navWrapperElement = null; // reference to container with nav buttons
|
|
11
|
+
this.componentWidth = 0; // visible width of this component
|
|
12
|
+
this.buttonsWidth = 0; // total width of all nav items combined
|
|
13
|
+
this.scrollWidth = 0; // total amount that is possible to scroll in the nav wrapper
|
|
14
|
+
this.buttonWidth = 0; // current calculated width of the largest nav button
|
|
15
|
+
this.tabs = [];
|
|
16
|
+
this.showLeftScroll = false;
|
|
17
|
+
this.showRightScroll = false;
|
|
18
|
+
this.modeVariant = null;
|
|
19
|
+
}
|
|
20
|
+
componentDidRender() {
|
|
21
|
+
this.calculateButtonWidth();
|
|
22
|
+
}
|
|
23
|
+
componentDidLoad() {
|
|
24
|
+
const resizeObserver = new ResizeObserver((entries) => {
|
|
25
|
+
entries.forEach((entry) => {
|
|
26
|
+
const componentWidth = entry.contentRect.width;
|
|
27
|
+
let buttonsWidth = 0;
|
|
28
|
+
const navButtons = Array.from(this.host.children);
|
|
29
|
+
navButtons.forEach((navButton) => {
|
|
30
|
+
const style = window.getComputedStyle(navButton);
|
|
31
|
+
buttonsWidth +=
|
|
32
|
+
navButton.clientWidth + parseFloat(style.marginLeft) + parseFloat(style.marginRight);
|
|
33
|
+
navButton.classList.add('sdds-navigation-tabs-tab');
|
|
34
|
+
});
|
|
35
|
+
this.componentWidth = componentWidth;
|
|
36
|
+
this.buttonsWidth = buttonsWidth;
|
|
37
|
+
this.scrollWidth = buttonsWidth - componentWidth;
|
|
38
|
+
if (this.buttonsWidth > this.componentWidth) {
|
|
39
|
+
this.evaluateScrollButtons();
|
|
40
|
+
}
|
|
41
|
+
else {
|
|
42
|
+
this.showLeftScroll = false;
|
|
43
|
+
this.showRightScroll = false;
|
|
44
|
+
}
|
|
45
|
+
});
|
|
46
|
+
});
|
|
47
|
+
resizeObserver.observe(this.navWrapperElement);
|
|
48
|
+
this.calculateButtonWidth();
|
|
49
|
+
}
|
|
50
|
+
calculateButtonWidth() {
|
|
51
|
+
let best = 0;
|
|
52
|
+
const navButtons = Array.from(this.host.children);
|
|
53
|
+
navButtons.forEach((navButton) => {
|
|
54
|
+
const style = window.getComputedStyle(navButton);
|
|
55
|
+
const width = navButton.clientWidth + parseFloat(style.marginLeft) + parseFloat(style.marginRight);
|
|
56
|
+
if (width > best) {
|
|
57
|
+
best = width;
|
|
58
|
+
}
|
|
59
|
+
});
|
|
60
|
+
this.buttonWidth = best;
|
|
61
|
+
}
|
|
62
|
+
scrollRight() {
|
|
63
|
+
const scroll = this.navWrapperElement.scrollLeft;
|
|
64
|
+
this.navWrapperElement.scrollLeft = scroll + this.buttonWidth;
|
|
65
|
+
this.evaluateScrollButtons();
|
|
66
|
+
}
|
|
67
|
+
scrollLeft() {
|
|
68
|
+
const scroll = this.navWrapperElement.scrollLeft;
|
|
69
|
+
this.navWrapperElement.scrollLeft = scroll - this.buttonWidth;
|
|
70
|
+
this.evaluateScrollButtons();
|
|
71
|
+
}
|
|
72
|
+
evaluateScrollButtons() {
|
|
73
|
+
const scroll = this.navWrapperElement.scrollLeft;
|
|
74
|
+
if (scroll >= this.scrollWidth) {
|
|
75
|
+
this.showRightScroll = false;
|
|
76
|
+
}
|
|
77
|
+
else {
|
|
78
|
+
this.showRightScroll = true;
|
|
79
|
+
}
|
|
80
|
+
if (scroll <= 0) {
|
|
81
|
+
this.showLeftScroll = false;
|
|
82
|
+
}
|
|
83
|
+
else {
|
|
84
|
+
this.showLeftScroll = true;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
render() {
|
|
88
|
+
return (h(Host, { class: `${this.modeVariant !== null ? `sdds-mode-variant-${this.modeVariant}` : ''}` }, h("div", { class: "sdds-navigation-tabs" }, h("div", { class: "sdds-navigation-tabs-wrapper", ref: (el) => {
|
|
89
|
+
this.navWrapperElement = el;
|
|
90
|
+
} }, h("slot", null)), h("div", { class: "sdds-navigation-tabs-navigation" }, h("button", { class: `sdds-navigation-tabs-forward ${this.showRightScroll ? 'sdds-navigation-tabs-forward-show' : ''}`, onClick: () => this.scrollRight(), disabled: !this.showRightScroll }, h("svg", { width: "20", height: "20", viewBox: "0 0 20 20", fill: "none", xmlns: "http://www.w3.org/2000/svg" }, h("path", { "fill-rule": "evenodd", "clip-rule": "evenodd", d: "M6.1147 17.3291C5.87062 17.0851 5.87062 16.6893 6.1147 16.4453L12.2948 10.2652C12.4412 10.1187 12.4412 9.8813 12.2948 9.73485L6.1147 3.55476C5.87062 3.31068 5.87062 2.91496 6.1147 2.67088C6.35878 2.4268 6.75451 2.4268 6.99858 2.67088L13.1787 8.85097C13.8133 9.48557 13.8133 10.5145 13.1787 11.1491L6.99858 17.3291C6.75451 17.5732 6.35878 17.5732 6.1147 17.3291Z", fill: "#0D0F13" }))), h("button", { class: `sdds-navigation-tabs-back ${this.showLeftScroll ? 'sdds-navigation-tabs-back-show' : ''}`, onClick: () => this.scrollLeft(), disabled: !this.showLeftScroll }, h("svg", { width: "20", height: "20", viewBox: "0 0 20 20", fill: "none", xmlns: "http://www.w3.org/2000/svg" }, h("path", { "fill-rule": "evenodd", "clip-rule": "evenodd", d: "M13.8853 2.67085C14.1294 2.91493 14.1294 3.31066 13.8853 3.55473L7.70522 9.73482C7.55878 9.88127 7.55878 10.1187 7.70522 10.2652L13.8853 16.4452C14.1294 16.6893 14.1294 17.085 13.8853 17.3291C13.6412 17.5732 13.2455 17.5732 13.0014 17.3291L6.82134 11.149C6.18674 10.5144 6.18674 9.48554 6.82134 8.85094L13.0014 2.67085C13.2455 2.42677 13.6412 2.42677 13.8853 2.67085Z", fill: "#0D0F13" })))))));
|
|
91
|
+
}
|
|
92
|
+
get host() { return this; }
|
|
93
|
+
static get style() { return navigationTabsCss; }
|
|
94
|
+
}, [1, "sdds-navigation-tabs", {
|
|
95
|
+
"modeVariant": [1, "mode-variant"],
|
|
96
|
+
"tabs": [32],
|
|
97
|
+
"showLeftScroll": [32],
|
|
98
|
+
"showRightScroll": [32]
|
|
99
|
+
}]);
|
|
100
|
+
function defineCustomElement$1() {
|
|
101
|
+
if (typeof customElements === "undefined") {
|
|
102
|
+
return;
|
|
103
|
+
}
|
|
104
|
+
const components = ["sdds-navigation-tabs"];
|
|
105
|
+
components.forEach(tagName => { switch (tagName) {
|
|
106
|
+
case "sdds-navigation-tabs":
|
|
107
|
+
if (!customElements.get(tagName)) {
|
|
108
|
+
customElements.define(tagName, NavigationTabs);
|
|
109
|
+
}
|
|
110
|
+
break;
|
|
111
|
+
} });
|
|
112
|
+
}
|
|
113
|
+
defineCustomElement$1();
|
|
114
|
+
|
|
115
|
+
const SddsNavigationTabs = NavigationTabs;
|
|
116
|
+
const defineCustomElement = defineCustomElement$1;
|
|
117
|
+
|
|
118
|
+
export { SddsNavigationTabs, defineCustomElement };
|
|
119
|
+
|
|
120
|
+
//# sourceMappingURL=sdds-navigation-tabs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"file":"sdds-navigation-tabs.js","mappings":"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","names":[],"sources":["./src/components/tabs/navigation-tabs/navigation-tabs.scss?tag=sdds-navigation-tabs&encapsulation=shadow","./src/components/tabs/navigation-tabs/navigation-tabs.tsx"],"sourcesContent":["@import '../../../mixins/focus-state';\n@import '../../../mixins/box-sizing';\n\n\n.sdds-navigation-tabs {\n @include sdds-box-sizing;\n\n background-color: var(--sdds-navigation-tabs-background);\n position: relative;\n display: flex;\n\n &::after {\n content: ' ';\n display: block;\n border-bottom: 1px solid var(--sdds-navigation-tabs-horizontal-divider-background);\n opacity: var(--sdds-navigation-tabs-horizontal-divider-opacity);\n left: 0;\n right: 0;\n bottom: 0;\n position: absolute;\n }\n\n &-wrapper {\n display: flex;\n flex-wrap: nowrap;\n width: 100%;\n overflow-x: scroll;\n scrollbar-width: none;\n\n &::-webkit-scrollbar {\n display: none;\n }\n }\n\n &-forward {\n cursor: pointer;\n width: 48px;\n height: 100%;\n border: 0;\n position: absolute;\n right: 0;\n top: 0;\n background-color: var(--sdds-navigation-tabs-scroll-btn-background);\n display: flex;\n justify-content: center;\n align-items: center;\n opacity: 0;\n pointer-events: none;\n\n &__show {\n opacity: 1;\n pointer-events: all;\n }\n\n &:hover {\n background-color: var(--sdds-navigation-tabs-scroll-btn-background-hover);\n text-decoration: none;\n }\n\n &:active {\n background-color: var(--sdds-navigation-tabs-scroll-btn-background-active);\n }\n\n &:focus {\n @include sdds-focus-state;\n }\n }\n\n &-back {\n cursor: pointer;\n width: 48px;\n height: 100%;\n border: 0;\n position: absolute;\n left: 0;\n top: 0;\n background-color: var(--sdds-navigation-tabs-scroll-btn-background);\n display: flex;\n justify-content: center;\n align-items: center;\n opacity: 0;\n pointer-events: none;\n\n &__show {\n opacity: 1;\n pointer-events: all;\n }\n\n &:hover {\n background-color: var(--sdds-navigation-tabs-scroll-btn-background-hover);\n }\n\n &:active {\n background-color: var(--sdds-navigation-tabs-scroll-btn-background-active);\n }\n\n &:focus {\n @include sdds-focus-state;\n }\n }\n\n /* tab */\n ::slotted(&-tab) {\n //fixme: headline-07 has a line-height that is not matching old storybook\n font: var(--sdds-headline-07);\n letter-spacing: var(--sdds-headline-07-ls);\n color: var(--sdds-navigation-tabs-tab-color);\n opacity:0.6;\n padding: 26px 0;\n margin-right: 32px;\n text-decoration: none;\n display: block;\n position: relative;\n transition: color 0.15s ease-in-out;\n white-space: nowrap;\n background-color: transparent;\n border: 0;\n\n &::after {\n content: ' ';\n position: absolute;\n bottom: 0;\n right: 0;\n left: 0;\n margin-left: auto;\n width: 0;\n margin-right: auto;\n height: 2px;\n background-color: var(--sdds-navigation-tabs-tab-indicator-background-hover);\n transition: width 0.15s ease-in-out;\n z-index: 1;\n }\n }\n\n ::slotted(&-tab:first-child) {\n margin-left: 32px;\n }\n\n ::slotted(&-tab:last-child) {\n margin-right: 32px;\n }\n\n /* tab states */\n ::slotted(&-tab:hover) {\n color: var(--sdds-navigation-tabs-tab-color-hover);\n opacity: 1;\n\n &::after {\n width: 100%;\n }\n }\n\n ::slotted(&-tab:focus) {\n @include sdds-focus-state;\n\n color: var(--sdds-navigation-tabs-tab-color-focus);\n opacity: 1;\n\n &::after {\n width: 0;\n }\n }\n\n ::slotted(&-tab-active) {\n color: var(--sdds-navigation-tabs-tab-color-active);\n opacity:1;\n\n &::after {\n width: 100%;\n\n background-color: var(--sdds-navigation-tabs-tab-indicator-background-active);\n }\n }\n\n ::slotted(&-tab-active:focus)::after {\n width: 100%;\n }\n\n ::slotted(&-tab-disabled) {\n color: var(--sdds-navigation-tabs-tab-color-disabled);\n opacity: var(--sdds-navigation-tabs-tab-color-opacity-disabled);\n pointer-events: none;\n }\n}\n","import { Component, Host, State, Element, h, Prop } from '@stencil/core';\n\n@Component({\n tag: 'sdds-navigation-tabs',\n styleUrl: 'navigation-tabs.scss',\n shadow: true,\n})\nexport class NavigationTabs {\n @Element() host: HTMLElement;\n\n @State() tabs: Array<any> = []; // array with metadata for slotted children\n\n @State() showLeftScroll: boolean = false;\n\n @State() showRightScroll: boolean = false;\n \n /** Variant of the tabs, primary= on white, secondary= on grey50 */\n @Prop() modeVariant: 'primary' | 'secondary' = null;\n\n navWrapperElement: HTMLElement = null; // reference to container with nav buttons\n\n componentWidth: number = 0; // visible width of this component\n\n buttonsWidth: number = 0; // total width of all nav items combined\n\n scrollWidth: number = 0; // total amount that is possible to scroll in the nav wrapper\n\n buttonWidth: number = 0; // current calculated width of the largest nav button\n\n componentDidRender() {\n this.calculateButtonWidth();\n }\n\n componentDidLoad() {\n const resizeObserver = new ResizeObserver((entries) => {\n entries.forEach((entry) => {\n const componentWidth = entry.contentRect.width;\n let buttonsWidth = 0;\n\n const navButtons = Array.from(this.host.children);\n navButtons.forEach((navButton: HTMLElement) => {\n const style = window.getComputedStyle(navButton);\n buttonsWidth +=\n navButton.clientWidth + parseFloat(style.marginLeft) + parseFloat(style.marginRight);\n\n navButton.classList.add('sdds-navigation-tabs-tab');\n });\n\n this.componentWidth = componentWidth;\n this.buttonsWidth = buttonsWidth;\n this.scrollWidth = buttonsWidth - componentWidth;\n\n if (this.buttonsWidth > this.componentWidth) {\n this.evaluateScrollButtons();\n } else {\n this.showLeftScroll = false;\n this.showRightScroll = false;\n }\n });\n });\n\n resizeObserver.observe(this.navWrapperElement);\n\n this.calculateButtonWidth();\n }\n\n calculateButtonWidth() {\n let best = 0;\n const navButtons = Array.from(this.host.children);\n navButtons.forEach((navButton: HTMLElement) => {\n const style = window.getComputedStyle(navButton);\n const width =\n navButton.clientWidth + parseFloat(style.marginLeft) + parseFloat(style.marginRight);\n\n if (width > best) {\n best = width;\n }\n });\n\n this.buttonWidth = best;\n }\n\n scrollRight() {\n const scroll = this.navWrapperElement.scrollLeft;\n this.navWrapperElement.scrollLeft = scroll + this.buttonWidth;\n\n this.evaluateScrollButtons();\n }\n\n scrollLeft() {\n const scroll = this.navWrapperElement.scrollLeft;\n this.navWrapperElement.scrollLeft = scroll - this.buttonWidth;\n\n this.evaluateScrollButtons();\n }\n\n evaluateScrollButtons() {\n const scroll = this.navWrapperElement.scrollLeft;\n\n if (scroll >= this.scrollWidth) {\n this.showRightScroll = false;\n } else {\n this.showRightScroll = true;\n }\n\n if (scroll <= 0) {\n this.showLeftScroll = false;\n } else {\n this.showLeftScroll = true;\n }\n }\n\n render() {\n return (\n <Host class={`${this.modeVariant !== null ? `sdds-mode-variant-${this.modeVariant}`: ''}`}>\n <div class=\"sdds-navigation-tabs\">\n <div\n class=\"sdds-navigation-tabs-wrapper\"\n ref={(el) => {\n this.navWrapperElement = el as HTMLElement;\n }}\n >\n <slot />\n </div>\n <div class=\"sdds-navigation-tabs-navigation\">\n <button\n class={`sdds-navigation-tabs-forward ${\n this.showRightScroll ? 'sdds-navigation-tabs-forward-show' : ''\n }`}\n onClick={() => this.scrollRight()}\n disabled={!this.showRightScroll}\n >\n <svg\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M6.1147 17.3291C5.87062 17.0851 5.87062 16.6893 6.1147 16.4453L12.2948 10.2652C12.4412 10.1187 12.4412 9.8813 12.2948 9.73485L6.1147 3.55476C5.87062 3.31068 5.87062 2.91496 6.1147 2.67088C6.35878 2.4268 6.75451 2.4268 6.99858 2.67088L13.1787 8.85097C13.8133 9.48557 13.8133 10.5145 13.1787 11.1491L6.99858 17.3291C6.75451 17.5732 6.35878 17.5732 6.1147 17.3291Z\"\n fill=\"#0D0F13\"\n ></path>\n </svg>\n </button>\n <button\n class={`sdds-navigation-tabs-back ${\n this.showLeftScroll ? 'sdds-navigation-tabs-back-show' : ''\n }`}\n onClick={() => this.scrollLeft()}\n disabled={!this.showLeftScroll}\n >\n <svg\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M13.8853 2.67085C14.1294 2.91493 14.1294 3.31066 13.8853 3.55473L7.70522 9.73482C7.55878 9.88127 7.55878 10.1187 7.70522 10.2652L13.8853 16.4452C14.1294 16.6893 14.1294 17.085 13.8853 17.3291C13.6412 17.5732 13.2455 17.5732 13.0014 17.3291L6.82134 11.149C6.18674 10.5144 6.18674 9.48554 6.82134 8.85094L13.0014 2.67085C13.2455 2.42677 13.6412 2.42677 13.8853 2.67085Z\"\n fill=\"#0D0F13\"\n ></path>\n </svg>\n </button>\n </div>\n </div>\n </Host>\n );\n }\n}\n"],"version":3}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { Components, JSX } from "../types/components";
|
|
2
|
+
|
|
3
|
+
interface SddsPopoverCanvas extends Components.SddsPopoverCanvas, HTMLElement {}
|
|
4
|
+
export const SddsPopoverCanvas: {
|
|
5
|
+
prototype: SddsPopoverCanvas;
|
|
6
|
+
new (): SddsPopoverCanvas;
|
|
7
|
+
};
|
|
8
|
+
/**
|
|
9
|
+
* Used to define this component and all nested components recursively.
|
|
10
|
+
*/
|
|
11
|
+
export const defineCustomElement: () => void;
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
import { proxyCustomElement, HTMLElement, h, Host } from '@stencil/core/internal/client';
|
|
2
|
+
import { c as createPopper } from './popper.js';
|
|
3
|
+
|
|
4
|
+
const popoverCanvasCss = ":host{box-sizing:border-box;min-width:160px;min-height:160px;color:var(--sdds-popover-canvas-color);background-color:var(--sdds-popover-canvas-background);padding:16px;box-shadow:0 3px 3px rgba(0, 0, 0, 0.15), 0 -1px 1px rgba(0, 0, 0, 0.1);border-radius:4px;z-index:800;display:none}:host *{box-sizing:border-box}:host(.sdds-popover-canvas-show){opacity:1;display:block}";
|
|
5
|
+
|
|
6
|
+
const PopoverCanvas = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
|
|
7
|
+
constructor() {
|
|
8
|
+
super();
|
|
9
|
+
this.__registerHost();
|
|
10
|
+
this.__attachShadow();
|
|
11
|
+
this.selector = '';
|
|
12
|
+
this.referenceEl = undefined;
|
|
13
|
+
this.show = false;
|
|
14
|
+
this.placement = 'auto';
|
|
15
|
+
this.offsetSkidding = 0;
|
|
16
|
+
this.offsetDistance = 8;
|
|
17
|
+
this.renderedShowValue = false;
|
|
18
|
+
this.popperInstance = undefined;
|
|
19
|
+
this.target = undefined;
|
|
20
|
+
}
|
|
21
|
+
handleOutsideClick() {
|
|
22
|
+
if (this.show) {
|
|
23
|
+
this.show = false;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
componentDidLoad() {
|
|
27
|
+
var _a;
|
|
28
|
+
this.target = (_a = this.referenceEl) !== null && _a !== void 0 ? _a : document.querySelector(this.selector);
|
|
29
|
+
this.renderedShowValue = this.show;
|
|
30
|
+
this.popperInstance = createPopper(this.target, this.popoverCanvasElement, {
|
|
31
|
+
placement: this.placement,
|
|
32
|
+
modifiers: [
|
|
33
|
+
{
|
|
34
|
+
name: 'offset',
|
|
35
|
+
options: {
|
|
36
|
+
offset: [this.offsetSkidding, this.offsetDistance],
|
|
37
|
+
},
|
|
38
|
+
},
|
|
39
|
+
],
|
|
40
|
+
});
|
|
41
|
+
const showCanvas = () => {
|
|
42
|
+
this.show = true;
|
|
43
|
+
};
|
|
44
|
+
const hideCanvas = () => {
|
|
45
|
+
this.show = false;
|
|
46
|
+
};
|
|
47
|
+
this.target.addEventListener('mousedown', (event) => {
|
|
48
|
+
event.stopPropagation();
|
|
49
|
+
if (this.show) {
|
|
50
|
+
hideCanvas();
|
|
51
|
+
}
|
|
52
|
+
else {
|
|
53
|
+
showCanvas();
|
|
54
|
+
}
|
|
55
|
+
});
|
|
56
|
+
this.popoverCanvasElement.addEventListener('mousemove', (event) => {
|
|
57
|
+
event.stopPropagation();
|
|
58
|
+
});
|
|
59
|
+
this.popoverCanvasElement.addEventListener('mousedown', (event) => {
|
|
60
|
+
event.stopPropagation();
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
componentDidRender() {
|
|
64
|
+
if (this.show && !this.renderedShowValue) {
|
|
65
|
+
// Here we update the popper position since its position is wrong
|
|
66
|
+
// before it is rendered.
|
|
67
|
+
this.popperInstance.update();
|
|
68
|
+
}
|
|
69
|
+
this.renderedShowValue = this.show;
|
|
70
|
+
}
|
|
71
|
+
disconnectedCallback() {
|
|
72
|
+
var _a;
|
|
73
|
+
(_a = this.popperInstance) === null || _a === void 0 ? void 0 : _a.destroy();
|
|
74
|
+
}
|
|
75
|
+
render() {
|
|
76
|
+
return (h(Host, { class: `sdds-popover-canvas ${this.show ? 'sdds-popover-canvas-show' : ''}` }, h("slot", null)));
|
|
77
|
+
}
|
|
78
|
+
get popoverCanvasElement() { return this; }
|
|
79
|
+
static get style() { return popoverCanvasCss; }
|
|
80
|
+
}, [1, "sdds-popover-canvas", {
|
|
81
|
+
"selector": [1],
|
|
82
|
+
"referenceEl": [16],
|
|
83
|
+
"show": [4],
|
|
84
|
+
"placement": [1],
|
|
85
|
+
"offsetSkidding": [2, "offset-skidding"],
|
|
86
|
+
"offsetDistance": [2, "offset-distance"],
|
|
87
|
+
"renderedShowValue": [32],
|
|
88
|
+
"popperInstance": [32],
|
|
89
|
+
"target": [32]
|
|
90
|
+
}, [[9, "mousedown", "handleOutsideClick"]]]);
|
|
91
|
+
function defineCustomElement$1() {
|
|
92
|
+
if (typeof customElements === "undefined") {
|
|
93
|
+
return;
|
|
94
|
+
}
|
|
95
|
+
const components = ["sdds-popover-canvas"];
|
|
96
|
+
components.forEach(tagName => { switch (tagName) {
|
|
97
|
+
case "sdds-popover-canvas":
|
|
98
|
+
if (!customElements.get(tagName)) {
|
|
99
|
+
customElements.define(tagName, PopoverCanvas);
|
|
100
|
+
}
|
|
101
|
+
break;
|
|
102
|
+
} });
|
|
103
|
+
}
|
|
104
|
+
defineCustomElement$1();
|
|
105
|
+
|
|
106
|
+
const SddsPopoverCanvas = PopoverCanvas;
|
|
107
|
+
const defineCustomElement = defineCustomElement$1;
|
|
108
|
+
|
|
109
|
+
export { SddsPopoverCanvas, defineCustomElement };
|
|
110
|
+
|
|
111
|
+
//# sourceMappingURL=sdds-popover-canvas.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"file":"sdds-popover-canvas.js","mappings":";;;AAAA,MAAM,gBAAgB,GAAG,oXAAoX;;MCShY,aAAa;;;;;oBAIG,EAAE;;gBAML,KAAK;qBAGE,MAAM;0BAGJ,CAAC;0BAGD,CAAC;6BAEI,KAAK;;;;EAO3C,kBAAkB;IAChB,IAAI,IAAI,CAAC,IAAI,EAAE;MACb,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;KACnB;GACF;EAED,gBAAgB;;IACd,IAAI,CAAC,MAAM,GAAG,MAAA,IAAI,CAAC,WAAW,mCAAI,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACxE,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,IAAI,CAAC;IAEnC,IAAI,CAAC,cAAc,GAAG,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,oBAAoB,EAAE;MACzE,SAAS,EAAE,IAAI,CAAC,SAAS;MACzB,SAAS,EAAE;QACT;UACE,IAAI,EAAE,QAAQ;UACd,OAAO,EAAE;YACP,MAAM,EAAE,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,cAAc,CAAC;WACnD;SACF;OACF;KACF,CAAC,CAAC;IAEH,MAAM,UAAU,GAAG;MACjB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;KAClB,CAAC;IAEF,MAAM,UAAU,GAAG;MACjB,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;KACnB,CAAC;IAEF,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC,KAAK;MAC9C,KAAK,CAAC,eAAe,EAAE,CAAC;MAExB,IAAI,IAAI,CAAC,IAAI,EAAE;QACb,UAAU,EAAE,CAAC;OACd;WAAM;QACL,UAAU,EAAE,CAAC;OACd;KACF,CAAC,CAAC;IAEH,IAAI,CAAC,oBAAoB,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC,KAAK;MAC5D,KAAK,CAAC,eAAe,EAAE,CAAC;KACzB,CAAC,CAAC;IAEH,IAAI,CAAC,oBAAoB,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC,KAAK;MAC5D,KAAK,CAAC,eAAe,EAAE,CAAC;KACzB,CAAC,CAAC;GACJ;EAED,kBAAkB;IAChB,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE;;;MAGxC,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC;KAC9B;IACD,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,IAAI,CAAC;GACpC;EAED,oBAAoB;;IAClB,MAAA,IAAI,CAAC,cAAc,0CAAE,OAAO,EAAE,CAAC;GAChC;EAED,MAAM;IACJ,QACE,EAAC,IAAI,IAAC,KAAK,EAAE,uBAAuB,IAAI,CAAC,IAAI,GAAG,0BAA0B,GAAG,EAAE,EAAE,IAC/E,eAAa,CACR,EACP;GACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":[],"sources":["./src/components/popover-canvas/popover-canvas.scss?tag=sdds-popover-canvas&encapsulation=shadow","./src/components/popover-canvas/popover-canvas.tsx"],"sourcesContent":["@import '../../mixins/box-sizing';\n\n@import '../../mixins/z-index';\n\n:host {\n @include sdds-box-sizing;\n\n min-width: 160px;\n min-height: 160px;\n color: var(--sdds-popover-canvas-color);\n background-color: var(--sdds-popover-canvas-background);\n padding: 16px;\n box-shadow: 0 3px 3px rgb(0 0 0 / 15%), 0 -1px 1px rgb(0 0 0 / 10%);\n border-radius: 4px;\n z-index: z(tooltip);\n display: none;\n}\n\n:host(.sdds-popover-canvas-show) {\n opacity: 1;\n display: block;\n}\n","import { Component, Host, Element, Listen, h, Prop, State } from '@stencil/core';\nimport { createPopper } from '@popperjs/core';\nimport type { Placement, Instance } from '@popperjs/core';\n\n@Component({\n tag: 'sdds-popover-canvas',\n styleUrl: 'popover-canvas.scss',\n shadow: true,\n})\nexport class PopoverCanvas {\n @Element() popoverCanvasElement!: HTMLElement;\n\n /** The CSS-selector for an element that will trigger the popover */\n @Prop() selector: string = '';\n\n /** Element that will trigger the popover (takes priority over selector) */\n @Prop() referenceEl: HTMLElement;\n\n /** Decides if the Popover Canvas should be visible from the start */\n @Prop() show: boolean = false;\n\n /** Decides the placement of the Popover Canvas */\n @Prop() placement: Placement = 'auto';\n\n /** Sets the offset skidding */\n @Prop() offsetSkidding: number = 0;\n\n /** Sets the offset distance */\n @Prop() offsetDistance: number = 8;\n\n @State() renderedShowValue: boolean = false;\n\n @State() popperInstance: Instance;\n\n @State() target: any;\n\n @Listen('mousedown', { target: 'window' })\n handleOutsideClick() {\n if (this.show) {\n this.show = false;\n }\n }\n\n componentDidLoad() {\n this.target = this.referenceEl ?? document.querySelector(this.selector);\n this.renderedShowValue = this.show;\n\n this.popperInstance = createPopper(this.target, this.popoverCanvasElement, {\n placement: this.placement,\n modifiers: [\n {\n name: 'offset',\n options: {\n offset: [this.offsetSkidding, this.offsetDistance],\n },\n },\n ],\n });\n\n const showCanvas = () => {\n this.show = true;\n };\n\n const hideCanvas = () => {\n this.show = false;\n };\n\n this.target.addEventListener('mousedown', (event) => {\n event.stopPropagation();\n\n if (this.show) {\n hideCanvas();\n } else {\n showCanvas();\n }\n });\n\n this.popoverCanvasElement.addEventListener('mousemove', (event) => {\n event.stopPropagation();\n });\n\n this.popoverCanvasElement.addEventListener('mousedown', (event) => {\n event.stopPropagation();\n });\n }\n\n componentDidRender() {\n if (this.show && !this.renderedShowValue) {\n // Here we update the popper position since its position is wrong\n // before it is rendered.\n this.popperInstance.update();\n }\n this.renderedShowValue = this.show;\n }\n\n disconnectedCallback() {\n this.popperInstance?.destroy();\n }\n\n render() {\n return (\n <Host class={`sdds-popover-canvas ${this.show ? 'sdds-popover-canvas-show' : ''}`}>\n <slot></slot>\n </Host>\n );\n }\n}\n"],"version":3}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { Components, JSX } from "../types/components";
|
|
2
|
+
|
|
3
|
+
interface SddsPopoverMenu extends Components.SddsPopoverMenu, HTMLElement {}
|
|
4
|
+
export const SddsPopoverMenu: {
|
|
5
|
+
prototype: SddsPopoverMenu;
|
|
6
|
+
new (): SddsPopoverMenu;
|
|
7
|
+
};
|
|
8
|
+
/**
|
|
9
|
+
* Used to define this component and all nested components recursively.
|
|
10
|
+
*/
|
|
11
|
+
export const defineCustomElement: () => void;
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
import { proxyCustomElement, HTMLElement, h, Host } from '@stencil/core/internal/client';
|
|
2
|
+
import { c as createPopper } from './popper.js';
|
|
3
|
+
|
|
4
|
+
const popoverMenuCss = ":host{box-sizing:border-box;overflow:hidden;width:160px;background-color:var(--sdds-popover-menu-background);padding:16px;box-shadow:0 3px 3px rgba(0, 0, 0, 0.15), 0 -1px 1px rgba(0, 0, 0, 0.1);border-radius:4px;display:none;z-index:800}:host *{box-sizing:border-box}:host(.sdds-popover-menu-show){opacity:1;display:block}";
|
|
5
|
+
|
|
6
|
+
const PopoverMenu = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
|
|
7
|
+
constructor() {
|
|
8
|
+
super();
|
|
9
|
+
this.__registerHost();
|
|
10
|
+
this.__attachShadow();
|
|
11
|
+
this.selector = '';
|
|
12
|
+
this.referenceEl = undefined;
|
|
13
|
+
this.show = false;
|
|
14
|
+
this.placement = 'auto';
|
|
15
|
+
this.offsetSkidding = 0;
|
|
16
|
+
this.offsetDistance = 8;
|
|
17
|
+
this.renderedShowValue = false;
|
|
18
|
+
this.popperInstance = undefined;
|
|
19
|
+
this.target = undefined;
|
|
20
|
+
}
|
|
21
|
+
handleOutsideClick() {
|
|
22
|
+
if (this.show) {
|
|
23
|
+
this.show = false;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
componentDidLoad() {
|
|
27
|
+
var _a;
|
|
28
|
+
this.target = (_a = this.referenceEl) !== null && _a !== void 0 ? _a : document.querySelector(this.selector);
|
|
29
|
+
this.renderedShowValue = this.show;
|
|
30
|
+
this.popperInstance = createPopper(this.target, this.popoverMenuElement, {
|
|
31
|
+
strategy: 'fixed',
|
|
32
|
+
placement: this.placement,
|
|
33
|
+
modifiers: [
|
|
34
|
+
{
|
|
35
|
+
name: 'offset',
|
|
36
|
+
options: {
|
|
37
|
+
offset: [this.offsetSkidding, this.offsetDistance],
|
|
38
|
+
},
|
|
39
|
+
},
|
|
40
|
+
],
|
|
41
|
+
});
|
|
42
|
+
const showMenu = () => {
|
|
43
|
+
this.show = true;
|
|
44
|
+
};
|
|
45
|
+
const hideMenu = () => {
|
|
46
|
+
this.show = false;
|
|
47
|
+
};
|
|
48
|
+
this.target.addEventListener('mousedown', (event) => {
|
|
49
|
+
event.stopPropagation();
|
|
50
|
+
if (this.show) {
|
|
51
|
+
hideMenu();
|
|
52
|
+
}
|
|
53
|
+
else {
|
|
54
|
+
showMenu();
|
|
55
|
+
}
|
|
56
|
+
});
|
|
57
|
+
this.popoverMenuElement.addEventListener('mousemove', (event) => {
|
|
58
|
+
event.stopPropagation();
|
|
59
|
+
});
|
|
60
|
+
this.popoverMenuElement.addEventListener('mousedown', (event) => {
|
|
61
|
+
event.stopPropagation();
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
componentDidRender() {
|
|
65
|
+
if (this.show && !this.renderedShowValue) {
|
|
66
|
+
// Here we update the popper position since its position is wrong
|
|
67
|
+
// before it is rendered.
|
|
68
|
+
this.popperInstance.update();
|
|
69
|
+
}
|
|
70
|
+
this.renderedShowValue = this.show;
|
|
71
|
+
}
|
|
72
|
+
disconnectedCallback() {
|
|
73
|
+
var _a;
|
|
74
|
+
(_a = this.popperInstance) === null || _a === void 0 ? void 0 : _a.destroy();
|
|
75
|
+
}
|
|
76
|
+
render() {
|
|
77
|
+
return (h(Host, { class: `sdds-popover-menu ${this.show ? 'sdds-popover-menu-show' : ''}` }, h("slot", null)));
|
|
78
|
+
}
|
|
79
|
+
get popoverMenuElement() { return this; }
|
|
80
|
+
static get style() { return popoverMenuCss; }
|
|
81
|
+
}, [1, "sdds-popover-menu", {
|
|
82
|
+
"selector": [1],
|
|
83
|
+
"referenceEl": [16],
|
|
84
|
+
"show": [4],
|
|
85
|
+
"placement": [1],
|
|
86
|
+
"offsetSkidding": [2, "offset-skidding"],
|
|
87
|
+
"offsetDistance": [2, "offset-distance"],
|
|
88
|
+
"renderedShowValue": [32],
|
|
89
|
+
"popperInstance": [32],
|
|
90
|
+
"target": [32]
|
|
91
|
+
}, [[9, "mousedown", "handleOutsideClick"]]]);
|
|
92
|
+
function defineCustomElement$1() {
|
|
93
|
+
if (typeof customElements === "undefined") {
|
|
94
|
+
return;
|
|
95
|
+
}
|
|
96
|
+
const components = ["sdds-popover-menu"];
|
|
97
|
+
components.forEach(tagName => { switch (tagName) {
|
|
98
|
+
case "sdds-popover-menu":
|
|
99
|
+
if (!customElements.get(tagName)) {
|
|
100
|
+
customElements.define(tagName, PopoverMenu);
|
|
101
|
+
}
|
|
102
|
+
break;
|
|
103
|
+
} });
|
|
104
|
+
}
|
|
105
|
+
defineCustomElement$1();
|
|
106
|
+
|
|
107
|
+
const SddsPopoverMenu = PopoverMenu;
|
|
108
|
+
const defineCustomElement = defineCustomElement$1;
|
|
109
|
+
|
|
110
|
+
export { SddsPopoverMenu, defineCustomElement };
|
|
111
|
+
|
|
112
|
+
//# sourceMappingURL=sdds-popover-menu.js.map
|