@siemens/ix 0.0.0-pr-2297-20251204163058 → 0.0.0-pr-2300-20260107140403
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/READMEOSS.html +1 -1
- package/components/index.js +1 -1
- package/components/index.js.map +1 -1
- package/components/ix-action-card.js +8 -3
- package/components/ix-action-card.js.map +1 -1
- package/components/ix-application.js +1 -1
- package/components/ix-breadcrumb.js +1 -1
- package/components/ix-card-list.js +1 -1
- package/components/ix-card.js +1 -1
- package/components/ix-date-dropdown.js +1 -1
- package/components/ix-dropdown-button.js +8 -4
- package/components/ix-dropdown-button.js.map +1 -1
- package/components/ix-dropdown-item.js +1 -1
- package/components/ix-menu-avatar-item.js +1 -1
- package/components/ix-menu-avatar.js +2 -2
- package/components/ix-menu-category.js +1 -1
- package/components/ix-menu.js +21 -13
- package/components/ix-menu.js.map +1 -1
- package/components/ix-message-bar.js +1 -1
- package/components/ix-message-bar.js.map +1 -1
- package/components/ix-pagination.js +3 -3
- package/components/ix-pane-layout.js +2 -1
- package/components/ix-pane-layout.js.map +1 -1
- package/components/ix-push-card.js +8 -3
- package/components/ix-push-card.js.map +1 -1
- package/components/ix-select-item.js +1 -1
- package/components/ix-select.js +1 -1
- package/components/ix-toast-container.js +5 -4
- package/components/ix-toast-container.js.map +1 -1
- package/components/ix-toast.js +1 -1
- package/components/{p-Dy6xvLn4.js → p-BCLcSQh4.js} +3 -3
- package/components/{p-Dy6xvLn4.js.map → p-BCLcSQh4.js.map} +1 -1
- package/components/{p-BOQ00Fbs.js → p-Ce5NQ5Zo.js} +4 -4
- package/components/{p-BOQ00Fbs.js.map → p-Ce5NQ5Zo.js.map} +1 -1
- package/components/{p-BLeWaHpy.js → p-DYCKIBUp.js} +12 -6
- package/components/p-DYCKIBUp.js.map +1 -0
- package/components/{p-Bk0vKwmt.js → p-DmhyoH-k.js} +3 -3
- package/components/{p-Bk0vKwmt.js.map → p-DmhyoH-k.js.map} +1 -1
- package/components/{p-CsHYWHE6.js → p-G5i1Siog.js} +15 -5
- package/components/p-G5i1Siog.js.map +1 -0
- package/components/{p-hwPzPVf8.js → p-rFxiFp44.js} +12 -6
- package/components/p-rFxiFp44.js.map +1 -0
- package/components/{p-DlVaL0Yi.js → p-tpxSImkl.js} +9 -4
- package/components/p-tpxSImkl.js.map +1 -0
- package/dist/cjs/index.cjs.js +1 -1
- package/dist/cjs/index.cjs.js.map +1 -1
- package/dist/cjs/ix-action-card.cjs.entry.js +5 -1
- package/dist/cjs/ix-action-card.entry.cjs.js.map +1 -1
- package/dist/cjs/ix-application.cjs.entry.js +1 -1
- package/dist/cjs/ix-card.ix-card-content.entry.cjs.js.map +1 -1
- package/dist/cjs/ix-card_2.cjs.entry.js +8 -3
- package/dist/cjs/ix-dropdown-button.cjs.entry.js +7 -3
- package/dist/cjs/ix-dropdown-button.entry.cjs.js.map +1 -1
- package/dist/cjs/ix-dropdown-item.cjs.entry.js +9 -3
- package/dist/cjs/ix-dropdown-item.entry.cjs.js.map +1 -1
- package/dist/cjs/ix-menu.cjs.entry.js +20 -13
- package/dist/cjs/ix-menu.entry.cjs.js.map +1 -1
- package/dist/cjs/ix-message-bar.cjs.entry.js +1 -1
- package/dist/cjs/ix-message-bar.entry.cjs.js.map +1 -1
- package/dist/cjs/ix-pane-layout.cjs.entry.js +2 -1
- package/dist/cjs/ix-pane-layout.entry.cjs.js.map +1 -1
- package/dist/cjs/ix-push-card.cjs.entry.js +5 -1
- package/dist/cjs/ix-push-card.entry.cjs.js.map +1 -1
- package/dist/cjs/ix-toast-container.cjs.entry.js +4 -3
- package/dist/cjs/ix-toast-container.entry.cjs.js.map +1 -1
- package/dist/cjs/ix-toast.cjs.entry.js +6 -2
- package/dist/cjs/ix-toast.entry.cjs.js.map +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/siemens-ix.cjs.js +1 -1
- package/dist/cjs/{theme-switcher-76Td30il.js → theme-switcher-BCyZa6wG.js} +15 -5
- package/dist/cjs/theme-switcher-BCyZa6wG.js.map +1 -0
- package/dist/collection/components/action-card/action-card.js +25 -1
- package/dist/collection/components/action-card/action-card.js.map +1 -1
- package/dist/collection/components/card/card.css +49 -0
- package/dist/collection/components/card/card.js +27 -2
- package/dist/collection/components/card/card.js.map +1 -1
- package/dist/collection/components/dropdown-button/dropdown-button.js +8 -4
- package/dist/collection/components/dropdown-button/dropdown-button.js.map +1 -1
- package/dist/collection/components/dropdown-item/dropdown-item.js +10 -4
- package/dist/collection/components/dropdown-item/dropdown-item.js.map +1 -1
- package/dist/collection/components/menu/menu.js +21 -12
- package/dist/collection/components/menu/menu.js.map +1 -1
- package/dist/collection/components/message-bar/message-bar.css +0 -11
- package/dist/collection/components/pane-layout/pane-layout.js +2 -1
- package/dist/collection/components/pane-layout/pane-layout.js.map +1 -1
- package/dist/collection/components/push-card/push-card.js +25 -1
- package/dist/collection/components/push-card/push-card.js.map +1 -1
- package/dist/collection/components/toast/toast-container.js +4 -3
- package/dist/collection/components/toast/toast-container.js.map +1 -1
- package/dist/collection/components/toast/toast-utils.js.map +1 -1
- package/dist/collection/components/toast/toast.js +26 -2
- package/dist/collection/components/toast/toast.js.map +1 -1
- package/dist/collection/components/utils/theme-switcher.js +13 -3
- package/dist/collection/components/utils/theme-switcher.js.map +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/ix-action-card.entry.js +5 -1
- package/dist/esm/ix-action-card.entry.js.map +1 -1
- package/dist/esm/ix-application.entry.js +1 -1
- package/dist/esm/ix-card.ix-card-content.entry.js.map +1 -1
- package/dist/esm/ix-card_2.entry.js +8 -3
- package/dist/esm/ix-dropdown-button.entry.js +7 -3
- package/dist/esm/ix-dropdown-button.entry.js.map +1 -1
- package/dist/esm/ix-dropdown-item.entry.js +9 -3
- package/dist/esm/ix-dropdown-item.entry.js.map +1 -1
- package/dist/esm/ix-menu.entry.js +20 -13
- package/dist/esm/ix-menu.entry.js.map +1 -1
- package/dist/esm/ix-message-bar.entry.js +1 -1
- package/dist/esm/ix-message-bar.entry.js.map +1 -1
- package/dist/esm/ix-pane-layout.entry.js +2 -1
- package/dist/esm/ix-pane-layout.entry.js.map +1 -1
- package/dist/esm/ix-push-card.entry.js +5 -1
- package/dist/esm/ix-push-card.entry.js.map +1 -1
- package/dist/esm/ix-toast-container.entry.js +4 -3
- package/dist/esm/ix-toast-container.entry.js.map +1 -1
- package/dist/esm/ix-toast.entry.js +6 -2
- package/dist/esm/ix-toast.entry.js.map +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/esm/siemens-ix.js +1 -1
- package/dist/esm/{theme-switcher-DRqJGlG2.js → theme-switcher-EbjilqRl.js} +15 -5
- package/dist/esm/theme-switcher-EbjilqRl.js.map +1 -0
- package/dist/siemens-ix/index.esm.js +1 -1
- package/dist/siemens-ix/index.esm.js.map +1 -1
- package/dist/siemens-ix/ix-action-card.entry.esm.js.map +1 -1
- package/dist/siemens-ix/ix-card.ix-card-content.entry.esm.js.map +1 -1
- package/dist/siemens-ix/ix-dropdown-button.entry.esm.js.map +1 -1
- package/dist/siemens-ix/ix-dropdown-item.entry.esm.js.map +1 -1
- package/dist/siemens-ix/ix-menu.entry.esm.js.map +1 -1
- package/dist/siemens-ix/ix-message-bar.entry.esm.js.map +1 -1
- package/dist/siemens-ix/ix-pane-layout.entry.esm.js.map +1 -1
- package/dist/siemens-ix/ix-push-card.entry.esm.js.map +1 -1
- package/dist/siemens-ix/ix-toast-container.entry.esm.js.map +1 -1
- package/dist/siemens-ix/ix-toast.entry.esm.js.map +1 -1
- package/dist/siemens-ix/p-0063d077.entry.js +2 -0
- package/dist/siemens-ix/p-0063d077.entry.js.map +1 -0
- package/dist/siemens-ix/{p-6dc6eb63.entry.js → p-01e16377.entry.js} +2 -2
- package/dist/siemens-ix/{p-6dc6eb63.entry.js.map → p-01e16377.entry.js.map} +1 -1
- package/dist/siemens-ix/p-2e1bb4bf.entry.js +2 -0
- package/dist/siemens-ix/p-2e1bb4bf.entry.js.map +1 -0
- package/dist/siemens-ix/p-3c297dc0.entry.js +2 -0
- package/dist/siemens-ix/p-3c297dc0.entry.js.map +1 -0
- package/dist/siemens-ix/p-3ca8fd00.entry.js +2 -0
- package/dist/siemens-ix/p-3ca8fd00.entry.js.map +1 -0
- package/dist/siemens-ix/{p-367df024.entry.js → p-84178b22.entry.js} +2 -2
- package/dist/siemens-ix/p-84178b22.entry.js.map +1 -0
- package/dist/siemens-ix/p-944a39a6.entry.js +2 -0
- package/dist/siemens-ix/p-944a39a6.entry.js.map +1 -0
- package/dist/siemens-ix/{p-b76df1c7.entry.js → p-9f7d9525.entry.js} +2 -2
- package/dist/siemens-ix/p-9f7d9525.entry.js.map +1 -0
- package/dist/siemens-ix/p-G5i1Siog.js +2 -0
- package/dist/siemens-ix/p-G5i1Siog.js.map +1 -0
- package/dist/siemens-ix/{p-8f17f6ec.entry.js → p-ec9dc8d8.entry.js} +2 -2
- package/dist/siemens-ix/p-ec9dc8d8.entry.js.map +1 -0
- package/dist/siemens-ix/{p-35d6b656.entry.js → p-f5dd421a.entry.js} +2 -2
- package/dist/siemens-ix/{p-b8f4b001.entry.js → p-f5f9940c.entry.js} +2 -2
- package/dist/siemens-ix/p-f5f9940c.entry.js.map +1 -0
- package/dist/siemens-ix/siemens-ix.esm.js +1 -1
- package/dist/types/components/action-card/action-card.d.ts +4 -0
- package/dist/types/components/card/card.d.ts +4 -0
- package/dist/types/components/menu/menu.d.ts +1 -0
- package/dist/types/components/push-card/push-card.d.ts +4 -0
- package/dist/types/components/toast/toast-utils.d.ts +4 -0
- package/dist/types/components/toast/toast.d.ts +4 -0
- package/dist/types/components.d.ts +40 -0
- package/hydrate/index.js +88 -40
- package/hydrate/index.mjs +88 -40
- package/package.json +1 -1
- package/components/p-BLeWaHpy.js.map +0 -1
- package/components/p-CsHYWHE6.js.map +0 -1
- package/components/p-DlVaL0Yi.js.map +0 -1
- package/components/p-hwPzPVf8.js.map +0 -1
- package/dist/cjs/theme-switcher-76Td30il.js.map +0 -1
- package/dist/esm/theme-switcher-DRqJGlG2.js.map +0 -1
- package/dist/siemens-ix/p-0d621531.entry.js +0 -2
- package/dist/siemens-ix/p-0d621531.entry.js.map +0 -1
- package/dist/siemens-ix/p-2597a988.entry.js +0 -2
- package/dist/siemens-ix/p-2597a988.entry.js.map +0 -1
- package/dist/siemens-ix/p-33fcea65.entry.js +0 -2
- package/dist/siemens-ix/p-33fcea65.entry.js.map +0 -1
- package/dist/siemens-ix/p-367df024.entry.js.map +0 -1
- package/dist/siemens-ix/p-37bd983a.entry.js +0 -2
- package/dist/siemens-ix/p-37bd983a.entry.js.map +0 -1
- package/dist/siemens-ix/p-8f17f6ec.entry.js.map +0 -1
- package/dist/siemens-ix/p-CsHYWHE6.js +0 -2
- package/dist/siemens-ix/p-CsHYWHE6.js.map +0 -1
- package/dist/siemens-ix/p-b76df1c7.entry.js.map +0 -1
- package/dist/siemens-ix/p-b8f4b001.entry.js.map +0 -1
- package/dist/siemens-ix/p-c1160cf8.entry.js +0 -2
- package/dist/siemens-ix/p-c1160cf8.entry.js.map +0 -1
- /package/dist/siemens-ix/{p-35d6b656.entry.js.map → p-f5dd421a.entry.js.map} +0 -0
|
@@ -55,7 +55,7 @@ export class ToastContainer {
|
|
|
55
55
|
* @param config
|
|
56
56
|
*/
|
|
57
57
|
async showToast(config) {
|
|
58
|
-
var _a, _b;
|
|
58
|
+
var _a, _b, _c;
|
|
59
59
|
const toast = document.createElement('ix-toast');
|
|
60
60
|
const onClose = new TypedEvent();
|
|
61
61
|
function removeToast(result) {
|
|
@@ -68,6 +68,7 @@ export class ToastContainer {
|
|
|
68
68
|
toast.autoCloseDelay = (_b = config.autoCloseDelay) !== null && _b !== void 0 ? _b : 5000;
|
|
69
69
|
toast.icon = config.icon;
|
|
70
70
|
toast.iconColor = config.iconColor;
|
|
71
|
+
toast.hideIcon = (_c = config.hideIcon) !== null && _c !== void 0 ? _c : false;
|
|
71
72
|
toast.addEventListener('closeToast', (event) => {
|
|
72
73
|
const { detail } = event;
|
|
73
74
|
removeToast(detail);
|
|
@@ -102,10 +103,10 @@ export class ToastContainer {
|
|
|
102
103
|
};
|
|
103
104
|
}
|
|
104
105
|
render() {
|
|
105
|
-
return (h(Host, { key: '
|
|
106
|
+
return (h(Host, { key: '11d339600495a1d923de9ee92abdb2b6248ed8b5', class: {
|
|
106
107
|
'toast-container--bottom-right': this.position === 'bottom-right',
|
|
107
108
|
'toast-container--top-right': this.position === 'top-right',
|
|
108
|
-
} }, h("slot", { key: '
|
|
109
|
+
} }, h("slot", { key: 'b942eb55489de1a132d4b7c481fa9b91ddb9657d' })));
|
|
109
110
|
}
|
|
110
111
|
static get is() { return "ix-toast-container"; }
|
|
111
112
|
static get encapsulation() { return "shadow"; }
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toast-container.js","sourceRoot":"","sources":["../../../src/components/toast/toast-container.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACxE,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AASlD,MAAM,OAAO,cAAc;IAL3B;QAME;WACG;QACK,gBAAW,GAAG,iBAAiB,CAAC;QAExC;WACG;QACK,mBAAc,GAAG,iBAAiB,CAAC;QAE3C;WACG;QACK,aAAQ,GAAiC,cAAc,CAAC;QAE/C,0BAAqB,GAAG,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"toast-container.js","sourceRoot":"","sources":["../../../src/components/toast/toast-container.tsx"],"names":[],"mappings":"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","sourcesContent":["/*\n * SPDX-FileCopyrightText: 2024 Siemens AG\n *\n * SPDX-License-Identifier: MIT\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { Component, h, Host, Method, Prop, Watch } from '@stencil/core';\nimport { TypedEvent } from '../utils/typed-event';\nimport { ToastConfig } from './toast-utils';\nimport type { ShowToastResult } from './toast-container.types';\n\n@Component({\n tag: 'ix-toast-container',\n styleUrl: './styles/toast-container.scss',\n shadow: true,\n})\nexport class ToastContainer {\n /**\n */\n @Prop() containerId = 'toast-container';\n\n /**\n */\n @Prop() containerClass = 'toast-container';\n\n /**\n */\n @Prop() position: 'bottom-right' | 'top-right' = 'bottom-right';\n\n private readonly PREFIX_POSITION_CLASS = 'toast-container--';\n\n get hostContainer() {\n return new Promise<HTMLElement>((resolve) => {\n const interval = setInterval(() => {\n const containerElement = document.getElementById(this.containerId);\n if (containerElement) {\n clearInterval(interval);\n resolve(containerElement);\n }\n });\n });\n }\n\n componentDidLoad() {\n if (!document.getElementById(this.containerId)) {\n const toastContainer = document.createElement('div');\n toastContainer.id = this.containerId;\n toastContainer.classList.add(this.containerClass);\n toastContainer.classList.add(\n `${this.PREFIX_POSITION_CLASS}${this.position}`\n );\n document.body.appendChild(toastContainer);\n }\n }\n\n @Watch('position')\n onPositionChange(newPosition: string, oldPosition: string) {\n const toastContainer = document.getElementById(this.containerId);\n if (!toastContainer) {\n console.warn('No toast container found, cannot configure toast position');\n return;\n }\n toastContainer.classList.remove(\n `${this.PREFIX_POSITION_CLASS}${oldPosition}`\n );\n toastContainer.classList.add(`${this.PREFIX_POSITION_CLASS}${newPosition}`);\n }\n\n /**\n * Display a toast message\n * @param config\n */\n @Method()\n async showToast(config: ToastConfig): Promise<ShowToastResult> {\n const toast = document.createElement('ix-toast');\n const onClose = new TypedEvent<any | undefined>();\n\n function removeToast(result?: any) {\n toast.remove();\n onClose.emit(result);\n }\n\n toast.toastTitle = config.title;\n toast.type = config.type ?? 'info';\n toast.preventAutoClose = config.autoClose === false;\n toast.autoCloseDelay = config.autoCloseDelay ?? 5000;\n toast.icon = config.icon;\n toast.iconColor = config.iconColor;\n toast.hideIcon = config.hideIcon ?? false;\n toast.addEventListener(\n 'closeToast',\n (event: CustomEvent<any | undefined>) => {\n const { detail } = event;\n removeToast(detail);\n }\n );\n\n if (config.message) {\n if (typeof config.message === 'string') {\n toast.innerText = config.message;\n } else {\n toast.appendChild(config.message);\n }\n }\n\n if (config.action && config.action instanceof HTMLElement) {\n config.action.slot = 'action';\n toast.appendChild(config.action);\n }\n\n (await this.hostContainer).appendChild(toast);\n\n return {\n onClose,\n close: (result?: any) => {\n removeToast(result);\n },\n pause: () => {\n toast.pause();\n },\n resume: () => {\n toast.resume();\n },\n isPaused: () => {\n return toast.isPaused();\n },\n };\n }\n\n render() {\n return (\n <Host\n class={{\n 'toast-container--bottom-right': this.position === 'bottom-right',\n 'toast-container--top-right': this.position === 'top-right',\n }}\n >\n <slot></slot>\n </Host>\n );\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toast-utils.js","sourceRoot":"","sources":["../../../src/components/toast/toast-utils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"toast-utils.js","sourceRoot":"","sources":["../../../src/components/toast/toast-utils.ts"],"names":[],"mappings":"AAmDA,MAAM,UAAU,iBAAiB;IAC/B,MAAM,aAAa,GAAG,KAAK,CAAC,IAAI,CAC9B,QAAQ,CAAC,gBAAgB,CAAC,oBAAoB,CAAC,CAChD,CAAC;IACF,MAAM,CAAC,SAAS,CAAC,GAAG,aAAa,CAAC;IAClC,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7B,OAAO,CAAC,IAAI,CACV,wEAAwE,CACzE,CAAC;QACF,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,cAAc,GAAG,QAAQ,CAAC,aAAa,CAAC,oBAAoB,CAAC,CAAC;QACpE,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;QAE1C,OAAO,cAAc,CAAC;IACxB,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,QAAuB;IACtD,MAAM,SAAS,GAAG,iBAAiB,EAAE,CAAC;IACtC,SAAS,CAAC,YAAY,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;AAC/C,CAAC;AAED,SAAS,KAAK,CAAC,MAAmB;IAChC,MAAM,SAAS,GAAG,iBAAiB,EAAE,CAAC;IACtC,OAAO,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;AACrC,CAAC;AAED,KAAK,CAAC,IAAI,GAAG,CAAC,MAAmB,EAAE,EAAE;IACnC,OAAO,KAAK,iCACP,MAAM,KACT,IAAI,EAAE,MAAM,IACZ,CAAC;AACL,CAAC,CAAC;AAEF,KAAK,CAAC,KAAK,GAAG,CAAC,MAAmB,EAAE,EAAE;IACpC,OAAO,KAAK,iCACP,MAAM,KACT,IAAI,EAAE,OAAO,IACb,CAAC;AACL,CAAC,CAAC;AAEF,KAAK,CAAC,OAAO,GAAG,CAAC,MAAmB,EAAE,EAAE;IACtC,OAAO,KAAK,iCACP,MAAM,KACT,IAAI,EAAE,SAAS,IACf,CAAC;AACL,CAAC,CAAC;AAEF,KAAK,CAAC,OAAO,GAAG,CAAC,MAAmB,EAAE,EAAE;IACtC,OAAO,KAAK,iCACP,MAAM,KACT,IAAI,EAAE,SAAS,IACf,CAAC;AACL,CAAC,CAAC;AAEF,OAAO,EAAE,KAAK,EAAE,CAAC","sourcesContent":["/*\n * SPDX-FileCopyrightText: 2024 Siemens AG\n *\n * SPDX-License-Identifier: MIT\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nimport type { ShowToastResult } from './toast-container.types';\nexport type ToastType = 'info' | 'success' | 'error' | 'warning';\nexport type ToastPosition = 'bottom-right' | 'top-right';\n\nexport interface ToastConfig {\n /**\n * Title of the toast\n */\n title?: string;\n /**\n * Message of the toast\n */\n message?: string | HTMLElement;\n /**\n * Action element that is displayed below the toast message/title\n */\n action?: HTMLElement;\n /**\n * Type of the toast\n */\n type?: ToastType;\n /**\n * Controls whether the toast closes automatically after a delay\n */\n autoClose?: boolean;\n /**\n * Sets the delay for autoClose in milliseconds\n */\n autoCloseDelay?: number;\n /**\n * Icon that is displayed with the toast\n */\n icon?: string;\n /**\n * Color of the icon\n */\n iconColor?: string;\n /**\n * Allows to hide the icon in the toast\n */\n hideIcon?: boolean;\n}\n\nexport function getToastContainer() {\n const containerList = Array.from(\n document.querySelectorAll('ix-toast-container')\n );\n const [container] = containerList;\n if (containerList.length > 1) {\n console.warn(\n 'Multiple toast containers were found. Only the first one will be used.'\n );\n return container;\n }\n if (!container) {\n const toastContainer = document.createElement('ix-toast-container');\n document.body.appendChild(toastContainer);\n\n return toastContainer;\n }\n return container;\n}\n\nexport function setToastPosition(position: ToastPosition) {\n const container = getToastContainer();\n container.setAttribute('position', position);\n}\n\nfunction toast(config: ToastConfig): Promise<ShowToastResult> {\n const container = getToastContainer();\n return container.showToast(config);\n}\n\ntoast.info = (config: ToastConfig) => {\n return toast({\n ...config,\n type: 'info',\n });\n};\n\ntoast.error = (config: ToastConfig) => {\n return toast({\n ...config,\n type: 'error',\n });\n};\n\ntoast.success = (config: ToastConfig) => {\n return toast({\n ...config,\n type: 'success',\n });\n};\n\ntoast.warning = (config: ToastConfig) => {\n return toast({\n ...config,\n type: 'warning',\n });\n};\n\nexport { toast };\n"]}
|
|
@@ -22,6 +22,10 @@ export class Toast {
|
|
|
22
22
|
* Autoclose behavior
|
|
23
23
|
*/
|
|
24
24
|
this.preventAutoClose = false;
|
|
25
|
+
/**
|
|
26
|
+
* Allows to hide the icon in the toast.
|
|
27
|
+
*/
|
|
28
|
+
this.hideIcon = false;
|
|
25
29
|
this.progress = 0;
|
|
26
30
|
this.touched = false;
|
|
27
31
|
this.paused = false;
|
|
@@ -78,11 +82,11 @@ export class Toast {
|
|
|
78
82
|
animationPlayState: this.touched || this.paused ? 'paused' : 'running',
|
|
79
83
|
};
|
|
80
84
|
progressBarClass.push('toast-progress-bar--animated');
|
|
81
|
-
return (h(Host, { key: '
|
|
85
|
+
return (h(Host, { key: 'f2f95d77b28639b78e3fb0f82f471d8fba9b3a3d', class: "animate__animated animate__fadeIn" }, h("div", { key: 'c32a7a677f5d7ca00c209355e5af9679ad28fc28', class: "toast-body", onPointerLeave: () => {
|
|
82
86
|
this.touched = false;
|
|
83
87
|
}, onPointerEnter: () => {
|
|
84
88
|
this.touched = true;
|
|
85
|
-
} }, this.type || this.icon ? (h("div", { class: "toast-icon" }, this.getIcon())) : null, h("div", { key: '
|
|
89
|
+
} }, (this.type || this.icon) && !this.hideIcon ? (h("div", { class: "toast-icon" }, this.getIcon())) : null, h("div", { key: '853a02c2cedea5b66aabc754699e6aeab69dbb9a', class: "toast-content" }, this.toastTitle ? (h("ix-typography", { class: "toast-title", format: "h5" }, this.toastTitle)) : null, h("div", { key: '35d881b3af41b2400a873ea2e45a0634eb81831f', class: "toast-message" }, h("slot", { key: '9030ed64837f7ee0b4ffc8b9aa36d8553e3a97ae' })), h("div", { key: 'fee8e7ca8620d01f8de665ad80293f44b71879ca', class: "toast-action" }, h("slot", { key: '0b81d513c974da48e77cebc35806ab19f7bc9e6f', name: "action" }))), h("div", { key: '59f3cf1722fc9203cb9602387115019258014c55', class: "toast-close" }, h("ix-icon-button", { key: 'd6dceea9274e9266f9ac36c51546635e954ef963', icon: iconClose, iconColor: "color-soft-text", size: "24", variant: "tertiary", onClick: () => this.closeToast.emit(), "aria-label": this.ariaLabelCloseIconButton }))), !this.preventAutoClose && (h("div", { key: '3530a6781c5f32d787ef1a1b38eb39f98ca26062', class: progressBarClass.join(' '), style: progressBarStyle, onAnimationEnd: () => {
|
|
86
90
|
this.close();
|
|
87
91
|
}, onTransitionEnd: () => {
|
|
88
92
|
if (this.progress === 0) {
|
|
@@ -227,6 +231,26 @@ export class Toast {
|
|
|
227
231
|
"setter": false,
|
|
228
232
|
"reflect": false
|
|
229
233
|
},
|
|
234
|
+
"hideIcon": {
|
|
235
|
+
"type": "boolean",
|
|
236
|
+
"attribute": "hide-icon",
|
|
237
|
+
"mutable": false,
|
|
238
|
+
"complexType": {
|
|
239
|
+
"original": "boolean",
|
|
240
|
+
"resolved": "boolean",
|
|
241
|
+
"references": {}
|
|
242
|
+
},
|
|
243
|
+
"required": false,
|
|
244
|
+
"optional": false,
|
|
245
|
+
"docs": {
|
|
246
|
+
"tags": [],
|
|
247
|
+
"text": "Allows to hide the icon in the toast."
|
|
248
|
+
},
|
|
249
|
+
"getter": false,
|
|
250
|
+
"setter": false,
|
|
251
|
+
"reflect": false,
|
|
252
|
+
"defaultValue": "false"
|
|
253
|
+
},
|
|
230
254
|
"ariaLabelCloseIconButton": {
|
|
231
255
|
"type": "string",
|
|
232
256
|
"attribute": "aria-label-close-icon-button",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toast.js","sourceRoot":"","sources":["../../../src/components/toast/toast.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EACL,SAAS,EACT,OAAO,EACP,KAAK,EAEL,CAAC,EACD,IAAI,EACJ,MAAM,EACN,IAAI,EACJ,KAAK,GACN,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,SAAS,EACT,SAAS,EACT,QAAQ,EACR,WAAW,EACX,WAAW,GACZ,MAAM,yBAAyB,CAAC;AAOjC,MAAM,OAAO,KAAK;IALlB;QAME;;WAEG;QACK,SAAI,GAAc,MAAM,CAAC;QAOjC;;WAEG;QACK,mBAAc,GAAG,IAAI,CAAC;QAE9B;;WAEG;QACK,qBAAgB,GAAG,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"toast.js","sourceRoot":"","sources":["../../../src/components/toast/toast.tsx"],"names":[],"mappings":"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","sourcesContent":["/*\n * SPDX-FileCopyrightText: 2024 Siemens AG\n *\n * SPDX-License-Identifier: MIT\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport {\n Component,\n Element,\n Event,\n EventEmitter,\n h,\n Host,\n Method,\n Prop,\n State,\n} from '@stencil/core';\nimport { ToastType } from './toast-utils';\nimport {\n iconClose,\n iconError,\n iconInfo,\n iconSuccess,\n iconWarning,\n} from '@siemens/ix-icons/icons';\n\n@Component({\n tag: 'ix-toast',\n styleUrl: 'toast.scss',\n shadow: true,\n})\nexport class Toast {\n /**\n * Toast type\n */\n @Prop() type: ToastType = 'info';\n\n /**\n * Toast title\n */\n @Prop() toastTitle?: string;\n\n /**\n * Autoclose title after delay\n */\n @Prop() autoCloseDelay = 5000;\n\n /**\n * Autoclose behavior\n */\n @Prop() preventAutoClose = false;\n\n /**\n * Icon of toast\n */\n @Prop() icon?: string;\n\n /**\n * Icon color of toast\n */\n @Prop() iconColor?: string;\n\n /**\n * Allows to hide the icon in the toast.\n */\n @Prop() hideIcon: boolean = false;\n\n /**\n * ARIA label for the close icon button\n * Will be set as aria-label on the nested HTML button element\n *\n * @since 3.2.0\n */\n @Prop() ariaLabelCloseIconButton?: string;\n\n /**\n * Toast closed\n */\n @Event() closeToast!: EventEmitter;\n\n @State() progress = 0;\n @State() touched = false;\n @State() paused = false;\n\n @Element() hostElement!: HTMLIxToastElement;\n\n private getIcon() {\n if (this.icon) {\n return (\n <ix-icon\n data-testid=\"toast-icon\"\n name={this.icon}\n color={this.iconColor}\n size=\"24\"\n />\n );\n }\n\n switch (this.type) {\n case 'info':\n return (\n <ix-icon\n data-testid=\"toast-icon\"\n name={iconInfo}\n size=\"24\"\n color=\"color-std-text\"\n />\n );\n\n case 'error':\n return (\n <ix-icon\n data-testid=\"toast-icon\"\n name={iconError}\n size=\"24\"\n color=\"color-alarm\"\n />\n );\n\n case 'success':\n return (\n <ix-icon\n data-testid=\"toast-icon\"\n name={iconSuccess}\n size=\"24\"\n color=\"color-success\"\n />\n );\n\n case 'warning':\n //TODO(IX-3400): Replace icon colors with proper CSS variables when available\n return (\n <ix-icon\n data-testid=\"toast-icon\"\n name={iconWarning}\n size=\"24\"\n color=\"color-warning-text\"\n />\n );\n\n default:\n return '';\n }\n }\n\n private close() {\n if (this.hostElement) {\n this.hostElement.classList.add('animate__fadeOut');\n }\n setTimeout(() => {\n this.closeToast.emit();\n }, 250);\n }\n\n /**\n * Pause the toast's auto-close progress bar and timer.\n */\n @Method()\n async pause() {\n this.paused = true;\n }\n\n /**\n * Resume the toast's auto-close progress bar and timer if previously paused.\n */\n @Method()\n async resume() {\n this.paused = false;\n }\n\n /**\n * Returns whether the toast is currently paused (auto-close is paused).\n */\n @Method()\n async isPaused(): Promise<boolean> {\n return this.paused || this.touched;\n }\n\n render() {\n let progressBarStyle: Record<string, string> = {};\n\n const progressBarClass = ['toast-progress-bar'];\n\n progressBarStyle = {\n animationDuration: `${this.autoCloseDelay}ms`,\n animationPlayState: this.touched || this.paused ? 'paused' : 'running',\n };\n\n progressBarClass.push('toast-progress-bar--animated');\n\n return (\n <Host class=\"animate__animated animate__fadeIn\">\n <div\n class=\"toast-body\"\n onPointerLeave={() => {\n this.touched = false;\n }}\n onPointerEnter={() => {\n this.touched = true;\n }}\n >\n {(this.type || this.icon) && !this.hideIcon ? (\n <div class=\"toast-icon\">{this.getIcon()}</div>\n ) : null}\n <div class=\"toast-content\">\n {this.toastTitle ? (\n <ix-typography class=\"toast-title\" format=\"h5\">\n {this.toastTitle}\n </ix-typography>\n ) : null}\n <div class=\"toast-message\">\n <slot></slot>\n </div>\n <div class=\"toast-action\">\n <slot name=\"action\"></slot>\n </div>\n </div>\n <div class=\"toast-close\">\n <ix-icon-button\n icon={iconClose}\n iconColor=\"color-soft-text\"\n size=\"24\"\n variant=\"tertiary\"\n onClick={() => this.closeToast.emit()}\n aria-label={this.ariaLabelCloseIconButton}\n />\n </div>\n </div>\n {!this.preventAutoClose && (\n <div\n class={progressBarClass.join(' ')}\n style={progressBarStyle}\n onAnimationEnd={() => {\n this.close();\n }}\n onTransitionEnd={() => {\n if (this.progress === 0) {\n this.close();\n }\n }}\n ></div>\n )}\n </Host>\n );\n }\n}\n"]}
|
|
@@ -69,9 +69,15 @@ class ThemeSwitcher {
|
|
|
69
69
|
return target.getAttribute(dataIxColorSchema);
|
|
70
70
|
}
|
|
71
71
|
getCurrentTheme() {
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
72
|
+
const themeClass = Array.from(document.documentElement.classList).find((className) => this.isThemeClass(className));
|
|
73
|
+
if (themeClass) {
|
|
74
|
+
return themeClass;
|
|
75
|
+
}
|
|
76
|
+
const dataTheme = document.documentElement.getAttribute(dataIxTheme);
|
|
77
|
+
const dataColorSchema = document.documentElement.getAttribute(dataIxColorSchema);
|
|
78
|
+
const theme = dataTheme || 'classic';
|
|
79
|
+
const variant = dataColorSchema || getCurrentSystemAppearance();
|
|
80
|
+
return `theme-${theme}-${variant}`;
|
|
75
81
|
}
|
|
76
82
|
setVariant(variant = getCurrentSystemAppearance()) {
|
|
77
83
|
if (this.getDataColorSchema(document.documentElement)) {
|
|
@@ -79,6 +85,10 @@ class ThemeSwitcher {
|
|
|
79
85
|
return;
|
|
80
86
|
}
|
|
81
87
|
const currentTheme = this.getCurrentTheme();
|
|
88
|
+
if (!currentTheme) {
|
|
89
|
+
document.documentElement.setAttribute(dataIxColorSchema, variant);
|
|
90
|
+
return;
|
|
91
|
+
}
|
|
82
92
|
document.documentElement.classList.remove(currentTheme);
|
|
83
93
|
if (currentTheme.endsWith(this.suffixDark)) {
|
|
84
94
|
document.documentElement.classList.add(currentTheme.replace(/-dark$/g, `-${variant}`));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"theme-switcher.js","sourceRoot":"","sources":["../../../src/components/utils/theme-switcher.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * SPDX-FileCopyrightText: 2025 Siemens AG\n *\n * SPDX-License-Identifier: MIT\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { type LiteralStringUnion } from './type-helper';\nimport { TypedEvent } from './typed-event';\n\nexport type ThemeVariant = 'light' | 'dark';\n\nconst dataIxTheme = 'data-ix-theme';\nconst dataIxColorSchema = 'data-ix-color-schema';\n\nclass ThemeSwitcher {\n readonly prefixTheme = 'theme-';\n readonly suffixLight = '-light';\n readonly suffixDark = '-dark';\n readonly defaultTheme = 'theme-classic-dark';\n\n mutationObserver?: MutationObserver;\n _themeChanged = new TypedEvent<string>();\n _schemaChanged = new TypedEvent<string>();\n\n public get themeChanged() {\n return this._themeChanged;\n }\n\n public get schemaChanged() {\n return this._schemaChanged;\n }\n\n public hasVariantSuffix(className: string) {\n return (\n className.endsWith(this.suffixDark) ||\n className.endsWith(this.suffixLight)\n );\n }\n\n private isThemeClass(className: string) {\n return (\n className.startsWith(this.prefixTheme) && this.hasVariantSuffix(className)\n );\n }\n\n public setTheme(themeName: string, systemAppearance = false) {\n if (this.isThemeClass(themeName)) {\n this.replaceThemeClass(themeName);\n } else {\n document.documentElement.setAttribute(dataIxTheme, themeName);\n }\n\n if (systemAppearance) {\n const currentSystemAppearance = getCurrentSystemAppearance();\n this.setVariant(currentSystemAppearance);\n }\n }\n\n private replaceThemeClass(themeName: string) {\n const oldThemes: string[] = [];\n Array.from(document.documentElement.classList)\n .filter((className) => className && this.isThemeClass(className))\n .forEach((className) => {\n oldThemes.push(className);\n });\n\n document.documentElement.classList.remove(...oldThemes);\n document.documentElement.classList.add(themeName);\n }\n\n public toggleMode() {\n if (document.documentElement.hasAttribute(dataIxColorSchema)) {\n const currentSchema = this.getDataColorSchema(document.documentElement)!;\n document.documentElement.setAttribute(\n dataIxColorSchema,\n currentSchema === 'dark' ? 'light' : 'dark'\n );\n return;\n }\n\n const oldThemes: string[] = [];\n Array.from(document.documentElement.classList)\n .filter((className) => className && this.isThemeClass(className))\n .forEach((className) => {\n oldThemes.push(className);\n });\n\n if (oldThemes.length === 0) {\n document.documentElement.classList.add(\n this.getOppositeMode(this.defaultTheme)\n );\n return;\n }\n\n oldThemes.forEach((themeName) => {\n document.documentElement.classList.replace(\n themeName,\n this.getOppositeMode(themeName)\n );\n });\n }\n\n private getDataColorSchema(target: HTMLElement) {\n return target.getAttribute(dataIxColorSchema);\n }\n\n public getCurrentTheme() {\n return (\n Array.from(document.documentElement.classList).find((className) =>\n this.isThemeClass(className)\n ) ??\n `theme-${\n document.documentElement.getAttribute(dataIxTheme) || 'classic'\n }-${\n document.documentElement.getAttribute(dataIxColorSchema) ||\n getCurrentSystemAppearance()\n }`\n );\n }\n\n public setVariant(variant: ThemeVariant = getCurrentSystemAppearance()) {\n if (this.getDataColorSchema(document.documentElement)) {\n document.documentElement.setAttribute(dataIxColorSchema, variant);\n return;\n }\n\n const currentTheme = this.getCurrentTheme();\n document.documentElement.classList.remove(currentTheme);\n\n if (currentTheme.endsWith(this.suffixDark)) {\n document.documentElement.classList.add(\n currentTheme.replace(/-dark$/g, `-${variant}`)\n );\n }\n\n if (currentTheme.endsWith(this.suffixLight)) {\n document.documentElement.classList.add(\n currentTheme.replace(/-light$/g, `-${variant}`)\n );\n }\n\n document.documentElement.setAttribute(dataIxColorSchema, variant);\n }\n\n private getOppositeMode(themeName: string) {\n if (themeName.endsWith(this.suffixDark)) {\n return themeName.replace(/-dark$/g, this.suffixLight);\n }\n\n if (themeName.endsWith(this.suffixLight)) {\n return themeName.replace(/-light$/g, this.suffixDark);\n }\n\n return '';\n }\n\n private splitMutations(mutations: MutationRecord[]) {\n const classMutations = mutations.filter(\n (mutation) => mutation.attributeName === 'class'\n );\n\n const dataMutations = mutations.filter(\n (mutation) =>\n mutation.attributeName === dataIxTheme ||\n mutation.attributeName === dataIxColorSchema\n );\n\n return { classMutations, dataMutations };\n }\n\n private handleClassMutations(mutations: MutationRecord[]) {\n return mutations.forEach((mutation) => {\n const { target } = mutation;\n (target as HTMLElement).classList.forEach((className) => {\n if (\n this.isThemeClass(className) &&\n !mutation.oldValue?.includes(className)\n ) {\n this._themeChanged.emit(className);\n }\n });\n });\n }\n\n private handleDataMutations(mutations: MutationRecord[]) {\n return mutations.forEach((mutation) => {\n const { target } = mutation;\n const theme = (target as Element).attributes.getNamedItem(dataIxTheme);\n if (theme?.value && mutation.oldValue !== theme.value) {\n this._themeChanged.emit(theme.value);\n }\n\n const colorSchema = (target as Element).attributes.getNamedItem(\n dataIxColorSchema\n );\n if (colorSchema?.value && mutation.oldValue !== colorSchema.value) {\n this._schemaChanged.emit(colorSchema.value);\n }\n });\n }\n\n private registerMutationObservers() {\n if (typeof (window as any) === 'undefined') {\n return;\n }\n\n if (!('MutationObserver' in window)) {\n console.warn(\n 'ThemeSwitcher not supported by your browser. Missing MutationObserver API'\n );\n return;\n }\n\n const mutationObserverConfig = {\n attributeFilter: ['class', dataIxTheme, dataIxColorSchema],\n attributeOldValue: true,\n };\n\n const handleMutations = (mutations: MutationRecord[]) => {\n const { classMutations, dataMutations } = this.splitMutations(mutations);\n\n this.handleClassMutations(classMutations);\n this.handleDataMutations(dataMutations);\n };\n\n this.mutationObserver = new MutationObserver(handleMutations);\n this.mutationObserver.observe(\n document.documentElement,\n mutationObserverConfig\n );\n }\n\n public constructor() {\n this.registerMutationObservers();\n }\n}\n\nexport type IxTheme = LiteralStringUnion<\n 'classic' | 'classic-dark' | 'classic-light'\n>;\n\nexport const getCurrentSystemAppearance = (): ThemeVariant => {\n const matchMedia = window.matchMedia('(prefers-color-scheme: dark)');\n\n if (matchMedia.matches) {\n return 'dark';\n }\n\n return 'light';\n};\n\nexport const themeSwitcher = new ThemeSwitcher();\n"]}
|
|
1
|
+
{"version":3,"file":"theme-switcher.js","sourceRoot":"","sources":["../../../src/components/utils/theme-switcher.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAI3C,MAAM,WAAW,GAAG,eAAe,CAAC;AACpC,MAAM,iBAAiB,GAAG,sBAAsB,CAAC;AAEjD,MAAM,aAAa;IAUjB,IAAW,YAAY;QACrB,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAED,IAAW,aAAa;QACtB,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;IAEM,gBAAgB,CAAC,SAAiB;QACvC,OAAO,CACL,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC;YACnC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CACrC,CAAC;IACJ,CAAC;IAEO,YAAY,CAAC,SAAiB;QACpC,OAAO,CACL,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAC3E,CAAC;IACJ,CAAC;IAEM,QAAQ,CAAC,SAAiB,EAAE,gBAAgB,GAAG,KAAK;QACzD,IAAI,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE,CAAC;YACjC,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;QACpC,CAAC;aAAM,CAAC;YACN,QAAQ,CAAC,eAAe,CAAC,YAAY,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;QAChE,CAAC;QAED,IAAI,gBAAgB,EAAE,CAAC;YACrB,MAAM,uBAAuB,GAAG,0BAA0B,EAAE,CAAC;YAC7D,IAAI,CAAC,UAAU,CAAC,uBAAuB,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;IAEO,iBAAiB,CAAC,SAAiB;QACzC,MAAM,SAAS,GAAa,EAAE,CAAC;QAC/B,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,SAAS,CAAC;aAC3C,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,IAAI,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;aAChE,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE;YACrB,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC5B,CAAC,CAAC,CAAC;QAEL,QAAQ,CAAC,eAAe,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC,CAAC;QACxD,QAAQ,CAAC,eAAe,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACpD,CAAC;IAEM,UAAU;QACf,IAAI,QAAQ,CAAC,eAAe,CAAC,YAAY,CAAC,iBAAiB,CAAC,EAAE,CAAC;YAC7D,MAAM,aAAa,GAAG,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,eAAe,CAAE,CAAC;YACzE,QAAQ,CAAC,eAAe,CAAC,YAAY,CACnC,iBAAiB,EACjB,aAAa,KAAK,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAC5C,CAAC;YACF,OAAO;QACT,CAAC;QAED,MAAM,SAAS,GAAa,EAAE,CAAC;QAC/B,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,SAAS,CAAC;aAC3C,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,IAAI,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;aAChE,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE;YACrB,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC5B,CAAC,CAAC,CAAC;QAEL,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3B,QAAQ,CAAC,eAAe,CAAC,SAAS,CAAC,GAAG,CACpC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,YAAY,CAAC,CACxC,CAAC;YACF,OAAO;QACT,CAAC;QAED,SAAS,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE;YAC9B,QAAQ,CAAC,eAAe,CAAC,SAAS,CAAC,OAAO,CACxC,SAAS,EACT,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAChC,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,kBAAkB,CAAC,MAAmB;QAC5C,OAAO,MAAM,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAC;IAChD,CAAC;IAEM,eAAe;QACpB,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,IAAI,CACpE,CAAC,SAAS,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAC5C,CAAC;QAEF,IAAI,UAAU,EAAE,CAAC;YACf,OAAO,UAAU,CAAC;QACpB,CAAC;QAED,MAAM,SAAS,GAAG,QAAQ,CAAC,eAAe,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;QACrE,MAAM,eAAe,GACnB,QAAQ,CAAC,eAAe,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAC;QAE3D,MAAM,KAAK,GAAG,SAAS,IAAI,SAAS,CAAC;QACrC,MAAM,OAAO,GAAG,eAAe,IAAI,0BAA0B,EAAE,CAAC;QAEhE,OAAO,SAAS,KAAK,IAAI,OAAO,EAAE,CAAC;IACrC,CAAC;IAEM,UAAU,CAAC,UAAwB,0BAA0B,EAAE;QACpE,IAAI,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC;YACtD,QAAQ,CAAC,eAAe,CAAC,YAAY,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAC;YAClE,OAAO;QACT,CAAC;QAED,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QAC5C,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,QAAQ,CAAC,eAAe,CAAC,YAAY,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAC;YAClE,OAAO;QACT,CAAC;QAED,QAAQ,CAAC,eAAe,CAAC,SAAS,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QAExD,IAAI,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;YAC3C,QAAQ,CAAC,eAAe,CAAC,SAAS,CAAC,GAAG,CACpC,YAAY,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,OAAO,EAAE,CAAC,CAC/C,CAAC;QACJ,CAAC;QAED,IAAI,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;YAC5C,QAAQ,CAAC,eAAe,CAAC,SAAS,CAAC,GAAG,CACpC,YAAY,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,OAAO,EAAE,CAAC,CAChD,CAAC;QACJ,CAAC;QAED,QAAQ,CAAC,eAAe,CAAC,YAAY,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAC;IACpE,CAAC;IAEO,eAAe,CAAC,SAAiB;QACvC,IAAI,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;YACxC,OAAO,SAAS,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QACxD,CAAC;QAED,IAAI,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;YACzC,OAAO,SAAS,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QACxD,CAAC;QAED,OAAO,EAAE,CAAC;IACZ,CAAC;IAEO,cAAc,CAAC,SAA2B;QAChD,MAAM,cAAc,GAAG,SAAS,CAAC,MAAM,CACrC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,aAAa,KAAK,OAAO,CACjD,CAAC;QAEF,MAAM,aAAa,GAAG,SAAS,CAAC,MAAM,CACpC,CAAC,QAAQ,EAAE,EAAE,CACX,QAAQ,CAAC,aAAa,KAAK,WAAW;YACtC,QAAQ,CAAC,aAAa,KAAK,iBAAiB,CAC/C,CAAC;QAEF,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,CAAC;IAC3C,CAAC;IAEO,oBAAoB,CAAC,SAA2B;QACtD,OAAO,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;YACpC,MAAM,EAAE,MAAM,EAAE,GAAG,QAAQ,CAAC;YAC3B,MAAsB,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE;;gBACtD,IACE,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC;oBAC5B,CAAC,CAAA,MAAA,QAAQ,CAAC,QAAQ,0CAAE,QAAQ,CAAC,SAAS,CAAC,CAAA,EACvC,CAAC;oBACD,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBACrC,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,mBAAmB,CAAC,SAA2B;QACrD,OAAO,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;YACpC,MAAM,EAAE,MAAM,EAAE,GAAG,QAAQ,CAAC;YAC5B,MAAM,KAAK,GAAI,MAAkB,CAAC,UAAU,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;YACvE,IAAI,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,KAAK,KAAI,QAAQ,CAAC,QAAQ,KAAK,KAAK,CAAC,KAAK,EAAE,CAAC;gBACtD,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACvC,CAAC;YAED,MAAM,WAAW,GAAI,MAAkB,CAAC,UAAU,CAAC,YAAY,CAC7D,iBAAiB,CAClB,CAAC;YACF,IAAI,CAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,KAAK,KAAI,QAAQ,CAAC,QAAQ,KAAK,WAAW,CAAC,KAAK,EAAE,CAAC;gBAClE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;YAC9C,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,yBAAyB;QAC/B,IAAI,OAAQ,MAAc,KAAK,WAAW,EAAE,CAAC;YAC3C,OAAO;QACT,CAAC;QAED,IAAI,CAAC,CAAC,kBAAkB,IAAI,MAAM,CAAC,EAAE,CAAC;YACpC,OAAO,CAAC,IAAI,CACV,2EAA2E,CAC5E,CAAC;YACF,OAAO;QACT,CAAC;QAED,MAAM,sBAAsB,GAAG;YAC7B,eAAe,EAAE,CAAC,OAAO,EAAE,WAAW,EAAE,iBAAiB,CAAC;YAC1D,iBAAiB,EAAE,IAAI;SACxB,CAAC;QAEF,MAAM,eAAe,GAAG,CAAC,SAA2B,EAAE,EAAE;YACtD,MAAM,EAAE,cAAc,EAAE,aAAa,EAAE,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;YAEzE,IAAI,CAAC,oBAAoB,CAAC,cAAc,CAAC,CAAC;YAC1C,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,CAAC;QAC1C,CAAC,CAAC;QAEF,IAAI,CAAC,gBAAgB,GAAG,IAAI,gBAAgB,CAAC,eAAe,CAAC,CAAC;QAC9D,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAC3B,QAAQ,CAAC,eAAe,EACxB,sBAAsB,CACvB,CAAC;IACJ,CAAC;IAED;QAnOS,gBAAW,GAAG,QAAQ,CAAC;QACvB,gBAAW,GAAG,QAAQ,CAAC;QACvB,eAAU,GAAG,OAAO,CAAC;QACrB,iBAAY,GAAG,oBAAoB,CAAC;QAG7C,kBAAa,GAAG,IAAI,UAAU,EAAU,CAAC;QACzC,mBAAc,GAAG,IAAI,UAAU,EAAU,CAAC;QA6NxC,IAAI,CAAC,yBAAyB,EAAE,CAAC;IACnC,CAAC;CACF;AAMD,MAAM,CAAC,MAAM,0BAA0B,GAAG,GAAiB,EAAE;IAC3D,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,8BAA8B,CAAC,CAAC;IAErE,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;QACvB,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,aAAa,EAAE,CAAC","sourcesContent":["/*\n * SPDX-FileCopyrightText: 2025 Siemens AG\n *\n * SPDX-License-Identifier: MIT\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { type LiteralStringUnion } from './type-helper';\nimport { TypedEvent } from './typed-event';\n\nexport type ThemeVariant = 'light' | 'dark';\n\nconst dataIxTheme = 'data-ix-theme';\nconst dataIxColorSchema = 'data-ix-color-schema';\n\nclass ThemeSwitcher {\n readonly prefixTheme = 'theme-';\n readonly suffixLight = '-light';\n readonly suffixDark = '-dark';\n readonly defaultTheme = 'theme-classic-dark';\n\n mutationObserver?: MutationObserver;\n _themeChanged = new TypedEvent<string>();\n _schemaChanged = new TypedEvent<string>();\n\n public get themeChanged() {\n return this._themeChanged;\n }\n\n public get schemaChanged() {\n return this._schemaChanged;\n }\n\n public hasVariantSuffix(className: string) {\n return (\n className.endsWith(this.suffixDark) ||\n className.endsWith(this.suffixLight)\n );\n }\n\n private isThemeClass(className: string) {\n return (\n className.startsWith(this.prefixTheme) && this.hasVariantSuffix(className)\n );\n }\n\n public setTheme(themeName: string, systemAppearance = false) {\n if (this.isThemeClass(themeName)) {\n this.replaceThemeClass(themeName);\n } else {\n document.documentElement.setAttribute(dataIxTheme, themeName);\n }\n\n if (systemAppearance) {\n const currentSystemAppearance = getCurrentSystemAppearance();\n this.setVariant(currentSystemAppearance);\n }\n }\n\n private replaceThemeClass(themeName: string) {\n const oldThemes: string[] = [];\n Array.from(document.documentElement.classList)\n .filter((className) => className && this.isThemeClass(className))\n .forEach((className) => {\n oldThemes.push(className);\n });\n\n document.documentElement.classList.remove(...oldThemes);\n document.documentElement.classList.add(themeName);\n }\n\n public toggleMode() {\n if (document.documentElement.hasAttribute(dataIxColorSchema)) {\n const currentSchema = this.getDataColorSchema(document.documentElement)!;\n document.documentElement.setAttribute(\n dataIxColorSchema,\n currentSchema === 'dark' ? 'light' : 'dark'\n );\n return;\n }\n\n const oldThemes: string[] = [];\n Array.from(document.documentElement.classList)\n .filter((className) => className && this.isThemeClass(className))\n .forEach((className) => {\n oldThemes.push(className);\n });\n\n if (oldThemes.length === 0) {\n document.documentElement.classList.add(\n this.getOppositeMode(this.defaultTheme)\n );\n return;\n }\n\n oldThemes.forEach((themeName) => {\n document.documentElement.classList.replace(\n themeName,\n this.getOppositeMode(themeName)\n );\n });\n }\n\n private getDataColorSchema(target: HTMLElement) {\n return target.getAttribute(dataIxColorSchema);\n }\n\n public getCurrentTheme() {\n const themeClass = Array.from(document.documentElement.classList).find(\n (className) => this.isThemeClass(className)\n );\n\n if (themeClass) {\n return themeClass;\n }\n\n const dataTheme = document.documentElement.getAttribute(dataIxTheme);\n const dataColorSchema =\n document.documentElement.getAttribute(dataIxColorSchema);\n\n const theme = dataTheme || 'classic';\n const variant = dataColorSchema || getCurrentSystemAppearance();\n\n return `theme-${theme}-${variant}`;\n }\n\n public setVariant(variant: ThemeVariant = getCurrentSystemAppearance()) {\n if (this.getDataColorSchema(document.documentElement)) {\n document.documentElement.setAttribute(dataIxColorSchema, variant);\n return;\n }\n\n const currentTheme = this.getCurrentTheme();\n if (!currentTheme) {\n document.documentElement.setAttribute(dataIxColorSchema, variant);\n return;\n }\n\n document.documentElement.classList.remove(currentTheme);\n\n if (currentTheme.endsWith(this.suffixDark)) {\n document.documentElement.classList.add(\n currentTheme.replace(/-dark$/g, `-${variant}`)\n );\n }\n\n if (currentTheme.endsWith(this.suffixLight)) {\n document.documentElement.classList.add(\n currentTheme.replace(/-light$/g, `-${variant}`)\n );\n }\n\n document.documentElement.setAttribute(dataIxColorSchema, variant);\n }\n\n private getOppositeMode(themeName: string) {\n if (themeName.endsWith(this.suffixDark)) {\n return themeName.replace(/-dark$/g, this.suffixLight);\n }\n\n if (themeName.endsWith(this.suffixLight)) {\n return themeName.replace(/-light$/g, this.suffixDark);\n }\n\n return '';\n }\n\n private splitMutations(mutations: MutationRecord[]) {\n const classMutations = mutations.filter(\n (mutation) => mutation.attributeName === 'class'\n );\n\n const dataMutations = mutations.filter(\n (mutation) =>\n mutation.attributeName === dataIxTheme ||\n mutation.attributeName === dataIxColorSchema\n );\n\n return { classMutations, dataMutations };\n }\n\n private handleClassMutations(mutations: MutationRecord[]) {\n return mutations.forEach((mutation) => {\n const { target } = mutation;\n (target as HTMLElement).classList.forEach((className) => {\n if (\n this.isThemeClass(className) &&\n !mutation.oldValue?.includes(className)\n ) {\n this._themeChanged.emit(className);\n }\n });\n });\n }\n\n private handleDataMutations(mutations: MutationRecord[]) {\n return mutations.forEach((mutation) => {\n const { target } = mutation;\n const theme = (target as Element).attributes.getNamedItem(dataIxTheme);\n if (theme?.value && mutation.oldValue !== theme.value) {\n this._themeChanged.emit(theme.value);\n }\n\n const colorSchema = (target as Element).attributes.getNamedItem(\n dataIxColorSchema\n );\n if (colorSchema?.value && mutation.oldValue !== colorSchema.value) {\n this._schemaChanged.emit(colorSchema.value);\n }\n });\n }\n\n private registerMutationObservers() {\n if (typeof (window as any) === 'undefined') {\n return;\n }\n\n if (!('MutationObserver' in window)) {\n console.warn(\n 'ThemeSwitcher not supported by your browser. Missing MutationObserver API'\n );\n return;\n }\n\n const mutationObserverConfig = {\n attributeFilter: ['class', dataIxTheme, dataIxColorSchema],\n attributeOldValue: true,\n };\n\n const handleMutations = (mutations: MutationRecord[]) => {\n const { classMutations, dataMutations } = this.splitMutations(mutations);\n\n this.handleClassMutations(classMutations);\n this.handleDataMutations(dataMutations);\n };\n\n this.mutationObserver = new MutationObserver(handleMutations);\n this.mutationObserver.observe(\n document.documentElement,\n mutationObserverConfig\n );\n }\n\n public constructor() {\n this.registerMutationObservers();\n }\n}\n\nexport type IxTheme = LiteralStringUnion<\n 'classic' | 'classic-dark' | 'classic-light'\n>;\n\nexport const getCurrentSystemAppearance = (): ThemeVariant => {\n const matchMedia = window.matchMedia('(prefers-color-scheme: dark)');\n\n if (matchMedia.matches) {\n return 'dark';\n }\n\n return 'light';\n};\n\nexport const themeSwitcher = new ThemeSwitcher();\n"]}
|
package/dist/esm/index.js
CHANGED
|
@@ -6,7 +6,7 @@ export { c as closeModal, d as dismissModal, r as registerFrameworkDelegate, a a
|
|
|
6
6
|
import { A as Animation } from './animation-C5MWUgDN.js';
|
|
7
7
|
export { T as TypedEvent } from './typed-event-BdCnOrqW.js';
|
|
8
8
|
export { a as convertToAbbreviationString, c as convertToRemString } from './rwd.util-pXYAoEyc.js';
|
|
9
|
-
export { g as getCurrentSystemAppearance, t as themeSwitcher } from './theme-switcher-
|
|
9
|
+
export { g as getCurrentSystemAppearance, t as themeSwitcher } from './theme-switcher-EbjilqRl.js';
|
|
10
10
|
export { h as handlePlatformHelpers } from './setup-BHVEOpQp.js';
|
|
11
11
|
import './index-8HpPmDK_.js';
|
|
12
12
|
import './index-CtoreFVF.js';
|
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["src/components/category-filter/filter-state.ts","src/components/toast/toast-utils.ts","src/components/utils/modal/loading.ts"],"sourcesContent":["/*\n * SPDX-FileCopyrightText: 2023 Siemens AG\n *\n * SPDX-License-Identifier: MIT\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { LogicalFilterOperator } from './logical-filter-operator';\nexport class FilterState {\n public tokens: string[] = [];\n public categories: {\n id: string;\n value: string;\n operator: LogicalFilterOperator;\n }[] = [];\n}\n","/*\n * SPDX-FileCopyrightText: 2024 Siemens AG\n *\n * SPDX-License-Identifier: MIT\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nimport type { ShowToastResult } from './toast-container.types';\nexport type ToastType = 'info' | 'success' | 'error' | 'warning';\nexport type ToastPosition = 'bottom-right' | 'top-right';\n\nexport interface ToastConfig {\n /**\n * Title of the toast\n */\n title?: string;\n /**\n * Message of the toast\n */\n message?: string | HTMLElement;\n /**\n * Action element that is displayed below the toast message/title\n */\n action?: HTMLElement;\n /**\n * Type of the toast\n */\n type?: ToastType;\n /**\n * Controls whether the toast closes automatically after a delay\n */\n autoClose?: boolean;\n /**\n * Sets the delay for autoClose in milliseconds\n */\n autoCloseDelay?: number;\n /**\n * Icon that is displayed with the toast\n */\n icon?: string;\n /**\n * Color of the icon\n */\n iconColor?: string;\n}\n\nexport function getToastContainer() {\n const containerList = Array.from(\n document.querySelectorAll('ix-toast-container')\n );\n const [container] = containerList;\n if (containerList.length > 1) {\n console.warn(\n 'Multiple toast containers were found. Only the first one will be used.'\n );\n return container;\n }\n if (!container) {\n const toastContainer = document.createElement('ix-toast-container');\n document.body.appendChild(toastContainer);\n\n return toastContainer;\n }\n return container;\n}\n\nexport function setToastPosition(position: ToastPosition) {\n const container = getToastContainer();\n container.setAttribute('position', position);\n}\n\nfunction toast(config: ToastConfig): Promise<ShowToastResult> {\n const container = getToastContainer();\n return container.showToast(config);\n}\n\ntoast.info = (config: ToastConfig) => {\n return toast({\n ...config,\n type: 'info',\n });\n};\n\ntoast.error = (config: ToastConfig) => {\n return toast({\n ...config,\n type: 'error',\n });\n};\n\ntoast.success = (config: ToastConfig) => {\n return toast({\n ...config,\n type: 'success',\n });\n};\n\ntoast.warning = (config: ToastConfig) => {\n return toast({\n ...config,\n type: 'warning',\n });\n};\n\nexport { toast };\n","/*\n * SPDX-FileCopyrightText: 2023 Siemens AG\n *\n * SPDX-License-Identifier: MIT\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport Animation from '../animation';\nimport { getCoreDelegate } from '../delegate';\n\nexport type ModalLoadingContext = {\n update: (text: string) => string;\n finish: (text?: string, timeout?: number) => void;\n};\n\nexport function showModalLoading(message: string) {\n const modal = document.createElement('ix-modal');\n modal.disableEscapeClose = true;\n\n const loading = document.createElement('ix-modal-loading');\n loading.innerText = message;\n modal.appendChild(loading);\n\n getCoreDelegate().attachView(modal);\n modal.showModal();\n\n return {\n update: (text: string) => (loading.innerHTML = text),\n finish: (text?: string, timeout: number = 250) => {\n if (text !== undefined) {\n loading.innerText = text;\n } else {\n timeout = 0;\n }\n setTimeout(() => {\n modal.closeModal(null);\n setTimeout(\n async () => await getCoreDelegate().removeView(modal),\n Animation.mediumTime\n );\n }, timeout);\n },\n };\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;AAAA;;;;;;;AAOG;MAGU,WAAW,CAAA;AAAxB,IAAA,WAAA,GAAA;AACS,QAAA,IAAM,CAAA,MAAA,GAAa,EAAE;AACrB,QAAA,IAAU,CAAA,UAAA,GAIX,EAAE;;AACT;;
|
|
1
|
+
{"version":3,"file":"index.js","sources":["src/components/category-filter/filter-state.ts","src/components/toast/toast-utils.ts","src/components/utils/modal/loading.ts"],"sourcesContent":["/*\n * SPDX-FileCopyrightText: 2023 Siemens AG\n *\n * SPDX-License-Identifier: MIT\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { LogicalFilterOperator } from './logical-filter-operator';\nexport class FilterState {\n public tokens: string[] = [];\n public categories: {\n id: string;\n value: string;\n operator: LogicalFilterOperator;\n }[] = [];\n}\n","/*\n * SPDX-FileCopyrightText: 2024 Siemens AG\n *\n * SPDX-License-Identifier: MIT\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nimport type { ShowToastResult } from './toast-container.types';\nexport type ToastType = 'info' | 'success' | 'error' | 'warning';\nexport type ToastPosition = 'bottom-right' | 'top-right';\n\nexport interface ToastConfig {\n /**\n * Title of the toast\n */\n title?: string;\n /**\n * Message of the toast\n */\n message?: string | HTMLElement;\n /**\n * Action element that is displayed below the toast message/title\n */\n action?: HTMLElement;\n /**\n * Type of the toast\n */\n type?: ToastType;\n /**\n * Controls whether the toast closes automatically after a delay\n */\n autoClose?: boolean;\n /**\n * Sets the delay for autoClose in milliseconds\n */\n autoCloseDelay?: number;\n /**\n * Icon that is displayed with the toast\n */\n icon?: string;\n /**\n * Color of the icon\n */\n iconColor?: string;\n /**\n * Allows to hide the icon in the toast\n */\n hideIcon?: boolean;\n}\n\nexport function getToastContainer() {\n const containerList = Array.from(\n document.querySelectorAll('ix-toast-container')\n );\n const [container] = containerList;\n if (containerList.length > 1) {\n console.warn(\n 'Multiple toast containers were found. Only the first one will be used.'\n );\n return container;\n }\n if (!container) {\n const toastContainer = document.createElement('ix-toast-container');\n document.body.appendChild(toastContainer);\n\n return toastContainer;\n }\n return container;\n}\n\nexport function setToastPosition(position: ToastPosition) {\n const container = getToastContainer();\n container.setAttribute('position', position);\n}\n\nfunction toast(config: ToastConfig): Promise<ShowToastResult> {\n const container = getToastContainer();\n return container.showToast(config);\n}\n\ntoast.info = (config: ToastConfig) => {\n return toast({\n ...config,\n type: 'info',\n });\n};\n\ntoast.error = (config: ToastConfig) => {\n return toast({\n ...config,\n type: 'error',\n });\n};\n\ntoast.success = (config: ToastConfig) => {\n return toast({\n ...config,\n type: 'success',\n });\n};\n\ntoast.warning = (config: ToastConfig) => {\n return toast({\n ...config,\n type: 'warning',\n });\n};\n\nexport { toast };\n","/*\n * SPDX-FileCopyrightText: 2023 Siemens AG\n *\n * SPDX-License-Identifier: MIT\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport Animation from '../animation';\nimport { getCoreDelegate } from '../delegate';\n\nexport type ModalLoadingContext = {\n update: (text: string) => string;\n finish: (text?: string, timeout?: number) => void;\n};\n\nexport function showModalLoading(message: string) {\n const modal = document.createElement('ix-modal');\n modal.disableEscapeClose = true;\n\n const loading = document.createElement('ix-modal-loading');\n loading.innerText = message;\n modal.appendChild(loading);\n\n getCoreDelegate().attachView(modal);\n modal.showModal();\n\n return {\n update: (text: string) => (loading.innerHTML = text),\n finish: (text?: string, timeout: number = 250) => {\n if (text !== undefined) {\n loading.innerText = text;\n } else {\n timeout = 0;\n }\n setTimeout(() => {\n modal.closeModal(null);\n setTimeout(\n async () => await getCoreDelegate().removeView(modal),\n Animation.mediumTime\n );\n }, timeout);\n },\n };\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -18,6 +18,10 @@ const IxActionCard = class {
|
|
|
18
18
|
* Card selection
|
|
19
19
|
*/
|
|
20
20
|
this.selected = false;
|
|
21
|
+
/**
|
|
22
|
+
* If true, disables hover and active styles and changes cursor to default
|
|
23
|
+
*/
|
|
24
|
+
this.passive = false;
|
|
21
25
|
}
|
|
22
26
|
getSubheadingTextColor() {
|
|
23
27
|
return this.variant === 'outline' || this.variant === 'filled'
|
|
@@ -28,7 +32,7 @@ const IxActionCard = class {
|
|
|
28
32
|
const ariaLabelledBy = !this.ariaLabelCard && this.heading
|
|
29
33
|
? 'ix-action-card-heading'
|
|
30
34
|
: undefined;
|
|
31
|
-
return (h(Host, { key: '
|
|
35
|
+
return (h(Host, { key: '600ad1913e671fb47ec9da8f66e984bbde498fae' }, h("ix-card", { key: '1a8168a17a643908126f841e9cdd6d0055a62399', selected: this.selected, variant: this.variant, passive: this.passive, class: 'pointer', "aria-label": this.ariaLabelCard, "aria-labelledby": ariaLabelledBy, role: ariaLabelledBy ? 'group' : undefined }, h("ix-card-content", { key: 'c138b94b131af478fee65244f32b91cdf78b31df' }, this.icon ? (h("ix-icon", { class: 'icon', name: this.icon, size: "32", "aria-label": this.ariaLabelIcon || getFallbackLabelFromIconName(this.icon) })) : null, h("div", { key: 'eb0252c628c75709fddae387a3b4a7abbf7c3df0' }, this.heading ? (h("ix-typography", { id: "ix-action-card-heading", "aria-hidden": a11yBoolean(!ariaLabelledBy), format: "h4" }, this.heading)) : null, this.subheading ? (h("ix-typography", { format: "h5", "text-color": this.getSubheadingTextColor() }, this.subheading)) : null, h("slot", { key: 'f47fd515fc5b8f22344dc83b808e527116238618' }))))));
|
|
32
36
|
}
|
|
33
37
|
};
|
|
34
38
|
IxActionCard.style = actionCardCss;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ix-action-card.entry.js","sources":["src/components/action-card/action-card.scss?tag=ix-action-card&encapsulation=shadow","src/components/action-card/action-card.tsx"],"sourcesContent":["/*\n * SPDX-FileCopyrightText: 2023 Siemens AG\n *\n * SPDX-License-Identifier: MIT\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n@use 'mixins/shadow-dom/component';\n\n:host {\n display: block;\n position: relative;\n min-width: 13.375rem;\n width: 13.375rem;\n height: 7.5rem;\n min-height: 7.5rem;\n cursor: pointer;\n\n margin: 0.25rem 0;\n\n @include component.ix-component;\n\n ix-card {\n width: 100%;\n height: 100%;\n }\n}\n","/*\n * SPDX-FileCopyrightText: 2023 Siemens AG\n *\n * SPDX-License-Identifier: MIT\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { Component, h, Host, Prop } from '@stencil/core';\nimport type { ActionCardVariant } from './action-card.types';\nimport { a11yBoolean, getFallbackLabelFromIconName } from '../utils/a11y';\n\n@Component({\n tag: 'ix-action-card',\n styleUrl: 'action-card.scss',\n shadow: true,\n})\nexport class IxActionCard {\n /**\n * Card variant\n */\n @Prop() variant: ActionCardVariant = 'outline';\n\n /**\n * Card icon\n */\n @Prop() icon: string | undefined = undefined;\n\n /**\n * ARIA label for the icon\n *\n * @since 3.2.0\n */\n @Prop() ariaLabelIcon?: string;\n\n /**\n * Card heading\n */\n @Prop() heading?: string;\n\n /**\n * Card subheading\n */\n @Prop() subheading?: string;\n\n /**\n * Card selection\n */\n @Prop() selected = false;\n\n /**\n * ARIA label for the card\n *\n * @since 3.2.0\n */\n @Prop() ariaLabelCard?: string;\n\n private getSubheadingTextColor() {\n return this.variant === 'outline' || this.variant === 'filled'\n ? 'soft'\n : undefined;\n }\n\n render() {\n const ariaLabelledBy =\n !this.ariaLabelCard && this.heading\n ? 'ix-action-card-heading'\n : undefined;\n\n return (\n <Host>\n <ix-card\n selected={this.selected}\n variant={this.variant}\n class={'pointer'}\n aria-label={this.ariaLabelCard}\n aria-labelledby={ariaLabelledBy}\n role={ariaLabelledBy ? 'group' : undefined}\n >\n <ix-card-content>\n {this.icon ? (\n <ix-icon\n class={'icon'}\n name={this.icon}\n size=\"32\"\n aria-label={\n this.ariaLabelIcon || getFallbackLabelFromIconName(this.icon)\n }\n ></ix-icon>\n ) : null}\n <div>\n {this.heading ? (\n <ix-typography\n id=\"ix-action-card-heading\"\n aria-hidden={a11yBoolean(!ariaLabelledBy)}\n format=\"h4\"\n >\n {this.heading}\n </ix-typography>\n ) : null}\n {this.subheading ? (\n <ix-typography\n format=\"h5\"\n text-color={this.getSubheadingTextColor()}\n >\n {this.subheading}\n </ix-typography>\n ) : null}\n <slot></slot>\n </div>\n </ix-card-content>\n </ix-card>\n </Host>\n );\n }\n}\n"],"names":[],"mappings":";;;AAAA,MAAM,aAAa,GAAG,q8BAAq8B;;MCkB98B,YAAY,GAAA,MAAA;AALzB,IAAA,WAAA,CAAA,OAAA,EAAA;;AAME;;AAEG;AACK,QAAA,IAAO,CAAA,OAAA,GAAsB,SAAS;AAE9C;;AAEG;AACK,QAAA,IAAI,CAAA,IAAA,GAAuB,SAAS;AAmB5C;;AAEG;AACK,QAAA,IAAQ,CAAA,QAAA,GAAG,KAAK;
|
|
1
|
+
{"version":3,"file":"ix-action-card.entry.js","sources":["src/components/action-card/action-card.scss?tag=ix-action-card&encapsulation=shadow","src/components/action-card/action-card.tsx"],"sourcesContent":["/*\n * SPDX-FileCopyrightText: 2023 Siemens AG\n *\n * SPDX-License-Identifier: MIT\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n@use 'mixins/shadow-dom/component';\n\n:host {\n display: block;\n position: relative;\n min-width: 13.375rem;\n width: 13.375rem;\n height: 7.5rem;\n min-height: 7.5rem;\n cursor: pointer;\n\n margin: 0.25rem 0;\n\n @include component.ix-component;\n\n ix-card {\n width: 100%;\n height: 100%;\n }\n}\n","/*\n * SPDX-FileCopyrightText: 2023 Siemens AG\n *\n * SPDX-License-Identifier: MIT\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { Component, h, Host, Prop } from '@stencil/core';\nimport type { ActionCardVariant } from './action-card.types';\nimport { a11yBoolean, getFallbackLabelFromIconName } from '../utils/a11y';\n\n@Component({\n tag: 'ix-action-card',\n styleUrl: 'action-card.scss',\n shadow: true,\n})\nexport class IxActionCard {\n /**\n * Card variant\n */\n @Prop() variant: ActionCardVariant = 'outline';\n\n /**\n * Card icon\n */\n @Prop() icon: string | undefined = undefined;\n\n /**\n * ARIA label for the icon\n *\n * @since 3.2.0\n */\n @Prop() ariaLabelIcon?: string;\n\n /**\n * Card heading\n */\n @Prop() heading?: string;\n\n /**\n * Card subheading\n */\n @Prop() subheading?: string;\n\n /**\n * Card selection\n */\n @Prop() selected = false;\n\n /**\n * ARIA label for the card\n *\n * @since 3.2.0\n */\n @Prop() ariaLabelCard?: string;\n\n /**\n * If true, disables hover and active styles and changes cursor to default\n */\n @Prop() passive: boolean = false;\n\n private getSubheadingTextColor() {\n return this.variant === 'outline' || this.variant === 'filled'\n ? 'soft'\n : undefined;\n }\n\n render() {\n const ariaLabelledBy =\n !this.ariaLabelCard && this.heading\n ? 'ix-action-card-heading'\n : undefined;\n\n return (\n <Host>\n <ix-card\n selected={this.selected}\n variant={this.variant}\n passive={this.passive}\n class={'pointer'}\n aria-label={this.ariaLabelCard}\n aria-labelledby={ariaLabelledBy}\n role={ariaLabelledBy ? 'group' : undefined}\n >\n <ix-card-content>\n {this.icon ? (\n <ix-icon\n class={'icon'}\n name={this.icon}\n size=\"32\"\n aria-label={\n this.ariaLabelIcon || getFallbackLabelFromIconName(this.icon)\n }\n ></ix-icon>\n ) : null}\n <div>\n {this.heading ? (\n <ix-typography\n id=\"ix-action-card-heading\"\n aria-hidden={a11yBoolean(!ariaLabelledBy)}\n format=\"h4\"\n >\n {this.heading}\n </ix-typography>\n ) : null}\n {this.subheading ? (\n <ix-typography\n format=\"h5\"\n text-color={this.getSubheadingTextColor()}\n >\n {this.subheading}\n </ix-typography>\n ) : null}\n <slot></slot>\n </div>\n </ix-card-content>\n </ix-card>\n </Host>\n );\n }\n}\n"],"names":[],"mappings":";;;AAAA,MAAM,aAAa,GAAG,q8BAAq8B;;MCkB98B,YAAY,GAAA,MAAA;AALzB,IAAA,WAAA,CAAA,OAAA,EAAA;;AAME;;AAEG;AACK,QAAA,IAAO,CAAA,OAAA,GAAsB,SAAS;AAE9C;;AAEG;AACK,QAAA,IAAI,CAAA,IAAA,GAAuB,SAAS;AAmB5C;;AAEG;AACK,QAAA,IAAQ,CAAA,QAAA,GAAG,KAAK;AASxB;;AAEG;AACK,QAAA,IAAO,CAAA,OAAA,GAAY,KAAK;AA6DjC;IA3DS,sBAAsB,GAAA;QAC5B,OAAO,IAAI,CAAC,OAAO,KAAK,SAAS,IAAI,IAAI,CAAC,OAAO,KAAK;AACpD,cAAE;cACA,SAAS;;IAGf,MAAM,GAAA;QACJ,MAAM,cAAc,GAClB,CAAC,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC;AAC1B,cAAE;cACA,SAAS;QAEf,QACE,EAAC,IAAI,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,EACH,CAAA,CAAA,SAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EACE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,OAAO,EAAE,IAAI,CAAC,OAAO,EACrB,OAAO,EAAE,IAAI,CAAC,OAAO,EACrB,KAAK,EAAE,SAAS,gBACJ,IAAI,CAAC,aAAa,EAAA,iBAAA,EACb,cAAc,EAC/B,IAAI,EAAE,cAAc,GAAG,OAAO,GAAG,SAAS,EAAA,EAE1C,CAAA,CAAA,iBAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,EACG,IAAI,CAAC,IAAI,IACR,CACE,CAAA,SAAA,EAAA,EAAA,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,IAAI,EAAC,IAAI,gBAEP,IAAI,CAAC,aAAa,IAAI,4BAA4B,CAAC,IAAI,CAAC,IAAI,CAAC,EAEtD,CAAA,IACT,IAAI,EACR,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,EACG,IAAI,CAAC,OAAO,IACX,CACE,CAAA,eAAA,EAAA,EAAA,EAAE,EAAC,wBAAwB,EACd,aAAA,EAAA,WAAW,CAAC,CAAC,cAAc,CAAC,EACzC,MAAM,EAAC,IAAI,EAEV,EAAA,IAAI,CAAC,OAAO,CACC,IACd,IAAI,EACP,IAAI,CAAC,UAAU,IACd,CACE,CAAA,eAAA,EAAA,EAAA,MAAM,EAAC,IAAI,EACC,YAAA,EAAA,IAAI,CAAC,sBAAsB,EAAE,EAExC,EAAA,IAAI,CAAC,UAAU,CACF,IACd,IAAI,EACR,CAAA,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,CAAa,CACT,CACU,CACV,CACL;;;;;;;"}
|
|
@@ -3,7 +3,7 @@ import { u as useContextProvider, A as ApplicationLayoutContext } from './contex
|
|
|
3
3
|
import { a as applicationLayoutService } from './service-Da0kv8hS.js';
|
|
4
4
|
import { m as menuController } from './menu-service-BMvtckRa.js';
|
|
5
5
|
import { h as hasSlottedElements } from './shadow-dom-i60z1FJC.js';
|
|
6
|
-
import { t as themeSwitcher } from './theme-switcher-
|
|
6
|
+
import { t as themeSwitcher } from './theme-switcher-EbjilqRl.js';
|
|
7
7
|
import './typed-event-BdCnOrqW.js';
|
|
8
8
|
import './breakpoints-D_Hmobxf.js';
|
|
9
9
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ix-card.ix-card-content.entry.js","sources":["src/components/card/card.scss?tag=ix-card&encapsulation=shadow","src/components/card/card.tsx","src/components/card-content/card-content.scss?tag=ix-card-content&encapsulation=shadow","src/components/card-content/card-content.tsx"],"sourcesContent":["/*\n * SPDX-FileCopyrightText: 2024 Siemens AG\n *\n * SPDX-License-Identifier: MIT\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n@use 'mixins/shadow-dom/component';\n@use './card-vars' as card-vars;\n\n:host {\n display: flex;\n position: relative;\n flex-direction: column;\n align-items: flex-start;\n align-self: flex-start;\n overflow: hidden;\n cursor: pointer;\n\n width: 20rem;\n\n border: var(--theme-card--border-width) solid\n var(--ix-card-border-color, var(--theme-color-soft-bdr));\n border-radius: var(--theme-card--border-radius);\n\n @include component.ix-component;\n\n .card-content {\n display: block;\n position: relative;\n flex-shrink: 0;\n flex-grow: 1;\n width: 100%;\n height: calc(100% - 2rem);\n background-color: var(--ix-card-background, transparent);\n border-top-left-radius: var(--theme-card--border-radius);\n border-top-right-radius: var(--theme-card--border-radius);\n overflow: hidden;\n }\n\n .card-content-wrapper {\n height: 100%;\n width: 100%;\n box-sizing: border-box;\n }\n\n .card-footer {\n display: flex;\n position: relative;\n width: 100%;\n }\n}\n\n@mixin accordionChevronColorPrimary {\n ::slotted(ix-card-accordion) {\n color: var(--theme-color-std-text);\n }\n}\n\n@mixin card-variants($variant) {\n :host(.card-#{$variant}) {\n --ix-card-background: var(--theme-card-#{$variant}--background);\n --ix-card-border-color: var(--theme-card-#{$variant}--border-color);\n\n color: var(--theme-card-#{$variant}--color);\n\n @if $variant == outline {\n @include accordionChevronColorPrimary;\n }\n\n @if $variant == filled {\n @include accordionChevronColorPrimary;\n }\n }\n}\n\n@each $variant in card-vars.$ix-card-variants {\n @include card-variants($variant);\n}\n\n:host(:not(.card-insight, .card-outline)) {\n --ix-card-border-color: transparent;\n}\n\n@mixin card-variants-active($variant) {\n :host(.card-#{$variant}:active) {\n --ix-card-border-color: var(--theme-card-#{$variant}--border-color--active);\n --ix-card-background: var(--theme-card-#{$variant}--background--active);\n }\n}\n\n@mixin card-variants-hover($variant) {\n :host(.card-#{$variant}:hover) {\n --ix-card-border-color: var(--theme-card-#{$variant}--border-color--hover);\n --ix-card-background: var(--theme-card-#{$variant}--background--hover);\n }\n}\n\n@mixin card-variants-selected($variant) {\n :host(.selected.card-#{$variant}) {\n --ix-card-border-color: var(\n --theme-card-#{$variant}--border-color--selected\n );\n --ix-card-background: var(--theme-card-#{$variant}--background--selected);\n }\n}\n\n@each $variant in card-vars.$ix-card-variants {\n @include card-variants-hover($variant);\n @include card-variants-active($variant);\n @include card-variants-selected($variant);\n}\n","import { Component, Element, h, Host, Prop } from '@stencil/core';\nimport type { CardVariant } from './card.types';\n\n@Component({\n tag: 'ix-card',\n styleUrl: 'card.scss',\n shadow: true,\n})\nexport class Card {\n @Element() hostElement!: HTMLIxCardElement;\n\n /**\n * Card variant\n */\n @Prop() variant: CardVariant = 'outline';\n\n /**\n * Show card in selected state\n */\n @Prop() selected: boolean = false;\n\n render() {\n return (\n <Host\n class={{\n selected: this.selected,\n [`card-${this.variant}`]: true,\n }}\n >\n <div class=\"card-content\">\n <slot></slot>\n </div>\n <div class=\"card-footer\">\n <slot name=\"card-accordion\"></slot>\n </div>\n </Host>\n );\n }\n}\n","/*\n * SPDX-FileCopyrightText: 2023 Siemens AG\n *\n * SPDX-License-Identifier: MIT\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n@use 'mixins/shadow-dom/component';\n\n:host {\n display: flex;\n padding: 1rem;\n height: 100%;\n overflow: hidden;\n\n @include component.ix-component;\n\n .content-wrapper {\n box-sizing: border-box;\n height: 100%;\n width: 100%;\n overflow: hidden;\n gap: 0.5rem;\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n }\n}\n","import { Component, h, Host } from '@stencil/core';\n\n@Component({\n tag: 'ix-card-content',\n styleUrl: 'card-content.scss',\n shadow: true,\n})\nexport class CardContent {\n render() {\n return (\n <Host>\n <div class=\"content-wrapper\">\n <slot></slot>\n </div>\n </Host>\n );\n }\n}\n"],"names":[],"mappings":";;AAAA,MAAM,OAAO,GAAG,
|
|
1
|
+
{"version":3,"file":"ix-card.ix-card-content.entry.js","sources":["src/components/card/card.scss?tag=ix-card&encapsulation=shadow","src/components/card/card.tsx","src/components/card-content/card-content.scss?tag=ix-card-content&encapsulation=shadow","src/components/card-content/card-content.tsx"],"sourcesContent":["/*\n * SPDX-FileCopyrightText: 2024 Siemens AG\n *\n * SPDX-License-Identifier: MIT\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n@use 'mixins/shadow-dom/component';\n@use './card-vars' as card-vars;\n\n:host {\n display: flex;\n position: relative;\n flex-direction: column;\n align-items: flex-start;\n align-self: flex-start;\n overflow: hidden;\n cursor: pointer;\n\n width: 20rem;\n\n border: var(--theme-card--border-width) solid\n var(--ix-card-border-color, var(--theme-color-soft-bdr));\n border-radius: var(--theme-card--border-radius);\n\n @include component.ix-component;\n\n .card-content {\n display: block;\n position: relative;\n flex-shrink: 0;\n flex-grow: 1;\n width: 100%;\n height: calc(100% - 2rem);\n background-color: var(--ix-card-background, transparent);\n border-top-left-radius: var(--theme-card--border-radius);\n border-top-right-radius: var(--theme-card--border-radius);\n overflow: hidden;\n }\n\n .card-content-wrapper {\n height: 100%;\n width: 100%;\n box-sizing: border-box;\n }\n\n .card-footer {\n display: flex;\n position: relative;\n width: 100%;\n }\n}\n\n@mixin accordionChevronColorPrimary {\n ::slotted(ix-card-accordion) {\n color: var(--theme-color-std-text);\n }\n}\n\n@mixin card-variants($variant) {\n :host(.card-#{$variant}) {\n --ix-card-background: var(--theme-card-#{$variant}--background);\n --ix-card-border-color: var(--theme-card-#{$variant}--border-color);\n\n color: var(--theme-card-#{$variant}--color);\n\n @if $variant == outline {\n @include accordionChevronColorPrimary;\n }\n\n @if $variant == filled {\n @include accordionChevronColorPrimary;\n }\n }\n}\n\n@each $variant in card-vars.$ix-card-variants {\n @include card-variants($variant);\n}\n\n:host(:not(.card-insight, .card-outline)) {\n --ix-card-border-color: transparent;\n}\n\n@mixin card-variants-active($variant) {\n :host(.card-#{$variant}:active) {\n --ix-card-border-color: var(--theme-card-#{$variant}--border-color--active);\n --ix-card-background: var(--theme-card-#{$variant}--background--active);\n }\n}\n\n@mixin card-variants-hover($variant) {\n :host(.card-#{$variant}:hover) {\n --ix-card-border-color: var(--theme-card-#{$variant}--border-color--hover);\n --ix-card-background: var(--theme-card-#{$variant}--background--hover);\n }\n}\n\n@mixin card-variants-selected($variant) {\n :host(.selected.card-#{$variant}) {\n --ix-card-border-color: var(\n --theme-card-#{$variant}--border-color--selected\n );\n --ix-card-background: var(--theme-card-#{$variant}--background--selected);\n }\n}\n\n@each $variant in card-vars.$ix-card-variants {\n @include card-variants-hover($variant);\n @include card-variants-active($variant);\n @include card-variants-selected($variant);\n}\n\n:host(.passive) {\n cursor: default;\n}\n\n@each $variant in card-vars.$ix-card-variants {\n :host(.passive.card-#{$variant}) {\n --ix-card-background: var(--theme-card-#{$variant}--background);\n --ix-card-border-color: var(--theme-card-#{$variant}--border-color);\n }\n}\n","import { Component, Element, h, Host, Prop } from '@stencil/core';\nimport type { CardVariant } from './card.types';\n\n@Component({\n tag: 'ix-card',\n styleUrl: 'card.scss',\n shadow: true,\n})\nexport class Card {\n @Element() hostElement!: HTMLIxCardElement;\n\n /**\n * Card variant\n */\n @Prop() variant: CardVariant = 'outline';\n\n /**\n * Show card in selected state\n */\n @Prop() selected: boolean = false;\n\n /**\n * If true, disables hover and active styles and changes cursor to default\n */\n @Prop() passive: boolean = false;\n\n render() {\n return (\n <Host\n class={{\n selected: this.selected,\n [`card-${this.variant}`]: true,\n passive: this.passive,\n }}\n >\n <div class=\"card-content\">\n <slot></slot>\n </div>\n <div class=\"card-footer\">\n <slot name=\"card-accordion\"></slot>\n </div>\n </Host>\n );\n }\n}\n","/*\n * SPDX-FileCopyrightText: 2023 Siemens AG\n *\n * SPDX-License-Identifier: MIT\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n@use 'mixins/shadow-dom/component';\n\n:host {\n display: flex;\n padding: 1rem;\n height: 100%;\n overflow: hidden;\n\n @include component.ix-component;\n\n .content-wrapper {\n box-sizing: border-box;\n height: 100%;\n width: 100%;\n overflow: hidden;\n gap: 0.5rem;\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n }\n}\n","import { Component, h, Host } from '@stencil/core';\n\n@Component({\n tag: 'ix-card-content',\n styleUrl: 'card-content.scss',\n shadow: true,\n})\nexport class CardContent {\n render() {\n return (\n <Host>\n <div class=\"content-wrapper\">\n <slot></slot>\n </div>\n </Host>\n );\n }\n}\n"],"names":[],"mappings":";;AAAA,MAAM,OAAO,GAAG,6lSAA6lS;;MCQhmS,IAAI,GAAA,MAAA;AALjB,IAAA,WAAA,CAAA,OAAA,EAAA;;AAQE;;AAEG;AACK,QAAA,IAAO,CAAA,OAAA,GAAgB,SAAS;AAExC;;AAEG;AACK,QAAA,IAAQ,CAAA,QAAA,GAAY,KAAK;AAEjC;;AAEG;AACK,QAAA,IAAO,CAAA,OAAA,GAAY,KAAK;AAoBjC;IAlBC,MAAM,GAAA;QACJ,QACE,CAAA,CAAC,IAAI,EAAA,EAAA,GAAA,EAAA,0CAAA,EACH,KAAK,EAAE;gBACL,QAAQ,EAAE,IAAI,CAAC,QAAQ;AACvB,gBAAA,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAE,CAAA,GAAG,IAAI;gBAC9B,OAAO,EAAE,IAAI,CAAC,OAAO;aACtB,EAAA,EAED,CAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,cAAc,EAAA,EACvB,CAAA,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,CAAa,CACT,EACN,CAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,aAAa,EAAA,EACtB,CAAA,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAM,IAAI,EAAC,gBAAgB,GAAQ,CAC/B,CACD;;;;;;ACzCb,MAAM,cAAc,GAAG,2+BAA2+B;;MCOr/B,WAAW,GAAA,MAAA;;;;IACtB,MAAM,GAAA;AACJ,QAAA,QACE,EAAC,IAAI,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,EACH,CAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,iBAAiB,EAAA,EAC1B,CAAa,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,CAAA,CACT,CACD;;;;;;;"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { r as registerInstance, h, H as Host, g as getElement } from './index-CtoreFVF.js';
|
|
2
2
|
|
|
3
|
-
const cardCss = ":host{display:flex;position:relative;flex-direction:column;align-items:flex-start;align-self:flex-start;overflow:hidden;cursor:pointer;width:20rem;border:var(--theme-card--border-width) solid var(--ix-card-border-color, var(--theme-color-soft-bdr));border-radius:var(--theme-card--border-radius)}:host *,:host *::after,:host *::before{box-sizing:border-box}:host ::-webkit-scrollbar-button{display:none}@-moz-document url-prefix(){:host *{scrollbar-color:var(--theme-scrollbar-thumb--background) var(--theme-scrollbar-track--background);scrollbar-width:thin}}:host{}:host ::-webkit-scrollbar{width:0.5rem;height:0.5rem}:host{}:host ::-webkit-scrollbar-track{border-radius:5px;background:var(--theme-scrollbar-track--background)}:host ::-webkit-scrollbar-track:hover{background:var(--theme-scrollbar-track--background--hover)}:host{}:host ::-webkit-scrollbar-thumb{border-radius:5px;background:var(--theme-scrollbar-thumb--background)}:host{}:host ::-webkit-scrollbar-thumb:hover{background:var(--theme-scrollbar-thumb--background--hover)}:host ::-webkit-scrollbar-corner{display:none}:host .card-content{display:block;position:relative;flex-shrink:0;flex-grow:1;width:100%;height:calc(100% - 2rem);background-color:var(--ix-card-background, transparent);border-top-left-radius:var(--theme-card--border-radius);border-top-right-radius:var(--theme-card--border-radius);overflow:hidden}:host .card-content-wrapper{height:100%;width:100%;box-sizing:border-box}:host .card-footer{display:flex;position:relative;width:100%}:host(.card-outline){--ix-card-background:var(--theme-card-outline--background);--ix-card-border-color:var(--theme-card-outline--border-color);color:var(--theme-card-outline--color)}:host(.card-outline) ::slotted(ix-card-accordion){color:var(--theme-color-std-text)}:host(.card-filled){--ix-card-background:var(--theme-card-filled--background);--ix-card-border-color:var(--theme-card-filled--border-color);color:var(--theme-card-filled--color)}:host(.card-filled) ::slotted(ix-card-accordion){color:var(--theme-color-std-text)}:host(.card-alarm){--ix-card-background:var(--theme-card-alarm--background);--ix-card-border-color:var(--theme-card-alarm--border-color);color:var(--theme-card-alarm--color)}:host(.card-critical){--ix-card-background:var(--theme-card-critical--background);--ix-card-border-color:var(--theme-card-critical--border-color);color:var(--theme-card-critical--color)}:host(.card-warning){--ix-card-background:var(--theme-card-warning--background);--ix-card-border-color:var(--theme-card-warning--border-color);color:var(--theme-card-warning--color)}:host(.card-success){--ix-card-background:var(--theme-card-success--background);--ix-card-border-color:var(--theme-card-success--border-color);color:var(--theme-card-success--color)}:host(.card-info){--ix-card-background:var(--theme-card-info--background);--ix-card-border-color:var(--theme-card-info--border-color);color:var(--theme-card-info--color)}:host(.card-neutral){--ix-card-background:var(--theme-card-neutral--background);--ix-card-border-color:var(--theme-card-neutral--border-color);color:var(--theme-card-neutral--color)}:host(.card-primary){--ix-card-background:var(--theme-card-primary--background);--ix-card-border-color:var(--theme-card-primary--border-color);color:var(--theme-card-primary--color)}:host(:not(.card-insight,.card-outline)){--ix-card-border-color:transparent}:host(.card-outline:hover){--ix-card-border-color:var(--theme-card-outline--border-color--hover);--ix-card-background:var(--theme-card-outline--background--hover)}:host(.card-outline:active){--ix-card-border-color:var(--theme-card-outline--border-color--active);--ix-card-background:var(--theme-card-outline--background--active)}:host(.selected.card-outline){--ix-card-border-color:var(\n --theme-card-outline--border-color--selected\n );--ix-card-background:var(--theme-card-outline--background--selected)}:host(.card-filled:hover){--ix-card-border-color:var(--theme-card-filled--border-color--hover);--ix-card-background:var(--theme-card-filled--background--hover)}:host(.card-filled:active){--ix-card-border-color:var(--theme-card-filled--border-color--active);--ix-card-background:var(--theme-card-filled--background--active)}:host(.selected.card-filled){--ix-card-border-color:var(\n --theme-card-filled--border-color--selected\n );--ix-card-background:var(--theme-card-filled--background--selected)}:host(.card-alarm:hover){--ix-card-border-color:var(--theme-card-alarm--border-color--hover);--ix-card-background:var(--theme-card-alarm--background--hover)}:host(.card-alarm:active){--ix-card-border-color:var(--theme-card-alarm--border-color--active);--ix-card-background:var(--theme-card-alarm--background--active)}:host(.selected.card-alarm){--ix-card-border-color:var(\n --theme-card-alarm--border-color--selected\n );--ix-card-background:var(--theme-card-alarm--background--selected)}:host(.card-critical:hover){--ix-card-border-color:var(--theme-card-critical--border-color--hover);--ix-card-background:var(--theme-card-critical--background--hover)}:host(.card-critical:active){--ix-card-border-color:var(--theme-card-critical--border-color--active);--ix-card-background:var(--theme-card-critical--background--active)}:host(.selected.card-critical){--ix-card-border-color:var(\n --theme-card-critical--border-color--selected\n );--ix-card-background:var(--theme-card-critical--background--selected)}:host(.card-warning:hover){--ix-card-border-color:var(--theme-card-warning--border-color--hover);--ix-card-background:var(--theme-card-warning--background--hover)}:host(.card-warning:active){--ix-card-border-color:var(--theme-card-warning--border-color--active);--ix-card-background:var(--theme-card-warning--background--active)}:host(.selected.card-warning){--ix-card-border-color:var(\n --theme-card-warning--border-color--selected\n );--ix-card-background:var(--theme-card-warning--background--selected)}:host(.card-success:hover){--ix-card-border-color:var(--theme-card-success--border-color--hover);--ix-card-background:var(--theme-card-success--background--hover)}:host(.card-success:active){--ix-card-border-color:var(--theme-card-success--border-color--active);--ix-card-background:var(--theme-card-success--background--active)}:host(.selected.card-success){--ix-card-border-color:var(\n --theme-card-success--border-color--selected\n );--ix-card-background:var(--theme-card-success--background--selected)}:host(.card-info:hover){--ix-card-border-color:var(--theme-card-info--border-color--hover);--ix-card-background:var(--theme-card-info--background--hover)}:host(.card-info:active){--ix-card-border-color:var(--theme-card-info--border-color--active);--ix-card-background:var(--theme-card-info--background--active)}:host(.selected.card-info){--ix-card-border-color:var(\n --theme-card-info--border-color--selected\n );--ix-card-background:var(--theme-card-info--background--selected)}:host(.card-neutral:hover){--ix-card-border-color:var(--theme-card-neutral--border-color--hover);--ix-card-background:var(--theme-card-neutral--background--hover)}:host(.card-neutral:active){--ix-card-border-color:var(--theme-card-neutral--border-color--active);--ix-card-background:var(--theme-card-neutral--background--active)}:host(.selected.card-neutral){--ix-card-border-color:var(\n --theme-card-neutral--border-color--selected\n );--ix-card-background:var(--theme-card-neutral--background--selected)}:host(.card-primary:hover){--ix-card-border-color:var(--theme-card-primary--border-color--hover);--ix-card-background:var(--theme-card-primary--background--hover)}:host(.card-primary:active){--ix-card-border-color:var(--theme-card-primary--border-color--active);--ix-card-background:var(--theme-card-primary--background--active)}:host(.selected.card-primary){--ix-card-border-color:var(\n --theme-card-primary--border-color--selected\n );--ix-card-background:var(--theme-card-primary--background--selected)}";
|
|
3
|
+
const cardCss = ":host{display:flex;position:relative;flex-direction:column;align-items:flex-start;align-self:flex-start;overflow:hidden;cursor:pointer;width:20rem;border:var(--theme-card--border-width) solid var(--ix-card-border-color, var(--theme-color-soft-bdr));border-radius:var(--theme-card--border-radius)}:host *,:host *::after,:host *::before{box-sizing:border-box}:host ::-webkit-scrollbar-button{display:none}@-moz-document url-prefix(){:host *{scrollbar-color:var(--theme-scrollbar-thumb--background) var(--theme-scrollbar-track--background);scrollbar-width:thin}}:host{}:host ::-webkit-scrollbar{width:0.5rem;height:0.5rem}:host{}:host ::-webkit-scrollbar-track{border-radius:5px;background:var(--theme-scrollbar-track--background)}:host ::-webkit-scrollbar-track:hover{background:var(--theme-scrollbar-track--background--hover)}:host{}:host ::-webkit-scrollbar-thumb{border-radius:5px;background:var(--theme-scrollbar-thumb--background)}:host{}:host ::-webkit-scrollbar-thumb:hover{background:var(--theme-scrollbar-thumb--background--hover)}:host ::-webkit-scrollbar-corner{display:none}:host .card-content{display:block;position:relative;flex-shrink:0;flex-grow:1;width:100%;height:calc(100% - 2rem);background-color:var(--ix-card-background, transparent);border-top-left-radius:var(--theme-card--border-radius);border-top-right-radius:var(--theme-card--border-radius);overflow:hidden}:host .card-content-wrapper{height:100%;width:100%;box-sizing:border-box}:host .card-footer{display:flex;position:relative;width:100%}:host(.card-outline){--ix-card-background:var(--theme-card-outline--background);--ix-card-border-color:var(--theme-card-outline--border-color);color:var(--theme-card-outline--color)}:host(.card-outline) ::slotted(ix-card-accordion){color:var(--theme-color-std-text)}:host(.card-filled){--ix-card-background:var(--theme-card-filled--background);--ix-card-border-color:var(--theme-card-filled--border-color);color:var(--theme-card-filled--color)}:host(.card-filled) ::slotted(ix-card-accordion){color:var(--theme-color-std-text)}:host(.card-alarm){--ix-card-background:var(--theme-card-alarm--background);--ix-card-border-color:var(--theme-card-alarm--border-color);color:var(--theme-card-alarm--color)}:host(.card-critical){--ix-card-background:var(--theme-card-critical--background);--ix-card-border-color:var(--theme-card-critical--border-color);color:var(--theme-card-critical--color)}:host(.card-warning){--ix-card-background:var(--theme-card-warning--background);--ix-card-border-color:var(--theme-card-warning--border-color);color:var(--theme-card-warning--color)}:host(.card-success){--ix-card-background:var(--theme-card-success--background);--ix-card-border-color:var(--theme-card-success--border-color);color:var(--theme-card-success--color)}:host(.card-info){--ix-card-background:var(--theme-card-info--background);--ix-card-border-color:var(--theme-card-info--border-color);color:var(--theme-card-info--color)}:host(.card-neutral){--ix-card-background:var(--theme-card-neutral--background);--ix-card-border-color:var(--theme-card-neutral--border-color);color:var(--theme-card-neutral--color)}:host(.card-primary){--ix-card-background:var(--theme-card-primary--background);--ix-card-border-color:var(--theme-card-primary--border-color);color:var(--theme-card-primary--color)}:host(:not(.card-insight,.card-outline)){--ix-card-border-color:transparent}:host(.card-outline:hover){--ix-card-border-color:var(--theme-card-outline--border-color--hover);--ix-card-background:var(--theme-card-outline--background--hover)}:host(.card-outline:active){--ix-card-border-color:var(--theme-card-outline--border-color--active);--ix-card-background:var(--theme-card-outline--background--active)}:host(.selected.card-outline){--ix-card-border-color:var(\n --theme-card-outline--border-color--selected\n );--ix-card-background:var(--theme-card-outline--background--selected)}:host(.card-filled:hover){--ix-card-border-color:var(--theme-card-filled--border-color--hover);--ix-card-background:var(--theme-card-filled--background--hover)}:host(.card-filled:active){--ix-card-border-color:var(--theme-card-filled--border-color--active);--ix-card-background:var(--theme-card-filled--background--active)}:host(.selected.card-filled){--ix-card-border-color:var(\n --theme-card-filled--border-color--selected\n );--ix-card-background:var(--theme-card-filled--background--selected)}:host(.card-alarm:hover){--ix-card-border-color:var(--theme-card-alarm--border-color--hover);--ix-card-background:var(--theme-card-alarm--background--hover)}:host(.card-alarm:active){--ix-card-border-color:var(--theme-card-alarm--border-color--active);--ix-card-background:var(--theme-card-alarm--background--active)}:host(.selected.card-alarm){--ix-card-border-color:var(\n --theme-card-alarm--border-color--selected\n );--ix-card-background:var(--theme-card-alarm--background--selected)}:host(.card-critical:hover){--ix-card-border-color:var(--theme-card-critical--border-color--hover);--ix-card-background:var(--theme-card-critical--background--hover)}:host(.card-critical:active){--ix-card-border-color:var(--theme-card-critical--border-color--active);--ix-card-background:var(--theme-card-critical--background--active)}:host(.selected.card-critical){--ix-card-border-color:var(\n --theme-card-critical--border-color--selected\n );--ix-card-background:var(--theme-card-critical--background--selected)}:host(.card-warning:hover){--ix-card-border-color:var(--theme-card-warning--border-color--hover);--ix-card-background:var(--theme-card-warning--background--hover)}:host(.card-warning:active){--ix-card-border-color:var(--theme-card-warning--border-color--active);--ix-card-background:var(--theme-card-warning--background--active)}:host(.selected.card-warning){--ix-card-border-color:var(\n --theme-card-warning--border-color--selected\n );--ix-card-background:var(--theme-card-warning--background--selected)}:host(.card-success:hover){--ix-card-border-color:var(--theme-card-success--border-color--hover);--ix-card-background:var(--theme-card-success--background--hover)}:host(.card-success:active){--ix-card-border-color:var(--theme-card-success--border-color--active);--ix-card-background:var(--theme-card-success--background--active)}:host(.selected.card-success){--ix-card-border-color:var(\n --theme-card-success--border-color--selected\n );--ix-card-background:var(--theme-card-success--background--selected)}:host(.card-info:hover){--ix-card-border-color:var(--theme-card-info--border-color--hover);--ix-card-background:var(--theme-card-info--background--hover)}:host(.card-info:active){--ix-card-border-color:var(--theme-card-info--border-color--active);--ix-card-background:var(--theme-card-info--background--active)}:host(.selected.card-info){--ix-card-border-color:var(\n --theme-card-info--border-color--selected\n );--ix-card-background:var(--theme-card-info--background--selected)}:host(.card-neutral:hover){--ix-card-border-color:var(--theme-card-neutral--border-color--hover);--ix-card-background:var(--theme-card-neutral--background--hover)}:host(.card-neutral:active){--ix-card-border-color:var(--theme-card-neutral--border-color--active);--ix-card-background:var(--theme-card-neutral--background--active)}:host(.selected.card-neutral){--ix-card-border-color:var(\n --theme-card-neutral--border-color--selected\n );--ix-card-background:var(--theme-card-neutral--background--selected)}:host(.card-primary:hover){--ix-card-border-color:var(--theme-card-primary--border-color--hover);--ix-card-background:var(--theme-card-primary--background--hover)}:host(.card-primary:active){--ix-card-border-color:var(--theme-card-primary--border-color--active);--ix-card-background:var(--theme-card-primary--background--active)}:host(.selected.card-primary){--ix-card-border-color:var(\n --theme-card-primary--border-color--selected\n );--ix-card-background:var(--theme-card-primary--background--selected)}:host(.passive){cursor:default}:host(.passive.card-outline){--ix-card-background:var(--theme-card-outline--background);--ix-card-border-color:var(--theme-card-outline--border-color)}:host(.passive.card-filled){--ix-card-background:var(--theme-card-filled--background);--ix-card-border-color:var(--theme-card-filled--border-color)}:host(.passive.card-alarm){--ix-card-background:var(--theme-card-alarm--background);--ix-card-border-color:var(--theme-card-alarm--border-color)}:host(.passive.card-critical){--ix-card-background:var(--theme-card-critical--background);--ix-card-border-color:var(--theme-card-critical--border-color)}:host(.passive.card-warning){--ix-card-background:var(--theme-card-warning--background);--ix-card-border-color:var(--theme-card-warning--border-color)}:host(.passive.card-success){--ix-card-background:var(--theme-card-success--background);--ix-card-border-color:var(--theme-card-success--border-color)}:host(.passive.card-info){--ix-card-background:var(--theme-card-info--background);--ix-card-border-color:var(--theme-card-info--border-color)}:host(.passive.card-neutral){--ix-card-background:var(--theme-card-neutral--background);--ix-card-border-color:var(--theme-card-neutral--border-color)}:host(.passive.card-primary){--ix-card-background:var(--theme-card-primary--background);--ix-card-border-color:var(--theme-card-primary--border-color)}";
|
|
4
4
|
|
|
5
5
|
const Card = class {
|
|
6
6
|
constructor(hostRef) {
|
|
@@ -13,12 +13,17 @@ const Card = class {
|
|
|
13
13
|
* Show card in selected state
|
|
14
14
|
*/
|
|
15
15
|
this.selected = false;
|
|
16
|
+
/**
|
|
17
|
+
* If true, disables hover and active styles and changes cursor to default
|
|
18
|
+
*/
|
|
19
|
+
this.passive = false;
|
|
16
20
|
}
|
|
17
21
|
render() {
|
|
18
|
-
return (h(Host, { key: '
|
|
22
|
+
return (h(Host, { key: '3eed87586aed1916f7c1e3c2323a46c794d046d9', class: {
|
|
19
23
|
selected: this.selected,
|
|
20
24
|
[`card-${this.variant}`]: true,
|
|
21
|
-
|
|
25
|
+
passive: this.passive,
|
|
26
|
+
} }, h("div", { key: '7ae77cffe48272d0acc8cbd0dc7286d0fc835d8d', class: "card-content" }, h("slot", { key: 'ba07f9804dd1af6256ceb0cc972b2cc03a18f558' })), h("div", { key: '72bc9064c1d09188d60e1b9516811a91435f53b4', class: "card-footer" }, h("slot", { key: '7fbacfea4d8308e88b4db025567654a0a4ef0d96', name: "card-accordion" }))));
|
|
22
27
|
}
|
|
23
28
|
get hostElement() { return getElement(this); }
|
|
24
29
|
};
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { r as registerInstance, h, H as Host, g as getElement } from './index-CtoreFVF.js';
|
|
2
2
|
import { q as iconChevronUpSmall, g as iconChevronDownSmall } from './index-8HpPmDK_.js';
|
|
3
3
|
import { m as makeRef } from './make-ref-bcj7UEIC.js';
|
|
4
|
+
import { a as a11yBoolean } from './a11y-Bb7pDeaQ.js';
|
|
4
5
|
|
|
5
6
|
const dropdownButtonCss = ":host{display:inline-block;position:relative;height:2rem;width:auto}:host *,:host *::after,:host *::before{box-sizing:border-box}:host ::-webkit-scrollbar-button{display:none}@-moz-document url-prefix(){:host *{scrollbar-color:var(--theme-scrollbar-thumb--background) var(--theme-scrollbar-track--background);scrollbar-width:thin}}:host{}:host ::-webkit-scrollbar{width:0.5rem;height:0.5rem}:host{}:host ::-webkit-scrollbar-track{border-radius:5px;background:var(--theme-scrollbar-track--background)}:host ::-webkit-scrollbar-track:hover{background:var(--theme-scrollbar-track--background--hover)}:host{}:host ::-webkit-scrollbar-thumb{border-radius:5px;background:var(--theme-scrollbar-thumb--background)}:host{}:host ::-webkit-scrollbar-thumb:hover{background:var(--theme-scrollbar-thumb--background--hover)}:host ::-webkit-scrollbar-corner{display:none}:host .hide{display:none}:host .dropdown-button{display:block;position:relative;width:100%;height:100%}:host .dropdown-button>ix-button{width:100%;height:100%}:host .dropdown-button .button-label{margin-right:auto;min-width:0px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}:host .dropdown-button .dropdown-icon{margin-right:0.25rem}:host .triangle{position:absolute;margin-inline-start:1.5625rem;margin-block-start:-0.4375rem;border-right:0 solid transparent;border-left:4px solid transparent;border-top:0 solid transparent;border-bottom:4px solid;color:var(--theme-btn-primary--color)}:host .triangle.primary{color:var(--theme-btn-primary--color)}:host .triangle.secondary{color:var(--theme-btn-secondary--color)}:host .triangle.tertiary{color:var(--theme-btn-tertiary--color)}:host .triangle.primary.disabled{color:var(--theme-btn-primary--color--disabled)}:host .triangle.secondary.disabled{color:var(--theme-btn-secondary--color--disabled)}:host .triangle.tertiary.disabled{color:var(--theme-btn-tertiary--color--disabled)}:host .triangle.subtle-primary{color:var(--theme-btn-subtle-primary--color)}:host .triangle.subtle-secondary{color:var(--theme-btn-subtle-secondary--color)}:host .triangle.subtle-tertiary{color:var(--theme-btn-subtle-tertiary--color)}:host .triangle.subtle-primary.disabled{color:var(--theme-btn-subtle-primary--color--disabled)}:host .triangle.subtle-secondary.disabled{color:var(--theme-btn-subtle-secondary--color--disabled)}:host .triangle.subtle-tertiary.disabled{color:var(--theme-btn-subtle-tertiary--color--disabled)}:host .triangle.danger-primary{color:var(--theme-btn-danger-primary--color)}:host .triangle.danger-secondary{color:var(--theme-btn-danger-secondary--color)}:host .triangle.danger-tertiary{color:var(--theme-btn-danger-tertiary--color)}:host .triangle.danger-primary.disabled{color:var(--theme-btn-danger-primary--color--disabled)}:host .triangle.danger-secondary.disabled{color:var(--theme-btn-danger-secondary--color--disabled)}:host .triangle.danger-tertiary.disabled{color:var(--theme-btn-danger-tertiary--color--disabled)}:host .content{display:flex;align-items:center}:host(.disabled){pointer-events:none}";
|
|
6
7
|
|
|
@@ -22,6 +23,9 @@ const DropdownButton = class {
|
|
|
22
23
|
this.dropdownShow = false;
|
|
23
24
|
this.dropdownAnchor = makeRef();
|
|
24
25
|
this.onDropdownShowChanged = (event) => {
|
|
26
|
+
if (this.disabled && event.detail) {
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
25
29
|
this.dropdownShow = event.detail;
|
|
26
30
|
};
|
|
27
31
|
}
|
|
@@ -34,11 +38,11 @@ const DropdownButton = class {
|
|
|
34
38
|
} }));
|
|
35
39
|
}
|
|
36
40
|
render() {
|
|
37
|
-
return (h(Host, { key: '
|
|
41
|
+
return (h(Host, { key: '8e8bd476bd9a3dccfbd21fe10a10046f725d6e59', "aria-disabled": a11yBoolean(this.disabled), class: {
|
|
38
42
|
disabled: this.disabled,
|
|
39
|
-
}, ref: this.dropdownAnchor }, h("div", { key: '
|
|
43
|
+
}, ref: this.dropdownAnchor }, h("div", { key: '0fa67ef9f3f779316882f38b17099394f0e99e04', class: "dropdown-button" }, this.label ? (h("ix-button", { variant: this.variant, disabled: this.disabled, alignment: "start", ariaLabel: this.ariaLabelDropdownButton, tabIndex: this.disabled ? -1 : 0 }, h("div", { class: 'content' }, this.icon ? (h("ix-icon", { name: this.icon, size: "24", class: 'dropdown-icon' })) : null, h("div", { class: 'button-label' }, this.label), h("ix-icon", { name: this.dropdownShow
|
|
40
44
|
? iconChevronUpSmall
|
|
41
|
-
: iconChevronDownSmall, size: "24" })))) : (h("div", null, h("ix-icon-button", { icon: this.icon, variant: this.variant, disabled: this.disabled }), this.getTriangle()))), h("ix-dropdown", { key: '
|
|
45
|
+
: iconChevronDownSmall, size: "24" })))) : (h("div", null, h("ix-icon-button", { icon: this.icon, variant: this.variant, disabled: this.disabled, tabIndex: this.disabled ? -1 : 0 }), this.getTriangle()))), h("ix-dropdown", { key: 'bf09de1c2af43bc3ea2085cf11c26e6fb56b694a', class: "dropdown", trigger: this.dropdownAnchor.waitForCurrent(), placement: this.placement, closeBehavior: this.closeBehavior, onShowChanged: this.onDropdownShowChanged }, h("slot", { key: '89bf77cd9781f906d801ffb0c874028f3feef6de' }))));
|
|
42
46
|
}
|
|
43
47
|
get hostElement() { return getElement(this); }
|
|
44
48
|
};
|