@govtechsg/sgds-web-component 3.2.0-rc.0 → 3.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (179) hide show
  1. package/base/button.js +1 -1
  2. package/base/card.js +1 -1
  3. package/components/Badge/index.umd.js +63 -44
  4. package/components/Badge/index.umd.js.map +1 -1
  5. package/components/Badge/sgds-badge.d.ts +3 -1
  6. package/components/Badge/sgds-badge.js +23 -4
  7. package/components/Badge/sgds-badge.js.map +1 -1
  8. package/components/Button/index.umd.js +1 -1
  9. package/components/Card/index.umd.js +53 -12
  10. package/components/Card/index.umd.js.map +1 -1
  11. package/components/Card/sgds-card.js +5 -3
  12. package/components/Card/sgds-card.js.map +1 -1
  13. package/components/ComboBox/index.umd.js +29 -9
  14. package/components/ComboBox/index.umd.js.map +1 -1
  15. package/components/ComboBox/sgds-combo-box.js +3 -2
  16. package/components/ComboBox/sgds-combo-box.js.map +1 -1
  17. package/components/Datepicker/index.umd.js +1 -1
  18. package/components/Drawer/index.umd.js +2 -2
  19. package/components/Drawer/index.umd.js.map +1 -1
  20. package/components/FileUpload/index.umd.js +1 -1
  21. package/components/IconButton/index.umd.js +1 -1
  22. package/components/Mainnav/index.umd.js +3 -3
  23. package/components/Mainnav/index.umd.js.map +1 -1
  24. package/components/Mainnav/sgds-mainnav-item.d.ts +1 -1
  25. package/components/Mainnav/sgds-mainnav-item.js +2 -2
  26. package/components/Mainnav/sgds-mainnav-item.js.map +1 -1
  27. package/components/Modal/index.umd.js +22 -17
  28. package/components/Modal/index.umd.js.map +1 -1
  29. package/components/Modal/modal.js +1 -1
  30. package/components/Modal/sgds-modal.js +17 -14
  31. package/components/Modal/sgds-modal.js.map +1 -1
  32. package/components/Pagination/index.umd.js +1 -1
  33. package/components/QuantityToggle/index.umd.js +1 -1
  34. package/components/Subnav/index.umd.js +79 -87
  35. package/components/Subnav/index.umd.js.map +1 -1
  36. package/components/Subnav/sgds-subnav-item.d.ts +1 -1
  37. package/components/Subnav/sgds-subnav-item.js +2 -2
  38. package/components/Subnav/sgds-subnav-item.js.map +1 -1
  39. package/components/Subnav/sgds-subnav.d.ts +5 -4
  40. package/components/Subnav/sgds-subnav.js +76 -85
  41. package/components/Subnav/sgds-subnav.js.map +1 -1
  42. package/components/Subnav/subnav-item.js +1 -1
  43. package/components/Subnav/subnav.js +1 -1
  44. package/components/Table/index.d.ts +7 -1
  45. package/components/Table/index.js +6 -0
  46. package/components/Table/index.js.map +1 -1
  47. package/components/Table/index.umd.js +182 -16
  48. package/components/Table/index.umd.js.map +1 -1
  49. package/components/Table/sgds-table-cell.d.ts +13 -0
  50. package/components/Table/sgds-table-cell.js +22 -0
  51. package/components/Table/sgds-table-cell.js.map +1 -0
  52. package/components/Table/sgds-table-head.d.ts +18 -0
  53. package/components/Table/sgds-table-head.js +43 -0
  54. package/components/Table/sgds-table-head.js.map +1 -0
  55. package/components/Table/sgds-table-row.d.ts +13 -0
  56. package/components/Table/sgds-table-row.js +22 -0
  57. package/components/Table/sgds-table-row.js.map +1 -0
  58. package/components/Table/sgds-table.d.ts +5 -2
  59. package/components/Table/sgds-table.js +18 -13
  60. package/components/Table/sgds-table.js.map +1 -1
  61. package/components/Table/table-cell.js +6 -0
  62. package/components/Table/table-cell.js.map +1 -0
  63. package/components/Table/table-head.js +6 -0
  64. package/components/Table/table-head.js.map +1 -0
  65. package/components/Table/table-row.js +6 -0
  66. package/components/Table/table-row.js.map +1 -0
  67. package/components/Table/table.js +1 -1
  68. package/components/Toast/index.umd.js +1 -1
  69. package/components/Toast/toast.js +1 -1
  70. package/components/index.umd.js +146 -128
  71. package/components/index.umd.js.map +1 -1
  72. package/index.umd.js +347 -254
  73. package/index.umd.js.map +1 -1
  74. package/package.json +1 -1
  75. package/react/badge/index.cjs.js +3 -1
  76. package/react/badge/index.cjs.js.map +1 -1
  77. package/react/badge/index.js +3 -1
  78. package/react/badge/index.js.map +1 -1
  79. package/react/base/button.cjs.js +1 -1
  80. package/react/base/button.js +1 -1
  81. package/react/base/card.cjs.js +1 -1
  82. package/react/base/card.js +1 -1
  83. package/react/components/Badge/sgds-badge.cjs.js +23 -4
  84. package/react/components/Badge/sgds-badge.cjs.js.map +1 -1
  85. package/react/components/Badge/sgds-badge.js +23 -4
  86. package/react/components/Badge/sgds-badge.js.map +1 -1
  87. package/react/components/Card/sgds-card.cjs.js +5 -3
  88. package/react/components/Card/sgds-card.cjs.js.map +1 -1
  89. package/react/components/Card/sgds-card.js +5 -3
  90. package/react/components/Card/sgds-card.js.map +1 -1
  91. package/react/components/ComboBox/sgds-combo-box.cjs.js +3 -2
  92. package/react/components/ComboBox/sgds-combo-box.cjs.js.map +1 -1
  93. package/react/components/ComboBox/sgds-combo-box.js +3 -2
  94. package/react/components/ComboBox/sgds-combo-box.js.map +1 -1
  95. package/react/components/Mainnav/sgds-mainnav-item.cjs.js +2 -2
  96. package/react/components/Mainnav/sgds-mainnav-item.cjs.js.map +1 -1
  97. package/react/components/Mainnav/sgds-mainnav-item.js +2 -2
  98. package/react/components/Mainnav/sgds-mainnav-item.js.map +1 -1
  99. package/react/components/Modal/modal.cjs.js +1 -1
  100. package/react/components/Modal/modal.js +1 -1
  101. package/react/components/Modal/sgds-modal.cjs.js +17 -14
  102. package/react/components/Modal/sgds-modal.cjs.js.map +1 -1
  103. package/react/components/Modal/sgds-modal.js +17 -14
  104. package/react/components/Modal/sgds-modal.js.map +1 -1
  105. package/react/components/Subnav/sgds-subnav-item.cjs.js +2 -2
  106. package/react/components/Subnav/sgds-subnav-item.cjs.js.map +1 -1
  107. package/react/components/Subnav/sgds-subnav-item.js +2 -2
  108. package/react/components/Subnav/sgds-subnav-item.js.map +1 -1
  109. package/react/components/Subnav/sgds-subnav.cjs.js +74 -83
  110. package/react/components/Subnav/sgds-subnav.cjs.js.map +1 -1
  111. package/react/components/Subnav/sgds-subnav.js +76 -85
  112. package/react/components/Subnav/sgds-subnav.js.map +1 -1
  113. package/react/components/Subnav/subnav-item.cjs.js +1 -1
  114. package/react/components/Subnav/subnav-item.js +1 -1
  115. package/react/components/Subnav/subnav.cjs.js +1 -1
  116. package/react/components/Subnav/subnav.js +1 -1
  117. package/react/components/Table/sgds-table-cell.cjs.js +28 -0
  118. package/react/components/Table/sgds-table-cell.cjs.js.map +1 -0
  119. package/react/components/Table/sgds-table-cell.js +23 -0
  120. package/react/components/Table/sgds-table-cell.js.map +1 -0
  121. package/react/components/Table/sgds-table-head.cjs.js +49 -0
  122. package/react/components/Table/sgds-table-head.cjs.js.map +1 -0
  123. package/react/components/Table/sgds-table-head.js +44 -0
  124. package/react/components/Table/sgds-table-head.js.map +1 -0
  125. package/react/components/Table/sgds-table-row.cjs.js +28 -0
  126. package/react/components/Table/sgds-table-row.cjs.js.map +1 -0
  127. package/react/components/Table/sgds-table-row.js +23 -0
  128. package/react/components/Table/sgds-table-row.js.map +1 -0
  129. package/react/components/Table/sgds-table.cjs.js +17 -12
  130. package/react/components/Table/sgds-table.cjs.js.map +1 -1
  131. package/react/components/Table/sgds-table.js +18 -13
  132. package/react/components/Table/sgds-table.js.map +1 -1
  133. package/react/components/Table/table-cell.cjs.js +11 -0
  134. package/react/components/Table/table-cell.cjs.js.map +1 -0
  135. package/react/components/Table/table-cell.js +7 -0
  136. package/react/components/Table/table-cell.js.map +1 -0
  137. package/react/components/Table/table-head.cjs.js +11 -0
  138. package/react/components/Table/table-head.cjs.js.map +1 -0
  139. package/react/components/Table/table-head.js +7 -0
  140. package/react/components/Table/table-head.js.map +1 -0
  141. package/react/components/Table/table-row.cjs.js +11 -0
  142. package/react/components/Table/table-row.cjs.js.map +1 -0
  143. package/react/components/Table/table-row.js +7 -0
  144. package/react/components/Table/table-row.js.map +1 -0
  145. package/react/components/Table/table.cjs.js +1 -1
  146. package/react/components/Table/table.js +1 -1
  147. package/react/components/Toast/toast.cjs.js +1 -1
  148. package/react/components/Toast/toast.js +1 -1
  149. package/react/index.cjs.js +26 -20
  150. package/react/index.cjs.js.map +1 -1
  151. package/react/index.d.ts +4 -1
  152. package/react/index.js +4 -1
  153. package/react/index.js.map +1 -1
  154. package/react/table-cell/index.cjs.js +40 -0
  155. package/react/table-cell/index.cjs.js.map +1 -0
  156. package/react/table-cell/index.d.ts +2 -0
  157. package/react/table-cell/index.js +16 -0
  158. package/react/table-cell/index.js.map +1 -0
  159. package/react/table-head/index.cjs.js +40 -0
  160. package/react/table-head/index.cjs.js.map +1 -0
  161. package/react/table-head/index.d.ts +2 -0
  162. package/react/table-head/index.js +16 -0
  163. package/react/table-head/index.js.map +1 -0
  164. package/react/table-row/index.cjs.js +40 -0
  165. package/react/table-row/index.cjs.js.map +1 -0
  166. package/react/table-row/index.d.ts +2 -0
  167. package/react/table-row/index.js +16 -0
  168. package/react/table-row/index.js.map +1 -0
  169. package/react/utils/breakpoints.cjs.js.map +1 -1
  170. package/react/utils/breakpoints.js.map +1 -1
  171. package/react/utils/scroll.cjs.js +2 -2
  172. package/react/utils/scroll.cjs.js.map +1 -1
  173. package/react/utils/scroll.js +2 -2
  174. package/react/utils/scroll.js.map +1 -1
  175. package/themes/root.css +6 -0
  176. package/utils/breakpoints.d.ts +1 -0
  177. package/utils/breakpoints.js.map +1 -1
  178. package/utils/scroll.js +2 -2
  179. package/utils/scroll.js.map +1 -1
