@govtechsg/sgds-web-component 3.21.2-rc.5 → 3.23.0-rc.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.
Files changed (59) hide show
  1. package/base/select-element.d.ts +2 -0
  2. package/base/select-element.js +5 -0
  3. package/base/select-element.js.map +1 -1
  4. package/components/Breadcrumb/index.umd.min.js +1 -1
  5. package/components/Breadcrumb/index.umd.min.js.map +1 -1
  6. package/components/ComboBox/index.umd.min.js +4 -2
  7. package/components/ComboBox/index.umd.min.js.map +1 -1
  8. package/components/ComboBox/sgds-combo-box.js +2 -0
  9. package/components/ComboBox/sgds-combo-box.js.map +1 -1
  10. package/components/Datepicker/index.umd.min.js +3 -2
  11. package/components/Datepicker/index.umd.min.js.map +1 -1
  12. package/components/Footer/index.umd.min.js +1 -1
  13. package/components/Footer/index.umd.min.js.map +1 -1
  14. package/components/Input/index.umd.min.js +3 -2
  15. package/components/Input/index.umd.min.js.map +1 -1
  16. package/components/Input/sgds-input.d.ts +2 -0
  17. package/components/Input/sgds-input.js +6 -0
  18. package/components/Input/sgds-input.js.map +1 -1
  19. package/components/Link/index.umd.min.js +1 -1
  20. package/components/Link/index.umd.min.js.map +1 -1
  21. package/components/Link/link.js +1 -1
  22. package/components/QuantityToggle/index.umd.min.js +3 -2
  23. package/components/QuantityToggle/index.umd.min.js.map +1 -1
  24. package/components/Select/index.umd.min.js +2 -2
  25. package/components/Select/index.umd.min.js.map +1 -1
  26. package/components/Sidenav/index.umd.min.js +5 -4
  27. package/components/Sidenav/index.umd.min.js.map +1 -1
  28. package/components/Sidenav/sgds-sidenav-item.d.ts +4 -0
  29. package/components/Sidenav/sgds-sidenav-item.js +5 -0
  30. package/components/Sidenav/sgds-sidenav-item.js.map +1 -1
  31. package/components/index.umd.min.js +10 -6
  32. package/components/index.umd.min.js.map +1 -1
  33. package/css/fouc.css +2 -2
  34. package/custom-elements.json +1145 -1032
  35. package/index.umd.min.js +10 -6
  36. package/index.umd.min.js.map +1 -1
  37. package/package.json +1 -1
  38. package/react/base/select-element.cjs.js +5 -0
  39. package/react/base/select-element.cjs.js.map +1 -1
  40. package/react/base/select-element.js +5 -0
  41. package/react/base/select-element.js.map +1 -1
  42. package/react/components/ComboBox/sgds-combo-box.cjs.js +2 -0
  43. package/react/components/ComboBox/sgds-combo-box.cjs.js.map +1 -1
  44. package/react/components/ComboBox/sgds-combo-box.js +2 -0
  45. package/react/components/ComboBox/sgds-combo-box.js.map +1 -1
  46. package/react/components/Input/sgds-input.cjs.js +6 -0
  47. package/react/components/Input/sgds-input.cjs.js.map +1 -1
  48. package/react/components/Input/sgds-input.js +6 -0
  49. package/react/components/Input/sgds-input.js.map +1 -1
  50. package/react/components/Link/link.cjs.js +1 -1
  51. package/react/components/Link/link.js +1 -1
  52. package/react/components/Sidenav/sgds-sidenav-item.cjs.js +5 -0
  53. package/react/components/Sidenav/sgds-sidenav-item.cjs.js.map +1 -1
  54. package/react/components/Sidenav/sgds-sidenav-item.js +5 -0
  55. package/react/components/Sidenav/sgds-sidenav-item.js.map +1 -1
  56. package/react/index.cjs.js +10 -10
  57. package/react/index.d.ts +2 -2
  58. package/react/index.js +2 -2
  59. package/types/react.d.ts +52 -44
@@ -7,6 +7,7 @@ var tslib = require('tslib');
7
7
  var lit = require('lit');
8
8
  var decorators_js = require('lit/decorators.js');
9
9
  var classMap_js = require('lit/directives/class-map.js');
10
+ var ifDefined_js = require('lit/directives/if-defined.js');
10
11
  var sgdsElement = require('../../base/sgds-element.cjs.js');
11
12
  var animate = require('../../utils/animate.cjs.js');
12
13
  var animationRegistry = require('../../utils/animation-registry.cjs.js');
