@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.
Files changed (130) hide show
  1. package/dist/16-44367639.js +7 -7
  2. package/dist/16-880e779e.js +7 -7
  3. package/dist/16-8ab58ede.js +7 -7
  4. package/dist/16-945f9ad8.js +7 -7
  5. package/dist/16-9bdb8b2e.js +7 -7
  6. package/dist/16-afc2ad08.js +7 -7
  7. package/dist/16-f2933a25.js +60 -0
  8. package/dist/16-f2df91a2.js +7 -7
  9. package/dist/20-c1834a3b.js +7 -7
  10. package/dist/accordion.min.js +8 -8
  11. package/dist/ai-skeleton.min.js +8 -8
  12. package/dist/breadcrumb.min.js +8 -8
  13. package/dist/{button-dade8f28.js → button-ad33c11e.js} +8 -8
  14. package/dist/{button-set-5f5affa0.js → button-set-0868cd7d.js} +8 -8
  15. package/dist/{button-skeleton-7325ea56.js → button-skeleton-5d59f37f.js} +9 -9
  16. package/dist/button.min.js +8 -8
  17. package/dist/carbon-element-4ca9803f.js +7 -7
  18. package/dist/chat-button.min.js +8 -8
  19. package/dist/{checkbox-a610152a.js → checkbox-3f270cb6.js} +8 -8
  20. package/dist/checkbox.min.js +13 -13
  21. package/dist/class-map-b1739c02.js +7 -7
  22. package/dist/code-snippet.min.js +8 -8
  23. package/dist/collection-helpers-4e32fe16.js +7 -7
  24. package/dist/combo-box.min.js +8 -8
  25. package/dist/{content-switcher-item-9714594a.js → content-switcher-item-ef4c3ffc.js} +8 -8
  26. package/dist/content-switcher.min.js +8 -8
  27. package/dist/{copy-button-e4f754c9.js → copy-button-22693367.js} +8 -8
  28. package/dist/copy-button.min.js +8 -8
  29. package/dist/custom-element-975be15f.js +7 -7
  30. package/dist/data-table.min.js +9 -9
  31. package/dist/date-picker.min.js +8 -8
  32. package/dist/{objectSpread2-0b7e8561.js → defineProperty-d784d12c.js} +8 -8
  33. package/dist/directive-e2d48b9c.js +7 -7
  34. package/dist/{dropdown-item-cc7cc1dc.js → dropdown-item-5213e869.js} +8 -8
  35. package/dist/dropdown.min.js +8 -8
  36. package/dist/file-uploader.min.js +8 -8
  37. package/dist/{floating-menu-6ec5c7fa.js → floating-menu-413f6e95.js} +8 -8
  38. package/dist/floating-menu.min.js +8 -8
  39. package/dist/focus-92d82b5f.js +7 -7
  40. package/dist/form-group.min.js +7 -7
  41. package/dist/form.min.js +7 -7
  42. package/dist/get-d229c408.js +7 -7
  43. package/dist/{host-listener-a948931e.js → host-listener-0024708a.js} +9 -9
  44. package/dist/{icon-button-ab6ad963.js → icon-button-7a997866.js} +8 -8
  45. package/dist/icon-button.min.js +8 -8
  46. package/dist/if-defined-b99f5484.js +7 -7
  47. package/dist/if-non-empty-d69cc3f0.js +7 -7
  48. package/dist/inline-loading.min.js +7 -7
  49. package/dist/layer-62995057.js +7 -7
  50. package/dist/layer.min.js +7 -7
  51. package/dist/{link-d5d53be2.js → link-6fcc6a0e.js} +8 -8
  52. package/dist/link.min.js +8 -8
  53. package/dist/list.min.js +7 -7
  54. package/dist/loading-0dcb7680.js +7 -7
  55. package/dist/loading-icon-2ac6de26.js +7 -7
  56. package/dist/loading.min.js +7 -7
  57. package/dist/modal.min.js +9 -9
  58. package/dist/multi-select.min.js +8 -8
  59. package/dist/notification.min.js +10 -10
  60. package/dist/number-input.min.js +8 -8
  61. package/dist/{16-2aa048a9.js → objectSpread2-58bc1706.js} +8 -8
  62. package/dist/on-6c264d49.js +7 -7
  63. package/dist/overflow-menu.min.js +8 -8
  64. package/dist/pagination.min.js +8 -8
  65. package/dist/popover-content-2df97cf7.js +75 -0
  66. package/dist/popover-controller-e5f73836.js +60 -0
  67. package/dist/popover.min.js +8 -8
  68. package/dist/progress-bar.min.js +7 -7
  69. package/dist/progress-indicator.min.js +8 -8
  70. package/dist/query-6ca5e414.js +7 -7
  71. package/dist/query-assigned-elements-8e88277c.js +7 -7
  72. package/dist/radio-button.min.js +8 -8
  73. package/dist/{radio-group-manager-3cfdd620.js → radio-group-manager-9810bd7d.js} +8 -8
  74. package/dist/{search-4c0e8630.js → search-b8b073b6.js} +8 -8
  75. package/dist/search.min.js +8 -8
  76. package/dist/select-item-db3c6fa0.js +7 -7
  77. package/dist/select.min.js +8 -8
  78. package/dist/settings-387c0fa4.js +7 -7
  79. package/dist/shared-enums-c6fe8c39.js +7 -7
  80. package/dist/side-panel.min.js +16 -16
  81. package/dist/skeleton-icon-451d3c47.js +7 -7
  82. package/dist/skeleton-icon.min.js +7 -7
  83. package/dist/{skeleton-placeholder-e6490dbd.js → skeleton-placeholder-5aa06271.js} +8 -8
  84. package/dist/skeleton-placeholder.min.js +8 -8
  85. package/dist/{skeleton-text-eeac3c87.js → skeleton-text-283abe50.js} +8 -8
  86. package/dist/skeleton-text.min.js +8 -8
  87. package/dist/skip-to-content.min.js +8 -8
  88. package/dist/slider.min.js +8 -8
  89. package/dist/slug.min.js +9 -9
  90. package/dist/spread-6af5f657.js +7 -7
  91. package/dist/stack.min.js +7 -7
  92. package/dist/state-63312e74.js +7 -7
  93. package/dist/structured-list.min.js +8 -8
  94. package/dist/tabs.min.js +9 -9
  95. package/dist/tag.min.js +8 -8
  96. package/dist/{text-input-8d011ae2.js → text-input-d40fbf4d.js} +8 -8
  97. package/dist/text-input.min.js +9 -9
  98. package/dist/textarea.min.js +12 -12
  99. package/dist/tile.min.js +8 -8
  100. package/dist/toggle-tip.min.js +8 -8
  101. package/dist/toggle.min.js +8 -8
  102. package/dist/{toggletip-17030a2a.js → toggletip-2d777826.js} +10 -10
  103. package/dist/{tooltip-content-45723618.js → tooltip-content-2ef20c6a.js} +8 -8
  104. package/dist/tooltip.min.js +8 -8
  105. package/dist/ui-shell.min.js +8 -8
  106. package/dist/validity-d86ffa4f.js +7 -7
  107. package/es/components/data-table/table.js +1 -1
  108. package/es/components/data-table/table.js.map +1 -1
  109. package/es/components/popover/popover.d.ts +4 -0
  110. package/es/components/popover/popover.js +19 -6
  111. package/es/components/popover/popover.js.map +1 -1
  112. package/es/components/slug/slug.css.js +1 -1
  113. package/es/components/slug/slug.d.ts +1 -1
  114. package/es/components/slug/slug.js +1 -1
  115. package/es/components/slug/slug.js.map +1 -1
  116. package/es/components/toggle-tip/toggletip.d.ts +5 -1
  117. package/es/components/toggle-tip/toggletip.js +19 -10
  118. package/es/components/toggle-tip/toggletip.js.map +1 -1
  119. package/es/globals/controllers/popover-controller.d.ts +47 -0
  120. package/es/globals/controllers/popover-controller.js +142 -0
  121. package/es/globals/controllers/popover-controller.js.map +1 -0
  122. package/lib/globals/controllers/popover-controller.js +150 -0
  123. package/lib/globals/controllers/popover-controller.js.map +1 -0
  124. package/package.json +2 -2
  125. package/scss/components/slug/slug.scss +9 -0
  126. package/dist/floating-ui-a76fcefc.js +0 -69
  127. package/dist/popover-content-620200e8.js +0 -75
  128. package/es/globals/internal/floating-ui.d.ts +0 -30
  129. package/es/globals/internal/floating-ui.js +0 -102
  130. 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(): Promise<void>;
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: async function updated() {
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(): Promise<void>;
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 { floatingUIPosition } from '../../globals/internal/floating-ui';
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: async function updated() {
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
- // @floating-ui/dom returns the final placement which we'll use
225
- // to set the alignment attr for styling
226
- const finalPlacement = await floatingUIPosition({
227
- button,
228
- tooltip,
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.1",
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": "a9c5c74c4f876b05a43dec2efffd688d64bf236d"
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
  ) {