@govtechsg/sgds-web-component 3.23.0-rc.0 → 3.23.0-rc.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (138) hide show
  1. package/base/card.js +1 -1
  2. package/base/select-element.d.ts +4 -0
  3. package/base/select-element.js +6 -0
  4. package/base/select-element.js.map +1 -1
  5. package/components/Breadcrumb/index.umd.min.js +34 -33
  6. package/components/Breadcrumb/index.umd.min.js.map +1 -1
  7. package/components/Card/index.umd.min.js +1 -1
  8. package/components/Card/index.umd.min.js.map +1 -1
  9. package/components/Checkbox/index.umd.min.js +3 -3
  10. package/components/Checkbox/index.umd.min.js.map +1 -1
  11. package/components/Checkbox/sgds-checkbox-group.d.ts +5 -0
  12. package/components/Checkbox/sgds-checkbox-group.js +10 -0
  13. package/components/Checkbox/sgds-checkbox-group.js.map +1 -1
  14. package/components/Checkbox/sgds-checkbox.d.ts +5 -1
  15. package/components/Checkbox/sgds-checkbox.js +10 -1
  16. package/components/Checkbox/sgds-checkbox.js.map +1 -1
  17. package/components/ComboBox/index.umd.min.js +7 -6
  18. package/components/ComboBox/index.umd.min.js.map +1 -1
  19. package/components/ComboBox/sgds-combo-box.d.ts +11 -0
  20. package/components/ComboBox/sgds-combo-box.js +34 -0
  21. package/components/ComboBox/sgds-combo-box.js.map +1 -1
  22. package/components/Datepicker/index.umd.min.js +1 -1
  23. package/components/Datepicker/index.umd.min.js.map +1 -1
  24. package/components/Drawer/index.umd.min.js +10 -5
  25. package/components/Drawer/index.umd.min.js.map +1 -1
  26. package/components/Drawer/sgds-drawer.js +5 -4
  27. package/components/Drawer/sgds-drawer.js.map +1 -1
  28. package/components/Dropdown/index.umd.min.js +9 -3
  29. package/components/Dropdown/index.umd.min.js.map +1 -1
  30. package/components/Dropdown/sgds-dropdown-item.d.ts +2 -0
  31. package/components/Dropdown/sgds-dropdown-item.js +7 -0
  32. package/components/Dropdown/sgds-dropdown-item.js.map +1 -1
  33. package/components/FileUpload/index.umd.min.js +1 -1
  34. package/components/FileUpload/index.umd.min.js.map +1 -1
  35. package/components/IconCard/index.umd.min.js +1 -1
  36. package/components/IconCard/index.umd.min.js.map +1 -1
  37. package/components/ImageCard/index.umd.min.js +1 -1
  38. package/components/ImageCard/index.umd.min.js.map +1 -1
  39. package/components/Input/index.umd.min.js +1 -1
  40. package/components/Input/index.umd.min.js.map +1 -1
  41. package/components/Mainnav/index.umd.min.js +6 -3
  42. package/components/Mainnav/index.umd.min.js.map +1 -1
  43. package/components/Mainnav/sgds-mainnav-dropdown.d.ts +4 -0
  44. package/components/Mainnav/sgds-mainnav-dropdown.js +6 -0
  45. package/components/Mainnav/sgds-mainnav-dropdown.js.map +1 -1
  46. package/components/OverflowMenu/index.umd.min.js +9 -3
  47. package/components/OverflowMenu/index.umd.min.js.map +1 -1
  48. package/components/QuantityToggle/index.umd.min.js +1 -1
  49. package/components/QuantityToggle/index.umd.min.js.map +1 -1
  50. package/components/Radio/index.umd.min.js +2 -2
  51. package/components/Radio/index.umd.min.js.map +1 -1
  52. package/components/Radio/sgds-radio-group.d.ts +4 -0
  53. package/components/Radio/sgds-radio-group.js +9 -0
  54. package/components/Radio/sgds-radio-group.js.map +1 -1
  55. package/components/Select/index.umd.min.js +3 -3
  56. package/components/Select/index.umd.min.js.map +1 -1
  57. package/components/Select/sgds-select.d.ts +4 -0
  58. package/components/Select/sgds-select.js +10 -1
  59. package/components/Select/sgds-select.js.map +1 -1
  60. package/components/Textarea/index.umd.min.js +1 -1
  61. package/components/Textarea/index.umd.min.js.map +1 -1
  62. package/components/ThumbnailCard/index.umd.min.js +1 -1
  63. package/components/ThumbnailCard/index.umd.min.js.map +1 -1
  64. package/components/index.umd.min.js +81 -77
  65. package/components/index.umd.min.js.map +1 -1
  66. package/css/fouc.css +1 -1
  67. package/custom-elements.json +965 -665
  68. package/index.umd.min.js +84 -80
  69. package/index.umd.min.js.map +1 -1
  70. package/package.json +1 -1
  71. package/react/base/card.cjs.js +1 -1
  72. package/react/base/card.js +1 -1
  73. package/react/base/select-element.cjs.js +6 -0
  74. package/react/base/select-element.cjs.js.map +1 -1
  75. package/react/base/select-element.js +6 -0
  76. package/react/base/select-element.js.map +1 -1
  77. package/react/checkbox/index.cjs.js +3 -1
  78. package/react/checkbox/index.cjs.js.map +1 -1
  79. package/react/checkbox/index.js +3 -1
  80. package/react/checkbox/index.js.map +1 -1
  81. package/react/checkbox-group/index.cjs.js +3 -1
  82. package/react/checkbox-group/index.cjs.js.map +1 -1
  83. package/react/checkbox-group/index.js +3 -1
  84. package/react/checkbox-group/index.js.map +1 -1
  85. package/react/combo-box/index.cjs.js +1 -0
  86. package/react/combo-box/index.cjs.js.map +1 -1
  87. package/react/combo-box/index.js +1 -0
  88. package/react/combo-box/index.js.map +1 -1
  89. package/react/components/Checkbox/sgds-checkbox-group.cjs.js +10 -0
  90. package/react/components/Checkbox/sgds-checkbox-group.cjs.js.map +1 -1
  91. package/react/components/Checkbox/sgds-checkbox-group.js +10 -0
  92. package/react/components/Checkbox/sgds-checkbox-group.js.map +1 -1
  93. package/react/components/Checkbox/sgds-checkbox.cjs.js +10 -1
  94. package/react/components/Checkbox/sgds-checkbox.cjs.js.map +1 -1
  95. package/react/components/Checkbox/sgds-checkbox.js +10 -1
  96. package/react/components/Checkbox/sgds-checkbox.js.map +1 -1
  97. package/react/components/ComboBox/sgds-combo-box.cjs.js +34 -0
  98. package/react/components/ComboBox/sgds-combo-box.cjs.js.map +1 -1
  99. package/react/components/ComboBox/sgds-combo-box.js +34 -0
  100. package/react/components/ComboBox/sgds-combo-box.js.map +1 -1
  101. package/react/components/Drawer/sgds-drawer.cjs.js +4 -3
  102. package/react/components/Drawer/sgds-drawer.cjs.js.map +1 -1
  103. package/react/components/Drawer/sgds-drawer.js +5 -4
  104. package/react/components/Drawer/sgds-drawer.js.map +1 -1
  105. package/react/components/Dropdown/sgds-dropdown-item.cjs.js +7 -0
  106. package/react/components/Dropdown/sgds-dropdown-item.cjs.js.map +1 -1
  107. package/react/components/Dropdown/sgds-dropdown-item.js +7 -0
  108. package/react/components/Dropdown/sgds-dropdown-item.js.map +1 -1
  109. package/react/components/Mainnav/sgds-mainnav-dropdown.cjs.js +6 -0
  110. package/react/components/Mainnav/sgds-mainnav-dropdown.cjs.js.map +1 -1
  111. package/react/components/Mainnav/sgds-mainnav-dropdown.js +6 -0
  112. package/react/components/Mainnav/sgds-mainnav-dropdown.js.map +1 -1
  113. package/react/components/Radio/sgds-radio-group.cjs.js +9 -0
  114. package/react/components/Radio/sgds-radio-group.cjs.js.map +1 -1
  115. package/react/components/Radio/sgds-radio-group.js +9 -0
  116. package/react/components/Radio/sgds-radio-group.js.map +1 -1
  117. package/react/components/Select/sgds-select.cjs.js +9 -0
  118. package/react/components/Select/sgds-select.cjs.js.map +1 -1
  119. package/react/components/Select/sgds-select.js +10 -1
  120. package/react/components/Select/sgds-select.js.map +1 -1
  121. package/react/index.cjs.js +4 -4
  122. package/react/index.d.ts +1 -1
  123. package/react/index.js +1 -1
  124. package/react/radio-group/index.cjs.js +3 -1
  125. package/react/radio-group/index.cjs.js.map +1 -1
  126. package/react/radio-group/index.js +3 -1
  127. package/react/radio-group/index.js.map +1 -1
  128. package/react/select/index.cjs.js +2 -0
  129. package/react/select/index.cjs.js.map +1 -1
  130. package/react/select/index.js +2 -0
  131. package/react/select/index.js.map +1 -1
  132. package/react/utils/validatorMixin.cjs.js +9 -11
  133. package/react/utils/validatorMixin.cjs.js.map +1 -1
  134. package/react/utils/validatorMixin.js +9 -11
  135. package/react/utils/validatorMixin.js.map +1 -1
  136. package/types/react.d.ts +60 -31
  137. package/utils/validatorMixin.js +9 -11
  138. package/utils/validatorMixin.js.map +1 -1
