@carbon/web-components 2.4.0-rc.1 → 2.4.0-rc.3
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/dist/16-44367639.js +7 -7
- package/dist/16-880e779e.js +7 -7
- package/dist/16-8ab58ede.js +7 -7
- package/dist/16-945f9ad8.js +7 -7
- package/dist/16-9bdb8b2e.js +7 -7
- package/dist/16-afc2ad08.js +7 -7
- package/dist/16-f2933a25.js +60 -0
- package/dist/16-f2df91a2.js +7 -7
- package/dist/20-c1834a3b.js +7 -7
- package/dist/accordion.min.js +8 -8
- package/dist/ai-skeleton.min.js +8 -8
- package/dist/breadcrumb.min.js +8 -8
- package/dist/{button-dade8f28.js → button-ad33c11e.js} +8 -8
- package/dist/{button-set-5f5affa0.js → button-set-0868cd7d.js} +8 -8
- package/dist/{button-skeleton-7325ea56.js → button-skeleton-5d59f37f.js} +9 -9
- package/dist/button.min.js +8 -8
- package/dist/carbon-element-4ca9803f.js +7 -7
- package/dist/chat-button.min.js +8 -8
- package/dist/{checkbox-a610152a.js → checkbox-3f270cb6.js} +8 -8
- package/dist/checkbox.min.js +13 -13
- package/dist/class-map-b1739c02.js +7 -7
- package/dist/code-snippet.min.js +8 -8
- package/dist/collection-helpers-4e32fe16.js +7 -7
- package/dist/combo-box.min.js +8 -8
- package/dist/{content-switcher-item-9714594a.js → content-switcher-item-ef4c3ffc.js} +8 -8
- package/dist/content-switcher.min.js +8 -8
- package/dist/{copy-button-e4f754c9.js → copy-button-22693367.js} +8 -8
- package/dist/copy-button.min.js +8 -8
- package/dist/custom-element-975be15f.js +7 -7
- package/dist/data-table.min.js +9 -9
- package/dist/date-picker.min.js +8 -8
- package/dist/{objectSpread2-0b7e8561.js → defineProperty-d784d12c.js} +8 -8
- package/dist/directive-e2d48b9c.js +7 -7
- package/dist/{dropdown-item-cc7cc1dc.js → dropdown-item-5213e869.js} +8 -8
- package/dist/dropdown.min.js +8 -8
- package/dist/file-uploader.min.js +8 -8
- package/dist/{floating-menu-6ec5c7fa.js → floating-menu-413f6e95.js} +8 -8
- package/dist/floating-menu.min.js +8 -8
- package/dist/focus-92d82b5f.js +7 -7
- package/dist/form-group.min.js +7 -7
- package/dist/form.min.js +7 -7
- package/dist/get-d229c408.js +7 -7
- package/dist/{host-listener-a948931e.js → host-listener-0024708a.js} +9 -9
- package/dist/{icon-button-ab6ad963.js → icon-button-7a997866.js} +8 -8
- package/dist/icon-button.min.js +8 -8
- package/dist/if-defined-b99f5484.js +7 -7
- package/dist/if-non-empty-d69cc3f0.js +7 -7
- package/dist/inline-loading.min.js +7 -7
- package/dist/layer-62995057.js +7 -7
- package/dist/layer.min.js +7 -7
- package/dist/{link-d5d53be2.js → link-6fcc6a0e.js} +8 -8
- package/dist/link.min.js +8 -8
- package/dist/list.min.js +7 -7
- package/dist/loading-0dcb7680.js +7 -7
- package/dist/loading-icon-2ac6de26.js +7 -7
- package/dist/loading.min.js +7 -7
- package/dist/modal.min.js +9 -9
- package/dist/multi-select.min.js +8 -8
- package/dist/notification.min.js +10 -10
- package/dist/number-input.min.js +8 -8
- package/dist/{16-2aa048a9.js → objectSpread2-58bc1706.js} +8 -8
- package/dist/on-6c264d49.js +7 -7
- package/dist/overflow-menu.min.js +8 -8
- package/dist/pagination.min.js +8 -8
- package/dist/popover-content-2df97cf7.js +75 -0
- package/dist/popover-controller-e5f73836.js +60 -0
- package/dist/popover.min.js +8 -8
- package/dist/progress-bar.min.js +7 -7
- package/dist/progress-indicator.min.js +8 -8
- package/dist/query-6ca5e414.js +7 -7
- package/dist/query-assigned-elements-8e88277c.js +7 -7
- package/dist/radio-button.min.js +8 -8
- package/dist/{radio-group-manager-3cfdd620.js → radio-group-manager-9810bd7d.js} +8 -8
- package/dist/{search-4c0e8630.js → search-b8b073b6.js} +8 -8
- package/dist/search.min.js +8 -8
- package/dist/select-item-db3c6fa0.js +7 -7
- package/dist/select.min.js +8 -8
- package/dist/settings-387c0fa4.js +7 -7
- package/dist/shared-enums-c6fe8c39.js +7 -7
- package/dist/side-panel.min.js +16 -16
- package/dist/skeleton-icon-451d3c47.js +7 -7
- package/dist/skeleton-icon.min.js +7 -7
- package/dist/{skeleton-placeholder-e6490dbd.js → skeleton-placeholder-5aa06271.js} +8 -8
- package/dist/skeleton-placeholder.min.js +8 -8
- package/dist/{skeleton-text-eeac3c87.js → skeleton-text-283abe50.js} +8 -8
- package/dist/skeleton-text.min.js +8 -8
- package/dist/skip-to-content.min.js +8 -8
- package/dist/slider.min.js +8 -8
- package/dist/slug.min.js +9 -9
- package/dist/spread-6af5f657.js +7 -7
- package/dist/stack.min.js +7 -7
- package/dist/state-63312e74.js +7 -7
- package/dist/structured-list.min.js +8 -8
- package/dist/tabs.min.js +9 -9
- package/dist/tag.min.js +8 -8
- package/dist/{text-input-8d011ae2.js → text-input-d40fbf4d.js} +8 -8
- package/dist/text-input.min.js +9 -9
- package/dist/textarea.min.js +12 -12
- package/dist/tile.min.js +8 -8
- package/dist/toggle-tip.min.js +8 -8
- package/dist/toggle.min.js +8 -8
- package/dist/{toggletip-17030a2a.js → toggletip-2d777826.js} +10 -10
- package/dist/{tooltip-content-45723618.js → tooltip-content-2ef20c6a.js} +8 -8
- package/dist/tooltip.min.js +8 -8
- package/dist/ui-shell.min.js +8 -8
- package/dist/validity-d86ffa4f.js +7 -7
- package/es/components/data-table/table.js +1 -1
- package/es/components/data-table/table.js.map +1 -1
- package/es/components/popover/popover.d.ts +4 -0
- package/es/components/popover/popover.js +19 -6
- package/es/components/popover/popover.js.map +1 -1
- package/es/components/slug/slug.css.js +1 -1
- package/es/components/slug/slug.d.ts +1 -1
- package/es/components/slug/slug.js +1 -1
- package/es/components/slug/slug.js.map +1 -1
- package/es/components/toggle-tip/toggletip.d.ts +5 -1
- package/es/components/toggle-tip/toggletip.js +19 -10
- package/es/components/toggle-tip/toggletip.js.map +1 -1
- package/es/globals/controllers/popover-controller.d.ts +47 -0
- package/es/globals/controllers/popover-controller.js +142 -0
- package/es/globals/controllers/popover-controller.js.map +1 -0
- package/lib/globals/controllers/popover-controller.js +150 -0
- package/lib/globals/controllers/popover-controller.js.map +1 -0
- package/package.json +2 -2
- package/scss/components/slug/slug.scss +9 -0
- package/dist/floating-ui-a76fcefc.js +0 -69
- package/dist/popover-content-620200e8.js +0 -75
- package/es/globals/internal/floating-ui.d.ts +0 -30
- package/es/globals/internal/floating-ui.js +0 -102
- package/es/globals/internal/floating-ui.js.map +0 -1
|
@@ -53,7 +53,7 @@ export default class CDSSlug extends CDSToggleTip {
|
|
|
53
53
|
protected _renderTooltipButton: () => import("lit-html").TemplateResult<1>;
|
|
54
54
|
protected _renderInnerContent: () => import("lit-html").TemplateResult<1>;
|
|
55
55
|
attributeChangedCallback(name: any, old: any, newValue: any): void;
|
|
56
|
-
updated():
|
|
56
|
+
updated(): void;
|
|
57
57
|
static styles: any;
|
|
58
58
|
}
|
|
59
59
|
|
|
@@ -260,7 +260,7 @@ let CDSSlug = _decorate([customElement(`${prefix}-slug`)], function (_initialize
|
|
|
260
260
|
}, {
|
|
261
261
|
kind: "method",
|
|
262
262
|
key: "updated",
|
|
263
|
-
value:
|
|
263
|
+
value: function updated() {
|
|
264
264
|
_get(_getPrototypeOf(CDSSlug.prototype), "updated", this).call(this);
|
|
265
265
|
if (this.kind !== SLUG_KIND.HOLLOW && this.dotType !== SLUG_DOT_TYPE.HOLLOW) {
|
|
266
266
|
this.setAttribute('enabled', '');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slug.js","names":["classMap","html","property","prefix","CDSToggleTip","styles","Undo16","SLUG_SIZE","SLUG_KIND","SLUG_DOT_TYPE","carbonElement","customElement","CDSSlug","_decorate","_initialize","_CDSToggleTip","constructor","args","F","d","kind","decorators","reflect","key","value","attribute","DEFAULT","type","Boolean","EXTRA_SMALL","revertActive","removeAttribute","open","_t","_","size","aiText","aiTextLabel","slugLabel","ariaLabel","classes","INLINE","_t2","id","_handleClick","_t3","autoalign","revertLabel","_t4","_t5","slot","_t6","_renderTooltipButton","_renderTooltipContent","attributeChangedCallback","name","old","newValue","_this$parentElement","_get","_getPrototypeOf","prototype","call","parentElement","requestUpdate","updated","HOLLOW","dotType","setAttribute","static","default"],"sources":["components/slug/slug.ts"],"sourcesContent":["/**\n * @license\n *\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 { html } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { prefix } from '../../globals/settings';\nimport CDSToggleTip from '../toggle-tip/toggletip';\nimport styles from './slug.scss';\nimport Undo16 from '@carbon/icons/lib/undo/16';\nimport { SLUG_SIZE, SLUG_KIND, SLUG_DOT_TYPE } from './defs';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\n\n/**\n * Basic slug.\n *\n * @element cds-slug\n */\n@customElement(`${prefix}-slug`)\nexport default class CDSSlug extends CDSToggleTip {\n @property({ reflect: true })\n slot = 'slug';\n /**\n * Specify the correct translation of the AI text\n */\n @property({ attribute: 'ai-text' })\n aiText = 'AI';\n\n /**\n * Specify additional text to be rendered next to the AI label in the inline variant\n */\n @property({ attribute: 'ai-text-label' })\n aiTextLabel = '';\n\n /**\n * Specify the type of dot that should be rendered in front of the inline variant: (default, hollow)\n */\n @property({ reflect: true, attribute: 'dot-type' })\n dotType = SLUG_DOT_TYPE.DEFAULT;\n\n /**\n * Specify the type of Slug, from the following list of types: (default, hollow, inline)\n */\n @property({ reflect: true })\n kind = SLUG_KIND.DEFAULT;\n\n /**\n * Specify whether the revert button should be visible\n */\n @property({ type: Boolean, attribute: 'revert-active' })\n revertActive = false;\n\n /**\n * Specify whether the revert button should be visible\n */\n @property({ attribute: 'revert-label' })\n revertLabel = 'Revert to AI input';\n\n /**\n * Slug size should be mini, 2xs, xs, sm, md, lg, xl.\n */\n @property({ reflect: true })\n size = SLUG_SIZE.EXTRA_SMALL;\n\n /**\n * Specify the text that will be provided to the aria-label of the `Slug` button\n */\n @property({ attribute: 'slug-label' })\n slugLabel = 'Show information';\n\n @property()\n previousValue;\n\n protected _handleClick = () => {\n if (this.revertActive) {\n this.revertActive = false;\n this.removeAttribute('revert-active');\n } else {\n this.open = !this.open;\n }\n };\n\n protected _renderToggleTipLabel = () => {\n return html``;\n };\n\n protected _renderTooltipButton = () => {\n const { size, kind, aiText, aiTextLabel, slugLabel } = this;\n const ariaLabel = `${aiText} - ${slugLabel}`;\n const classes = classMap({\n [`${prefix}--toggletip-button`]: true,\n [`${prefix}--slug__button`]: true,\n [`${prefix}--slug__button--${size}`]: size,\n [`${prefix}--slug__button--${kind}`]: kind,\n [`${prefix}--slug__button--inline-with-content`]:\n kind === SLUG_KIND.INLINE && aiTextLabel,\n });\n return html`\n <button\n aria-controls=\"${this.id}\"\n @click=\"${this._handleClick}\"\n class=${classes}\n aria-label=\"${ariaLabel}\">\n <span class=\"${prefix}--slug__text\">${aiText}</span>\n ${aiTextLabel && kind === SLUG_KIND.INLINE\n ? html`\n <span class=\"${prefix}--slug__additional-text\">\n ${aiTextLabel}\n </span>\n `\n : ``}\n </button>\n `;\n };\n\n protected _renderInnerContent = () => {\n const { autoalign, revertActive, revertLabel } = this;\n return html`\n ${revertActive\n ? html`\n <cds-icon-button\n ?autoalign=${autoalign}\n kind=\"ghost\"\n size=\"sm\"\n @click=\"${this._handleClick}\">\n <span slot=\"tooltip-content\"> ${revertLabel} </span>\n ${Undo16({ slot: 'icon' })}\n </cds-icon-button>\n `\n : html`\n ${this._renderTooltipButton()} ${this._renderTooltipContent()}\n `}\n `;\n };\n\n attributeChangedCallback(name, old, newValue) {\n super.attributeChangedCallback(name, old, newValue);\n\n //@ts-ignore typescript does not think requestUpdate() exists on parentElement\n name === 'revert-active' ? this.parentElement?.requestUpdate() : ``;\n }\n\n async updated() {\n super.updated();\n if (\n this.kind !== SLUG_KIND.HOLLOW &&\n this.dotType !== SLUG_DOT_TYPE.HOLLOW\n ) {\n this.setAttribute('enabled', '');\n } else {\n this.removeAttribute('enabled');\n }\n }\n\n static styles = styles;\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"slug.js","names":["classMap","html","property","prefix","CDSToggleTip","styles","Undo16","SLUG_SIZE","SLUG_KIND","SLUG_DOT_TYPE","carbonElement","customElement","CDSSlug","_decorate","_initialize","_CDSToggleTip","constructor","args","F","d","kind","decorators","reflect","key","value","attribute","DEFAULT","type","Boolean","EXTRA_SMALL","revertActive","removeAttribute","open","_t","_","size","aiText","aiTextLabel","slugLabel","ariaLabel","classes","INLINE","_t2","id","_handleClick","_t3","autoalign","revertLabel","_t4","_t5","slot","_t6","_renderTooltipButton","_renderTooltipContent","attributeChangedCallback","name","old","newValue","_this$parentElement","_get","_getPrototypeOf","prototype","call","parentElement","requestUpdate","updated","HOLLOW","dotType","setAttribute","static","default"],"sources":["components/slug/slug.ts"],"sourcesContent":["/**\n * @license\n *\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 { html } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { prefix } from '../../globals/settings';\nimport CDSToggleTip from '../toggle-tip/toggletip';\nimport styles from './slug.scss';\nimport Undo16 from '@carbon/icons/lib/undo/16';\nimport { SLUG_SIZE, SLUG_KIND, SLUG_DOT_TYPE } from './defs';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\n\n/**\n * Basic slug.\n *\n * @element cds-slug\n */\n@customElement(`${prefix}-slug`)\nexport default class CDSSlug extends CDSToggleTip {\n @property({ reflect: true })\n slot = 'slug';\n /**\n * Specify the correct translation of the AI text\n */\n @property({ attribute: 'ai-text' })\n aiText = 'AI';\n\n /**\n * Specify additional text to be rendered next to the AI label in the inline variant\n */\n @property({ attribute: 'ai-text-label' })\n aiTextLabel = '';\n\n /**\n * Specify the type of dot that should be rendered in front of the inline variant: (default, hollow)\n */\n @property({ reflect: true, attribute: 'dot-type' })\n dotType = SLUG_DOT_TYPE.DEFAULT;\n\n /**\n * Specify the type of Slug, from the following list of types: (default, hollow, inline)\n */\n @property({ reflect: true })\n kind = SLUG_KIND.DEFAULT;\n\n /**\n * Specify whether the revert button should be visible\n */\n @property({ type: Boolean, attribute: 'revert-active' })\n revertActive = false;\n\n /**\n * Specify whether the revert button should be visible\n */\n @property({ attribute: 'revert-label' })\n revertLabel = 'Revert to AI input';\n\n /**\n * Slug size should be mini, 2xs, xs, sm, md, lg, xl.\n */\n @property({ reflect: true })\n size = SLUG_SIZE.EXTRA_SMALL;\n\n /**\n * Specify the text that will be provided to the aria-label of the `Slug` button\n */\n @property({ attribute: 'slug-label' })\n slugLabel = 'Show information';\n\n @property()\n previousValue;\n\n protected _handleClick = () => {\n if (this.revertActive) {\n this.revertActive = false;\n this.removeAttribute('revert-active');\n } else {\n this.open = !this.open;\n }\n };\n\n protected _renderToggleTipLabel = () => {\n return html``;\n };\n\n protected _renderTooltipButton = () => {\n const { size, kind, aiText, aiTextLabel, slugLabel } = this;\n const ariaLabel = `${aiText} - ${slugLabel}`;\n const classes = classMap({\n [`${prefix}--toggletip-button`]: true,\n [`${prefix}--slug__button`]: true,\n [`${prefix}--slug__button--${size}`]: size,\n [`${prefix}--slug__button--${kind}`]: kind,\n [`${prefix}--slug__button--inline-with-content`]:\n kind === SLUG_KIND.INLINE && aiTextLabel,\n });\n return html`\n <button\n aria-controls=\"${this.id}\"\n @click=\"${this._handleClick}\"\n class=${classes}\n aria-label=\"${ariaLabel}\">\n <span class=\"${prefix}--slug__text\">${aiText}</span>\n ${aiTextLabel && kind === SLUG_KIND.INLINE\n ? html`\n <span class=\"${prefix}--slug__additional-text\">\n ${aiTextLabel}\n </span>\n `\n : ``}\n </button>\n `;\n };\n\n protected _renderInnerContent = () => {\n const { autoalign, revertActive, revertLabel } = this;\n return html`\n ${revertActive\n ? html`\n <cds-icon-button\n ?autoalign=${autoalign}\n kind=\"ghost\"\n size=\"sm\"\n @click=\"${this._handleClick}\">\n <span slot=\"tooltip-content\"> ${revertLabel} </span>\n ${Undo16({ slot: 'icon' })}\n </cds-icon-button>\n `\n : html`\n ${this._renderTooltipButton()} ${this._renderTooltipContent()}\n `}\n `;\n };\n\n attributeChangedCallback(name, old, newValue) {\n super.attributeChangedCallback(name, old, newValue);\n\n //@ts-ignore typescript does not think requestUpdate() exists on parentElement\n name === 'revert-active' ? this.parentElement?.requestUpdate() : ``;\n }\n\n updated() {\n super.updated();\n if (\n this.kind !== SLUG_KIND.HOLLOW &&\n this.dotType !== SLUG_DOT_TYPE.HOLLOW\n ) {\n this.setAttribute('enabled', '');\n } else {\n this.removeAttribute('enabled');\n }\n }\n\n static styles = styles;\n}\n"],"mappings":"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"}
|
|
@@ -675,6 +675,10 @@ declare const CDSToggletip_base: {
|
|
|
675
675
|
* @element cds-toggletip
|
|
676
676
|
*/
|
|
677
677
|
declare class CDSToggletip extends CDSToggletip_base {
|
|
678
|
+
/**
|
|
679
|
+
* Create popover controller instance
|
|
680
|
+
*/
|
|
681
|
+
private popoverController;
|
|
678
682
|
/**
|
|
679
683
|
* How the tooltip is aligned to the trigger button.
|
|
680
684
|
*/
|
|
@@ -706,7 +710,7 @@ declare class CDSToggletip extends CDSToggletip_base {
|
|
|
706
710
|
protected _renderTooltipButton: () => import("lit-html").TemplateResult<1>;
|
|
707
711
|
protected _renderTooltipContent: () => import("lit-html").TemplateResult<1>;
|
|
708
712
|
protected _renderInnerContent: () => import("lit-html").TemplateResult<1>;
|
|
709
|
-
updated():
|
|
713
|
+
updated(): void;
|
|
710
714
|
render(): import("lit-html").TemplateResult<1>;
|
|
711
715
|
/**
|
|
712
716
|
* A selector that will return the toggletip content.
|
|
@@ -25,7 +25,7 @@ import HostListener from '../../globals/decorators/host-listener';
|
|
|
25
25
|
import HostListenerMixin from '../../globals/mixins/host-listener';
|
|
26
26
|
import FocusMixin from '../../globals/mixins/focus';
|
|
27
27
|
import { POPOVER_ALIGNMENT } from '../popover/defs';
|
|
28
|
-
import
|
|
28
|
+
import PopoverController from '../../globals/controllers/popover-controller';
|
|
29
29
|
import styles from "././toggletip.css.js";
|
|
30
30
|
|
|
31
31
|
/**
|
|
@@ -47,6 +47,12 @@ let CDSToggletip = _decorate([customElement(`${prefix}-toggletip`)], function (_
|
|
|
47
47
|
return {
|
|
48
48
|
F: CDSToggletip,
|
|
49
49
|
d: [{
|
|
50
|
+
kind: "field",
|
|
51
|
+
key: "popoverController",
|
|
52
|
+
value() {
|
|
53
|
+
return new PopoverController(this);
|
|
54
|
+
}
|
|
55
|
+
}, {
|
|
50
56
|
kind: "field",
|
|
51
57
|
decorators: [property({
|
|
52
58
|
reflect: true
|
|
@@ -79,6 +85,10 @@ let CDSToggletip = _decorate([customElement(`${prefix}-toggletip`)], function (_
|
|
|
79
85
|
kind: "method",
|
|
80
86
|
key: "_handleActionsSlotChange",
|
|
81
87
|
value:
|
|
88
|
+
/**
|
|
89
|
+
* Create popover controller instance
|
|
90
|
+
*/
|
|
91
|
+
|
|
82
92
|
/**
|
|
83
93
|
* How the tooltip is aligned to the trigger button.
|
|
84
94
|
*/
|
|
@@ -213,24 +223,23 @@ let CDSToggletip = _decorate([customElement(`${prefix}-toggletip`)], function (_
|
|
|
213
223
|
}, {
|
|
214
224
|
kind: "method",
|
|
215
225
|
key: "updated",
|
|
216
|
-
value:
|
|
217
|
-
if (this.autoalign) {
|
|
226
|
+
value: function updated() {
|
|
227
|
+
if (this.autoalign && this.open) {
|
|
218
228
|
var _this$shadowRoot, _this$shadowRoot2, _this$shadowRoot3;
|
|
219
229
|
// auto align functionality with @floating-ui/dom library
|
|
220
230
|
const button = (_this$shadowRoot = this.shadowRoot) === null || _this$shadowRoot === void 0 ? void 0 : _this$shadowRoot.querySelector(CDSToggletip.selectorToggletipButton);
|
|
221
231
|
const tooltip = (_this$shadowRoot2 = this.shadowRoot) === null || _this$shadowRoot2 === void 0 ? void 0 : _this$shadowRoot2.querySelector(CDSToggletip.selectorToggletipContent);
|
|
222
232
|
const arrowElement = (_this$shadowRoot3 = this.shadowRoot) === null || _this$shadowRoot3 === void 0 ? void 0 : _this$shadowRoot3.querySelector(CDSToggletip.selectorToggletipCaret);
|
|
223
233
|
if (button && tooltip) {
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
arrowElement,
|
|
234
|
+
var _this$popoverControll;
|
|
235
|
+
(_this$popoverControll = this.popoverController) === null || _this$popoverControll === void 0 || _this$popoverControll.setPlacement({
|
|
236
|
+
trigger: button,
|
|
237
|
+
target: tooltip,
|
|
238
|
+
arrowElement: arrowElement,
|
|
230
239
|
caret: true,
|
|
240
|
+
flip: true,
|
|
231
241
|
alignment: this.alignment
|
|
232
242
|
});
|
|
233
|
-
this.setAttribute('alignment', finalPlacement);
|
|
234
243
|
}
|
|
235
244
|
}
|
|
236
245
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toggletip.js","names":["classMap","html","LitElement","customElement","property","Information16","prefix","HostListener","HostListenerMixin","FocusMixin","POPOVER_ALIGNMENT","floatingUIPosition","styles","CDSToggletip","_decorate","_initialize","_HostListenerMixin","constructor","args","F","d","kind","decorators","reflect","key","value","TOP","type","Boolean","_handleActionsSlotChange","target","hasContent","assignedNodes","setAttribute","removeAttribute","open","event","_handleFocusOut","contains","relatedTarget","_t","_","_t2","id","_handleClick","autoalign","_t3","_t4","_t5","_renderTooltipButton","_renderTooltipContent","updated","_this$shadowRoot","_this$shadowRoot2","_this$shadowRoot3","button","shadowRoot","querySelector","selectorToggletipButton","tooltip","selectorToggletipContent","arrowElement","selectorToggletipCaret","finalPlacement","caret","alignment","render","classes","_t6","_renderToggleTipLabel","_renderInnerContent","static","_objectSpread","shadowRootOptions","delegatesFocus"],"sources":["components/toggle-tip/toggletip.ts"],"sourcesContent":["/**\n * @license\n *\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 { html, LitElement } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport Information16 from '@carbon/icons/lib/information/16';\nimport { prefix } from '../../globals/settings';\nimport HostListener from '../../globals/decorators/host-listener';\nimport HostListenerMixin from '../../globals/mixins/host-listener';\nimport FocusMixin from '../../globals/mixins/focus';\nimport { POPOVER_ALIGNMENT } from '../popover/defs';\nimport { floatingUIPosition } from '../../globals/internal/floating-ui';\nimport styles from './toggletip.scss';\n\n/**\n * Definition tooltip.\n *\n * @element cds-toggletip\n */\n@customElement(`${prefix}-toggletip`)\nclass CDSToggletip extends HostListenerMixin(FocusMixin(LitElement)) {\n /**\n * How the tooltip is aligned to the trigger button.\n */\n @property({ reflect: true })\n alignment = POPOVER_ALIGNMENT.TOP;\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 * Set whether toggletip is open\n */\n @property({ type: Boolean, reflect: true })\n open = false;\n\n /**\n * Handles `slotchange` event.\n */\n private _handleActionsSlotChange({ target }: Event) {\n const hasContent = (target as HTMLSlotElement).assignedNodes();\n hasContent\n ? this.setAttribute('has-actions', '')\n : this.removeAttribute('has-actions');\n }\n\n protected _handleClick = () => {\n this.open = !this.open;\n };\n\n /**\n * Handles `keydown` event on this element.\n */\n @HostListener('keydown')\n // @ts-ignore: The decorator refers to this method but TS thinks this method is not referred to\n protected _handleKeydown = async (event) => {\n if (event.key === 'Escape') {\n this.open = false;\n }\n };\n\n /**\n * Handles `blur` event handler on the document this element is in.\n *\n * @param event The event.\n */\n @HostListener('focusout')\n // @ts-ignore: The decorator refers to this method but TS thinks this method is not referred to\n protected _handleFocusOut(event: FocusEvent) {\n if (!this.contains(event.relatedTarget as Node)) {\n this.open = false;\n }\n }\n\n protected _renderToggleTipLabel = () => {\n return html`\n <span class=\"${prefix}--toggletip-label\">\n <slot></slot>\n </span>\n `;\n };\n\n protected _renderTooltipButton = () => {\n return html`\n <button\n aria-controls=\"${this.id}\"\n class=\"${prefix}--toggletip-button\"\n @click=${this._handleClick}>\n ${Information16({ id: 'trigger' })}\n </button>\n `;\n };\n\n protected _renderTooltipContent = () => {\n return this.autoalign\n ? html`\n <span class=\"${prefix}--popover-content\">\n <div class=\"${prefix}--toggletip-content\">\n <slot name=\"body-text\"></slot>\n <div class=\"${prefix}--toggletip-actions\">\n <slot\n name=\"actions\"\n @slotchange=\"${this._handleActionsSlotChange}\"></slot>\n </div>\n </div>\n <span class=\"${prefix}--popover-caret\"></span>\n </span>\n `\n : html`\n <span class=\"${prefix}--popover\">\n <span class=\"${prefix}--popover-content\">\n <div class=\"${prefix}--toggletip-content\">\n <slot name=\"body-text\"></slot>\n <div class=\"${prefix}--toggletip-actions\">\n <slot\n name=\"actions\"\n @slotchange=\"${this._handleActionsSlotChange}\"></slot>\n </div>\n </div>\n </span>\n <span class=\"${prefix}--popover-caret\"></span>\n </span>\n `;\n };\n\n protected _renderInnerContent = () => {\n return html`\n ${this._renderTooltipButton()} ${this._renderTooltipContent()}\n `;\n };\n\n async updated() {\n if (this.autoalign) {\n // auto align functionality with @floating-ui/dom library\n const button = this.shadowRoot?.querySelector(\n CDSToggletip.selectorToggletipButton\n );\n\n const tooltip = this.shadowRoot?.querySelector(\n CDSToggletip.selectorToggletipContent\n );\n const arrowElement = this.shadowRoot?.querySelector(\n CDSToggletip.selectorToggletipCaret\n );\n\n if (button && tooltip) {\n // @floating-ui/dom returns the final placement which we'll use\n // to set the alignment attr for styling\n const finalPlacement = await floatingUIPosition({\n button,\n tooltip,\n arrowElement,\n caret: true,\n alignment: this.alignment,\n });\n\n this.setAttribute('alignment', finalPlacement);\n }\n }\n }\n\n render() {\n const { alignment, open } = this;\n const classes = classMap({\n [`${prefix}--popover-container`]: true,\n [`${prefix}--popover--caret`]: true,\n [`${prefix}--popover--high-contrast`]: true,\n [`${prefix}--popover--open`]: open,\n [`${prefix}--popover--${alignment}`]: alignment,\n [`${prefix}--toggletip`]: true,\n [`${prefix}--toggletip--open`]: open,\n });\n return html`\n ${this._renderToggleTipLabel()}\n <span class=\"${classes}\">\n ${this._renderInnerContent()}\n </span>\n </span>\n `;\n }\n\n /**\n * A selector that will return the toggletip content.\n */\n static get selectorToggletipContent() {\n return `.${prefix}--popover-content`;\n }\n\n /**\n * A selector that will return the toggletip caret.\n */\n static get selectorToggletipCaret() {\n return `.${prefix}--popover-caret`;\n }\n\n /**\n * A selector that will return the trigger element.\n */\n static get selectorToggletipButton() {\n return `.${prefix}--toggletip-button`;\n }\n\n static shadowRootOptions = {\n ...LitElement.shadowRootOptions,\n delegatesFocus: true,\n };\n\n static styles = styles;\n}\n\nexport default CDSToggletip;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"toggletip.js","names":["classMap","html","LitElement","customElement","property","Information16","prefix","HostListener","HostListenerMixin","FocusMixin","POPOVER_ALIGNMENT","PopoverController","styles","CDSToggletip","_decorate","_initialize","_HostListenerMixin","constructor","args","F","d","kind","key","value","decorators","reflect","TOP","type","Boolean","_handleActionsSlotChange","target","hasContent","assignedNodes","setAttribute","removeAttribute","open","event","_handleFocusOut","contains","relatedTarget","_t","_","_t2","id","_handleClick","autoalign","_t3","_t4","_t5","_renderTooltipButton","_renderTooltipContent","updated","_this$shadowRoot","_this$shadowRoot2","_this$shadowRoot3","button","shadowRoot","querySelector","selectorToggletipButton","tooltip","selectorToggletipContent","arrowElement","selectorToggletipCaret","_this$popoverControll","popoverController","setPlacement","trigger","caret","flip","alignment","render","classes","_t6","_renderToggleTipLabel","_renderInnerContent","static","_objectSpread","shadowRootOptions","delegatesFocus"],"sources":["components/toggle-tip/toggletip.ts"],"sourcesContent":["/**\n * @license\n *\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 { html, LitElement } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport Information16 from '@carbon/icons/lib/information/16';\nimport { prefix } from '../../globals/settings';\nimport HostListener from '../../globals/decorators/host-listener';\nimport HostListenerMixin from '../../globals/mixins/host-listener';\nimport FocusMixin from '../../globals/mixins/focus';\nimport { POPOVER_ALIGNMENT } from '../popover/defs';\nimport PopoverController from '../../globals/controllers/popover-controller';\nimport styles from './toggletip.scss';\n\n/**\n * Definition tooltip.\n *\n * @element cds-toggletip\n */\n@customElement(`${prefix}-toggletip`)\nclass CDSToggletip extends HostListenerMixin(FocusMixin(LitElement)) {\n /**\n * Create popover controller instance\n */\n private popoverController = new PopoverController(this);\n\n /**\n * How the tooltip is aligned to the trigger button.\n */\n @property({ reflect: true })\n alignment = POPOVER_ALIGNMENT.TOP;\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 * Set whether toggletip is open\n */\n @property({ type: Boolean, reflect: true })\n open = false;\n\n /**\n * Handles `slotchange` event.\n */\n private _handleActionsSlotChange({ target }: Event) {\n const hasContent = (target as HTMLSlotElement).assignedNodes();\n hasContent\n ? this.setAttribute('has-actions', '')\n : this.removeAttribute('has-actions');\n }\n\n protected _handleClick = () => {\n this.open = !this.open;\n };\n\n /**\n * Handles `keydown` event on this element.\n */\n @HostListener('keydown')\n // @ts-ignore: The decorator refers to this method but TS thinks this method is not referred to\n protected _handleKeydown = async (event) => {\n if (event.key === 'Escape') {\n this.open = false;\n }\n };\n\n /**\n * Handles `blur` event handler on the document this element is in.\n *\n * @param event The event.\n */\n @HostListener('focusout')\n // @ts-ignore: The decorator refers to this method but TS thinks this method is not referred to\n protected _handleFocusOut(event: FocusEvent) {\n if (!this.contains(event.relatedTarget as Node)) {\n this.open = false;\n }\n }\n\n protected _renderToggleTipLabel = () => {\n return html`\n <span class=\"${prefix}--toggletip-label\">\n <slot></slot>\n </span>\n `;\n };\n\n protected _renderTooltipButton = () => {\n return html`\n <button\n aria-controls=\"${this.id}\"\n class=\"${prefix}--toggletip-button\"\n @click=${this._handleClick}>\n ${Information16({ id: 'trigger' })}\n </button>\n `;\n };\n\n protected _renderTooltipContent = () => {\n return this.autoalign\n ? html`\n <span class=\"${prefix}--popover-content\">\n <div class=\"${prefix}--toggletip-content\">\n <slot name=\"body-text\"></slot>\n <div class=\"${prefix}--toggletip-actions\">\n <slot\n name=\"actions\"\n @slotchange=\"${this._handleActionsSlotChange}\"></slot>\n </div>\n </div>\n <span class=\"${prefix}--popover-caret\"></span>\n </span>\n `\n : html`\n <span class=\"${prefix}--popover\">\n <span class=\"${prefix}--popover-content\">\n <div class=\"${prefix}--toggletip-content\">\n <slot name=\"body-text\"></slot>\n <div class=\"${prefix}--toggletip-actions\">\n <slot\n name=\"actions\"\n @slotchange=\"${this._handleActionsSlotChange}\"></slot>\n </div>\n </div>\n </span>\n <span class=\"${prefix}--popover-caret\"></span>\n </span>\n `;\n };\n\n protected _renderInnerContent = () => {\n return html`\n ${this._renderTooltipButton()} ${this._renderTooltipContent()}\n `;\n };\n\n updated() {\n if (this.autoalign && this.open) {\n // auto align functionality with @floating-ui/dom library\n const button = this.shadowRoot?.querySelector(\n CDSToggletip.selectorToggletipButton\n );\n\n const tooltip = this.shadowRoot?.querySelector(\n CDSToggletip.selectorToggletipContent\n );\n const arrowElement = this.shadowRoot?.querySelector(\n CDSToggletip.selectorToggletipCaret\n );\n\n if (button && tooltip) {\n this.popoverController?.setPlacement({\n trigger: button as HTMLElement,\n target: tooltip as HTMLElement,\n arrowElement: arrowElement as HTMLElement,\n caret: true,\n flip: true,\n alignment: this.alignment,\n });\n }\n }\n }\n\n render() {\n const { alignment, open } = this;\n const classes = classMap({\n [`${prefix}--popover-container`]: true,\n [`${prefix}--popover--caret`]: true,\n [`${prefix}--popover--high-contrast`]: true,\n [`${prefix}--popover--open`]: open,\n [`${prefix}--popover--${alignment}`]: alignment,\n [`${prefix}--toggletip`]: true,\n [`${prefix}--toggletip--open`]: open,\n });\n return html`\n ${this._renderToggleTipLabel()}\n <span class=\"${classes}\">\n ${this._renderInnerContent()}\n </span>\n </span>\n `;\n }\n\n /**\n * A selector that will return the toggletip content.\n */\n static get selectorToggletipContent() {\n return `.${prefix}--popover-content`;\n }\n\n /**\n * A selector that will return the toggletip caret.\n */\n static get selectorToggletipCaret() {\n return `.${prefix}--popover-caret`;\n }\n\n /**\n * A selector that will return the trigger element.\n */\n static get selectorToggletipButton() {\n return `.${prefix}--toggletip-button`;\n }\n\n static shadowRootOptions = {\n ...LitElement.shadowRootOptions,\n delegatesFocus: true,\n };\n\n static styles = styles;\n}\n\nexport default CDSToggletip;\n"],"mappings":"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"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
*
|
|
4
|
+
* Copyright IBM Corp. 2024
|
|
5
|
+
*
|
|
6
|
+
* This source code is licensed under the Apache-2.0 license found in the
|
|
7
|
+
* LICENSE file in the root directory of this source tree.
|
|
8
|
+
*/
|
|
9
|
+
import { ReactiveController, LitElement } from 'lit';
|
|
10
|
+
type PopoverControllerOptions = {
|
|
11
|
+
target: HTMLElement;
|
|
12
|
+
trigger: HTMLElement;
|
|
13
|
+
arrowElement?: HTMLElement | undefined;
|
|
14
|
+
alignment: string;
|
|
15
|
+
flip: boolean;
|
|
16
|
+
caret: boolean;
|
|
17
|
+
};
|
|
18
|
+
interface PopoverElement extends LitElement {
|
|
19
|
+
open: boolean;
|
|
20
|
+
}
|
|
21
|
+
export default class PopoverController implements ReactiveController {
|
|
22
|
+
/**
|
|
23
|
+
* Host component
|
|
24
|
+
*/
|
|
25
|
+
private host;
|
|
26
|
+
/**
|
|
27
|
+
* Floating-ui options to pass to `computePlacement()`
|
|
28
|
+
*/
|
|
29
|
+
private options;
|
|
30
|
+
/**
|
|
31
|
+
* cleanup function to stop auto updates
|
|
32
|
+
*/
|
|
33
|
+
private cleanup?;
|
|
34
|
+
/**
|
|
35
|
+
* register with host component
|
|
36
|
+
* @param host host component
|
|
37
|
+
*/
|
|
38
|
+
constructor(host: PopoverElement);
|
|
39
|
+
setPlacement(options?: PopoverControllerOptions): Promise<void>;
|
|
40
|
+
updatePlacement: () => void;
|
|
41
|
+
computePlacement(): Promise<void>;
|
|
42
|
+
hostUpdated(): void;
|
|
43
|
+
hostDisconnected(): void;
|
|
44
|
+
}
|
|
45
|
+
export {};
|
|
46
|
+
|
|
47
|
+
//# sourceMappingURL=popover-controller.d.ts.map
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
2
|
+
/**
|
|
3
|
+
* @license
|
|
4
|
+
*
|
|
5
|
+
* Copyright IBM Corp. 2024
|
|
6
|
+
*
|
|
7
|
+
* This source code is licensed under the Apache-2.0 license found in the
|
|
8
|
+
* LICENSE file in the root directory of this source tree.
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
import { computePosition, flip, offset, arrow, autoUpdate } from '@floating-ui/dom';
|
|
12
|
+
export default class PopoverController {
|
|
13
|
+
/**
|
|
14
|
+
* Host component
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Floating-ui options to pass to `computePlacement()`
|
|
19
|
+
*/
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* cleanup function to stop auto updates
|
|
23
|
+
*/
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* register with host component
|
|
27
|
+
* @param host host component
|
|
28
|
+
*/
|
|
29
|
+
constructor(host) {
|
|
30
|
+
_defineProperty(this, "updatePlacement", () => {
|
|
31
|
+
this.computePlacement();
|
|
32
|
+
});
|
|
33
|
+
(this.host = host).addController(this);
|
|
34
|
+
}
|
|
35
|
+
async setPlacement(options = this.options) {
|
|
36
|
+
this.options = options;
|
|
37
|
+
const {
|
|
38
|
+
trigger,
|
|
39
|
+
target
|
|
40
|
+
} = options;
|
|
41
|
+
this.cleanup = autoUpdate(trigger, target, this.updatePlacement);
|
|
42
|
+
}
|
|
43
|
+
async computePlacement() {
|
|
44
|
+
const {
|
|
45
|
+
arrowElement,
|
|
46
|
+
alignment,
|
|
47
|
+
caret,
|
|
48
|
+
trigger,
|
|
49
|
+
target
|
|
50
|
+
} = this.options;
|
|
51
|
+
let shimmedAlign;
|
|
52
|
+
switch (alignment) {
|
|
53
|
+
case 'top-left':
|
|
54
|
+
shimmedAlign = 'top-start';
|
|
55
|
+
break;
|
|
56
|
+
case 'top-right':
|
|
57
|
+
shimmedAlign = 'top-end';
|
|
58
|
+
break;
|
|
59
|
+
case 'bottom-left':
|
|
60
|
+
shimmedAlign = 'bottom-start';
|
|
61
|
+
break;
|
|
62
|
+
case 'bottom-right':
|
|
63
|
+
shimmedAlign = 'bottom-end';
|
|
64
|
+
break;
|
|
65
|
+
case 'left-bottom':
|
|
66
|
+
shimmedAlign = 'left-end';
|
|
67
|
+
break;
|
|
68
|
+
case 'left-top':
|
|
69
|
+
shimmedAlign = 'left-start';
|
|
70
|
+
break;
|
|
71
|
+
case 'right-bottom':
|
|
72
|
+
shimmedAlign = 'right-end';
|
|
73
|
+
break;
|
|
74
|
+
case 'right-top':
|
|
75
|
+
shimmedAlign = 'right-start';
|
|
76
|
+
break;
|
|
77
|
+
default:
|
|
78
|
+
shimmedAlign = alignment;
|
|
79
|
+
break;
|
|
80
|
+
}
|
|
81
|
+
const middleware = [flip({
|
|
82
|
+
fallbackAxisSideDirection: 'start'
|
|
83
|
+
}), offset(caret ? 10 : 0), ...(caret && arrowElement ? [arrow({
|
|
84
|
+
element: arrowElement,
|
|
85
|
+
padding: 15
|
|
86
|
+
})] : [])];
|
|
87
|
+
if (this.host.hasAttribute('open')) {
|
|
88
|
+
const {
|
|
89
|
+
x,
|
|
90
|
+
y,
|
|
91
|
+
placement,
|
|
92
|
+
middlewareData,
|
|
93
|
+
strategy
|
|
94
|
+
} = await computePosition(trigger, target, {
|
|
95
|
+
strategy: 'fixed',
|
|
96
|
+
middleware,
|
|
97
|
+
placement: shimmedAlign
|
|
98
|
+
});
|
|
99
|
+
target.style.left = `${x}px`;
|
|
100
|
+
target.style.top = `${y}px`;
|
|
101
|
+
target.style.position = `${strategy}`;
|
|
102
|
+
if (arrowElement) {
|
|
103
|
+
// @ts-ignore
|
|
104
|
+
const {
|
|
105
|
+
x: arrowX,
|
|
106
|
+
y: arrowY
|
|
107
|
+
} = middlewareData.arrow;
|
|
108
|
+
const staticSide = {
|
|
109
|
+
top: 'bottom',
|
|
110
|
+
right: 'left',
|
|
111
|
+
bottom: 'top',
|
|
112
|
+
left: 'right'
|
|
113
|
+
}[placement.split('-')[0]];
|
|
114
|
+
arrowElement.style.left = arrowX != null ? `${arrowX}px` : '';
|
|
115
|
+
arrowElement.style.top = arrowY != null ? `${arrowY}px` : '';
|
|
116
|
+
arrowElement.style.right = '';
|
|
117
|
+
arrowElement.style.bottom = '';
|
|
118
|
+
arrowElement.style[staticSide] = `${-arrowElement.offsetWidth / 2}px`;
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
// adding specific case here where the style of the caret/arrow
|
|
122
|
+
// is dependent on the placement
|
|
123
|
+
if (this.host.tagName === 'CDS-SLUG') {
|
|
124
|
+
var _this$host;
|
|
125
|
+
(_this$host = this.host) === null || _this$host === void 0 || _this$host.setAttribute('alignment', placement);
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
hostUpdated() {
|
|
130
|
+
if (!this.host.hasAttribute('open')) {
|
|
131
|
+
var _this$cleanup;
|
|
132
|
+
(_this$cleanup = this.cleanup) === null || _this$cleanup === void 0 || _this$cleanup.call(this);
|
|
133
|
+
this.cleanup = undefined;
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
hostDisconnected() {
|
|
137
|
+
var _this$cleanup2;
|
|
138
|
+
(_this$cleanup2 = this.cleanup) === null || _this$cleanup2 === void 0 || _this$cleanup2.call(this);
|
|
139
|
+
this.cleanup = undefined;
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
//# sourceMappingURL=popover-controller.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"popover-controller.js","names":["computePosition","flip","offset","arrow","autoUpdate","PopoverController","constructor","host","_defineProperty","computePlacement","addController","setPlacement","options","trigger","target","cleanup","updatePlacement","arrowElement","alignment","caret","shimmedAlign","middleware","fallbackAxisSideDirection","element","padding","hasAttribute","x","y","placement","middlewareData","strategy","style","left","top","position","arrowX","arrowY","staticSide","right","bottom","split","offsetWidth","tagName","_this$host","setAttribute","hostUpdated","_this$cleanup","call","undefined","hostDisconnected","_this$cleanup2"],"sources":["globals/controllers/popover-controller.ts"],"sourcesContent":["/**\n * @license\n *\n * Copyright IBM Corp. 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 { ReactiveController, LitElement } from 'lit';\nimport {\n computePosition,\n flip,\n offset,\n arrow,\n autoUpdate,\n Placement,\n} from '@floating-ui/dom';\n\ntype PopoverControllerOptions = {\n target: HTMLElement;\n trigger: HTMLElement;\n arrowElement?: HTMLElement | undefined;\n alignment: string;\n flip: boolean;\n caret: boolean;\n};\n\ninterface PopoverElement extends LitElement {\n open: boolean;\n}\n\nexport default class PopoverController implements ReactiveController {\n /**\n * Host component\n */\n private host!: PopoverElement;\n\n /**\n * Floating-ui options to pass to `computePlacement()`\n */\n private options!: PopoverControllerOptions;\n\n /**\n * cleanup function to stop auto updates\n */\n private cleanup?: () => void;\n\n /**\n * register with host component\n * @param host host component\n */\n constructor(host: PopoverElement) {\n (this.host = host).addController(this);\n }\n\n async setPlacement(options: PopoverControllerOptions = this.options) {\n this.options = options;\n const { trigger, target } = options;\n\n this.cleanup = autoUpdate(trigger, target, this.updatePlacement);\n }\n\n updatePlacement = (): void => {\n this.computePlacement();\n };\n\n async computePlacement() {\n const { arrowElement, alignment, caret, trigger, target } = this.options;\n\n let shimmedAlign;\n switch (alignment) {\n case 'top-left':\n shimmedAlign = 'top-start';\n break;\n case 'top-right':\n shimmedAlign = 'top-end';\n break;\n case 'bottom-left':\n shimmedAlign = 'bottom-start';\n break;\n case 'bottom-right':\n shimmedAlign = 'bottom-end';\n break;\n case 'left-bottom':\n shimmedAlign = 'left-end';\n break;\n case 'left-top':\n shimmedAlign = 'left-start';\n break;\n case 'right-bottom':\n shimmedAlign = 'right-end';\n break;\n case 'right-top':\n shimmedAlign = 'right-start';\n break;\n default:\n shimmedAlign = alignment;\n break;\n }\n\n const middleware = [\n flip({ fallbackAxisSideDirection: 'start' }),\n offset(caret ? 10 : 0),\n ...(caret && arrowElement\n ? [arrow({ element: arrowElement, padding: 15 })]\n : []),\n ];\n\n if (this.host.hasAttribute('open')) {\n const { x, y, placement, middlewareData, strategy } =\n await computePosition(trigger, target, {\n strategy: 'fixed',\n middleware,\n placement: shimmedAlign as Placement,\n });\n\n target.style.left = `${x}px`;\n target.style.top = `${y}px`;\n target.style.position = `${strategy}`;\n\n if (arrowElement) {\n // @ts-ignore\n const { x: arrowX, y: arrowY } = middlewareData.arrow;\n\n const staticSide: any = {\n top: 'bottom',\n right: 'left',\n bottom: 'top',\n left: 'right',\n }[placement.split('-')[0]];\n\n arrowElement.style.left = arrowX != null ? `${arrowX}px` : '';\n arrowElement.style.top = arrowY != null ? `${arrowY}px` : '';\n arrowElement.style.right = '';\n arrowElement.style.bottom = '';\n arrowElement.style[staticSide] = `${-arrowElement.offsetWidth / 2}px`;\n }\n\n // adding specific case here where the style of the caret/arrow\n // is dependent on the placement\n if (this.host.tagName === 'CDS-SLUG') {\n this.host?.setAttribute('alignment', placement);\n }\n }\n }\n\n hostUpdated(): void {\n if (!this.host.hasAttribute('open')) {\n this.cleanup?.();\n this.cleanup = undefined;\n }\n }\n\n hostDisconnected(): void {\n this.cleanup?.();\n this.cleanup = undefined;\n }\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.default = void 0;
|
|
8
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
9
|
+
var _dom = require("@floating-ui/dom");
|
|
10
|
+
/**
|
|
11
|
+
* @license
|
|
12
|
+
*
|
|
13
|
+
* Copyright IBM Corp. 2024
|
|
14
|
+
*
|
|
15
|
+
* This source code is licensed under the Apache-2.0 license found in the
|
|
16
|
+
* LICENSE file in the root directory of this source tree.
|
|
17
|
+
*/
|
|
18
|
+
|
|
19
|
+
class PopoverController {
|
|
20
|
+
/**
|
|
21
|
+
* Host component
|
|
22
|
+
*/
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* Floating-ui options to pass to `computePlacement()`
|
|
26
|
+
*/
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* cleanup function to stop auto updates
|
|
30
|
+
*/
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* register with host component
|
|
34
|
+
* @param host host component
|
|
35
|
+
*/
|
|
36
|
+
constructor(host) {
|
|
37
|
+
(0, _defineProperty2.default)(this, "updatePlacement", () => {
|
|
38
|
+
this.computePlacement();
|
|
39
|
+
});
|
|
40
|
+
(this.host = host).addController(this);
|
|
41
|
+
}
|
|
42
|
+
async setPlacement(options = this.options) {
|
|
43
|
+
this.options = options;
|
|
44
|
+
const {
|
|
45
|
+
trigger,
|
|
46
|
+
target
|
|
47
|
+
} = options;
|
|
48
|
+
this.cleanup = (0, _dom.autoUpdate)(trigger, target, this.updatePlacement);
|
|
49
|
+
}
|
|
50
|
+
async computePlacement() {
|
|
51
|
+
const {
|
|
52
|
+
arrowElement,
|
|
53
|
+
alignment,
|
|
54
|
+
caret,
|
|
55
|
+
trigger,
|
|
56
|
+
target
|
|
57
|
+
} = this.options;
|
|
58
|
+
let shimmedAlign;
|
|
59
|
+
switch (alignment) {
|
|
60
|
+
case 'top-left':
|
|
61
|
+
shimmedAlign = 'top-start';
|
|
62
|
+
break;
|
|
63
|
+
case 'top-right':
|
|
64
|
+
shimmedAlign = 'top-end';
|
|
65
|
+
break;
|
|
66
|
+
case 'bottom-left':
|
|
67
|
+
shimmedAlign = 'bottom-start';
|
|
68
|
+
break;
|
|
69
|
+
case 'bottom-right':
|
|
70
|
+
shimmedAlign = 'bottom-end';
|
|
71
|
+
break;
|
|
72
|
+
case 'left-bottom':
|
|
73
|
+
shimmedAlign = 'left-end';
|
|
74
|
+
break;
|
|
75
|
+
case 'left-top':
|
|
76
|
+
shimmedAlign = 'left-start';
|
|
77
|
+
break;
|
|
78
|
+
case 'right-bottom':
|
|
79
|
+
shimmedAlign = 'right-end';
|
|
80
|
+
break;
|
|
81
|
+
case 'right-top':
|
|
82
|
+
shimmedAlign = 'right-start';
|
|
83
|
+
break;
|
|
84
|
+
default:
|
|
85
|
+
shimmedAlign = alignment;
|
|
86
|
+
break;
|
|
87
|
+
}
|
|
88
|
+
const middleware = [(0, _dom.flip)({
|
|
89
|
+
fallbackAxisSideDirection: 'start'
|
|
90
|
+
}), (0, _dom.offset)(caret ? 10 : 0), ...(caret && arrowElement ? [(0, _dom.arrow)({
|
|
91
|
+
element: arrowElement,
|
|
92
|
+
padding: 15
|
|
93
|
+
})] : [])];
|
|
94
|
+
if (this.host.hasAttribute('open')) {
|
|
95
|
+
const {
|
|
96
|
+
x,
|
|
97
|
+
y,
|
|
98
|
+
placement,
|
|
99
|
+
middlewareData,
|
|
100
|
+
strategy
|
|
101
|
+
} = await (0, _dom.computePosition)(trigger, target, {
|
|
102
|
+
strategy: 'fixed',
|
|
103
|
+
middleware,
|
|
104
|
+
placement: shimmedAlign
|
|
105
|
+
});
|
|
106
|
+
target.style.left = `${x}px`;
|
|
107
|
+
target.style.top = `${y}px`;
|
|
108
|
+
target.style.position = `${strategy}`;
|
|
109
|
+
if (arrowElement) {
|
|
110
|
+
// @ts-ignore
|
|
111
|
+
const {
|
|
112
|
+
x: arrowX,
|
|
113
|
+
y: arrowY
|
|
114
|
+
} = middlewareData.arrow;
|
|
115
|
+
const staticSide = {
|
|
116
|
+
top: 'bottom',
|
|
117
|
+
right: 'left',
|
|
118
|
+
bottom: 'top',
|
|
119
|
+
left: 'right'
|
|
120
|
+
}[placement.split('-')[0]];
|
|
121
|
+
arrowElement.style.left = arrowX != null ? `${arrowX}px` : '';
|
|
122
|
+
arrowElement.style.top = arrowY != null ? `${arrowY}px` : '';
|
|
123
|
+
arrowElement.style.right = '';
|
|
124
|
+
arrowElement.style.bottom = '';
|
|
125
|
+
arrowElement.style[staticSide] = `${-arrowElement.offsetWidth / 2}px`;
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
// adding specific case here where the style of the caret/arrow
|
|
129
|
+
// is dependent on the placement
|
|
130
|
+
if (this.host.tagName === 'CDS-SLUG') {
|
|
131
|
+
var _this$host;
|
|
132
|
+
(_this$host = this.host) === null || _this$host === void 0 || _this$host.setAttribute('alignment', placement);
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
hostUpdated() {
|
|
137
|
+
if (!this.host.hasAttribute('open')) {
|
|
138
|
+
var _this$cleanup;
|
|
139
|
+
(_this$cleanup = this.cleanup) === null || _this$cleanup === void 0 || _this$cleanup.call(this);
|
|
140
|
+
this.cleanup = undefined;
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
hostDisconnected() {
|
|
144
|
+
var _this$cleanup2;
|
|
145
|
+
(_this$cleanup2 = this.cleanup) === null || _this$cleanup2 === void 0 || _this$cleanup2.call(this);
|
|
146
|
+
this.cleanup = undefined;
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
exports.default = PopoverController;
|
|
150
|
+
//# sourceMappingURL=popover-controller.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"popover-controller.js","names":["_dom","require","PopoverController","constructor","host","_defineProperty2","default","computePlacement","addController","setPlacement","options","trigger","target","cleanup","autoUpdate","updatePlacement","arrowElement","alignment","caret","shimmedAlign","middleware","flip","fallbackAxisSideDirection","offset","arrow","element","padding","hasAttribute","x","y","placement","middlewareData","strategy","computePosition","style","left","top","position","arrowX","arrowY","staticSide","right","bottom","split","offsetWidth","tagName","_this$host","setAttribute","hostUpdated","_this$cleanup","call","undefined","hostDisconnected","_this$cleanup2","exports"],"sources":["globals/controllers/popover-controller.ts"],"sourcesContent":["/**\n * @license\n *\n * Copyright IBM Corp. 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 { ReactiveController, LitElement } from 'lit';\nimport {\n computePosition,\n flip,\n offset,\n arrow,\n autoUpdate,\n Placement,\n} from '@floating-ui/dom';\n\ntype PopoverControllerOptions = {\n target: HTMLElement;\n trigger: HTMLElement;\n arrowElement?: HTMLElement | undefined;\n alignment: string;\n flip: boolean;\n caret: boolean;\n};\n\ninterface PopoverElement extends LitElement {\n open: boolean;\n}\n\nexport default class PopoverController implements ReactiveController {\n /**\n * Host component\n */\n private host!: PopoverElement;\n\n /**\n * Floating-ui options to pass to `computePlacement()`\n */\n private options!: PopoverControllerOptions;\n\n /**\n * cleanup function to stop auto updates\n */\n private cleanup?: () => void;\n\n /**\n * register with host component\n * @param host host component\n */\n constructor(host: PopoverElement) {\n (this.host = host).addController(this);\n }\n\n async setPlacement(options: PopoverControllerOptions = this.options) {\n this.options = options;\n const { trigger, target } = options;\n\n this.cleanup = autoUpdate(trigger, target, this.updatePlacement);\n }\n\n updatePlacement = (): void => {\n this.computePlacement();\n };\n\n async computePlacement() {\n const { arrowElement, alignment, caret, trigger, target } = this.options;\n\n let shimmedAlign;\n switch (alignment) {\n case 'top-left':\n shimmedAlign = 'top-start';\n break;\n case 'top-right':\n shimmedAlign = 'top-end';\n break;\n case 'bottom-left':\n shimmedAlign = 'bottom-start';\n break;\n case 'bottom-right':\n shimmedAlign = 'bottom-end';\n break;\n case 'left-bottom':\n shimmedAlign = 'left-end';\n break;\n case 'left-top':\n shimmedAlign = 'left-start';\n break;\n case 'right-bottom':\n shimmedAlign = 'right-end';\n break;\n case 'right-top':\n shimmedAlign = 'right-start';\n break;\n default:\n shimmedAlign = alignment;\n break;\n }\n\n const middleware = [\n flip({ fallbackAxisSideDirection: 'start' }),\n offset(caret ? 10 : 0),\n ...(caret && arrowElement\n ? [arrow({ element: arrowElement, padding: 15 })]\n : []),\n ];\n\n if (this.host.hasAttribute('open')) {\n const { x, y, placement, middlewareData, strategy } =\n await computePosition(trigger, target, {\n strategy: 'fixed',\n middleware,\n placement: shimmedAlign as Placement,\n });\n\n target.style.left = `${x}px`;\n target.style.top = `${y}px`;\n target.style.position = `${strategy}`;\n\n if (arrowElement) {\n // @ts-ignore\n const { x: arrowX, y: arrowY } = middlewareData.arrow;\n\n const staticSide: any = {\n top: 'bottom',\n right: 'left',\n bottom: 'top',\n left: 'right',\n }[placement.split('-')[0]];\n\n arrowElement.style.left = arrowX != null ? `${arrowX}px` : '';\n arrowElement.style.top = arrowY != null ? `${arrowY}px` : '';\n arrowElement.style.right = '';\n arrowElement.style.bottom = '';\n arrowElement.style[staticSide] = `${-arrowElement.offsetWidth / 2}px`;\n }\n\n // adding specific case here where the style of the caret/arrow\n // is dependent on the placement\n if (this.host.tagName === 'CDS-SLUG') {\n this.host?.setAttribute('alignment', placement);\n }\n }\n }\n\n hostUpdated(): void {\n if (!this.host.hasAttribute('open')) {\n this.cleanup?.();\n this.cleanup = undefined;\n }\n }\n\n hostDisconnected(): void {\n this.cleanup?.();\n this.cleanup = undefined;\n }\n}\n"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@carbon/web-components",
|
|
3
|
-
"version": "2.4.0-rc.
|
|
3
|
+
"version": "2.4.0-rc.3",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public"
|
|
6
6
|
},
|
|
@@ -208,5 +208,5 @@
|
|
|
208
208
|
"zone.js": "~0.14.0"
|
|
209
209
|
},
|
|
210
210
|
"typings": "es/index.d.ts",
|
|
211
|
-
"gitHead": "
|
|
211
|
+
"gitHead": "b287248964ddfb272d3ee87eb515b8651bcc76cf"
|
|
212
212
|
}
|
|
@@ -385,6 +385,15 @@ $colorMap: (
|
|
|
385
385
|
inline-size: $spacing-04;
|
|
386
386
|
}
|
|
387
387
|
|
|
388
|
+
:host(#{$prefix}-slug[autoalign][kind='hollow']),
|
|
389
|
+
:host(#{$prefix}-slug[autoalign][dot-type='hollow']) {
|
|
390
|
+
.#{$prefix}--popover-caret {
|
|
391
|
+
block-size: $spacing-03;
|
|
392
|
+
inline-size: $spacing-03;
|
|
393
|
+
transform: rotate(45deg);
|
|
394
|
+
}
|
|
395
|
+
}
|
|
396
|
+
|
|
388
397
|
:host(
|
|
389
398
|
#{$prefix}-slug[autoalign]:not([kind='hollow']):not([dot-type='hollow'])
|
|
390
399
|
) {
|