@carbon/web-components 2.41.0-rc.0 → 2.41.1

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 (141) hide show
  1. package/custom-elements.json +130 -0
  2. package/dist/ai-label.min.js +8 -8
  3. package/dist/breadcrumb.min.js +4 -4
  4. package/dist/button-CmUJmoio.js +93 -0
  5. package/dist/{button-skeleton-DKiPqzwa.js → button-skeleton-Ba4xDn6y.js} +1 -1
  6. package/dist/button.min.js +1 -1
  7. package/dist/chat-button.min.js +3 -3
  8. package/dist/code-snippet.min.js +29 -29
  9. package/dist/combo-button.min.js +7 -7
  10. package/dist/content-switcher-item-Cz7OvIj8.js +54 -0
  11. package/dist/content-switcher.min.js +1 -1
  12. package/dist/copy-button.min.js +8 -8
  13. package/dist/data-table.min.js +41 -41
  14. package/dist/feature-flags.min.js +1 -1
  15. package/dist/file-uploader.min.js +29 -29
  16. package/dist/floating-controller-CxZPAslz.js +28 -0
  17. package/dist/icon-button.min.js +7 -7
  18. package/dist/icon-indicator.min.js +1 -1
  19. package/dist/menu-button.min.js +5 -5
  20. package/dist/modal.min.js +6 -6
  21. package/dist/notification.min.js +28 -28
  22. package/dist/overflow-menu.min.js +6 -6
  23. package/dist/pagination.min.js +24 -24
  24. package/dist/password-input.min.js +7 -7
  25. package/dist/popover.min.js +9 -9
  26. package/dist/progress-indicator.min.js +12 -12
  27. package/dist/radio-button.min.js +3 -3
  28. package/dist/side-panel.min.js +6 -6
  29. package/dist/skip-to-content.min.js +4 -4
  30. package/dist/slug.min.js +8 -8
  31. package/dist/tabs.min.js +24 -24
  32. package/dist/tag.min.js +49 -49
  33. package/dist/tearsheet.min.js +1 -1
  34. package/dist/tile.min.js +1 -1
  35. package/dist/toggle-tip.min.js +14 -14
  36. package/dist/tooltip-content-Tyg0Hg0i.js +30 -0
  37. package/dist/tooltip.min.js +1 -1
  38. package/dist/ui-shell.min.js +53 -53
  39. package/es/components/ai-label/ai-label.scss.js +1 -1
  40. package/es/components/breadcrumb/breadcrumb.scss.js +1 -1
  41. package/es/components/button/button.scss.js +1 -1
  42. package/es/components/chat-button/chat-button.scss.js +1 -1
  43. package/es/components/code-snippet/code-snippet.scss.js +1 -1
  44. package/es/components/combo-button/combo-button.scss.js +1 -1
  45. package/es/components/content-switcher/content-switcher.scss.js +1 -1
  46. package/es/components/copy-button/copy-button.scss.js +1 -1
  47. package/es/components/data-table/data-table.scss.js +1 -1
  48. package/es/components/data-table/table.js +12 -4
  49. package/es/components/data-table/table.js.map +1 -1
  50. package/es/components/feature-flags/index.js +1 -0
  51. package/es/components/feature-flags/index.js.map +1 -1
  52. package/es/components/file-uploader/file-uploader.scss.js +1 -1
  53. package/es/components/icon-button/icon-button.scss.js +1 -1
  54. package/es/components/menu-button/menu-button.scss.js +1 -1
  55. package/es/components/modal/modal.scss.js +1 -1
  56. package/es/components/notification/actionable-notification.scss.js +1 -1
  57. package/es/components/notification/inline-notification.scss.js +1 -1
  58. package/es/components/notification/toast-notification.scss.js +1 -1
  59. package/es/components/overflow-menu/overflow-menu.scss.js +1 -1
  60. package/es/components/pagination/pagination.scss.js +1 -1
  61. package/es/components/popover/defs.d.ts +13 -0
  62. package/es/components/popover/defs.js +15 -1
  63. package/es/components/popover/defs.js.map +1 -1
  64. package/es/components/popover/popover-content.d.ts +13 -0
  65. package/es/components/popover/popover-content.js +22 -0
  66. package/es/components/popover/popover-content.js.map +1 -1
  67. package/es/components/popover/popover.d.ts +10 -1
  68. package/es/components/popover/popover.js +31 -3
  69. package/es/components/popover/popover.js.map +1 -1
  70. package/es/components/popover/popover.scss.js +1 -1
  71. package/es/components/progress-indicator/progress-indicator.scss.js +1 -1
  72. package/es/components/skip-to-content/skip-to-content.scss.js +1 -1
  73. package/es/components/slug/slug.scss.js +1 -1
  74. package/es/components/tabs/tabs.scss.js +1 -1
  75. package/es/components/tag/tag.scss.js +1 -1
  76. package/es/components/tile/tile.scss.js +1 -1
  77. package/es/components/toggle-tip/toggletip.scss.js +1 -1
  78. package/es/components/tooltip/tooltip.js +3 -0
  79. package/es/components/tooltip/tooltip.js.map +1 -1
  80. package/es/components/tooltip/tooltip.scss.js +1 -1
  81. package/es/components/ui-shell/header.scss.js +1 -1
  82. package/es/feature-flags/es/index.js +30 -2
  83. package/es/feature-flags/es/index.js.map +1 -1
  84. package/es-custom/components/ai-label/ai-label.scss.js +1 -1
  85. package/es-custom/components/breadcrumb/breadcrumb.scss.js +1 -1
  86. package/es-custom/components/button/button.scss.js +1 -1
  87. package/es-custom/components/chat-button/chat-button.scss.js +1 -1
  88. package/es-custom/components/code-snippet/code-snippet.scss.js +1 -1
  89. package/es-custom/components/combo-button/combo-button.scss.js +1 -1
  90. package/es-custom/components/content-switcher/content-switcher.scss.js +1 -1
  91. package/es-custom/components/copy-button/copy-button.scss.js +1 -1
  92. package/es-custom/components/data-table/data-table.scss.js +1 -1
  93. package/es-custom/components/data-table/table.js +12 -4
  94. package/es-custom/components/data-table/table.js.map +1 -1
  95. package/es-custom/components/feature-flags/index.js +1 -0
  96. package/es-custom/components/feature-flags/index.js.map +1 -1
  97. package/es-custom/components/file-uploader/file-uploader.scss.js +1 -1
  98. package/es-custom/components/icon-button/icon-button.scss.js +1 -1
  99. package/es-custom/components/menu-button/menu-button.scss.js +1 -1
  100. package/es-custom/components/modal/modal.scss.js +1 -1
  101. package/es-custom/components/notification/actionable-notification.scss.js +1 -1
  102. package/es-custom/components/notification/inline-notification.scss.js +1 -1
  103. package/es-custom/components/notification/toast-notification.scss.js +1 -1
  104. package/es-custom/components/overflow-menu/overflow-menu.scss.js +1 -1
  105. package/es-custom/components/pagination/pagination.scss.js +1 -1
  106. package/es-custom/components/popover/defs.d.ts +13 -0
  107. package/es-custom/components/popover/defs.js +15 -1
  108. package/es-custom/components/popover/defs.js.map +1 -1
  109. package/es-custom/components/popover/popover-content.d.ts +13 -0
  110. package/es-custom/components/popover/popover-content.js +22 -0
  111. package/es-custom/components/popover/popover-content.js.map +1 -1
  112. package/es-custom/components/popover/popover.d.ts +10 -1
  113. package/es-custom/components/popover/popover.js +31 -3
  114. package/es-custom/components/popover/popover.js.map +1 -1
  115. package/es-custom/components/popover/popover.scss.js +1 -1
  116. package/es-custom/components/progress-indicator/progress-indicator.scss.js +1 -1
  117. package/es-custom/components/skip-to-content/skip-to-content.scss.js +1 -1
  118. package/es-custom/components/slug/slug.scss.js +1 -1
  119. package/es-custom/components/tabs/tabs.scss.js +1 -1
  120. package/es-custom/components/tag/tag.scss.js +1 -1
  121. package/es-custom/components/tile/tile.scss.js +1 -1
  122. package/es-custom/components/toggle-tip/toggletip.scss.js +1 -1
  123. package/es-custom/components/tooltip/tooltip.js +3 -0
  124. package/es-custom/components/tooltip/tooltip.js.map +1 -1
  125. package/es-custom/components/tooltip/tooltip.scss.js +1 -1
  126. package/es-custom/components/ui-shell/header.scss.js +1 -1
  127. package/es-custom/feature-flags/es/index.js +30 -2
  128. package/es-custom/feature-flags/es/index.js.map +1 -1
  129. package/lib/components/popover/defs.d.ts +13 -0
  130. package/lib/components/popover/defs.js +14 -0
  131. package/lib/components/popover/defs.js.map +1 -1
  132. package/lib/components/popover/popover-content.d.ts +13 -0
  133. package/lib/components/popover/popover.d.ts +10 -1
  134. package/package.json +4 -4
  135. package/scss/components/popover/popover.scss +210 -9
  136. package/telemetry.yml +5 -1
  137. package/dist/button-Co3aPX0Y.js +0 -93
  138. package/dist/content-switcher-item-BDJMJLCb.js +0 -54
  139. package/dist/defs-CBJRLDfw.js +0 -28
  140. package/dist/floating-controller-CnuSelc_.js +0 -28
  141. package/dist/tooltip-content-BZBP-szv.js +0 -30
