@carbon/web-components 2.48.0 → 2.49.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 (226) hide show
  1. package/custom-elements.json +38 -13
  2. package/es/components/ai-label/ai-label.scss.js +1 -1
  3. package/es/components/breadcrumb/breadcrumb.scss.js +1 -1
  4. package/es/components/button/button-set.js +1 -1
  5. package/es/components/button/button-set.js.map +1 -1
  6. package/es/components/button/button.scss.js +1 -1
  7. package/es/components/checkbox/checkbox.js +1 -1
  8. package/es/components/checkbox/checkbox.js.map +1 -1
  9. package/es/components/code-snippet/code-snippet.scss.js +1 -1
  10. package/es/components/combo-box/combo-box-item.d.ts +3 -4
  11. package/es/components/combo-box/combo-box-item.js +0 -14
  12. package/es/components/combo-box/combo-box-item.js.map +1 -1
  13. package/es/components/combo-box/combo-box.d.ts +7 -0
  14. package/es/components/combo-box/combo-box.js +30 -8
  15. package/es/components/combo-box/combo-box.js.map +1 -1
  16. package/es/components/combo-box/combo-box.scss.js +1 -1
  17. package/es/components/combo-button/combo-button.scss.js +1 -1
  18. package/es/components/contained-list/contained-list.scss.js +1 -1
  19. package/es/components/content-switcher/content-switcher-item.d.ts +1 -1
  20. package/es/components/content-switcher/content-switcher-item.js +2 -2
  21. package/es/components/content-switcher/content-switcher-item.js.map +1 -1
  22. package/es/components/content-switcher/content-switcher.scss.js +1 -1
  23. package/es/components/copy-button/copy-button.scss.js +1 -1
  24. package/es/components/data-table/data-table.scss.js +1 -1
  25. package/es/components/data-table/table-skeleton.d.ts +1 -5
  26. package/es/components/data-table/table-skeleton.js +2 -10
  27. package/es/components/data-table/table-skeleton.js.map +1 -1
  28. package/es/components/dropdown/dropdown-item.d.ts +15 -0
  29. package/es/components/dropdown/dropdown-item.js +52 -0
  30. package/es/components/dropdown/dropdown-item.js.map +1 -1
  31. package/es/components/dropdown/dropdown.js +0 -1
  32. package/es/components/dropdown/dropdown.js.map +1 -1
  33. package/es/components/dropdown/dropdown.scss.js +1 -1
  34. package/es/components/file-uploader/file-uploader.scss.js +1 -1
  35. package/es/components/menu-button/menu-button.scss.js +1 -1
  36. package/es/components/modal/modal.scss.js +1 -1
  37. package/es/components/multi-select/multi-select.js +0 -3
  38. package/es/components/multi-select/multi-select.js.map +1 -1
  39. package/es/components/notification/actionable-notification.scss.js +1 -1
  40. package/es/components/notification/inline-notification.scss.js +1 -1
  41. package/es/components/notification/toast-notification.scss.js +1 -1
  42. package/es/components/overflow-menu/overflow-menu-item.d.ts +5 -1
  43. package/es/components/overflow-menu/overflow-menu-item.js +24 -1
  44. package/es/components/overflow-menu/overflow-menu-item.js.map +1 -1
  45. package/es/components/overflow-menu/overflow-menu.d.ts +1 -1
  46. package/es/components/overflow-menu/overflow-menu.js +3 -3
  47. package/es/components/overflow-menu/overflow-menu.js.map +1 -1
  48. package/es/components/overflow-menu/overflow-menu.scss.js +1 -1
  49. package/es/components/pagination/pagination.scss.js +1 -1
  50. package/es/components/pagination-nav/pagination-nav.scss.js +1 -1
  51. package/es/components/popover/popover.d.ts +12 -2
  52. package/es/components/popover/popover.js +56 -37
  53. package/es/components/popover/popover.js.map +1 -1
  54. package/es/components/popover/popover.scss.js +1 -1
  55. package/es/components/progress-indicator/progress-indicator.scss.js +1 -1
  56. package/es/components/progress-indicator/progress-step.d.ts +1 -1
  57. package/es/components/progress-indicator/progress-step.js +2 -2
  58. package/es/components/progress-indicator/progress-step.js.map +1 -1
  59. package/es/components/radio-button/radio-button.js +1 -1
  60. package/es/components/radio-button/radio-button.js.map +1 -1
  61. package/es/components/select/select.d.ts +1 -1
  62. package/es/components/select/select.js +3 -3
  63. package/es/components/select/select.js.map +1 -1
  64. package/es/components/skip-to-content/skip-to-content.scss.js +1 -1
  65. package/es/components/slug/slug.scss.js +1 -1
  66. package/es/components/tabs/tab.d.ts +1 -1
  67. package/es/components/tabs/tab.js +2 -2
  68. package/es/components/tabs/tab.js.map +1 -1
  69. package/es/components/tabs/tabs.scss.js +1 -1
  70. package/es/components/tag/tag.d.ts +1 -1
  71. package/es/components/tag/tag.js +2 -2
  72. package/es/components/tag/tag.js.map +1 -1
  73. package/es/components/tag/tag.scss.js +1 -1
  74. package/es/components/text-input/text-input.d.ts +2 -0
  75. package/es/components/text-input/text-input.js +26 -14
  76. package/es/components/text-input/text-input.js.map +1 -1
  77. package/es/components/tile/expandable-tile.d.ts +1 -1
  78. package/es/components/tile/expandable-tile.js +2 -2
  79. package/es/components/tile/expandable-tile.js.map +1 -1
  80. package/es/components/time-picker/time-picker-select.d.ts +1 -1
  81. package/es/components/time-picker/time-picker-select.js +2 -2
  82. package/es/components/time-picker/time-picker-select.js.map +1 -1
  83. package/es/components/toggle-tip/toggletip.d.ts +0 -1
  84. package/es/components/toggle-tip/toggletip.js +2 -13
  85. package/es/components/toggle-tip/toggletip.js.map +1 -1
  86. package/es/components/toggle-tip/toggletip.scss.js +1 -1
  87. package/es/components/tooltip/tooltip.scss.js +1 -1
  88. package/es/components/ui-shell/header-menu.d.ts +1 -1
  89. package/es/components/ui-shell/header-menu.js +2 -2
  90. package/es/components/ui-shell/header-menu.js.map +1 -1
  91. package/es/components/ui-shell/header.scss.js +1 -1
  92. package/es/components/ui-shell/side-nav-menu.d.ts +1 -1
  93. package/es/components/ui-shell/side-nav-menu.js +2 -2
  94. package/es/components/ui-shell/side-nav-menu.js.map +1 -1
  95. package/es/globals/controllers/floating-controller.js +6 -2
  96. package/es/globals/controllers/floating-controller.js.map +1 -1
  97. package/es/globals/internal/deep-shadow-contains.d.ts +15 -0
  98. package/es/globals/internal/deep-shadow-contains.js +36 -0
  99. package/es/globals/internal/deep-shadow-contains.js.map +1 -0
  100. package/es/polyfills/toggle-attribute.d.ts +1 -1
  101. package/es-custom/components/ai-label/ai-label.scss.js +1 -1
  102. package/es-custom/components/breadcrumb/breadcrumb.scss.js +1 -1
  103. package/es-custom/components/button/button-set.js +1 -1
  104. package/es-custom/components/button/button-set.js.map +1 -1
  105. package/es-custom/components/button/button.scss.js +1 -1
  106. package/es-custom/components/checkbox/checkbox.js +1 -1
  107. package/es-custom/components/checkbox/checkbox.js.map +1 -1
  108. package/es-custom/components/code-snippet/code-snippet.scss.js +1 -1
  109. package/es-custom/components/combo-box/combo-box-item.d.ts +3 -4
  110. package/es-custom/components/combo-box/combo-box-item.js +0 -14
  111. package/es-custom/components/combo-box/combo-box-item.js.map +1 -1
  112. package/es-custom/components/combo-box/combo-box.d.ts +7 -0
  113. package/es-custom/components/combo-box/combo-box.js +30 -8
  114. package/es-custom/components/combo-box/combo-box.js.map +1 -1
  115. package/es-custom/components/combo-box/combo-box.scss.js +1 -1
  116. package/es-custom/components/combo-button/combo-button.scss.js +1 -1
  117. package/es-custom/components/contained-list/contained-list.scss.js +1 -1
  118. package/es-custom/components/content-switcher/content-switcher-item.d.ts +1 -1
  119. package/es-custom/components/content-switcher/content-switcher-item.js +2 -2
  120. package/es-custom/components/content-switcher/content-switcher-item.js.map +1 -1
  121. package/es-custom/components/content-switcher/content-switcher.scss.js +1 -1
  122. package/es-custom/components/copy-button/copy-button.scss.js +1 -1
  123. package/es-custom/components/data-table/data-table.scss.js +1 -1
  124. package/es-custom/components/data-table/table-skeleton.d.ts +1 -5
  125. package/es-custom/components/data-table/table-skeleton.js +2 -10
  126. package/es-custom/components/data-table/table-skeleton.js.map +1 -1
  127. package/es-custom/components/dropdown/dropdown-item.d.ts +15 -0
  128. package/es-custom/components/dropdown/dropdown-item.js +52 -0
  129. package/es-custom/components/dropdown/dropdown-item.js.map +1 -1
  130. package/es-custom/components/dropdown/dropdown.js +0 -1
  131. package/es-custom/components/dropdown/dropdown.js.map +1 -1
  132. package/es-custom/components/dropdown/dropdown.scss.js +1 -1
  133. package/es-custom/components/file-uploader/file-uploader.scss.js +1 -1
  134. package/es-custom/components/menu-button/menu-button.scss.js +1 -1
  135. package/es-custom/components/modal/modal.scss.js +1 -1
  136. package/es-custom/components/multi-select/multi-select.js +0 -3
  137. package/es-custom/components/multi-select/multi-select.js.map +1 -1
  138. package/es-custom/components/notification/actionable-notification.scss.js +1 -1
  139. package/es-custom/components/notification/inline-notification.scss.js +1 -1
  140. package/es-custom/components/notification/toast-notification.scss.js +1 -1
  141. package/es-custom/components/overflow-menu/overflow-menu-item.d.ts +5 -1
  142. package/es-custom/components/overflow-menu/overflow-menu-item.js +24 -1
  143. package/es-custom/components/overflow-menu/overflow-menu-item.js.map +1 -1
  144. package/es-custom/components/overflow-menu/overflow-menu.d.ts +1 -1
  145. package/es-custom/components/overflow-menu/overflow-menu.js +3 -3
  146. package/es-custom/components/overflow-menu/overflow-menu.js.map +1 -1
  147. package/es-custom/components/overflow-menu/overflow-menu.scss.js +1 -1
  148. package/es-custom/components/pagination/pagination.scss.js +1 -1
  149. package/es-custom/components/pagination-nav/pagination-nav.scss.js +1 -1
  150. package/es-custom/components/popover/popover.d.ts +12 -2
  151. package/es-custom/components/popover/popover.js +56 -37
  152. package/es-custom/components/popover/popover.js.map +1 -1
  153. package/es-custom/components/popover/popover.scss.js +1 -1
  154. package/es-custom/components/progress-indicator/progress-indicator.scss.js +1 -1
  155. package/es-custom/components/progress-indicator/progress-step.d.ts +1 -1
  156. package/es-custom/components/progress-indicator/progress-step.js +2 -2
  157. package/es-custom/components/progress-indicator/progress-step.js.map +1 -1
  158. package/es-custom/components/radio-button/radio-button.js +1 -1
  159. package/es-custom/components/radio-button/radio-button.js.map +1 -1
  160. package/es-custom/components/select/select.d.ts +1 -1
  161. package/es-custom/components/select/select.js +3 -3
  162. package/es-custom/components/select/select.js.map +1 -1
  163. package/es-custom/components/skip-to-content/skip-to-content.scss.js +1 -1
  164. package/es-custom/components/slug/slug.scss.js +1 -1
  165. package/es-custom/components/tabs/tab.d.ts +1 -1
  166. package/es-custom/components/tabs/tab.js +2 -2
  167. package/es-custom/components/tabs/tab.js.map +1 -1
  168. package/es-custom/components/tabs/tabs.scss.js +1 -1
  169. package/es-custom/components/tag/tag.d.ts +1 -1
  170. package/es-custom/components/tag/tag.js +2 -2
  171. package/es-custom/components/tag/tag.js.map +1 -1
  172. package/es-custom/components/tag/tag.scss.js +1 -1
  173. package/es-custom/components/text-input/text-input.d.ts +2 -0
  174. package/es-custom/components/text-input/text-input.js +26 -14
  175. package/es-custom/components/text-input/text-input.js.map +1 -1
  176. package/es-custom/components/tile/expandable-tile.d.ts +1 -1
  177. package/es-custom/components/tile/expandable-tile.js +2 -2
  178. package/es-custom/components/tile/expandable-tile.js.map +1 -1
  179. package/es-custom/components/time-picker/time-picker-select.d.ts +1 -1
  180. package/es-custom/components/time-picker/time-picker-select.js +2 -2
  181. package/es-custom/components/time-picker/time-picker-select.js.map +1 -1
  182. package/es-custom/components/toggle-tip/toggletip.d.ts +0 -1
  183. package/es-custom/components/toggle-tip/toggletip.js +2 -13
  184. package/es-custom/components/toggle-tip/toggletip.js.map +1 -1
  185. package/es-custom/components/toggle-tip/toggletip.scss.js +1 -1
  186. package/es-custom/components/tooltip/tooltip.scss.js +1 -1
  187. package/es-custom/components/ui-shell/header-menu.d.ts +1 -1
  188. package/es-custom/components/ui-shell/header-menu.js +2 -2
  189. package/es-custom/components/ui-shell/header-menu.js.map +1 -1
  190. package/es-custom/components/ui-shell/header.scss.js +1 -1
  191. package/es-custom/components/ui-shell/side-nav-menu.d.ts +1 -1
  192. package/es-custom/components/ui-shell/side-nav-menu.js +2 -2
  193. package/es-custom/components/ui-shell/side-nav-menu.js.map +1 -1
  194. package/es-custom/globals/controllers/floating-controller.js +6 -2
  195. package/es-custom/globals/controllers/floating-controller.js.map +1 -1
  196. package/es-custom/globals/internal/deep-shadow-contains.d.ts +15 -0
  197. package/es-custom/globals/internal/deep-shadow-contains.js +36 -0
  198. package/es-custom/globals/internal/deep-shadow-contains.js.map +1 -0
  199. package/es-custom/polyfills/toggle-attribute.d.ts +1 -1
  200. package/lib/components/combo-box/combo-box-item.d.ts +3 -4
  201. package/lib/components/combo-box/combo-box.d.ts +7 -0
  202. package/lib/components/content-switcher/content-switcher-item.d.ts +1 -1
  203. package/lib/components/data-table/table-skeleton.d.ts +1 -5
  204. package/lib/components/dropdown/dropdown-item.d.ts +15 -0
  205. package/lib/components/overflow-menu/overflow-menu-item.d.ts +5 -1
  206. package/lib/components/overflow-menu/overflow-menu.d.ts +1 -1
  207. package/lib/components/popover/popover.d.ts +12 -2
  208. package/lib/components/progress-indicator/progress-step.d.ts +1 -1
  209. package/lib/components/select/select.d.ts +1 -1
  210. package/lib/components/tabs/tab.d.ts +1 -1
  211. package/lib/components/tag/tag.d.ts +1 -1
  212. package/lib/components/text-input/text-input.d.ts +2 -0
  213. package/lib/components/tile/expandable-tile.d.ts +1 -1
  214. package/lib/components/time-picker/time-picker-select.d.ts +1 -1
  215. package/lib/components/toggle-tip/toggletip.d.ts +0 -1
  216. package/lib/components/ui-shell/header-menu.d.ts +1 -1
  217. package/lib/components/ui-shell/side-nav-menu.d.ts +1 -1
  218. package/lib/globals/controllers/floating-controller.js +6 -2
  219. package/lib/globals/controllers/floating-controller.js.map +1 -1
  220. package/lib/globals/internal/deep-shadow-contains.d.ts +15 -0
  221. package/lib/polyfills/toggle-attribute.d.ts +1 -1
  222. package/package.json +6 -6
  223. package/scss/components/dropdown/dropdown.scss +5 -0
  224. package/scss/components/overflow-menu/overflow-menu.scss +4 -0
  225. package/scss/components/popover/popover.scss +160 -4
  226. package/telemetry.yml +2 -1
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright IBM Corp. 2019, 2023
2
+ * Copyright IBM Corp. 2019, 2026
3
3
  *
