@govtechsg/sgds-web-component 3.27.0-rc.3 → 3.27.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/dropdown-list-element.js +2 -9
- package/base/dropdown-list-element.js.map +1 -1
- package/components/Breadcrumb/index.umd.min.js +5 -5
- package/components/Breadcrumb/index.umd.min.js.map +1 -1
- package/components/ComboBox/index.umd.min.js +1 -1
- package/components/ComboBox/index.umd.min.js.map +1 -1
- package/components/DataTable/data-table.js +1 -1
- package/components/DataTable/index.umd.min.js +49 -42
- package/components/DataTable/index.umd.min.js.map +1 -1
- package/components/DataTable/sgds-data-table-cell.d.ts +2 -2
- package/components/DataTable/sgds-data-table-cell.js.map +1 -1
- package/components/DataTable/sgds-data-table-head.d.ts +2 -2
- package/components/DataTable/sgds-data-table-head.js.map +1 -1
- package/components/DataTable/sgds-data-table-row.d.ts +0 -3
- package/components/DataTable/sgds-data-table-row.js +0 -13
- package/components/DataTable/sgds-data-table-row.js.map +1 -1
- package/components/DataTable/sgds-data-table.d.ts +7 -4
- package/components/DataTable/sgds-data-table.js +49 -38
- package/components/DataTable/sgds-data-table.js.map +1 -1
- package/components/DataTable/types.d.ts +7 -0
- package/components/Datepicker/index.umd.min.js +1 -1
- package/components/Dropdown/dropdown-item.js +1 -1
- package/components/Dropdown/index.umd.min.js +5 -5
- package/components/Dropdown/index.umd.min.js.map +1 -1
- package/components/Dropdown/sgds-dropdown-item.d.ts +0 -2
- package/components/Dropdown/sgds-dropdown-item.js +2 -8
- package/components/Dropdown/sgds-dropdown-item.js.map +1 -1
- package/components/Footer/index.umd.min.js +1 -1
- package/components/Footer/index.umd.min.js.map +1 -1
- package/components/Footer/sgds-footer.js +1 -1
- package/components/Footer/sgds-footer.js.map +1 -1
- package/components/Input/index.umd.min.js +1 -1
- package/components/Mainnav/index.d.ts +0 -2
- package/components/Mainnav/index.js +0 -2
- package/components/Mainnav/index.js.map +1 -1
- package/components/Mainnav/index.umd.min.js +285 -338
- package/components/Mainnav/index.umd.min.js.map +1 -1
- package/components/Mainnav/mainnav-dropdown.js +1 -1
- package/components/Mainnav/mainnav-item.js +1 -1
- package/components/Mainnav/mainnav.js +1 -1
- package/components/Mainnav/sgds-mainnav.d.ts +51 -8
- package/components/Mainnav/sgds-mainnav.js +238 -40
- package/components/Mainnav/sgds-mainnav.js.map +1 -1
- package/components/OverflowMenu/index.umd.min.js +5 -5
- package/components/OverflowMenu/index.umd.min.js.map +1 -1
- package/components/QuantityToggle/index.umd.min.js +1 -1
- package/components/Select/index.umd.min.js +21 -21
- package/components/Select/index.umd.min.js.map +1 -1
- package/components/Tab/index.umd.min.js +1 -1
- package/components/Tab/index.umd.min.js.map +1 -1
- package/components/Tab/tab-panel.js +1 -1
- package/components/Textarea/index.umd.min.js +1 -1
- package/components/index.d.ts +0 -3
- package/components/index.js +0 -3
- package/components/index.js.map +1 -1
- package/components/index.umd.min.js +587 -665
- package/components/index.umd.min.js.map +1 -1
- package/css/fouc.css +5 -8
- package/custom-elements.json +15246 -17418
- package/index.d.ts +0 -1
- package/index.js +0 -1
- package/index.js.map +1 -1
- package/index.umd.min.js +353 -441
- package/index.umd.min.js.map +1 -1
- package/package.json +1 -1
- package/react/base/dropdown-list-element.cjs.js +2 -9
- package/react/base/dropdown-list-element.cjs.js.map +1 -1
- package/react/base/dropdown-list-element.js +2 -9
- package/react/base/dropdown-list-element.js.map +1 -1
- package/react/components/DataTable/data-table.cjs.js +1 -1
- package/react/components/DataTable/data-table.js +1 -1
- package/react/components/DataTable/sgds-data-table-cell.cjs.js.map +1 -1
- package/react/components/DataTable/sgds-data-table-cell.js.map +1 -1
- package/react/components/DataTable/sgds-data-table-head.cjs.js.map +1 -1
- package/react/components/DataTable/sgds-data-table-head.js.map +1 -1
- package/react/components/DataTable/sgds-data-table-row.cjs.js +0 -13
- package/react/components/DataTable/sgds-data-table-row.cjs.js.map +1 -1
- package/react/components/DataTable/sgds-data-table-row.js +0 -13
- package/react/components/DataTable/sgds-data-table-row.js.map +1 -1
- package/react/components/DataTable/sgds-data-table.cjs.js +49 -38
- package/react/components/DataTable/sgds-data-table.cjs.js.map +1 -1
- package/react/components/DataTable/sgds-data-table.js +49 -38
- package/react/components/DataTable/sgds-data-table.js.map +1 -1
- package/react/components/Dropdown/dropdown-item.cjs.js +1 -1
- package/react/components/Dropdown/dropdown-item.js +1 -1
- package/react/components/Dropdown/sgds-dropdown-item.cjs.js +2 -8
- package/react/components/Dropdown/sgds-dropdown-item.cjs.js.map +1 -1
- package/react/components/Dropdown/sgds-dropdown-item.js +2 -8
- package/react/components/Dropdown/sgds-dropdown-item.js.map +1 -1
- package/react/components/Footer/sgds-footer.cjs.js +1 -1
- package/react/components/Footer/sgds-footer.cjs.js.map +1 -1
- package/react/components/Footer/sgds-footer.js +1 -1
- package/react/components/Footer/sgds-footer.js.map +1 -1
- package/react/components/Mainnav/mainnav-dropdown.cjs.js +1 -1
- package/react/components/Mainnav/mainnav-dropdown.js +1 -1
- package/react/components/Mainnav/mainnav-item.cjs.js +1 -1
- package/react/components/Mainnav/mainnav-item.js +1 -1
- package/react/components/Mainnav/mainnav.cjs.js +1 -1
- package/react/components/Mainnav/mainnav.js +1 -1
- package/react/components/Mainnav/sgds-mainnav.cjs.js +237 -39
- package/react/components/Mainnav/sgds-mainnav.cjs.js.map +1 -1
- package/react/components/Mainnav/sgds-mainnav.js +238 -40
- package/react/components/Mainnav/sgds-mainnav.js.map +1 -1
- package/react/components/Tab/tab-panel.cjs.js +1 -1
- package/react/components/Tab/tab-panel.js +1 -1
- package/react/index.cjs.js +146 -152
- package/react/index.cjs.js.map +1 -1
- package/react/index.d.ts +5 -8
- package/react/index.js +5 -8
- package/react/index.js.map +1 -1
- package/react/styles/form-text-control.cjs.js +1 -1
- package/react/styles/form-text-control.js +1 -1
- package/styles/form-text-control.js +1 -1
- package/themes/blue.css +11 -11
- package/themes/cyan.css +10 -10
- package/themes/day.css +1 -1
- package/themes/gt/blue.css +11 -11
- package/themes/gt/cyan.css +10 -10
- package/themes/gt/magenta.css +11 -11
- package/themes/gt/pink.css +11 -11
- package/themes/gt/purple.css +11 -11
- package/themes/gt/red.css +11 -11
- package/themes/magenta.css +11 -11
- package/themes/pink.css +11 -11
- package/themes/purple.css +11 -11
- package/themes/red.css +11 -11
- package/themes/root.css +0 -5
- package/types/react.d.ts +97 -148
- package/base/nav-element.d.ts +0 -64
- package/base/nav-element.js +0 -263
- package/base/nav-element.js.map +0 -1
- package/base/nav-profile-element.d.ts +0 -47
- package/base/nav-profile-element.js +0 -191
- package/base/nav-profile-element.js.map +0 -1
- package/base/nav-profile.js +0 -6
- package/base/nav-profile.js.map +0 -1
- package/components/Appnav/appnav-context.d.ts +0 -6
- package/components/Appnav/appnav-context.js +0 -7
- package/components/Appnav/appnav-context.js.map +0 -1
- package/components/Appnav/appnav.js +0 -6
- package/components/Appnav/appnav.js.map +0 -1
- package/components/Appnav/index.d.ts +0 -9
- package/components/Appnav/index.js +0 -8
- package/components/Appnav/index.js.map +0 -1
- package/components/Appnav/index.umd.min.js +0 -2535
- package/components/Appnav/index.umd.min.js.map +0 -1
- package/components/Appnav/sgds-appnav-profile.d.ts +0 -17
- package/components/Appnav/sgds-appnav-profile.js +0 -31
- package/components/Appnav/sgds-appnav-profile.js.map +0 -1
- package/components/Appnav/sgds-appnav.d.ts +0 -44
- package/components/Appnav/sgds-appnav.js +0 -183
- package/components/Appnav/sgds-appnav.js.map +0 -1
- package/components/Mainnav/sgds-mainnav-profile.d.ts +0 -15
- package/components/Mainnav/sgds-mainnav-profile.js +0 -29
- package/components/Mainnav/sgds-mainnav-profile.js.map +0 -1
- package/react/appnav/index.cjs.js +0 -45
- package/react/appnav/index.cjs.js.map +0 -1
- package/react/appnav/index.d.ts +0 -4
- package/react/appnav/index.js +0 -21
- package/react/appnav/index.js.map +0 -1
- package/react/appnav-profile/index.cjs.js +0 -40
- package/react/appnav-profile/index.cjs.js.map +0 -1
- package/react/appnav-profile/index.d.ts +0 -4
- package/react/appnav-profile/index.js +0 -16
- package/react/appnav-profile/index.js.map +0 -1
- package/react/base/nav-element.cjs.js +0 -268
- package/react/base/nav-element.cjs.js.map +0 -1
- package/react/base/nav-element.js +0 -264
- package/react/base/nav-element.js.map +0 -1
- package/react/base/nav-profile-element.cjs.js +0 -196
- package/react/base/nav-profile-element.cjs.js.map +0 -1
- package/react/base/nav-profile-element.js +0 -192
- package/react/base/nav-profile-element.js.map +0 -1
- package/react/base/nav-profile.cjs.js +0 -11
- package/react/base/nav-profile.cjs.js.map +0 -1
- package/react/base/nav-profile.js +0 -7
- package/react/base/nav-profile.js.map +0 -1
- package/react/components/Appnav/appnav-context.cjs.js +0 -13
- package/react/components/Appnav/appnav-context.cjs.js.map +0 -1
- package/react/components/Appnav/appnav-context.js +0 -8
- package/react/components/Appnav/appnav-context.js.map +0 -1
- package/react/components/Appnav/appnav.cjs.js +0 -11
- package/react/components/Appnav/appnav.cjs.js.map +0 -1
- package/react/components/Appnav/appnav.js +0 -7
- package/react/components/Appnav/appnav.js.map +0 -1
- package/react/components/Appnav/sgds-appnav-profile.cjs.js +0 -37
- package/react/components/Appnav/sgds-appnav-profile.cjs.js.map +0 -1
- package/react/components/Appnav/sgds-appnav-profile.js +0 -32
- package/react/components/Appnav/sgds-appnav-profile.js.map +0 -1
- package/react/components/Appnav/sgds-appnav.cjs.js +0 -189
- package/react/components/Appnav/sgds-appnav.cjs.js.map +0 -1
- package/react/components/Appnav/sgds-appnav.js +0 -184
- package/react/components/Appnav/sgds-appnav.js.map +0 -1
- package/react/components/Mainnav/sgds-mainnav-profile.cjs.js +0 -35
- package/react/components/Mainnav/sgds-mainnav-profile.cjs.js.map +0 -1
- package/react/components/Mainnav/sgds-mainnav-profile.js +0 -30
- package/react/components/Mainnav/sgds-mainnav-profile.js.map +0 -1
- package/react/mainnav-profile/index.cjs.js +0 -40
- package/react/mainnav-profile/index.cjs.js.map +0 -1
- package/react/mainnav-profile/index.d.ts +0 -4
- package/react/mainnav-profile/index.js +0 -16
- package/react/mainnav-profile/index.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sgds-footer.js","sources":["../../../../src/components/Footer/sgds-footer.ts"],"sourcesContent":["import { html, nothing } from \"lit\";\nimport { property } from \"lit/decorators.js\";\nimport { classMap } from \"lit/directives/class-map.js\";\nimport SgdsLink from \"../Link/sgds-link\";\nimport SgdsElement from \"../../base/sgds-element\";\nimport { HasSlotController } from \"../../utils/slot\";\nimport { watch } from \"../../utils/watch\";\nimport footerStyle from \"./footer.css\";\nimport gridStyle from \"../../css/grid.css\";\nimport type { SgdsFooterItem } from \"./sgds-footer-item\";\n\n/**\n * @summary The footer contains supporting information for your service at the bottom of your website. All .gov.sg digital services shall contain a Global Footer Bar across all pages. The Global Footer Bar should include the name of the digital service, contact information, a privacy statement and the terms of use.\n *\n * @slot default - The slot for footer content. Use this slot if you want full control over the layout or styling. When provided, it replaces the `items` slot layout.\n * @slot title - The slot for title\n * @slot description - The slot for description\n * @slot items - the slot for the list of footer items, styled automatically with `.footer-items`. For custom layouts or styles, use the `default` slot instead.\n */\nexport class SgdsFooter extends SgdsElement {\n static styles = [...SgdsElement.styles, gridStyle, footerStyle];\n\n /** @internal */\n static dependencies = {\n \"sgds-link\": SgdsLink\n };\n\n /** Sets copyrightLiner of SgdsFooter */\n @property({ type: String })\n copyrightLiner = \"Government of Singapore\";\n\n /**\thref link for contacts */\n @property({ type: String })\n contactHref = \"#\";\n\n /**\thref link for feedback */\n @property({ type: String })\n feedbackHref = \"#\";\n\n /**\thref link for faq (optional) */\n @property({ type: String })\n faqHref = \"\";\n\n /**\thref link for sitemap (optional) */\n @property({ type: String })\n sitemapHref = \"\";\n\n /**\thref link for privacy statement */\n @property({ type: String })\n privacyHref = \"#\";\n\n /**\thref link for terms of use */\n @property({ type: String })\n termsOfUseHref = \"#\";\n\n /** Sets the layout context of the footer. Use \"sidebar\" when the footer is alongside a collapsible or persistent sidebar. Overlay sidebars should use \"default\". */\n @property({ type: String, reflect: true }) layout: \"default\" | \"sidebar\" = \"default\";\n\n /** Sets the color tone of the footer. Use \"neutral\" for light backgrounds (e.g. sidebar layouts). */\n @property({ type: String, reflect: true }) tone: \"fixed-dark\" | \"neutral\" = \"fixed-dark\";\n\n /** Used only for SSR to indicate the presence of the `default` slot. */\n @property({ type: Boolean }) hasDefaultSlot = false;\n\n /** Used only for SSR to indicate the presence of the `title` slot. */\n @property({ type: Boolean }) hasTitleSlot = false;\n\n /** Used only for SSR to indicate the presence of the `description` slot. */\n @property({ type: Boolean }) hasDescriptionSlot = false;\n\n /** Used only for SSR to indicate the presence of the `items` slot. */\n @property({ type: Boolean }) hasItemsSlot = false;\n\n private readonly hasSlotController = new HasSlotController(this, \"[default]\", \"title\", \"description\", \"items\");\n\n private _handleItemsSlotChange(e: Event) {\n const assignedElements = (e.target as HTMLSlotElement).assignedElements();\n assignedElements.forEach(el => {\n (el as SgdsFooterItem).tone = this.tone;\n });\n }\n\n @watch(\"tone\", { waitUntilFirstUpdate: true })\n _handleToneChange() {\n const itemsSlot = this.shadowRoot?.querySelector('slot[name=\"items\"]') as HTMLSlotElement | null;\n itemsSlot?.assignedElements().forEach(el => {\n (el as SgdsFooterItem).tone = this.tone;\n });\n }\n\n updated() {\n if (!this.hasDefaultSlot) this.hasDefaultSlot = this.hasSlotController.test(\"[default]\");\n if (!this.hasTitleSlot) this.hasTitleSlot = this.hasSlotController.test(\"title\");\n if (!this.hasDescriptionSlot) this.hasDescriptionSlot = this.hasSlotController.test(\"description\");\n if (!this.hasItemsSlot) this.hasItemsSlot = this.hasSlotController.test(\"items\");\n }\n\n private get _linkTone() {\n return this.tone === \"neutral\" ? \"neutral\" : \"fixed-light\";\n }\n\n render() {\n return html`\n <footer class=\"footer\">\n <section\n class=\"${classMap({\n \"footer-top\": this.hasDefaultSlot || this.hasTitleSlot || this.hasDescriptionSlot || this.hasItemsSlot,\n \"has-content\": this.hasDefaultSlot || this.hasItemsSlot,\n \"sgds-container\": this.layout === \"default\",\n \"sgds-container-sidebar\": this.layout === \"sidebar\"\n })}\"\n >\n <div class=\"footer-header\">\n <slot name=\"title\"></slot>\n <slot name=\"description\"></slot>\n </div>\n <div>\n ${this.hasDefaultSlot\n ? html`<slot></slot>`\n : html`\n <div class=\"footer-items\">\n <slot name=\"items\" @slotchange=${this._handleItemsSlotChange}></slot>\n </div>\n `}\n </div>\n </section>\n <section\n class=\"${classMap({\n \"footer-bottom\": true,\n \"sgds-container\": this.layout === \"default\",\n \"sgds-container-sidebar\": this.layout === \"sidebar\"\n })}\"\n >\n <div class=\"footer-mandatory-links\">\n <ul>\n <li>\n <sgds-link size=\"sm\" tone=${this._linkTone}><a href=${this.contactHref}>Contact</a></sgds-link>\n </li>\n <li>\n <sgds-link size=\"sm\" tone=${this._linkTone}><a href=${this.feedbackHref}>Feedback</a></sgds-link>\n </li>\n ${this.faqHref\n ? html`<li>\n <sgds-link size=\"sm\" tone=${this._linkTone}><a href=${this.faqHref}>FAQ</a></sgds-link>\n </li>`\n : nothing}\n ${this.sitemapHref\n ? html`<li>\n <sgds-link size=\"sm\" tone=${this._linkTone}><a href=${this.sitemapHref}>Sitemap</a></sgds-link>\n </li>`\n : nothing}\n <li>\n <sgds-link size=\"sm\" tone=${this._linkTone}>\n <a href=\"https://tech.gov.sg/report_vulnerability\" target=\"_blank\" rel=\"noopener noreferrer\">\n Report Vulnerability\n </a>\n </sgds-link>\n </li>\n <li>\n <sgds-link size=\"sm\" tone=${this._linkTone}\n ><a href=${this.privacyHref}>Privacy Statement</a></sgds-link\n >\n </li>\n <li>\n <sgds-link size=\"sm\" tone=${this._linkTone}><a href=${this.termsOfUseHref}>Terms of use</a></sgds-link>\n </li>\n </ul>\n <div class=\"footer-copyrights\">© ${new Date().getFullYear()}, ${this.copyrightLiner}</div>\n </div>\n </section>\n </footer>\n `;\n }\n}\n\nexport default SgdsFooter;\n"],"names":["gridStyle","footerStyle"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sgds-footer.js","sources":["../../../../src/components/Footer/sgds-footer.ts"],"sourcesContent":["import { html, nothing } from \"lit\";\nimport { property } from \"lit/decorators.js\";\nimport { classMap } from \"lit/directives/class-map.js\";\nimport SgdsLink from \"../Link/sgds-link\";\nimport SgdsElement from \"../../base/sgds-element\";\nimport { HasSlotController } from \"../../utils/slot\";\nimport { watch } from \"../../utils/watch\";\nimport footerStyle from \"./footer.css\";\nimport gridStyle from \"../../css/grid.css\";\nimport type { SgdsFooterItem } from \"./sgds-footer-item\";\n\n/**\n * @summary The footer contains supporting information for your service at the bottom of your website. All .gov.sg digital services shall contain a Global Footer Bar across all pages. The Global Footer Bar should include the name of the digital service, contact information, a privacy statement and the terms of use.\n *\n * @slot default - The slot for footer content. Use this slot if you want full control over the layout or styling. When provided, it replaces the `items` slot layout.\n * @slot title - The slot for title\n * @slot description - The slot for description\n * @slot items - the slot for the list of footer items, styled automatically with `.footer-items`. For custom layouts or styles, use the `default` slot instead.\n */\nexport class SgdsFooter extends SgdsElement {\n static styles = [...SgdsElement.styles, gridStyle, footerStyle];\n\n /** @internal */\n static dependencies = {\n \"sgds-link\": SgdsLink\n };\n\n /** Sets copyrightLiner of SgdsFooter */\n @property({ type: String })\n copyrightLiner = \"Government of Singapore\";\n\n /**\thref link for contacts */\n @property({ type: String })\n contactHref = \"#\";\n\n /**\thref link for feedback */\n @property({ type: String })\n feedbackHref = \"#\";\n\n /**\thref link for faq (optional) */\n @property({ type: String })\n faqHref = \"\";\n\n /**\thref link for sitemap (optional) */\n @property({ type: String })\n sitemapHref = \"\";\n\n /**\thref link for privacy statement */\n @property({ type: String })\n privacyHref = \"#\";\n\n /**\thref link for terms of use */\n @property({ type: String })\n termsOfUseHref = \"#\";\n\n /** Sets the layout context of the footer. Use \"sidebar\" when the footer is alongside a collapsible or persistent sidebar. Overlay sidebars should use \"default\". */\n @property({ type: String, reflect: true }) layout: \"default\" | \"sidebar\" = \"default\";\n\n /** Sets the color tone of the footer. Use \"neutral\" for light backgrounds (e.g. sidebar layouts). */\n @property({ type: String, reflect: true }) tone: \"fixed-dark\" | \"neutral\" = \"fixed-dark\";\n\n /** Used only for SSR to indicate the presence of the `default` slot. */\n @property({ type: Boolean }) hasDefaultSlot = false;\n\n /** Used only for SSR to indicate the presence of the `title` slot. */\n @property({ type: Boolean }) hasTitleSlot = false;\n\n /** Used only for SSR to indicate the presence of the `description` slot. */\n @property({ type: Boolean }) hasDescriptionSlot = false;\n\n /** Used only for SSR to indicate the presence of the `items` slot. */\n @property({ type: Boolean }) hasItemsSlot = false;\n\n private readonly hasSlotController = new HasSlotController(this, \"[default]\", \"title\", \"description\", \"items\");\n\n private _handleItemsSlotChange(e: Event) {\n const assignedElements = (e.target as HTMLSlotElement).assignedElements();\n assignedElements.forEach(el => {\n (el as SgdsFooterItem).tone = this.tone;\n });\n }\n\n @watch(\"tone\", { waitUntilFirstUpdate: true })\n _handleToneChange() {\n const itemsSlot = this.shadowRoot?.querySelector('slot[name=\"items\"]') as HTMLSlotElement | null;\n itemsSlot?.assignedElements().forEach(el => {\n (el as SgdsFooterItem).tone = this.tone;\n });\n }\n\n updated() {\n if (!this.hasDefaultSlot) this.hasDefaultSlot = this.hasSlotController.test(\"[default]\");\n if (!this.hasTitleSlot) this.hasTitleSlot = this.hasSlotController.test(\"title\");\n if (!this.hasDescriptionSlot) this.hasDescriptionSlot = this.hasSlotController.test(\"description\");\n if (!this.hasItemsSlot) this.hasItemsSlot = this.hasSlotController.test(\"items\");\n }\n\n private get _linkTone() {\n return this.tone === \"neutral\" ? \"neutral\" : \"fixed-light\";\n }\n\n render() {\n return html`\n <footer class=\"footer\">\n <section\n class=\"${classMap({\n \"footer-top\": this.hasDefaultSlot || this.hasTitleSlot || this.hasDescriptionSlot || this.hasItemsSlot,\n \"has-content\": this.hasDefaultSlot || this.hasItemsSlot,\n \"sgds-container\": this.layout === \"default\",\n \"sgds-container-sidebar\": this.layout === \"sidebar\"\n })}\"\n >\n <div class=\"footer-header\">\n <slot name=\"title\"></slot>\n <slot name=\"description\"></slot>\n </div>\n <div>\n ${this.hasDefaultSlot\n ? html`<slot></slot>`\n : html`\n <div class=\"footer-items\">\n <slot name=\"items\" @slotchange=${this._handleItemsSlotChange}></slot>\n </div>\n `}\n </div>\n </section>\n <section\n class=\"${classMap({\n \"footer-bottom\": true,\n \"sgds-container\": this.layout === \"default\",\n \"sgds-container-sidebar\": this.layout === \"sidebar\"\n })}\"\n >\n <div class=\"footer-mandatory-links\">\n <ul>\n <li>\n <sgds-link size=\"sm\" tone=${this._linkTone}><a href=${this.contactHref}>Contact</a></sgds-link>\n </li>\n <li>\n <sgds-link size=\"sm\" tone=${this._linkTone}><a href=${this.feedbackHref}>Feedback</a></sgds-link>\n </li>\n ${this.faqHref\n ? html`<li>\n <sgds-link size=\"sm\" tone=${this._linkTone}><a href=${this.faqHref}>FAQ</a></sgds-link>\n </li>`\n : nothing}\n ${this.sitemapHref\n ? html`<li>\n <sgds-link size=\"sm\" tone=${this._linkTone}><a href=${this.sitemapHref}>Sitemap</a></sgds-link>\n </li>`\n : nothing}\n <li>\n <sgds-link size=\"sm\" tone=${this._linkTone}>\n <a href=\"https://tech.gov.sg/report_vulnerability\" target=\"_blank\" rel=\"noopener noreferrer\">\n Report Vulnerability\n </a>\n </sgds-link>\n </li>\n <li>\n <sgds-link size=\"sm\" tone=${this._linkTone}\n ><a href=${this.privacyHref}>Privacy Statement</a></sgds-link\n >\n </li>\n <li>\n <sgds-link size=\"sm\" tone=${this._linkTone}><a href=${this.termsOfUseHref}>Terms of Use</a></sgds-link>\n </li>\n </ul>\n <div class=\"footer-copyrights\">© ${new Date().getFullYear()}, ${this.copyrightLiner}</div>\n </div>\n </section>\n </footer>\n `;\n }\n}\n\nexport default SgdsFooter;\n"],"names":["gridStyle","footerStyle"],"mappings":"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"}
|
|
@@ -5,7 +5,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
5
5
|
|
|
6
6
|
var lit = require('lit');
|
|
7
7
|
|
|
8
|
-
var css_248z = lit.css`:host([expand=always]) .nav-link{border-bottom:var(--sgds-border-width-4) solid transparent;min-height:100%;padding:0 var(--sgds-padding-md)}@media (min-width:512px){:host([expand=sm]) .nav-link{border-bottom:var(--sgds-border-width-4) solid transparent;min-height:100%;padding:0 var(--sgds-padding-md)}}@media (min-width:768px){:host([expand=md]) .nav-link{border-bottom:var(--sgds-border-width-4) solid transparent;min-height:100%;padding:0 var(--sgds-padding-md)}}@media (min-width:1024px){:host(:not([expand])) .nav-link,:host([expand=lg]) .nav-link{border-bottom:var(--sgds-border-width-4) solid transparent;min-height:100%;padding:0 var(--sgds-padding-md)}}@media (min-width:1280px){:host([expand=xl]) .nav-link{border-bottom:var(--sgds-border-width-4) solid transparent;min-height:100%;padding:0 var(--sgds-padding-md)}}@media (min-width:1440px){:host([expand=xxl]) .nav-link{border-bottom:var(--sgds-border-width-4) solid transparent;min-height:100%;padding:0 var(--sgds-padding-md)}}.nav-link{align-items:center;box-sizing:border-box;
|
|
8
|
+
var css_248z = lit.css`:host([expand=always]) .nav-link{border-bottom:var(--sgds-border-width-4) solid transparent;min-height:100%;padding:0 var(--sgds-padding-md)}@media (min-width:512px){:host([expand=sm]) .nav-link{border-bottom:var(--sgds-border-width-4) solid transparent;min-height:100%;padding:0 var(--sgds-padding-md)}}@media (min-width:768px){:host([expand=md]) .nav-link{border-bottom:var(--sgds-border-width-4) solid transparent;min-height:100%;padding:0 var(--sgds-padding-md)}}@media (min-width:1024px){:host(:not([expand])) .nav-link,:host([expand=lg]) .nav-link{border-bottom:var(--sgds-border-width-4) solid transparent;min-height:100%;padding:0 var(--sgds-padding-md)}}@media (min-width:1280px){:host([expand=xl]) .nav-link{border-bottom:var(--sgds-border-width-4) solid transparent;min-height:100%;padding:0 var(--sgds-padding-md)}}@media (min-width:1440px){:host([expand=xxl]) .nav-link{border-bottom:var(--sgds-border-width-4) solid transparent;min-height:100%;padding:0 var(--sgds-padding-md)}}.nav-link{align-items:center;box-sizing:border-box;cursor:pointer;display:flex;font-size:var(--sgds-font-size-label-sm);gap:var(--sgds-gap-xs);line-height:var(--sgds-line-height-2-xs,20px);padding:var(--sgds-padding-sm) var(--sgds-mainnav-mobile-padding-x);text-decoration:none}.nav-link.show,.nav-link:not(.disabled).active{border-color:var(--sgds-primary-border-color-default);color:var(--sgds-primary-color-default)}.nav-link:not(.disabled):hover{color:var(--sgds-primary-color-default)}.nav-link:not(.disabled):focus-visible{color:var(--sgds-primary-color-default);outline:var(--sgds-outline-focus);outline-offset:var(--sgds-outline-offset-focus)}.nav-link.disabled{cursor:not-allowed;opacity:var(--sgds-opacity-40)}.dropdown-items{background-color:var(--sgds-surface-default);height:100%;left:100%;overflow-y:auto;padding:var(--sgds-padding-md) 0;position:absolute;top:0;width:100%}.dropdown-items a{align-items:center;color:var(--sgds-color-default);cursor:pointer;display:flex;font-size:var(--sgds-font-size-label-sm);gap:var(--sgds-gap-xs);line-height:var(--sgds-line-height-2-xs,20px);margin:auto;max-width:var(--sgds-mainnav-max-width,1440px);padding:var(--sgds-padding-sm) var(--sgds-mainnav-mobile-padding-x);text-decoration:none}.dropdown-items a:hover{color:var(--sgds-primary-color-default)}.dropdown-items a:focus-visible{color:var(--sgds-primary-color-default);outline:var(--sgds-outline-focus);outline-offset:var(--sgds-outline-offset-focus);outline-offset:-5px}slot[name=toggler]::slotted(*){flex:1}sgds-dropdown{display:block;height:100%}@media screen and (min-width:1024px){.dropdown-items a,.nav-link{padding:var(--sgds-padding-sm) var(--sgds-mainnav-padding-x)}}`;
|
|
9
9
|
|
|
10
10
|
exports["default"] = css_248z;
|
|
11
11
|
//# sourceMappingURL=mainnav-dropdown.cjs.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import { css } from 'lit';
|
|
3
3
|
|
|
4
|
-
var css_248z = css`:host([expand=always]) .nav-link{border-bottom:var(--sgds-border-width-4) solid transparent;min-height:100%;padding:0 var(--sgds-padding-md)}@media (min-width:512px){:host([expand=sm]) .nav-link{border-bottom:var(--sgds-border-width-4) solid transparent;min-height:100%;padding:0 var(--sgds-padding-md)}}@media (min-width:768px){:host([expand=md]) .nav-link{border-bottom:var(--sgds-border-width-4) solid transparent;min-height:100%;padding:0 var(--sgds-padding-md)}}@media (min-width:1024px){:host(:not([expand])) .nav-link,:host([expand=lg]) .nav-link{border-bottom:var(--sgds-border-width-4) solid transparent;min-height:100%;padding:0 var(--sgds-padding-md)}}@media (min-width:1280px){:host([expand=xl]) .nav-link{border-bottom:var(--sgds-border-width-4) solid transparent;min-height:100%;padding:0 var(--sgds-padding-md)}}@media (min-width:1440px){:host([expand=xxl]) .nav-link{border-bottom:var(--sgds-border-width-4) solid transparent;min-height:100%;padding:0 var(--sgds-padding-md)}}.nav-link{align-items:center;box-sizing:border-box;
|
|
4
|
+
var css_248z = css`:host([expand=always]) .nav-link{border-bottom:var(--sgds-border-width-4) solid transparent;min-height:100%;padding:0 var(--sgds-padding-md)}@media (min-width:512px){:host([expand=sm]) .nav-link{border-bottom:var(--sgds-border-width-4) solid transparent;min-height:100%;padding:0 var(--sgds-padding-md)}}@media (min-width:768px){:host([expand=md]) .nav-link{border-bottom:var(--sgds-border-width-4) solid transparent;min-height:100%;padding:0 var(--sgds-padding-md)}}@media (min-width:1024px){:host(:not([expand])) .nav-link,:host([expand=lg]) .nav-link{border-bottom:var(--sgds-border-width-4) solid transparent;min-height:100%;padding:0 var(--sgds-padding-md)}}@media (min-width:1280px){:host([expand=xl]) .nav-link{border-bottom:var(--sgds-border-width-4) solid transparent;min-height:100%;padding:0 var(--sgds-padding-md)}}@media (min-width:1440px){:host([expand=xxl]) .nav-link{border-bottom:var(--sgds-border-width-4) solid transparent;min-height:100%;padding:0 var(--sgds-padding-md)}}.nav-link{align-items:center;box-sizing:border-box;cursor:pointer;display:flex;font-size:var(--sgds-font-size-label-sm);gap:var(--sgds-gap-xs);line-height:var(--sgds-line-height-2-xs,20px);padding:var(--sgds-padding-sm) var(--sgds-mainnav-mobile-padding-x);text-decoration:none}.nav-link.show,.nav-link:not(.disabled).active{border-color:var(--sgds-primary-border-color-default);color:var(--sgds-primary-color-default)}.nav-link:not(.disabled):hover{color:var(--sgds-primary-color-default)}.nav-link:not(.disabled):focus-visible{color:var(--sgds-primary-color-default);outline:var(--sgds-outline-focus);outline-offset:var(--sgds-outline-offset-focus)}.nav-link.disabled{cursor:not-allowed;opacity:var(--sgds-opacity-40)}.dropdown-items{background-color:var(--sgds-surface-default);height:100%;left:100%;overflow-y:auto;padding:var(--sgds-padding-md) 0;position:absolute;top:0;width:100%}.dropdown-items a{align-items:center;color:var(--sgds-color-default);cursor:pointer;display:flex;font-size:var(--sgds-font-size-label-sm);gap:var(--sgds-gap-xs);line-height:var(--sgds-line-height-2-xs,20px);margin:auto;max-width:var(--sgds-mainnav-max-width,1440px);padding:var(--sgds-padding-sm) var(--sgds-mainnav-mobile-padding-x);text-decoration:none}.dropdown-items a:hover{color:var(--sgds-primary-color-default)}.dropdown-items a:focus-visible{color:var(--sgds-primary-color-default);outline:var(--sgds-outline-focus);outline-offset:var(--sgds-outline-offset-focus);outline-offset:-5px}slot[name=toggler]::slotted(*){flex:1}sgds-dropdown{display:block;height:100%}@media screen and (min-width:1024px){.dropdown-items a,.nav-link{padding:var(--sgds-padding-sm) var(--sgds-mainnav-padding-x)}}`;
|
|
5
5
|
|
|
6
6
|
export { css_248z as default };
|
|
7
7
|
//# sourceMappingURL=mainnav-dropdown.js.map
|
|
@@ -5,7 +5,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
5
5
|
|
|
6
6
|
var lit = require('lit');
|
|
7
7
|
|
|
8
|
-
var css_248z = lit.css`:host([expand=always]) ::slotted(*){border-bottom:var(--sgds-border-width-4) solid transparent;min-height:100%;padding:0 var(--sgds-padding-md)}@media screen and (min-width:512px){:host([expand=sm]) ::slotted(*){border-bottom:var(--sgds-border-width-4) solid transparent;min-height:100%;padding:0 var(--sgds-padding-md)}:host(:not([disabled])[active][expand=sm]) ::slotted(*){border-color:var(--sgds-primary-border-color-default)}}@media screen and (min-width:768px){:host([expand=md]) ::slotted(*){border-bottom:var(--sgds-border-width-4) solid transparent;min-height:100%;padding:0 var(--sgds-padding-md)}:host(:not([disabled])[active][expand=md]) ::slotted(*){border-color:var(--sgds-primary-border-color-default)}}@media screen and (min-width:1024px){:host([expand=lg]) ::slotted(*){border-bottom:var(--sgds-border-width-4) solid transparent;min-height:100%;padding:0 var(--sgds-padding-md)}:host(:not([disabled])[active][expand=lg]) ::slotted(*){border-color:var(--sgds-primary-border-color-default)}}@media screen and (min-width:1280px){:host([expand=xl]) ::slotted(*){border-bottom:var(--sgds-border-width-4) solid transparent;min-height:100%;padding:0 var(--sgds-padding-md)}:host(:not([disabled])[active][expand=xl]) ::slotted(*){border-color:var(--sgds-primary-border-color-default)}}@media screen and (min-width:1440px){:host([expand=xxl]) ::slotted(*){border-bottom:var(--sgds-border-width-4) solid transparent;min-height:100%;padding:0 var(--sgds-padding-md)}:host(:not([disabled])[active][expand=xxl]) ::slotted(*){border-color:var(--sgds-primary-border-color-default)}}@media screen and (max-width:511px){:host(:not([disabled])[active][expand=sm]) ::slotted(*){background-color:var(--sgds-bg-translucent-subtle)}}@media screen and (max-width:767px){:host(:not([disabled])[active][expand=md]) ::slotted(*){background-color:var(--sgds-bg-translucent-subtle)}}@media screen and (max-width:1023px){:host(:not([disabled])[active][expand=lg]) ::slotted(*){background-color:var(--sgds-bg-translucent-subtle)}}@media screen and (max-width:1279px){:host(:not([disabled])[active][expand=xl]) ::slotted(*){background-color:var(--sgds-bg-translucent-subtle)}}@media screen and (max-width:1439px){:host(:not([disabled])[active][expand=xxl]) ::slotted(*){background-color:var(--sgds-bg-translucent-subtle)}}::slotted(*){--sgds-link-color-default:var(--sgds-color-default);--sgds-link-color-emphasis:var(--sgds-color-default);align-items:center;box-sizing:border-box;color:var(--sgds-color-default)!important;cursor:pointer;display:flex;font-size:var(--sgds-font-size-label-sm);height:auto!important;line-height:var(--sgds-line-height-2-xs,20px);padding:var(--sgds-padding-sm) var(--sgds-mainnav-mobile-padding-x);text-decoration:none!important}
|
|
8
|
+
var css_248z = lit.css`:host([expand=always]) ::slotted(*){border-bottom:var(--sgds-border-width-4) solid transparent;min-height:100%;padding:0 var(--sgds-padding-md)}@media screen and (min-width:512px){:host([expand=sm]) ::slotted(*){border-bottom:var(--sgds-border-width-4) solid transparent;min-height:100%;padding:0 var(--sgds-padding-md)}:host(:not([disabled])[active][expand=sm]) ::slotted(*){border-color:var(--sgds-primary-border-color-default)}}@media screen and (min-width:768px){:host([expand=md]) ::slotted(*){border-bottom:var(--sgds-border-width-4) solid transparent;min-height:100%;padding:0 var(--sgds-padding-md)}:host(:not([disabled])[active][expand=md]) ::slotted(*){border-color:var(--sgds-primary-border-color-default)}}@media screen and (min-width:1024px){:host([expand=lg]) ::slotted(*){border-bottom:var(--sgds-border-width-4) solid transparent;min-height:100%;padding:0 var(--sgds-padding-md)}:host(:not([disabled])[active][expand=lg]) ::slotted(*){border-color:var(--sgds-primary-border-color-default)}}@media screen and (min-width:1280px){:host([expand=xl]) ::slotted(*){border-bottom:var(--sgds-border-width-4) solid transparent;min-height:100%;padding:0 var(--sgds-padding-md)}:host(:not([disabled])[active][expand=xl]) ::slotted(*){border-color:var(--sgds-primary-border-color-default)}}@media screen and (min-width:1440px){:host([expand=xxl]) ::slotted(*){border-bottom:var(--sgds-border-width-4) solid transparent;min-height:100%;padding:0 var(--sgds-padding-md)}:host(:not([disabled])[active][expand=xxl]) ::slotted(*){border-color:var(--sgds-primary-border-color-default)}}@media screen and (max-width:511px){:host(:not([disabled])[active][expand=sm]) ::slotted(*){background-color:var(--sgds-bg-translucent-subtle)}}@media screen and (max-width:767px){:host(:not([disabled])[active][expand=md]) ::slotted(*){background-color:var(--sgds-bg-translucent-subtle)}}@media screen and (max-width:1023px){:host(:not([disabled])[active][expand=lg]) ::slotted(*){background-color:var(--sgds-bg-translucent-subtle)}}@media screen and (max-width:1279px){:host(:not([disabled])[active][expand=xl]) ::slotted(*){background-color:var(--sgds-bg-translucent-subtle)}}@media screen and (max-width:1439px){:host(:not([disabled])[active][expand=xxl]) ::slotted(*){background-color:var(--sgds-bg-translucent-subtle)}}::slotted(*){--sgds-link-color-default:var(--sgds-color-default);--sgds-link-color-emphasis:var(--sgds-color-default);align-items:center;box-sizing:border-box;color:var(--sgds-color-default)!important;cursor:pointer;display:flex;font-size:var(--sgds-font-size-label-sm);height:auto!important;line-height:var(--sgds-line-height-2-xs,20px);padding:var(--sgds-padding-sm) var(--sgds-mainnav-mobile-padding-x);text-decoration:none!important}@media screen and (min-width:1024px){::slotted(*){padding:var(--sgds-padding-sm) var(--sgds-mainnav-padding-x)}}:host(:not([disabled])[active]) ::slotted(*){--sgds-link-color-default:var(--sgds-primary-color-default);--sgds-link-color-emphasis:var(--sgds-primary-color-default);color:var(--sgds-primary-color-default)!important}:host(:not([disabled]):not([active])) ::slotted(a:hover){--sgds-link-color-emphasis:var(--sgds-color-default);color:var(--sgds-color-default)!important}:host(:not([disabled])[active]) ::slotted(a:hover){--sgds-link-color-emphasis:var(--sgds-primary-color-default);color:var(--sgds-primary-color-default)!important}:host([disabled]) ::slotted(a:hover){--sgds-link-color-emphasis:var(--sgds-color-default);color:var(--sgds-color-default)!important}:host(:not([disabled]):not([active])) ::slotted(a:active){color:var(--sgds-color-default)!important}:host(:not([disabled])[active]) ::slotted(a:active){color:var(--sgds-primary-color-default)!important}::slotted(a:focus-visible){--sgds-link-color-emphasis:var(--sgds-primary-color-default);color:var(--sgds-primary-color-default)!important;outline:var(--sgds-outline-focus);outline-offset:var(--sgds-outline-offset-focus)}:host([disabled]) ::slotted(*){cursor:not-allowed;opacity:var(--sgds-opacity-40)}`;
|
|
9
9
|
|
|
10
10
|
exports["default"] = css_248z;
|
|
11
11
|
//# sourceMappingURL=mainnav-item.cjs.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import { css } from 'lit';
|
|
3
3
|
|
|
4
|
-
var css_248z = css`:host([expand=always]) ::slotted(*){border-bottom:var(--sgds-border-width-4) solid transparent;min-height:100%;padding:0 var(--sgds-padding-md)}@media screen and (min-width:512px){:host([expand=sm]) ::slotted(*){border-bottom:var(--sgds-border-width-4) solid transparent;min-height:100%;padding:0 var(--sgds-padding-md)}:host(:not([disabled])[active][expand=sm]) ::slotted(*){border-color:var(--sgds-primary-border-color-default)}}@media screen and (min-width:768px){:host([expand=md]) ::slotted(*){border-bottom:var(--sgds-border-width-4) solid transparent;min-height:100%;padding:0 var(--sgds-padding-md)}:host(:not([disabled])[active][expand=md]) ::slotted(*){border-color:var(--sgds-primary-border-color-default)}}@media screen and (min-width:1024px){:host([expand=lg]) ::slotted(*){border-bottom:var(--sgds-border-width-4) solid transparent;min-height:100%;padding:0 var(--sgds-padding-md)}:host(:not([disabled])[active][expand=lg]) ::slotted(*){border-color:var(--sgds-primary-border-color-default)}}@media screen and (min-width:1280px){:host([expand=xl]) ::slotted(*){border-bottom:var(--sgds-border-width-4) solid transparent;min-height:100%;padding:0 var(--sgds-padding-md)}:host(:not([disabled])[active][expand=xl]) ::slotted(*){border-color:var(--sgds-primary-border-color-default)}}@media screen and (min-width:1440px){:host([expand=xxl]) ::slotted(*){border-bottom:var(--sgds-border-width-4) solid transparent;min-height:100%;padding:0 var(--sgds-padding-md)}:host(:not([disabled])[active][expand=xxl]) ::slotted(*){border-color:var(--sgds-primary-border-color-default)}}@media screen and (max-width:511px){:host(:not([disabled])[active][expand=sm]) ::slotted(*){background-color:var(--sgds-bg-translucent-subtle)}}@media screen and (max-width:767px){:host(:not([disabled])[active][expand=md]) ::slotted(*){background-color:var(--sgds-bg-translucent-subtle)}}@media screen and (max-width:1023px){:host(:not([disabled])[active][expand=lg]) ::slotted(*){background-color:var(--sgds-bg-translucent-subtle)}}@media screen and (max-width:1279px){:host(:not([disabled])[active][expand=xl]) ::slotted(*){background-color:var(--sgds-bg-translucent-subtle)}}@media screen and (max-width:1439px){:host(:not([disabled])[active][expand=xxl]) ::slotted(*){background-color:var(--sgds-bg-translucent-subtle)}}::slotted(*){--sgds-link-color-default:var(--sgds-color-default);--sgds-link-color-emphasis:var(--sgds-color-default);align-items:center;box-sizing:border-box;color:var(--sgds-color-default)!important;cursor:pointer;display:flex;font-size:var(--sgds-font-size-label-sm);height:auto!important;line-height:var(--sgds-line-height-2-xs,20px);padding:var(--sgds-padding-sm) var(--sgds-mainnav-mobile-padding-x);text-decoration:none!important}
|
|
4
|
+
var css_248z = css`:host([expand=always]) ::slotted(*){border-bottom:var(--sgds-border-width-4) solid transparent;min-height:100%;padding:0 var(--sgds-padding-md)}@media screen and (min-width:512px){:host([expand=sm]) ::slotted(*){border-bottom:var(--sgds-border-width-4) solid transparent;min-height:100%;padding:0 var(--sgds-padding-md)}:host(:not([disabled])[active][expand=sm]) ::slotted(*){border-color:var(--sgds-primary-border-color-default)}}@media screen and (min-width:768px){:host([expand=md]) ::slotted(*){border-bottom:var(--sgds-border-width-4) solid transparent;min-height:100%;padding:0 var(--sgds-padding-md)}:host(:not([disabled])[active][expand=md]) ::slotted(*){border-color:var(--sgds-primary-border-color-default)}}@media screen and (min-width:1024px){:host([expand=lg]) ::slotted(*){border-bottom:var(--sgds-border-width-4) solid transparent;min-height:100%;padding:0 var(--sgds-padding-md)}:host(:not([disabled])[active][expand=lg]) ::slotted(*){border-color:var(--sgds-primary-border-color-default)}}@media screen and (min-width:1280px){:host([expand=xl]) ::slotted(*){border-bottom:var(--sgds-border-width-4) solid transparent;min-height:100%;padding:0 var(--sgds-padding-md)}:host(:not([disabled])[active][expand=xl]) ::slotted(*){border-color:var(--sgds-primary-border-color-default)}}@media screen and (min-width:1440px){:host([expand=xxl]) ::slotted(*){border-bottom:var(--sgds-border-width-4) solid transparent;min-height:100%;padding:0 var(--sgds-padding-md)}:host(:not([disabled])[active][expand=xxl]) ::slotted(*){border-color:var(--sgds-primary-border-color-default)}}@media screen and (max-width:511px){:host(:not([disabled])[active][expand=sm]) ::slotted(*){background-color:var(--sgds-bg-translucent-subtle)}}@media screen and (max-width:767px){:host(:not([disabled])[active][expand=md]) ::slotted(*){background-color:var(--sgds-bg-translucent-subtle)}}@media screen and (max-width:1023px){:host(:not([disabled])[active][expand=lg]) ::slotted(*){background-color:var(--sgds-bg-translucent-subtle)}}@media screen and (max-width:1279px){:host(:not([disabled])[active][expand=xl]) ::slotted(*){background-color:var(--sgds-bg-translucent-subtle)}}@media screen and (max-width:1439px){:host(:not([disabled])[active][expand=xxl]) ::slotted(*){background-color:var(--sgds-bg-translucent-subtle)}}::slotted(*){--sgds-link-color-default:var(--sgds-color-default);--sgds-link-color-emphasis:var(--sgds-color-default);align-items:center;box-sizing:border-box;color:var(--sgds-color-default)!important;cursor:pointer;display:flex;font-size:var(--sgds-font-size-label-sm);height:auto!important;line-height:var(--sgds-line-height-2-xs,20px);padding:var(--sgds-padding-sm) var(--sgds-mainnav-mobile-padding-x);text-decoration:none!important}@media screen and (min-width:1024px){::slotted(*){padding:var(--sgds-padding-sm) var(--sgds-mainnav-padding-x)}}:host(:not([disabled])[active]) ::slotted(*){--sgds-link-color-default:var(--sgds-primary-color-default);--sgds-link-color-emphasis:var(--sgds-primary-color-default);color:var(--sgds-primary-color-default)!important}:host(:not([disabled]):not([active])) ::slotted(a:hover){--sgds-link-color-emphasis:var(--sgds-color-default);color:var(--sgds-color-default)!important}:host(:not([disabled])[active]) ::slotted(a:hover){--sgds-link-color-emphasis:var(--sgds-primary-color-default);color:var(--sgds-primary-color-default)!important}:host([disabled]) ::slotted(a:hover){--sgds-link-color-emphasis:var(--sgds-color-default);color:var(--sgds-color-default)!important}:host(:not([disabled]):not([active])) ::slotted(a:active){color:var(--sgds-color-default)!important}:host(:not([disabled])[active]) ::slotted(a:active){color:var(--sgds-primary-color-default)!important}::slotted(a:focus-visible){--sgds-link-color-emphasis:var(--sgds-primary-color-default);color:var(--sgds-primary-color-default)!important;outline:var(--sgds-outline-focus);outline-offset:var(--sgds-outline-offset-focus)}:host([disabled]) ::slotted(*){cursor:not-allowed;opacity:var(--sgds-opacity-40)}`;
|
|
5
5
|
|
|
6
6
|
export { css_248z as default };
|
|
7
7
|
//# sourceMappingURL=mainnav-item.js.map
|
|
@@ -5,7 +5,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
5
5
|
|
|
6
6
|
var lit = require('lit');
|
|
7
7
|
|
|
8
|
-
var css_248z = lit.css`:host{display:block}nav{background-color:var(--sgds-surface-default);box-shadow:0 2px
|
|
8
|
+
var css_248z = lit.css`:host{display:block}nav{background-color:var(--sgds-surface-default);box-shadow:0 2px 2px 0 hsla(0,0%,5%,.08);position:relative;z-index:var(--sgds-z-index-floating)}.navbar{align-items:stretch;display:flex;flex-wrap:wrap;font-size:var(--sgds-font-size-label-sm);gap:var(--sgds-gap-xs);justify-content:space-between;margin:auto;max-width:var(--sgds-mainnav-max-width,1440px);min-height:80px;padding:0 var(--sgds-mainnav-mobile-padding-x);width:100%}:host([fluid]) .navbar{max-width:none}.navbar-brand{align-items:center;color:var(--sgds-color-default);display:flex;text-decoration:none;white-space:nowrap}.navbar-brand:focus-visible{outline:var(--sgds-outline-focus);outline-offset:var(--sgds-outline-offset-focus)}.navbar-nav{display:flex;flex-direction:column;height:100%;margin-bottom:0;margin-top:0;width:100%}nav>.navbar-body{background-color:var(--sgds-surface-default);border-top:var(--sgds-border-width-1) solid var(--sgds-border-color-translucent);box-shadow:0 2px 2px 0 hsla(0,0%,5%,.08);padding:var(--sgds-padding-md) 0;position:absolute;transition:transform .2s ease-in-out;width:100%;z-index:var(--sgds-z-index-floating)}nav>.navbar-body .navbar-nav{height:100dvh;margin:auto;max-width:var(--sgds-mainnav-max-width,1440px)}nav>.navbar-body slot::slotted(:not(sgds-mainnav-item):not(sgds-mainnav-dropdown)){padding:var(--sgds-padding-sm) var(--sgds-mainnav-mobile-padding-x)}.navbar-collapse{align-items:center;flex-basis:100%;flex-grow:1}.navbar-toggler{align-self:center}.navbar-nav-scroll{overflow-y:auto}@media (min-width:512px){.navbar-expand-sm{flex-wrap:nowrap;gap:var(--sgds-gap-xl);justify-content:flex-start}.navbar-expand-sm .navbar-nav{flex-direction:row}.navbar-expand-sm .navbar-nav-scroll{overflow:visible}.navbar-expand-sm .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}}@media (min-width:768px){.navbar-expand-md{flex-wrap:nowrap;gap:var(--sgds-gap-xl);justify-content:flex-start}.navbar-expand-md .navbar-nav{flex-direction:row}.navbar-expand-md .navbar-nav-scroll{overflow:visible}.navbar-expand-md .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}}@media (min-width:1024px){.navbar{padding:0 var(--sgds-mainnav-padding-x)}.navbar-expand-lg{flex-wrap:nowrap;gap:var(--sgds-gap-xl);justify-content:flex-start}.navbar-expand-lg .navbar-nav{flex-direction:row}.navbar-expand-lg .navbar-nav-scroll{overflow:visible}.navbar-expand-lg .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}}@media (min-width:1280px){.navbar-expand-xl{flex-wrap:nowrap;gap:var(--sgds-gap-xl);justify-content:flex-start}.navbar-expand-xl .navbar-nav{flex-direction:row}.navbar-expand-xl .navbar-nav .nav-link{padding-left:var(--mainnav-nav-link-padding-x);padding-right:var(--mainnav-nav-link-padding-x)}.navbar-expand-xl .navbar-nav-scroll{overflow:visible}.navbar-expand-xl .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}}@media (min-width:1440px){.navbar-expand-xxl{flex-wrap:nowrap;gap:var(--sgds-gap-xl);justify-content:flex-start}.navbar-expand-xxl .navbar-nav{flex-direction:row}.navbar-expand-xxl .navbar-nav-scroll{overflow:visible}.navbar-expand-xxl .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-xxl .navbar-toggler{display:none}}.navbar-expand{flex-wrap:nowrap;gap:var(--sgds-gap-xl);justify-content:flex-start}.navbar-expand .navbar-nav{flex-direction:row}.navbar-expand .navbar-nav-scroll{overflow:visible}.navbar-expand .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}slot[name=non-collapsible]{align-items:center;display:flex;gap:var(--sgds-spacer-4);margin-left:auto}slot[name=non-collapsible].non-collapsible-empty{display:none}.slot-end{align-items:stretch;display:flex;gap:var(--sgds-gap-xs);margin-left:auto}.slot-end::slotted(:not([name$=-mainnav-item]):not([name$=-mainnav-dropdown])){align-self:center}`;
|
|
9
9
|
|
|
10
10
|
exports["default"] = css_248z;
|
|
11
11
|
//# sourceMappingURL=mainnav.cjs.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import { css } from 'lit';
|
|
3
3
|
|
|
4
|
-
var css_248z = css`:host{display:block}nav{background-color:var(--sgds-surface-default);box-shadow:0 2px
|
|
4
|
+
var css_248z = css`:host{display:block}nav{background-color:var(--sgds-surface-default);box-shadow:0 2px 2px 0 hsla(0,0%,5%,.08);position:relative;z-index:var(--sgds-z-index-floating)}.navbar{align-items:stretch;display:flex;flex-wrap:wrap;font-size:var(--sgds-font-size-label-sm);gap:var(--sgds-gap-xs);justify-content:space-between;margin:auto;max-width:var(--sgds-mainnav-max-width,1440px);min-height:80px;padding:0 var(--sgds-mainnav-mobile-padding-x);width:100%}:host([fluid]) .navbar{max-width:none}.navbar-brand{align-items:center;color:var(--sgds-color-default);display:flex;text-decoration:none;white-space:nowrap}.navbar-brand:focus-visible{outline:var(--sgds-outline-focus);outline-offset:var(--sgds-outline-offset-focus)}.navbar-nav{display:flex;flex-direction:column;height:100%;margin-bottom:0;margin-top:0;width:100%}nav>.navbar-body{background-color:var(--sgds-surface-default);border-top:var(--sgds-border-width-1) solid var(--sgds-border-color-translucent);box-shadow:0 2px 2px 0 hsla(0,0%,5%,.08);padding:var(--sgds-padding-md) 0;position:absolute;transition:transform .2s ease-in-out;width:100%;z-index:var(--sgds-z-index-floating)}nav>.navbar-body .navbar-nav{height:100dvh;margin:auto;max-width:var(--sgds-mainnav-max-width,1440px)}nav>.navbar-body slot::slotted(:not(sgds-mainnav-item):not(sgds-mainnav-dropdown)){padding:var(--sgds-padding-sm) var(--sgds-mainnav-mobile-padding-x)}.navbar-collapse{align-items:center;flex-basis:100%;flex-grow:1}.navbar-toggler{align-self:center}.navbar-nav-scroll{overflow-y:auto}@media (min-width:512px){.navbar-expand-sm{flex-wrap:nowrap;gap:var(--sgds-gap-xl);justify-content:flex-start}.navbar-expand-sm .navbar-nav{flex-direction:row}.navbar-expand-sm .navbar-nav-scroll{overflow:visible}.navbar-expand-sm .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}}@media (min-width:768px){.navbar-expand-md{flex-wrap:nowrap;gap:var(--sgds-gap-xl);justify-content:flex-start}.navbar-expand-md .navbar-nav{flex-direction:row}.navbar-expand-md .navbar-nav-scroll{overflow:visible}.navbar-expand-md .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}}@media (min-width:1024px){.navbar{padding:0 var(--sgds-mainnav-padding-x)}.navbar-expand-lg{flex-wrap:nowrap;gap:var(--sgds-gap-xl);justify-content:flex-start}.navbar-expand-lg .navbar-nav{flex-direction:row}.navbar-expand-lg .navbar-nav-scroll{overflow:visible}.navbar-expand-lg .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}}@media (min-width:1280px){.navbar-expand-xl{flex-wrap:nowrap;gap:var(--sgds-gap-xl);justify-content:flex-start}.navbar-expand-xl .navbar-nav{flex-direction:row}.navbar-expand-xl .navbar-nav .nav-link{padding-left:var(--mainnav-nav-link-padding-x);padding-right:var(--mainnav-nav-link-padding-x)}.navbar-expand-xl .navbar-nav-scroll{overflow:visible}.navbar-expand-xl .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}}@media (min-width:1440px){.navbar-expand-xxl{flex-wrap:nowrap;gap:var(--sgds-gap-xl);justify-content:flex-start}.navbar-expand-xxl .navbar-nav{flex-direction:row}.navbar-expand-xxl .navbar-nav-scroll{overflow:visible}.navbar-expand-xxl .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-xxl .navbar-toggler{display:none}}.navbar-expand{flex-wrap:nowrap;gap:var(--sgds-gap-xl);justify-content:flex-start}.navbar-expand .navbar-nav{flex-direction:row}.navbar-expand .navbar-nav-scroll{overflow:visible}.navbar-expand .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}slot[name=non-collapsible]{align-items:center;display:flex;gap:var(--sgds-spacer-4);margin-left:auto}slot[name=non-collapsible].non-collapsible-empty{display:none}.slot-end{align-items:stretch;display:flex;gap:var(--sgds-gap-xs);margin-left:auto}.slot-end::slotted(:not([name$=-mainnav-item]):not([name$=-mainnav-dropdown])){align-self:center}`;
|
|
5
5
|
|
|
6
6
|
export { css_248z as default };
|
|
7
7
|
//# sourceMappingURL=mainnav.js.map
|
|
@@ -8,11 +8,27 @@ var context = require('@lit/context');
|
|
|
8
8
|
var lit = require('lit');
|
|
9
9
|
var decorators_js = require('lit/decorators.js');
|
|
10
10
|
var classMap_js = require('lit/directives/class-map.js');
|
|
11
|
-
var
|
|
12
|
-
var
|
|
11
|
+
var sgdsElement = require('../../base/sgds-element.cjs.js');
|
|
12
|
+
var animate = require('../../utils/animate.cjs.js');
|
|
13
|
+
var animationRegistry = require('../../utils/animation-registry.cjs.js');
|
|
14
|
+
var breakpoints = require('../../utils/breakpoints.cjs.js');
|
|
15
|
+
var event = require('../../utils/event.cjs.js');
|
|
16
|
+
var generateId = require('../../utils/generateId.cjs.js');
|
|
17
|
+
var watch = require('../../utils/watch.cjs.js');
|
|
18
|
+
var sgdsIconButton = require('../IconButton/sgds-icon-button.cjs.js');
|
|
13
19
|
var mainnavContext = require('./mainnav-context.cjs.js');
|
|
14
20
|
var mainnav = require('./mainnav.cjs.js');
|
|
21
|
+
var slot = require('../../utils/slot.cjs.js');
|
|
15
22
|
|
|
23
|
+
const SIZES = {
|
|
24
|
+
sm: breakpoints.SM_BREAKPOINT,
|
|
25
|
+
md: breakpoints.MD_BREAKPOINT,
|
|
26
|
+
lg: breakpoints.LG_BREAKPOINT,
|
|
27
|
+
xl: breakpoints.XL_BREAKPOINT,
|
|
28
|
+
xxl: breakpoints.XXL_BREAKPOINT,
|
|
29
|
+
never: Infinity,
|
|
30
|
+
always: -1
|
|
31
|
+
};
|
|
16
32
|
/**
|
|
17
33
|
* @summary This component is the primary means that your users will use to navigate through your portal. It includes horizontal navigation and branding to identify your site.
|
|
18
34
|
*
|
|
@@ -22,23 +38,32 @@ var mainnav = require('./mainnav.cjs.js');
|
|
|
22
38
|
* @event sgds-after-hide - Emitted on hide after animation has completed. Only for collapsed menu.
|
|
23
39
|
*
|
|
24
40
|
* @slot default - Default slot of SgdsMainnav. Pass in SgdsMainnavItem elements here.
|
|
25
|
-
* @slot start - Elements in this slot will be positioned to the left of the brand.
|
|
26
41
|
* @slot end - Elements in this slot will be positioned to the right end of .navbar-nav. Elements in this slot will also be included in collapsed menu.
|
|
27
42
|
* @slot brand - Brand slot of SgdsMainnav. Pass in brand logo img here
|
|
28
|
-
* @slot profile - Profile slot positioned at the far right in desktop. In mobile, moves into the collapsed menu as the first item.
|
|
29
43
|
* @slot non-collapsible - Elements in this slot will not be collapsed
|
|
30
44
|
*
|
|
31
45
|
*/
|
|
32
|
-
class SgdsMainnav extends
|
|
46
|
+
class SgdsMainnav extends sgdsElement["default"] {
|
|
33
47
|
constructor() {
|
|
34
48
|
super(...arguments);
|
|
35
49
|
this._breakpointReached = false;
|
|
36
|
-
|
|
50
|
+
/** Indicates if mobile menu is open or closed */
|
|
51
|
+
this.expanded = false;
|
|
52
|
+
/** Denotes the transition state of mobile mainnav menu opening */
|
|
53
|
+
this.expanding = false;
|
|
37
54
|
/** Used only for SSR to indicate the presence of the `non-collapsible` slot. */
|
|
38
55
|
this.hasNonCollapsibleSlot = false;
|
|
56
|
+
/** The href link for brand logo */
|
|
57
|
+
this.brandHref = "";
|
|
58
|
+
this.collapseId = generateId["default"]("mainnav", "collapse");
|
|
59
|
+
/** The breakpoint, below which, the Navbar will collapse. When always the Navbar will always be expanded regardless of screen size. When never, the Navbar will always be collapsed */
|
|
60
|
+
this.expand = "lg";
|
|
39
61
|
/** When true, removes max-width constraint to allow content to stretch full screen width */
|
|
40
62
|
this.fluid = false;
|
|
63
|
+
/** @internal */
|
|
64
|
+
this.breakpointReached = false;
|
|
41
65
|
this.hasSlotController = new slot.HasSlotController(this, "non-collapsible");
|
|
66
|
+
this._handleMobileNavBound = this._handleMobileNav.bind(this);
|
|
42
67
|
}
|
|
43
68
|
/** @internal */
|
|
44
69
|
get defaultSlotItems() {
|
|
@@ -48,29 +73,146 @@ class SgdsMainnav extends navElement["default"] {
|
|
|
48
73
|
get endSlotItems() {
|
|
49
74
|
return [...(this.endNodes || [])].filter((node) => typeof node.tagName !== "undefined");
|
|
50
75
|
}
|
|
76
|
+
connectedCallback() {
|
|
77
|
+
super.connectedCallback();
|
|
78
|
+
this._handleResize();
|
|
79
|
+
window.addEventListener("click", (event) => this._handleClickOutOfElement(event, this.body));
|
|
80
|
+
window.addEventListener("resize", this._handleResize.bind(this));
|
|
81
|
+
}
|
|
82
|
+
disconnectedCallback() {
|
|
83
|
+
super.disconnectedCallback();
|
|
84
|
+
window.removeEventListener("click", (event) => this._handleClickOutOfElement(event, this.body));
|
|
85
|
+
window.removeEventListener("resize", this._handleResize.bind(this));
|
|
86
|
+
}
|
|
87
|
+
firstUpdated(changedProperties) {
|
|
88
|
+
super.firstUpdated(changedProperties);
|
|
89
|
+
if (this.breakpointReached && this.body) {
|
|
90
|
+
this.expanded = false;
|
|
91
|
+
this.body.hidden = true;
|
|
92
|
+
this._handleMobileNav();
|
|
93
|
+
this._breakpointReached = true;
|
|
94
|
+
}
|
|
95
|
+
}
|
|
51
96
|
updated() {
|
|
52
97
|
if (!this.hasNonCollapsibleSlot)
|
|
53
98
|
this.hasNonCollapsibleSlot = this.hasSlotController.test("non-collapsible");
|
|
54
|
-
// Sync expanded state to context
|
|
55
|
-
this._expanded = this.expanded;
|
|
56
99
|
}
|
|
57
|
-
|
|
58
|
-
this.
|
|
100
|
+
_handleClickOutOfElement(e, self) {
|
|
101
|
+
if (!e.composedPath().includes(self) && !e.composedPath().includes(this.header)) {
|
|
102
|
+
this.hide();
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
_handleSummaryClick() {
|
|
106
|
+
if (this.expanded) {
|
|
107
|
+
this.hide();
|
|
108
|
+
}
|
|
109
|
+
else {
|
|
110
|
+
document.body.style.overflow = "hidden";
|
|
111
|
+
this.show();
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
_handleResize() {
|
|
115
|
+
const newBreakpointReachedValue = window.innerWidth < SIZES[this.expand];
|
|
116
|
+
if (newBreakpointReachedValue !== this.breakpointReached) {
|
|
117
|
+
this.requestUpdate();
|
|
118
|
+
}
|
|
119
|
+
else {
|
|
120
|
+
this.body ? (this.body.hidden = true) : null;
|
|
121
|
+
// this.expanded = false;
|
|
122
|
+
this.expanding = false;
|
|
123
|
+
}
|
|
124
|
+
if (newBreakpointReachedValue) {
|
|
125
|
+
this._handleMobileNav();
|
|
126
|
+
if (!this._breakpointReached) {
|
|
127
|
+
this._breakpointReached = true;
|
|
128
|
+
window.addEventListener("scrollend", this._handleMobileNavBound);
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
else {
|
|
132
|
+
this._handleDesktopNav();
|
|
133
|
+
this._breakpointReached = false;
|
|
134
|
+
window.removeEventListener("scrollend", this._handleMobileNavBound);
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
async _handleMobileNav() {
|
|
138
|
+
if (!this.nav)
|
|
139
|
+
return;
|
|
140
|
+
this.nav.appendChild(this.body);
|
|
141
|
+
await customElements.whenDefined("sgds-masthead");
|
|
142
|
+
const { bottom } = this.nav.getBoundingClientRect();
|
|
143
|
+
const navBodyPaddingY = parseFloat(getComputedStyle(this.body).paddingTop) + parseFloat(getComputedStyle(this.body).paddingBottom);
|
|
144
|
+
this.navScroll.style.maxHeight = `calc(100dvh - ${bottom}px - ${navBodyPaddingY}px)`;
|
|
145
|
+
}
|
|
146
|
+
_handleDesktopNav() {
|
|
147
|
+
var _a;
|
|
148
|
+
(_a = this.navbar) === null || _a === void 0 ? void 0 : _a.insertBefore(this.body, this.nonCollapsibleSlot);
|
|
149
|
+
}
|
|
150
|
+
async _animateToShow() {
|
|
151
|
+
const sgdsShow = this.emit("sgds-show", { cancelable: true });
|
|
152
|
+
if (sgdsShow.defaultPrevented) {
|
|
153
|
+
this.expanding = false;
|
|
154
|
+
this.expanded = false;
|
|
155
|
+
return;
|
|
156
|
+
}
|
|
157
|
+
await animate.stopAnimations(this.body);
|
|
158
|
+
this.body.hidden = false;
|
|
159
|
+
const { keyframes, options } = animationRegistry.getAnimation(this, "mainnav.show");
|
|
160
|
+
await animate.animateTo(this.body, animate.shimKeyframesHeightAuto(keyframes, this.body.scrollHeight), options);
|
|
161
|
+
this.body.style.height = "auto";
|
|
162
|
+
this.emit("sgds-after-show");
|
|
163
|
+
}
|
|
164
|
+
async _animateToHide() {
|
|
165
|
+
const slHide = this.emit("sgds-hide", { cancelable: true });
|
|
166
|
+
if (slHide.defaultPrevented) {
|
|
167
|
+
this.expanding = false;
|
|
168
|
+
this.expanded = true;
|
|
169
|
+
return;
|
|
170
|
+
}
|
|
171
|
+
await animate.stopAnimations(this.body);
|
|
172
|
+
const { keyframes, options } = animationRegistry.getAnimation(this, "mainnav.hide");
|
|
173
|
+
await animate.animateTo(this.body, animate.shimKeyframesHeightAuto(keyframes, this.body.scrollHeight), options);
|
|
174
|
+
this.body.hidden = true;
|
|
175
|
+
this.body.style.height = "auto";
|
|
176
|
+
this.emit("sgds-after-hide");
|
|
177
|
+
}
|
|
178
|
+
/** @internal */
|
|
179
|
+
async handleOpenChange() {
|
|
180
|
+
if (this.expanding) {
|
|
181
|
+
// Show
|
|
182
|
+
await this._animateToShow();
|
|
183
|
+
this.expanded = true;
|
|
184
|
+
}
|
|
185
|
+
else {
|
|
186
|
+
this.header.focus();
|
|
187
|
+
// Hide
|
|
188
|
+
await this._animateToHide();
|
|
189
|
+
this.expanded = false;
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
/** Shows the menu. For when mainnav is in the collapsed form */
|
|
193
|
+
async show() {
|
|
194
|
+
if (this.expanded) {
|
|
195
|
+
return;
|
|
196
|
+
}
|
|
197
|
+
this.expanding = true;
|
|
198
|
+
return event.waitForEvent(this, "sgds-after-show");
|
|
59
199
|
}
|
|
60
|
-
|
|
61
|
-
|
|
200
|
+
/** Hide the menu. For when mainnav is in the collapsed form */
|
|
201
|
+
async hide() {
|
|
202
|
+
if (!this.expanded) {
|
|
203
|
+
return;
|
|
204
|
+
}
|
|
205
|
+
this.expanding = false;
|
|
206
|
+
document.body.style.removeProperty("overflow");
|
|
207
|
+
return event.waitForEvent(this, "sgds-after-hide");
|
|
62
208
|
}
|
|
63
209
|
_handleDefaultSlotChange(e) {
|
|
64
210
|
const childElements = e.target.assignedElements({ flatten: true });
|
|
65
211
|
childElements.forEach(el => {
|
|
66
212
|
el.setAttribute("expand", this.expand);
|
|
67
213
|
});
|
|
68
|
-
if (this._hasProfileComponent && childElements.length > 0) {
|
|
69
|
-
console.warn("[sgds-mainnav] Using <sgds-mainnav-item> alongside <sgds-mainnav-profile> is not recommended. " +
|
|
70
|
-
"The profile component disables the mainnav hamburger menu, so nav items will have no mobile menu. " +
|
|
71
|
-
"Use a sidebar for navigation in operational apps.");
|
|
72
|
-
}
|
|
73
214
|
}
|
|
215
|
+
// assigning name attribute to elements added in slot="end", to use wildcard css selector to assign styles only to *-mainnav-item
|
|
74
216
|
_handleSlotChange(e) {
|
|
75
217
|
const childElements = e.target.assignedElements({ flatten: true });
|
|
76
218
|
childElements.forEach(e => {
|
|
@@ -78,24 +220,11 @@ class SgdsMainnav extends navElement["default"] {
|
|
|
78
220
|
e.setAttribute("expand", this.expand);
|
|
79
221
|
});
|
|
80
222
|
}
|
|
81
|
-
_handleProfileSlotChange(e) {
|
|
82
|
-
const childElements = e.target.assignedElements({ flatten: true });
|
|
83
|
-
childElements.forEach(el => {
|
|
84
|
-
el.setAttribute("expand", this.expand);
|
|
85
|
-
});
|
|
86
|
-
}
|
|
87
223
|
render() {
|
|
88
|
-
this.breakpointReached =
|
|
89
|
-
window.innerWidth <
|
|
90
|
-
(this.expand === "always"
|
|
91
|
-
? -1
|
|
92
|
-
: this.expand === "never"
|
|
93
|
-
? Infinity
|
|
94
|
-
: { sm: 512, md: 768, lg: 1024, xl: 1280, xxl: 1440 }[this.expand]);
|
|
224
|
+
this.breakpointReached = window.innerWidth < SIZES[this.expand];
|
|
95
225
|
return lit.html `
|
|
96
226
|
<nav>
|
|
97
227
|
<div class="navbar ${this._expandClass()}">
|
|
98
|
-
<slot name="start"></slot>
|
|
99
228
|
<a class="navbar-brand" href=${this.brandHref} aria-label="brand-link">
|
|
100
229
|
<slot name="brand"></slot>
|
|
101
230
|
</a>
|
|
@@ -109,17 +238,40 @@ class SgdsMainnav extends navElement["default"] {
|
|
|
109
238
|
></slot>
|
|
110
239
|
</div>
|
|
111
240
|
</div>
|
|
112
|
-
<
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
241
|
+
<slot
|
|
242
|
+
name="non-collapsible"
|
|
243
|
+
class=${classMap_js.classMap({ "non-collapsible-empty": !this.hasNonCollapsibleSlot })}
|
|
244
|
+
></slot>
|
|
245
|
+
<sgds-icon-button
|
|
246
|
+
name=${this.expanded ? "cross" : "menu"}
|
|
247
|
+
variant="ghost"
|
|
248
|
+
size="sm"
|
|
249
|
+
class="navbar-toggler"
|
|
250
|
+
@click=${this._handleSummaryClick}
|
|
251
|
+
aria-controls="${this.collapseId}"
|
|
252
|
+
aria-expanded="${this.expanded}"
|
|
253
|
+
.ariaLabel=${"Toggle navigation"}
|
|
254
|
+
></sgds-icon-button>
|
|
117
255
|
</div>
|
|
118
256
|
</nav>
|
|
119
257
|
`;
|
|
120
258
|
}
|
|
259
|
+
_expandClass() {
|
|
260
|
+
switch (this.expand) {
|
|
261
|
+
case "always":
|
|
262
|
+
return "navbar-expand";
|
|
263
|
+
case "never":
|
|
264
|
+
break;
|
|
265
|
+
default:
|
|
266
|
+
return `navbar-expand-${this.expand}`;
|
|
267
|
+
}
|
|
268
|
+
}
|
|
121
269
|
}
|
|
122
|
-
SgdsMainnav.styles = [...
|
|
270
|
+
SgdsMainnav.styles = [...sgdsElement["default"].styles, mainnav["default"]];
|
|
271
|
+
/** @internal */
|
|
272
|
+
SgdsMainnav.dependencies = {
|
|
273
|
+
"sgds-icon-button": sgdsIconButton.SgdsIconButton
|
|
274
|
+
};
|
|
123
275
|
tslib.__decorate([
|
|
124
276
|
context.provide({ context: mainnavContext.MainnavBreakpointContext }),
|
|
125
277
|
decorators_js.state()
|
|
@@ -127,20 +279,66 @@ tslib.__decorate([
|
|
|
127
279
|
tslib.__decorate([
|
|
128
280
|
context.provide({ context: mainnavContext.MainnavExpandedContext }),
|
|
129
281
|
decorators_js.state()
|
|
130
|
-
|
|
131
|
-
|
|
282
|
+
], SgdsMainnav.prototype, "expanded", void 0);
|
|
283
|
+
tslib.__decorate([
|
|
284
|
+
decorators_js.state()
|
|
285
|
+
], SgdsMainnav.prototype, "expanding", void 0);
|
|
286
|
+
tslib.__decorate([
|
|
287
|
+
decorators_js.query("nav")
|
|
288
|
+
], SgdsMainnav.prototype, "nav", void 0);
|
|
289
|
+
tslib.__decorate([
|
|
290
|
+
decorators_js.query(".navbar")
|
|
291
|
+
], SgdsMainnav.prototype, "navbar", void 0);
|
|
292
|
+
tslib.__decorate([
|
|
293
|
+
decorators_js.query(".navbar-toggler")
|
|
294
|
+
], SgdsMainnav.prototype, "header", void 0);
|
|
295
|
+
tslib.__decorate([
|
|
296
|
+
decorators_js.query(".navbar-body")
|
|
297
|
+
], SgdsMainnav.prototype, "body", void 0);
|
|
298
|
+
tslib.__decorate([
|
|
299
|
+
decorators_js.query(".navbar-nav-scroll")
|
|
300
|
+
], SgdsMainnav.prototype, "navScroll", void 0);
|
|
301
|
+
tslib.__decorate([
|
|
302
|
+
decorators_js.query("slot[name='non-collapsible']")
|
|
303
|
+
], SgdsMainnav.prototype, "nonCollapsibleSlot", void 0);
|
|
132
304
|
tslib.__decorate([
|
|
133
305
|
decorators_js.property({ type: Boolean })
|
|
134
306
|
], SgdsMainnav.prototype, "hasNonCollapsibleSlot", void 0);
|
|
307
|
+
tslib.__decorate([
|
|
308
|
+
decorators_js.property({ type: String })
|
|
309
|
+
], SgdsMainnav.prototype, "brandHref", void 0);
|
|
310
|
+
tslib.__decorate([
|
|
311
|
+
decorators_js.property({ type: String })
|
|
312
|
+
], SgdsMainnav.prototype, "expand", void 0);
|
|
135
313
|
tslib.__decorate([
|
|
136
314
|
decorators_js.property({ type: Boolean, reflect: true })
|
|
137
315
|
], SgdsMainnav.prototype, "fluid", void 0);
|
|
316
|
+
tslib.__decorate([
|
|
317
|
+
decorators_js.state()
|
|
318
|
+
], SgdsMainnav.prototype, "breakpointReached", void 0);
|
|
138
319
|
tslib.__decorate([
|
|
139
320
|
decorators_js.queryAssignedElements()
|
|
140
321
|
], SgdsMainnav.prototype, "defaultNodes", void 0);
|
|
141
322
|
tslib.__decorate([
|
|
142
323
|
decorators_js.queryAssignedElements({ slot: "end" })
|
|
143
324
|
], SgdsMainnav.prototype, "endNodes", void 0);
|
|
325
|
+
tslib.__decorate([
|
|
326
|
+
watch.watch("expanding", { waitUntilFirstUpdate: true })
|
|
327
|
+
], SgdsMainnav.prototype, "handleOpenChange", null);
|
|
328
|
+
animationRegistry.setDefaultAnimation("mainnav.show", {
|
|
329
|
+
keyframes: [
|
|
330
|
+
{ height: "0", opacity: "0" },
|
|
331
|
+
{ height: "auto", opacity: "1" }
|
|
332
|
+
],
|
|
333
|
+
options: { duration: 200, easing: "ease-in-out" }
|
|
334
|
+
});
|
|
335
|
+
animationRegistry.setDefaultAnimation("mainnav.hide", {
|
|
336
|
+
keyframes: [
|
|
337
|
+
{ height: "auto", opacity: "1" },
|
|
338
|
+
{ height: "0", opacity: "0" }
|
|
339
|
+
],
|
|
340
|
+
options: { duration: 200, easing: "ease-in-out" }
|
|
341
|
+
});
|
|
144
342
|
|
|
145
343
|
exports.SgdsMainnav = SgdsMainnav;
|
|
146
344
|
exports["default"] = SgdsMainnav;
|