@cupra/ui-kit 1.1.0-canary.2 → 1.1.0-canary.3

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.
Files changed (27) hide show
  1. package/dist/components/ds-dialog-fullscreen/ds-dialog-fullscreen.d.ts +21 -0
  2. package/dist/components/ds-dialog-fullscreen/ds-dialog-fullscreen.js +95 -0
  3. package/dist/components/ds-dialog-fullscreen/ds-dialog-fullscreen.types.d.ts +4 -0
  4. package/dist/components/ds-dialog-fullscreen/styles/common.styles.d.ts +1 -0
  5. package/dist/components/ds-dialog-fullscreen/styles/common.styles.js +88 -0
  6. package/dist/components/ds-theme-provider/ds-theme-provider.js +1 -1
  7. package/dist/components/index.d.ts +13 -12
  8. package/dist/index.js +15 -14
  9. package/dist/utils/IconsManager.js +1 -1
  10. package/dist/utils/PubSub.js +1 -1
  11. package/dist/utils/StylesRegistry/StylesRegistry.js +1 -1
  12. package/dist/utils/cssWithTokens.js +1 -1
  13. package/dist/utils/htmlWithTokens.js +1 -1
  14. package/dist-react/components/ds-dialog-fullscreen/ds-dialog-fullscreen.d.ts +21 -0
  15. package/dist-react/components/ds-dialog-fullscreen/ds-dialog-fullscreen.js +95 -0
  16. package/dist-react/components/ds-dialog-fullscreen/ds-dialog-fullscreen.types.d.ts +4 -0
  17. package/dist-react/components/ds-dialog-fullscreen/styles/common.styles.d.ts +1 -0
  18. package/dist-react/components/ds-dialog-fullscreen/styles/common.styles.js +88 -0
  19. package/dist-react/components/ds-theme-provider/ds-theme-provider.js +1 -1
  20. package/dist-react/components/index.d.ts +13 -12
  21. package/dist-react/index.js +15 -14
  22. package/dist-react/utils/IconsManager.js +1 -1
  23. package/dist-react/utils/PubSub.js +1 -1
  24. package/dist-react/utils/StylesRegistry/StylesRegistry.js +1 -1
  25. package/dist-react/utils/cssWithTokens.js +1 -1
  26. package/dist-react/utils/htmlWithTokens.js +1 -1
  27. package/package.json +1 -1
