@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.
- package/custom-elements.json +130 -0
- package/dist/ai-label.min.js +8 -8
- package/dist/breadcrumb.min.js +4 -4
- package/dist/button-CmUJmoio.js +93 -0
- package/dist/{button-skeleton-DKiPqzwa.js → button-skeleton-Ba4xDn6y.js} +1 -1
- package/dist/button.min.js +1 -1
- package/dist/chat-button.min.js +3 -3
- package/dist/code-snippet.min.js +29 -29
- package/dist/combo-button.min.js +7 -7
- package/dist/content-switcher-item-Cz7OvIj8.js +54 -0
- package/dist/content-switcher.min.js +1 -1
- package/dist/copy-button.min.js +8 -8
- package/dist/data-table.min.js +41 -41
- package/dist/feature-flags.min.js +1 -1
- package/dist/file-uploader.min.js +29 -29
- package/dist/floating-controller-CxZPAslz.js +28 -0
- package/dist/icon-button.min.js +7 -7
- package/dist/icon-indicator.min.js +1 -1
- package/dist/menu-button.min.js +5 -5
- package/dist/modal.min.js +6 -6
- package/dist/notification.min.js +28 -28
- package/dist/overflow-menu.min.js +6 -6
- package/dist/pagination.min.js +24 -24
- package/dist/password-input.min.js +7 -7
- package/dist/popover.min.js +9 -9
- package/dist/progress-indicator.min.js +12 -12
- package/dist/radio-button.min.js +3 -3
- package/dist/side-panel.min.js +6 -6
- package/dist/skip-to-content.min.js +4 -4
- package/dist/slug.min.js +8 -8
- package/dist/tabs.min.js +24 -24
- package/dist/tag.min.js +49 -49
- package/dist/tearsheet.min.js +1 -1
- package/dist/tile.min.js +1 -1
- package/dist/toggle-tip.min.js +14 -14
- package/dist/tooltip-content-Tyg0Hg0i.js +30 -0
- package/dist/tooltip.min.js +1 -1
- package/dist/ui-shell.min.js +53 -53
- package/es/components/ai-label/ai-label.scss.js +1 -1
- package/es/components/breadcrumb/breadcrumb.scss.js +1 -1
- package/es/components/button/button.scss.js +1 -1
- package/es/components/chat-button/chat-button.scss.js +1 -1
- package/es/components/code-snippet/code-snippet.scss.js +1 -1
- package/es/components/combo-button/combo-button.scss.js +1 -1
- package/es/components/content-switcher/content-switcher.scss.js +1 -1
- package/es/components/copy-button/copy-button.scss.js +1 -1
- package/es/components/data-table/data-table.scss.js +1 -1
- package/es/components/data-table/table.js +12 -4
- package/es/components/data-table/table.js.map +1 -1
- package/es/components/feature-flags/index.js +1 -0
- package/es/components/feature-flags/index.js.map +1 -1
- package/es/components/file-uploader/file-uploader.scss.js +1 -1
- package/es/components/icon-button/icon-button.scss.js +1 -1
- package/es/components/menu-button/menu-button.scss.js +1 -1
- package/es/components/modal/modal.scss.js +1 -1
- package/es/components/notification/actionable-notification.scss.js +1 -1
- package/es/components/notification/inline-notification.scss.js +1 -1
- package/es/components/notification/toast-notification.scss.js +1 -1
- package/es/components/overflow-menu/overflow-menu.scss.js +1 -1
- package/es/components/pagination/pagination.scss.js +1 -1
- package/es/components/popover/defs.d.ts +13 -0
- package/es/components/popover/defs.js +15 -1
- package/es/components/popover/defs.js.map +1 -1
- package/es/components/popover/popover-content.d.ts +13 -0
- package/es/components/popover/popover-content.js +22 -0
- package/es/components/popover/popover-content.js.map +1 -1
- package/es/components/popover/popover.d.ts +10 -1
- package/es/components/popover/popover.js +31 -3
- package/es/components/popover/popover.js.map +1 -1
- package/es/components/popover/popover.scss.js +1 -1
- package/es/components/progress-indicator/progress-indicator.scss.js +1 -1
- package/es/components/skip-to-content/skip-to-content.scss.js +1 -1
- package/es/components/slug/slug.scss.js +1 -1
- package/es/components/tabs/tabs.scss.js +1 -1
- package/es/components/tag/tag.scss.js +1 -1
- package/es/components/tile/tile.scss.js +1 -1
- package/es/components/toggle-tip/toggletip.scss.js +1 -1
- package/es/components/tooltip/tooltip.js +3 -0
- package/es/components/tooltip/tooltip.js.map +1 -1
- package/es/components/tooltip/tooltip.scss.js +1 -1
- package/es/components/ui-shell/header.scss.js +1 -1
- package/es/feature-flags/es/index.js +30 -2
- package/es/feature-flags/es/index.js.map +1 -1
- package/es-custom/components/ai-label/ai-label.scss.js +1 -1
- package/es-custom/components/breadcrumb/breadcrumb.scss.js +1 -1
- package/es-custom/components/button/button.scss.js +1 -1
- package/es-custom/components/chat-button/chat-button.scss.js +1 -1
- package/es-custom/components/code-snippet/code-snippet.scss.js +1 -1
- package/es-custom/components/combo-button/combo-button.scss.js +1 -1
- package/es-custom/components/content-switcher/content-switcher.scss.js +1 -1
- package/es-custom/components/copy-button/copy-button.scss.js +1 -1
- package/es-custom/components/data-table/data-table.scss.js +1 -1
- package/es-custom/components/data-table/table.js +12 -4
- package/es-custom/components/data-table/table.js.map +1 -1
- package/es-custom/components/feature-flags/index.js +1 -0
- package/es-custom/components/feature-flags/index.js.map +1 -1
- package/es-custom/components/file-uploader/file-uploader.scss.js +1 -1
- package/es-custom/components/icon-button/icon-button.scss.js +1 -1
- package/es-custom/components/menu-button/menu-button.scss.js +1 -1
- package/es-custom/components/modal/modal.scss.js +1 -1
- package/es-custom/components/notification/actionable-notification.scss.js +1 -1
- package/es-custom/components/notification/inline-notification.scss.js +1 -1
- package/es-custom/components/notification/toast-notification.scss.js +1 -1
- package/es-custom/components/overflow-menu/overflow-menu.scss.js +1 -1
- package/es-custom/components/pagination/pagination.scss.js +1 -1
- package/es-custom/components/popover/defs.d.ts +13 -0
- package/es-custom/components/popover/defs.js +15 -1
- package/es-custom/components/popover/defs.js.map +1 -1
- package/es-custom/components/popover/popover-content.d.ts +13 -0
- package/es-custom/components/popover/popover-content.js +22 -0
- package/es-custom/components/popover/popover-content.js.map +1 -1
- package/es-custom/components/popover/popover.d.ts +10 -1
- package/es-custom/components/popover/popover.js +31 -3
- package/es-custom/components/popover/popover.js.map +1 -1
- package/es-custom/components/popover/popover.scss.js +1 -1
- package/es-custom/components/progress-indicator/progress-indicator.scss.js +1 -1
- package/es-custom/components/skip-to-content/skip-to-content.scss.js +1 -1
- package/es-custom/components/slug/slug.scss.js +1 -1
- package/es-custom/components/tabs/tabs.scss.js +1 -1
- package/es-custom/components/tag/tag.scss.js +1 -1
- package/es-custom/components/tile/tile.scss.js +1 -1
- package/es-custom/components/toggle-tip/toggletip.scss.js +1 -1
- package/es-custom/components/tooltip/tooltip.js +3 -0
- package/es-custom/components/tooltip/tooltip.js.map +1 -1
- package/es-custom/components/tooltip/tooltip.scss.js +1 -1
- package/es-custom/components/ui-shell/header.scss.js +1 -1
- package/es-custom/feature-flags/es/index.js +30 -2
- package/es-custom/feature-flags/es/index.js.map +1 -1
- package/lib/components/popover/defs.d.ts +13 -0
- package/lib/components/popover/defs.js +14 -0
- package/lib/components/popover/defs.js.map +1 -1
- package/lib/components/popover/popover-content.d.ts +13 -0
- package/lib/components/popover/popover.d.ts +10 -1
- package/package.json +4 -4
- package/scss/components/popover/popover.scss +210 -9
- package/telemetry.yml +5 -1
- package/dist/button-Co3aPX0Y.js +0 -93
- package/dist/content-switcher-item-BDJMJLCb.js +0 -54
- package/dist/defs-CBJRLDfw.js +0 -28
- package/dist/floating-controller-CnuSelc_.js +0 -28
- package/dist/tooltip-content-BZBP-szv.js +0 -30
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Copyright IBM Corp. 2019,
|
|
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,
|
|
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
|
-
[
|
|
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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"}
|