@@ -3,6 +3,7 @@ import { literal, html } from 'lit/static-html.js';
3
3
  import { query, queryAssignedNodes, property } from 'lit/decorators.js';
4
4
  import { classMap } from 'lit/directives/class-map.js';
5
5
  import { CardElement } from '../../base/card-element.js';
6
+ import { SgdsLink } from '../Link/sgds-link.js';
6
7
  import css_248z from './card.js';
7
8
 
8
9
  /**
@@ -56,13 +57,14 @@ class SgdsCard extends CardElement {
56
57
  if (childNodes.length > 1) {
57
58
  return console.error("Multiple elements passed into SgdsCard's link slot");
58
59
  }
59
- if (this.stretchedLink && childNodes[0] instanceof HTMLAnchorElement) {
60
- const hyperlink = childNodes[0].querySelector("a") || childNodes[0];
60
+ if (!this.stretchedLink)
61
+ return;
62
+ if (childNodes[0] instanceof HTMLAnchorElement || childNodes[0] instanceof SgdsLink) {
63
+ const hyperlink = (childNodes[0].querySelector("a") || childNodes[0]);
61
64
  this.card.setAttribute("href", hyperlink.href);
62
65
  const linkSlot = this.shadowRoot.querySelector("slot[name='link']");
63
66
  linkSlot.style.display = "none";
64
67
  }
65
- return;
66
68
  }
67
69
  handleImgSlotChange(e) {
68
70
  const childNodes = e.target.assignedNodes({ flatten: true });
@@ -1 +1 @@
1
- {"version":3,"file":"sgds-card.js","sources":["../../../src/components/Card/sgds-card.ts"],"sourcesContent":["import { html, literal } from \"lit/static-html.js\";\nimport { property, query, queryAssignedNodes } from \"lit/decorators.js\";\nimport { classMap } from \"lit/directives/class-map.js\";\nimport { CardElement } from \"../../base/card-element\";\nimport cardStyle from \"./card.css\";\n\nexport type CardImageAdjustment = \"default\" | \"padding around\" | \"aspect ratio\";\nexport type CardImagePosition = \"before\" | \"after\";\nexport type CardOrientation = \"vertical\" | \"horizontal\";\n\n/**\n * @summary Cards can be used for headers and footers, a wide variety of content, contain contextual background colors and images.\n * @slot image - Accepts an image or svg element of the card. Only a single element is allowed to be passed in.\n * @slot icon - Accepts an icon element to visually represent the card. Only a single element is allowed to be passed in.\n * @slot subtitle - The subtitle of the card\n * @slot title - The title of the card\n * @slot description - The paragrapher text of the card\n * @slot link - Accepts an anchor element. Only a single element is allowed to be passed in.\n */\nexport class SgdsCard extends CardElement {\n static styles = [...CardElement.styles, cardStyle];\n\n /** @internal */\n @query(\"a.card\") card: HTMLAnchorElement;\n\n /** @internal */\n @queryAssignedNodes({ slot: \"image\", flatten: true })\n _imageNode!: Array<Node>;\n /** @internal */\n @queryAssignedNodes({ slot: \"icon\", flatten: true })\n _iconNode!: Array<Node>;\n /** @internal */\n @queryAssignedNodes({ slot: \"link\", flatten: true })\n _linkNode!: Array<Node>;\n\n /** Extends the link passed in slot[name=\"link\"] to the entire card */\n @property({ type: Boolean, reflect: true }) stretchedLink = false;\n\n /** Disables the card */\n @property({ type: Boolean, reflect: true }) disabled = false;\n\n /** Sets the orientation of the card. Available options: `vertical`, `horizontal` */\n @property({ type: String, reflect: true }) orientation: CardOrientation = \"vertical\";\n\n /** Sets the image position of the card. Available options: `before`, `after` */\n @property({ type: String, reflect: true }) imagePosition: CardImagePosition = \"before\";\n\n /** Controls how the image is sized and aligned within the card. Available options: `default`, `padding around`, `aspect ratio` */\n @property({ type: String, reflect: true }) imageAdjustment: CardImageAdjustment = \"default\";\n\n protected firstUpdated() {\n if (this._imageNode.length === 0) {\n const icon = this.shadowRoot.querySelector(\".card-image\") as HTMLDivElement;\n icon.style.display = \"none\";\n }\n if (this._iconNode.length === 0) {\n const icon = this.shadowRoot.querySelector(\".card-icon\") as HTMLDivElement;\n icon.style.display = \"none\";\n }\n if (this.disabled && this._linkNode.length > 0) {\n const hyperlink = (this._linkNode[0] as HTMLLinkElement).querySelector(\"a\");\n hyperlink.setAttribute(\"disabled\", \"true\");\n hyperlink.removeAttribute(\"href\");\n }\n }\n\n handleTitleSlotChange(e: Event) {\n const childNodes = (e.target as HTMLSlotElement).assignedNodes({ flatten: true }) as Array<HTMLElement>;\n\n if (this.stretchedLink && childNodes[0] instanceof HTMLAnchorElement) {\n const hyperlink = childNodes[0].querySelector(\"a\") || childNodes[0];\n hyperlink.removeAttribute(\"href\");\n }\n return;\n }\n\n handleLinkSlotChange(e: Event) {\n const childNodes = (e.target as HTMLSlotElement).assignedNodes({ flatten: true }) as\n | Array<HTMLLinkElement>\n | Array<HTMLAnchorElement>;\n\n if (childNodes.length > 1) {\n return console.error(\"Multiple elements passed into SgdsCard's link slot\");\n }\n\n if (this.stretchedLink && childNodes[0] instanceof HTMLAnchorElement) {\n const hyperlink = childNodes[0].querySelector(\"a\") || childNodes[0];\n this.card.setAttribute(\"href\", hyperlink.href);\n const linkSlot = this.shadowRoot.querySelector(\"slot[name='link']\") as HTMLSlotElement;\n linkSlot.style.display = \"none\";\n }\n return;\n }\n\n handleImgSlotChange(e: Event) {\n const childNodes = (e.target as HTMLSlotElement).assignedNodes({ flatten: true }) as Array<HTMLOrSVGImageElement>;\n\n if (childNodes.length > 1) {\n return console.error(\"Multiple elements passed into SgdsCard's image slot\");\n }\n }\n\n render() {\n const tag = this.stretchedLink ? literal`a` : literal`div`;\n const cardTabIndex = !this.stretchedLink || this.disabled ? -1 : 0;\n\n return html`\n <${tag} \n class=\"card ${classMap({\n disabled: this.disabled\n })}\"\n tabindex=${cardTabIndex}\n >\n <div class=\"card-image\">\n <slot name=\"image\" @slotchange=${this.handleImgSlotChange}></slot>\n </div>\n <div class=\"card-icon\">\n <slot name=\"icon\"></slot>\n </div>\n <div class=\"card-body\">\n <div class=\"card-header\">\n <slot name=\"subtitle\"></slot>\n <h3 class=\"card-title\"><slot name=\"title\" @slotchange=${this.handleTitleSlotChange}></slot></h3>\n </div>\n <p class=\"card-text\">\n <slot name=\"description\"></slot>\n </p>\n <slot name=\"link\" @slotchange=${this.handleLinkSlotChange}></slot>\n </div>\n </${tag}>\n `;\n }\n}\n\nexport default SgdsCard;\n"],"names":["cardStyle"],"mappings":"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"}
1
+ {"version":3,"file":"sgds-card.js","sources":["../../../src/components/Card/sgds-card.ts"],"sourcesContent":["import { html, literal } from \"lit/static-html.js\";\nimport { property, query, queryAssignedNodes } from \"lit/decorators.js\";\nimport { classMap } from \"lit/directives/class-map.js\";\nimport { CardElement } from \"../../base/card-element\";\nimport SgdsLink from \"../Link/sgds-link\";\nimport cardStyle from \"./card.css\";\n\nexport type CardImageAdjustment = \"default\" | \"padding around\" | \"aspect ratio\";\nexport type CardImagePosition = \"before\" | \"after\";\nexport type CardOrientation = \"vertical\" | \"horizontal\";\n\n/**\n * @summary Cards can be used for headers and footers, a wide variety of content, contain contextual background colors and images.\n * @slot image - Accepts an image or svg element of the card. Only a single element is allowed to be passed in.\n * @slot icon - Accepts an icon element to visually represent the card. Only a single element is allowed to be passed in.\n * @slot subtitle - The subtitle of the card\n * @slot title - The title of the card\n * @slot description - The paragrapher text of the card\n * @slot link - Accepts an anchor element. Only a single element is allowed to be passed in.\n */\nexport class SgdsCard extends CardElement {\n static styles = [...CardElement.styles, cardStyle];\n\n /** @internal */\n @query(\"a.card\") card: HTMLAnchorElement;\n\n /** @internal */\n @queryAssignedNodes({ slot: \"image\", flatten: true })\n _imageNode!: Array<Node>;\n /** @internal */\n @queryAssignedNodes({ slot: \"icon\", flatten: true })\n _iconNode!: Array<Node>;\n /** @internal */\n @queryAssignedNodes({ slot: \"link\", flatten: true })\n _linkNode!: Array<Node>;\n\n /** Extends the link passed in slot[name=\"link\"] to the entire card */\n @property({ type: Boolean, reflect: true }) stretchedLink = false;\n\n /** Disables the card */\n @property({ type: Boolean, reflect: true }) disabled = false;\n\n /** Sets the orientation of the card. Available options: `vertical`, `horizontal` */\n @property({ type: String, reflect: true }) orientation: CardOrientation = \"vertical\";\n\n /** Sets the image position of the card. Available options: `before`, `after` */\n @property({ type: String, reflect: true }) imagePosition: CardImagePosition = \"before\";\n\n /** Controls how the image is sized and aligned within the card. Available options: `default`, `padding around`, `aspect ratio` */\n @property({ type: String, reflect: true }) imageAdjustment: CardImageAdjustment = \"default\";\n\n protected firstUpdated() {\n if (this._imageNode.length === 0) {\n const icon = this.shadowRoot.querySelector(\".card-image\") as HTMLDivElement;\n icon.style.display = \"none\";\n }\n if (this._iconNode.length === 0) {\n const icon = this.shadowRoot.querySelector(\".card-icon\") as HTMLDivElement;\n icon.style.display = \"none\";\n }\n if (this.disabled && this._linkNode.length > 0) {\n const hyperlink = (this._linkNode[0] as HTMLLinkElement).querySelector(\"a\");\n hyperlink.setAttribute(\"disabled\", \"true\");\n hyperlink.removeAttribute(\"href\");\n }\n }\n\n handleTitleSlotChange(e: Event) {\n const childNodes = (e.target as HTMLSlotElement).assignedNodes({ flatten: true }) as Array<HTMLElement>;\n\n if (this.stretchedLink && childNodes[0] instanceof HTMLAnchorElement) {\n const hyperlink = childNodes[0].querySelector(\"a\") || childNodes[0];\n hyperlink.removeAttribute(\"href\");\n }\n return;\n }\n\n handleLinkSlotChange(e: Event) {\n const childNodes = (e.target as HTMLSlotElement).assignedNodes({ flatten: true }) as\n | Array<HTMLLinkElement>\n | Array<HTMLAnchorElement>\n | Array<SgdsLink>;\n\n if (childNodes.length > 1) {\n return console.error(\"Multiple elements passed into SgdsCard's link slot\");\n }\n\n if (!this.stretchedLink) return;\n\n if (childNodes[0] instanceof HTMLAnchorElement || childNodes[0] instanceof SgdsLink) {\n const hyperlink = (childNodes[0].querySelector(\"a\") || childNodes[0]) as HTMLAnchorElement;\n this.card.setAttribute(\"href\", hyperlink.href);\n const linkSlot = this.shadowRoot.querySelector(\"slot[name='link']\") as HTMLSlotElement;\n linkSlot.style.display = \"none\";\n }\n }\n\n handleImgSlotChange(e: Event) {\n const childNodes = (e.target as HTMLSlotElement).assignedNodes({ flatten: true }) as Array<HTMLOrSVGImageElement>;\n\n if (childNodes.length > 1) {\n return console.error(\"Multiple elements passed into SgdsCard's image slot\");\n }\n }\n\n render() {\n const tag = this.stretchedLink ? literal`a` : literal`div`;\n const cardTabIndex = !this.stretchedLink || this.disabled ? -1 : 0;\n\n return html`\n <${tag} \n class=\"card ${classMap({\n disabled: this.disabled\n })}\"\n tabindex=${cardTabIndex}\n >\n <div class=\"card-image\">\n <slot name=\"image\" @slotchange=${this.handleImgSlotChange}></slot>\n </div>\n <div class=\"card-icon\">\n <slot name=\"icon\"></slot>\n </div>\n <div class=\"card-body\">\n <div class=\"card-header\">\n <slot name=\"subtitle\"></slot>\n <h3 class=\"card-title\"><slot name=\"title\" @slotchange=${this.handleTitleSlotChange}></slot></h3>\n </div>\n <p class=\"card-text\">\n <slot name=\"description\"></slot>\n </p>\n <slot name=\"link\" @slotchange=${this.handleLinkSlotChange}></slot>\n </div>\n </${tag}>\n `;\n }\n}\n\nexport default SgdsCard;\n"],"names":["cardStyle"],"mappings":"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"}
@@ -8993,9 +8993,7 @@
8993
8993
  };
