@cas-smartdesign/snackbar 3.0.2 → 3.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/snackbar.mjs CHANGED
@@ -1,21 +1,21 @@
1
- import { LitElement as l, css as m, unsafeCSS as p, html as a, render as b } from "lit";
1
+ import { LitElement as l, unsafeCSS as m, css as p, html as a, render as b } from "lit";
2
2
  import { property as f } from "lit/decorators/property.js";
3
3
  import { repeat as k } from "lit/directives/repeat.js";
4
4
  import { ifDefined as S } from "lit/directives/if-defined.js";
5
5
  const g = ":host{display:block;contain:layout;margin-top:6px;margin-bottom:6px;position:relative;transition:height var(--sd-snackbar-height-transition-duration, .4s)}.root{display:flex;width:100%;height:100%}", x = ":host{position:fixed;display:flex;flex-direction:column;box-sizing:border-box;max-height:100%;contain:layout}:host([vertical-position=bottom]){flex-direction:column-reverse;bottom:var(--sd-snackbar-vertical-offset, 14px)}:host([vertical-position=top]){top:var(--sd-snackbar-vertical-offset, 14px)}:host([horizontal-position=left]){left:var(--sd-snackbar-horizontal-offset, 20px)}:host([horizontal-position=center]){left:50%;transform:translate(-50%)}:host([horizontal-position=right]){right:var(--sd-snackbar-horizontal-offset, 20px)}";
