@govtechsg/sgds-web-component 3.2.0-rc.0 → 3.2.0
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/base/button.js +1 -1
- package/base/card.js +1 -1
- package/components/Badge/index.umd.js +63 -44
- package/components/Badge/index.umd.js.map +1 -1
- package/components/Badge/sgds-badge.d.ts +3 -1
- package/components/Badge/sgds-badge.js +23 -4
- package/components/Badge/sgds-badge.js.map +1 -1
- package/components/Button/index.umd.js +1 -1
- package/components/Card/index.umd.js +53 -12
- package/components/Card/index.umd.js.map +1 -1
- package/components/Card/sgds-card.js +5 -3
- package/components/Card/sgds-card.js.map +1 -1
- package/components/ComboBox/index.umd.js +29 -9
- package/components/ComboBox/index.umd.js.map +1 -1
- package/components/ComboBox/sgds-combo-box.js +3 -2
- package/components/ComboBox/sgds-combo-box.js.map +1 -1
- package/components/Datepicker/index.umd.js +1 -1
- package/components/Drawer/index.umd.js +2 -2
- package/components/Drawer/index.umd.js.map +1 -1
- package/components/FileUpload/index.umd.js +1 -1
- package/components/IconButton/index.umd.js +1 -1
- package/components/Mainnav/index.umd.js +3 -3
- package/components/Mainnav/index.umd.js.map +1 -1
- package/components/Mainnav/sgds-mainnav-item.d.ts +1 -1
- package/components/Mainnav/sgds-mainnav-item.js +2 -2
- package/components/Mainnav/sgds-mainnav-item.js.map +1 -1
- package/components/Modal/index.umd.js +22 -17
- package/components/Modal/index.umd.js.map +1 -1
- package/components/Modal/modal.js +1 -1
- package/components/Modal/sgds-modal.js +17 -14
- package/components/Modal/sgds-modal.js.map +1 -1
- package/components/Pagination/index.umd.js +1 -1
- package/components/QuantityToggle/index.umd.js +1 -1
- package/components/Subnav/index.umd.js +79 -87
- package/components/Subnav/index.umd.js.map +1 -1
- package/components/Subnav/sgds-subnav-item.d.ts +1 -1
- package/components/Subnav/sgds-subnav-item.js +2 -2
- package/components/Subnav/sgds-subnav-item.js.map +1 -1
- package/components/Subnav/sgds-subnav.d.ts +5 -4
- package/components/Subnav/sgds-subnav.js +76 -85
- package/components/Subnav/sgds-subnav.js.map +1 -1
- package/components/Subnav/subnav-item.js +1 -1
- package/components/Subnav/subnav.js +1 -1
- package/components/Table/index.d.ts +7 -1
- package/components/Table/index.js +6 -0
- package/components/Table/index.js.map +1 -1
- package/components/Table/index.umd.js +182 -16
- package/components/Table/index.umd.js.map +1 -1
- package/components/Table/sgds-table-cell.d.ts +13 -0
- package/components/Table/sgds-table-cell.js +22 -0
- package/components/Table/sgds-table-cell.js.map +1 -0
- package/components/Table/sgds-table-head.d.ts +18 -0
- package/components/Table/sgds-table-head.js +43 -0
- package/components/Table/sgds-table-head.js.map +1 -0
- package/components/Table/sgds-table-row.d.ts +13 -0
- package/components/Table/sgds-table-row.js +22 -0
- package/components/Table/sgds-table-row.js.map +1 -0
- package/components/Table/sgds-table.d.ts +5 -2
- package/components/Table/sgds-table.js +18 -13
- package/components/Table/sgds-table.js.map +1 -1
- package/components/Table/table-cell.js +6 -0
- package/components/Table/table-cell.js.map +1 -0
- package/components/Table/table-head.js +6 -0
- package/components/Table/table-head.js.map +1 -0
- package/components/Table/table-row.js +6 -0
- package/components/Table/table-row.js.map +1 -0
- package/components/Table/table.js +1 -1
- package/components/Toast/index.umd.js +1 -1
- package/components/Toast/toast.js +1 -1
- package/components/index.umd.js +146 -128
- package/components/index.umd.js.map +1 -1
- package/index.umd.js +347 -254
- package/index.umd.js.map +1 -1
- package/package.json +1 -1
- package/react/badge/index.cjs.js +3 -1
- package/react/badge/index.cjs.js.map +1 -1
- package/react/badge/index.js +3 -1
- package/react/badge/index.js.map +1 -1
- package/react/base/button.cjs.js +1 -1
- package/react/base/button.js +1 -1
- package/react/base/card.cjs.js +1 -1
- package/react/base/card.js +1 -1
- package/react/components/Badge/sgds-badge.cjs.js +23 -4
- package/react/components/Badge/sgds-badge.cjs.js.map +1 -1
- package/react/components/Badge/sgds-badge.js +23 -4
- package/react/components/Badge/sgds-badge.js.map +1 -1
- package/react/components/Card/sgds-card.cjs.js +5 -3
- package/react/components/Card/sgds-card.cjs.js.map +1 -1
- package/react/components/Card/sgds-card.js +5 -3
- package/react/components/Card/sgds-card.js.map +1 -1
- package/react/components/ComboBox/sgds-combo-box.cjs.js +3 -2
- package/react/components/ComboBox/sgds-combo-box.cjs.js.map +1 -1
- package/react/components/ComboBox/sgds-combo-box.js +3 -2
- package/react/components/ComboBox/sgds-combo-box.js.map +1 -1
- package/react/components/Mainnav/sgds-mainnav-item.cjs.js +2 -2
- package/react/components/Mainnav/sgds-mainnav-item.cjs.js.map +1 -1
- package/react/components/Mainnav/sgds-mainnav-item.js +2 -2
- package/react/components/Mainnav/sgds-mainnav-item.js.map +1 -1
- package/react/components/Modal/modal.cjs.js +1 -1
- package/react/components/Modal/modal.js +1 -1
- package/react/components/Modal/sgds-modal.cjs.js +17 -14
- package/react/components/Modal/sgds-modal.cjs.js.map +1 -1
- package/react/components/Modal/sgds-modal.js +17 -14
- package/react/components/Modal/sgds-modal.js.map +1 -1
- package/react/components/Subnav/sgds-subnav-item.cjs.js +2 -2
- package/react/components/Subnav/sgds-subnav-item.cjs.js.map +1 -1
- package/react/components/Subnav/sgds-subnav-item.js +2 -2
- package/react/components/Subnav/sgds-subnav-item.js.map +1 -1
- package/react/components/Subnav/sgds-subnav.cjs.js +74 -83
- package/react/components/Subnav/sgds-subnav.cjs.js.map +1 -1
- package/react/components/Subnav/sgds-subnav.js +76 -85
- package/react/components/Subnav/sgds-subnav.js.map +1 -1
- package/react/components/Subnav/subnav-item.cjs.js +1 -1
- package/react/components/Subnav/subnav-item.js +1 -1
- package/react/components/Subnav/subnav.cjs.js +1 -1
- package/react/components/Subnav/subnav.js +1 -1
- package/react/components/Table/sgds-table-cell.cjs.js +28 -0
- package/react/components/Table/sgds-table-cell.cjs.js.map +1 -0
- package/react/components/Table/sgds-table-cell.js +23 -0
- package/react/components/Table/sgds-table-cell.js.map +1 -0
- package/react/components/Table/sgds-table-head.cjs.js +49 -0
- package/react/components/Table/sgds-table-head.cjs.js.map +1 -0
- package/react/components/Table/sgds-table-head.js +44 -0
- package/react/components/Table/sgds-table-head.js.map +1 -0
- package/react/components/Table/sgds-table-row.cjs.js +28 -0
- package/react/components/Table/sgds-table-row.cjs.js.map +1 -0
- package/react/components/Table/sgds-table-row.js +23 -0
- package/react/components/Table/sgds-table-row.js.map +1 -0
- package/react/components/Table/sgds-table.cjs.js +17 -12
- package/react/components/Table/sgds-table.cjs.js.map +1 -1
- package/react/components/Table/sgds-table.js +18 -13
- package/react/components/Table/sgds-table.js.map +1 -1
- package/react/components/Table/table-cell.cjs.js +11 -0
- package/react/components/Table/table-cell.cjs.js.map +1 -0
- package/react/components/Table/table-cell.js +7 -0
- package/react/components/Table/table-cell.js.map +1 -0
- package/react/components/Table/table-head.cjs.js +11 -0
- package/react/components/Table/table-head.cjs.js.map +1 -0
- package/react/components/Table/table-head.js +7 -0
- package/react/components/Table/table-head.js.map +1 -0
- package/react/components/Table/table-row.cjs.js +11 -0
- package/react/components/Table/table-row.cjs.js.map +1 -0
- package/react/components/Table/table-row.js +7 -0
- package/react/components/Table/table-row.js.map +1 -0
- package/react/components/Table/table.cjs.js +1 -1
- package/react/components/Table/table.js +1 -1
- package/react/components/Toast/toast.cjs.js +1 -1
- package/react/components/Toast/toast.js +1 -1
- package/react/index.cjs.js +26 -20
- package/react/index.cjs.js.map +1 -1
- package/react/index.d.ts +4 -1
- package/react/index.js +4 -1
- package/react/index.js.map +1 -1
- package/react/table-cell/index.cjs.js +40 -0
- package/react/table-cell/index.cjs.js.map +1 -0
- package/react/table-cell/index.d.ts +2 -0
- package/react/table-cell/index.js +16 -0
- package/react/table-cell/index.js.map +1 -0
- package/react/table-head/index.cjs.js +40 -0
- package/react/table-head/index.cjs.js.map +1 -0
- package/react/table-head/index.d.ts +2 -0
- package/react/table-head/index.js +16 -0
- package/react/table-head/index.js.map +1 -0
- package/react/table-row/index.cjs.js +40 -0
- package/react/table-row/index.cjs.js.map +1 -0
- package/react/table-row/index.d.ts +2 -0
- package/react/table-row/index.js +16 -0
- package/react/table-row/index.js.map +1 -0
- package/react/utils/breakpoints.cjs.js.map +1 -1
- package/react/utils/breakpoints.js.map +1 -1
- package/react/utils/scroll.cjs.js +2 -2
- package/react/utils/scroll.cjs.js.map +1 -1
- package/react/utils/scroll.js +2 -2
- package/react/utils/scroll.js.map +1 -1
- package/themes/root.css +6 -0
- package/utils/breakpoints.d.ts +1 -0
- package/utils/breakpoints.js.map +1 -1
- package/utils/scroll.js +2 -2
- package/utils/scroll.js.map +1 -1
|
@@ -5,7 +5,7 @@ import SgdsElement from "../../base/sgds-element";
|
|
|
5
5
|
* */
|
|
6
6
|
export declare class SgdsSubnavItem extends SgdsElement {
|
|
7
7
|
static styles: import("lit").CSSResult[];
|
|
8
|
-
/** when true, sets the active stylings of
|
|
8
|
+
/** when true, sets the active stylings of the navigation item */
|
|
9
9
|
active: boolean;
|
|
10
10
|
/** Disables the SgdsSubnavItem */
|
|
11
11
|
disabled: boolean;
|
|
@@ -12,7 +12,7 @@ import css_248z from './subnav-item.js';
|
|
|
12
12
|
class SgdsSubnavItem extends SgdsElement {
|
|
13
13
|
constructor() {
|
|
14
14
|
super(...arguments);
|
|
15
|
-
/** when true, sets the active stylings of
|
|
15
|
+
/** when true, sets the active stylings of the navigation item */
|
|
16
16
|
this.active = false;
|
|
17
17
|
/** Disables the SgdsSubnavItem */
|
|
18
18
|
this.disabled = false;
|
|
@@ -55,7 +55,7 @@ class SgdsSubnavItem extends SgdsElement {
|
|
|
55
55
|
}
|
|
56
56
|
SgdsSubnavItem.styles = [...SgdsElement.styles, css_248z];
|
|
57
57
|
__decorate([
|
|
58
|
-
property({ type: Boolean })
|
|
58
|
+
property({ type: Boolean, reflect: true })
|
|
59
59
|
], SgdsSubnavItem.prototype, "active", void 0);
|
|
60
60
|
__decorate([
|
|
61
61
|
property({ type: Boolean, reflect: true })
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sgds-subnav-item.js","sources":["../../../src/components/Subnav/sgds-subnav-item.ts"],"sourcesContent":["import { html } from \"lit\";\nimport { property } from \"lit/decorators.js\";\nimport { watch } from \"../../utils/watch\";\nimport SgdsElement from \"../../base/sgds-element\";\nimport subnavItemStyle from \"./subnav-item.css\";\n\n/**\n * @slot default - slot for SgdsSubnavItem element.\n *\n * */\nexport class SgdsSubnavItem extends SgdsElement {\n static styles = [...SgdsElement.styles, subnavItemStyle];\n\n /** when true, sets the active stylings of
|
|
1
|
+
{"version":3,"file":"sgds-subnav-item.js","sources":["../../../src/components/Subnav/sgds-subnav-item.ts"],"sourcesContent":["import { html } from \"lit\";\nimport { property } from \"lit/decorators.js\";\nimport { watch } from \"../../utils/watch\";\nimport SgdsElement from \"../../base/sgds-element\";\nimport subnavItemStyle from \"./subnav-item.css\";\n\n/**\n * @slot default - slot for SgdsSubnavItem element.\n *\n * */\nexport class SgdsSubnavItem extends SgdsElement {\n static styles = [...SgdsElement.styles, subnavItemStyle];\n\n /** when true, sets the active stylings of the navigation item */\n @property({ type: Boolean, reflect: true })\n active = false;\n\n /** Disables the SgdsSubnavItem */\n @property({ type: Boolean, reflect: true })\n disabled = false;\n\n @watch(\"disabled\")\n _handleDisabled() {\n this.setAttribute(\"aria-disabled\", `${this.disabled}`);\n }\n\n private _handleSlotChange(e: Event) {\n const slot = e.target as HTMLSlotElement;\n const assignedElements = slot.assignedElements({ flatten: true });\n const anchorItems = assignedElements.filter(\n item => item.tagName.toLowerCase() === \"a\" || item.tagName.toLowerCase() === \"sgds-link\"\n );\n\n if (anchorItems.length > 1) {\n console.error(\"More than one anchor tag is added to sgds-subnav-item\");\n return;\n }\n\n if (anchorItems.length === 0) {\n const nodes = slot.assignedNodes({ flatten: true });\n nodes.forEach(node => {\n if (node.nodeType === Node.TEXT_NODE) {\n const hyperlink = document.createElement(\"a\");\n hyperlink.textContent = node.textContent;\n node.parentNode.replaceChild(hyperlink, node);\n }\n });\n }\n\n if (anchorItems.length === 1) {\n const anchor = anchorItems[0] as HTMLAnchorElement;\n\n if (this.active) {\n anchor.setAttribute(\"aria-current\", \"true\");\n }\n\n if (this.disabled) {\n anchor.setAttribute(\"href\", \"javascript:void(0)\");\n anchor.setAttribute(\"tabindex\", \"-1\");\n }\n }\n }\n\n render() {\n return html`<slot @slotchange=${this._handleSlotChange}></slot>`;\n }\n}\n\nexport default SgdsSubnavItem;\n"],"names":["subnavItemStyle"],"mappings":"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"}
|
|
@@ -20,10 +20,10 @@ export declare class SgdsSubnav extends SgdsElement {
|
|
|
20
20
|
"sgds-icon": typeof SgdsIcon;
|
|
21
21
|
};
|
|
22
22
|
private nav;
|
|
23
|
-
private subnav;
|
|
24
23
|
private mobileNav;
|
|
24
|
+
private headerContainer;
|
|
25
25
|
private toggler;
|
|
26
|
-
private
|
|
26
|
+
private navGroup;
|
|
27
27
|
private mobileActions;
|
|
28
28
|
private isCollapsed;
|
|
29
29
|
private isMenuOpen;
|
|
@@ -31,10 +31,10 @@ export declare class SgdsSubnav extends SgdsElement {
|
|
|
31
31
|
disconnectedCallback(): void;
|
|
32
32
|
firstUpdated(): void;
|
|
33
33
|
private _handleResize;
|
|
34
|
-
private
|
|
35
|
-
private _handleSlotChange;
|
|
34
|
+
private _updateMobileLayout;
|
|
36
35
|
private _handleClickOutOfElement;
|
|
37
36
|
private _toggleMenu;
|
|
37
|
+
private _onKeyboardToggle;
|
|
38
38
|
/** Shows the menu. For when subnav is in the collapsed form */
|
|
39
39
|
show(): Promise<void>;
|
|
40
40
|
/** Hide the menu. For when subnav is in the collapsed form */
|
|
@@ -42,6 +42,7 @@ export declare class SgdsSubnav extends SgdsElement {
|
|
|
42
42
|
private _animateToShow;
|
|
43
43
|
private _animateToHide;
|
|
44
44
|
handleOpenChange(): Promise<void>;
|
|
45
|
+
handleCollapsedChange(): Promise<void>;
|
|
45
46
|
render(): import("lit-html").TemplateResult<1>;
|
|
46
47
|
}
|
|
47
48
|
export default SgdsSubnav;
|
|
@@ -1,17 +1,18 @@
|
|
|
1
1
|
import { __decorate } from 'tslib';
|
|
2
2
|
import SgdsElement from '../../base/sgds-element.js';
|
|
3
|
-
import { html
|
|
3
|
+
import { html } from 'lit';
|
|
4
4
|
import { query, state } from 'lit/decorators.js';
|
|
5
5
|
import { classMap } from 'lit/directives/class-map.js';
|
|
6
6
|
import { watch } from '../../utils/watch.js';
|
|
7
7
|
import { waitForEvent } from '../../utils/event.js';
|
|
8
8
|
import { stopAnimations, animateTo, shimKeyframesHeightAuto } from '../../utils/animate.js';
|
|
9
9
|
import { setDefaultAnimation, getAnimation } from '../../utils/animation-registry.js';
|
|
10
|
-
import { LG_BREAKPOINT } from '../../utils/breakpoints.js';
|
|
10
|
+
import { LG_BREAKPOINT, MD_BREAKPOINT } from '../../utils/breakpoints.js';
|
|
11
11
|
import { SgdsIcon } from '../Icon/sgds-icon.js';
|
|
12
12
|
import css_248z from './subnav.js';
|
|
13
13
|
import css_248z$1 from '../../css/grid.js';
|
|
14
14
|
|
|
15
|
+
const VALID_KEYS = ["Enter", " "];
|
|
15
16
|
/**
|
|
16
17
|
* @summary This component provides secondary navigation within a specific section or page. It typically appears below the main navigation and offers context-specific links or actions to help users explore related content.
|
|
17
18
|
*
|
|
@@ -30,21 +31,33 @@ class SgdsSubnav extends SgdsElement {
|
|
|
30
31
|
super(...arguments);
|
|
31
32
|
this.isCollapsed = false;
|
|
32
33
|
this.isMenuOpen = false;
|
|
33
|
-
this._handleResize = () => {
|
|
34
|
+
this._handleResize = async () => {
|
|
34
35
|
this.isCollapsed = window.innerWidth < LG_BREAKPOINT;
|
|
36
|
+
await this.updateComplete;
|
|
35
37
|
if (!this.isCollapsed) {
|
|
36
38
|
this.isMenuOpen = false;
|
|
37
39
|
}
|
|
38
|
-
this.
|
|
40
|
+
this._updateMobileLayout();
|
|
39
41
|
};
|
|
40
|
-
this.
|
|
41
|
-
if (!this.nav || !this.
|
|
42
|
+
this._updateMobileLayout = () => {
|
|
43
|
+
if (!this.nav || !this.headerContainer || !this.mobileActions || !this.mobileNav)
|
|
42
44
|
return;
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
45
|
+
if (this.isCollapsed) {
|
|
46
|
+
const { top: subnavTop } = this.nav.getBoundingClientRect();
|
|
47
|
+
const headerHeight = this.headerContainer.clientHeight;
|
|
48
|
+
const actionsButtonHeight = this.mobileActions.clientHeight;
|
|
49
|
+
const offset = window.innerWidth >= MD_BREAKPOINT && window.innerWidth < LG_BREAKPOINT
|
|
50
|
+
? subnavTop + headerHeight
|
|
51
|
+
: subnavTop + headerHeight + actionsButtonHeight;
|
|
52
|
+
this.mobileNav.style.maxHeight = `calc(100dvh - ${offset}px)`;
|
|
53
|
+
this.style.minHeight = `${this.nav.clientHeight}px`;
|
|
54
|
+
this.nav.style.position = "absolute";
|
|
55
|
+
}
|
|
56
|
+
else {
|
|
57
|
+
this.mobileNav.style.maxHeight = "none";
|
|
58
|
+
this.style.minHeight = "auto";
|
|
59
|
+
this.nav.style.position = "relative";
|
|
60
|
+
}
|
|
48
61
|
};
|
|
49
62
|
this._toggleMenu = () => {
|
|
50
63
|
var _a;
|
|
@@ -60,36 +73,29 @@ class SgdsSubnav extends SgdsElement {
|
|
|
60
73
|
}
|
|
61
74
|
connectedCallback() {
|
|
62
75
|
super.connectedCallback();
|
|
63
|
-
this._handleResize();
|
|
76
|
+
// this._handleResize();
|
|
64
77
|
window.addEventListener("resize", this._handleResize);
|
|
65
|
-
window.addEventListener("click", (event) => this._handleClickOutOfElement(event, this.
|
|
78
|
+
window.addEventListener("click", (event) => this._handleClickOutOfElement(event, this.navGroup));
|
|
66
79
|
}
|
|
67
80
|
disconnectedCallback() {
|
|
68
81
|
super.disconnectedCallback();
|
|
69
82
|
window.removeEventListener("resize", this._handleResize);
|
|
70
|
-
window.removeEventListener("click", (event) => this._handleClickOutOfElement(event, this.
|
|
83
|
+
window.removeEventListener("click", (event) => this._handleClickOutOfElement(event, this.navGroup));
|
|
71
84
|
}
|
|
72
85
|
firstUpdated() {
|
|
73
|
-
this.
|
|
74
|
-
}
|
|
75
|
-
_handleSlotChange(e) {
|
|
76
|
-
const childElements = e.target.assignedElements({ flatten: true });
|
|
77
|
-
if (this.isCollapsed) {
|
|
78
|
-
childElements.forEach(element => {
|
|
79
|
-
element.setAttribute("isCollapsed", `${this.isCollapsed}`);
|
|
80
|
-
});
|
|
81
|
-
}
|
|
82
|
-
else {
|
|
83
|
-
childElements.forEach(element => {
|
|
84
|
-
element.removeAttribute("isCollapsed");
|
|
85
|
-
});
|
|
86
|
-
}
|
|
86
|
+
this._handleResize();
|
|
87
87
|
}
|
|
88
88
|
_handleClickOutOfElement(e, self) {
|
|
89
89
|
if (!e.composedPath().includes(self) && !e.composedPath().includes(this.toggler)) {
|
|
90
90
|
this.hide();
|
|
91
91
|
}
|
|
92
92
|
}
|
|
93
|
+
async _onKeyboardToggle(event) {
|
|
94
|
+
if (!VALID_KEYS.includes(event.key))
|
|
95
|
+
return;
|
|
96
|
+
event.preventDefault();
|
|
97
|
+
this._toggleMenu();
|
|
98
|
+
}
|
|
93
99
|
/** Shows the menu. For when subnav is in the collapsed form */
|
|
94
100
|
async show() {
|
|
95
101
|
if (this.isMenuOpen) {
|
|
@@ -114,10 +120,11 @@ class SgdsSubnav extends SgdsElement {
|
|
|
114
120
|
return;
|
|
115
121
|
}
|
|
116
122
|
await stopAnimations(this.mobileNav);
|
|
117
|
-
this.
|
|
123
|
+
if (this.isCollapsed) {
|
|
124
|
+
this.mobileNav.style.display = "flex";
|
|
125
|
+
}
|
|
118
126
|
const { keyframes, options } = getAnimation(this, "subnav.show");
|
|
119
127
|
await animateTo(this.mobileNav, shimKeyframesHeightAuto(keyframes, this.mobileNav.scrollHeight), options);
|
|
120
|
-
// this.mobileNav.style.height = "auto";
|
|
121
128
|
this.emit("sgds-after-show");
|
|
122
129
|
}
|
|
123
130
|
async _animateToHide() {
|
|
@@ -129,8 +136,9 @@ class SgdsSubnav extends SgdsElement {
|
|
|
129
136
|
await stopAnimations(this.mobileNav);
|
|
130
137
|
const { keyframes, options } = getAnimation(this, "subnav.hide");
|
|
131
138
|
await animateTo(this.mobileNav, shimKeyframesHeightAuto(keyframes, this.mobileNav.scrollHeight), options);
|
|
132
|
-
this.
|
|
133
|
-
|
|
139
|
+
if (this.isCollapsed) {
|
|
140
|
+
this.mobileNav.style.display = "none";
|
|
141
|
+
}
|
|
134
142
|
this.emit("sgds-after-hide");
|
|
135
143
|
}
|
|
136
144
|
async handleOpenChange() {
|
|
@@ -143,61 +151,41 @@ class SgdsSubnav extends SgdsElement {
|
|
|
143
151
|
this._animateToHide();
|
|
144
152
|
}
|
|
145
153
|
}
|
|
154
|
+
async handleCollapsedChange() {
|
|
155
|
+
await this.updateComplete;
|
|
156
|
+
this.mobileNav.style.display = this.isCollapsed ? "none" : "flex";
|
|
157
|
+
}
|
|
146
158
|
render() {
|
|
147
|
-
const isHydrated = this.hasUpdated;
|
|
148
159
|
return html `
|
|
149
|
-
<nav
|
|
150
|
-
class=${classMap({
|
|
151
|
-
mobile: this.isCollapsed
|
|
152
|
-
})}
|
|
153
|
-
aria-label="Sub navigation"
|
|
154
|
-
>
|
|
160
|
+
<nav aria-label="Sub navigation">
|
|
155
161
|
<div
|
|
156
162
|
class=${classMap({
|
|
157
|
-
"sgds-container":
|
|
163
|
+
"sgds-container": true,
|
|
158
164
|
subnav: true,
|
|
159
|
-
mobile: this.isCollapsed,
|
|
160
165
|
collapsed: !this.isMenuOpen
|
|
161
166
|
})}
|
|
162
167
|
>
|
|
163
|
-
<
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
168
|
+
<div class="header-container">
|
|
169
|
+
<slot name="header"></slot>
|
|
170
|
+
<sgds-icon
|
|
171
|
+
class="subnav-toggler"
|
|
172
|
+
name="chevron-down"
|
|
173
|
+
tabindex="0"
|
|
174
|
+
@click=${this._toggleMenu}
|
|
175
|
+
@keydown=${this._onKeyboardToggle}
|
|
176
|
+
aria-label="Toggle sub navigation"
|
|
177
|
+
aria-expanded=${this.isMenuOpen}
|
|
178
|
+
></sgds-icon>
|
|
179
|
+
</div>
|
|
180
|
+
<div class="subnav-nav-group">
|
|
181
|
+
<div class="subnav-nav">
|
|
182
|
+
<slot></slot>
|
|
183
|
+
</div>
|
|
184
|
+
<div class="subnav-actions">
|
|
185
|
+
<slot name="actions"></slot>
|
|
186
|
+
</div>
|
|
187
|
+
</div>
|
|
183
188
|
</div>
|
|
184
|
-
${this.isCollapsed
|
|
185
|
-
? html `
|
|
186
|
-
<div class="subnav-dropdown">
|
|
187
|
-
<div
|
|
188
|
-
class=${classMap({
|
|
189
|
-
"subnav-nav-mobile": true,
|
|
190
|
-
hidden: !this.isMenuOpen && !isHydrated
|
|
191
|
-
})}
|
|
192
|
-
>
|
|
193
|
-
<slot @slotchange="${this._handleSlotChange}"></slot>
|
|
194
|
-
</div>
|
|
195
|
-
<div class="subnav-actions-mobile">
|
|
196
|
-
<slot name="actions"></slot>
|
|
197
|
-
</div>
|
|
198
|
-
</div>
|
|
199
|
-
`
|
|
200
|
-
: nothing}
|
|
201
189
|
</nav>
|
|
202
190
|
`;
|
|
203
191
|
}
|
|
@@ -211,19 +199,19 @@ __decorate([
|
|
|
211
199
|
query("nav")
|
|
212
200
|
], SgdsSubnav.prototype, "nav", void 0);
|
|
213
201
|
__decorate([
|
|
214
|
-
query(".subnav")
|
|
215
|
-
], SgdsSubnav.prototype, "subnav", void 0);
|
|
216
|
-
__decorate([
|
|
217
|
-
query(".subnav-nav-mobile")
|
|
202
|
+
query(".subnav-nav")
|
|
218
203
|
], SgdsSubnav.prototype, "mobileNav", void 0);
|
|
204
|
+
__decorate([
|
|
205
|
+
query(".header-container")
|
|
206
|
+
], SgdsSubnav.prototype, "headerContainer", void 0);
|
|
219
207
|
__decorate([
|
|
220
208
|
query(".subnav-toggler")
|
|
221
209
|
], SgdsSubnav.prototype, "toggler", void 0);
|
|
222
210
|
__decorate([
|
|
223
|
-
query(".subnav-
|
|
224
|
-
], SgdsSubnav.prototype, "
|
|
211
|
+
query(".subnav-nav-group")
|
|
212
|
+
], SgdsSubnav.prototype, "navGroup", void 0);
|
|
225
213
|
__decorate([
|
|
226
|
-
query(".subnav-actions
|
|
214
|
+
query(".subnav-actions")
|
|
227
215
|
], SgdsSubnav.prototype, "mobileActions", void 0);
|
|
228
216
|
__decorate([
|
|
229
217
|
state()
|
|
@@ -234,6 +222,9 @@ __decorate([
|
|
|
234
222
|
__decorate([
|
|
235
223
|
watch("isMenuOpen", { waitUntilFirstUpdate: true })
|
|
236
224
|
], SgdsSubnav.prototype, "handleOpenChange", null);
|
|
225
|
+
__decorate([
|
|
226
|
+
watch("isCollapsed", { waitUntilFirstUpdate: true })
|
|
227
|
+
], SgdsSubnav.prototype, "handleCollapsedChange", null);
|
|
237
228
|
setDefaultAnimation("subnav.show", {
|
|
238
229
|
keyframes: [
|
|
239
230
|
{ height: "0", opacity: "0" },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sgds-subnav.js","sources":["../../../src/components/Subnav/sgds-subnav.ts"],"sourcesContent":["import SgdsElement from \"../../base/sgds-element\";\nimport { html, nothing } from \"lit\";\nimport { query, state } from \"lit/decorators.js\";\nimport { classMap } from \"lit/directives/class-map.js\";\nimport { watch } from \"../../utils/watch\";\nimport { waitForEvent } from \"../../utils/event\";\nimport { animateTo, shimKeyframesHeightAuto, stopAnimations } from \"../../utils/animate\";\nimport { getAnimation, setDefaultAnimation } from \"../../utils/animation-registry\";\nimport { LG_BREAKPOINT } from \"../../utils/breakpoints\";\nimport SgdsIcon from \"../Icon/sgds-icon\";\nimport subnavStyle from \"./subnav.css\";\nimport gridStyle from \"../../css/grid.css\";\n\n/**\n * @summary This component provides secondary navigation within a specific section or page. It typically appears below the main navigation and offers context-specific links or actions to help users explore related content.\n *\n * @event sgds-show - Emitted on show. Only for collapsed menu.\n * @event sgds-after-show - Emitted on show after animation has completed. Only for collapsed menu.\n * @event sgds-hide - Emitted on hide. Only for collapsed menu.\n * @event sgds-after-hide - Emitted on hide after animation has completed. Only for collapsed menu.\n *\n * @slot default - Default slot of SgdsSubnav. Pass in SgdsSubnavItem elements here.\n * @slot header - Slot for rendering the sub-navigation header or section title.\n * @slot actions - Slot for inserting contextual action elements such as buttons, filters, or other controls aligned with the sub-navigation.\n *\n */\n\nexport class SgdsSubnav extends SgdsElement {\n static styles = [...SgdsElement.styles, subnavStyle, gridStyle];\n /** @internal */\n static dependencies = {\n \"sgds-icon\": SgdsIcon\n };\n\n @query(\"nav\")\n private nav: HTMLElement;\n\n @query(\".subnav\")\n private subnav: HTMLElement;\n\n @query(\".subnav-nav-mobile\")\n private mobileNav: HTMLElement;\n\n @query(\".subnav-toggler\")\n private toggler: HTMLElement;\n\n @query(\".subnav-dropdown\")\n private body: HTMLElement;\n\n @query(\".subnav-actions-mobile\")\n private mobileActions: HTMLElement;\n\n @state()\n private isCollapsed = false;\n\n @state()\n private isMenuOpen = false;\n\n connectedCallback() {\n super.connectedCallback();\n this._handleResize();\n window.addEventListener(\"resize\", this._handleResize);\n window.addEventListener(\"click\", (event: MouseEvent) => this._handleClickOutOfElement(event, this.body));\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n window.removeEventListener(\"resize\", this._handleResize);\n window.removeEventListener(\"click\", (event: MouseEvent) => this._handleClickOutOfElement(event, this.body));\n }\n\n firstUpdated() {\n this._updateMobileNavMaxHeight();\n }\n\n private _handleResize = () => {\n this.isCollapsed = window.innerWidth < LG_BREAKPOINT;\n\n if (!this.isCollapsed) {\n this.isMenuOpen = false;\n }\n\n this._updateMobileNavMaxHeight();\n };\n\n private _updateMobileNavMaxHeight = () => {\n if (!this.nav || !this.subnav || !this.mobileActions || !this.mobileNav) return;\n const { top: subnavTop } = this.nav.getBoundingClientRect();\n const headerHeight = this.subnav.clientHeight;\n const actionsButtonHeight = this.mobileActions.clientHeight;\n const offset = subnavTop + headerHeight + actionsButtonHeight;\n this.mobileNav.style.maxHeight = `calc(100dvh - ${offset}px)`;\n };\n\n private _handleSlotChange(e: Event) {\n const childElements = (e.target as HTMLSlotElement).assignedElements({ flatten: true });\n\n if (this.isCollapsed) {\n childElements.forEach(element => {\n element.setAttribute(\"isCollapsed\", `${this.isCollapsed}`);\n });\n } else {\n childElements.forEach(element => {\n element.removeAttribute(\"isCollapsed\");\n });\n }\n }\n\n private _handleClickOutOfElement(e: MouseEvent, self: HTMLElement) {\n if (!e.composedPath().includes(self) && !e.composedPath().includes(this.toggler)) {\n this.hide();\n }\n }\n\n private _toggleMenu = () => {\n if (this.isMenuOpen) {\n this.hide();\n } else {\n document.querySelector(\"body\").style.overflow = \"hidden\";\n this.show();\n }\n\n this.toggler?.focus();\n };\n\n /** Shows the menu. For when subnav is in the collapsed form */\n public async show() {\n if (this.isMenuOpen) {\n return;\n }\n\n this.isMenuOpen = true;\n return waitForEvent(this, \"sgds-after-show\");\n }\n\n /** Hide the menu. For when subnav is in the collapsed form */\n public async hide() {\n if (!this.isMenuOpen) {\n return;\n }\n\n this.isMenuOpen = false;\n document.querySelector(\"body\").style.removeProperty(\"overflow\");\n\n return waitForEvent(this, \"sgds-after-hide\");\n }\n\n private async _animateToShow() {\n const sgdsShow = this.emit(\"sgds-show\", { cancelable: true });\n if (sgdsShow.defaultPrevented) {\n this.isMenuOpen = false;\n return;\n }\n\n await stopAnimations(this.mobileNav);\n this.mobileNav.classList.remove(\"hidden\");\n\n const { keyframes, options } = getAnimation(this, \"subnav.show\");\n await animateTo(this.mobileNav, shimKeyframesHeightAuto(keyframes, this.mobileNav.scrollHeight), options);\n // this.mobileNav.style.height = \"auto\";\n\n this.emit(\"sgds-after-show\");\n }\n\n private async _animateToHide() {\n const slHide = this.emit(\"sgds-hide\", { cancelable: true });\n if (slHide.defaultPrevented) {\n this.isMenuOpen = true;\n return;\n }\n\n await stopAnimations(this.mobileNav);\n\n const { keyframes, options } = getAnimation(this, \"subnav.hide\");\n await animateTo(this.mobileNav, shimKeyframesHeightAuto(keyframes, this.mobileNav.scrollHeight), options);\n this.mobileNav.classList.add(\"hidden\");\n // this.mobileNav.style.height = \"auto\";\n\n this.emit(\"sgds-after-hide\");\n }\n\n @watch(\"isMenuOpen\", { waitUntilFirstUpdate: true })\n async handleOpenChange() {\n if (this.isMenuOpen) {\n // Show\n this._animateToShow();\n } else {\n // Hide\n this._animateToHide();\n }\n }\n\n render() {\n const isHydrated = this.hasUpdated;\n\n return html`\n <nav\n class=${classMap({\n mobile: this.isCollapsed\n })}\n aria-label=\"Sub navigation\"\n >\n <div\n class=${classMap({\n \"sgds-container\": !this.isCollapsed,\n subnav: true,\n mobile: this.isCollapsed,\n collapsed: !this.isMenuOpen\n })}\n >\n <slot name=\"header\"></slot>\n ${this.isCollapsed\n ? html`\n <sgds-icon\n class=\"subnav-toggler\"\n name=\"chevron-down\"\n @click=${this._toggleMenu}\n aria-label=\"Toggle sub navigation\"\n ></sgds-icon>\n `\n : html`\n <div class=\"subnav-nav-group\">\n <div class=\"subnav-nav\">\n <slot @slotchange=\"${this._handleSlotChange}\"></slot>\n </div>\n <div class=\"subnav-actions\">\n <slot name=\"actions\"></slot>\n </div>\n </div>\n `}\n </div>\n ${this.isCollapsed\n ? html`\n <div class=\"subnav-dropdown\">\n <div\n class=${classMap({\n \"subnav-nav-mobile\": true,\n hidden: !this.isMenuOpen && !isHydrated\n })}\n >\n <slot @slotchange=\"${this._handleSlotChange}\"></slot>\n </div>\n <div class=\"subnav-actions-mobile\">\n <slot name=\"actions\"></slot>\n </div>\n </div>\n `\n : nothing}\n </nav>\n `;\n }\n}\n\nsetDefaultAnimation(\"subnav.show\", {\n keyframes: [\n { height: \"0\", opacity: \"0\" },\n { height: \"auto\", opacity: \"1\" }\n ],\n options: { duration: 200, easing: \"ease-in-out\" }\n});\n\nsetDefaultAnimation(\"subnav.hide\", {\n keyframes: [\n { height: \"auto\", opacity: \"1\" },\n { height: \"0\", opacity: \"0\" }\n ],\n options: { duration: 200, easing: \"ease-in-out\" }\n});\n\nexport default SgdsSubnav;\n"],"names":["subnavStyle","gridStyle"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sgds-subnav.js","sources":["../../../src/components/Subnav/sgds-subnav.ts"],"sourcesContent":["import SgdsElement from \"../../base/sgds-element\";\nimport { html } from \"lit\";\nimport { query, state } from \"lit/decorators.js\";\nimport { classMap } from \"lit/directives/class-map.js\";\nimport { watch } from \"../../utils/watch\";\nimport { waitForEvent } from \"../../utils/event\";\nimport { animateTo, shimKeyframesHeightAuto, stopAnimations } from \"../../utils/animate\";\nimport { getAnimation, setDefaultAnimation } from \"../../utils/animation-registry\";\nimport { LG_BREAKPOINT, MD_BREAKPOINT } from \"../../utils/breakpoints\";\nimport SgdsIcon from \"../Icon/sgds-icon\";\nimport subnavStyle from \"./subnav.css\";\nimport gridStyle from \"../../css/grid.css\";\n\nconst VALID_KEYS = [\"Enter\", \" \"];\n\n/**\n * @summary This component provides secondary navigation within a specific section or page. It typically appears below the main navigation and offers context-specific links or actions to help users explore related content.\n *\n * @event sgds-show - Emitted on show. Only for collapsed menu.\n * @event sgds-after-show - Emitted on show after animation has completed. Only for collapsed menu.\n * @event sgds-hide - Emitted on hide. Only for collapsed menu.\n * @event sgds-after-hide - Emitted on hide after animation has completed. Only for collapsed menu.\n *\n * @slot default - Default slot of SgdsSubnav. Pass in SgdsSubnavItem elements here.\n * @slot header - Slot for rendering the sub-navigation header or section title.\n * @slot actions - Slot for inserting contextual action elements such as buttons, filters, or other controls aligned with the sub-navigation.\n *\n */\n\nexport class SgdsSubnav extends SgdsElement {\n static styles = [...SgdsElement.styles, subnavStyle, gridStyle];\n /** @internal */\n static dependencies = {\n \"sgds-icon\": SgdsIcon\n };\n\n @query(\"nav\")\n private nav: HTMLElement;\n\n @query(\".subnav-nav\")\n private mobileNav: HTMLElement;\n\n @query(\".header-container\")\n private headerContainer: HTMLElement;\n\n @query(\".subnav-toggler\")\n private toggler: HTMLElement;\n\n @query(\".subnav-nav-group\")\n private navGroup: HTMLElement;\n\n @query(\".subnav-actions\")\n private mobileActions: HTMLElement;\n\n @state()\n private isCollapsed = false;\n\n @state()\n private isMenuOpen = false;\n\n connectedCallback() {\n super.connectedCallback();\n\n // this._handleResize();\n window.addEventListener(\"resize\", this._handleResize);\n window.addEventListener(\"click\", (event: MouseEvent) => this._handleClickOutOfElement(event, this.navGroup));\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n\n window.removeEventListener(\"resize\", this._handleResize);\n window.removeEventListener(\"click\", (event: MouseEvent) => this._handleClickOutOfElement(event, this.navGroup));\n }\n\n firstUpdated() {\n this._handleResize();\n }\n\n private _handleResize = async () => {\n this.isCollapsed = window.innerWidth < LG_BREAKPOINT;\n\n await this.updateComplete;\n\n if (!this.isCollapsed) {\n this.isMenuOpen = false;\n }\n\n this._updateMobileLayout();\n };\n\n private _updateMobileLayout = () => {\n if (!this.nav || !this.headerContainer || !this.mobileActions || !this.mobileNav) return;\n\n if (this.isCollapsed) {\n const { top: subnavTop } = this.nav.getBoundingClientRect();\n const headerHeight = this.headerContainer.clientHeight;\n const actionsButtonHeight = this.mobileActions.clientHeight;\n const offset =\n window.innerWidth >= MD_BREAKPOINT && window.innerWidth < LG_BREAKPOINT\n ? subnavTop + headerHeight\n : subnavTop + headerHeight + actionsButtonHeight;\n\n this.mobileNav.style.maxHeight = `calc(100dvh - ${offset}px)`;\n this.style.minHeight = `${this.nav.clientHeight}px`;\n this.nav.style.position = \"absolute\";\n } else {\n this.mobileNav.style.maxHeight = \"none\";\n this.style.minHeight = \"auto\";\n this.nav.style.position = \"relative\";\n }\n };\n\n private _handleClickOutOfElement(e: MouseEvent, self: HTMLElement) {\n if (!e.composedPath().includes(self) && !e.composedPath().includes(this.toggler)) {\n this.hide();\n }\n }\n\n private _toggleMenu = () => {\n if (this.isMenuOpen) {\n this.hide();\n } else {\n document.querySelector(\"body\").style.overflow = \"hidden\";\n this.show();\n }\n\n this.toggler?.focus();\n };\n\n private async _onKeyboardToggle(event: KeyboardEvent) {\n if (!VALID_KEYS.includes(event.key)) return;\n\n event.preventDefault();\n this._toggleMenu();\n }\n\n /** Shows the menu. For when subnav is in the collapsed form */\n public async show() {\n if (this.isMenuOpen) {\n return;\n }\n\n this.isMenuOpen = true;\n return waitForEvent(this, \"sgds-after-show\");\n }\n\n /** Hide the menu. For when subnav is in the collapsed form */\n public async hide() {\n if (!this.isMenuOpen) {\n return;\n }\n\n this.isMenuOpen = false;\n document.querySelector(\"body\").style.removeProperty(\"overflow\");\n\n return waitForEvent(this, \"sgds-after-hide\");\n }\n\n private async _animateToShow() {\n const sgdsShow = this.emit(\"sgds-show\", { cancelable: true });\n if (sgdsShow.defaultPrevented) {\n this.isMenuOpen = false;\n return;\n }\n\n await stopAnimations(this.mobileNav);\n if (this.isCollapsed) {\n this.mobileNav.style.display = \"flex\";\n }\n\n const { keyframes, options } = getAnimation(this, \"subnav.show\");\n await animateTo(this.mobileNav, shimKeyframesHeightAuto(keyframes, this.mobileNav.scrollHeight), options);\n\n this.emit(\"sgds-after-show\");\n }\n\n private async _animateToHide() {\n const slHide = this.emit(\"sgds-hide\", { cancelable: true });\n if (slHide.defaultPrevented) {\n this.isMenuOpen = true;\n return;\n }\n\n await stopAnimations(this.mobileNav);\n\n const { keyframes, options } = getAnimation(this, \"subnav.hide\");\n await animateTo(this.mobileNav, shimKeyframesHeightAuto(keyframes, this.mobileNav.scrollHeight), options);\n if (this.isCollapsed) {\n this.mobileNav.style.display = \"none\";\n }\n\n this.emit(\"sgds-after-hide\");\n }\n\n @watch(\"isMenuOpen\", { waitUntilFirstUpdate: true })\n async handleOpenChange() {\n if (this.isMenuOpen) {\n // Show\n this._animateToShow();\n } else {\n // Hide\n this._animateToHide();\n }\n }\n\n @watch(\"isCollapsed\", { waitUntilFirstUpdate: true })\n async handleCollapsedChange() {\n await this.updateComplete;\n this.mobileNav.style.display = this.isCollapsed ? \"none\" : \"flex\";\n }\n\n render() {\n return html`\n <nav aria-label=\"Sub navigation\">\n <div\n class=${classMap({\n \"sgds-container\": true,\n subnav: true,\n collapsed: !this.isMenuOpen\n })}\n >\n <div class=\"header-container\">\n <slot name=\"header\"></slot>\n <sgds-icon\n class=\"subnav-toggler\"\n name=\"chevron-down\"\n tabindex=\"0\"\n @click=${this._toggleMenu}\n @keydown=${this._onKeyboardToggle}\n aria-label=\"Toggle sub navigation\"\n aria-expanded=${this.isMenuOpen}\n ></sgds-icon>\n </div>\n <div class=\"subnav-nav-group\">\n <div class=\"subnav-nav\">\n <slot></slot>\n </div>\n <div class=\"subnav-actions\">\n <slot name=\"actions\"></slot>\n </div>\n </div>\n </div>\n </nav>\n `;\n }\n}\n\nsetDefaultAnimation(\"subnav.show\", {\n keyframes: [\n { height: \"0\", opacity: \"0\" },\n { height: \"auto\", opacity: \"1\" }\n ],\n options: { duration: 200, easing: \"ease-in-out\" }\n});\n\nsetDefaultAnimation(\"subnav.hide\", {\n keyframes: [\n { height: \"auto\", opacity: \"1\" },\n { height: \"0\", opacity: \"0\" }\n ],\n options: { duration: 200, easing: \"ease-in-out\" }\n});\n\nexport default SgdsSubnav;\n"],"names":["subnavStyle","gridStyle"],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { css } from 'lit';
|
|
2
2
|
|
|
3
|
-
var css_248z = css`:host(:not([disabled])[active]
|
|
3
|
+
var css_248z = css`:host(:not([disabled])[active]:not([active=false])) ::slotted(*){background-color:var(--sgds-bg-translucent-subtle);border-bottom:none}::slotted(*){--sgds-font-size-2:var(--sgds-font-size-1);--sgds-link-color-default:var(--sgds-color-default);box-sizing:border-box;color:var(--sgds-link-color-default,var(--sgds-color-default));cursor:pointer;display:flex;font-size:var(--sgds-font-size-2,var(--sgds-font-size-1));gap:var(--sgds-gap-2-xs);padding:var(--sgds-padding-sm) var(--sgds-padding-lg);text-decoration:none!important;white-space:nowrap}:host(:not([disabled])[active]:not([active=false])) ::slotted(*){--sgds-link-color-default:var(--sgds-primary-color-default);color:var(--sgds-link-color-default,var(--sgds-primary-color-default))}:host([disabled]) ::slotted(a:hover){--sgds-link-color-emphasis:var(--sgds-color-default);color:var(--sgds-link-color-emphasis,var(--sgds-color-default))}:host(:not([disabled])) ::slotted(a:hover){--sgds-link-color-emphasis:var(--sgds-primary-color-default);color:var(--sgds-link-color-emphasis,var(--sgds-primary-color-default))}::slotted(a:focus),::slotted(a:focus-visible){outline:0}::slotted(a:focus-visible){--sgds-link-color-emphasis:var(--sgds-primary-color-default);box-shadow:var(--sgds-box-shadow-focus) inset;color:var(--sgds-link-color-emphasis,var(--sgds-primary-color-default))}:host([disabled]) ::slotted(*){cursor:not-allowed;opacity:var(--sgds-opacity-50)}@media screen and (min-width:1024px){:host(:not([disabled])[active]:not([active=false])) ::slotted(*){--sgds-link-color-default:var(--sgds-primary-color-default);background-color:inherit;border-bottom:var(--sgds-border-width-2) solid var(--sgds-primary-border-color-default);color:var(--sgds-link-color-default,var(--sgds-primary-color-default))}::slotted(*){padding:var(--sgds-padding-lg) var(--sgds-padding-none)}}`;
|
|
4
4
|
|
|
5
5
|
export { css_248z as default };
|
|
6
6
|
//# sourceMappingURL=subnav-item.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { css } from 'lit';
|
|
2
2
|
|
|
3
|
-
var css_248z = css`:host{position:sticky;top:0;z-index:1000}nav{background-color:var(--sgds-surface-default);border-bottom:var(--sgds-border-width-1) solid var(--sgds-border-color-muted)}
|
|
3
|
+
var css_248z = css`:host{display:block;position:sticky;top:0;z-index:1000}nav{background-color:var(--sgds-surface-default);border-bottom:var(--sgds-border-width-1) solid var(--sgds-border-color-muted);width:100%}.subnav{flex-direction:column;flex-wrap:nowrap}.header-container,.subnav{align-items:flex-start;display:flex}.header-container{gap:var(--sgds-gap-md);padding:var(--sgds-padding-md) var(--sgds-padding-lg);width:100%}slot[name=header]::slotted(*){--sgds-margin-3-xs:var(--sgds-margin-none);flex:1 1 auto;margin-bottom:var(--sgds-margin-3-xs,--sgds-margin-none);padding-top:var(--sgds-padding-none)}.subnav-toggler{cursor:pointer;transition:transform .2s ease-in-out}.subnav-toggler:focus,.subnav-toggler:focus-visible{box-shadow:var(--sgds-box-shadow-focus);outline:0}.subnav:not(.collapsed) .subnav-toggler{transform:rotate(-180deg)}.subnav-nav-group{display:flex;flex:1 1 0}.subnav-nav,.subnav-nav-group{align-items:flex-start;flex-direction:column;width:100%}.subnav-nav{display:none;overflow-y:auto;transition:transform .2s ease-in-out}.subnav-nav ::slotted(*){width:100%}.subnav-actions{bottom:0;display:flex;flex-direction:column;gap:var(--sgds-gap-md);padding:var(--sgds-padding-md) var(--sgds-padding-lg);position:sticky;width:100%}slot[name=actions]::slotted(*){width:100%}@media screen and (max-width:1023px){.subnav.sgds-container{max-width:inherit}}@media screen and (min-width:512px){.subnav-actions{flex-direction:row}}@media screen and (min-width:768px){nav{border-bottom:var(--sgds-border-width-0)}.subnav{flex-direction:row}.subnav.collapsed{border-bottom:var(--sgds-border-width-1) solid var(--sgds-border-color-muted)}.header-container{padding:var(--sgds-padding-lg) var(--sgds-padding-2-xl)}.subnav-nav{background-color:var(--sgds-surface-default);border-bottom:var(--sgds-border-width-1) solid var(--sgds-border-color-muted);left:0;position:absolute;top:100%}.subnav-actions{align-items:center;flex-direction:row;padding:var(--sgds-padding-sm) var(--sgds-padding-2-xl) var(--sgds-padding-sm) var(--sgds-padding-none);position:inherit}}@media screen and (min-width:1024px){nav{border-bottom:var(--sgds-border-width-1) solid var(--sgds-border-color-muted);position:inherit}.subnav{flex-wrap:wrap;gap:var(--sgds-gap-xl);row-gap:var(--sgds-gap-none)}.subnav.collapsed{border-bottom:var(--sgds-border-width-0)}.header-container{flex:1;padding:var(--sgds-padding-none);width:auto}slot[name=header]::slotted(*){padding-top:var(--sgds-padding-lg);white-space:nowrap}.subnav-nav-group{align-items:center;flex:inherit;flex-direction:row;flex-wrap:wrap;gap:var(--sgds-gap-xl);justify-content:space-between;row-gap:var(--sgds-gap-none);width:auto}.subnav-nav{align-items:center;background-color:inherit;border-bottom:var(--sgds-border-width-0);display:flex;flex-direction:row;flex-wrap:wrap;gap:var(--sgds-gap-lg);overflow-y:inherit;position:inherit;row-gap:0;transition:none;width:auto}.subnav-nav ::slotted(*){width:inherit}.subnav-toggler{display:none}.subnav-actions{padding:var(--sgds-padding-sm) var(--sgds-padding-none);width:auto}slot[name=actions]::slotted(*){width:inherit}}`;
|
|
4
4
|
|
|
5
5
|
export { css_248z as default };
|
|
6
6
|
//# sourceMappingURL=subnav.js.map
|
|
@@ -1,6 +1,12 @@
|
|
|
1
|
-
import
|
|
1
|
+
import SgdsTable from "./sgds-table";
|
|
2
|
+
import SgdsTableHead from "./sgds-table-head";
|
|
3
|
+
import SgdsTableRow from "./sgds-table-row";
|
|
4
|
+
import SgdsTableCell from "./sgds-table-cell";
|
|
2
5
|
declare global {
|
|
3
6
|
interface HTMLElementTagNameMap {
|
|
4
7
|
"sgds-table": SgdsTable;
|
|
8
|
+
"sgds-table-head": SgdsTableHead;
|
|
9
|
+
"sgds-table-row": SgdsTableRow;
|
|
10
|
+
"sgds-table-cell": SgdsTableCell;
|
|
5
11
|
}
|
|
6
12
|
}
|
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
import { SgdsTable } from './sgds-table.js';
|
|
2
2
|
import { register } from '../../utils/ce-registry.js';
|
|
3
|
+
import { SgdsTableHead } from './sgds-table-head.js';
|
|
4
|
+
import { SgdsTableRow } from './sgds-table-row.js';
|
|
5
|
+
import { SgdsTableCell } from './sgds-table-cell.js';
|
|
3
6
|
|
|
4
7
|
register("sgds-table", SgdsTable);
|
|
8
|
+
register("sgds-table-head", SgdsTableHead);
|
|
9
|
+
register("sgds-table-row", SgdsTableRow);
|
|
10
|
+
register("sgds-table-cell", SgdsTableCell);
|
|
5
11
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../src/components/Table/index.ts"],"sourcesContent":["import
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../src/components/Table/index.ts"],"sourcesContent":["import SgdsTable from \"./sgds-table\";\nimport { register } from \"../../utils/ce-registry\";\nimport SgdsTableHead from \"./sgds-table-head\";\nimport SgdsTableRow from \"./sgds-table-row\";\nimport SgdsTableCell from \"./sgds-table-cell\";\n\nregister(\"sgds-table\", SgdsTable);\nregister(\"sgds-table-head\", SgdsTableHead);\nregister(\"sgds-table-row\", SgdsTableRow);\nregister(\"sgds-table-cell\", SgdsTableCell);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"sgds-table\": SgdsTable;\n \"sgds-table-head\": SgdsTableHead;\n \"sgds-table-row\": SgdsTableRow;\n \"sgds-table-cell\": SgdsTableCell;\n }\n}\n"],"names":[],"mappings":";;;;;;AAMA,QAAQ,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;AAClC,QAAQ,CAAC,iBAAiB,EAAE,aAAa,CAAC,CAAC;AAC3C,QAAQ,CAAC,gBAAgB,EAAE,YAAY,CAAC,CAAC;AACzC,QAAQ,CAAC,iBAAiB,EAAE,aAAa,CAAC"}
|