@@ -203,6 +204,7 @@ class SgdsSidenavItem extends sgdsElement["default"] {
203
204
  aria-expanded=${this.active}
204
205
  aria-controls=${this._collapseId}
205
206
  aria-current=${this.active}
207
+ aria-label=${ifDefined_js.ifDefined(this.ariaLabel)}
206
208
  id=${this._buttonId}
207
209
  ?disabled=${this.disabled}
208
210
  aria-disabled=${this.disabled ? "true" : "false"}
@@ -242,6 +244,9 @@ tslib.__decorate([
242
244
  tslib.__decorate([
243
245
  decorators_js.property({ type: Boolean, reflect: true })
244
246
  ], SgdsSidenavItem.prototype, "disabled", void 0);
247
+ tslib.__decorate([
248
+ decorators_js.property({ type: String })
249
+ ], SgdsSidenavItem.prototype, "ariaLabel", void 0);
245
250
  tslib.__decorate([
246
251
  decorators_js.state()
247
252
  ], SgdsSidenavItem.prototype, "isLink", void 0);
@@ -1 +1 @@
1
- {"version":3,"file":"sgds-sidenav-item.cjs.js","sources":["../../../../src/components/Sidenav/sgds-sidenav-item.ts"],"sourcesContent":["import { html, PropertyValueMap } from \"lit\";\nimport { property, query, queryAssignedElements, state } from \"lit/decorators.js\";\nimport { classMap } from \"lit/directives/class-map.js\";\nimport SgdsElement from \"../../base/sgds-element\";\nimport { animateTo, shimKeyframesHeightAuto, stopAnimations } from \"../../utils/animate\";\nimport { getAnimation, setDefaultAnimation } from \"../../utils/animation-registry\";\nimport { waitForEvent } from \"../../utils/event\";\nimport genId from \"../../utils/generateId\";\nimport { watch } from \"../../utils/watch\";\nimport SgdsIcon from \"../Icon/sgds-icon\";\nimport SgdsSidenavLink from \"./sgds-sidenav-link\";\nimport sidenavItemStyle from \"./sidenav-item.css\";\n\n/**\n * @description SgdsSidenavItem can function as either a menu type or a link type. Its type is determined by the children slotted into the default slot.\n * A single anchor tag element passed into the default slot converts SgdsSidenavItem to a link type while passing in SgdsSidenavLink components into the default slots makes it a menu type.\n *\n * @event sgds-toggle - Emitted when the sidenav item's button is clicked. Only applicable to menu type.\n * @event sgds-show - Emitted on show. Only applicable to menu type.\n * @event sgds-after-show - Emitted on show after animation has completed. Only applicable to menu type.\n * @event sgds-hide - Emitted on hide. Only applicable to menu type.\n * @event sgds-after-hide - Emitted on hide after animation has completed. Only applicable to menu type.\n *\n * @slot default - default slot for SgdsSidenavLink and second level SgdsSidenavItem. For link type SgdsSidenavItem, pass in a single anchor tag to the default slot. For menu type, pass in SgdsSidenavLink to the default slot\n * @slot title - title slot for the content of SgdsSidenavItem's menu button element. Only applicable to menu type\n * @slot icon - icon slot for the content of SgdsSidenavItem's menu button element. Only applicable to menu type\n * @slot caret-icon - The slot for the caret arrow icon of SgdsSidenavItem. Only applicable to menu type.\n */\n\nexport class SgdsSidenavItem extends SgdsElement {\n static styles = [...SgdsElement.styles, sidenavItemStyle];\n /** @internal */\n static dependencies = {\n \"sgds-icon\": SgdsIcon\n };\n\n @query(\".sidenav-body\") body: HTMLElement;\n /** @internal */\n @query(\".sidenav-btn\") header: HTMLElement;\n /**\n * when true, toggles the sidenav-item to open on first load and set the active stylings.\n */\n @property({ type: Boolean, reflect: true })\n active = false;\n\n /**\n * Disables the SgdsSidenavItem\n */\n @property({ type: Boolean, reflect: true })\n disabled = false;\n\n @state() private isLink = false;\n\n /**\n * @internal Forwards to id attribute of div.collapse and aria-controls attribute of button in SgdsSidenavItem. By default, SgdsSidenavItem auto-generates a unique id. Override the default id by specifiying your own\n */\n\n private _collapseId: string = genId(\"sidenav\", \"collapse\");\n\n /**\n * @internal Forwards to id attribute of button and aria-labelledby attribute of ul.sidenav-list in SgdsSidenavItem. By default, SgdsSidenavItem auto-generates a unique id. Override the default id by specifiying your own\n */\n private _buttonId: string = genId(\"sidenav\", \"button\");\n\n private _levelId = genId(\"sidenav\", \"this\");\n private _firstLevelId = \"first-level-\" + this._levelId;\n private _secondLevelId = \"second-level-\" + this._levelId;\n private _thirdLevelId = \"third-level-\" + this._levelId;\n\n /** @internal */\n private index = \"-1\";\n\n private _onToggle() {\n this.emit(\"sgds-toggle\", { detail: { index: this.index } });\n }\n\n /** Shows the sidenav item. Only applicable to sgds-sidenav-item that are of menu types */\n public async show() {\n if (this.isLink) return;\n if (this.active) {\n return;\n }\n\n this.active = true;\n return waitForEvent(this, \"sgds-after-show\");\n }\n\n /** Hide the sidenav item. Only applicable to sgds-sidenav-item that are of menu types */\n public async hide() {\n if (this.isLink) return;\n if (!this.active) {\n return;\n }\n this.active = false;\n return waitForEvent(this, \"sgds-after-hide\");\n }\n\n connectedCallback(): void {\n super.connectedCallback();\n this.classList.add(this._firstLevelId);\n }\n firstUpdated(changedProperties: PropertyValueMap<this>) {\n super.firstUpdated(changedProperties);\n\n if (!this.isLink) {\n this.body.hidden = !this.active;\n this.body.style.height = this.active ? \"auto\" : \"0\";\n }\n\n this._handleOpenMenu();\n }\n\n /**\n * Sets active to true to open menu ,\n * evaluating based on whether any of the child in any level is active\n * If at least 1 child is active, parent item should be active\n */\n private _handleOpenMenu() {\n if (!this.active) {\n this.active = this._items.some((i: SgdsSidenavItem | SgdsSidenavLink) => i.active);\n }\n }\n private _handleSummaryClick() {\n if (this.active) {\n this.hide();\n } else {\n this.show();\n }\n\n this._onToggle();\n this.header.focus();\n }\n private _handleSummaryKeyDown(event: KeyboardEvent) {\n if (event.key === \"Enter\" || event.key === \" \") {\n event.preventDefault();\n\n if (this.active) {\n this.hide();\n } else {\n this.show();\n }\n }\n\n if (event.key === \"ArrowUp\" || event.key === \"ArrowLeft\") {\n event.preventDefault();\n this.hide();\n }\n\n if (event.key === \"ArrowDown\" || event.key === \"ArrowRight\") {\n event.preventDefault();\n this.show();\n }\n }\n\n @watch(\"active\", { waitUntilFirstUpdate: true })\n async _handleOpenChange() {\n if (this.isLink) return;\n if (this.active) {\n // Show\n const sgdsShow = this.emit(\"sgds-show\", { cancelable: true });\n if (sgdsShow.defaultPrevented) {\n this.active = false;\n return;\n }\n\n await stopAnimations(this.body);\n this.body.hidden = false;\n\n const { keyframes, options } = getAnimation(this, \"sidenav.show\");\n await animateTo(this.body, shimKeyframesHeightAuto(keyframes, this.body.scrollHeight), options);\n this.body.style.height = \"auto\";\n\n this.emit(\"sgds-after-show\");\n } else {\n // Hide\n const sgdsHide = this.emit(\"sgds-hide\", { cancelable: true });\n if (sgdsHide.defaultPrevented) {\n this.active = true;\n return;\n }\n\n await stopAnimations(this.body);\n\n const { keyframes, options } = getAnimation(this, \"sidenav.hide\");\n await animateTo(this.body, shimKeyframesHeightAuto(keyframes, this.body.scrollHeight), options);\n this.body.hidden = true;\n this.body.style.height = \"auto\";\n\n this.emit(\"sgds-after-hide\");\n }\n }\n @queryAssignedElements() private _items: SgdsSidenavLink[];\n private _handleSlotChange(e: Event) {\n const anchorItems = (e.target as HTMLSlotElement)\n .assignedElements({ flatten: true })\n .filter(item => item.tagName.toLowerCase() === \"a\");\n\n if (anchorItems.length > 1) {\n return console.error(\"More than one anchor tag is added to sgds-sidenav-item\");\n } else if (anchorItems.length === 1) {\n const anchor = anchorItems[0] as HTMLAnchorElement;\n this.disabled && anchor.setAttribute(\"tabindex\", \"-1\");\n this.active && anchor.setAttribute(\"aria-current\", \"true\");\n return (this.isLink = true);\n }\n\n const sideNavItems = (e.target as HTMLSlotElement)\n .assignedElements({ flatten: true })\n .filter(item => item.tagName.toLowerCase() === \"sgds-sidenav-item\");\n\n /** All sgds-sidenav-item in this slot is a 2nd level item */\n sideNavItems.forEach(i => {\n const firstLevelId = Array.from(i.classList).filter(c => c.startsWith(\"first-level\"))[0];\n i.classList.replace(firstLevelId, this._secondLevelId);\n });\n /** All second level sgds-sidenav-item should only have third level sgds-sidenav-links */\n if (Array.from(this.classList).some(c => c.startsWith(\"second-level\"))) {\n this._items.forEach((i: SgdsSidenavLink) => i.classList.add(this._thirdLevelId));\n }\n\n this._handleOpenMenu();\n }\n\n render() {\n const withMenuTemplate = html`\n <button\n @click=${this._handleSummaryClick}\n @keydown=${this._handleSummaryKeyDown}\n class=\"sidenav-btn ${classMap({\n disabled: this.disabled,\n active: this.active\n })}\"\n aria-expanded=${this.active}\n aria-controls=${this._collapseId}\n aria-current=${this.active}\n id=${this._buttonId}\n ?disabled=${this.disabled}\n aria-disabled=${this.disabled ? \"true\" : \"false\"}\n >\n <slot name=\"icon\"></slot>\n <slot name=\"title\"></slot>\n <slot name=\"caret-icon\">\n <sgds-icon name=\"chevron-down\" size=\"lg\" class=\"caret-icon\"></sgds-icon>\n </slot>\n </button>\n <div class=\"sidenav-body\" id=\"${this._collapseId}\">\n <div class=\"sidenav-list\" aria-labelledby=\"${this._buttonId}\">\n <slot class=\"default\" @slotchange=${this._handleSlotChange}></slot>\n </div>\n </div>\n `;\n\n const noMenuTemplate = html` <slot @slotchange=${this._handleSlotChange} class=\"no-menu-default\"></slot> `;\n return html`\n <div class=\"sidenav-item\" aria-haspopup=\"${!this.isLink}\">${this.isLink ? noMenuTemplate : withMenuTemplate}</div>\n `;\n }\n}\nsetDefaultAnimation(\"sidenav.show\", {\n keyframes: [\n { height: \"0\", opacity: \"0\" },\n { height: \"auto\", opacity: \"1\" }\n ],\n options: { duration: 200, easing: \"ease-in-out\" }\n});\n\nsetDefaultAnimation(\"sidenav.hide\", {\n keyframes: [\n { height: \"auto\", opacity: \"1\" },\n { height: \"0\", opacity: \"0\" }\n ],\n options: { duration: 200, easing: \"ease-in-out\" }\n});\nexport default SgdsSidenavItem;\n"],"names":["SgdsElement","genId","waitForEvent","stopAnimations","getAnimation","animateTo","shimKeyframesHeightAuto","html","classMap","sidenavItemStyle","SgdsIcon","__decorate","query","property","state","watch","queryAssignedElements","setDefaultAnimation"],"mappings":"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"}
1
+ {"version":3,"file":"sgds-sidenav-item.cjs.js","sources":["../../../../src/components/Sidenav/sgds-sidenav-item.ts"],"sourcesContent":["import { html, PropertyValueMap } from \"lit\";\nimport { property, query, queryAssignedElements, state } from \"lit/decorators.js\";\nimport { classMap } from \"lit/directives/class-map.js\";\nimport { ifDefined } from \"lit/directives/if-defined.js\";\nimport SgdsElement from \"../../base/sgds-element\";\nimport { animateTo, shimKeyframesHeightAuto, stopAnimations } from \"../../utils/animate\";\nimport { getAnimation, setDefaultAnimation } from \"../../utils/animation-registry\";\nimport { waitForEvent } from \"../../utils/event\";\nimport genId from \"../../utils/generateId\";\nimport { watch } from \"../../utils/watch\";\nimport SgdsIcon from \"../Icon/sgds-icon\";\nimport SgdsSidenavLink from \"./sgds-sidenav-link\";\nimport sidenavItemStyle from \"./sidenav-item.css\";\n\n/**\n * @description SgdsSidenavItem can function as either a menu type or a link type. Its type is determined by the children slotted into the default slot.\n * A single anchor tag element passed into the default slot converts SgdsSidenavItem to a link type while passing in SgdsSidenavLink components into the default slots makes it a menu type.\n *\n * @event sgds-toggle - Emitted when the sidenav item's button is clicked. Only applicable to menu type.\n * @event sgds-show - Emitted on show. Only applicable to menu type.\n * @event sgds-after-show - Emitted on show after animation has completed. Only applicable to menu type.\n * @event sgds-hide - Emitted on hide. Only applicable to menu type.\n * @event sgds-after-hide - Emitted on hide after animation has completed. Only applicable to menu type.\n *\n * @slot default - default slot for SgdsSidenavLink and second level SgdsSidenavItem. For link type SgdsSidenavItem, pass in a single anchor tag to the default slot. For menu type, pass in SgdsSidenavLink to the default slot\n * @slot title - title slot for the content of SgdsSidenavItem's menu button element. Only applicable to menu type\n * @slot icon - icon slot for the content of SgdsSidenavItem's menu button element. Only applicable to menu type\n * @slot caret-icon - The slot for the caret arrow icon of SgdsSidenavItem. Only applicable to menu type.\n */\n\nexport class SgdsSidenavItem extends SgdsElement {\n static styles = [...SgdsElement.styles, sidenavItemStyle];\n /** @internal */\n static dependencies = {\n \"sgds-icon\": SgdsIcon\n };\n\n @query(\".sidenav-body\") body: HTMLElement;\n /** @internal */\n @query(\".sidenav-btn\") header: HTMLElement;\n /**\n * when true, toggles the sidenav-item to open on first load and set the active stylings.\n */\n @property({ type: Boolean, reflect: true })\n active = false;\n\n /**\n * Disables the SgdsSidenavItem\n */\n @property({ type: Boolean, reflect: true })\n disabled = false;\n\n /**\n * Accessible label for the sidenav item's menu button. Forwarded to the button's aria-label attribute.\n */\n @property({ type: String })\n ariaLabel: string;\n\n @state() private isLink = false;\n\n /**\n * @internal Forwards to id attribute of div.collapse and aria-controls attribute of button in SgdsSidenavItem. By default, SgdsSidenavItem auto-generates a unique id. Override the default id by specifiying your own\n */\n\n private _collapseId: string = genId(\"sidenav\", \"collapse\");\n\n /**\n * @internal Forwards to id attribute of button and aria-labelledby attribute of ul.sidenav-list in SgdsSidenavItem. By default, SgdsSidenavItem auto-generates a unique id. Override the default id by specifiying your own\n */\n private _buttonId: string = genId(\"sidenav\", \"button\");\n\n private _levelId = genId(\"sidenav\", \"this\");\n private _firstLevelId = \"first-level-\" + this._levelId;\n private _secondLevelId = \"second-level-\" + this._levelId;\n private _thirdLevelId = \"third-level-\" + this._levelId;\n\n /** @internal */\n private index = \"-1\";\n\n private _onToggle() {\n this.emit(\"sgds-toggle\", { detail: { index: this.index } });\n }\n\n /** Shows the sidenav item. Only applicable to sgds-sidenav-item that are of menu types */\n public async show() {\n if (this.isLink) return;\n if (this.active) {\n return;\n }\n\n this.active = true;\n return waitForEvent(this, \"sgds-after-show\");\n }\n\n /** Hide the sidenav item. Only applicable to sgds-sidenav-item that are of menu types */\n public async hide() {\n if (this.isLink) return;\n if (!this.active) {\n return;\n }\n this.active = false;\n return waitForEvent(this, \"sgds-after-hide\");\n }\n\n connectedCallback(): void {\n super.connectedCallback();\n this.classList.add(this._firstLevelId);\n }\n firstUpdated(changedProperties: PropertyValueMap<this>) {\n super.firstUpdated(changedProperties);\n\n if (!this.isLink) {\n this.body.hidden = !this.active;\n this.body.style.height = this.active ? \"auto\" : \"0\";\n }\n\n this._handleOpenMenu();\n }\n\n /**\n * Sets active to true to open menu ,\n * evaluating based on whether any of the child in any level is active\n * If at least 1 child is active, parent item should be active\n */\n private _handleOpenMenu() {\n if (!this.active) {\n this.active = this._items.some((i: SgdsSidenavItem | SgdsSidenavLink) => i.active);\n }\n }\n private _handleSummaryClick() {\n if (this.active) {\n this.hide();\n } else {\n this.show();\n }\n\n this._onToggle();\n this.header.focus();\n }\n private _handleSummaryKeyDown(event: KeyboardEvent) {\n if (event.key === \"Enter\" || event.key === \" \") {\n event.preventDefault();\n\n if (this.active) {\n this.hide();\n } else {\n this.show();\n }\n }\n\n if (event.key === \"ArrowUp\" || event.key === \"ArrowLeft\") {\n event.preventDefault();\n this.hide();\n }\n\n if (event.key === \"ArrowDown\" || event.key === \"ArrowRight\") {\n event.preventDefault();\n this.show();\n }\n }\n\n @watch(\"active\", { waitUntilFirstUpdate: true })\n async _handleOpenChange() {\n if (this.isLink) return;\n if (this.active) {\n // Show\n const sgdsShow = this.emit(\"sgds-show\", { cancelable: true });\n if (sgdsShow.defaultPrevented) {\n this.active = false;\n return;\n }\n\n await stopAnimations(this.body);\n this.body.hidden = false;\n\n const { keyframes, options } = getAnimation(this, \"sidenav.show\");\n await animateTo(this.body, shimKeyframesHeightAuto(keyframes, this.body.scrollHeight), options);\n this.body.style.height = \"auto\";\n\n this.emit(\"sgds-after-show\");\n } else {\n // Hide\n const sgdsHide = this.emit(\"sgds-hide\", { cancelable: true });\n if (sgdsHide.defaultPrevented) {\n this.active = true;\n return;\n }\n\n await stopAnimations(this.body);\n\n const { keyframes, options } = getAnimation(this, \"sidenav.hide\");\n await animateTo(this.body, shimKeyframesHeightAuto(keyframes, this.body.scrollHeight), options);\n this.body.hidden = true;\n this.body.style.height = \"auto\";\n\n this.emit(\"sgds-after-hide\");\n }\n }\n @queryAssignedElements() private _items: SgdsSidenavLink[];\n private _handleSlotChange(e: Event) {\n const anchorItems = (e.target as HTMLSlotElement)\n .assignedElements({ flatten: true })\n .filter(item => item.tagName.toLowerCase() === \"a\");\n\n if (anchorItems.length > 1) {\n return console.error(\"More than one anchor tag is added to sgds-sidenav-item\");\n } else if (anchorItems.length === 1) {\n const anchor = anchorItems[0] as HTMLAnchorElement;\n this.disabled && anchor.setAttribute(\"tabindex\", \"-1\");\n this.active && anchor.setAttribute(\"aria-current\", \"true\");\n return (this.isLink = true);\n }\n\n const sideNavItems = (e.target as HTMLSlotElement)\n .assignedElements({ flatten: true })\n .filter(item => item.tagName.toLowerCase() === \"sgds-sidenav-item\");\n\n /** All sgds-sidenav-item in this slot is a 2nd level item */\n sideNavItems.forEach(i => {\n const firstLevelId = Array.from(i.classList).filter(c => c.startsWith(\"first-level\"))[0];\n i.classList.replace(firstLevelId, this._secondLevelId);\n });\n /** All second level sgds-sidenav-item should only have third level sgds-sidenav-links */\n if (Array.from(this.classList).some(c => c.startsWith(\"second-level\"))) {\n this._items.forEach((i: SgdsSidenavLink) => i.classList.add(this._thirdLevelId));\n }\n\n this._handleOpenMenu();\n }\n\n render() {\n const withMenuTemplate = html`\n <button\n @click=${this._handleSummaryClick}\n @keydown=${this._handleSummaryKeyDown}\n class=\"sidenav-btn ${classMap({\n disabled: this.disabled,\n active: this.active\n })}\"\n aria-expanded=${this.active}\n aria-controls=${this._collapseId}\n aria-current=${this.active}\n aria-label=${ifDefined(this.ariaLabel)}\n id=${this._buttonId}\n ?disabled=${this.disabled}\n aria-disabled=${this.disabled ? \"true\" : \"false\"}\n >\n <slot name=\"icon\"></slot>\n <slot name=\"title\"></slot>\n <slot name=\"caret-icon\">\n <sgds-icon name=\"chevron-down\" size=\"lg\" class=\"caret-icon\"></sgds-icon>\n </slot>\n </button>\n <div class=\"sidenav-body\" id=\"${this._collapseId}\">\n <div class=\"sidenav-list\" aria-labelledby=\"${this._buttonId}\">\n <slot class=\"default\" @slotchange=${this._handleSlotChange}></slot>\n </div>\n </div>\n `;\n\n const noMenuTemplate = html` <slot @slotchange=${this._handleSlotChange} class=\"no-menu-default\"></slot> `;\n return html`\n <div class=\"sidenav-item\" aria-haspopup=\"${!this.isLink}\">${this.isLink ? noMenuTemplate : withMenuTemplate}</div>\n `;\n }\n}\nsetDefaultAnimation(\"sidenav.show\", {\n keyframes: [\n { height: \"0\", opacity: \"0\" },\n { height: \"auto\", opacity: \"1\" }\n ],\n options: { duration: 200, easing: \"ease-in-out\" }\n});\n\nsetDefaultAnimation(\"sidenav.hide\", {\n keyframes: [\n { height: \"auto\", opacity: \"1\" },\n { height: \"0\", opacity: \"0\" }\n ],\n options: { duration: 200, easing: \"ease-in-out\" }\n});\nexport default SgdsSidenavItem;\n"],"names":["SgdsElement","genId","waitForEvent","stopAnimations","getAnimation","animateTo","shimKeyframesHeightAuto","html","classMap","ifDefined","sidenavItemStyle","SgdsIcon","__decorate","query","property","state","watch","queryAssignedElements","setDefaultAnimation"],"mappings":"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"}
@@ -3,6 +3,7 @@ import { __decorate } from 'tslib';
3
3
  import { html } from 'lit';
4
4
  import { query, property, state, 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 SgdsElement from '../../base/sgds-element.js';
7
8
  import { stopAnimations, animateTo, shimKeyframesHeightAuto } from '../../utils/animate.js';
8
9
  import { setDefaultAnimation, getAnimation } from '../../utils/animation-registry.js';
@@ -199,6 +200,7 @@ class SgdsSidenavItem extends SgdsElement {
199
200
  aria-expanded=${this.active}
200
201
  aria-controls=${this._collapseId}
201
202
  aria-current=${this.active}
203
+ aria-label=${ifDefined(this.ariaLabel)}
202
204
  id=${this._buttonId}
203
205
  ?disabled=${this.disabled}
204
206
  aria-disabled=${this.disabled ? "true" : "false"}
@@ -238,6 +240,9 @@ __decorate([
238
240
  __decorate([
239
241
  property({ type: Boolean, reflect: true })
240
242
  ], SgdsSidenavItem.prototype, "disabled", void 0);
243
+ __decorate([
244
+ property({ type: String })
245
+ ], SgdsSidenavItem.prototype, "ariaLabel", void 0);
241
246
  __decorate([
242
247
  state()
243
248
  ], SgdsSidenavItem.prototype, "isLink", void 0);
@@ -1 +1 @@
1
- {"version":3,"file":"sgds-sidenav-item.js","sources":["../../../../src/components/Sidenav/sgds-sidenav-item.ts"],"sourcesContent":["import { html, PropertyValueMap } from \"lit\";\nimport { property, query, queryAssignedElements, state } from \"lit/decorators.js\";\nimport { classMap } from \"lit/directives/class-map.js\";\nimport SgdsElement from \"../../base/sgds-element\";\nimport { animateTo, shimKeyframesHeightAuto, stopAnimations } from \"../../utils/animate\";\nimport { getAnimation, setDefaultAnimation } from \"../../utils/animation-registry\";\nimport { waitForEvent } from \"../../utils/event\";\nimport genId from \"../../utils/generateId\";\nimport { watch } from \"../../utils/watch\";\nimport SgdsIcon from \"../Icon/sgds-icon\";\nimport SgdsSidenavLink from \"./sgds-sidenav-link\";\nimport sidenavItemStyle from \"./sidenav-item.css\";\n\n/**\n * @description SgdsSidenavItem can function as either a menu type or a link type. Its type is determined by the children slotted into the default slot.\n * A single anchor tag element passed into the default slot converts SgdsSidenavItem to a link type while passing in SgdsSidenavLink components into the default slots makes it a menu type.\n *\n * @event sgds-toggle - Emitted when the sidenav item's button is clicked. Only applicable to menu type.\n * @event sgds-show - Emitted on show. Only applicable to menu type.\n * @event sgds-after-show - Emitted on show after animation has completed. Only applicable to menu type.\n * @event sgds-hide - Emitted on hide. Only applicable to menu type.\n * @event sgds-after-hide - Emitted on hide after animation has completed. Only applicable to menu type.\n *\n * @slot default - default slot for SgdsSidenavLink and second level SgdsSidenavItem. For link type SgdsSidenavItem, pass in a single anchor tag to the default slot. For menu type, pass in SgdsSidenavLink to the default slot\n * @slot title - title slot for the content of SgdsSidenavItem's menu button element. Only applicable to menu type\n * @slot icon - icon slot for the content of SgdsSidenavItem's menu button element. Only applicable to menu type\n * @slot caret-icon - The slot for the caret arrow icon of SgdsSidenavItem. Only applicable to menu type.\n */\n\nexport class SgdsSidenavItem extends SgdsElement {\n static styles = [...SgdsElement.styles, sidenavItemStyle];\n /** @internal */\n static dependencies = {\n \"sgds-icon\": SgdsIcon\n };\n\n @query(\".sidenav-body\") body: HTMLElement;\n /** @internal */\n @query(\".sidenav-btn\") header: HTMLElement;\n /**\n * when true, toggles the sidenav-item to open on first load and set the active stylings.\n */\n @property({ type: Boolean, reflect: true })\n active = false;\n\n /**\n * Disables the SgdsSidenavItem\n */\n @property({ type: Boolean, reflect: true })\n disabled = false;\n\n @state() private isLink = false;\n\n /**\n * @internal Forwards to id attribute of div.collapse and aria-controls attribute of button in SgdsSidenavItem. By default, SgdsSidenavItem auto-generates a unique id. Override the default id by specifiying your own\n */\n\n private _collapseId: string = genId(\"sidenav\", \"collapse\");\n\n /**\n * @internal Forwards to id attribute of button and aria-labelledby attribute of ul.sidenav-list in SgdsSidenavItem. By default, SgdsSidenavItem auto-generates a unique id. Override the default id by specifiying your own\n */\n private _buttonId: string = genId(\"sidenav\", \"button\");\n\n private _levelId = genId(\"sidenav\", \"this\");\n private _firstLevelId = \"first-level-\" + this._levelId;\n private _secondLevelId = \"second-level-\" + this._levelId;\n private _thirdLevelId = \"third-level-\" + this._levelId;\n\n /** @internal */\n private index = \"-1\";\n\n private _onToggle() {\n this.emit(\"sgds-toggle\", { detail: { index: this.index } });\n }\n\n /** Shows the sidenav item. Only applicable to sgds-sidenav-item that are of menu types */\n public async show() {\n if (this.isLink) return;\n if (this.active) {\n return;\n }\n\n this.active = true;\n return waitForEvent(this, \"sgds-after-show\");\n }\n\n /** Hide the sidenav item. Only applicable to sgds-sidenav-item that are of menu types */\n public async hide() {\n if (this.isLink) return;\n if (!this.active) {\n return;\n }\n this.active = false;\n return waitForEvent(this, \"sgds-after-hide\");\n }\n\n connectedCallback(): void {\n super.connectedCallback();\n this.classList.add(this._firstLevelId);\n }\n firstUpdated(changedProperties: PropertyValueMap<this>) {\n super.firstUpdated(changedProperties);\n\n if (!this.isLink) {\n this.body.hidden = !this.active;\n this.body.style.height = this.active ? \"auto\" : \"0\";\n }\n\n this._handleOpenMenu();\n }\n\n /**\n * Sets active to true to open menu ,\n * evaluating based on whether any of the child in any level is active\n * If at least 1 child is active, parent item should be active\n */\n private _handleOpenMenu() {\n if (!this.active) {\n this.active = this._items.some((i: SgdsSidenavItem | SgdsSidenavLink) => i.active);\n }\n }\n private _handleSummaryClick() {\n if (this.active) {\n this.hide();\n } else {\n this.show();\n }\n\n this._onToggle();\n this.header.focus();\n }\n private _handleSummaryKeyDown(event: KeyboardEvent) {\n if (event.key === \"Enter\" || event.key === \" \") {\n event.preventDefault();\n\n if (this.active) {\n this.hide();\n } else {\n this.show();\n }\n }\n\n if (event.key === \"ArrowUp\" || event.key === \"ArrowLeft\") {\n event.preventDefault();\n this.hide();\n }\n\n if (event.key === \"ArrowDown\" || event.key === \"ArrowRight\") {\n event.preventDefault();\n this.show();\n }\n }\n\n @watch(\"active\", { waitUntilFirstUpdate: true })\n async _handleOpenChange() {\n if (this.isLink) return;\n if (this.active) {\n // Show\n const sgdsShow = this.emit(\"sgds-show\", { cancelable: true });\n if (sgdsShow.defaultPrevented) {\n this.active = false;\n return;\n }\n\n await stopAnimations(this.body);\n this.body.hidden = false;\n\n const { keyframes, options } = getAnimation(this, \"sidenav.show\");\n await animateTo(this.body, shimKeyframesHeightAuto(keyframes, this.body.scrollHeight), options);\n this.body.style.height = \"auto\";\n\n this.emit(\"sgds-after-show\");\n } else {\n // Hide\n const sgdsHide = this.emit(\"sgds-hide\", { cancelable: true });\n if (sgdsHide.defaultPrevented) {\n this.active = true;\n return;\n }\n\n await stopAnimations(this.body);\n\n const { keyframes, options } = getAnimation(this, \"sidenav.hide\");\n await animateTo(this.body, shimKeyframesHeightAuto(keyframes, this.body.scrollHeight), options);\n this.body.hidden = true;\n this.body.style.height = \"auto\";\n\n this.emit(\"sgds-after-hide\");\n }\n }\n @queryAssignedElements() private _items: SgdsSidenavLink[];\n private _handleSlotChange(e: Event) {\n const anchorItems = (e.target as HTMLSlotElement)\n .assignedElements({ flatten: true })\n .filter(item => item.tagName.toLowerCase() === \"a\");\n\n if (anchorItems.length > 1) {\n return console.error(\"More than one anchor tag is added to sgds-sidenav-item\");\n } else if (anchorItems.length === 1) {\n const anchor = anchorItems[0] as HTMLAnchorElement;\n this.disabled && anchor.setAttribute(\"tabindex\", \"-1\");\n this.active && anchor.setAttribute(\"aria-current\", \"true\");\n return (this.isLink = true);\n }\n\n const sideNavItems = (e.target as HTMLSlotElement)\n .assignedElements({ flatten: true })\n .filter(item => item.tagName.toLowerCase() === \"sgds-sidenav-item\");\n\n /** All sgds-sidenav-item in this slot is a 2nd level item */\n sideNavItems.forEach(i => {\n const firstLevelId = Array.from(i.classList).filter(c => c.startsWith(\"first-level\"))[0];\n i.classList.replace(firstLevelId, this._secondLevelId);\n });\n /** All second level sgds-sidenav-item should only have third level sgds-sidenav-links */\n if (Array.from(this.classList).some(c => c.startsWith(\"second-level\"))) {\n this._items.forEach((i: SgdsSidenavLink) => i.classList.add(this._thirdLevelId));\n }\n\n this._handleOpenMenu();\n }\n\n render() {\n const withMenuTemplate = html`\n <button\n @click=${this._handleSummaryClick}\n @keydown=${this._handleSummaryKeyDown}\n class=\"sidenav-btn ${classMap({\n disabled: this.disabled,\n active: this.active\n })}\"\n aria-expanded=${this.active}\n aria-controls=${this._collapseId}\n aria-current=${this.active}\n id=${this._buttonId}\n ?disabled=${this.disabled}\n aria-disabled=${this.disabled ? \"true\" : \"false\"}\n >\n <slot name=\"icon\"></slot>\n <slot name=\"title\"></slot>\n <slot name=\"caret-icon\">\n <sgds-icon name=\"chevron-down\" size=\"lg\" class=\"caret-icon\"></sgds-icon>\n </slot>\n </button>\n <div class=\"sidenav-body\" id=\"${this._collapseId}\">\n <div class=\"sidenav-list\" aria-labelledby=\"${this._buttonId}\">\n <slot class=\"default\" @slotchange=${this._handleSlotChange}></slot>\n </div>\n </div>\n `;\n\n const noMenuTemplate = html` <slot @slotchange=${this._handleSlotChange} class=\"no-menu-default\"></slot> `;\n return html`\n <div class=\"sidenav-item\" aria-haspopup=\"${!this.isLink}\">${this.isLink ? noMenuTemplate : withMenuTemplate}</div>\n `;\n }\n}\nsetDefaultAnimation(\"sidenav.show\", {\n keyframes: [\n { height: \"0\", opacity: \"0\" },\n { height: \"auto\", opacity: \"1\" }\n ],\n options: { duration: 200, easing: \"ease-in-out\" }\n});\n\nsetDefaultAnimation(\"sidenav.hide\", {\n keyframes: [\n { height: \"auto\", opacity: \"1\" },\n { height: \"0\", opacity: \"0\" }\n ],\n options: { duration: 200, easing: \"ease-in-out\" }\n});\nexport default SgdsSidenavItem;\n"],"names":["sidenavItemStyle"],"mappings":"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"}
1
+ {"version":3,"file":"sgds-sidenav-item.js","sources":["../../../../src/components/Sidenav/sgds-sidenav-item.ts"],"sourcesContent":["import { html, PropertyValueMap } from \"lit\";\nimport { property, query, queryAssignedElements, state } from \"lit/decorators.js\";\nimport { classMap } from \"lit/directives/class-map.js\";\nimport { ifDefined } from \"lit/directives/if-defined.js\";\nimport SgdsElement from \"../../base/sgds-element\";\nimport { animateTo, shimKeyframesHeightAuto, stopAnimations } from \"../../utils/animate\";\nimport { getAnimation, setDefaultAnimation } from \"../../utils/animation-registry\";\nimport { waitForEvent } from \"../../utils/event\";\nimport genId from \"../../utils/generateId\";\nimport { watch } from \"../../utils/watch\";\nimport SgdsIcon from \"../Icon/sgds-icon\";\nimport SgdsSidenavLink from \"./sgds-sidenav-link\";\nimport sidenavItemStyle from \"./sidenav-item.css\";\n\n/**\n * @description SgdsSidenavItem can function as either a menu type or a link type. Its type is determined by the children slotted into the default slot.\n * A single anchor tag element passed into the default slot converts SgdsSidenavItem to a link type while passing in SgdsSidenavLink components into the default slots makes it a menu type.\n *\n * @event sgds-toggle - Emitted when the sidenav item's button is clicked. Only applicable to menu type.\n * @event sgds-show - Emitted on show. Only applicable to menu type.\n * @event sgds-after-show - Emitted on show after animation has completed. Only applicable to menu type.\n * @event sgds-hide - Emitted on hide. Only applicable to menu type.\n * @event sgds-after-hide - Emitted on hide after animation has completed. Only applicable to menu type.\n *\n * @slot default - default slot for SgdsSidenavLink and second level SgdsSidenavItem. For link type SgdsSidenavItem, pass in a single anchor tag to the default slot. For menu type, pass in SgdsSidenavLink to the default slot\n * @slot title - title slot for the content of SgdsSidenavItem's menu button element. Only applicable to menu type\n * @slot icon - icon slot for the content of SgdsSidenavItem's menu button element. Only applicable to menu type\n * @slot caret-icon - The slot for the caret arrow icon of SgdsSidenavItem. Only applicable to menu type.\n */\n\nexport class SgdsSidenavItem extends SgdsElement {\n static styles = [...SgdsElement.styles, sidenavItemStyle];\n /** @internal */\n static dependencies = {\n \"sgds-icon\": SgdsIcon\n };\n\n @query(\".sidenav-body\") body: HTMLElement;\n /** @internal */\n @query(\".sidenav-btn\") header: HTMLElement;\n /**\n * when true, toggles the sidenav-item to open on first load and set the active stylings.\n */\n @property({ type: Boolean, reflect: true })\n active = false;\n\n /**\n * Disables the SgdsSidenavItem\n */\n @property({ type: Boolean, reflect: true })\n disabled = false;\n\n /**\n * Accessible label for the sidenav item's menu button. Forwarded to the button's aria-label attribute.\n */\n @property({ type: String })\n ariaLabel: string;\n\n @state() private isLink = false;\n\n /**\n * @internal Forwards to id attribute of div.collapse and aria-controls attribute of button in SgdsSidenavItem. By default, SgdsSidenavItem auto-generates a unique id. Override the default id by specifiying your own\n */\n\n private _collapseId: string = genId(\"sidenav\", \"collapse\");\n\n /**\n * @internal Forwards to id attribute of button and aria-labelledby attribute of ul.sidenav-list in SgdsSidenavItem. By default, SgdsSidenavItem auto-generates a unique id. Override the default id by specifiying your own\n */\n private _buttonId: string = genId(\"sidenav\", \"button\");\n\n private _levelId = genId(\"sidenav\", \"this\");\n private _firstLevelId = \"first-level-\" + this._levelId;\n private _secondLevelId = \"second-level-\" + this._levelId;\n private _thirdLevelId = \"third-level-\" + this._levelId;\n\n /** @internal */\n private index = \"-1\";\n\n private _onToggle() {\n this.emit(\"sgds-toggle\", { detail: { index: this.index } });\n }\n\n /** Shows the sidenav item. Only applicable to sgds-sidenav-item that are of menu types */\n public async show() {\n if (this.isLink) return;\n if (this.active) {\n return;\n }\n\n this.active = true;\n return waitForEvent(this, \"sgds-after-show\");\n }\n\n /** Hide the sidenav item. Only applicable to sgds-sidenav-item that are of menu types */\n public async hide() {\n if (this.isLink) return;\n if (!this.active) {\n return;\n }\n this.active = false;\n return waitForEvent(this, \"sgds-after-hide\");\n }\n\n connectedCallback(): void {\n super.connectedCallback();\n this.classList.add(this._firstLevelId);\n }\n firstUpdated(changedProperties: PropertyValueMap<this>) {\n super.firstUpdated(changedProperties);\n\n if (!this.isLink) {\n this.body.hidden = !this.active;\n this.body.style.height = this.active ? \"auto\" : \"0\";\n }\n\n this._handleOpenMenu();\n }\n\n /**\n * Sets active to true to open menu ,\n * evaluating based on whether any of the child in any level is active\n * If at least 1 child is active, parent item should be active\n */\n private _handleOpenMenu() {\n if (!this.active) {\n this.active = this._items.some((i: SgdsSidenavItem | SgdsSidenavLink) => i.active);\n }\n }\n private _handleSummaryClick() {\n if (this.active) {\n this.hide();\n } else {\n this.show();\n }\n\n this._onToggle();\n this.header.focus();\n }\n private _handleSummaryKeyDown(event: KeyboardEvent) {\n if (event.key === \"Enter\" || event.key === \" \") {\n event.preventDefault();\n\n if (this.active) {\n this.hide();\n } else {\n this.show();\n }\n }\n\n if (event.key === \"ArrowUp\" || event.key === \"ArrowLeft\") {\n event.preventDefault();\n this.hide();\n }\n\n if (event.key === \"ArrowDown\" || event.key === \"ArrowRight\") {\n event.preventDefault();\n this.show();\n }\n }\n\n @watch(\"active\", { waitUntilFirstUpdate: true })\n async _handleOpenChange() {\n if (this.isLink) return;\n if (this.active) {\n // Show\n const sgdsShow = this.emit(\"sgds-show\", { cancelable: true });\n if (sgdsShow.defaultPrevented) {\n this.active = false;\n return;\n }\n\n await stopAnimations(this.body);\n this.body.hidden = false;\n\n const { keyframes, options } = getAnimation(this, \"sidenav.show\");\n await animateTo(this.body, shimKeyframesHeightAuto(keyframes, this.body.scrollHeight), options);\n this.body.style.height = \"auto\";\n\n this.emit(\"sgds-after-show\");\n } else {\n // Hide\n const sgdsHide = this.emit(\"sgds-hide\", { cancelable: true });\n if (sgdsHide.defaultPrevented) {\n this.active = true;\n return;\n }\n\n await stopAnimations(this.body);\n\n const { keyframes, options } = getAnimation(this, \"sidenav.hide\");\n await animateTo(this.body, shimKeyframesHeightAuto(keyframes, this.body.scrollHeight), options);\n this.body.hidden = true;\n this.body.style.height = \"auto\";\n\n this.emit(\"sgds-after-hide\");\n }\n }\n @queryAssignedElements() private _items: SgdsSidenavLink[];\n private _handleSlotChange(e: Event) {\n const anchorItems = (e.target as HTMLSlotElement)\n .assignedElements({ flatten: true })\n .filter(item => item.tagName.toLowerCase() === \"a\");\n\n if (anchorItems.length > 1) {\n return console.error(\"More than one anchor tag is added to sgds-sidenav-item\");\n } else if (anchorItems.length === 1) {\n const anchor = anchorItems[0] as HTMLAnchorElement;\n this.disabled && anchor.setAttribute(\"tabindex\", \"-1\");\n this.active && anchor.setAttribute(\"aria-current\", \"true\");\n return (this.isLink = true);\n }\n\n const sideNavItems = (e.target as HTMLSlotElement)\n .assignedElements({ flatten: true })\n .filter(item => item.tagName.toLowerCase() === \"sgds-sidenav-item\");\n\n /** All sgds-sidenav-item in this slot is a 2nd level item */\n sideNavItems.forEach(i => {\n const firstLevelId = Array.from(i.classList).filter(c => c.startsWith(\"first-level\"))[0];\n i.classList.replace(firstLevelId, this._secondLevelId);\n });\n /** All second level sgds-sidenav-item should only have third level sgds-sidenav-links */\n if (Array.from(this.classList).some(c => c.startsWith(\"second-level\"))) {\n this._items.forEach((i: SgdsSidenavLink) => i.classList.add(this._thirdLevelId));\n }\n\n this._handleOpenMenu();\n }\n\n render() {\n const withMenuTemplate = html`\n <button\n @click=${this._handleSummaryClick}\n @keydown=${this._handleSummaryKeyDown}\n class=\"sidenav-btn ${classMap({\n disabled: this.disabled,\n active: this.active\n })}\"\n aria-expanded=${this.active}\n aria-controls=${this._collapseId}\n aria-current=${this.active}\n aria-label=${ifDefined(this.ariaLabel)}\n id=${this._buttonId}\n ?disabled=${this.disabled}\n aria-disabled=${this.disabled ? \"true\" : \"false\"}\n >\n <slot name=\"icon\"></slot>\n <slot name=\"title\"></slot>\n <slot name=\"caret-icon\">\n <sgds-icon name=\"chevron-down\" size=\"lg\" class=\"caret-icon\"></sgds-icon>\n </slot>\n </button>\n <div class=\"sidenav-body\" id=\"${this._collapseId}\">\n <div class=\"sidenav-list\" aria-labelledby=\"${this._buttonId}\">\n <slot class=\"default\" @slotchange=${this._handleSlotChange}></slot>\n </div>\n </div>\n `;\n\n const noMenuTemplate = html` <slot @slotchange=${this._handleSlotChange} class=\"no-menu-default\"></slot> `;\n return html`\n <div class=\"sidenav-item\" aria-haspopup=\"${!this.isLink}\">${this.isLink ? noMenuTemplate : withMenuTemplate}</div>\n `;\n }\n}\nsetDefaultAnimation(\"sidenav.show\", {\n keyframes: [\n { height: \"0\", opacity: \"0\" },\n { height: \"auto\", opacity: \"1\" }\n ],\n options: { duration: 200, easing: \"ease-in-out\" }\n});\n\nsetDefaultAnimation(\"sidenav.hide\", {\n keyframes: [\n { height: \"auto\", opacity: \"1\" },\n { height: \"0\", opacity: \"0\" }\n ],\n options: { duration: 200, easing: \"ease-in-out\" }\n});\nexport default SgdsSidenavItem;\n"],"names":["sidenavItemStyle"],"mappings":";;;;;;;;;;;;;;;AAcA;;;;;;;;;;;;;;AAcG;AAEG,MAAO,eAAgB,SAAQ,WAAW,CAAA;AAAhD,IAAA,WAAA,GAAA;;AAUE;;AAEG;QAEH,IAAM,CAAA,MAAA,GAAG,KAAK,CAAC;AAEf;;AAEG;QAEH,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;QAQA,IAAM,CAAA,MAAA,GAAG,KAAK,CAAC;AAEhC;;AAEG;AAEK,QAAA,IAAA,CAAA,WAAW,GAAW,KAAK,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;AAE3D;;AAEG;AACK,QAAA,IAAA,CAAA,SAAS,GAAW,KAAK,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;AAE/C,QAAA,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;AACpC,QAAA,IAAA,CAAA,aAAa,GAAG,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC;AAC/C,QAAA,IAAA,CAAA,cAAc,GAAG,eAAe,GAAG,IAAI,CAAC,QAAQ,CAAC;AACjD,QAAA,IAAA,CAAA,aAAa,GAAG,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC;;QAG/C,IAAK,CAAA,KAAA,GAAG,IAAI,CAAC;KA4LtB;IA1LS,SAAS,GAAA;AACf,QAAA,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;KAC7D;;AAGM,IAAA,MAAM,IAAI,GAAA;QACf,IAAI,IAAI,CAAC,MAAM;YAAE,OAAO;AACxB,QAAA,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,OAAO;SACR;AAED,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;AACnB,QAAA,OAAO,YAAY,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAC;KAC9C;;AAGM,IAAA,MAAM,IAAI,GAAA;QACf,IAAI,IAAI,CAAC,MAAM;YAAE,OAAO;AACxB,QAAA,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YAChB,OAAO;SACR;AACD,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AACpB,QAAA,OAAO,YAAY,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAC;KAC9C;IAED,iBAAiB,GAAA;QACf,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAC1B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;KACxC;AACD,IAAA,YAAY,CAAC,iBAAyC,EAAA;AACpD,QAAA,KAAK,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAC;AAEtC,QAAA,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YAChB,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC;AAChC,YAAA,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,GAAG,MAAM,GAAG,GAAG,CAAC;SACrD;QAED,IAAI,CAAC,eAAe,EAAE,CAAC;KACxB;AAED;;;;AAIG;IACK,eAAe,GAAA;AACrB,QAAA,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;AAChB,YAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAoC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC;SACpF;KACF;IACO,mBAAmB,GAAA;AACzB,QAAA,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,IAAI,CAAC,IAAI,EAAE,CAAC;SACb;aAAM;YACL,IAAI,CAAC,IAAI,EAAE,CAAC;SACb;QAED,IAAI,CAAC,SAAS,EAAE,CAAC;AACjB,QAAA,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;KACrB;AACO,IAAA,qBAAqB,CAAC,KAAoB,EAAA;AAChD,QAAA,IAAI,KAAK,CAAC,GAAG,KAAK,OAAO,IAAI,KAAK,CAAC,GAAG,KAAK,GAAG,EAAE;YAC9C,KAAK,CAAC,cAAc,EAAE,CAAC;AAEvB,YAAA,IAAI,IAAI,CAAC,MAAM,EAAE;gBACf,IAAI,CAAC,IAAI,EAAE,CAAC;aACb;iBAAM;gBACL,IAAI,CAAC,IAAI,EAAE,CAAC;aACb;SACF;AAED,QAAA,IAAI,KAAK,CAAC,GAAG,KAAK,SAAS,IAAI,KAAK,CAAC,GAAG,KAAK,WAAW,EAAE;YACxD,KAAK,CAAC,cAAc,EAAE,CAAC;YACvB,IAAI,CAAC,IAAI,EAAE,CAAC;SACb;AAED,QAAA,IAAI,KAAK,CAAC,GAAG,KAAK,WAAW,IAAI,KAAK,CAAC,GAAG,KAAK,YAAY,EAAE;YAC3D,KAAK,CAAC,cAAc,EAAE,CAAC;YACvB,IAAI,CAAC,IAAI,EAAE,CAAC;SACb;KACF;IAGK,MAAA,iBAAiB,GAAA;QACrB,IAAI,IAAI,CAAC,MAAM;YAAE,OAAO;AACxB,QAAA,IAAI,IAAI,CAAC,MAAM,EAAE;;AAEf,YAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;AAC9D,YAAA,IAAI,QAAQ,CAAC,gBAAgB,EAAE;AAC7B,gBAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;gBACpB,OAAO;aACR;AAED,YAAA,MAAM,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAChC,YAAA,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AAEzB,YAAA,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,YAAY,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;AAClE,YAAA,MAAM,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,uBAAuB,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC,CAAC;YAChG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;AAEhC,YAAA,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;SAC9B;aAAM;;AAEL,YAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;AAC9D,YAAA,IAAI,QAAQ,CAAC,gBAAgB,EAAE;AAC7B,gBAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;gBACnB,OAAO;aACR;AAED,YAAA,MAAM,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEhC,YAAA,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,YAAY,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;AAClE,YAAA,MAAM,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,uBAAuB,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC,CAAC;AAChG,YAAA,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;YACxB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;AAEhC,YAAA,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;SAC9B;KACF;AAEO,IAAA,iBAAiB,CAAC,CAAQ,EAAA;AAChC,QAAA,MAAM,WAAW,GAAI,CAAC,CAAC,MAA0B;AAC9C,aAAA,gBAAgB,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AACnC,aAAA,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,GAAG,CAAC,CAAC;AAEtD,QAAA,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;AAC1B,YAAA,OAAO,OAAO,CAAC,KAAK,CAAC,wDAAwD,CAAC,CAAC;SAChF;AAAM,aAAA,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE;AACnC,YAAA,MAAM,MAAM,GAAG,WAAW,CAAC,CAAC,CAAsB,CAAC;YACnD,IAAI,CAAC,QAAQ,IAAI,MAAM,CAAC,YAAY,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;YACvD,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,YAAY,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;AAC3D,YAAA,QAAQ,IAAI,CAAC,MAAM,GAAG,IAAI,EAAE;SAC7B;AAED,QAAA,MAAM,YAAY,GAAI,CAAC,CAAC,MAA0B;AAC/C,aAAA,gBAAgB,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AACnC,aAAA,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,mBAAmB,CAAC,CAAC;;AAGtE,QAAA,YAAY,CAAC,OAAO,CAAC,CAAC,IAAG;YACvB,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACzF,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;AACzD,SAAC,CAAC,CAAC;;QAEH,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC,EAAE;YACtE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAkB,KAAK,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;SAClF;QAED,IAAI,CAAC,eAAe,EAAE,CAAC;KACxB;IAED,MAAM,GAAA;QACJ,MAAM,gBAAgB,GAAG,IAAI,CAAA,CAAA;;AAEhB,eAAA,EAAA,IAAI,CAAC,mBAAmB,CAAA;AACtB,iBAAA,EAAA,IAAI,CAAC,qBAAqB,CAAA;AAChB,2BAAA,EAAA,QAAQ,CAAC;YAC5B,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,MAAM,EAAE,IAAI,CAAC,MAAM;SACpB,CAAC,CAAA;AACc,sBAAA,EAAA,IAAI,CAAC,MAAM,CAAA;AACX,sBAAA,EAAA,IAAI,CAAC,WAAW,CAAA;AACjB,qBAAA,EAAA,IAAI,CAAC,MAAM,CAAA;AACb,mBAAA,EAAA,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;AACjC,WAAA,EAAA,IAAI,CAAC,SAAS,CAAA;AACP,kBAAA,EAAA,IAAI,CAAC,QAAQ,CAAA;wBACT,IAAI,CAAC,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAA;;;;;;;;AAQlB,oCAAA,EAAA,IAAI,CAAC,WAAW,CAAA;AACD,mDAAA,EAAA,IAAI,CAAC,SAAS,CAAA;AACrB,4CAAA,EAAA,IAAI,CAAC,iBAAiB,CAAA;;;KAG/D,CAAC;QAEF,MAAM,cAAc,GAAG,IAAI,CAAA,sBAAsB,IAAI,CAAC,iBAAiB,CAAA,iCAAA,CAAmC,CAAC;AAC3G,QAAA,OAAO,IAAI,CAAA,CAAA;AACkC,+CAAA,EAAA,CAAC,IAAI,CAAC,MAAM,CAAA,EAAA,EAAK,IAAI,CAAC,MAAM,GAAG,cAAc,GAAG,gBAAgB,CAAA;KAC5G,CAAC;KACH;;AAzOM,eAAM,CAAA,MAAA,GAAG,CAAC,GAAG,WAAW,CAAC,MAAM,EAAEA,QAAgB,CAA3C,CAA6C;AAC1D;AACO,eAAA,CAAA,YAAY,GAAG;AACpB,IAAA,WAAW,EAAE,QAAQ;AACtB,CAFkB,CAEjB;AAEsB,UAAA,CAAA;IAAvB,KAAK,CAAC,eAAe,CAAC;AAAmB,CAAA,EAAA,eAAA,CAAA,SAAA,EAAA,MAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AAEnB,UAAA,CAAA;IAAtB,KAAK,CAAC,cAAc,CAAC;AAAqB,CAAA,EAAA,eAAA,CAAA,SAAA,EAAA,QAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AAK3C,UAAA,CAAA;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAC5B,CAAA,EAAA,eAAA,CAAA,SAAA,EAAA,QAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AAMf,UAAA,CAAA;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAC1B,CAAA,EAAA,eAAA,CAAA,SAAA,EAAA,UAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AAMjB,UAAA,CAAA;AADC,IAAA,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;AACT,CAAA,EAAA,eAAA,CAAA,SAAA,EAAA,WAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AAED,UAAA,CAAA;AAAhB,IAAA,KAAK,EAAE;AAAwB,CAAA,EAAA,eAAA,CAAA,SAAA,EAAA,QAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AAwG1B,UAAA,CAAA;IADL,KAAK,CAAC,QAAQ,EAAE,EAAE,oBAAoB,EAAE,IAAI,EAAE,CAAC;AAoC/C,CAAA,EAAA,eAAA,CAAA,SAAA,EAAA,mBAAA,EAAA,IAAA,CAAA,CAAA;AACgC,UAAA,CAAA;AAAhC,IAAA,qBAAqB,EAAE;AAAmC,CAAA,EAAA,eAAA,CAAA,SAAA,EAAA,QAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AAoE7D,mBAAmB,CAAC,cAAc,EAAE;AAClC,IAAA,SAAS,EAAE;AACT,QAAA,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE;AAC7B,QAAA,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE;AACjC,KAAA;IACD,OAAO,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,aAAa,EAAE;AAClD,CAAA,CAAC,CAAC;AAEH,mBAAmB,CAAC,cAAc,EAAE;AAClC,IAAA,SAAS,EAAE;AACT,QAAA,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE;AAChC,QAAA,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE;AAC9B,KAAA;IACD,OAAO,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,aAAa,EAAE;AAClD,CAAA,CAAC;;;;"}
@@ -7,11 +7,11 @@ var index = require('./accordion-item/index.cjs.js');
7
7
  var index$1 = require('./accordion/index.cjs.js');
8
8
  var index$2 = require('./alert-link/index.cjs.js');
9
9
  var index$3 = require('./alert/index.cjs.js');
10
- var index$4 = require('./badge/index.cjs.js');
11
- var index$5 = require('./breadcrumb-item/index.cjs.js');
12
- var index$6 = require('./breadcrumb/index.cjs.js');
13
- var index$7 = require('./button/index.cjs.js');
14
- var index$8 = require('./card/index.cjs.js');
10
+ var index$4 = require('./button/index.cjs.js');
11
+ var index$5 = require('./badge/index.cjs.js');
12
+ var index$6 = require('./card/index.cjs.js');
13
+ var index$7 = require('./breadcrumb-item/index.cjs.js');
14
+ var index$8 = require('./breadcrumb/index.cjs.js');
15
15
  var index$9 = require('./checkbox-group/index.cjs.js');
16
16
  var index$a = require('./checkbox/index.cjs.js');
17
17
  var index$b = require('./close-button/index.cjs.js');
@@ -83,11 +83,11 @@ exports.SgdsAccordionItem = index["default"];
83
83
  exports.SgdsAccordion = index$1["default"];
84
84
  exports.SgdsAlertLink = index$2["default"];
85
85
  exports.SgdsAlert = index$3["default"];
86
- exports.SgdsBadge = index$4["default"];
87
- exports.SgdsBreadcrumbItem = index$5["default"];
88
- exports.SgdsBreadcrumb = index$6["default"];
89
- exports.SgdsButton = index$7["default"];
90
- exports.SgdsCard = index$8["default"];
86
+ exports.SgdsButton = index$4["default"];
87
+ exports.SgdsBadge = index$5["default"];
88
+ exports.SgdsCard = index$6["default"];
89
+ exports.SgdsBreadcrumbItem = index$7["default"];
90
+ exports.SgdsBreadcrumb = index$8["default"];
91
91
  exports.SgdsCheckboxGroup = index$9["default"];
92
92
  exports.SgdsCheckbox = index$a["default"];
93
93
  exports.SgdsCloseButton = index$b["default"];
package/react/index.d.ts CHANGED
@@ -2,11 +2,11 @@ export { default as SgdsAccordionItem } from './accordion-item';
2
2
  export { default as SgdsAccordion } from './accordion';
3
3
  export { default as SgdsAlertLink } from './alert-link';
4
4
  export { default as SgdsAlert } from './alert';
5
+ export { default as SgdsButton } from './button';
5
6
  export { default as SgdsBadge } from './badge';
7
+ export { default as SgdsCard } from './card';
6
8
  export { default as SgdsBreadcrumbItem } from './breadcrumb-item';
7
9
  export { default as SgdsBreadcrumb } from './breadcrumb';
8
- export { default as SgdsButton } from './button';
9
- export { default as SgdsCard } from './card';
10
10
  export { default as SgdsCheckboxGroup } from './checkbox-group';
11
11
  export { default as SgdsCheckbox } from './checkbox';
12
12
  export { default as SgdsCloseButton } from './close-button';
package/react/index.js CHANGED
@@ -3,11 +3,11 @@ export { default as SgdsAccordionItem } from './accordion-item/index.js';
3
3
  export { default as SgdsAccordion } from './accordion/index.js';
4
4
  export { default as SgdsAlertLink } from './alert-link/index.js';
5
5
  export { default as SgdsAlert } from './alert/index.js';
6
+ export { default as SgdsButton } from './button/index.js';
6
7
  export { default as SgdsBadge } from './badge/index.js';
8
+ export { default as SgdsCard } from './card/index.js';
7
9
  export { default as SgdsBreadcrumbItem } from './breadcrumb-item/index.js';
8
10
  export { default as SgdsBreadcrumb } from './breadcrumb/index.js';
9
- export { default as SgdsButton } from './button/index.js';
10
- export { default as SgdsCard } from './card/index.js';
11
11
  export { default as SgdsCheckboxGroup } from './checkbox-group/index.js';
12
12
  export { default as SgdsCheckbox } from './checkbox/index.js';
13
13
  export { default as SgdsCloseButton } from './close-button/index.js';
package/types/react.d.ts CHANGED
@@ -155,46 +155,6 @@ export interface SgdsAlertProps extends SgdsBaseProps {
155
155
  onSgdsHide?: SgdsEventHandler;
156
156
  }
157
157
 
158
- // ── Badge ─────────────────────────────────────────────────────────────
159
-
160
- export interface SgdsBadgeProps extends SgdsBaseProps {
161
- /** Controls the appearance of the dismissible badge. This prop only applies when dismissible is true */
162
- show?: boolean;
163
- /** One or more badge variant combinations.
164
- Variants include: `primary`, `accent`, `success`, `danger`, `warning`, `cyan`, `purple`, `neutral`, `white`, `info`.
165
-
166
- (@deprecated) The `info` variant is deprecated. Use `primary` instead. */
167
- variant?: "primary" | "accent" | "success" | "danger" | "warning" | "cyan" | "purple" | "neutral" | "white" | "info";
168
- /** Manually set the outlined state to false */
169
- outlined?: boolean;
170
- /** Manually set the dismissible state of the button to `false` */
171
- dismissible?: boolean;
172
- /** Manually enable full width */
173
- fullWidth?: boolean;
174
- "onsgds-show"?: SgdsEventHandler;
175
- onSgdsShow?: SgdsEventHandler;
176
- "onsgds-hide"?: SgdsEventHandler;
177
- onSgdsHide?: SgdsEventHandler;
178
- "onsgds-after-show"?: SgdsEventHandler;
179
- onSgdsAfterShow?: SgdsEventHandler;
180
- "onsgds-after-hide"?: SgdsEventHandler;
181
- onSgdsAfterHide?: SgdsEventHandler;
182
- }
183
-
184
- // ── BreadcrumbItem ─────────────────────────────────────────────────────────────
185
-
186
- export interface SgdsBreadcrumbItemProps extends SgdsBaseProps {
187
- /** Indicates the link matches the current location of the page. Programmatically handled by SgdsBreadcrumb to set this prop to true for the last breadcrumb item */
188
- active?: boolean;
189
- }
190
-
191
- // ── Breadcrumb ─────────────────────────────────────────────────────────────
192
-
193
- export interface SgdsBreadcrumbProps extends SgdsBaseProps {
194
- /** The aria-label of nav element within breadcrumb component. */
195
- ariaLabel?: string;
196
- }
197
-
198
158
  // ── Button ─────────────────────────────────────────────────────────────
199
159
 
200
160
  export interface SgdsButtonProps extends SgdsBaseProps {
@@ -251,6 +211,32 @@ value of this attribute must be an id of a form in the same document or shadow r
251
211
  onSgdsFocus?: SgdsEventHandler;
252
212
  }
253
213
 
214
+ // ── Badge ─────────────────────────────────────────────────────────────
215
+
216
+ export interface SgdsBadgeProps extends SgdsBaseProps {
217
+ /** Controls the appearance of the dismissible badge. This prop only applies when dismissible is true */
218
+ show?: boolean;
219
+ /** One or more badge variant combinations.
220
+ Variants include: `primary`, `accent`, `success`, `danger`, `warning`, `cyan`, `purple`, `neutral`, `white`, `info`.
221
+
222
+ (@deprecated) The `info` variant is deprecated. Use `primary` instead. */
223
+ variant?: "primary" | "accent" | "success" | "danger" | "warning" | "cyan" | "purple" | "neutral" | "white" | "info";
224
+ /** Manually set the outlined state to false */
225
+ outlined?: boolean;
226
+ /** Manually set the dismissible state of the button to `false` */
227
+ dismissible?: boolean;
228
+ /** Manually enable full width */
229
+ fullWidth?: boolean;
230
+ "onsgds-show"?: SgdsEventHandler;
231
+ onSgdsShow?: SgdsEventHandler;
232
+ "onsgds-hide"?: SgdsEventHandler;
233
+ onSgdsHide?: SgdsEventHandler;
234
+ "onsgds-after-show"?: SgdsEventHandler;
235
+ onSgdsAfterShow?: SgdsEventHandler;
236
+ "onsgds-after-hide"?: SgdsEventHandler;
237
+ onSgdsAfterHide?: SgdsEventHandler;
238
+ }
239
+
254
240
  // ── Card ─────────────────────────────────────────────────────────────
255
241
 
256
242
  export interface SgdsCardProps extends SgdsBaseProps {
@@ -276,6 +262,20 @@ export interface SgdsCardProps extends SgdsBaseProps {
276
262
  orientation?: CardOrientation;
277
263
  }
278
264
 
265
+ // ── BreadcrumbItem ─────────────────────────────────────────────────────────────
266
+
267
+ export interface SgdsBreadcrumbItemProps extends SgdsBaseProps {
268
+ /** Indicates the link matches the current location of the page. Programmatically handled by SgdsBreadcrumb to set this prop to true for the last breadcrumb item */
269
+ active?: boolean;
270
+ }
271
+
272
+ // ── Breadcrumb ─────────────────────────────────────────────────────────────
273
+
274
+ export interface SgdsBreadcrumbProps extends SgdsBaseProps {
275
+ /** The aria-label of nav element within breadcrumb component. */
276
+ ariaLabel?: string;
277
+ }
278
+
279
279
  // ── CheckboxGroup ─────────────────────────────────────────────────────────────
280
280
 
281
281
  export interface SgdsCheckboxGroupProps extends SgdsBaseProps {
@@ -413,6 +413,8 @@ We still expose `.value` externally, but this is now the underlying ID or data
413
413
  invalidFeedback?: string;
414
414
  /** Marks the component as invalid. Replace the pseudo :invalid selector. */
415
415
  invalid?: boolean;
416
+ /** Controlling of autocomplete behaviour */
417
+ autocomplete?: string;
416
418
  /** The list of items to display in the dropdown.
417
419
  `interface SgdsComboBoxItemData {
418
420
  label: string;
@@ -830,6 +832,8 @@ export interface SgdsInputProps extends SgdsBaseProps {
830
832
  autofocus?: boolean;
831
833
  /** Makes the input readonly. */
832
834
  readonly?: boolean;
835
+ /** Controlling of autocomplete behaviour */
836
+ autocomplete?: string;
833
837
  /** Specifies the granularity that the value must adhere to, or the special value `any` which means no stepping is
834
838
  implied, allowing any numeric value. Only applies to number input types. */
835
839
  step?: number | "any";
@@ -1139,6 +1143,8 @@ We still expose `.value` externally, but this is now the underlying ID or data
1139
1143
  invalidFeedback?: string;
1140
1144
  /** Marks the component as invalid. Replace the pseudo :invalid selector. */
1141
1145
  invalid?: boolean;
1146
+ /** Controlling of autocomplete behaviour */
1147
+ autocomplete?: string;
1142
1148
  /** The list of items to display in the dropdown.
1143
1149
  `interface SgdsComboBoxItemData {
1144
1150
  label: string;
@@ -1261,6 +1267,8 @@ export interface SgdsSidenavItemProps extends SgdsBaseProps {
1261
1267
  active?: boolean;
1262
1268
  /** Disables the SgdsSidenavItem */
1263
1269
  disabled?: boolean;
1270
+ /** Accessible label for the sidenav item's menu button. Forwarded to the button's aria-label attribute. */
1271
+ ariaLabel?: string;
1264
1272
  "onsgds-toggle"?: SgdsEventHandler;
1265
1273
  onSgdsToggle?: SgdsEventHandler;
1266
1274
  "onsgds-show"?: SgdsEventHandler;
@@ -1678,11 +1686,11 @@ declare module "react" {
1678
1686
  "sgds-accordion": React.DetailedHTMLProps<SgdsAccordionProps, HTMLElement>;
1679
1687
  "sgds-alert-link": React.DetailedHTMLProps<SgdsAlertLinkProps, HTMLElement>;
1680
1688
  "sgds-alert": React.DetailedHTMLProps<SgdsAlertProps, HTMLElement>;
1689
+ "sgds-button": React.DetailedHTMLProps<SgdsButtonProps, HTMLElement>;
1681
1690
  "sgds-badge": React.DetailedHTMLProps<SgdsBadgeProps, HTMLElement>;
1691
+ "sgds-card": React.DetailedHTMLProps<SgdsCardProps, HTMLElement>;
1682
1692
  "sgds-breadcrumb-item": React.DetailedHTMLProps<SgdsBreadcrumbItemProps, HTMLElement>;
1683
1693
  "sgds-breadcrumb": React.DetailedHTMLProps<SgdsBreadcrumbProps, HTMLElement>;
1684
- "sgds-button": React.DetailedHTMLProps<SgdsButtonProps, HTMLElement>;
1685
- "sgds-card": React.DetailedHTMLProps<SgdsCardProps, HTMLElement>;
1686
1694
  "sgds-checkbox-group": React.DetailedHTMLProps<SgdsCheckboxGroupProps, HTMLElement>;
1687
1695
  "sgds-checkbox": React.DetailedHTMLProps<SgdsCheckboxProps, HTMLElement>;
1688
1696
  "sgds-close-button": React.DetailedHTMLProps<SgdsCloseButtonProps, HTMLElement>;
@@ -1761,11 +1769,11 @@ declare global {
1761
1769
  "sgds-accordion": HTMLElement;
1762
1770
  "sgds-alert-link": HTMLElement;
1763
1771
  "sgds-alert": HTMLElement;
1772
+ "sgds-button": HTMLElement;
1764
1773
  "sgds-badge": HTMLElement;
1774
+ "sgds-card": HTMLElement;
1765
1775
  "sgds-breadcrumb-item": HTMLElement;
1766
1776
  "sgds-breadcrumb": HTMLElement;
1767
- "sgds-button": HTMLElement;
1768
- "sgds-card": HTMLElement;
1769
1777
  "sgds-checkbox-group": HTMLElement;
1770
1778
  "sgds-checkbox": HTMLElement;
1771
1779
  "sgds-close-button": HTMLElement;