@jsekulowicz/ds-components 0.3.1 → 0.4.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/custom-elements.json +175 -121
- package/dist/atoms/breadcrumb/breadcrumb-item.styles.d.ts.map +1 -1
- package/dist/atoms/breadcrumb/breadcrumb-item.styles.js +0 -1
- package/dist/atoms/breadcrumb/breadcrumb-item.styles.js.map +1 -1
- package/dist/atoms/button/button.d.ts +2 -0
- package/dist/atoms/button/button.d.ts.map +1 -1
- package/dist/atoms/button/button.js +5 -0
- package/dist/atoms/button/button.js.map +1 -1
- package/dist/atoms/button/button.styles.d.ts.map +1 -1
- package/dist/atoms/button/button.styles.js +13 -5
- package/dist/atoms/button/button.styles.js.map +1 -1
- package/dist/atoms/link/link.styles.d.ts.map +1 -1
- package/dist/atoms/link/link.styles.js +0 -1
- package/dist/atoms/link/link.styles.js.map +1 -1
- package/dist/atoms/menu/menu-item.styles.d.ts.map +1 -1
- package/dist/atoms/menu/menu-item.styles.js +0 -1
- package/dist/atoms/menu/menu-item.styles.js.map +1 -1
- package/dist/atoms/menu/menu.styles.d.ts.map +1 -1
- package/dist/atoms/menu/menu.styles.js +0 -4
- package/dist/atoms/menu/menu.styles.js.map +1 -1
- package/dist/atoms/nav-item/nav-group.styles.d.ts.map +1 -1
- package/dist/atoms/nav-item/nav-group.styles.js +0 -1
- package/dist/atoms/nav-item/nav-group.styles.js.map +1 -1
- package/dist/atoms/nav-item/nav-item.styles.d.ts.map +1 -1
- package/dist/atoms/nav-item/nav-item.styles.js +0 -1
- package/dist/atoms/nav-item/nav-item.styles.js.map +1 -1
- package/dist/atoms/searchable-select/searchable-select.d.ts.map +1 -1
- package/dist/atoms/searchable-select/searchable-select.js +7 -1
- package/dist/atoms/searchable-select/searchable-select.js.map +1 -1
- package/dist/atoms/searchable-select/searchable-select.styles.d.ts.map +1 -1
- package/dist/atoms/searchable-select/searchable-select.styles.js +0 -158
- package/dist/atoms/searchable-select/searchable-select.styles.js.map +1 -1
- package/dist/atoms/select/select.common-styles.d.ts +2 -0
- package/dist/atoms/select/select.common-styles.d.ts.map +1 -0
- package/dist/atoms/select/select.common-styles.js +150 -0
- package/dist/atoms/select/select.common-styles.js.map +1 -0
- package/dist/atoms/select/select.d.ts.map +1 -1
- package/dist/atoms/select/select.js +2 -1
- package/dist/atoms/select/select.js.map +1 -1
- package/dist/atoms/select/select.styles.d.ts.map +1 -1
- package/dist/atoms/select/select.styles.js +0 -159
- package/dist/atoms/select/select.styles.js.map +1 -1
- package/dist/atoms/tabs/tab-panel.styles.d.ts.map +1 -1
- package/dist/atoms/tabs/tab-panel.styles.js +0 -4
- package/dist/atoms/tabs/tab-panel.styles.js.map +1 -1
- package/dist/atoms/tabs/tab.styles.d.ts.map +1 -1
- package/dist/atoms/tabs/tab.styles.js +0 -1
- package/dist/atoms/tabs/tab.styles.js.map +1 -1
- package/dist/molecules/alert/alert.styles.d.ts.map +1 -1
- package/dist/molecules/alert/alert.styles.js +0 -1
- package/dist/molecules/alert/alert.styles.js.map +1 -1
- package/dist/molecules/bar-chart/bar-chart.styles.d.ts.map +1 -1
- package/dist/molecules/bar-chart/bar-chart.styles.js +0 -1
- package/dist/molecules/bar-chart/bar-chart.styles.js.map +1 -1
- package/dist/molecules/card/card.styles.d.ts.map +1 -1
- package/dist/molecules/card/card.styles.js +12 -1
- package/dist/molecules/card/card.styles.js.map +1 -1
- package/dist/molecules/color-picker/color-picker-swatch.styles.d.ts.map +1 -1
- package/dist/molecules/color-picker/color-picker-swatch.styles.js +0 -1
- package/dist/molecules/color-picker/color-picker-swatch.styles.js.map +1 -1
- package/dist/molecules/color-picker/color-picker.styles.d.ts.map +1 -1
- package/dist/molecules/color-picker/color-picker.styles.js +4 -2
- package/dist/molecules/color-picker/color-picker.styles.js.map +1 -1
- package/dist/molecules/color-picker/input-color.styles.d.ts.map +1 -1
- package/dist/molecules/color-picker/input-color.styles.js +4 -3
- package/dist/molecules/color-picker/input-color.styles.js.map +1 -1
- package/dist/molecules/toast/toast.styles.d.ts.map +1 -1
- package/dist/molecules/toast/toast.styles.js +0 -1
- package/dist/molecules/toast/toast.styles.js.map +1 -1
- package/dist/organisms/footer/footer.styles.d.ts.map +1 -1
- package/dist/organisms/footer/footer.styles.js +4 -2
- package/dist/organisms/footer/footer.styles.js.map +1 -1
- package/dist/organisms/form/form.styles.d.ts.map +1 -1
- package/dist/organisms/form/form.styles.js +9 -2
- package/dist/organisms/form/form.styles.js.map +1 -1
- package/dist/organisms/navbar/navbar.styles.d.ts.map +1 -1
- package/dist/organisms/navbar/navbar.styles.js +4 -4
- package/dist/organisms/navbar/navbar.styles.js.map +1 -1
- package/dist/pages/settings-page/settings-page.styles.d.ts.map +1 -1
- package/dist/pages/settings-page/settings-page.styles.js +4 -2
- package/dist/pages/settings-page/settings-page.styles.js.map +1 -1
- package/dist/templates/page-shell/page-shell.d.ts +4 -5
- package/dist/templates/page-shell/page-shell.d.ts.map +1 -1
- package/dist/templates/page-shell/page-shell.js +40 -21
- package/dist/templates/page-shell/page-shell.js.map +1 -1
- package/dist/templates/page-shell/page-shell.styles.d.ts.map +1 -1
- package/dist/templates/page-shell/page-shell.styles.js +3 -8
- package/dist/templates/page-shell/page-shell.styles.js.map +1 -1
- package/package.json +4 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"footer.styles.d.ts","sourceRoot":"","sources":["../../../src/organisms/footer/footer.styles.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"footer.styles.d.ts","sourceRoot":"","sources":["../../../src/organisms/footer/footer.styles.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,YAAY,yBAwCxB,CAAC"}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
import { css } from 'lit';
|
|
1
|
+
import { css, unsafeCSS } from 'lit';
|
|
2
|
+
import { breakpoint } from '@jsekulowicz/ds-tokens';
|
|
3
|
+
const mobileBreakpoint = unsafeCSS(breakpoint.sm);
|
|
2
4
|
export const footerStyles = css `
|
|
3
5
|
:host {
|
|
4
6
|
display: block;
|
|
@@ -27,7 +29,7 @@ export const footerStyles = css `
|
|
|
27
29
|
.end {
|
|
28
30
|
justify-content: flex-end;
|
|
29
31
|
}
|
|
30
|
-
@container (max-width:
|
|
32
|
+
@container (max-width: ${mobileBreakpoint}) {
|
|
31
33
|
footer {
|
|
32
34
|
gap: var(--ds-space-2);
|
|
33
35
|
padding: var(--ds-space-2) var(--ds-space-4);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"footer.styles.js","sourceRoot":"","sources":["../../../src/organisms/footer/footer.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"footer.styles.js","sourceRoot":"","sources":["../../../src/organisms/footer/footer.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,KAAK,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEpD,MAAM,gBAAgB,GAAG,SAAS,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;AAElD,MAAM,CAAC,MAAM,YAAY,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;2BA4BJ,gBAAgB;;;;;;;;;;;;CAY1C,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"form.styles.d.ts","sourceRoot":"","sources":["../../../src/organisms/form/form.styles.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"form.styles.d.ts","sourceRoot":"","sources":["../../../src/organisms/form/form.styles.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,UAAU,yBAoCtB,CAAC"}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
import { css } from 'lit';
|
|
1
|
+
import { css, unsafeCSS } from 'lit';
|
|
2
|
+
import { breakpoint } from '@jsekulowicz/ds-tokens';
|
|
3
|
+
const belowTabletBreakpoint = unsafeCSS(`calc(${breakpoint.md} - 0.02px)`);
|
|
2
4
|
export const formStyles = css `
|
|
3
5
|
:host {
|
|
4
6
|
display: block;
|
|
@@ -20,9 +22,14 @@ export const formStyles = css `
|
|
|
20
22
|
.actions {
|
|
21
23
|
display: flex;
|
|
22
24
|
gap: var(--ds-space-3);
|
|
23
|
-
justify-content: flex-
|
|
25
|
+
justify-content: flex-start;
|
|
24
26
|
margin-top: var(--ds-space-5);
|
|
25
27
|
}
|
|
28
|
+
@media (max-width: ${belowTabletBreakpoint}) {
|
|
29
|
+
.actions {
|
|
30
|
+
justify-content: flex-end;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
26
33
|
.title {
|
|
27
34
|
margin: 0 0 var(--ds-space-4);
|
|
28
35
|
font-family: var(--ds-font-display);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"form.styles.js","sourceRoot":"","sources":["../../../src/organisms/form/form.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"form.styles.js","sourceRoot":"","sources":["../../../src/organisms/form/form.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,KAAK,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEpD,MAAM,qBAAqB,GAAG,SAAS,CAAC,QAAQ,UAAU,CAAC,EAAE,YAAY,CAAC,CAAC;AAE3E,MAAM,CAAC,MAAM,UAAU,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;uBAwBN,qBAAqB;;;;;;;;;;;;CAY3C,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"navbar.styles.d.ts","sourceRoot":"","sources":["../../../src/organisms/navbar/navbar.styles.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"navbar.styles.d.ts","sourceRoot":"","sources":["../../../src/organisms/navbar/navbar.styles.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,YAAY,yBA+ExB,CAAC"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import { css } from 'lit';
|
|
1
|
+
import { css, unsafeCSS } from 'lit';
|
|
2
|
+
import { breakpoint } from '@jsekulowicz/ds-tokens';
|
|
3
|
+
const tabletBreakpoint = unsafeCSS(breakpoint.md);
|
|
2
4
|
export const navbarStyles = css `
|
|
3
5
|
:host {
|
|
4
6
|
display: block;
|
|
5
7
|
container-type: inline-size;
|
|
6
|
-
--_breakpoint: 640px;
|
|
7
8
|
}
|
|
8
9
|
nav {
|
|
9
10
|
position: relative;
|
|
@@ -46,13 +47,12 @@ export const navbarStyles = css `
|
|
|
46
47
|
padding: var(--ds-space-2);
|
|
47
48
|
}
|
|
48
49
|
.toggle:focus-visible {
|
|
49
|
-
outline: 2px solid transparent;
|
|
50
50
|
box-shadow: var(--ds-shadow-focus);
|
|
51
51
|
}
|
|
52
52
|
.menu {
|
|
53
53
|
display: contents;
|
|
54
54
|
}
|
|
55
|
-
@container (max-width:
|
|
55
|
+
@container (max-width: ${tabletBreakpoint}) {
|
|
56
56
|
.links {
|
|
57
57
|
justify-content: flex-end;
|
|
58
58
|
flex: 0 0 auto;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"navbar.styles.js","sourceRoot":"","sources":["../../../src/organisms/navbar/navbar.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"navbar.styles.js","sourceRoot":"","sources":["../../../src/organisms/navbar/navbar.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,KAAK,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEpD,MAAM,gBAAgB,GAAG,SAAS,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;AAElD,MAAM,CAAC,MAAM,YAAY,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2BAmDJ,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4B1C,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"settings-page.styles.d.ts","sourceRoot":"","sources":["../../../src/pages/settings-page/settings-page.styles.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"settings-page.styles.d.ts","sourceRoot":"","sources":["../../../src/pages/settings-page/settings-page.styles.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,kBAAkB,yBAqE9B,CAAC"}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
import { css } from 'lit';
|
|
1
|
+
import { css, unsafeCSS } from 'lit';
|
|
2
|
+
import { breakpoint } from '@jsekulowicz/ds-tokens';
|
|
3
|
+
const belowTabletBreakpoint = unsafeCSS(`calc(${breakpoint.md} - 0.02px)`);
|
|
2
4
|
export const settingsPageStyles = css `
|
|
3
5
|
:host {
|
|
4
6
|
display: block;
|
|
@@ -33,7 +35,7 @@ export const settingsPageStyles = css `
|
|
|
33
35
|
gap: var(--ds-space-10);
|
|
34
36
|
padding: var(--ds-space-8) 0;
|
|
35
37
|
}
|
|
36
|
-
@media (max-width:
|
|
38
|
+
@media (max-width: ${belowTabletBreakpoint}) {
|
|
37
39
|
.grid {
|
|
38
40
|
grid-template-columns: 1fr;
|
|
39
41
|
gap: var(--ds-space-6);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"settings-page.styles.js","sourceRoot":"","sources":["../../../src/pages/settings-page/settings-page.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"settings-page.styles.js","sourceRoot":"","sources":["../../../src/pages/settings-page/settings-page.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,KAAK,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEpD,MAAM,qBAAqB,GAAG,SAAS,CAAC,QAAQ,UAAU,CAAC,EAAE,YAAY,CAAC,CAAC;AAE3E,MAAM,CAAC,MAAM,kBAAkB,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uBAkCd,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmC3C,CAAC"}
|
|
@@ -6,16 +6,15 @@ import '../../atoms/icon/icons/bars-3.js';
|
|
|
6
6
|
import '../../atoms/icon/icons/x-mark.js';
|
|
7
7
|
/**
|
|
8
8
|
* @tag ds-page-shell
|
|
9
|
-
* @summary Application frame: header + aside + main + footer with responsive collapse.
|
|
9
|
+
* @summary Application frame: header + aside + main + optional footer with responsive collapse.
|
|
10
10
|
* @slot brand - Top-left brand/logo.
|
|
11
11
|
* @slot header-actions - Top-right actions.
|
|
12
12
|
* @slot aside - Side navigation. When empty, the aside column and hamburger toggle are not rendered.
|
|
13
13
|
* @slot default - Main content.
|
|
14
14
|
* @slot footer - Footer content.
|
|
15
|
-
* @cssprop --ds-page-shell-max-width - Outer cap for the shell's content column. Header inner
|
|
16
|
-
* the aside + main row
|
|
17
|
-
*
|
|
18
|
-
* full-bleed.
|
|
15
|
+
* @cssprop --ds-page-shell-max-width - Outer cap for the shell's content column. Header inner
|
|
16
|
+
* content and the aside + main row centre at this width and align vertically. Defaults to `90rem`
|
|
17
|
+
* (1440px). Header chrome remains full-bleed.
|
|
19
18
|
*/
|
|
20
19
|
export declare class DsPageShell extends DsElement {
|
|
21
20
|
#private;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"page-shell.d.ts","sourceRoot":"","sources":["../../../src/templates/page-shell/page-shell.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAEhD,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEjD,OAAO,8BAA8B,CAAC;AACtC,OAAO,4BAA4B,CAAC;AACpC,OAAO,kCAAkC,CAAC;AAC1C,OAAO,kCAAkC,CAAC;AAE1C
|
|
1
|
+
{"version":3,"file":"page-shell.d.ts","sourceRoot":"","sources":["../../../src/templates/page-shell/page-shell.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAEhD,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEjD,OAAO,8BAA8B,CAAC;AACtC,OAAO,4BAA4B,CAAC;AACpC,OAAO,kCAAkC,CAAC;AAC1C,OAAO,kCAAkC,CAAC;AAE1C;;;;;;;;;;;GAWG;AACH,qBAAa,WAAY,SAAQ,SAAS;;IACxC,OAAgB,MAAM,4BAA0C;IAEpD,KAAK,SAAM;IACgB,SAAS,SAAqB;IAC5D,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,UAAU,CAAS;IAI3B,iBAAiB,IAAI,IAAI;IAuBzB,oBAAoB,IAAI,IAAI;IAS5B,YAAY,IAAI,IAAI;IAyEpB,MAAM,IAAI,cAAc;CA2DlC"}
|
|
@@ -14,16 +14,15 @@ import '../../atoms/icon/icons/bars-3.js';
|
|
|
14
14
|
import '../../atoms/icon/icons/x-mark.js';
|
|
15
15
|
/**
|
|
16
16
|
* @tag ds-page-shell
|
|
17
|
-
* @summary Application frame: header + aside + main + footer with responsive collapse.
|
|
17
|
+
* @summary Application frame: header + aside + main + optional footer with responsive collapse.
|
|
18
18
|
* @slot brand - Top-left brand/logo.
|
|
19
19
|
* @slot header-actions - Top-right actions.
|
|
20
20
|
* @slot aside - Side navigation. When empty, the aside column and hamburger toggle are not rendered.
|
|
21
21
|
* @slot default - Main content.
|
|
22
22
|
* @slot footer - Footer content.
|
|
23
|
-
* @cssprop --ds-page-shell-max-width - Outer cap for the shell's content column. Header inner
|
|
24
|
-
* the aside + main row
|
|
25
|
-
*
|
|
26
|
-
* full-bleed.
|
|
23
|
+
* @cssprop --ds-page-shell-max-width - Outer cap for the shell's content column. Header inner
|
|
24
|
+
* content and the aside + main row centre at this width and align vertically. Defaults to `90rem`
|
|
25
|
+
* (1440px). Header chrome remains full-bleed.
|
|
27
26
|
*/
|
|
28
27
|
export class DsPageShell extends DsElement {
|
|
29
28
|
constructor() {
|
|
@@ -34,6 +33,15 @@ export class DsPageShell extends DsElement {
|
|
|
34
33
|
this._hasAside = false;
|
|
35
34
|
this._hasFooter = false;
|
|
36
35
|
this.#resizeObserver = null;
|
|
36
|
+
this.#slotObserver = null;
|
|
37
|
+
this.#syncSlotPresence = () => {
|
|
38
|
+
const aside = this.shadowRoot?.querySelector('slot[name="aside"]');
|
|
39
|
+
const footer = this.shadowRoot?.querySelector('slot[name="footer"]');
|
|
40
|
+
this._hasAside = hasNamedSlotContent(this, 'aside', aside);
|
|
41
|
+
this._hasFooter = hasNamedSlotContent(this, 'footer', footer);
|
|
42
|
+
this.toggleAttribute('aside-empty', !this._hasAside);
|
|
43
|
+
this.toggleAttribute('footer-empty', !this._hasFooter);
|
|
44
|
+
};
|
|
37
45
|
this.#syncLayout = (width) => {
|
|
38
46
|
const isMobileLayout = width < 768;
|
|
39
47
|
this.toggleAttribute('mobile-layout', isMobileLayout);
|
|
@@ -86,8 +94,17 @@ export class DsPageShell extends DsElement {
|
|
|
86
94
|
}
|
|
87
95
|
static { this.styles = [...DsElement.styles, pageShellStyles]; }
|
|
88
96
|
#resizeObserver;
|
|
97
|
+
#slotObserver;
|
|
89
98
|
connectedCallback() {
|
|
90
99
|
super.connectedCallback();
|
|
100
|
+
this.#syncSlotPresence();
|
|
101
|
+
this.#slotObserver = new MutationObserver(this.#syncSlotPresence);
|
|
102
|
+
this.#slotObserver.observe(this, {
|
|
103
|
+
attributeFilter: ['slot'],
|
|
104
|
+
attributes: true,
|
|
105
|
+
childList: true,
|
|
106
|
+
subtree: true,
|
|
107
|
+
});
|
|
91
108
|
this.#setMobileNav(false);
|
|
92
109
|
document.addEventListener('keydown', this.#onDocumentKeydown);
|
|
93
110
|
this.#resizeObserver = new ResizeObserver((entries) => {
|
|
@@ -104,20 +121,14 @@ export class DsPageShell extends DsElement {
|
|
|
104
121
|
super.disconnectedCallback();
|
|
105
122
|
document.removeEventListener('keydown', this.#onDocumentKeydown);
|
|
106
123
|
this.#resizeObserver?.disconnect();
|
|
124
|
+
this.#slotObserver?.disconnect();
|
|
107
125
|
this.#resizeObserver = null;
|
|
126
|
+
this.#slotObserver = null;
|
|
108
127
|
}
|
|
109
128
|
firstUpdated() {
|
|
110
|
-
|
|
111
|
-
const footer = this.shadowRoot?.querySelector('slot[name="footer"]');
|
|
112
|
-
if (aside) {
|
|
113
|
-
this._hasAside = hasAssignedContent(aside);
|
|
114
|
-
this.toggleAttribute('aside-empty', !this._hasAside);
|
|
115
|
-
}
|
|
116
|
-
if (footer) {
|
|
117
|
-
this._hasFooter = hasAssignedContent(footer);
|
|
118
|
-
this.toggleAttribute('footer-empty', !this._hasFooter);
|
|
119
|
-
}
|
|
129
|
+
this.#syncSlotPresence();
|
|
120
130
|
}
|
|
131
|
+
#syncSlotPresence;
|
|
121
132
|
#syncLayout;
|
|
122
133
|
#onDocumentKeydown;
|
|
123
134
|
#setMobileNav;
|
|
@@ -129,6 +140,7 @@ export class DsPageShell extends DsElement {
|
|
|
129
140
|
render() {
|
|
130
141
|
const menuIcon = this._mobileNavOpen ? 'x-mark' : 'bars-3';
|
|
131
142
|
const ariaExpanded = this._mobileNavOpen ? 'true' : 'false';
|
|
143
|
+
const hasFooter = this._hasFooter || hasNamedSlotContent(this, 'footer');
|
|
132
144
|
return html `<header part="header">
|
|
133
145
|
<div class="shell-inner shell-inner--header">
|
|
134
146
|
${this._hasAside
|
|
@@ -178,11 +190,11 @@ export class DsPageShell extends DsElement {
|
|
|
178
190
|
<slot></slot>
|
|
179
191
|
</main>
|
|
180
192
|
</div>
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
193
|
+
${hasFooter
|
|
194
|
+
? html `<footer part="footer">
|
|
195
|
+
<slot name="footer" @slotchange=${this.#onFooterSlotChange}></slot>
|
|
196
|
+
</footer>`
|
|
197
|
+
: null}`;
|
|
186
198
|
}
|
|
187
199
|
}
|
|
188
200
|
__decorate([
|
|
@@ -200,11 +212,18 @@ __decorate([
|
|
|
200
212
|
__decorate([
|
|
201
213
|
state()
|
|
202
214
|
], DsPageShell.prototype, "_hasFooter", void 0);
|
|
215
|
+
function hasNamedSlotContent(host, name, slot) {
|
|
216
|
+
if (slot) {
|
|
217
|
+
return hasAssignedContent(slot);
|
|
218
|
+
}
|
|
219
|
+
return Array.from(host.children).some((child) => child.slot === name);
|
|
220
|
+
}
|
|
203
221
|
function hasAssignedContent(slot) {
|
|
204
222
|
const nodes = slot.assignedNodes({ flatten: true });
|
|
205
223
|
return nodes.some((node) => {
|
|
206
|
-
if (node.nodeType === Node.ELEMENT_NODE)
|
|
224
|
+
if (node.nodeType === Node.ELEMENT_NODE) {
|
|
207
225
|
return true;
|
|
226
|
+
}
|
|
208
227
|
if (node.nodeType === Node.TEXT_NODE) {
|
|
209
228
|
return (node.textContent ?? '').trim().length > 0;
|
|
210
229
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"page-shell.js","sourceRoot":"","sources":["../../../src/templates/page-shell/page-shell.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,IAAI,EAAuB,MAAM,KAAK,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,8BAA8B,CAAC;AACtC,OAAO,4BAA4B,CAAC;AACpC,OAAO,kCAAkC,CAAC;AAC1C,OAAO,kCAAkC,CAAC;AAE1C
|
|
1
|
+
{"version":3,"file":"page-shell.js","sourceRoot":"","sources":["../../../src/templates/page-shell/page-shell.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"page-shell.styles.d.ts","sourceRoot":"","sources":["../../../src/templates/page-shell/page-shell.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,eAAe,
|
|
1
|
+
{"version":3,"file":"page-shell.styles.d.ts","sourceRoot":"","sources":["../../../src/templates/page-shell/page-shell.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,eAAe,yBAkK3B,CAAC"}
|
|
@@ -24,13 +24,7 @@ export const pageShellStyles = css `
|
|
|
24
24
|
}
|
|
25
25
|
|
|
26
26
|
footer {
|
|
27
|
-
|
|
28
|
-
padding: var(--ds-space-2) 0;
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
:host([footer-empty]) footer {
|
|
32
|
-
padding: 0;
|
|
33
|
-
border-top: 0;
|
|
27
|
+
display: block;
|
|
34
28
|
}
|
|
35
29
|
|
|
36
30
|
.shell-inner {
|
|
@@ -78,7 +72,8 @@ export const pageShellStyles = css `
|
|
|
78
72
|
|
|
79
73
|
main {
|
|
80
74
|
padding: var(--ds-space-5);
|
|
81
|
-
overflow
|
|
75
|
+
overflow: auto;
|
|
76
|
+
min-width: 0;
|
|
82
77
|
min-height: 0;
|
|
83
78
|
scrollbar-color: var(--ds-color-fg-subtle) transparent;
|
|
84
79
|
scrollbar-width: thin;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"page-shell.styles.js","sourceRoot":"","sources":["../../../src/templates/page-shell/page-shell.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,eAAe,GAAG,GAAG,CAAA
|
|
1
|
+
{"version":3,"file":"page-shell.styles.js","sourceRoot":"","sources":["../../../src/templates/page-shell/page-shell.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,eAAe,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkKjC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@jsekulowicz/ds-components",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.1",
|
|
4
4
|
"description": "Lit web components for the Design System Library (atoms, molecules, organisms, templates, pages).",
|
|
5
5
|
"license": "UNLICENSED",
|
|
6
6
|
"repository": {
|
|
@@ -376,13 +376,13 @@
|
|
|
376
376
|
{
|
|
377
377
|
"name": "full barrel (define, gzip)",
|
|
378
378
|
"path": "dist/define.js",
|
|
379
|
-
"limit": "
|
|
379
|
+
"limit": "50 kB"
|
|
380
380
|
}
|
|
381
381
|
],
|
|
382
382
|
"dependencies": {
|
|
383
383
|
"lit": "^3.2.1",
|
|
384
|
-
"@jsekulowicz/ds-core": "0.
|
|
385
|
-
"@jsekulowicz/ds-tokens": "0.
|
|
384
|
+
"@jsekulowicz/ds-core": "0.4.1",
|
|
385
|
+
"@jsekulowicz/ds-tokens": "0.4.1"
|
|
386
386
|
},
|
|
387
387
|
"devDependencies": {
|
|
388
388
|
"heroicons": "2.2.0",
|