@@ -30,6 +30,10 @@ export declare class SgdsMainnavDropdown extends SgdsElement {
30
30
  active: boolean;
31
31
  /** When true, applies active styles on the dropdown button */
32
32
  disabled: boolean;
33
+ /**
34
+ * Accessible label for the dropdown's toggle button. Forwarded to the button's aria-label attribute.
35
+ */
36
+ ariaLabel: string;
33
37
  /** @internal */
34
38
  private togglerNodes;
35
39
  /** @internal */
@@ -3,6 +3,7 @@ import { html } from 'lit';
3
3
  import { consume } from '@lit/context';
4
4
  import { state, query, property, queryAssignedElements } from 'lit/decorators.js';
5
5
  import { classMap } from 'lit/directives/class-map.js';
6
+ import { ifDefined } from 'lit/directives/if-defined.js';
6
7
  import { offset } from '@floating-ui/dom';
7
8
  import genId from '../../utils/generateId.js';
8
9
  import css_248z from '../Dropdown/dropdown.js';
@@ -208,6 +209,7 @@ class SgdsMainnavDropdown extends SgdsElement {
208
209
  disabled: this.disabled
209
210
  })}"
210
211
  aria-disabled=${this.disabled ? "true" : "false"}
212
+ aria-label=${ifDefined(this.ariaLabel)}
211
213
  tabindex=${this.disabled ? "-1" : "0"}
212
214
  role="button"
213
215
  @click=${this._openMenu}
@@ -237,6 +239,7 @@ class SgdsMainnavDropdown extends SgdsElement {
237
239
  disabled: this.disabled
238
240
  })}"
239
241
  aria-disabled=${this.disabled ? "true" : "false"}
242
+ aria-label=${ifDefined(this.ariaLabel)}
240
243
  id=${this.togglerId}
241
244
  tabindex=${this.disabled ? "-1" : "0"}
242
245
  role="button"