@@ -1,10 +1,11 @@
1
1
  /**
2
- * Copyright IBM Corp. 2019, 2024
2
+ * Copyright IBM Corp. 2019, 2025
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.
6
6
  */
7
7
  import { LitElement } from 'lit';
8
+ import { POPOVER_BACKGROUND_TOKEN } from './defs';
8
9
  declare const CDSPopover_base: {
9
10
  new (...args: any[]): {
10
11
  _handles: Set<import("../../globals/internal/handle").default>;
@@ -403,6 +404,10 @@ declare class CDSPopover extends CDSPopover_base {
403
404
  * Specify whether a dropShadow should be rendered
404
405
  */
405
406
  dropShadow: boolean;
407
+ /**
408
+ * Specify whether a border should be rendered on the popover
409
+ */
410
+ border: boolean;
406
411
  /**
407
412
  * Render the component using the high-contrast variant
408
413
  */
@@ -415,6 +420,10 @@ declare class CDSPopover extends CDSPopover_base {
415
420
  * Render the component using the tab tip variant
416
421
  */
417
422
  tabTip: boolean;
423
+ /**
424
+ * Specify the background token to use. Default is 'layer'.
425
+ */
426
+ backgroundToken: POPOVER_BACKGROUND_TOKEN;
418
427
  /**
419
428
  * Handles `slotchange` event.
420
429
  */
@@ -15,9 +15,10 @@ import styles from './popover.scss.js';
15
15
  import HostListener from '../../globals/decorators/host-listener.js';
16
16
  import HostListenerMixin from '../../globals/mixins/host-listener.js';
17
17
  import FloatingController from '../../globals/controllers/floating-controller.js';
18
+ import { POPOVER_BACKGROUND_TOKEN } from './defs.js';
18
19
 
19
20
  /**
20
- * Copyright IBM Corp. 2019, 2024
21
+ * Copyright IBM Corp. 2019, 2025
21
22
  *
22
23
  * This source code is licensed under the Apache-2.0 license found in the
23
24
  * LICENSE file in the root directory of this source tree.
@@ -75,6 +76,10 @@ let CDSPopover = CDSPopover_1 = class CDSPopover extends HostListenerMixin(LitEl
75
76
  * Specify whether a dropShadow should be rendered
76
77
  */
77
78
  this.dropShadow = true;
79
+ /**
80
+ * Specify whether a border should be rendered on the popover
81
+ */
82
+ this.border = false;
78
83
  /**
79
84
  * Render the component using the high-contrast variant
80
85
  */
@@ -87,6 +92,10 @@ let CDSPopover = CDSPopover_1 = class CDSPopover extends HostListenerMixin(LitEl
87
92
  * Render the component using the tab tip variant
88
93
  */
89
94
  this.tabTip = false;
95
+ /**
96
+ * Specify the background token to use. Default is 'layer'.
97
+ */
98
+ this.backgroundToken = POPOVER_BACKGROUND_TOKEN.LAYER;
90
99
  this._handleOutsideClick = this._handleOutsideClick.bind(this);
91
100
  }
92
101
  connectedCallback() {
@@ -99,7 +108,17 @@ let CDSPopover = CDSPopover_1 = class CDSPopover extends HostListenerMixin(LitEl
99
108
  updated(changedProperties) {
100
109
  var _a, _b, _c;
101
110
  const { selectorPopoverContent } = this.constructor;
102
- ['open', 'align', 'autoalign', 'caret', 'dropShadow', 'tabTip'].forEach((name) => {
111
+ [
112
+ 'open',
113
+ 'align',
114
+ 'autoalign',
115
+ 'caret',
116
+ 'dropShadow',
117
+ 'border',
118
+ 'tabTip',
119
+ 'highContrast',
120
+ 'backgroundToken',
121
+ ].forEach((name) => {
103
122
  if (changedProperties.has(name)) {
104
123
  const { [name]: value } = this;
105
124
  if (this.querySelector(selectorPopoverContent)) {
@@ -129,7 +148,7 @@ let CDSPopover = CDSPopover_1 = class CDSPopover extends HostListenerMixin(LitEl
129
148
  }
130
149
  }
131
150
  render() {
132
- const { dropShadow, highContrast, open, tabTip, _handleSlotChange: handleSlotChange, } = this;
151
+ const { dropShadow, border, highContrast, open, tabTip, _handleSlotChange: handleSlotChange, } = this;
133
152
  if (tabTip) {
134
153
  this.caret = tabTip ? false : true;
135
154
  }
@@ -138,10 +157,13 @@ let CDSPopover = CDSPopover_1 = class CDSPopover extends HostListenerMixin(LitEl
138
157
  [`${prefix}--popover-container`]: true,
139
158
  [`${prefix}--popover--caret`]: this.caret,
140
159
  [`${prefix}--popover--drop-shadow`]: dropShadow,
160
+ [`${prefix}--popover--border`]: border,
141
161
  [`${prefix}--popover--high-contrast`]: highContrast,
142
162
  [`${prefix}--popover--open`]: open,
143
163
  [`${prefix}--popover--${this.align}`]: true,
144
164
  [`${prefix}--popover--tab-tip`]: tabTip,
165
+ [`${prefix}--popover--background-token__background`]: this.backgroundToken === POPOVER_BACKGROUND_TOKEN.BACKGROUND &&
166
+ !highContrast,
145
167
  });
146
168
  return html `
147
169
  <span class="${classes}" part="popover-container">
@@ -190,6 +212,9 @@ __decorate([
190
212
  __decorate([
191
213
  property({ type: Boolean, reflect: true })
192
214
  ], CDSPopover.prototype, "dropShadow", void 0);
215
+ __decorate([
216
+ property({ type: Boolean, reflect: true })
217
+ ], CDSPopover.prototype, "border", void 0);
193
218
  __decorate([
194
219
  property({ type: Boolean, reflect: true })
195
220
  ], CDSPopover.prototype, "highContrast", void 0);
@@ -199,6 +224,9 @@ __decorate([
199
224
  __decorate([
200
225
  property({ type: Boolean, reflect: true })
201
226
  ], CDSPopover.prototype, "tabTip", void 0);
227
+ __decorate([
228
+ property({ reflect: true, type: String })
229
+ ], CDSPopover.prototype, "backgroundToken", void 0);
202
230
  __decorate([
203
231
  HostListener('focusout')
204
232
  // eslint-disable-next-line @typescript-eslint/ban-ts-comment -- https://github.com/carbon-design-system/carbon/issues/20452
@@ -1 +1 @@
1
- {"version":3,"file":"popover.js","sources":["../../../src/components/popover/popover.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2019, 2024\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 { classMap } from 'lit/directives/class-map.js';\nimport { LitElement, html } from 'lit';\nimport { property, query } from 'lit/decorators.js';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\nimport { prefix } from '../../globals/settings';\nimport styles from './popover.scss?lit';\nimport CDSPopoverContent from './popover-content';\nimport HostListener from '../../globals/decorators/host-listener';\nimport HostListenerMixin from '../../globals/mixins/host-listener';\nimport FloatingUIContoller from '../../globals/controllers/floating-controller';\n\n/**\n * Popover.\n *\n * @element cds-popover\n */\n@customElement(`${prefix}-popover`)\nclass CDSPopover extends HostListenerMixin(LitElement) {\n /**\n * Create popover controller instance\n */\n private popoverController = new FloatingUIContoller(this);\n\n /**\n * The `<slot>` element in the shadow DOM.\n */\n @query('slot')\n private _triggerSlotNode!: HTMLSlotElement;\n\n /**\n * The `<slot>` element in the shadow DOM.\n */\n @query('slot[name=\"content\"]')\n private _contentSlotNode!: HTMLSlotElement;\n\n /**\n * Specify direction of alignment\n */\n @property({ reflect: true, type: String })\n align = '';\n\n /**\n * Specify whether a auto align functionality should be applied\n */\n @property({ type: Boolean, reflect: true })\n autoalign = false;\n\n /**\n * Specify whether a caret should be rendered\n */\n @property({ type: Boolean, reflect: true })\n caret = true;\n\n /**\n * Specify whether a dropShadow should be rendered\n */\n @property({ type: Boolean, reflect: true })\n dropShadow = true;\n\n /**\n * Render the component using the high-contrast variant\n */\n @property({ type: Boolean, reflect: true })\n highContrast = false;\n\n /**\n * Specify whether the component is currently open or closed\n */\n @property({ type: Boolean, reflect: true })\n open = false;\n\n /**\n * Render the component using the tab tip variant\n */\n @property({ type: Boolean, reflect: true })\n tabTip = false;\n\n /**\n * Handles `slotchange` event.\n */\n protected _handleSlotChange({ target }: Event) {\n if (this.tabTip) {\n const component = (target as HTMLSlotElement).assignedNodes().filter(\n (node) =>\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion -- https://github.com/carbon-design-system/carbon/issues/20452\n node.nodeType !== Node.TEXT_NODE || node!.textContent!.trim()\n );\n (component[0] as HTMLElement).classList.add(\n `${prefix}--popover--tab-tip__button`\n );\n }\n this.requestUpdate();\n }\n\n @HostListener('focusout')\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment -- https://github.com/carbon-design-system/carbon/issues/20452\n // @ts-ignore\n private _handleFocusOut(event: Event) {\n const relatedTarget = (event as FocusEvent).relatedTarget as Node | null;\n if (!this.contains(relatedTarget)) {\n this.open = false;\n }\n }\n\n private _handleOutsideClick(event: Event) {\n const target = event.target as Node | null;\n if (this.open && target && !this.contains(target)) {\n this.open = false;\n }\n }\n\n constructor() {\n super();\n this._handleOutsideClick = this._handleOutsideClick.bind(this);\n }\n\n connectedCallback() {\n super.connectedCallback();\n document.addEventListener('click', this._handleOutsideClick);\n }\n\n disconnectedCallback() {\n document.removeEventListener('click', this._handleOutsideClick);\n }\n\n updated(changedProperties) {\n const { selectorPopoverContent } = this.constructor as typeof CDSPopover;\n ['open', 'align', 'autoalign', 'caret', 'dropShadow', 'tabTip'].forEach(\n (name) => {\n if (changedProperties.has(name)) {\n const { [name as keyof CDSPopover]: value } = this;\n if (this.querySelector(selectorPopoverContent) as CDSPopoverContent) {\n (this.querySelector(selectorPopoverContent) as CDSPopoverContent)[\n name\n ] = value;\n }\n }\n }\n );\n\n if (this.autoalign && this.open) {\n // auto align functionality with @floating-ui/dom library\n const button = this._triggerSlotNode.assignedElements()[0];\n const content = this._contentSlotNode.assignedElements()[0];\n\n const tooltip = content?.shadowRoot?.querySelector(\n CDSPopover.selectorPopoverContentClass\n );\n const arrowElement = content?.shadowRoot?.querySelector(\n CDSPopover.selectorPopoverCaret\n );\n\n if (button && tooltip) {\n this.popoverController?.setPlacement({\n trigger: button as HTMLElement,\n target: tooltip as HTMLElement,\n arrowElement:\n this.caret && arrowElement\n ? (arrowElement as HTMLElement)\n : undefined,\n caret: this.caret,\n flipArguments: { fallbackAxisSideDirection: 'start' },\n alignment: this.align,\n open: this.open,\n });\n }\n }\n }\n\n render() {\n const {\n dropShadow,\n highContrast,\n open,\n tabTip,\n _handleSlotChange: handleSlotChange,\n } = this;\n if (tabTip) {\n this.caret = tabTip ? false : true;\n }\n this.align = this.align ? this.align : tabTip ? 'bottom-left' : 'bottom';\n\n const classes = classMap({\n [`${prefix}--popover-container`]: true,\n [`${prefix}--popover--caret`]: this.caret,\n [`${prefix}--popover--drop-shadow`]: dropShadow,\n [`${prefix}--popover--high-contrast`]: highContrast,\n [`${prefix}--popover--open`]: open,\n [`${prefix}--popover--${this.align}`]: true,\n [`${prefix}--popover--tab-tip`]: tabTip,\n });\n return html`\n <span class=\"${classes}\" part=\"popover-container\">\n <slot @slotchange=\"${handleSlotChange}\"></slot>\n <slot name=\"content\"></slot>\n </span>\n `;\n }\n\n /**\n * A selector that will return popover content element within\n * CDSPopoverContent's shadowRoot.\n */\n static get selectorPopoverContentClass() {\n return `.${prefix}--popover-content`;\n }\n\n /**\n * A selector that will return popover caret element within\n * CDSPopoverContent's shadowRoot.\n */\n static get selectorPopoverCaret() {\n return `.${prefix}--popover-caret`;\n }\n\n /**\n * A selector that will return the CDSPopoverContent.\n */\n static get selectorPopoverContent() {\n return `${prefix}-popover-content`;\n }\n\n static styles = styles;\n}\n\nexport default CDSPopover;\n"],"names":["FloatingUIContoller","customElement"],"mappings":"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"}
1
+ {"version":3,"file":"popover.js","sources":["../../../src/components/popover/popover.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2019, 2025\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 { classMap } from 'lit/directives/class-map.js';\nimport { LitElement, html } from 'lit';\nimport { property, query } from 'lit/decorators.js';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\nimport { prefix } from '../../globals/settings';\nimport styles from './popover.scss?lit';\nimport CDSPopoverContent from './popover-content';\nimport HostListener from '../../globals/decorators/host-listener';\nimport HostListenerMixin from '../../globals/mixins/host-listener';\nimport FloatingUIContoller from '../../globals/controllers/floating-controller';\nimport { POPOVER_BACKGROUND_TOKEN } from './defs';\n\n/**\n * Popover.\n *\n * @element cds-popover\n */\n@customElement(`${prefix}-popover`)\nclass CDSPopover extends HostListenerMixin(LitElement) {\n /**\n * Create popover controller instance\n */\n private popoverController = new FloatingUIContoller(this);\n\n /**\n * The `<slot>` element in the shadow DOM.\n */\n @query('slot')\n private _triggerSlotNode!: HTMLSlotElement;\n\n /**\n * The `<slot>` element in the shadow DOM.\n */\n @query('slot[name=\"content\"]')\n private _contentSlotNode!: HTMLSlotElement;\n\n /**\n * Specify direction of alignment\n */\n @property({ reflect: true, type: String })\n align = '';\n\n /**\n * Specify whether a auto align functionality should be applied\n */\n @property({ type: Boolean, reflect: true })\n autoalign = false;\n\n /**\n * Specify whether a caret should be rendered\n */\n @property({ type: Boolean, reflect: true })\n caret = true;\n\n /**\n * Specify whether a dropShadow should be rendered\n */\n @property({ type: Boolean, reflect: true })\n dropShadow = true;\n\n /**\n * Specify whether a border should be rendered on the popover\n */\n @property({ type: Boolean, reflect: true })\n border = false;\n\n /**\n * Render the component using the high-contrast variant\n */\n @property({ type: Boolean, reflect: true })\n highContrast = false;\n\n /**\n * Specify whether the component is currently open or closed\n */\n @property({ type: Boolean, reflect: true })\n open = false;\n\n /**\n * Render the component using the tab tip variant\n */\n @property({ type: Boolean, reflect: true })\n tabTip = false;\n\n /**\n * Specify the background token to use. Default is 'layer'.\n */\n @property({ reflect: true, type: String })\n backgroundToken = POPOVER_BACKGROUND_TOKEN.LAYER;\n\n /**\n * Handles `slotchange` event.\n */\n protected _handleSlotChange({ target }: Event) {\n if (this.tabTip) {\n const component = (target as HTMLSlotElement).assignedNodes().filter(\n (node) =>\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion -- https://github.com/carbon-design-system/carbon/issues/20452\n node.nodeType !== Node.TEXT_NODE || node!.textContent!.trim()\n );\n (component[0] as HTMLElement).classList.add(\n `${prefix}--popover--tab-tip__button`\n );\n }\n this.requestUpdate();\n }\n\n @HostListener('focusout')\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment -- https://github.com/carbon-design-system/carbon/issues/20452\n // @ts-ignore\n private _handleFocusOut(event: Event) {\n const relatedTarget = (event as FocusEvent).relatedTarget as Node | null;\n if (!this.contains(relatedTarget)) {\n this.open = false;\n }\n }\n\n private _handleOutsideClick(event: Event) {\n const target = event.target as Node | null;\n if (this.open && target && !this.contains(target)) {\n this.open = false;\n }\n }\n\n constructor() {\n super();\n this._handleOutsideClick = this._handleOutsideClick.bind(this);\n }\n\n connectedCallback() {\n super.connectedCallback();\n document.addEventListener('click', this._handleOutsideClick);\n }\n\n disconnectedCallback() {\n document.removeEventListener('click', this._handleOutsideClick);\n }\n\n updated(changedProperties) {\n const { selectorPopoverContent } = this.constructor as typeof CDSPopover;\n [\n 'open',\n 'align',\n 'autoalign',\n 'caret',\n 'dropShadow',\n 'border',\n 'tabTip',\n 'highContrast',\n 'backgroundToken',\n ].forEach((name) => {\n if (changedProperties.has(name)) {\n const { [name as keyof CDSPopover]: value } = this;\n if (this.querySelector(selectorPopoverContent) as CDSPopoverContent) {\n (this.querySelector(selectorPopoverContent) as CDSPopoverContent)[\n name\n ] = value;\n }\n }\n });\n\n if (this.autoalign && this.open) {\n // auto align functionality with @floating-ui/dom library\n const button = this._triggerSlotNode.assignedElements()[0];\n const content = this._contentSlotNode.assignedElements()[0];\n\n const tooltip = content?.shadowRoot?.querySelector(\n CDSPopover.selectorPopoverContentClass\n );\n const arrowElement = content?.shadowRoot?.querySelector(\n CDSPopover.selectorPopoverCaret\n );\n\n if (button && tooltip) {\n this.popoverController?.setPlacement({\n trigger: button as HTMLElement,\n target: tooltip as HTMLElement,\n arrowElement:\n this.caret && arrowElement\n ? (arrowElement as HTMLElement)\n : undefined,\n caret: this.caret,\n flipArguments: { fallbackAxisSideDirection: 'start' },\n alignment: this.align,\n open: this.open,\n });\n }\n }\n }\n\n render() {\n const {\n dropShadow,\n border,\n highContrast,\n open,\n tabTip,\n _handleSlotChange: handleSlotChange,\n } = this;\n if (tabTip) {\n this.caret = tabTip ? false : true;\n }\n this.align = this.align ? this.align : tabTip ? 'bottom-left' : 'bottom';\n\n const classes = classMap({\n [`${prefix}--popover-container`]: true,\n [`${prefix}--popover--caret`]: this.caret,\n [`${prefix}--popover--drop-shadow`]: dropShadow,\n [`${prefix}--popover--border`]: border,\n [`${prefix}--popover--high-contrast`]: highContrast,\n [`${prefix}--popover--open`]: open,\n [`${prefix}--popover--${this.align}`]: true,\n [`${prefix}--popover--tab-tip`]: tabTip,\n [`${prefix}--popover--background-token__background`]:\n this.backgroundToken === POPOVER_BACKGROUND_TOKEN.BACKGROUND &&\n !highContrast,\n });\n return html`\n <span class=\"${classes}\" part=\"popover-container\">\n <slot @slotchange=\"${handleSlotChange}\"></slot>\n <slot name=\"content\"></slot>\n </span>\n `;\n }\n\n /**\n * A selector that will return popover content element within\n * CDSPopoverContent's shadowRoot.\n */\n static get selectorPopoverContentClass() {\n return `.${prefix}--popover-content`;\n }\n\n /**\n * A selector that will return popover caret element within\n * CDSPopoverContent's shadowRoot.\n */\n static get selectorPopoverCaret() {\n return `.${prefix}--popover-caret`;\n }\n\n /**\n * A selector that will return the CDSPopoverContent.\n */\n static get selectorPopoverContent() {\n return `${prefix}-popover-content`;\n }\n\n static styles = styles;\n}\n\nexport default CDSPopover;\n"],"names":["FloatingUIContoller","customElement"],"mappings":"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"}