8994
8994
  }
8995
8995
 
8996
- var css_248z$7 = css`:host{display:inline-flex}:host([variant=success]) .badge{background-color:var(--sgds-success-surface-default)}:host([variant=danger]) .badge{background-color:var(--sgds-danger-surface-default)}:host([variant=warning]) .badge{background-color:var(--sgds-warning-surface-default);color:var(--sgds-color-fixed-dark)}:host([variant=neutral]) .badge{background-color:var(--sgds-neutral-surface-default)}:host([variant=success][outlined]) .badge{background-color:var(--sgds-success-surface-muted);border:var(--sgds-border-width-1) solid var(--sgds-success-border-color-default)}:host([variant=danger][outlined]) .badge{background-color:var(--sgds-danger-surface-muted);border:var(--sgds-border-width-1) solid var(--sgds-danger-border-color-default)}:host([variant=warning][outlined]) .badge{background-color:var(--sgds-warning-surface-muted);border:var(--sgds-border-width-1) solid var(--sgds-warning-border-color-default)}:host([variant=neutral][outlined]) .badge{background-color:var(--sgds-neutral-surface-muted);border:var(--sgds-border-width-1) solid var(--sgds-neutral-border-color-default)}.badge{align-items:center;background-color:var(--sgds-primary-surface-default);border:var(--sgds-border-width-1) solid var(--sgds-border-color-transparent);border-radius:var(--sgds-border-radius-sm);color:var(--sgds-color-fixed-light);display:inline-flex;font-size:var(--sgds-font-size-1);height:var(--sgds-dimension-24);justify-content:center;min-width:var(--sgds-dimension-24);padding:var(--sgds-padding-none) var(--sgds-padding-2-xs)}.badge.outlined{background-color:var(--sgds-primary-surface-muted);border:var(--sgds-border-width-1) solid var(--sgds-primary-border-color-default);color:var(--sgds-color-fixed-dark)}.badge-label{line-height:var(--sgds-line-height-min);padding:var(--sgds-padding-none) var(--sgds-padding-2-xs)}.badge-dismissible{padding-right:0}.badge-dimissible sgds-close-button{--sgds-close-btn-border-radius:var(--sgds-border-radius-sm)}slot::slotted(*){font-size:14px;font-weight:400}`;
8997
-
8998
- var css_248z$6 = css`:host{--sgds-close-btn-border-radius:var(--sgds-border-radius-sm);display:inline-flex}.btn-close{align-items:center;background-color:var(--sgds-bg-transparent);border:0;border:var(--sgds-border-width-1) solid var(--sgds-border-color-transparent);border-radius:var(--sgds-close-btn-border-radius);cursor:pointer;display:flex;height:var(--sgds-dimension-32);justify-content:center;padding:0;position:relative;width:var(--sgds-dimension-32)}.btn-close-light{color:var(--sgds-color-fixed-light)}.btn-close-dark{color:var(--sgds-color-fixed-dark)}.btn-close:hover{background-color:var(--sgds-bg-translucent)}.btn-close:focus,.btn-close:focus-visible{background-color:var(--sgds-bg-translucent);box-shadow:var(--sgds-box-shadow-focus);outline:0}.btn-close-sm{height:var(--sgds-dimension-24);width:var(--sgds-dimension-24)}.btn-close.btn-close-sm{height:var(--sgds-icon-size-sm);width:var(--sgds-icon-size-sm)}`;
8996
+ var css_248z$7 = css`:host{--sgds-close-btn-border-radius:var(--sgds-border-radius-sm);display:inline-flex}.btn-close{align-items:center;background-color:var(--sgds-bg-transparent);border:0;border:var(--sgds-border-width-1) solid var(--sgds-border-color-transparent);border-radius:var(--sgds-close-btn-border-radius);cursor:pointer;display:flex;height:var(--sgds-dimension-32);justify-content:center;padding:0;position:relative;width:var(--sgds-dimension-32)}.btn-close-light{color:var(--sgds-color-fixed-light)}.btn-close-dark{color:var(--sgds-color-fixed-dark)}.btn-close:hover{background-color:var(--sgds-bg-translucent)}.btn-close:focus,.btn-close:focus-visible{background-color:var(--sgds-bg-translucent);box-shadow:var(--sgds-box-shadow-focus);outline:0}.btn-close-sm{height:var(--sgds-dimension-24);width:var(--sgds-dimension-24)}.btn-close.btn-close-sm{height:var(--sgds-icon-size-sm);width:var(--sgds-icon-size-sm)}`;
8999
8997
 