@@ -283,6 +286,9 @@ __decorate([
283
286
  __decorate([
284
287
  property({ type: Boolean, reflect: true })
285
288
  ], SgdsMainnavDropdown.prototype, "disabled", void 0);
289
+ __decorate([
290
+ property({ type: String })
291
+ ], SgdsMainnavDropdown.prototype, "ariaLabel", void 0);
286
292
  __decorate([
287
293
  queryAssignedElements({ slot: "toggler" })
288
294
  ], SgdsMainnavDropdown.prototype, "togglerNodes", void 0);
@@ -1 +1 @@
1
- {"version":3,"file":"sgds-mainnav-dropdown.js","sources":["../../../src/components/Mainnav/sgds-mainnav-dropdown.ts"],"sourcesContent":["import { html } from \"lit\";\nimport { consume } from \"@lit/context\";\nimport { property, query, queryAssignedElements, state } from \"lit/decorators.js\";\nimport { SgdsMainnav } from \"./sgds-mainnav\";\nimport { classMap } from \"lit/directives/class-map.js\";\nimport { offset } from \"@floating-ui/dom\";\nimport genId from \"../../utils/generateId\";\nimport dropdownStyle from \"../Dropdown/dropdown.css\";\nimport dropdownMenuStyle from \"../Dropdown/dropdown-menu.css\";\nimport mainnavDropdownStyle from \"./mainnav-dropdown.css\";\nimport SgdsDropdown from \"../Dropdown/sgds-dropdown\";\nimport SgdsDropdownItem from \"../Dropdown/sgds-dropdown-item\";\nimport SgdsIcon from \"../Icon/sgds-icon\";\nimport { MainnavBreakpointContext, MainnavExpandedContext } from \"./mainnav-context\";\nimport SgdsElement from \"../../base/sgds-element\";\n\nconst TAB = \"Tab\";\nconst ENTER = \"Enter\";\nconst SPACE = \" \";\n\n/**\n * @slot default - The menu items. Pass in sgds-dropdown-item as the menu items\n * @slot toggler - The content of the toggler to pass in html content.\n */\nexport class SgdsMainnavDropdown extends SgdsElement {\n static styles = [...SgdsElement.styles, dropdownStyle, dropdownMenuStyle, mainnavDropdownStyle];\n /** @internal */\n static dependencies = {\n \"sgds-dropdown\": SgdsDropdown,\n \"sgds-dropdown-item\": SgdsDropdownItem,\n \"sgds-icon\": SgdsIcon\n };\n\n @consume({ context: MainnavBreakpointContext, subscribe: true })\n @state()\n private _breakpointReached = true;\n\n @consume({ context: MainnavExpandedContext, subscribe: true })\n @state()\n private expanded: boolean;\n\n /** @internal */\n @query(\".nav-link\") navLink: HTMLElement;\n\n /** @internal */\n @query(\".dropdown-items\") dropdownItems: HTMLElement;\n\n /** @internal */\n @query(\".dropdown-items a\") menuHeaderButton: HTMLElement;\n\n /** @internal */\n @query(\".dropdown-items span\") menuHeaderText: HTMLElement;\n\n /** @internal Forwards value to id attribute of toggle button of Dropdown. An unique id generated by default */\n private togglerId: string = genId(\"dropdown\", \"button\");\n\n /** When true, applies active styles on the dropdown button */\n @property({ type: Boolean })\n active = false;\n\n /** When true, applies active styles on the dropdown button */\n @property({ type: Boolean, reflect: true })\n disabled = false;\n\n /** @internal */\n @queryAssignedElements({ slot: \"toggler\" }) private togglerNodes!: HTMLElement[];\n\n /** @internal */\n @queryAssignedElements() private defaultNodes!: SgdsDropdownItem[];\n\n /** @internal */\n get defaultSlotItems(): SgdsDropdownItem[] {\n return [...(this.defaultNodes || [])].filter(\n (node: HTMLElement) => typeof node.tagName !== \"undefined\"\n ) as SgdsDropdownItem[];\n }\n\n updated() {\n if (this._breakpointReached) {\n this._copyTextToMenu();\n this._resetDropdownMenu();\n this._hideDropdownMenuItems();\n }\n }\n\n private _handleSlotChange(e: Event) {\n const items = (e.target as HTMLSlotElement).assignedElements({ flatten: true }) as SgdsDropdownItem[];\n items.forEach(item => {\n item.addEventListener(\"keydown\", this._handleKeyboardMenuItemsEvent.bind(this));\n\n const dropdownItem = item.shadowRoot.querySelector(\".dropdown-item\") as HTMLElement;\n dropdownItem.classList.add(\"mainnav-dropdown-link\");\n\n const link = item.shadowRoot?.querySelector(\"a\") || item.querySelector(\"a\");\n link.tabIndex = -1;\n if (dropdownItem.classList.contains(\"disabled\")) {\n link.setAttribute(\"href\", \"javascript:void(0)\");\n link.setAttribute(\"tabindex\", \"-1\");\n } else {\n link.addEventListener(\"click\", (e: Event) => {\n const target = e.target as HTMLElement;\n const mainnav = target.closest(\"sgds-mainnav\") as SgdsMainnav;\n mainnav.hide();\n });\n }\n });\n }\n\n private _handleDesktopSlotChange(e: Event) {\n const items = (e.target as HTMLSlotElement).assignedElements({ flatten: true }) as SgdsDropdownItem[];\n items.forEach(item => {\n const dropdownItem = item.shadowRoot.querySelector(\".dropdown-item\") as HTMLElement;\n dropdownItem.classList.remove(\"mainnav-dropdown-link\");\n\n const slottedItem = (item.shadowRoot.querySelector(\".dropdown-item slot\") as HTMLSlotElement).assignedElements({\n flatten: true\n });\n slottedItem.forEach(item => {\n if (dropdownItem.classList.contains(\"disabled\")) {\n item.setAttribute(\"href\", \"javascript:void(0)\");\n item.setAttribute(\"tabindex\", \"-1\");\n }\n });\n });\n }\n\n private _handleKeyboardMenuItemsEvent(e: KeyboardEvent) {\n if (!this._breakpointReached) {\n return;\n }\n\n const slottedItems = this.defaultSlotItems.filter(item => !item.hasAttribute(\"disabled\"));\n const items = [this.menuHeaderButton, ...slottedItems];\n const itemLength = items.length;\n if (itemLength === 0) {\n return;\n }\n\n const firstItem = items[0];\n const lastItem = items[itemLength - 1].shadowRoot.querySelector(\".dropdown-item\") as HTMLElement;\n let activeElement = document.activeElement as HTMLElement;\n if (activeElement === this) {\n activeElement = this.shadowRoot.activeElement as HTMLElement;\n }\n\n switch (e.key) {\n case \"Tab\": {\n if (e.shiftKey) {\n if (activeElement === firstItem) {\n e.preventDefault();\n setTimeout(() => {\n lastItem.focus();\n }, 0);\n }\n } else {\n const activeShadowElement = activeElement.shadowRoot\n ? activeElement.shadowRoot.querySelector(\".dropdown-item\")\n : null;\n if (activeShadowElement && activeShadowElement === lastItem) {\n e.preventDefault();\n firstItem.focus();\n }\n }\n break;\n }\n default:\n break;\n }\n }\n\n private _copyTextToMenu() {\n this.menuHeaderText.innerHTML = this.togglerNodes[0].innerHTML;\n }\n\n private _hideDropdownMenuItems() {\n this.dropdownItems.style.display = \"none\";\n this.dropdownItems.setAttribute(\"aria-hidden\", \"true\");\n }\n\n private _resetDropdownMenu(): Promise<void> {\n const navbarBody = this._getNavbarBody();\n if (!navbarBody) return Promise.resolve();\n\n return new Promise(resolve => {\n const onEnd = (event: TransitionEvent) => {\n if (event.propertyName === \"transform\") {\n navbarBody.removeEventListener(\"transitionend\", onEnd);\n resolve();\n }\n };\n\n const hasTransition = getComputedStyle(navbarBody).transitionProperty.includes(\"transform\");\n\n if (hasTransition) {\n navbarBody.addEventListener(\"transitionend\", onEnd);\n navbarBody.style.removeProperty(\"transform\");\n } else {\n navbarBody.style.removeProperty(\"transform\");\n resolve();\n }\n });\n }\n\n private _handleKeyboardOpen(event: KeyboardEvent) {\n if (this.disabled) {\n return;\n }\n\n if (event.key === ENTER || event.key === SPACE) {\n event.preventDefault();\n this._openMenu();\n }\n }\n\n private _getNavbarBody() {\n const mainNav = document.querySelector(\"sgds-mainnav\") as HTMLElement | null;\n\n if (!mainNav?.shadowRoot) {\n console.warn(\"sgds-mainnav or its shadowRoot not found\");\n return;\n }\n\n const navbarBody = mainNav.shadowRoot.querySelector(\".navbar-body\") as HTMLElement;\n if (!navbarBody) {\n console.warn(\".navbar-body not found in sgds-mainnav\");\n return;\n }\n\n return navbarBody;\n }\n\n private _openMenu() {\n const navbarBody = this._getNavbarBody();\n navbarBody.style.transform = \"translateX(-100%)\";\n this.dropdownItems.style.removeProperty(\"display\");\n this.dropdownItems.setAttribute(\"aria-hidden\", \"false\");\n setTimeout(() => {\n this.menuHeaderButton.focus();\n }, 50);\n }\n\n private _handleHeaderKeyboardEvent(event: KeyboardEvent) {\n switch (event.key) {\n case TAB: {\n this._handleKeyboardMenuItemsEvent(event);\n break;\n }\n case ENTER:\n case SPACE: {\n event.preventDefault();\n this._closeMenu();\n break;\n }\n default:\n break;\n }\n }\n\n private async _closeMenu() {\n await this._resetDropdownMenu();\n this._hideDropdownMenuItems();\n this.navLink.focus();\n }\n\n render() {\n const mobileView = html`\n <a\n class=\"${classMap({\n \"nav-link\": true,\n active: this.active,\n disabled: this.disabled\n })}\"\n aria-disabled=${this.disabled ? \"true\" : \"false\"}\n tabindex=${this.disabled ? \"-1\" : \"0\"}\n role=\"button\"\n @click=${this._openMenu}\n @keydown=${this._handleKeyboardOpen}\n >\n <slot name=\"toggler\"></slot>\n <sgds-icon name=\"chevron-right\"></sgds-icon>\n </a>\n <div class=\"dropdown-items\">\n <a tabindex=\"0\" role=\"button\" @click=${this._closeMenu} @keydown=${this._handleHeaderKeyboardEvent}>\n <sgds-icon name=\"chevron-left\"></sgds-icon>\n <span></span>\n </a>\n <slot @slotchange=${this._handleSlotChange}></slot>\n </div>\n `;\n\n const desktopView = html`<sgds-dropdown\n .floatingOpts=${{\n middleware: [offset(0)]\n }}\n ?disabled=${this.disabled}\n >\n <a\n class=\"${classMap({\n \"nav-link\": true,\n active: this.active,\n disabled: this.disabled\n })}\"\n aria-disabled=${this.disabled ? \"true\" : \"false\"}\n id=${this.togglerId}\n tabindex=${this.disabled ? \"-1\" : \"0\"}\n role=\"button\"\n slot=\"toggler\"\n >\n <slot name=\"toggler\"></slot>\n <sgds-icon name=\"chevron-down\"></sgds-icon>\n </a>\n <slot @slotchange=${this._handleDesktopSlotChange}></slot>\n </sgds-dropdown>`;\n\n return this._breakpointReached ? mobileView : desktopView;\n }\n}\n\nexport default SgdsMainnavDropdown;\n"],"names":["dropdownStyle","dropdownMenuStyle","mainnavDropdownStyle"],"mappings":"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"}
1
+ {"version":3,"file":"sgds-mainnav-dropdown.js","sources":["../../../src/components/Mainnav/sgds-mainnav-dropdown.ts"],"sourcesContent":["import { html } from \"lit\";\nimport { consume } from \"@lit/context\";\nimport { property, query, queryAssignedElements, state } from \"lit/decorators.js\";\nimport { SgdsMainnav } from \"./sgds-mainnav\";\nimport { classMap } from \"lit/directives/class-map.js\";\nimport { ifDefined } from \"lit/directives/if-defined.js\";\nimport { offset } from \"@floating-ui/dom\";\nimport genId from \"../../utils/generateId\";\nimport dropdownStyle from \"../Dropdown/dropdown.css\";\nimport dropdownMenuStyle from \"../Dropdown/dropdown-menu.css\";\nimport mainnavDropdownStyle from \"./mainnav-dropdown.css\";\nimport SgdsDropdown from \"../Dropdown/sgds-dropdown\";\nimport SgdsDropdownItem from \"../Dropdown/sgds-dropdown-item\";\nimport SgdsIcon from \"../Icon/sgds-icon\";\nimport { MainnavBreakpointContext, MainnavExpandedContext } from \"./mainnav-context\";\nimport SgdsElement from \"../../base/sgds-element\";\n\nconst TAB = \"Tab\";\nconst ENTER = \"Enter\";\nconst SPACE = \" \";\n\n/**\n * @slot default - The menu items. Pass in sgds-dropdown-item as the menu items\n * @slot toggler - The content of the toggler to pass in html content.\n */\nexport class SgdsMainnavDropdown extends SgdsElement {\n static styles = [...SgdsElement.styles, dropdownStyle, dropdownMenuStyle, mainnavDropdownStyle];\n /** @internal */\n static dependencies = {\n \"sgds-dropdown\": SgdsDropdown,\n \"sgds-dropdown-item\": SgdsDropdownItem,\n \"sgds-icon\": SgdsIcon\n };\n\n @consume({ context: MainnavBreakpointContext, subscribe: true })\n @state()\n private _breakpointReached = true;\n\n @consume({ context: MainnavExpandedContext, subscribe: true })\n @state()\n private expanded: boolean;\n\n /** @internal */\n @query(\".nav-link\") navLink: HTMLElement;\n\n /** @internal */\n @query(\".dropdown-items\") dropdownItems: HTMLElement;\n\n /** @internal */\n @query(\".dropdown-items a\") menuHeaderButton: HTMLElement;\n\n /** @internal */\n @query(\".dropdown-items span\") menuHeaderText: HTMLElement;\n\n /** @internal Forwards value to id attribute of toggle button of Dropdown. An unique id generated by default */\n private togglerId: string = genId(\"dropdown\", \"button\");\n\n /** When true, applies active styles on the dropdown button */\n @property({ type: Boolean })\n active = false;\n\n /** When true, applies active styles on the dropdown button */\n @property({ type: Boolean, reflect: true })\n disabled = false;\n\n /**\n * Accessible label for the dropdown's toggle button. Forwarded to the button's aria-label attribute.\n */\n @property({ type: String })\n ariaLabel: string;\n\n /** @internal */\n @queryAssignedElements({ slot: \"toggler\" }) private togglerNodes!: HTMLElement[];\n\n /** @internal */\n @queryAssignedElements() private defaultNodes!: SgdsDropdownItem[];\n\n /** @internal */\n get defaultSlotItems(): SgdsDropdownItem[] {\n return [...(this.defaultNodes || [])].filter(\n (node: HTMLElement) => typeof node.tagName !== \"undefined\"\n ) as SgdsDropdownItem[];\n }\n\n updated() {\n if (this._breakpointReached) {\n this._copyTextToMenu();\n this._resetDropdownMenu();\n this._hideDropdownMenuItems();\n }\n }\n\n private _handleSlotChange(e: Event) {\n const items = (e.target as HTMLSlotElement).assignedElements({ flatten: true }) as SgdsDropdownItem[];\n items.forEach(item => {\n item.addEventListener(\"keydown\", this._handleKeyboardMenuItemsEvent.bind(this));\n\n const dropdownItem = item.shadowRoot.querySelector(\".dropdown-item\") as HTMLElement;\n dropdownItem.classList.add(\"mainnav-dropdown-link\");\n\n const link = item.shadowRoot?.querySelector(\"a\") || item.querySelector(\"a\");\n link.tabIndex = -1;\n if (dropdownItem.classList.contains(\"disabled\")) {\n link.setAttribute(\"href\", \"javascript:void(0)\");\n link.setAttribute(\"tabindex\", \"-1\");\n } else {\n link.addEventListener(\"click\", (e: Event) => {\n const target = e.target as HTMLElement;\n const mainnav = target.closest(\"sgds-mainnav\") as SgdsMainnav;\n mainnav.hide();\n });\n }\n });\n }\n\n private _handleDesktopSlotChange(e: Event) {\n const items = (e.target as HTMLSlotElement).assignedElements({ flatten: true }) as SgdsDropdownItem[];\n items.forEach(item => {\n const dropdownItem = item.shadowRoot.querySelector(\".dropdown-item\") as HTMLElement;\n dropdownItem.classList.remove(\"mainnav-dropdown-link\");\n\n const slottedItem = (item.shadowRoot.querySelector(\".dropdown-item slot\") as HTMLSlotElement).assignedElements({\n flatten: true\n });\n slottedItem.forEach(item => {\n if (dropdownItem.classList.contains(\"disabled\")) {\n item.setAttribute(\"href\", \"javascript:void(0)\");\n item.setAttribute(\"tabindex\", \"-1\");\n }\n });\n });\n }\n\n private _handleKeyboardMenuItemsEvent(e: KeyboardEvent) {\n if (!this._breakpointReached) {\n return;\n }\n\n const slottedItems = this.defaultSlotItems.filter(item => !item.hasAttribute(\"disabled\"));\n const items = [this.menuHeaderButton, ...slottedItems];\n const itemLength = items.length;\n if (itemLength === 0) {\n return;\n }\n\n const firstItem = items[0];\n const lastItem = items[itemLength - 1].shadowRoot.querySelector(\".dropdown-item\") as HTMLElement;\n let activeElement = document.activeElement as HTMLElement;\n if (activeElement === this) {\n activeElement = this.shadowRoot.activeElement as HTMLElement;\n }\n\n switch (e.key) {\n case \"Tab\": {\n if (e.shiftKey) {\n if (activeElement === firstItem) {\n e.preventDefault();\n setTimeout(() => {\n lastItem.focus();\n }, 0);\n }\n } else {\n const activeShadowElement = activeElement.shadowRoot\n ? activeElement.shadowRoot.querySelector(\".dropdown-item\")\n : null;\n if (activeShadowElement && activeShadowElement === lastItem) {\n e.preventDefault();\n firstItem.focus();\n }\n }\n break;\n }\n default:\n break;\n }\n }\n\n private _copyTextToMenu() {\n this.menuHeaderText.innerHTML = this.togglerNodes[0].innerHTML;\n }\n\n private _hideDropdownMenuItems() {\n this.dropdownItems.style.display = \"none\";\n this.dropdownItems.setAttribute(\"aria-hidden\", \"true\");\n }\n\n private _resetDropdownMenu(): Promise<void> {\n const navbarBody = this._getNavbarBody();\n if (!navbarBody) return Promise.resolve();\n\n return new Promise(resolve => {\n const onEnd = (event: TransitionEvent) => {\n if (event.propertyName === \"transform\") {\n navbarBody.removeEventListener(\"transitionend\", onEnd);\n resolve();\n }\n };\n\n const hasTransition = getComputedStyle(navbarBody).transitionProperty.includes(\"transform\");\n\n if (hasTransition) {\n navbarBody.addEventListener(\"transitionend\", onEnd);\n navbarBody.style.removeProperty(\"transform\");\n } else {\n navbarBody.style.removeProperty(\"transform\");\n resolve();\n }\n });\n }\n\n private _handleKeyboardOpen(event: KeyboardEvent) {\n if (this.disabled) {\n return;\n }\n\n if (event.key === ENTER || event.key === SPACE) {\n event.preventDefault();\n this._openMenu();\n }\n }\n\n private _getNavbarBody() {\n const mainNav = document.querySelector(\"sgds-mainnav\") as HTMLElement | null;\n\n if (!mainNav?.shadowRoot) {\n console.warn(\"sgds-mainnav or its shadowRoot not found\");\n return;\n }\n\n const navbarBody = mainNav.shadowRoot.querySelector(\".navbar-body\") as HTMLElement;\n if (!navbarBody) {\n console.warn(\".navbar-body not found in sgds-mainnav\");\n return;\n }\n\n return navbarBody;\n }\n\n private _openMenu() {\n const navbarBody = this._getNavbarBody();\n navbarBody.style.transform = \"translateX(-100%)\";\n this.dropdownItems.style.removeProperty(\"display\");\n this.dropdownItems.setAttribute(\"aria-hidden\", \"false\");\n setTimeout(() => {\n this.menuHeaderButton.focus();\n }, 50);\n }\n\n private _handleHeaderKeyboardEvent(event: KeyboardEvent) {\n switch (event.key) {\n case TAB: {\n this._handleKeyboardMenuItemsEvent(event);\n break;\n }\n case ENTER:\n case SPACE: {\n event.preventDefault();\n this._closeMenu();\n break;\n }\n default:\n break;\n }\n }\n\n private async _closeMenu() {\n await this._resetDropdownMenu();\n this._hideDropdownMenuItems();\n this.navLink.focus();\n }\n\n render() {\n const mobileView = html`\n <a\n class=\"${classMap({\n \"nav-link\": true,\n active: this.active,\n disabled: this.disabled\n })}\"\n aria-disabled=${this.disabled ? \"true\" : \"false\"}\n aria-label=${ifDefined(this.ariaLabel)}\n tabindex=${this.disabled ? \"-1\" : \"0\"}\n role=\"button\"\n @click=${this._openMenu}\n @keydown=${this._handleKeyboardOpen}\n >\n <slot name=\"toggler\"></slot>\n <sgds-icon name=\"chevron-right\"></sgds-icon>\n </a>\n <div class=\"dropdown-items\">\n <a tabindex=\"0\" role=\"button\" @click=${this._closeMenu} @keydown=${this._handleHeaderKeyboardEvent}>\n <sgds-icon name=\"chevron-left\"></sgds-icon>\n <span></span>\n </a>\n <slot @slotchange=${this._handleSlotChange}></slot>\n </div>\n `;\n\n const desktopView = html`<sgds-dropdown\n .floatingOpts=${{\n middleware: [offset(0)]\n }}\n ?disabled=${this.disabled}\n >\n <a\n class=\"${classMap({\n \"nav-link\": true,\n active: this.active,\n disabled: this.disabled\n })}\"\n aria-disabled=${this.disabled ? \"true\" : \"false\"}\n aria-label=${ifDefined(this.ariaLabel)}\n id=${this.togglerId}\n tabindex=${this.disabled ? \"-1\" : \"0\"}\n role=\"button\"\n slot=\"toggler\"\n >\n <slot name=\"toggler\"></slot>\n <sgds-icon name=\"chevron-down\"></sgds-icon>\n </a>\n <slot @slotchange=${this._handleDesktopSlotChange}></slot>\n </sgds-dropdown>`;\n\n return this._breakpointReached ? mobileView : desktopView;\n }\n}\n\nexport default SgdsMainnavDropdown;\n"],"names":["dropdownStyle","dropdownMenuStyle","mainnavDropdownStyle"],"mappings":"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"}
@@ -77,7 +77,12 @@ function Le(e){return(t,l)=>{const{slot:i,selector:a}=e??{},o="slot"+(i?`[name=$
77
77
  * Copyright 2018 Google LLC
78
78
  * SPDX-License-Identifier: BSD-3-Clause
79
79
  */
80
- class extends Oe{constructor(e){if(super(e),e.type!==Ee||"class"!==e.name||e.strings?.length>2)throw new Error("`classMap()` can only be used in the `class` attribute and must be the only part in the attribute.")}render(e){return" "+Object.keys(e).filter(t=>e[t]).join(" ")+" "}update(e,[t]){if(void 0===this._previousClasses){this._previousClasses=new Set,void 0!==e.strings&&(this._staticClasses=new Set(e.strings.join(" ").split(/\s/).filter(e=>""!==e)));for(const e in t)t[e]&&!this._staticClasses?.has(e)&&this._previousClasses.add(e);return this.render(t)}const l=e.element.classList;for(const e of this._previousClasses)e in t||(l.remove(e),this._previousClasses.delete(e));for(const e in t){const i=!!t[e];i===this._previousClasses.has(e)||this._staticClasses?.has(e)||(i?(l.add(e),this._previousClasses.add(e)):(l.remove(e),this._previousClasses.delete(e)))}return te}});var Bl=Q`
80
+ class extends Oe{constructor(e){if(super(e),e.type!==Ee||"class"!==e.name||e.strings?.length>2)throw new Error("`classMap()` can only be used in the `class` attribute and must be the only part in the attribute.")}render(e){return" "+Object.keys(e).filter(t=>e[t]).join(" ")+" "}update(e,[t]){if(void 0===this._previousClasses){this._previousClasses=new Set,void 0!==e.strings&&(this._staticClasses=new Set(e.strings.join(" ").split(/\s/).filter(e=>""!==e)));for(const e in t)t[e]&&!this._staticClasses?.has(e)&&this._previousClasses.add(e);return this.render(t)}const l=e.element.classList;for(const e of this._previousClasses)e in t||(l.remove(e),this._previousClasses.delete(e));for(const e in t){const i=!!t[e];i===this._previousClasses.has(e)||this._staticClasses?.has(e)||(i?(l.add(e),this._previousClasses.add(e)):(l.remove(e),this._previousClasses.delete(e)))}return te}});
81
+ /**
82
+ * @license
83
+ * Copyright 2018 Google LLC
84
+ * SPDX-License-Identifier: BSD-3-Clause
85
+ */var Bl=Q`
81
86
  <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24">
82
87
  <path
83
88
  fill="currentColor"
@@ -2293,14 +2298,15 @@ class extends Oe{constructor(e){if(super(e),e.type!==Ee||"class"!==e.name||e.str
2293
2298
  clip-rule="evenodd"
2294
2299
  />
2295
2300
  </svg>
2296
- `};var Wl=n`:host{color:inherit;display:inline-flex;vertical-align:bottom}:host(.icon-left){margin-right:.25rem}:host(.icon-right){margin-left:.25rem}:host([size=xs]) svg{height:var(--sgds-icon-size-xs);width:var(--sgds-icon-size-xs)}:host([size=sm]) svg{height:var(--sgds-icon-size-sm);width:var(--sgds-icon-size-sm)}:host([size=md]) svg{height:var(--sgds-icon-size-md);width:var(--sgds-icon-size-md)}:host([size=xl]) svg{height:var(--sgds-icon-size-xl);width:var(--sgds-icon-size-xl)}:host([size="2-xl"]) svg{height:var(--sgds-icon-size-2-xl);width:var(--sgds-icon-size-2-xl)}:host([size="3-xl"]) svg{height:var(--sgds-icon-size-3-xl);width:var(--sgds-icon-size-3-xl)}svg{display:inline-block;height:var(--sgds-icon-size-lg);width:var(--sgds-icon-size-lg)}`;class Fl extends Se{constructor(){super(...arguments),this.size="lg"}_getIconByName(e){if(!e)return;const t=Ul[e];if(t)return t;console.warn(`Icon not found: ${e}`)}updated(){var e;const t=null===(e=this.shadowRoot)||void 0===e?void 0:e.querySelector("svg");t&&(this.ariaLabel?(t.removeAttribute("aria-hidden"),t.setAttribute("aria-label",this.ariaLabel)):(t.removeAttribute("aria-label"),t.setAttribute("aria-hidden","true")))}render(){const e=this._getIconByName(this.name);return e||le}}Fl.styles=[...Se.styles,Wl],e([He({type:String,reflect:!0})],Fl.prototype,"name",void 0),e([He({type:String,reflect:!0})],Fl.prototype,"size",void 0),e([He({type:String})],Fl.prototype,"ariaLabel",void 0);var ql,jl,Kl=n`:host([disabled]){cursor:not-allowed}.dropdown-item{align-items:center;background-color:var(--sgds-bg-transparent);clear:both;color:var(--sgds-color-default);cursor:pointer;display:flex;gap:var(--sgds-gap-sm);padding:var(--sgds-padding-sm) var(--sgds-padding-lg);text-align:inherit}.dropdown-item:hover{background-color:var(--sgds-bg-translucent-subtle)}.dropdown-item:focus,.dropdown-item:focus-visible{background-color:var(--sgds-bg-translucent-subtle)}.dropdown-item:focus-visible{outline:var(--sgds-outline-focus);outline-offset:var(--sgds-outline-offset-focus)}.dropdown-item.active{background-color:var(--sgds-bg-translucent-subtle);color:var(--sgds-primary-color-default);text-decoration:none}.dropdown-item.disabled,.dropdown-item:disabled{opacity:var(--sgds-opacity-40);pointer-events:none}::slotted(*){color:inherit!important;display:flex;gap:var(--sgds-gap-sm);text-decoration:none!important}::slotted(a),::slotted(sgds-checkbox){flex:1;margin:calc(var(--sgds-padding-sm)*-1) calc(var(--sgds-padding-lg)*-1);padding:var(--sgds-padding-sm) var(--sgds-padding-lg)}.dropdown-item.mainnav-dropdown-link{padding:var(--sgds-padding-none)}.dropdown-item.mainnav-dropdown-link ::slotted(*){box-sizing:border-box;margin:auto;max-width:var(--sgds-mainnav-max-width,1440px);padding:var(--sgds-padding-sm) var(--sgds-mainnav-mobile-padding-x)}@media screen and (min-width:1024px){.dropdown-item.mainnav-dropdown-link ::slotted(*){padding:var(--sgds-padding-sm) var(--sgds-mainnav-padding-x)}}`;class Jl extends Se{constructor(){super(...arguments),this.active=!1,this.disabled=!1}connectedCallback(){super.connectedCallback(),this.addEventListener("keydown",e=>{"Enter"===e.key&&this.anchor.length>0&&this.anchor[0].click()}),this.setAttribute("role","menuitem"),this.setAttribute("aria-disabled",`${this.disabled}`)}render(){return Q`
2301
+ `};var Wl=n`:host{color:inherit;display:inline-flex;vertical-align:bottom}:host(.icon-left){margin-right:.25rem}:host(.icon-right){margin-left:.25rem}:host([size=xs]) svg{height:var(--sgds-icon-size-xs);width:var(--sgds-icon-size-xs)}:host([size=sm]) svg{height:var(--sgds-icon-size-sm);width:var(--sgds-icon-size-sm)}:host([size=md]) svg{height:var(--sgds-icon-size-md);width:var(--sgds-icon-size-md)}:host([size=xl]) svg{height:var(--sgds-icon-size-xl);width:var(--sgds-icon-size-xl)}:host([size="2-xl"]) svg{height:var(--sgds-icon-size-2-xl);width:var(--sgds-icon-size-2-xl)}:host([size="3-xl"]) svg{height:var(--sgds-icon-size-3-xl);width:var(--sgds-icon-size-3-xl)}svg{display:inline-block;height:var(--sgds-icon-size-lg);width:var(--sgds-icon-size-lg)}`;class Fl extends Se{constructor(){super(...arguments),this.size="lg"}_getIconByName(e){if(!e)return;const t=Ul[e];if(t)return t;console.warn(`Icon not found: ${e}`)}updated(){var e;const t=null===(e=this.shadowRoot)||void 0===e?void 0:e.querySelector("svg");t&&(this.ariaLabel?(t.removeAttribute("aria-hidden"),t.setAttribute("aria-label",this.ariaLabel)):(t.removeAttribute("aria-label"),t.setAttribute("aria-hidden","true")))}render(){const e=this._getIconByName(this.name);return e||le}}Fl.styles=[...Se.styles,Wl],e([He({type:String,reflect:!0})],Fl.prototype,"name",void 0),e([He({type:String,reflect:!0})],Fl.prototype,"size",void 0),e([He({type:String})],Fl.prototype,"ariaLabel",void 0);var ql,jl,Kl=n`:host([disabled]){cursor:not-allowed}.dropdown-item{align-items:center;background-color:var(--sgds-bg-transparent);clear:both;color:var(--sgds-color-default);cursor:pointer;display:flex;gap:var(--sgds-gap-sm);padding:var(--sgds-padding-sm) var(--sgds-padding-lg);text-align:inherit}.dropdown-item:hover{background-color:var(--sgds-bg-translucent-subtle)}.dropdown-item:focus,.dropdown-item:focus-visible{background-color:var(--sgds-bg-translucent-subtle)}.dropdown-item:focus-visible{outline:var(--sgds-outline-focus);outline-offset:var(--sgds-outline-offset-focus)}.dropdown-item.active{background-color:var(--sgds-bg-translucent-subtle);color:var(--sgds-primary-color-default);text-decoration:none}.dropdown-item.disabled,.dropdown-item:disabled{opacity:var(--sgds-opacity-40);pointer-events:none}::slotted(*){color:inherit!important;display:flex;gap:var(--sgds-gap-sm);text-decoration:none!important}::slotted(a),::slotted(sgds-checkbox){flex:1;margin:calc(var(--sgds-padding-sm)*-1) calc(var(--sgds-padding-lg)*-1);padding:var(--sgds-padding-sm) var(--sgds-padding-lg)}.dropdown-item.mainnav-dropdown-link{padding:var(--sgds-padding-none)}.dropdown-item.mainnav-dropdown-link ::slotted(*){box-sizing:border-box;margin:auto;max-width:var(--sgds-mainnav-max-width,1440px);padding:var(--sgds-padding-sm) var(--sgds-mainnav-mobile-padding-x)}@media screen and (min-width:1024px){.dropdown-item.mainnav-dropdown-link ::slotted(*){padding:var(--sgds-padding-sm) var(--sgds-mainnav-padding-x)}}`;class Jl extends Se{constructor(){super(...arguments),this.active=!1,this.disabled=!1,this.ariaLabel=""}connectedCallback(){super.connectedCallback(),this.addEventListener("keydown",e=>{"Enter"===e.key&&this.anchor.length>0&&this.anchor[0].click()}),this.setAttribute("role","menuitem"),this.setAttribute("aria-disabled",`${this.disabled}`)}render(){return Q`
2297
2302
  <div
2298
2303
  class="dropdown-item ${Hl({disabled:this.disabled,active:this.active})}"
2299
2304
  tabindex=${this.disabled?"-1":"0"}
2305
+ aria-label=${e=this.ariaLabel||void 0,e??le}
2300
2306
  >
2301
2307
  <slot></slot>
2302
2308
  </div>
2303
- `}}Jl.styles=[_l,Kl],Jl.dependencies={"sgds-icon":Fl},e([Le({flatten:!0})],Jl.prototype,"anchor",void 0),e([He({type:Boolean})],Jl.prototype,"active",void 0),e([He({type:Boolean,reflect:!0})],Jl.prototype,"disabled",void 0);class Yl extends Se{constructor(){super(...arguments),this.size="md"}render(){return Q`
2309
+ `;var e}}Jl.styles=[_l,Kl],Jl.dependencies={"sgds-icon":Fl},e([Le({flatten:!0})],Jl.prototype,"anchor",void 0),e([He({type:Boolean})],Jl.prototype,"active",void 0),e([He({type:Boolean,reflect:!0})],Jl.prototype,"disabled",void 0),e([He({type:String})],Jl.prototype,"ariaLabel",void 0);class Yl extends Se{constructor(){super(...arguments),this.size="md"}render(){return Q`
2304
2310
  <sgds-dropdown>
2305
2311
  <button slot="toggler" class="overflow-btn" aria-label="More options">
2306
2312
  <sgds-icon name="three-dots" size=${this.size}></sgds-icon>