4
4
  * This source code is licensed under the Apache-2.0 license found in the
5
5
  * LICENSE file in the root directory of this source tree.
@@ -19,7 +19,7 @@ import styles from './tag.scss.js';
19
19
  import { carbonElement } from '../../globals/decorators/carbon-element.js';
20
20
 
21
21
  /**
22
- * Copyright IBM Corp. 2019, 2023
22
+ * Copyright IBM Corp. 2019, 2026
23
23
  *
24
24
  * This source code is licensed under the Apache-2.0 license found in the
25
25
  * LICENSE file in the root directory of this source tree.
@@ -120,7 +120,7 @@ let CDSTag = class CDSTag extends HostListenerMixin(FocusMixin(LitElement)) {
120
120
  */
121
121
  _handleIconSlotChange({ target }) {
122
122
  const hasIcon = target.assignedNodes();
123
- this.hasCustomIcon = Boolean(hasIcon.length > 0);
123
+ this.hasCustomIcon = hasIcon.length > 0;
124
124
  this.requestUpdate();
125
125
  }
126
126
  updated() {
@@ -1 +1 @@
1
- {"version":3,"file":"tag.js","sources":["../../../src/components/tag/tag.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2019, 2023\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { LitElement, html } from 'lit';\nimport { property, query, state } from 'lit/decorators.js';\nimport { prefix } from '../../globals/settings';\nimport { iconLoader } from '../../globals/internal/icon-loader';\nimport Close16 from '@carbon/icons/es/close/16.js';\nimport FocusMixin from '../../globals/mixins/focus';\nimport HostListener from '../../globals/decorators/host-listener';\nimport HostListenerMixin from '../../globals/mixins/host-listener';\nimport { TAG_SIZE, TAG_TYPE } from './defs';\nimport styles from './tag.scss?lit';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\n\nexport { TAG_SIZE, TAG_TYPE };\n\n/**\n * Tag.\n * @element cds-custom-tag\n * @fires cds-custom-tag-beingclosed - The custom event fired as the element is being closed\n * @fires cds-custom-tag-closed - The custom event fired after the element has been closed\n */\n@customElement(`${prefix}-tag`)\nclass CDSTag extends HostListenerMixin(FocusMixin(LitElement)) {\n @query('button')\n protected _buttonNode!: HTMLButtonElement;\n\n /**\n * Handles `slotchange` event.\n */\n protected _handleAILabelSlotChange({ target }: Event) {\n const hasContent = (target as HTMLSlotElement)\n .assignedNodes()\n .filter((elem) =>\n (elem as HTMLElement).matches !== undefined\n ? (elem as HTMLElement).matches(\n (this.constructor as typeof CDSTag).aiLabelItem\n ) ||\n // remove reference of slug in v12\n (elem as HTMLElement).matches(\n (this.constructor as typeof CDSTag).slugItem\n )\n : false\n );\n if (hasContent.length > 0) {\n (hasContent[0] as HTMLElement).setAttribute('tag', `${this.type}`);\n (hasContent[0] as HTMLElement).setAttribute('size', 'sm');\n (hasContent[0] as HTMLElement).setAttribute('kind', 'inline');\n }\n this.requestUpdate();\n }\n\n /**\n * Handles `slotchange` event.\n */\n protected _handleIconSlotChange({ target }: Event) {\n const hasIcon = (target as HTMLSlotElement).assignedNodes();\n\n this.hasCustomIcon = Boolean(hasIcon.length > 0);\n this.requestUpdate();\n }\n\n /**\n * Handles `click` event on this element.\n *\n * @param event The event.\n */\n @HostListener('shadowRoot:click')\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment -- https://github.com/carbon-design-system/carbon/issues/20452\n // @ts-ignore: The decorator refers to this method but TS thinks this method is not referred to\n protected _handleClick = (event: MouseEvent) => {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion -- https://github.com/carbon-design-system/carbon/issues/20452\n if (event.composedPath().indexOf(this._buttonNode!) >= 0) {\n if (this.disabled) {\n event.stopPropagation();\n } else if (this.open) {\n const init = {\n bubbles: true,\n cancelable: true,\n composed: true,\n detail: {\n triggeredBy: event.target,\n },\n };\n if (\n this.dispatchEvent(\n new CustomEvent(\n (this.constructor as typeof CDSTag).eventBeforeClose,\n init\n )\n )\n ) {\n this.open = false;\n this.dispatchEvent(\n new CustomEvent(\n (this.constructor as typeof CDSTag).eventClose,\n init\n )\n );\n }\n }\n }\n };\n\n /**\n * Text to show on filter tag \"clear\" buttons. Corresponds to the attribute with the same name\n *\n * @deprecated The `title` property has been deprecated and will be removed in the next major version. Use cds-custom-dismissible-tag instead.\n */\n @property({ type: String })\n title = 'Clear filter';\n\n /**\n * `true` if the tag should be disabled\n */\n @property({ type: Boolean, reflect: true })\n disabled = false;\n\n /**\n * Determine if is a filter/chip\n *\n * @deprecated The `filter` property has been deprecated and will be removed in the next major version. Use cds-custom-dismissible-tag instead.\n */\n @property({ type: Boolean, reflect: true })\n filter = false;\n\n /**\n * `true` if there is a custom icon.\n */\n @property({ type: Boolean, attribute: 'has-custom-icon', reflect: true })\n hasCustomIcon = false;\n\n /**\n * `true` if the tag should be open.\n */\n @property({ type: Boolean, reflect: true })\n open = true;\n\n /**\n * The size of the tag.\n */\n @property({ reflect: true })\n size = TAG_SIZE.MEDIUM;\n\n /**\n * The type of the tag.\n */\n @property({ reflect: true })\n type = TAG_TYPE.GRAY;\n\n /**\n * true if the tag text has ellipsis applied\n */\n @state()\n _hasEllipsisApplied = false;\n\n updated() {\n const textContainer = this.shadowRoot?.querySelector(\n `.${prefix}--tag__label`\n );\n if (!textContainer || this._hasEllipsisApplied === true) return;\n\n this._hasEllipsisApplied =\n textContainer.scrollWidth > textContainer.clientWidth;\n\n const root = this.getRootNode();\n // Check if the root is a shadow root and get its host\n if (root instanceof ShadowRoot) {\n const parent = root.host.tagName.toLowerCase();\n if (\n parent === `${prefix}-selectable-tag` ||\n parent === `${prefix}-operational-tag`\n ) {\n this.setAttribute('role', 'button');\n this.tabIndex = this.disabled ? -1 : 0;\n }\n }\n }\n\n render() {\n const {\n disabled,\n filter,\n _handleAILabelSlotChange: handleAILabelSlotChange,\n _handleIconSlotChange: handleIconSlotChange,\n size,\n title,\n } = this;\n\n return html`\n ${size !== TAG_SIZE.SMALL\n ? html`<slot name=\"icon\" @slotchange=\"${handleIconSlotChange}\"></slot>`\n : ''}\n <span class=\"${prefix}--tag__label\">\n <slot></slot>\n </span>\n <slot name=\"decorator\" @slotchange=\"${handleAILabelSlotChange}\"></slot>\n <slot name=\"ai-label\" @slotchange=\"${handleAILabelSlotChange}\"></slot>\n <slot name=\"slug\" @slotchange=\"${handleAILabelSlotChange}\"></slot>\n ${filter\n ? html`\n <button class=\"${prefix}--tag__close-icon\" ?disabled=${disabled}>\n ${iconLoader(Close16, { 'aria-label': title })}\n </button>\n `\n : ``}\n `;\n }\n\n /**\n * A selector that will return the slug item.\n *\n * remove in v12\n */\n static get slugItem() {\n return `${prefix}-slug`;\n }\n\n /**\n * A selector that will return the AI Label item.\n */\n static get aiLabelItem() {\n return `${prefix}-ai-label`;\n }\n\n /**\n * The name of the custom event fired before this tag is being closed upon a user gesture.\n * Cancellation of this event stops the user-initiated action of closing this tag.\n */\n static get eventBeforeClose() {\n return `${prefix}-tag-beingclosed`;\n }\n\n /**\n * The name of the custom event fired after this tag is closed upon a user gesture.\n */\n static get eventClose() {\n return `${prefix}-tag-closed`;\n }\n\n static styles = styles;\n}\n\nexport default CDSTag;\n"],"names":["customElement"],"mappings":"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"}
1
+ {"version":3,"file":"tag.js","sources":["../../../src/components/tag/tag.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2019, 2026\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { LitElement, html } from 'lit';\nimport { property, query, state } from 'lit/decorators.js';\nimport { prefix } from '../../globals/settings';\nimport { iconLoader } from '../../globals/internal/icon-loader';\nimport Close16 from '@carbon/icons/es/close/16.js';\nimport FocusMixin from '../../globals/mixins/focus';\nimport HostListener from '../../globals/decorators/host-listener';\nimport HostListenerMixin from '../../globals/mixins/host-listener';\nimport { TAG_SIZE, TAG_TYPE } from './defs';\nimport styles from './tag.scss?lit';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\n\nexport { TAG_SIZE, TAG_TYPE };\n\n/**\n * Tag.\n * @element cds-custom-tag\n * @fires cds-custom-tag-beingclosed - The custom event fired as the element is being closed\n * @fires cds-custom-tag-closed - The custom event fired after the element has been closed\n */\n@customElement(`${prefix}-tag`)\nclass CDSTag extends HostListenerMixin(FocusMixin(LitElement)) {\n @query('button')\n protected _buttonNode!: HTMLButtonElement;\n\n /**\n * Handles `slotchange` event.\n */\n protected _handleAILabelSlotChange({ target }: Event) {\n const hasContent = (target as HTMLSlotElement)\n .assignedNodes()\n .filter((elem) =>\n (elem as HTMLElement).matches !== undefined\n ? (elem as HTMLElement).matches(\n (this.constructor as typeof CDSTag).aiLabelItem\n ) ||\n // remove reference of slug in v12\n (elem as HTMLElement).matches(\n (this.constructor as typeof CDSTag).slugItem\n )\n : false\n );\n if (hasContent.length > 0) {\n (hasContent[0] as HTMLElement).setAttribute('tag', `${this.type}`);\n (hasContent[0] as HTMLElement).setAttribute('size', 'sm');\n (hasContent[0] as HTMLElement).setAttribute('kind', 'inline');\n }\n this.requestUpdate();\n }\n\n /**\n * Handles `slotchange` event.\n */\n protected _handleIconSlotChange({ target }: Event) {\n const hasIcon = (target as HTMLSlotElement).assignedNodes();\n\n this.hasCustomIcon = hasIcon.length > 0;\n this.requestUpdate();\n }\n\n /**\n * Handles `click` event on this element.\n *\n * @param event The event.\n */\n @HostListener('shadowRoot:click')\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment -- https://github.com/carbon-design-system/carbon/issues/20452\n // @ts-ignore: The decorator refers to this method but TS thinks this method is not referred to\n protected _handleClick = (event: MouseEvent) => {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion -- https://github.com/carbon-design-system/carbon/issues/20452\n if (event.composedPath().indexOf(this._buttonNode!) >= 0) {\n if (this.disabled) {\n event.stopPropagation();\n } else if (this.open) {\n const init = {\n bubbles: true,\n cancelable: true,\n composed: true,\n detail: {\n triggeredBy: event.target,\n },\n };\n if (\n this.dispatchEvent(\n new CustomEvent(\n (this.constructor as typeof CDSTag).eventBeforeClose,\n init\n )\n )\n ) {\n this.open = false;\n this.dispatchEvent(\n new CustomEvent(\n (this.constructor as typeof CDSTag).eventClose,\n init\n )\n );\n }\n }\n }\n };\n\n /**\n * Text to show on filter tag \"clear\" buttons. Corresponds to the attribute with the same name\n *\n * @deprecated The `title` property has been deprecated and will be removed in the next major version. Use cds-custom-dismissible-tag instead.\n */\n @property({ type: String })\n title = 'Clear filter';\n\n /**\n * `true` if the tag should be disabled\n */\n @property({ type: Boolean, reflect: true })\n disabled = false;\n\n /**\n * Determine if is a filter/chip\n *\n * @deprecated The `filter` property has been deprecated and will be removed in the next major version. Use cds-custom-dismissible-tag instead.\n */\n @property({ type: Boolean, reflect: true })\n filter = false;\n\n /**\n * `true` if there is a custom icon.\n */\n @property({ type: Boolean, attribute: 'has-custom-icon', reflect: true })\n hasCustomIcon = false;\n\n /**\n * `true` if the tag should be open.\n */\n @property({ type: Boolean, reflect: true })\n open = true;\n\n /**\n * The size of the tag.\n */\n @property({ reflect: true })\n size = TAG_SIZE.MEDIUM;\n\n /**\n * The type of the tag.\n */\n @property({ reflect: true })\n type = TAG_TYPE.GRAY;\n\n /**\n * true if the tag text has ellipsis applied\n */\n @state()\n _hasEllipsisApplied = false;\n\n updated() {\n const textContainer = this.shadowRoot?.querySelector(\n `.${prefix}--tag__label`\n );\n if (!textContainer || this._hasEllipsisApplied === true) return;\n\n this._hasEllipsisApplied =\n textContainer.scrollWidth > textContainer.clientWidth;\n\n const root = this.getRootNode();\n // Check if the root is a shadow root and get its host\n if (root instanceof ShadowRoot) {\n const parent = root.host.tagName.toLowerCase();\n if (\n parent === `${prefix}-selectable-tag` ||\n parent === `${prefix}-operational-tag`\n ) {\n this.setAttribute('role', 'button');\n this.tabIndex = this.disabled ? -1 : 0;\n }\n }\n }\n\n render() {\n const {\n disabled,\n filter,\n _handleAILabelSlotChange: handleAILabelSlotChange,\n _handleIconSlotChange: handleIconSlotChange,\n size,\n title,\n } = this;\n\n return html`\n ${size !== TAG_SIZE.SMALL\n ? html`<slot name=\"icon\" @slotchange=\"${handleIconSlotChange}\"></slot>`\n : ''}\n <span class=\"${prefix}--tag__label\">\n <slot></slot>\n </span>\n <slot name=\"decorator\" @slotchange=\"${handleAILabelSlotChange}\"></slot>\n <slot name=\"ai-label\" @slotchange=\"${handleAILabelSlotChange}\"></slot>\n <slot name=\"slug\" @slotchange=\"${handleAILabelSlotChange}\"></slot>\n ${filter\n ? html`\n <button class=\"${prefix}--tag__close-icon\" ?disabled=${disabled}>\n ${iconLoader(Close16, { 'aria-label': title })}\n </button>\n `\n : ``}\n `;\n }\n\n /**\n * A selector that will return the slug item.\n *\n * remove in v12\n */\n static get slugItem() {\n return `${prefix}-slug`;\n }\n\n /**\n * A selector that will return the AI Label item.\n */\n static get aiLabelItem() {\n return `${prefix}-ai-label`;\n }\n\n /**\n * The name of the custom event fired before this tag is being closed upon a user gesture.\n * Cancellation of this event stops the user-initiated action of closing this tag.\n */\n static get eventBeforeClose() {\n return `${prefix}-tag-beingclosed`;\n }\n\n /**\n * The name of the custom event fired after this tag is closed upon a user gesture.\n */\n static get eventClose() {\n return `${prefix}-tag-closed`;\n }\n\n static styles = styles;\n}\n\nexport default CDSTag;\n"],"names":["customElement"],"mappings":"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"}