@@ -0,0 +1,21 @@
1
+ import { UiKitElement } from '../base/UiKitElement.ts';
2
+ import { type PropertyValues, nothing } from 'lit';
3
+ import type { DsDialogFullscreenAttrs } from './ds-dialog-fullscreen.types.ts';
4
+ export declare class DsDialogFullscreen extends UiKitElement {
5
+ static styles: import("lit").CSSResult[];
6
+ open: DsDialogFullscreenAttrs['open'];
7
+ hasBeenOpened: boolean;
8
+ hasScroll: boolean;
9
+ protected content: HTMLInputElement;
10
+ private resizeObserver;
11
+ private debouncedCheckScroll;
12
+ updated(changedProperties: PropertyValues): Promise<void>;
13
+ handleResizeObserver(): Promise<void>;
14
+ private get containerClasses();
15
+ private handleClose;
16
+ connectedCallback(): void;
17
+ disconnectedCallback(): void;
18
+ private handleKeyDown;
19
+ private checkScroll;
20
+ render(): typeof nothing | import("lit").TemplateResult<1>;
21
+ }
@@ -0,0 +1,95 @@
1
+ import { UiKitElement as h } from "../base/UiKitElement.js";
2
+ import { customUiKitElement as d } from "../../decorators/customUiKitElement.js";
3
+ import { booleanConverter as p } from "../../utils/booleanConverter.js";
4
+ import { debounce as m } from "../../utils/debounce.js";
5
+ import "../../node_modules/.pnpm/@lit_reactive-element@2.1.1/node_modules/@lit/reactive-element/reactive-element.js";
6
+ import { nothing as u, html as f } from "../../node_modules/.pnpm/lit-html@3.3.1/node_modules/lit-html/lit-html.js";
7
+ import "../../node_modules/.pnpm/lit-element@4.2.1/node_modules/lit-element/lit-element.js";
8
+ import { property as v } from "../../node_modules/.pnpm/@lit_reactive-element@2.1.1/node_modules/@lit/reactive-element/decorators/property.js";
9
+ import { state as a } from "../../node_modules/.pnpm/@lit_reactive-element@2.1.1/node_modules/@lit/reactive-element/decorators/state.js";
10
+ import { query as b } from "../../node_modules/.pnpm/@lit_reactive-element@2.1.1/node_modules/@lit/reactive-element/decorators/query.js";
11
+ import { classMap as y } from "../../node_modules/.pnpm/lit-html@3.3.1/node_modules/lit-html/directives/class-map.js";
12
+ import { commonStyles as w } from "./styles/common.styles.js";
13
+ var O = Object.defineProperty, C = Object.getOwnPropertyDescriptor, n = (e, s, i, r) => {
14
+ for (var t = r > 1 ? void 0 : r ? C(s, i) : s, l = e.length - 1, c; l >= 0; l--)
15
+ (c = e[l]) && (t = (r ? c(s, i, t) : c(t)) || t);
16
+ return r && t && O(s, i, t), t;
17
+ };
18
+ let o = class extends h {
19
+ constructor() {
20
+ super(...arguments), this.open = !1, this.hasBeenOpened = !1, this.hasScroll = !1, this.debouncedCheckScroll = m({ func: () => this.checkScroll() }), this.handleKeyDown = (e) => {
21
+ this.open && e.key === "Escape" && this.handleClose();
22
+ };
23
+ }
24
+ async updated(e) {
25
+ super.updated(e), !this.hasBeenOpened && e.has("open") && this.open && (this.hasBeenOpened = !0), e.has("open") && this.handleResizeObserver(), e.has("open") && this.open && (await this.updateComplete, this.requestUpdate());
26
+ }
27
+ async handleResizeObserver() {
28
+ var e;
29
+ document.body.style.overflow = this.open ? "hidden" : "", (e = this.resizeObserver) == null || e.disconnect(), this.content && (this.resizeObserver.observe(this.content), await new Promise(requestAnimationFrame), this.checkScroll());
30
+ }
31
+ get containerClasses() {
32
+ return {
33
+ "container-fullscreen": !0,
34
+ close: !this.open,
35
+ "with-scroll": this.open && this.hasScroll
36
+ };
37
+ }
38
+ handleClose() {
39
+ this.open = !1, this.dispatchEvent(
40
+ new Event("ds-dialog-fullscreen:close", {
41
+ bubbles: !0,
42
+ composed: !0
43
+ })
44
+ );
45
+ }
46
+ connectedCallback() {
47
+ super.connectedCallback(), window.addEventListener("keydown", this.handleKeyDown), this.resizeObserver = new ResizeObserver(this.debouncedCheckScroll), this.handleResizeObserver();
48
+ }
49
+ disconnectedCallback() {
50
+ var e;
51
+ super.disconnectedCallback(), window.removeEventListener("keydown", this.handleKeyDown), document.body.style.overflow = "", (e = this.resizeObserver) == null || e.disconnect();
52
+ }
53
+ checkScroll() {
54
+ var e, s;
55
+ this.hasScroll = ((e = this.content) == null ? void 0 : e.scrollHeight) > ((s = this.content) == null ? void 0 : s.clientHeight);
56
+ }
57
+ render() {
58
+ return !this.hasBeenOpened && !this.open ? u : f`
59
+ <style>
60
+ :host {
61
+ display: ${this.open ? "flex" : "none"};
62
+ }
63
+ </style>
64
+
65
+ <div class=${y(this.containerClasses)}>
66
+ <dialog ?open=${this.open} data-testid="ds-dialog-fullscreen-container" class="dialog-fullscreen">
67
+ <slot name="close-button" @click=${this.handleClose}></slot>
68
+ <div class="content-container-fullscreen">
69
+ <div tabindex="0" class="content-fullscreen ds-scroll">
70
+ <slot @slotchange=${this.handleResizeObserver}></slot>
71
+ </div>
72
+ </dialog>
73
+ </div>
74
+ `;
75
+ }
76
+ };
77
+ o.styles = [w];
78
+ n([
79
+ v({ type: Boolean, converter: p })
80
+ ], o.prototype, "open", 2);
81
+ n([
82
+ a()
83
+ ], o.prototype, "hasBeenOpened", 2);
84
+ n([
85
+ a()
86
+ ], o.prototype, "hasScroll", 2);
87
+ n([
88
+ b(".content")
89
+ ], o.prototype, "content", 2);
90
+ o = n([
91
+ d("ds-dialog-fullscreen")
92
+ ], o);
93
+ export {
94
+ o as DsDialogFullscreen
95
+ };
@@ -0,0 +1,4 @@
1
+ import type { CommonAttrs } from '../../types/types';
2
+ export type DsDialogFullscreenAttrs = {
3
+ open?: boolean;
4
+ } & CommonAttrs;
@@ -0,0 +1 @@
1
+ export declare const commonStyles: import("lit").CSSResult;
@@ -0,0 +1,88 @@
1
+ import { cssQueries as l } from "../../../utils/cssQueries.js";
2
+ import "../../../node_modules/.pnpm/@lit_reactive-element@2.1.1/node_modules/@lit/reactive-element/reactive-element.js";
3
+ import "../../../node_modules/.pnpm/lit-html@3.3.1/node_modules/lit-html/lit-html.js";
4
+ import "../../../node_modules/.pnpm/lit-element@4.2.1/node_modules/lit-element/lit-element.js";
5
+ import { css as r } from "../../../node_modules/.pnpm/@lit_reactive-element@2.1.1/node_modules/@lit/reactive-element/css-tag.js";
6
+ const c = r`
7
+ :host {
8
+ transition: display 0.3s cubic-bezier(0, 0, 0.2, 1) allow-discrete;
9
+ }
10
+
11
+ .container-fullscreen.close {
12
+ display: none;
13
+ opacity: 0;
14
+ }
15
+
16
+ .container-fullscreen {
17
+ position: fixed;
18
+ top: 0;
19
+ left: 0;
20
+ padding: 0;
21
+ width: 100dvw;
22
+ height: 100dvh;
23
+ display: flex;
24
+ justify-content: center;
25
+ align-items: center;
26
+ z-index: var(--ds-z-index-modal);
27
+ background-color: var(--dg-color-bg-modal);
28
+ transition:
29
+ opacity 0.3s cubic-bezier(0, 0, 0.2, 1),
30
+ display 0.3s cubic-bezier(0, 0, 0.2, 1) allow-discrete;
31
+ opacity: 1;
32
+ @starting-style {
33
+ opacity: 0;
34
+ }
35
+ }
36
+
37
+ .dialog-fullscreen {
38
+ padding: 0;
39
+ position: relative;
40
+ }
41
+
42
+ .content-container-fullscreen {
43
+ display: flex;
44
+ flex-direction: column;
45
+ overflow: hidden;
46
+ height: 100%;
47
+ width: 100%;
48
+ justify-content: center;
49
+ align-items: center;
50
+ }
51
+
52
+ .ds-scroll::-webkit-scrollbar,
53
+ .ds-scroll-global *::-webkit-scrollbar {
54
+ appearance: none;
55
+ display: initial;
56
+ }
57
+
58
+ .ds-scroll::-webkit-scrollbar-thumb,
59
+ .ds-scroll-global *::-webkit-scrollbar-thumb {
60
+ border-radius: var(--dg-border-radius-full);
61
+ background-clip: padding-box;
62
+ background-color: var(--dg-global-opacity-white-70);
63
+ }
64
+
65
+ .ds-scroll::-webkit-scrollbar-track,
66
+ .ds-scroll-global *::-webkit-scrollbar-track {
67
+ background-color: transparent;
68
+ }
69
+
70
+ ${l.xs} {
71
+ .ds-scroll::-webkit-scrollbar,
72
+ .ds-scroll-global *::-webkit-scrollbar {
73
+ height: 4px;
74
+ width: 4px;
75
+ }
76
+ }
77
+
78
+ ${l.m} {
79
+ .ds-scroll::-webkit-scrollbar,
80
+ .ds-scroll-global *::-webkit-scrollbar {
81
+ height: 8px;
82
+ width: 8px;
83
+ }
84
+ }
85
+ `;
86
+ export {
87
+ c as commonStyles
88
+ };
@@ -54,7 +54,7 @@ let m = class extends v {
54
54
  }
