@carbon/web-components 2.4.0-rc.0 → 2.4.0-rc.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (147) hide show
  1. package/custom-elements.json +108 -0
  2. package/dist/16-2aa048a9.js +11 -8
  3. package/dist/16-44367639.js +11 -8
  4. package/dist/16-880e779e.js +11 -8
  5. package/dist/16-8ab58ede.js +11 -8
  6. package/dist/16-945f9ad8.js +11 -8
  7. package/dist/16-9bdb8b2e.js +11 -8
  8. package/dist/16-afc2ad08.js +11 -8
  9. package/dist/16-f2df91a2.js +11 -8
  10. package/dist/20-c1834a3b.js +11 -8
  11. package/dist/accordion.min.js +11 -8
  12. package/dist/ai-skeleton.min.js +11 -8
  13. package/dist/breadcrumb.min.js +11 -8
  14. package/dist/button-dade8f28.js +11 -8
  15. package/dist/button-set-5f5affa0.js +11 -8
  16. package/dist/button-skeleton-7325ea56.js +11 -8
  17. package/dist/button.min.js +11 -8
  18. package/dist/carbon-element-4ca9803f.js +11 -8
  19. package/dist/chat-button.min.js +11 -8
  20. package/dist/checkbox-a610152a.js +11 -8
  21. package/dist/checkbox.min.js +11 -8
  22. package/dist/class-map-b1739c02.js +11 -8
  23. package/dist/code-snippet.min.js +12 -9
  24. package/dist/collection-helpers-4e32fe16.js +11 -8
  25. package/dist/combo-box.min.js +11 -8
  26. package/dist/content-switcher-item-9714594a.js +11 -8
  27. package/dist/content-switcher.min.js +11 -8
  28. package/dist/{copy-button-1310f02a.js → copy-button-e4f754c9.js} +12 -9
  29. package/dist/copy-button.min.js +12 -9
  30. package/dist/custom-element-975be15f.js +11 -8
  31. package/dist/data-table.min.js +12 -9
  32. package/dist/date-picker.min.js +11 -8
  33. package/dist/directive-e2d48b9c.js +11 -8
  34. package/dist/dropdown-item-cc7cc1dc.js +11 -8
  35. package/dist/dropdown.min.js +11 -8
  36. package/dist/file-uploader.min.js +11 -8
  37. package/dist/floating-menu-6ec5c7fa.js +11 -8
  38. package/dist/floating-menu.min.js +11 -8
  39. package/dist/floating-ui-a76fcefc.js +69 -0
  40. package/dist/focus-92d82b5f.js +11 -8
  41. package/dist/form-group.min.js +11 -8
  42. package/dist/form.min.js +11 -8
  43. package/dist/get-d229c408.js +11 -8
  44. package/dist/host-listener-a948931e.js +11 -8
  45. package/dist/{icon-button-7b2540b4.js → icon-button-ab6ad963.js} +16 -12
  46. package/dist/icon-button.min.js +12 -9
  47. package/dist/if-defined-b99f5484.js +11 -8
  48. package/dist/if-non-empty-d69cc3f0.js +11 -8
  49. package/dist/inline-loading.min.js +11 -8
  50. package/dist/layer-62995057.js +11 -8
  51. package/dist/layer.min.js +11 -8
  52. package/dist/link-d5d53be2.js +11 -8
  53. package/dist/link.min.js +11 -8
  54. package/dist/list.min.js +11 -8
  55. package/dist/loading-0dcb7680.js +11 -8
  56. package/dist/loading-icon-2ac6de26.js +11 -8
  57. package/dist/loading.min.js +11 -8
  58. package/dist/modal.min.js +11 -8
  59. package/dist/multi-select.min.js +11 -8
  60. package/dist/notification.min.js +11 -8
  61. package/dist/number-input.min.js +11 -8
  62. package/dist/objectSpread2-0b7e8561.js +11 -8
  63. package/dist/on-6c264d49.js +11 -8
  64. package/dist/overflow-menu.min.js +12 -9
  65. package/dist/pagination.min.js +11 -8
  66. package/dist/popover-content-620200e8.js +75 -0
  67. package/dist/popover.min.js +12 -9
  68. package/dist/progress-bar.min.js +11 -8
  69. package/dist/progress-indicator.min.js +11 -8
  70. package/dist/query-6ca5e414.js +11 -8
  71. package/dist/query-assigned-elements-8e88277c.js +11 -8
  72. package/dist/radio-button.min.js +11 -8
  73. package/dist/radio-group-manager-3cfdd620.js +11 -8
  74. package/dist/search-4c0e8630.js +11 -8
  75. package/dist/search.min.js +11 -8
  76. package/dist/select-item-db3c6fa0.js +11 -8
  77. package/dist/select.min.js +11 -8
  78. package/dist/settings-387c0fa4.js +11 -8
  79. package/dist/shared-enums-c6fe8c39.js +11 -8
  80. package/dist/side-panel.min.js +11 -8
  81. package/dist/skeleton-icon-451d3c47.js +11 -8
  82. package/dist/skeleton-icon.min.js +11 -8
  83. package/dist/skeleton-placeholder-e6490dbd.js +11 -8
  84. package/dist/skeleton-placeholder.min.js +11 -8
  85. package/dist/skeleton-text-eeac3c87.js +11 -8
  86. package/dist/skeleton-text.min.js +11 -8
  87. package/dist/skip-to-content.min.js +11 -8
  88. package/dist/slider.min.js +11 -8
  89. package/dist/slug.min.js +18 -14
  90. package/dist/spread-6af5f657.js +11 -8
  91. package/dist/stack.min.js +11 -8
  92. package/dist/state-63312e74.js +11 -8
  93. package/dist/structured-list.min.js +11 -8
  94. package/dist/tabs.min.js +12 -9
  95. package/dist/tag.min.js +11 -8
  96. package/dist/text-input-8d011ae2.js +11 -8
  97. package/dist/text-input.min.js +11 -8
  98. package/dist/textarea.min.js +11 -8
  99. package/dist/tile.min.js +11 -8
  100. package/dist/toggle-tip.min.js +12 -9
  101. package/dist/toggle.min.js +11 -8
  102. package/dist/toggletip-17030a2a.js +114 -0
  103. package/dist/{tooltip-content-fbce4fed.js → tooltip-content-45723618.js} +12 -9
  104. package/dist/tooltip.min.js +12 -9
  105. package/dist/ui-shell.min.js +11 -8
  106. package/dist/validity-d86ffa4f.js +11 -8
  107. package/es/components/data-table/data-table.css.js +1 -1
  108. package/es/components/icon-button/icon-button.css.js +1 -1
  109. package/es/components/icon-button/icon-button.d.ts +5 -1
  110. package/es/components/icon-button/icon-button.js +18 -2
  111. package/es/components/icon-button/icon-button.js.map +1 -1
  112. package/es/components/popover/defs.d.ts +50 -2
  113. package/es/components/popover/defs.js +9 -2
  114. package/es/components/popover/defs.js.map +1 -1
  115. package/es/components/popover/popover-content.d.ts +5 -1
  116. package/es/components/popover/popover-content.js +32 -9
  117. package/es/components/popover/popover-content.js.map +1 -1
  118. package/es/components/popover/popover.css.js +1 -1
  119. package/es/components/popover/popover.d.ts +23 -1
  120. package/es/components/popover/popover.js +80 -4
  121. package/es/components/popover/popover.js.map +1 -1
  122. package/es/components/slug/slug.css.js +1 -1
  123. package/es/components/slug/slug.d.ts +1 -1
  124. package/es/components/slug/slug.js +5 -3
  125. package/es/components/slug/slug.js.map +1 -1
  126. package/es/components/tabs/tabs.css.js +1 -1
  127. package/es/components/toggle-tip/toggletip.css.js +1 -1
  128. package/es/components/toggle-tip/toggletip.d.ts +20 -0
  129. package/es/components/toggle-tip/toggletip.js +106 -17
  130. package/es/components/toggle-tip/toggletip.js.map +1 -1
  131. package/es/components/tooltip/tooltip.css.js +1 -1
  132. package/es/components/tooltip/tooltip.d.ts +5 -1
  133. package/es/components/tooltip/tooltip.js +17 -2
  134. package/es/components/tooltip/tooltip.js.map +1 -1
  135. package/es/globals/internal/floating-ui.d.ts +30 -0
  136. package/es/globals/internal/floating-ui.js +102 -0
  137. package/es/globals/internal/floating-ui.js.map +1 -0
  138. package/lib/components/popover/defs.js +9 -1
  139. package/lib/components/popover/defs.js.map +1 -1
  140. package/package.json +3 -2
  141. package/scss/components/data-table/_table-core.scss +0 -1
  142. package/scss/components/popover/popover.scss +83 -64
  143. package/scss/components/slug/slug.scss +162 -28
  144. package/scss/components/tabs/tabs.scss +1 -1
  145. package/scss/components/toggle-tip/toggletip.scss +13 -1
  146. package/dist/popover-content-e0c3132f.js +0 -68
  147. package/dist/toggletip-b2d3b8bf.js +0 -99