9000
8998
  /**
9001
8999
  *
@@ -9062,7 +9060,7 @@
9062
9060
  `;
9063
9061
  }
9064
9062
  }
9065
- SgdsCloseButton.styles = [...SgdsElement.styles, css_248z$6];
9063
+ SgdsCloseButton.styles = [...SgdsElement.styles, css_248z$7];
9066
9064
  __decorate([
9067
9065
  property({ type: String })
9068
9066
  ], SgdsCloseButton.prototype, "ariaLabel", void 0);
@@ -9073,6 +9071,8 @@
9073
9071
  property({ type: String, reflect: true })
9074
9072
  ], SgdsCloseButton.prototype, "variant", void 0);
9075
9073
 
9074
+ var css_248z$6 = css`:host{display:inline-flex}:host([variant=success]) .badge{background-color:var(--sgds-success-surface-default)}:host([variant=danger]) .badge{background-color:var(--sgds-danger-surface-default)}:host([variant=warning]) .badge{background-color:var(--sgds-warning-surface-default);color:var(--sgds-color-fixed-dark)}:host([variant=neutral]) .badge{background-color:var(--sgds-neutral-surface-default)}:host([variant=success][outlined]) .badge{background-color:var(--sgds-success-surface-muted);border:var(--sgds-border-width-1) solid var(--sgds-success-border-color-default)}:host([variant=danger][outlined]) .badge{background-color:var(--sgds-danger-surface-muted);border:var(--sgds-border-width-1) solid var(--sgds-danger-border-color-default)}:host([variant=warning][outlined]) .badge{background-color:var(--sgds-warning-surface-muted);border:var(--sgds-border-width-1) solid var(--sgds-warning-border-color-default)}:host([variant=neutral][outlined]) .badge{background-color:var(--sgds-neutral-surface-muted);border:var(--sgds-border-width-1) solid var(--sgds-neutral-border-color-default)}.badge{align-items:center;background-color:var(--sgds-primary-surface-default);border:var(--sgds-border-width-1) solid var(--sgds-border-color-transparent);border-radius:var(--sgds-border-radius-sm);color:var(--sgds-color-fixed-light);display:inline-flex;font-size:var(--sgds-font-size-1);height:var(--sgds-dimension-24);justify-content:center;min-width:var(--sgds-dimension-24);padding:var(--sgds-padding-none) var(--sgds-padding-2-xs)}.badge.outlined{background-color:var(--sgds-primary-surface-muted);border:var(--sgds-border-width-1) solid var(--sgds-primary-border-color-default);color:var(--sgds-color-fixed-dark)}.badge-label{line-height:var(--sgds-line-height-min);padding:var(--sgds-padding-none) var(--sgds-padding-2-xs)}.badge-dismissible{padding-right:0}.badge-dimissible sgds-close-button{--sgds-close-btn-border-radius:var(--sgds-border-radius-sm)}slot::slotted(*){font-size:14px;font-weight:400}`;
9075
+
9076
9076
  /**
9077
9077
  * @summary Badges can be used to highlight important bits of information such as labels, notifications & status.
9078
9078
  *
@@ -9080,7 +9080,9 @@
9080
9080
  * @slot icon - The slot for icon to the left of the badge text
9081
9081
  *
9082
9082
  * @event sgds-show - Emitted when the badge appears.
9083
- * @event sgds-hide - Emitted after the badge closes.
9083
+ * @event sgds-hide - Emitted when the badge is starting to close but has not closed.
9084
+ * @event sgds-after-show - Emitted after the badge has appeared
9085
+ * @event sgds-after-hide - Emitted after the badge has closed
9084
9086
  */