55
55
  loadThemeStyles() {
56
56
  return this.loadStyles ? new Promise((t, o) => {
57
- const s = "/1.1.0-canary.2", r = `https://ds-assets.cupra.com${s}/styles/${this.theme}/theme.css`;
57
+ const s = "/1.1.0-canary.3", r = `https://ds-assets.cupra.com${s}/styles/${this.theme}/theme.css`;
58
58
  if (document.head.querySelector(`link[href="${r}"]`)) t();
59
59
  else {
60
60
  const e = `ui-kit-theme-${s}`, a = document.getElementById(e), n = document.createElement("link");
@@ -1,4 +1,6 @@
1
1
  import './ds-accordion/ds-accordion.ts';
2
+ import './ds-avatar/ds-avatar.ts';
3
+ import './ds-badge/ds-badge.ts';
2
4
  import './ds-bullets/ds-bullets.ts';
3
5
  import './ds-button/ds-button.ts';
4
6
  import './ds-carousel-indicator/ds-carousel-indicator.ts';
@@ -6,16 +8,18 @@ import './ds-checkbox/ds-checkbox.ts';
6
8
  import './ds-chip/ds-chip.ts';
7
9
  import './ds-chips/ds-chips.ts';
8
10
  import './ds-currency/ds-currency.ts';
11
+ import './ds-dialog/ds-dialog.ts';
9
12
  import './ds-dialog-body/ds-dialog-body.ts';
10
13
  import './ds-dialog-footer/ds-dialog-footer.ts';
14
+ import './ds-dialog-fullscreen/ds-dialog-fullscreen.ts';
11
15
  import './ds-dialog-header/ds-dialog-header.ts';
12
- import './ds-dialog/ds-dialog.ts';
13
16
  import './ds-divider/ds-divider.ts';
14
17
  import './ds-drawer/ds-drawer.ts';
15
18
  import './ds-hyperlink/ds-hyperlink.ts';
16
- import './ds-icon-button/ds-icon-button.ts';
17
19
  import './ds-icon/ds-icon.ts';
20
+ import './ds-icon-button/ds-icon-button.ts';
18
21
  import './ds-input/ds-input.ts';
22
+ import './ds-interactive-card/ds-interactive-card.ts';
19
23
  import './ds-link-button/ds-link-button.ts';
20
24
  import './ds-loader-bar/ds-loader-bar.ts';
21
25
  import './ds-loader-dots/ds-loader-dots.ts';
@@ -31,30 +35,27 @@ import './ds-portal/ds-portal.ts';
31
35
  import './ds-progress-bar/ds-progress-bar.ts';
32
36
  import './ds-radio/ds-radio.ts';
33
37
  import './ds-radio-button/ds-radio-button.ts';
38
+ import './ds-radio-button-group/ds-radio-button-group.ts';
34
39
  import './ds-radio-group/ds-radio-group.ts';
35
40
  import './ds-rating/ds-rating.ts';
36
- import './ds-search-input/ds-search-input.ts';
37
41
  import './ds-search/ds-search.ts';
42
+ import './ds-search-input/ds-search-input.ts';
38
43
  import './ds-secondary-navigation/ds-secondary-navigation.ts';
39
44
  import './ds-segmented-control/ds-segmented-control.ts';
40
45
  import './ds-select/ds-select.ts';
41
46
  import './ds-selection/ds-selection.ts';
47
+ import './ds-sidebar-navigation/ds-sidebar-navigation.ts';
42
48
  import './ds-slider/ds-slider.ts';
49
+ import './ds-static-box/ds-static-box.ts';
50
+ import './ds-stepper/ds-stepper.ts';
43
51
  import './ds-tabs/ds-tabs.ts';
44
52
  import './ds-tag/ds-tag.ts';
45
- import './ds-text-input/ds-text-input.ts';
46
53
  import './ds-text/ds-text.ts';
54
+ import './ds-text-input/ds-text-input.ts';
47
55
  import './ds-textarea/ds-textarea.ts';
48
56
  import './ds-theme-provider/ds-theme-provider.ts';
49
- import './ds-toast-message/ds-toast-message.ts';
50
57
  import './ds-toast/ds-toast.ts';
58
+ import './ds-toast-message/ds-toast-message.ts';
51
59
  import './ds-toggle-button/ds-toggle-button.ts';
52
60
  import './ds-toggle-switch/ds-toggle-switch.ts';
53
61
  import './ds-tooltip/ds-tooltip.ts';
54
- import './ds-avatar/ds-avatar.ts';
55
- import './ds-stepper/ds-stepper.ts';
56
- import './ds-static-box/ds-static-box.ts';
57
- import './ds-interactive-card/ds-interactive-card.ts';
58
- import './ds-radio-button-group/ds-radio-button-group.ts';
59
- import './ds-sidebar-navigation/ds-sidebar-navigation.ts';
60
- import './ds-badge/ds-badge.ts';
package/dist/index.js CHANGED
@@ -1,4 +1,6 @@
1
1
  import "./components/ds-accordion/ds-accordion.js";
2
+ import "./components/ds-avatar/ds-avatar.js";
3
+ import "./components/ds-badge/ds-badge.js";
2
4
  import "./components/ds-bullets/ds-bullets.js";
3
5
  import "./components/ds-button/ds-button.js";
4
6
  import "./components/ds-carousel-indicator/ds-carousel-indicator.js";
@@ -6,16 +8,18 @@ import "./components/ds-checkbox/ds-checkbox.js";
6
8
  import "./components/ds-chip/ds-chip.js";
7
9
  import "./components/ds-chips/ds-chips.js";
8
10
  import "./components/ds-currency/ds-currency.js";
11
+ import "./components/ds-dialog/ds-dialog.js";
9
12
  import "./components/ds-dialog-body/ds-dialog-body.js";
10
13
  import "./components/ds-dialog-footer/ds-dialog-footer.js";
14
+ import "./components/ds-dialog-fullscreen/ds-dialog-fullscreen.js";
11
15
  import "./components/ds-dialog-header/ds-dialog-header.js";
12
- import "./components/ds-dialog/ds-dialog.js";
13
16
  import "./components/ds-divider/ds-divider.js";
14
17
  import "./components/ds-drawer/ds-drawer.js";
15
18
  import "./components/ds-hyperlink/ds-hyperlink.js";
16
- import "./components/ds-icon-button/ds-icon-button.js";
17
19
  import "./components/ds-icon/ds-icon.js";
20
+ import "./components/ds-icon-button/ds-icon-button.js";
18
21
  import "./components/ds-input/ds-input.js";
22
+ import "./components/ds-interactive-card/ds-interactive-card.js";
19
23
  import "./components/ds-link-button/ds-link-button.js";
20
24
  import "./components/ds-loader-bar/ds-loader-bar.js";
21
25
  import "./components/ds-loader-dots/ds-loader-dots.js";
@@ -31,34 +35,31 @@ import "./components/ds-portal/ds-portal.js";
31
35
  import "./components/ds-progress-bar/ds-progress-bar.js";
32
36
  import "./components/ds-radio/ds-radio.js";
33
37
  import "./components/ds-radio-button/ds-radio-button.js";
38
+ import "./components/ds-radio-button-group/ds-radio-button-group.js";
34
39
  import "./components/ds-radio-group/ds-radio-group.js";
35
40
  import "./components/ds-rating/ds-rating.js";
36
- import "./components/ds-search-input/ds-search-input.js";
37
41
  import "./components/ds-search/ds-search.js";
42
+ import "./components/ds-search-input/ds-search-input.js";
38
43
  import "./components/ds-secondary-navigation/ds-secondary-navigation.js";
39
44
  import "./components/ds-segmented-control/ds-segmented-control.js";
40
45
  import "./components/ds-select/ds-select.js";
41
46
  import "./components/ds-selection/ds-selection.js";
47
+ import "./components/ds-sidebar-navigation/ds-sidebar-navigation.js";
42
48
  import "./components/ds-slider/ds-slider.js";
49
+ import "./components/ds-static-box/ds-static-box.js";
50
+ import "./components/ds-stepper/ds-stepper.js";
43
51
  import "./components/ds-tabs/ds-tabs.js";
44
52
  import "./components/ds-tag/ds-tag.js";
45
- import "./components/ds-text-input/ds-text-input.js";
46
53
  import "./components/ds-text/ds-text.js";
54
+ import "./components/ds-text-input/ds-text-input.js";
47
55
  import "./components/ds-textarea/ds-textarea.js";
48
56
  import "./components/ds-theme-provider/ds-theme-provider.js";
49
- import "./components/ds-toast-message/ds-toast-message.js";
50
57
  import "./components/ds-toast/ds-toast.js";
58
+ import "./components/ds-toast-message/ds-toast-message.js";
51
59
  import "./components/ds-toggle-button/ds-toggle-button.js";
52
60
  import "./components/ds-toggle-switch/ds-toggle-switch.js";
53
61
  import "./components/ds-tooltip/ds-tooltip.js";
54
- import "./components/ds-avatar/ds-avatar.js";
55
- import "./components/ds-stepper/ds-stepper.js";
56
- import "./components/ds-static-box/ds-static-box.js";
57
- import "./components/ds-interactive-card/ds-interactive-card.js";
58
- import "./components/ds-radio-button-group/ds-radio-button-group.js";
59
- import "./components/ds-sidebar-navigation/ds-sidebar-navigation.js";
60
- import "./components/ds-badge/ds-badge.js";
61
- import { iconNames as co } from "./components/ds-icon/iconNames.js";
62
+ import { iconNames as fo } from "./components/ds-icon/iconNames.js";
62
63
  export {
63
- co as iconNames
64
+ fo as iconNames
64
65
  };
@@ -25,7 +25,7 @@ class f {
25
25
  }) : Promise.resolve('<svg class="ds-icon"></svg>'), l.subscribe("theme", this.handleChangeTheme);
26
26
  }
27
27
  }
28
- const c = Symbol.for("@cupra/ui-kit/icons-manager/1.1.0-canary.2"), h = globalThis;
28
+ const c = Symbol.for("@cupra/ui-kit/icons-manager/1.1.0-canary.3"), h = globalThis;
29
29
  let n = h[c];
30
30
  n || (n = new f(), Object.defineProperty(h, c, {
31
31
  value: n,
@@ -18,7 +18,7 @@ class e {
18
18
  });
19
19
  }
20
20
  }
21
- const u = Symbol.for("@cupra/ui-kit/pubsub/1.1.0-canary.2"), t = globalThis;
21
+ const u = Symbol.for("@cupra/ui-kit/pubsub/1.1.0-canary.3"), t = globalThis;
22
22
  let b = t[u];
23
23
  b || (b = new e(), Object.defineProperty(t, u, {
24
24
  value: b,
@@ -5,7 +5,7 @@ class s {
5
5
  theme: t
6
6
  }) => {
7
7
  if (!t || !e) return;
8
- const c = `https://ds-assets.cupra.com/1.1.0-canary.2/styles/${t}/components/${e}.css`, r = this.getCachedStyleSheetPromise({ url: c });
8
+ const c = `https://ds-assets.cupra.com/1.1.0-canary.3/styles/${t}/components/${e}.css`, r = this.getCachedStyleSheetPromise({ url: c });
9
9
  if (r) return r;
10
10
  const i = this.fetchStyle({ url: c }).then((n) => (n || this.stylePromises.delete(c), n));
11
11
  return this.stylePromises.set(c, i), this.stylePromises.get(c);
@@ -3,7 +3,7 @@ import "../node_modules/.pnpm/lit-html@3.3.1/node_modules/lit-html/lit-html.js";
3
3
  import "../node_modules/.pnpm/lit-element@4.2.1/node_modules/lit-element/lit-element.js";
4
4
  import { unsafeCSS as n, css as o } from "../node_modules/.pnpm/@lit_reactive-element@2.1.1/node_modules/@lit/reactive-element/css-tag.js";
5
5
  function x(t, ...r) {
6
- const e = String.raw({ raw: t }, ...r).replace(/(--private-[\w-]+)(?=\s*[):,])/g, "$1-v1-1-0-canary-2"), i = n(e);
6
+ const e = String.raw({ raw: t }, ...r).replace(/(--private-[\w-]+)(?=\s*[):,])/g, "$1-v1-1-0-canary-3"), i = n(e);
7
7
  return o`${i}`;
8
8
  }
9
9
  export {
@@ -3,7 +3,7 @@ import { html as n } from "../node_modules/.pnpm/lit-html@3.3.1/node_modules/lit
3
3
  import "../node_modules/.pnpm/lit-element@4.2.1/node_modules/lit-element/lit-element.js";
4
4
  import { unsafeHTML as i } from "../node_modules/.pnpm/lit-html@3.3.1/node_modules/lit-html/directives/unsafe-html.js";
5
5
  function x(t, ...r) {
6
- const o = String.raw({ raw: t }, ...r).replace(/(--private-[\w-]+)(?=\s*[):,])/g, "$1-v1-1-0-canary-2"), e = i(o);
6
+ const o = String.raw({ raw: t }, ...r).replace(/(--private-[\w-]+)(?=\s*[):,])/g, "$1-v1-1-0-canary-3"), e = i(o);
7
7
  return n`${e}`;
8
8
  }
9
9
  export {
@@ -0,0 +1,21 @@
1
+ import { UiKitElement } from '../base/UiKitElement.ts';
2
+ import { type PropertyValues, nothing } from 'lit';
3
+ import type { DsDialogFullscreenAttrs } from './ds-dialog-fullscreen.types.ts';
4
+ export declare class DsDialogFullscreen extends UiKitElement {
5
+ static styles: import("lit").CSSResult[];
6
+ open: DsDialogFullscreenAttrs['open'];
7
+ hasBeenOpened: boolean;
8
+ hasScroll: boolean;
9
+ protected content: HTMLInputElement;
10
+ private resizeObserver;
11
+ private debouncedCheckScroll;
12
+ updated(changedProperties: PropertyValues): Promise<void>;
13
+ handleResizeObserver(): Promise<void>;
14
+ private get containerClasses();
15
+ private handleClose;
16
+ connectedCallback(): void;
17
+ disconnectedCallback(): void;
18
+ private handleKeyDown;
19
+ private checkScroll;
20
+ render(): typeof nothing | import("lit").TemplateResult<1>;
21
+ }
@@ -0,0 +1,95 @@
1
+ import { UiKitElement as h } from "../base/UiKitElement.js";
2
+ import { customUiKitElement as d } from "../../decorators/customUiKitElement.js";
3
+ import { booleanConverter as p } from "../../utils/booleanConverter.js";
4
+ import { debounce as m } from "../../utils/debounce.js";
5
+ import "../../node_modules/.pnpm/@lit_reactive-element@2.1.1/node_modules/@lit/reactive-element/reactive-element.js";
6
+ import { nothing as u, html as f } from "../../node_modules/.pnpm/lit-html@3.3.1/node_modules/lit-html/lit-html.js";
7
+ import "../../node_modules/.pnpm/lit-element@4.2.1/node_modules/lit-element/lit-element.js";
8
+ import { property as v } from "../../node_modules/.pnpm/@lit_reactive-element@2.1.1/node_modules/@lit/reactive-element/decorators/property.js";
9
+ import { state as a } from "../../node_modules/.pnpm/@lit_reactive-element@2.1.1/node_modules/@lit/reactive-element/decorators/state.js";
10
+ import { query as b } from "../../node_modules/.pnpm/@lit_reactive-element@2.1.1/node_modules/@lit/reactive-element/decorators/query.js";
11
+ import { classMap as y } from "../../node_modules/.pnpm/lit-html@3.3.1/node_modules/lit-html/directives/class-map.js";
12
+ import { commonStyles as w } from "./styles/common.styles.js";
13
+ var O = Object.defineProperty, C = Object.getOwnPropertyDescriptor, n = (e, s, i, r) => {
14
+ for (var t = r > 1 ? void 0 : r ? C(s, i) : s, l = e.length - 1, c; l >= 0; l--)
15
+ (c = e[l]) && (t = (r ? c(s, i, t) : c(t)) || t);
16
+ return r && t && O(s, i, t), t;
17
+ };
18
+ let o = class extends h {
19
+ constructor() {
20
+ super(...arguments), this.open = !1, this.hasBeenOpened = !1, this.hasScroll = !1, this.debouncedCheckScroll = m({ func: () => this.checkScroll() }), this.handleKeyDown = (e) => {
21
+ this.open && e.key === "Escape" && this.handleClose();
22
+ };
23
+ }
24
+ async updated(e) {
25
+ super.updated(e), !this.hasBeenOpened && e.has("open") && this.open && (this.hasBeenOpened = !0), e.has("open") && this.handleResizeObserver(), e.has("open") && this.open && (await this.updateComplete, this.requestUpdate());
26
+ }
27
+ async handleResizeObserver() {
28
+ var e;
29
+ document.body.style.overflow = this.open ? "hidden" : "", (e = this.resizeObserver) == null || e.disconnect(), this.content && (this.resizeObserver.observe(this.content), await new Promise(requestAnimationFrame), this.checkScroll());
30
+ }
31
+ get containerClasses() {
32
+ return {
33
+ "container-fullscreen": !0,
34
+ close: !this.open,
35
+ "with-scroll": this.open && this.hasScroll
36
+ };
37
+ }
38
+ handleClose() {
39
+ this.open = !1, this.dispatchEvent(
40
+ new Event("ds-dialog-fullscreen:close", {
41
+ bubbles: !0,
42
+ composed: !0
43
+ })
44
+ );
45
+ }
46
+ connectedCallback() {
47
+ super.connectedCallback(), window.addEventListener("keydown", this.handleKeyDown), this.resizeObserver = new ResizeObserver(this.debouncedCheckScroll), this.handleResizeObserver();
48
+ }
49
+ disconnectedCallback() {
50
+ var e;
51
+ super.disconnectedCallback(), window.removeEventListener("keydown", this.handleKeyDown), document.body.style.overflow = "", (e = this.resizeObserver) == null || e.disconnect();
52
+ }
53
+ checkScroll() {
54
+ var e, s;
55
+ this.hasScroll = ((e = this.content) == null ? void 0 : e.scrollHeight) > ((s = this.content) == null ? void 0 : s.clientHeight);
56
+ }
57
+ render() {
58
+ return !this.hasBeenOpened && !this.open ? u : f`
59
+ <style>
60
+ :host {
61
+ display: ${this.open ? "flex" : "none"};
62
+ }
63
+ </style>
64
+
65
+ <div class=${y(this.containerClasses)}>
66
+ <dialog ?open=${this.open} data-testid="ds-dialog-fullscreen-container" class="dialog-fullscreen">
67
+ <slot name="close-button" @click=${this.handleClose}></slot>
68
+ <div class="content-container-fullscreen">
69
+ <div tabindex="0" class="content-fullscreen ds-scroll">
70
+ <slot @slotchange=${this.handleResizeObserver}></slot>
71
+ </div>
72
+ </dialog>
73
+ </div>
74
+ `;
75
+ }
76
+ };
77
+ o.styles = [w];
78
+ n([
79
+ v({ type: Boolean, converter: p })
80
+ ], o.prototype, "open", 2);
81
+ n([
82
+ a()
83
+ ], o.prototype, "hasBeenOpened", 2);
84
+ n([
85
+ a()
86
+ ], o.prototype, "hasScroll", 2);
87
+ n([
88
+ b(".content")
89
+ ], o.prototype, "content", 2);
90
+ o = n([
91
+ d("ds-dialog-fullscreen")
92
+ ], o);
93
+ export {
94
+ o as DsDialogFullscreen
95
+ };
@@ -0,0 +1,4 @@
1
+ import type { CommonAttrs } from '../../types/types';
2
+ export type DsDialogFullscreenAttrs = {
3
+ open?: boolean;
4
+ } & CommonAttrs;
@@ -0,0 +1 @@
1
+ export declare const commonStyles: import("lit").CSSResult;
@@ -0,0 +1,88 @@
1
+ import { cssQueries as l } from "../../../utils/cssQueries.js";
2
+ import "../../../node_modules/.pnpm/@lit_reactive-element@2.1.1/node_modules/@lit/reactive-element/reactive-element.js";
3
+ import "../../../node_modules/.pnpm/lit-html@3.3.1/node_modules/lit-html/lit-html.js";
4
+ import "../../../node_modules/.pnpm/lit-element@4.2.1/node_modules/lit-element/lit-element.js";
5
+ import { css as r } from "../../../node_modules/.pnpm/@lit_reactive-element@2.1.1/node_modules/@lit/reactive-element/css-tag.js";
6
+ const c = r`
7
+ :host {
8
+ transition: display 0.3s cubic-bezier(0, 0, 0.2, 1) allow-discrete;
9
+ }
10
+
11
+ .container-fullscreen.close {
12
+ display: none;
13
+ opacity: 0;
14
+ }
15
+
16
+ .container-fullscreen {
17
+ position: fixed;
18
+ top: 0;
19
+ left: 0;
20
+ padding: 0;
21
+ width: 100dvw;
22
+ height: 100dvh;
23
+ display: flex;
24
+ justify-content: center;
25
+ align-items: center;
26
+ z-index: var(--ds-z-index-modal);
27
+ background-color: var(--dg-color-bg-modal);
28
+ transition:
29
+ opacity 0.3s cubic-bezier(0, 0, 0.2, 1),
30
+ display 0.3s cubic-bezier(0, 0, 0.2, 1) allow-discrete;
31
+ opacity: 1;
32
+ @starting-style {
33
+ opacity: 0;
34
+ }
35
+ }
36
+
37
+ .dialog-fullscreen {
38
+ padding: 0;
39
+ position: relative;
40
+ }
41
+
42
+ .content-container-fullscreen {
43
+ display: flex;
44
+ flex-direction: column;
45
+ overflow: hidden;
46
+ height: 100%;
47
+ width: 100%;
48
+ justify-content: center;
49
+ align-items: center;
50
+ }
51
+
52
+ .ds-scroll::-webkit-scrollbar,
53
+ .ds-scroll-global *::-webkit-scrollbar {
54
+ appearance: none;
55
+ display: initial;
56
+ }
57
+
58
+ .ds-scroll::-webkit-scrollbar-thumb,
59
+ .ds-scroll-global *::-webkit-scrollbar-thumb {
60
+ border-radius: var(--dg-border-radius-full);
61
+ background-clip: padding-box;
62
+ background-color: var(--dg-global-opacity-white-70);
63
+ }
64
+
65
+ .ds-scroll::-webkit-scrollbar-track,
66
+ .ds-scroll-global *::-webkit-scrollbar-track {
67
+ background-color: transparent;
68
+ }
69
+
70
+ ${l.xs} {
71
+ .ds-scroll::-webkit-scrollbar,
72
+ .ds-scroll-global *::-webkit-scrollbar {
73
+ height: 4px;
74
+ width: 4px;
75
+ }
76
+ }
77
+
78
+ ${l.m} {
79
+ .ds-scroll::-webkit-scrollbar,
80
+ .ds-scroll-global *::-webkit-scrollbar {
81
+ height: 8px;
82
+ width: 8px;
83
+ }
84
+ }
85
+ `;
86
+ export {
87
+ c as commonStyles
88
+ };
@@ -54,7 +54,7 @@ let m = class extends v {
54
54
  }
55
55
  loadThemeStyles() {
56
56
  return this.loadStyles ? new Promise((t, o) => {
57
- const s = "/1.1.0-canary.2", r = `https://ds-assets.cupra.com${s}/styles/${this.theme}/theme.css`;
57
+ const s = "/1.1.0-canary.3", r = `https://ds-assets.cupra.com${s}/styles/${this.theme}/theme.css`;
58
58
  if (document.head.querySelector(`link[href="${r}"]`)) t();
59
59
  else {
60
60
  const e = `ui-kit-theme-${s}`, a = document.getElementById(e), n = document.createElement("link");
@@ -1,4 +1,6 @@
1
1
  import './ds-accordion/ds-accordion.ts';
2
+ import './ds-avatar/ds-avatar.ts';
3
+ import './ds-badge/ds-badge.ts';
2
4
  import './ds-bullets/ds-bullets.ts';
3
5
  import './ds-button/ds-button.ts';
4
6
  import './ds-carousel-indicator/ds-carousel-indicator.ts';
@@ -6,16 +8,18 @@ import './ds-checkbox/ds-checkbox.ts';
6
8
  import './ds-chip/ds-chip.ts';
7
9
  import './ds-chips/ds-chips.ts';
8
10
  import './ds-currency/ds-currency.ts';
11
+ import './ds-dialog/ds-dialog.ts';
9
12
  import './ds-dialog-body/ds-dialog-body.ts';
10
13
  import './ds-dialog-footer/ds-dialog-footer.ts';
14
+ import './ds-dialog-fullscreen/ds-dialog-fullscreen.ts';
11
15
  import './ds-dialog-header/ds-dialog-header.ts';
12
- import './ds-dialog/ds-dialog.ts';
13
16
  import './ds-divider/ds-divider.ts';
14
17
  import './ds-drawer/ds-drawer.ts';
15
18
  import './ds-hyperlink/ds-hyperlink.ts';
16
- import './ds-icon-button/ds-icon-button.ts';
17
19
  import './ds-icon/ds-icon.ts';
20
+ import './ds-icon-button/ds-icon-button.ts';
18
21
  import './ds-input/ds-input.ts';
22
+ import './ds-interactive-card/ds-interactive-card.ts';
19
23
  import './ds-link-button/ds-link-button.ts';
20
24
  import './ds-loader-bar/ds-loader-bar.ts';
21
25
  import './ds-loader-dots/ds-loader-dots.ts';
@@ -31,30 +35,27 @@ import './ds-portal/ds-portal.ts';
31
35
  import './ds-progress-bar/ds-progress-bar.ts';
32
36
  import './ds-radio/ds-radio.ts';
33
37
  import './ds-radio-button/ds-radio-button.ts';
38
+ import './ds-radio-button-group/ds-radio-button-group.ts';
34
39
  import './ds-radio-group/ds-radio-group.ts';
35
40
  import './ds-rating/ds-rating.ts';
36
- import './ds-search-input/ds-search-input.ts';
37
41
  import './ds-search/ds-search.ts';
42
+ import './ds-search-input/ds-search-input.ts';
38
43
  import './ds-secondary-navigation/ds-secondary-navigation.ts';
39
44
  import './ds-segmented-control/ds-segmented-control.ts';
40
45
  import './ds-select/ds-select.ts';
41
46
  import './ds-selection/ds-selection.ts';
47
+ import './ds-sidebar-navigation/ds-sidebar-navigation.ts';
42
48
  import './ds-slider/ds-slider.ts';
49
+ import './ds-static-box/ds-static-box.ts';
50
+ import './ds-stepper/ds-stepper.ts';
43
51
  import './ds-tabs/ds-tabs.ts';
44
52
  import './ds-tag/ds-tag.ts';
45
- import './ds-text-input/ds-text-input.ts';
46
53
  import './ds-text/ds-text.ts';
54
+ import './ds-text-input/ds-text-input.ts';
47
55
  import './ds-textarea/ds-textarea.ts';
48
56
  import './ds-theme-provider/ds-theme-provider.ts';
49
- import './ds-toast-message/ds-toast-message.ts';
50
57
  import './ds-toast/ds-toast.ts';
58
+ import './ds-toast-message/ds-toast-message.ts';
51
59
  import './ds-toggle-button/ds-toggle-button.ts';
52
60
  import './ds-toggle-switch/ds-toggle-switch.ts';
53
61
  import './ds-tooltip/ds-tooltip.ts';
54
- import './ds-avatar/ds-avatar.ts';
55
- import './ds-stepper/ds-stepper.ts';
56
- import './ds-static-box/ds-static-box.ts';
57
- import './ds-interactive-card/ds-interactive-card.ts';
58
- import './ds-radio-button-group/ds-radio-button-group.ts';
59
- import './ds-sidebar-navigation/ds-sidebar-navigation.ts';
60
- import './ds-badge/ds-badge.ts';
@@ -1,4 +1,6 @@
1
1
  import "./components/ds-accordion/ds-accordion.js";
2
+ import "./components/ds-avatar/ds-avatar.js";
3
+ import "./components/ds-badge/ds-badge.js";
2
4
  import "./components/ds-bullets/ds-bullets.js";
3
5
  import "./components/ds-button/ds-button.js";
4
6
  import "./components/ds-carousel-indicator/ds-carousel-indicator.js";
@@ -6,16 +8,18 @@ import "./components/ds-checkbox/ds-checkbox.js";
6
8
  import "./components/ds-chip/ds-chip.js";
7
9
  import "./components/ds-chips/ds-chips.js";
8
10
  import "./components/ds-currency/ds-currency.js";
11
+ import "./components/ds-dialog/ds-dialog.js";
9
12
  import "./components/ds-dialog-body/ds-dialog-body.js";
10
13
  import "./components/ds-dialog-footer/ds-dialog-footer.js";
14
+ import "./components/ds-dialog-fullscreen/ds-dialog-fullscreen.js";
11
15
  import "./components/ds-dialog-header/ds-dialog-header.js";
12
- import "./components/ds-dialog/ds-dialog.js";
13
16
  import "./components/ds-divider/ds-divider.js";
14
17
  import "./components/ds-drawer/ds-drawer.js";
15
18
  import "./components/ds-hyperlink/ds-hyperlink.js";
16
- import "./components/ds-icon-button/ds-icon-button.js";
17
19
  import "./components/ds-icon/ds-icon.js";
20
+ import "./components/ds-icon-button/ds-icon-button.js";
18
21
  import "./components/ds-input/ds-input.js";
22
+ import "./components/ds-interactive-card/ds-interactive-card.js";
19
23
  import "./components/ds-link-button/ds-link-button.js";
20
24
  import "./components/ds-loader-bar/ds-loader-bar.js";
21
25
  import "./components/ds-loader-dots/ds-loader-dots.js";
@@ -31,34 +35,31 @@ import "./components/ds-portal/ds-portal.js";
31
35
  import "./components/ds-progress-bar/ds-progress-bar.js";
32
36
  import "./components/ds-radio/ds-radio.js";
33
37
  import "./components/ds-radio-button/ds-radio-button.js";
38
+ import "./components/ds-radio-button-group/ds-radio-button-group.js";
34
39
  import "./components/ds-radio-group/ds-radio-group.js";
35
40
  import "./components/ds-rating/ds-rating.js";
36
- import "./components/ds-search-input/ds-search-input.js";
37
41
  import "./components/ds-search/ds-search.js";
42
+ import "./components/ds-search-input/ds-search-input.js";
38
43
  import "./components/ds-secondary-navigation/ds-secondary-navigation.js";
39
44
  import "./components/ds-segmented-control/ds-segmented-control.js";
40
45
  import "./components/ds-select/ds-select.js";
41
46
  import "./components/ds-selection/ds-selection.js";
47
+ import "./components/ds-sidebar-navigation/ds-sidebar-navigation.js";
42
48
  import "./components/ds-slider/ds-slider.js";
49
+ import "./components/ds-static-box/ds-static-box.js";
50
+ import "./components/ds-stepper/ds-stepper.js";
43
51
  import "./components/ds-tabs/ds-tabs.js";
44
52
  import "./components/ds-tag/ds-tag.js";
45
- import "./components/ds-text-input/ds-text-input.js";
46
53
  import "./components/ds-text/ds-text.js";
54
+ import "./components/ds-text-input/ds-text-input.js";
47
55
  import "./components/ds-textarea/ds-textarea.js";
48
56
  import "./components/ds-theme-provider/ds-theme-provider.js";
49
- import "./components/ds-toast-message/ds-toast-message.js";
50
57
  import "./components/ds-toast/ds-toast.js";
58
+ import "./components/ds-toast-message/ds-toast-message.js";
51
59
  import "./components/ds-toggle-button/ds-toggle-button.js";
52
60
  import "./components/ds-toggle-switch/ds-toggle-switch.js";
53
61
  import "./components/ds-tooltip/ds-tooltip.js";
54
- import "./components/ds-avatar/ds-avatar.js";
55
- import "./components/ds-stepper/ds-stepper.js";
56
- import "./components/ds-static-box/ds-static-box.js";
57
- import "./components/ds-interactive-card/ds-interactive-card.js";
58
- import "./components/ds-radio-button-group/ds-radio-button-group.js";
59
- import "./components/ds-sidebar-navigation/ds-sidebar-navigation.js";
60
- import "./components/ds-badge/ds-badge.js";
61
- import { iconNames as co } from "./components/ds-icon/iconNames.js";
62
+ import { iconNames as fo } from "./components/ds-icon/iconNames.js";
62
63
  export {
63
- co as iconNames
64
+ fo as iconNames
64
65
  };
@@ -25,7 +25,7 @@ class f {
25
25
  }) : Promise.resolve('<svg class="ds-icon"></svg>'), l.subscribe("theme", this.handleChangeTheme);
26
26
  }
27
27
  }
28
- const c = Symbol.for("@cupra/ui-kit/icons-manager/1.1.0-canary.2"), h = globalThis;
28
+ const c = Symbol.for("@cupra/ui-kit/icons-manager/1.1.0-canary.3"), h = globalThis;
29
29
  let n = h[c];
30
30
  n || (n = new f(), Object.defineProperty(h, c, {
31
31
  value: n,
@@ -18,7 +18,7 @@ class e {
18
18
  });
19
19
  }
20
20
  }
21
- const u = Symbol.for("@cupra/ui-kit/pubsub/1.1.0-canary.2"), t = globalThis;
21
+ const u = Symbol.for("@cupra/ui-kit/pubsub/1.1.0-canary.3"), t = globalThis;
22
22
  let b = t[u];
23
23
  b || (b = new e(), Object.defineProperty(t, u, {
24
24
  value: b,
@@ -5,7 +5,7 @@ class s {
5
5
  theme: t
6
6
  }) => {
7
7
  if (!t || !e) return;
8
- const c = `https://ds-assets.cupra.com/1.1.0-canary.2/styles/${t}/components/${e}.css`, r = this.getCachedStyleSheetPromise({ url: c });
8
+ const c = `https://ds-assets.cupra.com/1.1.0-canary.3/styles/${t}/components/${e}.css`, r = this.getCachedStyleSheetPromise({ url: c });
9
9
  if (r) return r;
10
10
  const i = this.fetchStyle({ url: c }).then((n) => (n || this.stylePromises.delete(c), n));
11
11
  return this.stylePromises.set(c, i), this.stylePromises.get(c);
@@ -3,7 +3,7 @@ import "../node_modules/.pnpm/lit-html@3.3.1/node_modules/lit-html/lit-html.js";
3
3
  import "../node_modules/.pnpm/lit-element@4.2.1/node_modules/lit-element/lit-element.js";
4
4
  import { unsafeCSS as n, css as o } from "../node_modules/.pnpm/@lit_reactive-element@2.1.1/node_modules/@lit/reactive-element/css-tag.js";
5
5
  function x(t, ...r) {
6
- const e = String.raw({ raw: t }, ...r).replace(/(--private-[\w-]+)(?=\s*[):,])/g, "$1-v1-1-0-canary-2"), i = n(e);
6
+ const e = String.raw({ raw: t }, ...r).replace(/(--private-[\w-]+)(?=\s*[):,])/g, "$1-v1-1-0-canary-3"), i = n(e);
7
7
  return o`${i}`;
8
8
  }
9
9
  export {
@@ -3,7 +3,7 @@ import { html as n } from "../node_modules/.pnpm/lit-html@3.3.1/node_modules/lit
3
3
  import "../node_modules/.pnpm/lit-element@4.2.1/node_modules/lit-element/lit-element.js";
4
4
  import { unsafeHTML as i } from "../node_modules/.pnpm/lit-html@3.3.1/node_modules/lit-html/directives/unsafe-html.js";
5
5
  function x(t, ...r) {
6
- const o = String.raw({ raw: t }, ...r).replace(/(--private-[\w-]+)(?=\s*[):,])/g, "$1-v1-1-0-canary-2"), e = i(o);
6
+ const o = String.raw({ raw: t }, ...r).replace(/(--private-[\w-]+)(?=\s*[):,])/g, "$1-v1-1-0-canary-3"), e = i(o);
7
7
  return n`${e}`;
8
8
  }
9
9
  export {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cupra/ui-kit",
3
- "version": "1.1.0-canary.2",
3
+ "version": "1.1.0-canary.3",
4
4
  "description": "Web components library",
5
5
  "author": "SEAT S.A.",
6
6
  "license": "SEAT S.A. Library EULA 1.0",