@@ -6,7 +6,7 @@ let _ = t => t,
6
6
  /**
7
7
  * @license
8
8
  *
9
- * Copyright IBM Corp. 2019, 2023
9
+ * Copyright IBM Corp. 2019, 2024
10
10
  *
11
11
  * This source code is licensed under the Apache-2.0 license found in the
12
12
  * LICENSE file in the root directory of this source tree.
@@ -46,6 +46,16 @@ let CDSTooltip = _decorate([customElement(`${prefix}-tooltip`)], function (_init
46
46
  value() {
47
47
  return 'top';
48
48
  }
49
+ }, {
50
+ kind: "field",
51
+ decorators: [property({
52
+ type: Boolean,
53
+ reflect: true
54
+ })],
55
+ key: "autoalign",
56
+ value() {
57
+ return false;
58
+ }
49
59
  }, {
50
60
  kind: "field",
51
61
  decorators: [property({
@@ -195,6 +205,10 @@ let CDSTooltip = _decorate([customElement(`${prefix}-tooltip`)], function (_init
195
205
  * Specify how the trigger should align with the tooltip
196
206
  */
197
207
 
208
+ /**
209
+ * Specify whether a auto align functionality should be applied
210
+ */
211
+
198
212
  /**
199
213
  * `true` if this tooltip is in a data table row
200
214
  */