9085
9087
  class SgdsBadge extends SgdsElement {
9086
9088
  constructor() {
@@ -9100,7 +9102,24 @@
9100
9102
  }
9101
9103
  /**@internal */
9102
9104
  _handleShowChange() {
9103
- this.show ? this.emit("sgds-show") : this.emit("sgds-hide");
9105
+ if (this.show) {
9106
+ const sgdsShow = this.emit("sgds-show", { cancelable: true });
9107
+ if (sgdsShow.defaultPrevented) {
9108
+ this.show = false;
9109
+ return;
9110
+ }
9111
+ // animations if any go here
9112
+ this.emit("sgds-after-show");
9113
+ }
9114
+ else {
9115
+ const sgdsHide = this.emit("sgds-hide", { cancelable: true });
9116
+ if (sgdsHide.defaultPrevented) {
9117
+ this.show = true;
9118
+ return;
9119
+ }
9120
+ // animations if any go here
9121
+ this.emit("sgds-after-hide");
9122
+ }
9104
9123
  }
9105
9124
  render() {
9106
9125
  return (this.dismissible && this.show) || !this.dismissible
@@ -9133,7 +9152,7 @@
9133
9152
  : nothing;
9134
9153
  }
9135
9154
  }
9136
- SgdsBadge.styles = [...SgdsElement.styles, css_248z$7];
9155
+ SgdsBadge.styles = [...SgdsElement.styles, css_248z$6];
9137
9156
  /**@internal */
9138
9157
  SgdsBadge.dependencies = {
9139
9158
  "sgds-close-button": SgdsCloseButton
@@ -12081,7 +12100,8 @@
12081
12100
  this.selectedItems = this.selectedItems.filter(i => i.value !== foundItem.value);
12082
12101
  this.value = this.selectedItems.map(i => i.value).join(";");
12083
12102
  }
12084
- async _handleBadgeDismissed(item) {
12103
+ async _handleBadgeDismissed(e, item) {
12104
+ e.preventDefault();
12085
12105
  this.selectedItems = this.selectedItems.filter(i => i.value !== item.value);
12086
12106
  this.value = this.selectedItems.map(i => i.value).join(";");
12087
12107
  }
@@ -12180,7 +12200,7 @@
12180
12200
  variant="neutral"
12181
12201
  show
12182
12202
  dismissible
12183
- @sgds-hide=${() => this._handleBadgeDismissed(item)}
12203
+ @sgds-hide=${e => this._handleBadgeDismissed(e, item)}
12184
12204
  >${item.label}</sgds-badge
12185
12205
  >`)}
12186
12206
  `