6
- var q = Object.defineProperty, y = Object.getOwnPropertyDescriptor, v = (h, e, t, i) => {
7
- for (var s = i > 1 ? void 0 : i ? y(e, t) : e, o = h.length - 1, d; o >= 0; o--)
8
- (d = h[o]) && (s = (i ? d(e, t, s) : d(s)) || s);
9
- return i && s && q(e, t, s), s;
10
- }, n;
11
- const c = (n = class extends l {
6
+ var q = Object.defineProperty, v = (h, e, t, i) => {
7
+ for (var s = void 0, n = h.length - 1, c; n >= 0; n--)
8
+ (c = h[n]) && (s = c(e, t, s) || s);
9
+ return s && q(e, t, s), s;
10
+ }, o;
11
+ const u = (o = class extends l {
12
12
  constructor() {
13
13
  super(...arguments), this.verticalPosition = "bottom", this.horizontalPosition = "left", this.maxStack = 3, this.shouldCloseOldest = !1, this._queue = [], this._rendered = [];
14
14
  }
15
15
  static get styles() {
16
16
  return [
17
- m`
18
- ${p(x)}
17
+ p`
18
+ ${m(x)}
19
19
  `
20
20
  ];
21
21
  }
@@ -41,14 +41,13 @@ const c = (n = class extends l {
41
41
  e ? this.requestSnackbarClose(e) : this._rendered.forEach(({ id: t }) => this.requestSnackbarClose(t));
42
42
  }
43
43
  renderSnackbar({ message: e, options: t = {} }) {
44
- var i;
45
44
  return a`
46
45
  <sd-snackbar
47
- class="${S(((i = t.classNames) == null ? void 0 : i.length) > 0 ? t.classNames.join(" ") : void 0)}"
46
+ class="${S(t.classNames?.length > 0 ? t.classNames.join(" ") : void 0)}"
48
47
  .animationIn="${this.animationIn}"
49
48
  .animationOut="${this.animationOut}"
50
49
  >
51
- ${this.renderSnackbarContent(e, t == null ? void 0 : t.closeAction)}
50
+ ${this.renderSnackbarContent(e, t?.closeAction)}
52
51
  </sd-snackbar>
53
52
  `;
54
53
  }
@@ -63,7 +62,7 @@ const c = (n = class extends l {
63
62
  }
64
63
  requestOldestSnackbarClose() {
65
64
  const e = this._rendered.find(
66
- ({ requestClose: t, options: i }) => !t && (i == null ? void 0 : i.autoHideDuration)
65
+ ({ requestClose: t, options: i }) => !t && i?.autoHideDuration
67
66
  );
68
67
  e && (e.requestClose = !0, this._queue.unshift({ snackbar: e, direction: "out" }), this.updateQueue());
69
68
  }
@@ -75,9 +74,8 @@ const c = (n = class extends l {
75
74
  }
76
75
  }
77
76
  closeSnackbar(e) {
78
- var s;
79
77
  const t = this._rendered[e], i = this.children.item(e);
80
- i && (t.closing = !0, (s = t.options) != null && s.waitOnHover && i.matches(":hover") ? i.addEventListener("mouseleave", () => {
78
+ i && (t.closing = !0, t.options?.waitOnHover && i.matches(":hover") ? i.addEventListener("mouseleave", () => {
81
79
  i.close().then(() => {
82
80
  this.removeSnackbarAndUpdate(t);
83
81
  });
@@ -104,8 +102,8 @@ const c = (n = class extends l {
104
102
  prepareSnackbarForRender(e) {
105
103
  const { options: t, message: i } = e;
106
104
  if (i.slot = "message", t) {
107
- const { autoHideDuration: s, waitForMouseMove: o } = t;
108
- s && (o ? this.listenForMouseMove(e) : this.setupTimeoutForAutoHideSnackbar(e)), this.setupAction(e);
105
+ const { autoHideDuration: s, waitForMouseMove: n } = t;
106
+ s && (n ? this.listenForMouseMove(e) : this.setupTimeoutForAutoHideSnackbar(e)), this.setupAction(e);
109
107
  }
110
108
  }
111
109
  listenForMouseMove(e) {
@@ -122,21 +120,21 @@ const c = (n = class extends l {
122
120
  this._queue.unshift({ snackbar: e, direction: "out" }), this.updateQueue();
123
121
  }), t.slot = "action");
124
122
  }
125
- }, n.ID = "sd-snackbar-provider", n.ensureDefined = () => {
126
- u.ensureDefined(), customElements.get(n.ID) || customElements.define(n.ID, n);
127
- }, n);
123
+ }, o.ID = "sd-snackbar-provider", o.ensureDefined = () => {
124
+ d.ensureDefined(), customElements.get(o.ID) || customElements.define(o.ID, o);
125
+ }, o);
128
126
  v([
129
127
  f({ type: String, reflect: !0, attribute: "vertical-position" })
130
- ], c.prototype, "verticalPosition", 2);
128
+ ], u.prototype, "verticalPosition");
131
129
  v([
132
130
  f({ type: String, reflect: !0, attribute: "horizontal-position" })
133
- ], c.prototype, "horizontalPosition", 2);
134
- let F = c;
131
+ ], u.prototype, "horizontalPosition");
132
+ let F = u;
135
133
  const r = class r extends l {
136
134
  static get styles() {
137
135
  return [
138
- m`
139
- ${p(g)}
136
+ p`
137
+ ${m(g)}
140
138
  `
141
139
  ];
142
140
  }
@@ -151,8 +149,8 @@ const r = class r extends l {
151
149
  if (this.animationOut) {
152
150
  const { keyframes: t, options: i } = this.animationOut, s = this.animate(t, i);
153
151
  s.onfinish = () => {
154
- this.collapse(), this.addEventListener("transitionend", ({ propertyName: o }) => {
155
- o === "height" && e();
152
+ this.collapse(), this.addEventListener("transitionend", ({ propertyName: n }) => {
153
+ n === "height" && e();
156
154
  });
157
155
  };
158
156
  } else
@@ -178,9 +176,9 @@ const r = class r extends l {
178
176
  r.ID = "sd-snackbar", r.ensureDefined = () => {
179
177
  customElements.get(r.ID) || customElements.define(r.ID, r);
180
178
  };
181
- let u = r;
179
+ let d = r;
182
180
  export {
183
- u as Snackbar,
181
+ d as Snackbar,
184
182
  F as SnackbarProvider
185
183
  };
186
184
  //# sourceMappingURL=snackbar.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"snackbar.mjs","sources":["../snackbar-provider.ts","../snackbar.ts"],"sourcesContent":["import { LitElement, TemplateResult, html, unsafeCSS, css, render } from \"lit\";\nimport { property } from \"lit/decorators/property.js\";\nimport { repeat } from \"lit/directives/repeat.js\";\nimport { ifDefined } from \"lit/directives/if-defined.js\";\nimport type { VerticalPosition, HorizontalPosition, ISnackbar, IAnimationParams, IAction } from \"./types\";\nimport { Snackbar } from \"./snackbar\";\n\nimport style from \"./scss/provider.scss?inline\";\n\ndeclare global {\n interface HTMLElementTagNameMap {\n [SnackbarProvider.ID]: SnackbarProvider;\n }\n}\n\nclass SnackbarProvider extends LitElement {\n public static readonly ID = \"sd-snackbar-provider\";\n public static ensureDefined = (): void => {\n Snackbar.ensureDefined();\n if (!customElements.get(SnackbarProvider.ID)) {\n customElements.define(SnackbarProvider.ID, SnackbarProvider);\n }\n };\n @property({ type: String, reflect: true, attribute: \"vertical-position\" })\n public verticalPosition: VerticalPosition = \"bottom\";\n @property({ type: String, reflect: true, attribute: \"horizontal-position\" })\n public horizontalPosition: HorizontalPosition = \"left\";\n public maxStack = 3;\n public animationIn: IAnimationParams;\n public animationOut: IAnimationParams;\n public shouldCloseOldest = false;\n\n private _queue: IAction[] = [];\n private _rendered: ISnackbar[] = [];\n\n static get styles() {\n return [\n css`\n ${unsafeCSS(style)}\n `,\n ];\n }\n\n public render(): TemplateResult {\n this.renderSnackbars();\n return html` <slot></slot> `;\n }\n\n public renderSnackbars(): void {\n render(\n html`\n ${repeat(\n this._rendered,\n ({ id }) => id,\n (snackbar) => this.renderSnackbar(snackbar),\n )}\n `,\n this,\n );\n }\n\n public open(snackbar: ISnackbar): void {\n this._queue.push({ snackbar, direction: \"in\" });\n this.updateQueue();\n }\n\n public close(snackId?: string): void {\n snackId\n ? this.requestSnackbarClose(snackId)\n : this._rendered.forEach(({ id }) => this.requestSnackbarClose(id));\n }\n\n private renderSnackbar({ message, options = {} }: ISnackbar): TemplateResult {\n return html`\n <sd-snackbar\n class=\"${ifDefined(options.classNames?.length > 0 ? options.classNames.join(\" \") : undefined)}\"\n .animationIn=\"${this.animationIn}\"\n .animationOut=\"${this.animationOut}\"\n >\n ${this.renderSnackbarContent(message, options?.closeAction)}\n </sd-snackbar>\n `;\n }\n\n private renderSnackbarContent(message: HTMLElement, action?: HTMLElement): TemplateResult {\n return html` ${message}${action ? action : \"\"} `;\n }\n\n private updateQueue(): void {\n if (this._queue.length === 0) {\n return;\n }\n\n const { direction, snackbar } = this._queue[0];\n if (direction === \"in\") {\n if (this._rendered.length === this.maxStack) {\n this.requestOldestSnackbarClose();\n } else {\n this.prepareSnackbarForRender(snackbar);\n this._rendered.push(snackbar);\n this.renderSnackbars();\n this._queue.shift();\n this.updateQueue();\n }\n } else {\n this.requestSnackbarClose(snackbar.id);\n }\n }\n\n private requestOldestSnackbarClose(): void {\n const oldestNotMarkedForLeave = this._rendered.find(\n ({ requestClose, options }) => !requestClose && options?.autoHideDuration,\n );\n if (oldestNotMarkedForLeave) {\n oldestNotMarkedForLeave.requestClose = true;\n this._queue.unshift({ snackbar: oldestNotMarkedForLeave, direction: \"out\" });\n this.updateQueue();\n }\n }\n\n private requestSnackbarClose(id?: string): void {\n const ind = this._rendered.findIndex((snack) => snack.id === id);\n if (ind !== -1) {\n const snackbar = this._rendered[ind];\n if (!snackbar.closing) {\n snackbar.requestClose = true;\n window.clearTimeout(snackbar.timer);\n this.closeSnackbar(ind);\n }\n }\n }\n\n private closeSnackbar(ind: number): void {\n const snackbar = this._rendered[ind];\n const snackbarElement = (this.children as HTMLCollectionOf<Snackbar>).item(ind);\n if (snackbarElement) {\n snackbar.closing = true;\n if (snackbar.options?.waitOnHover && snackbarElement.matches(\":hover\")) {\n snackbarElement.addEventListener(\"mouseleave\", () => {\n snackbarElement.close().then(() => {\n this.removeSnackbarAndUpdate(snackbar);\n });\n });\n } else {\n snackbarElement.close().then(() => {\n this.removeSnackbarAndUpdate(snackbar);\n });\n }\n }\n }\n\n private removeSnackbarAndUpdate(snackbar: ISnackbar): void {\n this.removeSnackbarFromQueue(snackbar);\n this.removeSnackbarFromRendered(snackbar);\n\n this.requestUpdate();\n this.updateComplete.then(() => this.updateQueue());\n }\n\n private removeSnackbarFromQueue(snack: ISnackbar): void {\n const ind = this._queue.findIndex(({ snackbar }) => snackbar.id === snack.id);\n if (ind !== -1) {\n this._queue.splice(ind, 1);\n }\n }\n\n private removeSnackbarFromRendered(snack: ISnackbar): void {\n const ind = this._rendered.findIndex((snackbar) => snackbar.id == snack.id);\n if (ind !== -1) {\n this._rendered.splice(ind, 1);\n }\n }\n\n private setupTimeoutForAutoHideSnackbar(snackbar: ISnackbar): void {\n snackbar.timer = window.setTimeout(() => {\n this._queue.push({ snackbar, direction: \"out\" });\n this.updateQueue();\n }, snackbar.options.autoHideDuration);\n }\n\n private prepareSnackbarForRender(snackbar: ISnackbar): void {\n const { options, message } = snackbar;\n message.slot = \"message\";\n if (options) {\n const { autoHideDuration, waitForMouseMove } = options;\n if (autoHideDuration) {\n if (waitForMouseMove) {\n this.listenForMouseMove(snackbar);\n } else {\n this.setupTimeoutForAutoHideSnackbar(snackbar);\n }\n }\n\n this.setupAction(snackbar);\n }\n }\n\n private listenForMouseMove(snackbar: ISnackbar): void {\n window.addEventListener(\"mousemove\", this.handleWindowMouseMove.bind(this, snackbar), { once: true });\n }\n\n private handleWindowMouseMove(snackbar: ISnackbar): void {\n this.setupTimeoutForAutoHideSnackbar(snackbar);\n }\n\n private setupAction(snackbar: ISnackbar): void {\n const {\n options: { closeAction: action },\n } = snackbar;\n if (action) {\n action.addEventListener(\"click\", () => {\n this._queue.unshift({ snackbar, direction: \"out\" });\n this.updateQueue();\n });\n action.slot = \"action\";\n }\n }\n}\n\nexport { SnackbarProvider };\n","import { LitElement, TemplateResult, html, unsafeCSS, PropertyValues, css } from \"lit\";\nimport type { IAnimationParams } from \"./types\";\n\ndeclare global {\n interface HTMLElementTagNameMap {\n [Snackbar.ID]: Snackbar;\n }\n}\nimport style from \"./scss/snackbar.scss?inline\";\n\nclass Snackbar extends LitElement {\n public static readonly ID = \"sd-snackbar\";\n public static ensureDefined = (): void => {\n if (!customElements.get(Snackbar.ID)) {\n customElements.define(Snackbar.ID, Snackbar);\n }\n };\n\n public animationIn: IAnimationParams;\n public animationOut: IAnimationParams;\n\n static get styles() {\n return [\n css`\n ${unsafeCSS(style)}\n `,\n ];\n }\n\n public firstUpdated(changedProperties: PropertyValues): void {\n super.firstUpdated(changedProperties);\n if (this.animationIn) {\n const { keyframes, options } = this.animationIn;\n this.animate(keyframes, options);\n }\n }\n\n public close(): Promise<void> {\n return new Promise<void>((resolve) => {\n if (this.animationOut) {\n const { keyframes, options } = this.animationOut;\n const animation = this.animate(keyframes, options);\n animation.onfinish = () => {\n // height and opacity are needed to be set to 0\n // so that moving newer snackbars can be animated\n this.collapse();\n this.addEventListener(\"transitionend\", ({ propertyName }) => {\n if (propertyName === \"height\") {\n resolve();\n }\n });\n };\n } else {\n this.collapse();\n resolve();\n }\n });\n }\n\n public render(): TemplateResult {\n return html`\n <div class=\"root\">\n <div class=\"message\">\n <slot name=\"message\"></slot>\n </div>\n <div class=\"action\">\n <slot name=\"action\"></slot>\n </div>\n </div>\n `;\n }\n\n private collapse(): void {\n this.style.height = \"0\";\n this.style.opacity = \"0\";\n }\n}\n\nexport { Snackbar };\nexport * from \"./snackbar-provider\";\nexport type * from \"./types\";\n"],"names":["_SnackbarProvider","_a","LitElement","css","unsafeCSS","style","html","render","repeat","id","snackbar","snackId","message","options","ifDefined","action","direction","oldestNotMarkedForLeave","requestClose","ind","snack","snackbarElement","autoHideDuration","waitForMouseMove","Snackbar","__decorateClass","property","SnackbarProvider","_Snackbar","changedProperties","keyframes","resolve","animation","propertyName"],"mappings":"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"}
1
+ {"version":3,"file":"snackbar.mjs","sources":["../snackbar-provider.ts","../snackbar.ts"],"sourcesContent":["import { LitElement, TemplateResult, html, unsafeCSS, css, render } from \"lit\";\nimport { property } from \"lit/decorators/property.js\";\nimport { repeat } from \"lit/directives/repeat.js\";\nimport { ifDefined } from \"lit/directives/if-defined.js\";\nimport type { VerticalPosition, HorizontalPosition, ISnackbar, IAnimationParams, IAction } from \"./types\";\nimport { Snackbar } from \"./snackbar\";\n\nimport style from \"./scss/provider.scss?inline\";\n\ndeclare global {\n interface HTMLElementTagNameMap {\n [SnackbarProvider.ID]: SnackbarProvider;\n }\n}\n\nclass SnackbarProvider extends LitElement {\n public static readonly ID = \"sd-snackbar-provider\";\n public static ensureDefined = (): void => {\n Snackbar.ensureDefined();\n if (!customElements.get(SnackbarProvider.ID)) {\n customElements.define(SnackbarProvider.ID, SnackbarProvider);\n }\n };\n @property({ type: String, reflect: true, attribute: \"vertical-position\" })\n public verticalPosition: VerticalPosition = \"bottom\";\n @property({ type: String, reflect: true, attribute: \"horizontal-position\" })\n public horizontalPosition: HorizontalPosition = \"left\";\n public maxStack = 3;\n public animationIn: IAnimationParams;\n public animationOut: IAnimationParams;\n public shouldCloseOldest = false;\n\n private _queue: IAction[] = [];\n private _rendered: ISnackbar[] = [];\n\n static get styles() {\n return [\n css`\n ${unsafeCSS(style)}\n `,\n ];\n }\n\n public render(): TemplateResult {\n this.renderSnackbars();\n return html` <slot></slot> `;\n }\n\n public renderSnackbars(): void {\n render(\n html`\n ${repeat(\n this._rendered,\n ({ id }) => id,\n (snackbar) => this.renderSnackbar(snackbar),\n )}\n `,\n this,\n );\n }\n\n public open(snackbar: ISnackbar): void {\n this._queue.push({ snackbar, direction: \"in\" });\n this.updateQueue();\n }\n\n public close(snackId?: string): void {\n if (snackId) {\n this.requestSnackbarClose(snackId);\n } else {\n this._rendered.forEach(({ id }) => this.requestSnackbarClose(id));\n }\n }\n\n private renderSnackbar({ message, options = {} }: ISnackbar): TemplateResult {\n return html`\n <sd-snackbar\n class=\"${ifDefined(options.classNames?.length > 0 ? options.classNames.join(\" \") : undefined)}\"\n .animationIn=\"${this.animationIn}\"\n .animationOut=\"${this.animationOut}\"\n >\n ${this.renderSnackbarContent(message, options?.closeAction)}\n </sd-snackbar>\n `;\n }\n\n private renderSnackbarContent(message: HTMLElement, action?: HTMLElement): TemplateResult {\n return html` ${message}${action ? action : \"\"} `;\n }\n\n private updateQueue(): void {\n if (this._queue.length === 0) {\n return;\n }\n\n const { direction, snackbar } = this._queue[0];\n if (direction === \"in\") {\n if (this._rendered.length === this.maxStack) {\n this.requestOldestSnackbarClose();\n } else {\n this.prepareSnackbarForRender(snackbar);\n this._rendered.push(snackbar);\n this.renderSnackbars();\n this._queue.shift();\n this.updateQueue();\n }\n } else {\n this.requestSnackbarClose(snackbar.id);\n }\n }\n\n private requestOldestSnackbarClose(): void {\n const oldestNotMarkedForLeave = this._rendered.find(\n ({ requestClose, options }) => !requestClose && options?.autoHideDuration,\n );\n if (oldestNotMarkedForLeave) {\n oldestNotMarkedForLeave.requestClose = true;\n this._queue.unshift({ snackbar: oldestNotMarkedForLeave, direction: \"out\" });\n this.updateQueue();\n }\n }\n\n private requestSnackbarClose(id?: string): void {\n const ind = this._rendered.findIndex((snack) => snack.id === id);\n if (ind !== -1) {\n const snackbar = this._rendered[ind];\n if (!snackbar.closing) {\n snackbar.requestClose = true;\n window.clearTimeout(snackbar.timer);\n this.closeSnackbar(ind);\n }\n }\n }\n\n private closeSnackbar(ind: number): void {\n const snackbar = this._rendered[ind];\n const snackbarElement = (this.children as HTMLCollectionOf<Snackbar>).item(ind);\n if (snackbarElement) {\n snackbar.closing = true;\n if (snackbar.options?.waitOnHover && snackbarElement.matches(\":hover\")) {\n snackbarElement.addEventListener(\"mouseleave\", () => {\n snackbarElement.close().then(() => {\n this.removeSnackbarAndUpdate(snackbar);\n });\n });\n } else {\n snackbarElement.close().then(() => {\n this.removeSnackbarAndUpdate(snackbar);\n });\n }\n }\n }\n\n private removeSnackbarAndUpdate(snackbar: ISnackbar): void {\n this.removeSnackbarFromQueue(snackbar);\n this.removeSnackbarFromRendered(snackbar);\n\n this.requestUpdate();\n this.updateComplete.then(() => this.updateQueue());\n }\n\n private removeSnackbarFromQueue(snack: ISnackbar): void {\n const ind = this._queue.findIndex(({ snackbar }) => snackbar.id === snack.id);\n if (ind !== -1) {\n this._queue.splice(ind, 1);\n }\n }\n\n private removeSnackbarFromRendered(snack: ISnackbar): void {\n const ind = this._rendered.findIndex((snackbar) => snackbar.id == snack.id);\n if (ind !== -1) {\n this._rendered.splice(ind, 1);\n }\n }\n\n private setupTimeoutForAutoHideSnackbar(snackbar: ISnackbar): void {\n snackbar.timer = window.setTimeout(() => {\n this._queue.push({ snackbar, direction: \"out\" });\n this.updateQueue();\n }, snackbar.options.autoHideDuration);\n }\n\n private prepareSnackbarForRender(snackbar: ISnackbar): void {\n const { options, message } = snackbar;\n message.slot = \"message\";\n if (options) {\n const { autoHideDuration, waitForMouseMove } = options;\n if (autoHideDuration) {\n if (waitForMouseMove) {\n this.listenForMouseMove(snackbar);\n } else {\n this.setupTimeoutForAutoHideSnackbar(snackbar);\n }\n }\n\n this.setupAction(snackbar);\n }\n }\n\n private listenForMouseMove(snackbar: ISnackbar): void {\n window.addEventListener(\"mousemove\", this.handleWindowMouseMove.bind(this, snackbar), { once: true });\n }\n\n private handleWindowMouseMove(snackbar: ISnackbar): void {\n this.setupTimeoutForAutoHideSnackbar(snackbar);\n }\n\n private setupAction(snackbar: ISnackbar): void {\n const {\n options: { closeAction: action },\n } = snackbar;\n if (action) {\n action.addEventListener(\"click\", () => {\n this._queue.unshift({ snackbar, direction: \"out\" });\n this.updateQueue();\n });\n action.slot = \"action\";\n }\n }\n}\n\nexport { SnackbarProvider };\n","import { LitElement, TemplateResult, html, unsafeCSS, PropertyValues, css } from \"lit\";\nimport type { IAnimationParams } from \"./types\";\n\ndeclare global {\n interface HTMLElementTagNameMap {\n [Snackbar.ID]: Snackbar;\n }\n}\nimport style from \"./scss/snackbar.scss?inline\";\n\nclass Snackbar extends LitElement {\n public static readonly ID = \"sd-snackbar\";\n public static ensureDefined = (): void => {\n if (!customElements.get(Snackbar.ID)) {\n customElements.define(Snackbar.ID, Snackbar);\n }\n };\n\n public animationIn: IAnimationParams;\n public animationOut: IAnimationParams;\n\n static get styles() {\n return [\n css`\n ${unsafeCSS(style)}\n `,\n ];\n }\n\n public firstUpdated(changedProperties: PropertyValues): void {\n super.firstUpdated(changedProperties);\n if (this.animationIn) {\n const { keyframes, options } = this.animationIn;\n this.animate(keyframes, options);\n }\n }\n\n public close(): Promise<void> {\n return new Promise<void>((resolve) => {\n if (this.animationOut) {\n const { keyframes, options } = this.animationOut;\n const animation = this.animate(keyframes, options);\n animation.onfinish = () => {\n // height and opacity are needed to be set to 0\n // so that moving newer snackbars can be animated\n this.collapse();\n this.addEventListener(\"transitionend\", ({ propertyName }) => {\n if (propertyName === \"height\") {\n resolve();\n }\n });\n };\n } else {\n this.collapse();\n resolve();\n }\n });\n }\n\n public render(): TemplateResult {\n return html`\n <div class=\"root\">\n <div class=\"message\">\n <slot name=\"message\"></slot>\n </div>\n <div class=\"action\">\n <slot name=\"action\"></slot>\n </div>\n </div>\n `;\n }\n\n private collapse(): void {\n this.style.height = \"0\";\n this.style.opacity = \"0\";\n }\n}\n\nexport { Snackbar };\nexport * from \"./snackbar-provider\";\nexport type * from \"./types\";\n"],"names":["_SnackbarProvider","_a","LitElement","css","unsafeCSS","style","html","render","repeat","id","snackbar","snackId","message","options","ifDefined","action","direction","oldestNotMarkedForLeave","requestClose","ind","snack","snackbarElement","autoHideDuration","waitForMouseMove","Snackbar","__decorateClass","property","SnackbarProvider","_Snackbar","changedProperties","keyframes","resolve","animation","propertyName"],"mappings":"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"}
@@ -1,192 +1,197 @@
1
1
  {
2
- "@cypress/vite-dev-server@5.0.7": {
2
+ "@cypress/vite-dev-server@7.0.0": {
3
3
  "licenses": "MIT",
4
4
  "repository": "https://github.com/cypress-io/cypress",
5
5
  "licenseUrl": "https://github.com/cypress-io/cypress/tree/develop/npm/vite-dev-server#readme"
6
6
  },
7
- "@rollup/plugin-node-resolve@15.2.3": {
7
+ "@eslint/js@9.34.0": {
8
+ "licenses": "MIT",
9
+ "repository": "https://github.com/eslint/eslint",
10
+ "licenseUrl": "https://unpkg.com/@eslint/js@9.34.0/LICENSE"
11
+ },
12
+ "@rollup/plugin-node-resolve@16.0.1": {
8
13
  "licenses": "MIT",
9
14
  "repository": "https://github.com/rollup/plugins",
10
- "licenseUrl": "https://github.com/rollup/plugins/raw/HEAD/LICENSE"
15
+ "licenseUrl": "https://unpkg.com/@rollup/plugin-node-resolve@16.0.1/LICENSE"
11
16
  },
12
- "@types/node@20.10.6": {
17
+ "@types/node@24.3.0": {
13
18
  "licenses": "MIT",
14
19
  "repository": "https://github.com/DefinitelyTyped/DefinitelyTyped",
15
- "licenseUrl": "https://github.com/DefinitelyTyped/DefinitelyTyped/raw/HEAD/LICENSE"
20
+ "licenseUrl": "https://unpkg.com/@types/node@24.3.0/LICENSE"
16
21
  },
17
22
  "@types/postcss-prefix-selector@1.16.3": {
18
23
  "licenses": "MIT",
19
24
  "repository": "https://github.com/DefinitelyTyped/DefinitelyTyped",
20
- "licenseUrl": "https://github.com/DefinitelyTyped/DefinitelyTyped/raw/HEAD/LICENSE"
25
+ "licenseUrl": "https://unpkg.com/@types/postcss-prefix-selector@1.16.3/LICENSE"
21
26
  },
22
- "@typescript-eslint/eslint-plugin@6.17.0": {
27
+ "@typescript-eslint/eslint-plugin@8.41.0": {
23
28
  "licenses": "MIT",
24
29
  "repository": "https://github.com/typescript-eslint/typescript-eslint",
25
- "licenseUrl": "https://github.com/typescript-eslint/typescript-eslint/raw/HEAD/LICENSE"
30
+ "licenseUrl": "https://unpkg.com/@typescript-eslint/eslint-plugin@8.41.0/LICENSE"
26
31
  },
27
- "@typescript-eslint/parser@6.17.0": {
28
- "licenses": "BSD-2-Clause",
32
+ "@typescript-eslint/parser@8.41.0": {
33
+ "licenses": "MIT",
29
34
  "repository": "https://github.com/typescript-eslint/typescript-eslint",
30
- "licenseUrl": "https://github.com/typescript-eslint/typescript-eslint/raw/HEAD/LICENSE"
35
+ "licenseUrl": "https://unpkg.com/@typescript-eslint/parser@8.41.0/LICENSE"
31
36
  },
32
- "@vitest/coverage-v8@1.1.1": {
37
+ "@vitest/coverage-v8@3.2.4": {
33
38
  "licenses": "MIT",
34
39
  "repository": "https://github.com/vitest-dev/vitest",
35
- "licenseUrl": "https://github.com/vitest-dev/vitest/raw/HEAD/LICENSE"
40
+ "licenseUrl": "https://unpkg.com/@vitest/coverage-v8@3.2.4/LICENSE"
36
41
  },
37
- "@vitest/ui@1.1.1": {
42
+ "@vitest/ui@3.2.4": {
38
43
  "licenses": "MIT",
39
44
  "repository": "https://github.com/vitest-dev/vitest",
40
- "licenseUrl": "https://github.com/vitest-dev/vitest/raw/HEAD/LICENSE"
45
+ "licenseUrl": "https://unpkg.com/@vitest/ui@3.2.4/LICENSE"
41
46
  },
42
- "axe-core@4.8.3": {
47
+ "axe-core@4.10.3": {
43
48
  "licenses": "MPL-2.0",
44
49
  "repository": "https://github.com/dequelabs/axe-core",
45
- "licenseUrl": "https://github.com/dequelabs/axe-core/raw/HEAD/LICENSE"
50
+ "licenseUrl": "https://unpkg.com/axe-core@4.10.3/LICENSE"
46
51
  },
47
- "cypress-axe@1.5.0": {
52
+ "cypress-axe@1.7.0": {
48
53
  "licenses": "MIT",
49
54
  "repository": "https://github.com/component-driven/cypress-axe",
50
- "licenseUrl": "https://github.com/component-driven/cypress-axe/raw/HEAD/License.md"
51
- },
52
- "cypress-real-events@1.13.0": {
53
- "licenses": "MIT",
54
- "repository": "https://github.com/dmtrKovalenko/cypress-real-events",
55
- "licenseUrl": "https://github.com/dmtrKovalenko/cypress-real-events"
55
+ "licenseUrl": "https://unpkg.com/cypress-axe@1.7.0/License.md"
56
56
  },
57
- "cypress@13.6.2": {
57
+ "cypress@15.0.0": {
58
58
  "licenses": "MIT",
59
59
  "repository": "https://github.com/cypress-io/cypress",
60
60
  "licenseUrl": "https://cypress.io"
61
61
  },
62
- "esbuild@0.19.11": {
62
+ "esbuild@0.25.9": {
63
63
  "licenses": "MIT",
64
64
  "repository": "https://github.com/evanw/esbuild",
65
- "licenseUrl": "https://github.com/evanw/esbuild/raw/HEAD/LICENSE.md"
65
+ "licenseUrl": "https://unpkg.com/esbuild@0.25.9/LICENSE.md"
66
66
  },
67
67
  "eslint-config-google@0.14.0": {
68
68
  "licenses": "Apache-2.0",
69
69
  "repository": "https://github.com/google/eslint-config-google",
70
- "licenseUrl": "https://github.com/google/eslint-config-google/raw/HEAD/LICENSE"
70
+ "licenseUrl": "https://unpkg.com/eslint-config-google@0.14.0/LICENSE"
71
71
  },
72
- "eslint-config-prettier@9.1.0": {
72
+ "eslint-config-prettier@10.1.8": {
73
73
  "licenses": "MIT",
74
74
  "repository": "https://github.com/prettier/eslint-config-prettier",
75
- "licenseUrl": "https://github.com/prettier/eslint-config-prettier/raw/HEAD/LICENSE"
75
+ "licenseUrl": "https://unpkg.com/eslint-config-prettier@10.1.8/LICENSE"
76
76
  },
77
- "eslint@8.56.0": {
77
+ "eslint@9.34.0": {
78
78
  "licenses": "MIT",
79
79
  "repository": "https://github.com/eslint/eslint",
80
- "licenseUrl": "https://github.com/eslint/eslint/raw/HEAD/LICENSE"
80
+ "licenseUrl": "https://unpkg.com/eslint@9.34.0/LICENSE"
81
81
  },
82
- "github-markdown-css@5.5.0": {
82
+ "github-markdown-css@5.8.1": {
83
83
  "licenses": "MIT",
84
84
  "repository": "https://github.com/sindresorhus/github-markdown-css",
85
- "licenseUrl": "https://github.com/sindresorhus/github-markdown-css/raw/HEAD/license"
85
+ "licenseUrl": "https://unpkg.com/github-markdown-css@5.8.1/license"
86
86
  },
87
- "highlight.js@11.9.0": {
87
+ "highlight.js@11.11.1": {
88
88
  "licenses": "BSD-3-Clause",
89
89
  "repository": "https://github.com/highlightjs/highlight.js",
90
- "licenseUrl": "https://github.com/highlightjs/highlight.js/raw/HEAD/LICENSE"
90
+ "licenseUrl": "https://unpkg.com/highlight.js@11.11.1/LICENSE"
91
91
  },
92
- "junit-report-builder@3.1.0": {
92
+ "junit-report-builder@5.1.1": {
93
93
  "licenses": "MIT",
94
94
  "repository": "https://github.com/davidparsson/junit-report-builder",
95
- "licenseUrl": "https://github.com/davidparsson/junit-report-builder/raw/HEAD/LICENSE"
95
+ "licenseUrl": "https://unpkg.com/junit-report-builder@5.1.1/LICENSE"
96
96
  },
97
- "lint-staged@15.2.0": {
97
+ "lint-staged@16.1.5": {
98
98
  "licenses": "MIT",
99
- "repository": "https://github.com/okonet/lint-staged",
100
- "licenseUrl": "https://github.com/okonet/lint-staged/raw/HEAD/LICENSE"
99
+ "repository": "https://github.com/lint-staged/lint-staged",
100
+ "licenseUrl": "https://unpkg.com/lint-staged@16.1.5/LICENSE"
101
101
  },
102
- "lit@2.8.0": {
102
+ "lit@3.3.1": {
103
103
  "licenses": "BSD-3-Clause",
104
104
  "repository": "https://github.com/lit/lit",
105
- "licenseUrl": "https://github.com/lit/lit/raw/HEAD/LICENSE"
105
+ "licenseUrl": "https://unpkg.com/lit@3.3.1/LICENSE"
106
106
  },
107
- "marked@11.1.1": {
107
+ "marked@16.2.1": {
108
108
  "licenses": "MIT",
109
109
  "repository": "https://github.com/markedjs/marked",
110
- "licenseUrl": "https://github.com/markedjs/marked/raw/HEAD/LICENSE.md"
110
+ "licenseUrl": "https://unpkg.com/marked@16.2.1/LICENSE.md"
111
111
  },
112
- "postcss-prefix-selector@1.16.0": {
112
+ "postcss-prefix-selector@2.1.1": {
113
113
  "licenses": "MIT",
114
114
  "repository": "https://github.com/RadValentin/postcss-prefix-selector",
115
- "licenseUrl": "https://github.com/RadValentin/postcss-prefix-selector/raw/HEAD/LICENSE"
115
+ "licenseUrl": "https://unpkg.com/postcss-prefix-selector@2.1.1/LICENSE"
116
116
  },
117
- "postcss@8.4.32": {
117
+ "postcss@8.5.6": {
118
118
  "licenses": "MIT",
119
119
  "repository": "https://github.com/postcss/postcss",
120
- "licenseUrl": "https://github.com/postcss/postcss/raw/HEAD/LICENSE"
120
+ "licenseUrl": "https://unpkg.com/postcss@8.5.6/LICENSE"
121
121
  },
122
- "prettier@3.1.1": {
122
+ "prettier@3.6.2": {
123
123
  "licenses": "MIT",
124
124
  "repository": "https://github.com/prettier/prettier",
125
- "licenseUrl": "https://github.com/prettier/prettier/raw/HEAD/LICENSE"
125
+ "licenseUrl": "https://unpkg.com/prettier@3.6.2/LICENSE"
126
126
  },
127
127
  "resolve-pkg@2.0.0": {
128
128
  "licenses": "MIT",
129
129
  "repository": "https://github.com/sindresorhus/resolve-pkg",
130
- "licenseUrl": "https://github.com/sindresorhus/resolve-pkg/raw/HEAD/license"
130
+ "licenseUrl": "https://unpkg.com/resolve-pkg@2.0.0/license"
131
131
  },
132
- "sass@1.69.6": {
132
+ "sass@1.91.0": {
133
133
  "licenses": "MIT",
134
134
  "repository": "https://github.com/sass/dart-sass",
135
- "licenseUrl": "https://github.com/sass/dart-sass/raw/HEAD/LICENSE"
135
+ "licenseUrl": "https://unpkg.com/sass@1.91.0/LICENSE"
136
136
  },
137
- "stylelint-config-recommended-scss@14.0.0": {
137
+ "stylelint-config-recommended-scss@16.0.0": {
138
138
  "licenses": "MIT",
139
139
  "repository": "https://github.com/stylelint-scss/stylelint-config-recommended-scss",
140
- "licenseUrl": "https://github.com/stylelint-scss/stylelint-config-recommended-scss/raw/HEAD/LICENSE"
140
+ "licenseUrl": "https://unpkg.com/stylelint-config-recommended-scss@16.0.0/LICENSE"
141
141
  },
142
- "stylelint-config-standard@36.0.0": {
142
+ "stylelint-config-standard@39.0.0": {
143
143
  "licenses": "MIT",
144
144
  "repository": "https://github.com/stylelint/stylelint-config-standard",
145
- "licenseUrl": "https://github.com/stylelint/stylelint-config-standard/raw/HEAD/LICENSE"
145
+ "licenseUrl": "https://unpkg.com/stylelint-config-standard@39.0.0/LICENSE"
146
146
  },
147
- "stylelint-scss@6.0.0": {
147
+ "stylelint-scss@6.12.1": {
148
148
  "licenses": "MIT",
149
149
  "repository": "https://github.com/stylelint-scss/stylelint-scss",
150
- "licenseUrl": "https://github.com/stylelint-scss/stylelint-scss/raw/HEAD/LICENSE"
150
+ "licenseUrl": "https://unpkg.com/stylelint-scss@6.12.1/LICENSE"
151
151
  },
152
- "stylelint@16.1.0": {
152
+ "stylelint@16.23.1": {
153
153
  "licenses": "MIT",
154
154
  "repository": "https://github.com/stylelint/stylelint",
155
- "licenseUrl": "https://github.com/stylelint/stylelint/raw/HEAD/LICENSE"
155
+ "licenseUrl": "https://unpkg.com/stylelint@16.23.1/LICENSE"
156
156
  },
157
- "tsup@8.0.1": {
157
+ "tsup@8.5.0": {
158
158
  "licenses": "MIT",
159
159
  "repository": "https://github.com/egoist/tsup",
160
- "licenseUrl": "https://github.com/egoist/tsup/raw/HEAD/LICENSE"
160
+ "licenseUrl": "https://unpkg.com/tsup@8.5.0/LICENSE"
161
161
  },
162
- "turbo@1.11.2": {
163
- "licenses": "MPL-2.0",
164
- "repository": "https://github.com/vercel/turbo",
165
- "licenseUrl": "https://github.com/vercel/turbo/raw/HEAD/LICENSE"
162
+ "turbo@2.5.6": {
163
+ "licenses": "MIT",
164
+ "repository": "https://github.com/vercel/turborepo",
165
+ "licenseUrl": "https://unpkg.com/turbo@2.5.6/LICENSE"
166
+ },
167
+ "typescript-eslint@8.41.0": {
168
+ "licenses": "MIT",
169
+ "repository": "https://github.com/typescript-eslint/typescript-eslint",
170
+ "licenseUrl": "https://unpkg.com/typescript-eslint@8.41.0/LICENSE"
166
171
  },
167
- "typescript@5.3.3": {
172
+ "typescript@5.9.2": {
168
173
  "licenses": "Apache-2.0",
169
- "repository": "https://github.com/Microsoft/TypeScript",
170
- "licenseUrl": "https://github.com/Microsoft/TypeScript/raw/HEAD/LICENSE.txt"
174
+ "repository": "https://github.com/microsoft/TypeScript",
175
+ "licenseUrl": "https://unpkg.com/typescript@5.9.2/LICENSE.txt"
171
176
  },
172
- "vite-tsconfig-paths@4.2.3": {
177
+ "vite-tsconfig-paths@5.1.4": {
173
178
  "licenses": "MIT",
174
179
  "repository": "https://github.com/aleclarson/vite-tsconfig-paths",
175
- "licenseUrl": "https://github.com/aleclarson/vite-tsconfig-paths/raw/HEAD/LICENSE"
180
+ "licenseUrl": "https://unpkg.com/vite-tsconfig-paths@5.1.4/LICENSE"
176
181
  },
177
- "vite@5.0.10": {
182
+ "vite@7.1.3": {
178
183
  "licenses": "MIT",
179
184
  "repository": "https://github.com/vitejs/vite",
180
- "licenseUrl": "https://github.com/vitejs/vite/raw/HEAD/LICENSE.md"
185
+ "licenseUrl": "https://unpkg.com/vite@7.1.3/LICENSE.md"
181
186
  },
182
- "vitest@1.1.1": {
187
+ "vitest@3.2.4": {
183
188
  "licenses": "MIT",
184
189
  "repository": "https://github.com/vitest-dev/vitest",
185
- "licenseUrl": "https://github.com/vitest-dev/vitest/raw/HEAD/LICENSE.md"
190
+ "licenseUrl": "https://unpkg.com/vitest@3.2.4/LICENSE.md"
186
191
  },
187
- "yargs@17.7.2": {
192
+ "yargs@18.0.0": {
188
193
  "licenses": "MIT",
189
194
  "repository": "https://github.com/yargs/yargs",
190
- "licenseUrl": "https://github.com/yargs/yargs/raw/HEAD/LICENSE"
195
+ "licenseUrl": "https://unpkg.com/yargs@18.0.0/LICENSE"
191
196
  }
192
197
  }
package/package.json CHANGED
@@ -1,13 +1,13 @@
1
1
  {
2
2
  "name": "@cas-smartdesign/snackbar",
3
- "version": "3.0.2",
3
+ "version": "3.1.1",
4
4
  "description": "A snackbar element based on LitElement",
5
5
  "main": "dist/snackbar-with-externals.js",
6
6
  "module": "dist/snackbar.mjs",
7
7
  "license": "SEE LICENSE IN LICENSE",
8
8
  "types": "dist/snackbar.d.ts",
9
9
  "dependencies": {
10
- "lit": "^2.8.0"
10
+ "lit": "^3.3.1"
11
11
  },
12
12
  "files": [
13
13
  "dist",
@@ -18,8 +18,8 @@
18
18
  "access": "public"
19
19
  },
20
20
  "devDependencies": {
21
- "@cas-smartdesign/element-preview": "^0.2.2",
22
- "@cas-smartdesign/license-generator": "^1.6.3"
21
+ "@cas-smartdesign/license-generator": "^1.8.1",
22
+ "@cas-smartdesign/element-preview": "^0.3.1"
23
23
  },
24
24
  "scripts": {
25
25
  "version": "pnpm version",