@@ -288,7 +302,7 @@ let CDSTooltip = _decorate([customElement(`${prefix}-tooltip`)], function (_init
288
302
  if (changedProperties.has('open')) {
289
303
  this.open ? toolTipContent === null || toolTipContent === void 0 ? void 0 : toolTipContent.setAttribute('open', '') : toolTipContent === null || toolTipContent === void 0 ? void 0 : toolTipContent.removeAttribute('open');
290
304
  }
291
- ['align', 'caret'].forEach(name => {
305
+ ['align', 'caret', 'autoalign'].forEach(name => {
292
306
  if (changedProperties.has(name)) {
293
307
  const {
294
308
  [name]: value
@@ -297,6 +311,7 @@ let CDSTooltip = _decorate([customElement(`${prefix}-tooltip`)], function (_init
297
311
  }
298
312
  });
299
313
  (_this$shadowRoot = this.shadowRoot) === null || _this$shadowRoot === void 0 || (_this$shadowRoot = _this$shadowRoot.querySelector(`.${prefix}--popover-container`)) === null || _this$shadowRoot === void 0 || _this$shadowRoot.classList.add(`${prefix}--tooltip`);
314
+ _get(_getPrototypeOf(CDSTooltip.prototype), "updated", this).call(this, changedProperties);
300
315
  }
301
316
 
302
317
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"tooltip.js","names":["css","property","prefix","HostListener","HostListenerMixin","CDSPopover","styles","carbonElement","customElement","CDSTooltip","_decorate","_initialize","_HostListenerMixin","constructor","args","F","d","kind","decorators","reflect","type","String","key","value","Boolean","attribute","Number","window","clearTimeout","timeoutId","setTimeout","open","updateComplete","_this$querySelector","selectorTooltipContent","querySelector","focus","enterDelayMs","leaveDelayMs","closeOnActivation","_handleHoverOut","event","_handleSlotChange","target","component","assignedNodes","filter","node","nodeType","Node","TEXT_NODE","textContent","trim","addEventListener","_handleHover","requestUpdate","connectedCallback","hasAttribute","setAttribute","shadowRoot","attachShadow","mode","_get","_getPrototypeOf","prototype","call","updated","changedProperties","_this$shadowRoot","toolTipContent","has","defaultOpen","removeAttribute","forEach","name","classList","add","static","_t","_"],"sources":["components/tooltip/tooltip.ts"],"sourcesContent":["/**\n * @license\n *\n * Copyright IBM Corp. 2019, 2023\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { css } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { prefix } from '../../globals/settings';\nimport HostListener from '../../globals/decorators/host-listener';\nimport HostListenerMixin from '../../globals/mixins/host-listener';\nimport CDSPopover from '../popover/popover';\nimport '../popover/popover-content';\nimport styles from './tooltip.scss';\nimport CDSTooltipContent from './tooltip-content';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\n\n/**\n * Trigger button of tooltip.\n *\n * @element cds-tooltip\n */\n@customElement(`${prefix}-tooltip`)\nclass CDSTooltip extends HostListenerMixin(CDSPopover) {\n /**\n * Specify how the trigger should align with the tooltip\n */\n @property({ reflect: true, type: String })\n align = 'top';\n\n /**\n * `true` if this tooltip is in a data table row\n */\n @property({ type: Boolean, reflect: true, attribute: 'data-table' })\n dataTable = false;\n\n /**\n * Specify whether the tooltip should be closed when clicked\n */\n @property({ reflect: true, type: Boolean })\n closeOnActivation = false;\n\n /**\n * Specify whether the tooltip should be open when it first renders\n */\n @property({ reflect: true, type: Boolean })\n defaultOpen = false;\n\n /**\n * Specify the duration in milliseconds to delay before displaying the tooltip\n */\n @property({ attribute: 'enter-delay-ms', type: Number })\n enterDelayMs = 100;\n\n /**\n * Specify the duration in milliseconds to delay before hiding the tooltip\n */\n @property({ attribute: 'leave-delay-ms', type: Number })\n leaveDelayMs = 300;\n\n /**\n * Specify the size of the tooltip\n */\n @property({ reflect: true })\n size = false;\n\n /**\n * Specify the timeout reference for the tooltip\n */\n @property({ reflect: true })\n timeoutId = 0;\n\n /**\n * Specify whether the tooltip should be open when it first renders\n */\n @property({ reflect: true, attribute: 'toolbar-action', type: Boolean })\n toolbarAction = false;\n\n /**\n * Handles `mouseover` event on this element.\n */\n private _handleHover = async () => {\n window.clearTimeout(this.timeoutId);\n this.timeoutId = window.setTimeout(async () => {\n this.open = true;\n const { open, updateComplete } = this;\n if (open) {\n await updateComplete;\n const { selectorTooltipContent } = this\n .constructor as typeof CDSTooltip;\n (this.querySelector(selectorTooltipContent) as HTMLElement)?.focus();\n }\n }, this.enterDelayMs);\n };\n\n /**\n * Handles `mouseleave` event on this element.\n */\n private _handleHoverOut = async () => {\n window.clearTimeout(this.timeoutId);\n this.timeoutId = window.setTimeout(async () => {\n const { open } = this;\n if (open) {\n this.open = false;\n }\n }, this.leaveDelayMs);\n };\n\n /**\n * Handles `click` event on this element.\n */\n @HostListener('click')\n // @ts-ignore: The decorator refers to this method but TS thinks this method is not referred to\n private _handleClick = async () => {\n if (this.closeOnActivation) {\n this._handleHoverOut();\n }\n };\n\n /**\n * Handles `keydown` event on this element.\n */\n @HostListener('click')\n // @ts-ignore: The decorator refers to this method but TS thinks this method is not referred to\n private _handleKeydown = async (event) => {\n if (event.key === ' ' || event.key === 'Enter' || event.key === 'Escape') {\n this._handleHoverOut();\n }\n };\n\n /**\n * Handles `slotchange` event.\n */\n protected _handleSlotChange({ target }: Event) {\n const component = (target as HTMLSlotElement)\n .assignedNodes()\n .filter(\n (node) => node.nodeType !== Node.TEXT_NODE || node!.textContent!.trim()\n );\n if (!component[0]) {\n return;\n }\n (component[0] as HTMLElement).addEventListener('focus', this._handleHover);\n (component[0] as HTMLElement).addEventListener(\n 'focusout',\n this._handleHoverOut\n );\n (component[0] as HTMLElement).addEventListener(\n 'mouseover',\n this._handleHover\n );\n (component[0] as HTMLElement).addEventListener(\n 'mouseleave',\n this._handleHoverOut\n );\n this.requestUpdate();\n }\n\n connectedCallback() {\n if (!this.hasAttribute('highContrast')) {\n this.setAttribute('highContrast', '');\n }\n if (!this.shadowRoot) {\n this.attachShadow({ mode: 'open' });\n }\n super.connectedCallback();\n }\n\n updated(changedProperties) {\n const { selectorTooltipContent } = this.constructor as typeof CDSTooltip;\n const toolTipContent = this.querySelector(selectorTooltipContent);\n\n if (changedProperties.has('defaultOpen')) {\n this.open = this.defaultOpen;\n }\n\n if (changedProperties.has('open')) {\n this.open\n ? toolTipContent?.setAttribute('open', '')\n : toolTipContent?.removeAttribute('open');\n }\n\n ['align', 'caret'].forEach((name) => {\n if (changedProperties.has(name)) {\n const { [name as keyof CDSTooltip]: value } = this;\n (toolTipContent as CDSTooltipContent)[name] = value;\n }\n });\n\n this.shadowRoot\n ?.querySelector(`.${prefix}--popover-container`)\n ?.classList.add(`${prefix}--tooltip`);\n }\n\n /**\n * A selector that will return the CDSTooltipContent.\n */\n static get selectorTooltipContent() {\n return `${prefix}-tooltip-content`;\n }\n\n static get styles() {\n return css`\n ${super.styles}${styles}\n `;\n } // `styles` here is a `CSSResult` generated by custom WebPack loader\n}\n\nexport default CDSTooltip;\n"],"mappings":"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"}
1
+ {"version":3,"file":"tooltip.js","names":["css","property","prefix","HostListener","HostListenerMixin","CDSPopover","styles","carbonElement","customElement","CDSTooltip","_decorate","_initialize","_HostListenerMixin","constructor","args","F","d","kind","decorators","reflect","type","String","key","value","Boolean","attribute","Number","window","clearTimeout","timeoutId","setTimeout","open","updateComplete","_this$querySelector","selectorTooltipContent","querySelector","focus","enterDelayMs","leaveDelayMs","closeOnActivation","_handleHoverOut","event","_handleSlotChange","target","component","assignedNodes","filter","node","nodeType","Node","TEXT_NODE","textContent","trim","addEventListener","_handleHover","requestUpdate","connectedCallback","hasAttribute","setAttribute","shadowRoot","attachShadow","mode","_get","_getPrototypeOf","prototype","call","updated","changedProperties","_this$shadowRoot","toolTipContent","has","defaultOpen","removeAttribute","forEach","name","classList","add","static","_t","_"],"sources":["components/tooltip/tooltip.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 { css } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { prefix } from '../../globals/settings';\nimport HostListener from '../../globals/decorators/host-listener';\nimport HostListenerMixin from '../../globals/mixins/host-listener';\nimport CDSPopover from '../popover/popover';\nimport '../popover/popover-content';\nimport styles from './tooltip.scss';\nimport CDSTooltipContent from './tooltip-content';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\n\n/**\n * Trigger button of tooltip.\n *\n * @element cds-tooltip\n */\n@customElement(`${prefix}-tooltip`)\nclass CDSTooltip extends HostListenerMixin(CDSPopover) {\n /**\n * Specify how the trigger should align with the tooltip\n */\n @property({ reflect: true, type: String })\n align = '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 * `true` if this tooltip is in a data table row\n */\n @property({ type: Boolean, reflect: true, attribute: 'data-table' })\n dataTable = false;\n\n /**\n * Specify whether the tooltip should be closed when clicked\n */\n @property({ reflect: true, type: Boolean })\n closeOnActivation = false;\n\n /**\n * Specify whether the tooltip should be open when it first renders\n */\n @property({ reflect: true, type: Boolean })\n defaultOpen = false;\n\n /**\n * Specify the duration in milliseconds to delay before displaying the tooltip\n */\n @property({ attribute: 'enter-delay-ms', type: Number })\n enterDelayMs = 100;\n\n /**\n * Specify the duration in milliseconds to delay before hiding the tooltip\n */\n @property({ attribute: 'leave-delay-ms', type: Number })\n leaveDelayMs = 300;\n\n /**\n * Specify the size of the tooltip\n */\n @property({ reflect: true })\n size = false;\n\n /**\n * Specify the timeout reference for the tooltip\n */\n @property({ reflect: true })\n timeoutId = 0;\n\n /**\n * Specify whether the tooltip should be open when it first renders\n */\n @property({ reflect: true, attribute: 'toolbar-action', type: Boolean })\n toolbarAction = false;\n\n /**\n * Handles `mouseover` event on this element.\n */\n private _handleHover = async () => {\n window.clearTimeout(this.timeoutId);\n this.timeoutId = window.setTimeout(async () => {\n this.open = true;\n const { open, updateComplete } = this;\n if (open) {\n await updateComplete;\n const { selectorTooltipContent } = this\n .constructor as typeof CDSTooltip;\n (this.querySelector(selectorTooltipContent) as HTMLElement)?.focus();\n }\n }, this.enterDelayMs);\n };\n\n /**\n * Handles `mouseleave` event on this element.\n */\n private _handleHoverOut = async () => {\n window.clearTimeout(this.timeoutId);\n this.timeoutId = window.setTimeout(async () => {\n const { open } = this;\n if (open) {\n this.open = false;\n }\n }, this.leaveDelayMs);\n };\n\n /**\n * Handles `click` event on this element.\n */\n @HostListener('click')\n // @ts-ignore: The decorator refers to this method but TS thinks this method is not referred to\n private _handleClick = async () => {\n if (this.closeOnActivation) {\n this._handleHoverOut();\n }\n };\n\n /**\n * Handles `keydown` event on this element.\n */\n @HostListener('click')\n // @ts-ignore: The decorator refers to this method but TS thinks this method is not referred to\n private _handleKeydown = async (event) => {\n if (event.key === ' ' || event.key === 'Enter' || event.key === 'Escape') {\n this._handleHoverOut();\n }\n };\n\n /**\n * Handles `slotchange` event.\n */\n protected _handleSlotChange({ target }: Event) {\n const component = (target as HTMLSlotElement)\n .assignedNodes()\n .filter(\n (node) => node.nodeType !== Node.TEXT_NODE || node!.textContent!.trim()\n );\n if (!component[0]) {\n return;\n }\n (component[0] as HTMLElement).addEventListener('focus', this._handleHover);\n (component[0] as HTMLElement).addEventListener(\n 'focusout',\n this._handleHoverOut\n );\n (component[0] as HTMLElement).addEventListener(\n 'mouseover',\n this._handleHover\n );\n (component[0] as HTMLElement).addEventListener(\n 'mouseleave',\n this._handleHoverOut\n );\n this.requestUpdate();\n }\n\n connectedCallback() {\n if (!this.hasAttribute('highContrast')) {\n this.setAttribute('highContrast', '');\n }\n if (!this.shadowRoot) {\n this.attachShadow({ mode: 'open' });\n }\n super.connectedCallback();\n }\n\n updated(changedProperties) {\n const { selectorTooltipContent } = this.constructor as typeof CDSTooltip;\n const toolTipContent = this.querySelector(selectorTooltipContent);\n\n if (changedProperties.has('defaultOpen')) {\n this.open = this.defaultOpen;\n }\n\n if (changedProperties.has('open')) {\n this.open\n ? toolTipContent?.setAttribute('open', '')\n : toolTipContent?.removeAttribute('open');\n }\n\n ['align', 'caret', 'autoalign'].forEach((name) => {\n if (changedProperties.has(name)) {\n const { [name as keyof CDSTooltip]: value } = this;\n (toolTipContent as CDSTooltipContent)[name] = value;\n }\n });\n\n this.shadowRoot\n ?.querySelector(`.${prefix}--popover-container`)\n ?.classList.add(`${prefix}--tooltip`);\n\n super.updated(changedProperties);\n }\n\n /**\n * A selector that will return the CDSTooltipContent.\n */\n static get selectorTooltipContent() {\n return `${prefix}-tooltip-content`;\n }\n\n static get styles() {\n return css`\n ${super.styles}${styles}\n `;\n } // `styles` here is a `CSSResult` generated by custom WebPack loader\n}\n\nexport default CDSTooltip;\n"],"mappings":"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"}
@@ -0,0 +1,30 @@
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
+ /**
10
+ * Utilitize @floating-ui/dom library to compute positioning
11
+ * of tooltip and caret
12
+ *
13
+ * @param object
14
+ * @param {node} object.button trigger element
15
+ * @param {node} object.tooltip tooltip / popover element
16
+ * @param {node} object.arrowElement caret element
17
+ * @param {boolean} object.caret if caret is visible
18
+ * @param {string} object.alignment alignment to display tooltip
19
+ *
20
+ * @returns {string} placement final placement of the tooltip
21
+ */
22
+ export declare function floatingUIPosition({ button, tooltip, arrowElement, caret, alignment, }: {
23
+ button: any;
24
+ tooltip: any;
25
+ arrowElement: any;
26
+ caret?: boolean | undefined;
27
+ alignment?: string | undefined;
28
+ }): Promise<"left" | "right" | "top" | "bottom" | "top-start" | "top-end" | "bottom-start" | "bottom-end" | "left-end" | "left-start" | "right-end" | "right-start">;
29
+
30
+ //# sourceMappingURL=floating-ui.d.ts.map
@@ -0,0 +1,102 @@
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
+
10
+ import { computePosition, flip, offset, arrow } from '@floating-ui/dom';
11
+
12
+ /**
13
+ * Utilitize @floating-ui/dom library to compute positioning
14
+ * of tooltip and caret
15
+ *
16
+ * @param object
17
+ * @param {node} object.button trigger element
18
+ * @param {node} object.tooltip tooltip / popover element
19
+ * @param {node} object.arrowElement caret element
20
+ * @param {boolean} object.caret if caret is visible
21
+ * @param {string} object.alignment alignment to display tooltip
22
+ *
23
+ * @returns {string} placement final placement of the tooltip
24
+ */
25
+ export function floatingUIPosition({
26
+ button,
27
+ tooltip,
28
+ arrowElement,
29
+ caret = false,
30
+ alignment = 'bottom'
31
+ }) {
32
+ let shimmedAlign;
33
+ switch (alignment) {
34
+ case 'top-left':
35
+ shimmedAlign = 'top-start';
36
+ break;
37
+ case 'top-right':
38
+ shimmedAlign = 'top-end';
39
+ break;
40
+ case 'bottom-left':
41
+ shimmedAlign = 'bottom-start';
42
+ break;
43
+ case 'bottom-right':
44
+ shimmedAlign = 'bottom-end';
45
+ break;
46
+ case 'left-bottom':
47
+ shimmedAlign = 'left-end';
48
+ break;
49
+ case 'left-top':
50
+ shimmedAlign = 'left-start';
51
+ break;
52
+ case 'right-bottom':
53
+ shimmedAlign = 'right-end';
54
+ break;
55
+ case 'right-top':
56
+ shimmedAlign = 'right-start';
57
+ break;
58
+ default:
59
+ shimmedAlign = alignment;
60
+ break;
61
+ }
62
+ return computePosition(button, tooltip, {
63
+ strategy: 'absolute',
64
+ middleware: [flip({
65
+ fallbackAxisSideDirection: 'start'
66
+ }), offset(caret ? 10 : 0), arrow({
67
+ element: arrowElement,
68
+ padding: 15
69
+ })],
70
+ placement: shimmedAlign
71
+ }).then(({
72
+ x,
73
+ y,
74
+ placement,
75
+ strategy,
76
+ middlewareData
77
+ }) => {
78
+ tooltip.style.left = `${x}px`;
79
+ tooltip.style.top = `${y}px`;
80
+ tooltip.style.position = `${strategy}`;
81
+ if (arrowElement) {
82
+ // @ts-ignore
83
+ const {
84
+ x: arrowX,
85
+ y: arrowY
86
+ } = middlewareData.arrow;
87
+ const staticSide = {
88
+ top: 'bottom',
89
+ right: 'left',
90
+ bottom: 'top',
91
+ left: 'right'
92
+ }[placement.split('-')[0]];
93
+ arrowElement.style.left = arrowX != null ? `${arrowX}px` : '';
94
+ arrowElement.style.top = arrowY != null ? `${arrowY}px` : '';
95
+ arrowElement.style.right = '';
96
+ arrowElement.style.bottom = '';
97
+ arrowElement.style[staticSide] = `${-arrowElement.offsetWidth / 2}px`;
98
+ }
99
+ return placement;
100
+ });
101
+ }
102
+ //# sourceMappingURL=floating-ui.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"floating-ui.js","names":["computePosition","flip","offset","arrow","floatingUIPosition","button","tooltip","arrowElement","caret","alignment","shimmedAlign","strategy","middleware","fallbackAxisSideDirection","element","padding","placement","then","x","y","middlewareData","style","left","top","position","arrowX","arrowY","staticSide","right","bottom","split","offsetWidth"],"sources":["globals/internal/floating-ui.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 {\n computePosition,\n flip,\n offset,\n arrow,\n Placement,\n} from '@floating-ui/dom';\n\n/**\n * Utilitize @floating-ui/dom library to compute positioning\n * of tooltip and caret\n *\n * @param object\n * @param {node} object.button trigger element\n * @param {node} object.tooltip tooltip / popover element\n * @param {node} object.arrowElement caret element\n * @param {boolean} object.caret if caret is visible\n * @param {string} object.alignment alignment to display tooltip\n *\n * @returns {string} placement final placement of the tooltip\n */\nexport function floatingUIPosition({\n button,\n tooltip,\n arrowElement,\n caret = false,\n alignment = 'bottom',\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 return computePosition(button, tooltip, {\n strategy: 'absolute',\n middleware: [\n flip({ fallbackAxisSideDirection: 'start' }),\n offset(caret ? 10 : 0),\n arrow({ element: arrowElement, padding: 15 }),\n ],\n placement: shimmedAlign as Placement,\n }).then(({ x, y, placement, strategy, middlewareData }) => {\n tooltip.style.left = `${x}px`;\n tooltip.style.top = `${y}px`;\n tooltip.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 return placement;\n });\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SACEA,eAAe,EACfC,IAAI,EACJC,MAAM,EACNC,KAAK,QAEA,kBAAkB;;AAEzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,kBAAkBA,CAAC;EACjCC,MAAM;EACNC,OAAO;EACPC,YAAY;EACZC,KAAK,GAAG,KAAK;EACbC,SAAS,GAAG;AACd,CAAC,EAAE;EACD,IAAIC,YAAY;EAChB,QAAQD,SAAS;IACf,KAAK,UAAU;MACbC,YAAY,GAAG,WAAW;MAC1B;IACF,KAAK,WAAW;MACdA,YAAY,GAAG,SAAS;MACxB;IACF,KAAK,aAAa;MAChBA,YAAY,GAAG,cAAc;MAC7B;IACF,KAAK,cAAc;MACjBA,YAAY,GAAG,YAAY;MAC3B;IACF,KAAK,aAAa;MAChBA,YAAY,GAAG,UAAU;MACzB;IACF,KAAK,UAAU;MACbA,YAAY,GAAG,YAAY;MAC3B;IACF,KAAK,cAAc;MACjBA,YAAY,GAAG,WAAW;MAC1B;IACF,KAAK,WAAW;MACdA,YAAY,GAAG,aAAa;MAC5B;IACF;MACEA,YAAY,GAAGD,SAAS;MACxB;EACJ;EAEA,OAAOT,eAAe,CAACK,MAAM,EAAEC,OAAO,EAAE;IACtCK,QAAQ,EAAE,UAAU;IACpBC,UAAU,EAAE,CACVX,IAAI,CAAC;MAAEY,yBAAyB,EAAE;IAAQ,CAAC,CAAC,EAC5CX,MAAM,CAACM,KAAK,GAAG,EAAE,GAAG,CAAC,CAAC,EACtBL,KAAK,CAAC;MAAEW,OAAO,EAAEP,YAAY;MAAEQ,OAAO,EAAE;IAAG,CAAC,CAAC,CAC9C;IACDC,SAAS,EAAEN;EACb,CAAC,CAAC,CAACO,IAAI,CAAC,CAAC;IAAEC,CAAC;IAAEC,CAAC;IAAEH,SAAS;IAAEL,QAAQ;IAAES;EAAe,CAAC,KAAK;IACzDd,OAAO,CAACe,KAAK,CAACC,IAAI,GAAI,GAAEJ,CAAE,IAAG;IAC7BZ,OAAO,CAACe,KAAK,CAACE,GAAG,GAAI,GAAEJ,CAAE,IAAG;IAC5Bb,OAAO,CAACe,KAAK,CAACG,QAAQ,GAAI,GAAEb,QAAS,EAAC;IAEtC,IAAIJ,YAAY,EAAE;MAChB;MACA,MAAM;QAAEW,CAAC,EAAEO,MAAM;QAAEN,CAAC,EAAEO;MAAO,CAAC,GAAGN,cAAc,CAACjB,KAAK;MAErD,MAAMwB,UAAe,GAAG;QACtBJ,GAAG,EAAE,QAAQ;QACbK,KAAK,EAAE,MAAM;QACbC,MAAM,EAAE,KAAK;QACbP,IAAI,EAAE;MACR,CAAC,CAACN,SAAS,CAACc,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;MAE1BvB,YAAY,CAACc,KAAK,CAACC,IAAI,GAAGG,MAAM,IAAI,IAAI,GAAI,GAAEA,MAAO,IAAG,GAAG,EAAE;MAC7DlB,YAAY,CAACc,KAAK,CAACE,GAAG,GAAGG,MAAM,IAAI,IAAI,GAAI,GAAEA,MAAO,IAAG,GAAG,EAAE;MAC5DnB,YAAY,CAACc,KAAK,CAACO,KAAK,GAAG,EAAE;MAC7BrB,YAAY,CAACc,KAAK,CAACQ,MAAM,GAAG,EAAE;MAC9BtB,YAAY,CAACc,KAAK,CAACM,UAAU,CAAC,GAAI,GAAE,CAACpB,YAAY,CAACwB,WAAW,GAAG,CAAE,IAAG;IACvE;IACA,OAAOf,SAAS;EAClB,CAAC,CAAC;AACJ"}
@@ -7,7 +7,7 @@ exports.POPOVER_ALIGNMENT = void 0;
7
7
  /**
8
8
  * @license
9
9
  *
10
- * Copyright IBM Corp. 2020, 2023
10
+ * Copyright IBM Corp. 2020, 2024
11
11
  *
12
12
  * This source code is licensed under the Apache-2.0 license found in the
13
13
  * LICENSE file in the root directory of this source tree.
@@ -20,14 +20,22 @@ let POPOVER_ALIGNMENT = exports.POPOVER_ALIGNMENT = void 0;
20
20
  POPOVER_ALIGNMENT["TOP"] = "top";
21
21
  POPOVER_ALIGNMENT["TOP_LEFT"] = "top-left";
22
22
  POPOVER_ALIGNMENT["TOP_RIGHT"] = "top-right";
23
+ POPOVER_ALIGNMENT["TOP_START"] = "top-start";
24
+ POPOVER_ALIGNMENT["TOP_END"] = "top-end";
23
25
  POPOVER_ALIGNMENT["BOTTOM"] = "bottom";
24
26
  POPOVER_ALIGNMENT["BOTTOM_LEFT"] = "bottom-left";
25
27
  POPOVER_ALIGNMENT["BOTTOM_RIGHT"] = "bottom-right";
28
+ POPOVER_ALIGNMENT["BOTTOM_START"] = "bottom-start";
29
+ POPOVER_ALIGNMENT["BOTTOM_END"] = "bottom-end";
26
30
  POPOVER_ALIGNMENT["LEFT"] = "left";
27
31
  POPOVER_ALIGNMENT["LEFT_BOTTOM"] = "left-bottom";
28
32
  POPOVER_ALIGNMENT["LEFT_TOP"] = "left-top";
33
+ POPOVER_ALIGNMENT["LEFT_START"] = "left-start";
34
+ POPOVER_ALIGNMENT["LEFT_END"] = "left-end";
29
35
  POPOVER_ALIGNMENT["RIGHT"] = "right";
30
36
  POPOVER_ALIGNMENT["RIGHT_BOTTOM"] = "right-bottom";
31
37
  POPOVER_ALIGNMENT["RIGHT_TOP"] = "right-top";
38
+ POPOVER_ALIGNMENT["RIGHT_START"] = "right-start";
39
+ POPOVER_ALIGNMENT["RIGHT_END"] = "right-end";
32
40
  })(POPOVER_ALIGNMENT || (exports.POPOVER_ALIGNMENT = POPOVER_ALIGNMENT = {}));
33
41
  //# sourceMappingURL=defs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"defs.js","names":["POPOVER_ALIGNMENT","exports"],"sources":["components/popover/defs.ts"],"sourcesContent":["/**\n * @license\n *\n * Copyright IBM Corp. 2020, 2023\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n/**\n * The alignment choices of popover.\n */\nexport enum POPOVER_ALIGNMENT {\n /**\n * Align the top position for the popover content.\n */\n TOP = 'top',\n\n /**\n * Align the top-left position for the popover content.\n */\n TOP_LEFT = 'top-left',\n\n /**\n * Align the top right position for the popover content.\n */\n TOP_RIGHT = 'top-right',\n\n /**\n * Align the bottom position for the popover content.\n */\n BOTTOM = 'bottom',\n\n /**\n * Align the bottom left position for the popover content.\n */\n BOTTOM_LEFT = 'bottom-left',\n\n /**\n * Align the bottom right position for the popover content.\n */\n BOTTOM_RIGHT = 'bottom-right',\n\n /**\n * Align the left position for the popover content.\n */\n LEFT = 'left',\n\n /**\n * Align the left bottom position for the popover content.\n */\n LEFT_BOTTOM = 'left-bottom',\n\n /**\n * Align the left top position for the popover content.\n */\n LEFT_TOP = 'left-top',\n\n /**\n * Align the right position for the popover content.\n */\n RIGHT = 'right',\n\n /**\n * Align the right bottom position for the popover content.\n */\n RIGHT_BOTTOM = 'right-bottom',\n\n /**\n * Align the right top position for the popover content.\n */\n RIGHT_TOP = 'right-top',\n}\n"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAFA,IAGYA,iBAAiB,GAAAC,OAAA,CAAAD,iBAAA;AAAA,WAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;AAAA,GAAjBA,iBAAiB,KAAAC,OAAA,CAAAD,iBAAA,GAAjBA,iBAAiB"}
1
+ {"version":3,"file":"defs.js","names":["POPOVER_ALIGNMENT","exports"],"sources":["components/popover/defs.ts"],"sourcesContent":["/**\n * @license\n *\n * Copyright IBM Corp. 2020, 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/**\n * The alignment choices of popover.\n */\nexport enum POPOVER_ALIGNMENT {\n /**\n * Align the top position for the popover content.\n */\n TOP = 'top',\n\n /**\n * Align the top-left position for the popover content.\n *\n * @deprecated\n */\n TOP_LEFT = 'top-left',\n\n /**\n * Align the top right position for the popover content.\n *\n * @deprecated\n */\n TOP_RIGHT = 'top-right',\n\n /**\n * Align the top-start position for the popover content.\n */\n TOP_START = 'top-start',\n\n /**\n * Align the top end position for the popover content.\n */\n TOP_END = 'top-end',\n\n /**\n * Align the bottom position for the popover content.\n */\n BOTTOM = 'bottom',\n\n /**\n * Align the bottom left position for the popover content.\n *\n * @deprecated\n */\n BOTTOM_LEFT = 'bottom-left',\n\n /**\n * Align the bottom right position for the popover content.\n *\n * @deprecated\n */\n BOTTOM_RIGHT = 'bottom-right',\n\n /**\n * Align the bottom start position for the popover content.\n */\n BOTTOM_START = 'bottom-start',\n\n /**\n * Align the bottom end position for the popover content.\n */\n BOTTOM_END = 'bottom-end',\n\n /**\n * Align the left position for the popover content.\n */\n LEFT = 'left',\n\n /**\n * Align the left bottom position for the popover content.\n *\n * @deprecated\n */\n LEFT_BOTTOM = 'left-bottom',\n\n /**\n * Align the left top position for the popover content.\n *\n * @deprecated\n */\n LEFT_TOP = 'left-top',\n\n /**\n * Align the left start position for the popover content.\n */\n LEFT_START = 'left-start',\n\n /**\n * Align the left end position for the popover content.\n */\n LEFT_END = 'left-end',\n\n /**\n * Align the right position for the popover content.\n */\n RIGHT = 'right',\n\n /**\n * Align the right bottom position for the popover content.\n *\n * @deprecated\n */\n RIGHT_BOTTOM = 'right-bottom',\n\n /**\n * Align the right top position for the popover content.\n *\n * @deprecated\n */\n RIGHT_TOP = 'right-top',\n\n /**\n * Align the right start position for the popover content.\n */\n RIGHT_START = 'right-start',\n\n /**\n * Align the right end position for the popover content.\n */\n RIGHT_END = 'right-end',\n}\n"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAFA,IAGYA,iBAAiB,GAAAC,OAAA,CAAAD,iBAAA;AAAA,WAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;AAAA,GAAjBA,iBAAiB,KAAAC,OAAA,CAAAD,iBAAA,GAAjBA,iBAAiB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@carbon/web-components",
3
- "version": "2.4.0-rc.0",
3
+ "version": "2.4.0-rc.1",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -70,6 +70,7 @@
70
70
  "@babel/runtime": "^7.16.3",
71
71
  "@carbon/ibm-products-styles": "^2.24.0",
72
72
  "@carbon/styles": "1.51.0",
73
+ "@floating-ui/dom": "^1.6.3",
73
74
  "flatpickr": "4.6.1",
74
75
  "lit": "^2.7.6",
75
76
  "lodash-es": "^4.17.21"
@@ -207,5 +208,5 @@
207
208
  "zone.js": "~0.14.0"
208
209
  },
209
210
  "typings": "es/index.d.ts",
210
- "gitHead": "d1fdbf6806f2c9e78ea5ddfca97f130be4a0490b"
211
+ "gitHead": "a9c5c74c4f876b05a43dec2efffd688d64bf236d"
211
212
  }
@@ -72,7 +72,6 @@
72
72
  }
73
73
 
74
74
  :host(#{$prefix}-table-header-cell[sort-direction]) {
75
- position: relative;
76
75
  block-size: $spacing-09;
77
76
 
78
77
  .#{$prefix}--table-sort__flex {
@@ -92,10 +92,10 @@ $popover-caret-height: custom-property.get-var(
92
92
  );
93
93
  }
94
94
 
95
- :host(#{$prefix}-tooltip-content[align^='bottom']),
96
- :host(#{$prefix}-popover-content[align^='bottom']),
97
- :host(#{$prefix}-toggletip[alignment^='bottom']),
98
- :host(#{$prefix}-slug[alignment^='bottom']) {
95
+ :host(#{$prefix}-tooltip-content[align^='bottom']:not([autoalign])),
96
+ :host(#{$prefix}-popover-content[align^='bottom']:not([autoalign])),
97
+ :host(#{$prefix}-toggletip[alignment^='bottom']:not([autoalign])),
98
+ :host(#{$prefix}-slug[alignment^='bottom']:not([autoalign])) {
99
99
  .#{$prefix}--popover-caret {
100
100
  block-size: $popover-caret-height;
101
101
  clip-path: polygon(0% 100%, 50% 0%, 100% 100%);
@@ -106,10 +106,10 @@ $popover-caret-height: custom-property.get-var(
106
106
  }
107
107
  }
108
108
 
109
- :host(#{$prefix}-tooltip-content[align='bottom']),
110
- :host(#{$prefix}-popover-content[align='bottom']),
111
- :host(#{$prefix}-toggletip[alignment='bottom']),
112
- :host(#{$prefix}-slug[alignment='bottom']) {
109
+ :host(#{$prefix}-tooltip-content[align='bottom']:not([autoalign])),
110
+ :host(#{$prefix}-popover-content[align='bottom']:not([autoalign])),
111
+ :host(#{$prefix}-toggletip[alignment='bottom']:not([autoalign])),
112
+ :host(#{$prefix}-slug[alignment='bottom']:not([autoalign])) {
113
113
  .#{$prefix}--popover-content {
114
114
  inset-block-end: 0;
115
115
  inset-inline-start: 50%;
@@ -117,10 +117,10 @@ $popover-caret-height: custom-property.get-var(
117
117
  }
118
118
  }
119
119
 
120
- :host(#{$prefix}-tooltip-content[align='bottom-left']),
121
- :host(#{$prefix}-popover-content[align='bottom-left']),
122
- :host(#{$prefix}-toggletip[alignment='bottom-left']),
123
- :host(#{$prefix}-slug[alignment='bottom-left']) {
120
+ :host(#{$prefix}-tooltip-content[align='bottom-left']:not([autoalign])),
121
+ :host(#{$prefix}-popover-content[align='bottom-left']:not([autoalign])),
122
+ :host(#{$prefix}-toggletip[alignment='bottom-left']:not([autoalign])),
123
+ :host(#{$prefix}-slug[alignment='bottom-left']:not([autoalign])) {
124
124
  .#{$prefix}--popover-content {
125
125
  inset-block-end: 0;
126
126
  inset-inline-start: 0;
@@ -131,10 +131,10 @@ $popover-caret-height: custom-property.get-var(
131
131
  }
132
132
  }
133
133
 
134
- :host(#{$prefix}-tooltip-content[align='bottom-right']),
135
- :host(#{$prefix}-popover-content[align='bottom-right']),
136
- :host(#{$prefix}-toggletip[alignment='bottom-right']),
137
- :host(#{$prefix}-slug[alignment='bottom-right']) {
134
+ :host(#{$prefix}-tooltip-content[align='bottom-right']:not([autoalign])),
135
+ :host(#{$prefix}-popover-content[align='bottom-right']:not([autoalign])),
136
+ :host(#{$prefix}-toggletip[alignment='bottom-right']:not([autoalign])),
137
+ :host(#{$prefix}-slug[alignment='bottom-right']:not([autoalign])) {
138
138
  .#{$prefix}--popover-content {
139
139
  inset-block-end: 0;
140
140
  inset-inline-end: 0;
@@ -142,10 +142,10 @@ $popover-caret-height: custom-property.get-var(
142
142
  }
143
143
  }
144
144
 
145
- :host(#{$prefix}-tooltip-content[align^='left']),
146
- :host(#{$prefix}-popover-content[align^='left']),
147
- :host(#{$prefix}-toggletip[alignment^='left']),
148
- :host(#{$prefix}-slug[alignment^='left']) {
145
+ :host(#{$prefix}-tooltip-content[align^='left']:not([autoalign])),
146
+ :host(#{$prefix}-popover-content[align^='left']:not([autoalign])),
147
+ :host(#{$prefix}-toggletip[alignment^='left']:not([autoalign])),
148
+ :host(#{$prefix}-slug[alignment^='left']:not([autoalign])) {
149
149
  .#{$prefix}--popover-caret {
150
150
  block-size: $popover-caret-width;
151
151
  clip-path: polygon(0% 0%, 100% 50%, 0% 100%);
@@ -156,10 +156,10 @@ $popover-caret-height: custom-property.get-var(
156
156
  }
157
157
  }
158
158
 
159
- :host(#{$prefix}-tooltip-content[align='left']),
160
- :host(#{$prefix}-popover-content[align='left']),
161
- :host(#{$prefix}-toggletip[alignment='left']),
162
- :host(#{$prefix}-slug[alignment='left']) {
159
+ :host(#{$prefix}-tooltip-content[align='left']:not([autoalign])),
160
+ :host(#{$prefix}-popover-content[align='left']:not([autoalign])),
161
+ :host(#{$prefix}-toggletip[alignment='left']:not([autoalign])),
162
+ :host(#{$prefix}-slug[alignment='left']:not([autoalign])) {
163
163
  .#{$prefix}--popover-content {
164
164
  inset-block-start: 50%;
165
165
  inset-inline-end: 100%;
@@ -169,10 +169,10 @@ $popover-caret-height: custom-property.get-var(
169
169
  }
170
170
  }
171
171
 
172
- :host(#{$prefix}-tooltip-content[align='left-bottom']),
173
- :host(#{$prefix}-popover-content[align='left-bottom']),
174
- :host(#{$prefix}-toggletip[alignment='left-bottom']),
175
- :host(#{$prefix}-slug[alignment='left-bottom']) {
172
+ :host(#{$prefix}-tooltip-content[align='left-bottom']:not([autoalign])),
173
+ :host(#{$prefix}-popover-content[align='left-bottom']:not([autoalign])),
174
+ :host(#{$prefix}-toggletip[alignment='left-bottom']:not([autoalign])),
175
+ :host(#{$prefix}-slug[alignment='left-bottom']:not([autoalign])) {
176
176
  .#{$prefix}--popover-content {
177
177
  inset-block-end: 50%;
178
178
  inset-inline-end: 100%;
@@ -185,10 +185,10 @@ $popover-caret-height: custom-property.get-var(
185
185
  }
186
186
  }
187
187
 
188
- :host(#{$prefix}-tooltip-content[align='left-top']),
189
- :host(#{$prefix}-popover-content[align='left-top']),
190
- :host(#{$prefix}-toggletip[alignment='left-top']),
191
- :host(#{$prefix}-slug[alignment='left-top']) {
188
+ :host(#{$prefix}-tooltip-content[align='left-top']:not([autoalign])),
189
+ :host(#{$prefix}-popover-content[align='left-top']:not([autoalign])),
190
+ :host(#{$prefix}-toggletip[alignment='left-top']:not([autoalign])),
191
+ :host(#{$prefix}-slug[alignment='left-top']:not([autoalign])) {
192
192
  .#{$prefix}--popover-content {
193
193
  inset-block-start: 50%;
194
194
  inset-inline-end: 100%;
@@ -201,10 +201,10 @@ $popover-caret-height: custom-property.get-var(
201
201
  }
202
202
  }
203
203
 
204
- :host(#{$prefix}-tooltip-content[align^='right']),
205
- :host(#{$prefix}-popover-content[align^='right']),
206
- :host(#{$prefix}-toggletip[alignment^='right']),
207
- :host(#{$prefix}-slug[alignment^='right']) {
204
+ :host(#{$prefix}-tooltip-content[align^='right']:not([autoalign])),
205
+ :host(#{$prefix}-popover-content[align^='right']:not([autoalign])),
206
+ :host(#{$prefix}-toggletip[alignment^='right']:not([autoalign])),
207
+ :host(#{$prefix}-slug[alignment^='right']:not([autoalign])) {
208
208
  .#{$prefix}--popover-caret {
209
209
  block-size: $popover-caret-width;
210
210
  clip-path: polygon(0% 50%, 100% 0%, 100% 100%);
@@ -215,10 +215,10 @@ $popover-caret-height: custom-property.get-var(
215
215
  }
216
216
  }
217
217
 
218
- :host(#{$prefix}-tooltip-content[align='right']),
219
- :host(#{$prefix}-popover-content[align='right']),
220
- :host(#{$prefix}-toggletip[alignment='right']),
221
- :host(#{$prefix}-slug[alignment='right']) {
218
+ :host(#{$prefix}-tooltip-content[align='right']:not([autoalign])),
219
+ :host(#{$prefix}-popover-content[align='right']:not([autoalign])),
220
+ :host(#{$prefix}-toggletip[alignment='right']:not([autoalign])),
221
+ :host(#{$prefix}-slug[alignment='right']:not([autoalign])) {
222
222
  .#{$prefix}--popover-content {
223
223
  inset-block-start: 50%;
224
224
  inset-inline-start: 100%;
@@ -228,10 +228,10 @@ $popover-caret-height: custom-property.get-var(
228
228
  }
229
229
  }
230
230
 
231
- :host(#{$prefix}-tooltip-content[align='right-bottom']),
232
- :host(#{$prefix}-popover-content[align='right-bottom']),
233
- :host(#{$prefix}-toggletip[alignment='right-bottom']),
234
- :host(#{$prefix}-slug[alignment='right-bottom']) {
231
+ :host(#{$prefix}-tooltip-content[align='right-bottom']:not([autoalign])),
232
+ :host(#{$prefix}-popover-content[align='right-bottom']:not([autoalign])),
233
+ :host(#{$prefix}-toggletip[alignment='right-bottom']:not([autoalign])),
234
+ :host(#{$prefix}-slug[alignment='right-bottom']:not([autoalign])) {
235
235
  .#{$prefix}--popover-content {
236
236
  inset-block-end: 50%;
237
237
  inset-inline-start: 100%;
@@ -239,10 +239,10 @@ $popover-caret-height: custom-property.get-var(
239
239
  }
240
240
  }
241
241
 
242
- :host(#{$prefix}-tooltip-content[align='right-top']),
243
- :host(#{$prefix}-popover-content[align='right-top']),
244
- :host(#{$prefix}-toggletip[alignment='right-top']),
245
- :host(#{$prefix}-slug[alignment='right-top']) {
242
+ :host(#{$prefix}-tooltip-content[align='right-top']:not([autoalign])),
243
+ :host(#{$prefix}-popover-content[align='right-top']:not([autoalign])),
244
+ :host(#{$prefix}-toggletip[alignment='right-top']:not([autoalign])),
245
+ :host(#{$prefix}-slug[alignment='right-top']:not([autoalign])) {
246
246
  .#{$prefix}--popover-content {
247
247
  inset-block-start: 50%;
248
248
  inset-inline-start: 100%;
@@ -253,10 +253,10 @@ $popover-caret-height: custom-property.get-var(
253
253
  }
254
254
  }
255
255
 
256
- :host(#{$prefix}-tooltip-content[align^='top']),
257
- :host(#{$prefix}-popover-content[align^='top']),
258
- :host(#{$prefix}-toggletip[alignment^='top']),
259
- :host(#{$prefix}-slug[alignment^='top']) {
256
+ :host(#{$prefix}-tooltip-content[align^='top']:not([autoalign])),
257
+ :host(#{$prefix}-popover-content[align^='top']:not([autoalign])),
258
+ :host(#{$prefix}-toggletip[alignment^='top']:not([autoalign])),
259
+ :host(#{$prefix}-slug[alignment^='top']:not([autoalign])) {
260
260
  .#{$prefix}--popover-caret {
261
261
  block-size: $popover-caret-height;
262
262
  clip-path: polygon(0% 0%, 50% 100%, 100% 0%);
@@ -267,10 +267,10 @@ $popover-caret-height: custom-property.get-var(
267
267
  }
268
268
  }
269
269
 
270
- :host(#{$prefix}-tooltip-content[align='top']),
271
- :host(#{$prefix}-popover-content[align='top']),
272
- :host(#{$prefix}-toggletip[alignment='top']),
273
- :host(#{$prefix}-slug[alignment='top']) {
270
+ :host(#{$prefix}-tooltip-content[align='top']:not([autoalign])),
271
+ :host(#{$prefix}-popover-content[align='top']:not([autoalign])),
272
+ :host(#{$prefix}-toggletip[alignment='top']:not([autoalign])),
273
+ :host(#{$prefix}-slug[alignment='top']:not([autoalign])) {
274
274
  .#{$prefix}--popover-content {
275
275
  inset-block-start: 0;
276
276
  inset-inline-start: 50%;
@@ -278,10 +278,10 @@ $popover-caret-height: custom-property.get-var(
278
278
  }
279
279
  }
280
280
 
281
- :host(#{$prefix}-tooltip-content[align='top-left']),
282
- :host(#{$prefix}-popover-content[align='top-left']),
283
- :host(#{$prefix}-toggletip[alignment='top-left']),
284
- :host(#{$prefix}-slug[alignment='top-left']) {
281
+ :host(#{$prefix}-tooltip-content[align='top-left']:not([autoalign])),
282
+ :host(#{$prefix}-popover-content[align='top-left']:not([autoalign])),
283
+ :host(#{$prefix}-toggletip[alignment='top-left']:not([autoalign])),
284
+ :host(#{$prefix}-slug[alignment='top-left']:not([autoalign])) {
285
285
  .#{$prefix}--popover-content {
286
286
  inset-block-start: 0;
287
287
  inset-inline-start: 0;
@@ -292,13 +292,32 @@ $popover-caret-height: custom-property.get-var(
292
292
  }
293
293
  }
294
294
 
295
- :host(#{$prefix}-tooltip-content[align='top-right']),
296
- :host(#{$prefix}-popover-content[align='top-right']),
297
- :host(#{$prefix}-toggletip[alignment='top-right']),
298
- :host(#{$prefix}-slug[alignment='top-right']) {
295
+ :host(#{$prefix}-tooltip-content[align='top-right']:not([autoalign])),
296
+ :host(#{$prefix}-popover-content[align='top-right']:not([autoalign])),
297
+ :host(#{$prefix}-toggletip[alignment='top-right']:not([autoalign])),
298
+ :host(#{$prefix}-slug[alignment='top-right']:not([autoalign])) {
299
299
  .#{$prefix}--popover-content {
300
300
  inset-block-start: 0;
301
301
  inset-inline-end: 0;
302
302
  transform: translate($popover-offset, calc(-100% - $popover-offset));
303
303
  }
304
304
  }
305
+
306
+ :host(#{$prefix}-toggletip[autoalign]),
307
+ :host(#{$prefix}-tooltip-content[autoalign]),
308
+ :host(#{$prefix}-popover-content[autoalign]) {
309
+ .#{$prefix}--popover-caret {
310
+ block-size: 8px;
311
+ inline-size: 8px;
312
+ transform: rotate(45deg);
313
+ }
314
+ }
315
+
316
+ :host(#{$prefix}-slug[autoalign]),
317
+ :host(#{$prefix}-tooltip[autoalign]),
318
+ :host(#{$prefix}-toggletip[autoalign]),
319
+ :host(#{$prefix}-popover[autoalign]) {
320
+ .#{$prefix}--popover-container {
321
+ position: static;
322
+ }
323
+ }