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

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 (150) hide show
  1. package/custom-elements.json +108 -0
  2. package/dist/16-44367639.js +4 -1
  3. package/dist/16-880e779e.js +4 -1
  4. package/dist/16-8ab58ede.js +4 -1
  5. package/dist/16-945f9ad8.js +4 -1
  6. package/dist/16-9bdb8b2e.js +4 -1
  7. package/dist/16-afc2ad08.js +4 -1
  8. package/dist/16-f2933a25.js +60 -0
  9. package/dist/16-f2df91a2.js +4 -1
  10. package/dist/20-c1834a3b.js +4 -1
  11. package/dist/accordion.min.js +5 -2
  12. package/dist/ai-skeleton.min.js +5 -2
  13. package/dist/breadcrumb.min.js +5 -2
  14. package/dist/{button-dade8f28.js → button-ad33c11e.js} +5 -2
  15. package/dist/{button-set-5f5affa0.js → button-set-0868cd7d.js} +5 -2
  16. package/dist/{button-skeleton-7325ea56.js → button-skeleton-5d59f37f.js} +6 -3
  17. package/dist/button.min.js +5 -2
  18. package/dist/carbon-element-4ca9803f.js +4 -1
  19. package/dist/chat-button.min.js +5 -2
  20. package/dist/{checkbox-a610152a.js → checkbox-3f270cb6.js} +5 -2
  21. package/dist/checkbox.min.js +10 -7
  22. package/dist/class-map-b1739c02.js +4 -1
  23. package/dist/code-snippet.min.js +5 -2
  24. package/dist/collection-helpers-4e32fe16.js +4 -1
  25. package/dist/combo-box.min.js +5 -2
  26. package/dist/{content-switcher-item-9714594a.js → content-switcher-item-ef4c3ffc.js} +5 -2
  27. package/dist/content-switcher.min.js +5 -2
  28. package/dist/{copy-button-1310f02a.js → copy-button-22693367.js} +5 -2
  29. package/dist/copy-button.min.js +5 -2
  30. package/dist/custom-element-975be15f.js +4 -1
  31. package/dist/data-table.min.js +6 -3
  32. package/dist/date-picker.min.js +5 -2
  33. package/dist/{objectSpread2-0b7e8561.js → defineProperty-d784d12c.js} +5 -2
  34. package/dist/directive-e2d48b9c.js +4 -1
  35. package/dist/{dropdown-item-cc7cc1dc.js → dropdown-item-5213e869.js} +5 -2
  36. package/dist/dropdown.min.js +5 -2
  37. package/dist/file-uploader.min.js +5 -2
  38. package/dist/{floating-menu-6ec5c7fa.js → floating-menu-413f6e95.js} +5 -2
  39. package/dist/floating-menu.min.js +5 -2
  40. package/dist/focus-92d82b5f.js +4 -1
  41. package/dist/form-group.min.js +4 -1
  42. package/dist/form.min.js +4 -1
  43. package/dist/get-d229c408.js +4 -1
  44. package/dist/{host-listener-a948931e.js → host-listener-0024708a.js} +6 -3
  45. package/dist/{icon-button-7b2540b4.js → icon-button-7a997866.js} +9 -5
  46. package/dist/icon-button.min.js +5 -2
  47. package/dist/if-defined-b99f5484.js +4 -1
  48. package/dist/if-non-empty-d69cc3f0.js +4 -1
  49. package/dist/inline-loading.min.js +4 -1
  50. package/dist/layer-62995057.js +4 -1
  51. package/dist/layer.min.js +4 -1
  52. package/dist/{link-d5d53be2.js → link-6fcc6a0e.js} +5 -2
  53. package/dist/link.min.js +5 -2
  54. package/dist/list.min.js +4 -1
  55. package/dist/loading-0dcb7680.js +4 -1
  56. package/dist/loading-icon-2ac6de26.js +4 -1
  57. package/dist/loading.min.js +4 -1
  58. package/dist/modal.min.js +6 -3
  59. package/dist/multi-select.min.js +5 -2
  60. package/dist/notification.min.js +7 -4
  61. package/dist/number-input.min.js +5 -2
  62. package/dist/{16-2aa048a9.js → objectSpread2-58bc1706.js} +5 -2
  63. package/dist/on-6c264d49.js +4 -1
  64. package/dist/overflow-menu.min.js +5 -2
  65. package/dist/pagination.min.js +5 -2
  66. package/dist/popover-content-2df97cf7.js +75 -0
  67. package/dist/popover-controller-e5f73836.js +60 -0
  68. package/dist/popover.min.js +5 -2
  69. package/dist/progress-bar.min.js +4 -1
  70. package/dist/progress-indicator.min.js +5 -2
  71. package/dist/query-6ca5e414.js +4 -1
  72. package/dist/query-assigned-elements-8e88277c.js +4 -1
  73. package/dist/radio-button.min.js +5 -2
  74. package/dist/{radio-group-manager-3cfdd620.js → radio-group-manager-9810bd7d.js} +5 -2
  75. package/dist/{search-4c0e8630.js → search-b8b073b6.js} +5 -2
  76. package/dist/search.min.js +5 -2
  77. package/dist/select-item-db3c6fa0.js +4 -1
  78. package/dist/select.min.js +5 -2
  79. package/dist/settings-387c0fa4.js +4 -1
  80. package/dist/shared-enums-c6fe8c39.js +4 -1
  81. package/dist/side-panel.min.js +13 -10
  82. package/dist/skeleton-icon-451d3c47.js +4 -1
  83. package/dist/skeleton-icon.min.js +4 -1
  84. package/dist/{skeleton-placeholder-e6490dbd.js → skeleton-placeholder-5aa06271.js} +5 -2
  85. package/dist/skeleton-placeholder.min.js +5 -2
  86. package/dist/{skeleton-text-eeac3c87.js → skeleton-text-283abe50.js} +5 -2
  87. package/dist/skeleton-text.min.js +5 -2
  88. package/dist/skip-to-content.min.js +5 -2
  89. package/dist/slider.min.js +5 -2
  90. package/dist/slug.min.js +11 -7
  91. package/dist/spread-6af5f657.js +4 -1
  92. package/dist/stack.min.js +4 -1
  93. package/dist/state-63312e74.js +4 -1
  94. package/dist/structured-list.min.js +5 -2
  95. package/dist/tabs.min.js +7 -4
  96. package/dist/tag.min.js +5 -2
  97. package/dist/{text-input-8d011ae2.js → text-input-d40fbf4d.js} +5 -2
  98. package/dist/text-input.min.js +6 -3
  99. package/dist/textarea.min.js +9 -6
  100. package/dist/tile.min.js +5 -2
  101. package/dist/toggle-tip.min.js +5 -2
  102. package/dist/toggle.min.js +5 -2
  103. package/dist/toggletip-2d777826.js +114 -0
  104. package/dist/{tooltip-content-fbce4fed.js → tooltip-content-2ef20c6a.js} +5 -2
  105. package/dist/tooltip.min.js +5 -2
  106. package/dist/ui-shell.min.js +5 -2
  107. package/dist/validity-d86ffa4f.js +4 -1
  108. package/es/components/data-table/data-table.css.js +1 -1
  109. package/es/components/icon-button/icon-button.css.js +1 -1
  110. package/es/components/icon-button/icon-button.d.ts +5 -1
  111. package/es/components/icon-button/icon-button.js +18 -2
  112. package/es/components/icon-button/icon-button.js.map +1 -1
  113. package/es/components/popover/defs.d.ts +50 -2
  114. package/es/components/popover/defs.js +9 -2
  115. package/es/components/popover/defs.js.map +1 -1
  116. package/es/components/popover/popover-content.d.ts +5 -1
  117. package/es/components/popover/popover-content.js +32 -9
  118. package/es/components/popover/popover-content.js.map +1 -1
  119. package/es/components/popover/popover.css.js +1 -1
  120. package/es/components/popover/popover.d.ts +27 -1
  121. package/es/components/popover/popover.js +93 -4
  122. package/es/components/popover/popover.js.map +1 -1
  123. package/es/components/slug/slug.css.js +1 -1
  124. package/es/components/slug/slug.d.ts +1 -1
  125. package/es/components/slug/slug.js +5 -3
  126. package/es/components/slug/slug.js.map +1 -1
  127. package/es/components/tabs/tabs.css.js +1 -1
  128. package/es/components/toggle-tip/toggletip.css.js +1 -1
  129. package/es/components/toggle-tip/toggletip.d.ts +24 -0
  130. package/es/components/toggle-tip/toggletip.js +115 -17
  131. package/es/components/toggle-tip/toggletip.js.map +1 -1
  132. package/es/components/tooltip/tooltip.css.js +1 -1
  133. package/es/components/tooltip/tooltip.d.ts +5 -1
  134. package/es/components/tooltip/tooltip.js +17 -2
  135. package/es/components/tooltip/tooltip.js.map +1 -1
  136. package/es/globals/controllers/popover-controller.d.ts +47 -0
  137. package/es/globals/controllers/popover-controller.js +142 -0
  138. package/es/globals/controllers/popover-controller.js.map +1 -0
  139. package/lib/components/popover/defs.js +9 -1
  140. package/lib/components/popover/defs.js.map +1 -1
  141. package/lib/globals/controllers/popover-controller.js +150 -0
  142. package/lib/globals/controllers/popover-controller.js.map +1 -0
  143. package/package.json +3 -2
  144. package/scss/components/data-table/_table-core.scss +0 -1
  145. package/scss/components/popover/popover.scss +83 -64
  146. package/scss/components/slug/slug.scss +171 -28
  147. package/scss/components/tabs/tabs.scss +1 -1
  148. package/scss/components/toggle-tip/toggletip.scss +13 -1
  149. package/dist/popover-content-e0c3132f.js +0 -68
  150. package/dist/toggletip-b2d3b8bf.js +0 -99
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license
3
3
  *
4
- * Copyright IBM Corp. 2019, 2023
4
+ * Copyright IBM Corp. 2019, 2024
5
5
  *
6
6
  * This source code is licensed under the Apache-2.0 license found in the
7
7
  * LICENSE file in the root directory of this source tree.
@@ -354,6 +354,10 @@ declare class CDSTooltip extends CDSTooltip_base {
354
354
  * Specify how the trigger should align with the tooltip
355
355
  */
356
356
  align: string;
357
+ /**
358
+ * Specify whether a auto align functionality should be applied
359
+ */
360
+ autoalign: boolean;
357
361
  /**
358
362
  * `true` if this tooltip is in a data table row
359
363
  */
@@ -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,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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"}
@@ -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"}
@@ -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.0",
3
+ "version": "2.4.0-rc.2",
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": "e4cd73d870fe341b84ef93161f1b51f70cd2eaaf"
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 {