@carbon/web-components 2.43.0 → 2.44.0

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 (217) hide show
  1. package/custom-elements.json +8 -15
  2. package/dist/accordion.min.js +3 -3
  3. package/dist/ai-label.min.js +3 -3
  4. package/dist/ai-skeleton.min.js +3 -3
  5. package/dist/badge-indicator.min.js +3 -3
  6. package/dist/breadcrumb.min.js +6 -6
  7. package/dist/{button-eTloXzqX.js → button-CKgb4gp4.js} +4 -3
  8. package/dist/{button-skeleton-Dk3chlBc.js → button-skeleton-CXiEp3M8.js} +3 -3
  9. package/dist/button.min.js +3 -3
  10. package/dist/chat-button.min.js +3 -3
  11. package/dist/{checkbox-cr5-wvt1.js → checkbox-cQAHKwqU.js} +3 -3
  12. package/dist/checkbox.min.js +3 -3
  13. package/dist/{class-map-CJoc5JjN.js → class-map-warKt-hW.js} +3 -3
  14. package/dist/code-snippet.min.js +3 -3
  15. package/dist/combo-box.min.js +20 -9
  16. package/dist/combo-button.min.js +3 -3
  17. package/dist/{content-switcher-item-3fTDI2Aq.js → content-switcher-item-Cvkk1snv.js} +3 -3
  18. package/dist/content-switcher.min.js +3 -3
  19. package/dist/copy-button.min.js +3 -3
  20. package/dist/data-table.min.js +3 -3
  21. package/dist/date-picker.min.js +3 -3
  22. package/dist/dropdown-item-BHkaXms6.js +100 -0
  23. package/dist/dropdown.min.js +6 -10
  24. package/dist/feature-flags.min.js +3 -3
  25. package/dist/file-uploader.min.js +3 -3
  26. package/dist/floating-menu.min.js +3 -3
  27. package/dist/fluid-search.min.js +3 -3
  28. package/dist/fluid-select.min.js +3 -3
  29. package/dist/fluid-text-input.min.js +3 -3
  30. package/dist/fluid-textarea.min.js +3 -3
  31. package/dist/{focus-yD1Q_pDt.js → focus-Bwk_lgHl.js} +3 -3
  32. package/dist/{form-BaYTr2z0.js → form-CfvlKX6g.js} +3 -3
  33. package/dist/form-group.min.js +3 -3
  34. package/dist/form.min.js +3 -3
  35. package/dist/grid.min.js +3 -3
  36. package/dist/heading.min.js +3 -3
  37. package/dist/{host-listener-BJsBtsIt.js → host-listener-DJH6yN4y.js} +3 -3
  38. package/dist/icon-button.min.js +3 -3
  39. package/dist/icon-indicator.min.js +3 -3
  40. package/dist/{icon-loader-CqB9WRMP.js → icon-loader-pxyCrZwZ.js} +3 -3
  41. package/dist/{icon-loader-utils-DUl0vwdh.js → icon-loader-utils-lPqg1iFP.js} +3 -3
  42. package/dist/icon.min.js +3 -3
  43. package/dist/{if-defined-IxozbDOJ.js → if-defined-zhGxRN9M.js} +3 -3
  44. package/dist/{if-non-empty-CqQHBHdQ.js → if-non-empty-CTDui88C.js} +3 -3
  45. package/dist/inline-loading.min.js +4 -4
  46. package/dist/layer.min.js +3 -3
  47. package/dist/link.min.js +3 -3
  48. package/dist/list.min.js +3 -3
  49. package/dist/{loading-icon-CSgLYhyw.js → loading-icon-DfL1aC0N.js} +3 -3
  50. package/dist/loading.min.js +3 -3
  51. package/dist/menu-button.min.js +3 -3
  52. package/dist/menu.min.js +3 -3
  53. package/dist/modal.min.js +3 -3
  54. package/dist/multi-select.min.js +4 -3
  55. package/dist/notification.min.js +3 -3
  56. package/dist/number-input.min.js +3 -3
  57. package/dist/overflow-menu.min.js +3 -3
  58. package/dist/page-header.min.js +3 -3
  59. package/dist/pagination.min.js +3 -3
  60. package/dist/password-input.min.js +3 -3
  61. package/dist/popover.min.js +3 -3
  62. package/dist/progress-bar.min.js +3 -3
  63. package/dist/progress-indicator.min.js +3 -3
  64. package/dist/{property-B_F7V5eB.js → property-CoShOfqo.js} +3 -3
  65. package/dist/{query-assigned-elements-DeMmXVMb.js → query-assigned-elements-DvdLJjH_.js} +3 -3
  66. package/dist/radio-button.min.js +3 -3
  67. package/dist/{search-DhwzN9sI.js → search-mXlboHWm.js} +3 -3
  68. package/dist/search.min.js +3 -3
  69. package/dist/{select-BIi12O8B.js → select-BLrQXy2c.js} +4 -3
  70. package/dist/{select-item-Be7OL9mD.js → select-item-CMDCy7c6.js} +3 -3
  71. package/dist/{select-skeleton-8uIIQzNt.js → select-skeleton-D_qjQ9lZ.js} +3 -3
  72. package/dist/select.min.js +3 -3
  73. package/dist/shape-indicator.min.js +3 -3
  74. package/dist/side-panel.min.js +3 -3
  75. package/dist/skeleton-icon.min.js +3 -3
  76. package/dist/skeleton-placeholder.min.js +3 -3
  77. package/dist/skeleton-text.min.js +3 -3
  78. package/dist/skip-to-content.min.js +3 -3
  79. package/dist/slider.min.js +3 -3
  80. package/dist/slug.min.js +3 -3
  81. package/dist/stack.min.js +3 -3
  82. package/dist/{state-CJQmj6wG.js → state-D7rtIkB2.js} +3 -3
  83. package/dist/structured-list.min.js +3 -3
  84. package/dist/tabs.min.js +3 -3
  85. package/dist/tag.min.js +3 -3
  86. package/dist/tearsheet.min.js +3 -3
  87. package/dist/{text-input-C0qeKR9e.js → text-input-CIM-jSOC.js} +3 -3
  88. package/dist/text-input.min.js +3 -3
  89. package/dist/textarea.min.js +3 -3
  90. package/dist/tile.min.js +3 -3
  91. package/dist/time-picker.min.js +3 -3
  92. package/dist/toggle-tip.min.js +3 -3
  93. package/dist/toggle.min.js +3 -3
  94. package/dist/{tooltip-content-CMbdEoxb.js → tooltip-content-D25Rgp9z.js} +3 -3
  95. package/dist/tooltip.min.js +3 -3
  96. package/dist/tree-view.min.js +3 -3
  97. package/dist/ui-shell.min.js +3 -3
  98. package/dist/{unsafe-html-Dqv0UqC_.js → unsafe-html-C26Gpb7O.js} +3 -3
  99. package/es/components/ai-label/ai-label.scss.js +1 -1
  100. package/es/components/breadcrumb/breadcrumb.scss.js +1 -1
  101. package/es/components/button/button.js +1 -0
  102. package/es/components/button/button.js.map +1 -1
  103. package/es/components/combo-box/combo-box-item.d.ts +10 -1
  104. package/es/components/combo-box/combo-box-item.js +65 -1
  105. package/es/components/combo-box/combo-box-item.js.map +1 -1
  106. package/es/components/combo-box/combo-box.d.ts +6 -9
  107. package/es/components/combo-box/combo-box.js +108 -65
  108. package/es/components/combo-box/combo-box.js.map +1 -1
  109. package/es/components/combo-box/combo-box.scss.js +1 -1
  110. package/es/components/data-table/data-table.scss.js +1 -1
  111. package/es/components/dropdown/dropdown-skeleton.d.ts +10 -1
  112. package/es/components/dropdown/dropdown-skeleton.js +31 -7
  113. package/es/components/dropdown/dropdown-skeleton.js.map +1 -1
  114. package/es/components/dropdown/dropdown.d.ts +41 -7
  115. package/es/components/dropdown/dropdown.js +438 -65
  116. package/es/components/dropdown/dropdown.js.map +1 -1
  117. package/es/components/dropdown/dropdown.scss.js +1 -1
  118. package/es/components/icon-button/icon-button.scss.js +1 -1
  119. package/es/components/inline-loading/inline-loading.js +1 -1
  120. package/es/components/inline-loading/inline-loading.js.map +1 -1
  121. package/es/components/inline-loading/inline-loading.scss.js +1 -1
  122. package/es/components/multi-select/multi-select.d.ts +13 -1
  123. package/es/components/multi-select/multi-select.js +53 -0
  124. package/es/components/multi-select/multi-select.js.map +1 -1
  125. package/es/components/multi-select/multi-select.scss.js +1 -1
  126. package/es/components/popover/popover.scss.js +1 -1
  127. package/es/components/select/select.js +1 -0
  128. package/es/components/select/select.js.map +1 -1
  129. package/es/components/slug/slug.scss.js +1 -1
  130. package/es/components/toggle-tip/toggletip.scss.js +1 -1
  131. package/es/components/tooltip/tooltip.js +1 -1
  132. package/es/components/tooltip/tooltip.js.map +1 -1
  133. package/es/components/tooltip/tooltip.scss.js +1 -1
  134. package/es-custom/components/ai-label/ai-label.scss.js +1 -1
  135. package/es-custom/components/breadcrumb/breadcrumb.scss.js +1 -1
  136. package/es-custom/components/button/button.js +1 -0
  137. package/es-custom/components/button/button.js.map +1 -1
  138. package/es-custom/components/combo-box/combo-box-item.d.ts +10 -1
  139. package/es-custom/components/combo-box/combo-box-item.js +65 -1
  140. package/es-custom/components/combo-box/combo-box-item.js.map +1 -1
  141. package/es-custom/components/combo-box/combo-box.d.ts +6 -9
  142. package/es-custom/components/combo-box/combo-box.js +108 -65
  143. package/es-custom/components/combo-box/combo-box.js.map +1 -1
  144. package/es-custom/components/combo-box/combo-box.scss.js +1 -1
  145. package/es-custom/components/data-table/data-table.scss.js +1 -1
  146. package/es-custom/components/dropdown/dropdown-skeleton.d.ts +10 -1
  147. package/es-custom/components/dropdown/dropdown-skeleton.js +31 -7
  148. package/es-custom/components/dropdown/dropdown-skeleton.js.map +1 -1
  149. package/es-custom/components/dropdown/dropdown.d.ts +41 -7
  150. package/es-custom/components/dropdown/dropdown.js +438 -65
  151. package/es-custom/components/dropdown/dropdown.js.map +1 -1
  152. package/es-custom/components/dropdown/dropdown.scss.js +1 -1
  153. package/es-custom/components/icon-button/icon-button.scss.js +1 -1
  154. package/es-custom/components/inline-loading/inline-loading.js +1 -1
  155. package/es-custom/components/inline-loading/inline-loading.js.map +1 -1
  156. package/es-custom/components/inline-loading/inline-loading.scss.js +1 -1
  157. package/es-custom/components/multi-select/multi-select.d.ts +13 -1
  158. package/es-custom/components/multi-select/multi-select.js +53 -0
  159. package/es-custom/components/multi-select/multi-select.js.map +1 -1
  160. package/es-custom/components/multi-select/multi-select.scss.js +1 -1
  161. package/es-custom/components/popover/popover.scss.js +1 -1
  162. package/es-custom/components/select/select.js +1 -0
  163. package/es-custom/components/select/select.js.map +1 -1
  164. package/es-custom/components/slug/slug.scss.js +1 -1
  165. package/es-custom/components/toggle-tip/toggletip.scss.js +1 -1
  166. package/es-custom/components/tooltip/tooltip.js +1 -1
  167. package/es-custom/components/tooltip/tooltip.js.map +1 -1
  168. package/es-custom/components/tooltip/tooltip.scss.js +1 -1
  169. package/lib/components/combo-box/combo-box-item.d.ts +10 -1
  170. package/lib/components/combo-box/combo-box.d.ts +6 -9
  171. package/lib/components/dropdown/dropdown-skeleton.d.ts +10 -1
  172. package/lib/components/dropdown/dropdown.d.ts +41 -7
  173. package/lib/components/multi-select/multi-select.d.ts +13 -1
  174. package/package.json +6 -6
  175. package/scss/components/breadcrumb/breadcrumb.scss +1 -3
  176. package/scss/components/combo-box/combo-box.scss +72 -3
  177. package/scss/components/data-table/_table-core.scss +10 -0
  178. package/scss/components/data-table/_table-expandable.scss +6 -0
  179. package/scss/components/data-table/_table-selection.scss +7 -0
  180. package/scss/components/data-table/_table-sizes.scss +4 -0
  181. package/scss/components/data-table/data-table.scss +6 -9
  182. package/scss/components/dropdown/dropdown.scss +174 -22
  183. package/scss/components/menu/menu-variables.scss +0 -2
  184. package/scss/components/menu/menu.scss +1 -1
  185. package/scss/components/multi-select/multi-select.scss +7 -0
  186. package/scss/components/overflow-menu/overflow-menu.scss +0 -2
  187. package/scss/components/popover/popover.scss +58 -11
  188. package/scss/components/tooltip/tooltip-story.scss +8 -4
  189. package/telemetry.yml +0 -1
  190. package/dist/dropdown-item-BO7AhHPd.js +0 -96
  191. package/dist/{16-DhAznVKm.js → 16-5c5jFrXp.js} +2 -2
  192. package/dist/{16-B7MRS_3W.js → 16-B9Uo1cvh.js} +2 -2
  193. package/dist/{16-BWlgPBcu.js → 16-BMXNUlRI.js} +2 -2
  194. package/dist/{16-CdxGkvXO.js → 16-C-j0eQg7.js} +2 -2
  195. package/dist/{16-CJNlj_0b.js → 16-CZiCF7iO.js} +2 -2
  196. package/dist/{16-DoN7q01_.js → 16-CmZExt83.js} +2 -2
  197. package/dist/{16-DTvjc9uv.js → 16-DbvtK9-e.js} +2 -2
  198. package/dist/{16-GKRs-ALp.js → 16-INlZq7cB.js} +2 -2
  199. package/dist/{16-B46MLj4i.js → 16-dlAJdf7K.js} +2 -2
  200. package/dist/{16-B3Yskhl0.js → 16-tP236nqZ.js} +2 -2
  201. package/dist/{16-Bf2P7KMJ.js → 16-u6yXz6wM.js} +2 -2
  202. package/dist/{16-Bxm7Omxq.js → 16-vHbYZhS2.js} +2 -2
  203. package/dist/{20-CuEbZLGA.js → 20-ClE5EQkn.js} +2 -2
  204. package/dist/{20-DlknbFYR.js → 20-seUgpuwc.js} +2 -2
  205. package/dist/{carbon-element-DDrYm3XO.js → carbon-element-sn5DFO1t.js} +2 -2
  206. package/dist/{collection-helpers-C5emLOnk.js → collection-helpers-DwvpKeJx.js} +2 -2
  207. package/dist/{consume-BeeFGGfo.js → consume-C6px77x6.js} +2 -2
  208. package/dist/{directive-Dlo2OKiC.js → directive-CwtBJVHj.js} +2 -2
  209. package/dist/{floating-controller-DLpRVhGd.js → floating-controller-qGN47tO7.js} +2 -2
  210. package/dist/{host-listener-BCnAWDV7.js → host-listener-6VuJ4xzb.js} +2 -2
  211. package/dist/{lit-element-eFlPHqE1.js → lit-element-ljyXx2IF.js} +2 -2
  212. package/dist/{on-DvnWS_DB.js → on-CsYzs_5y.js} +2 -2
  213. package/dist/{query-BdmT5Ln1.js → query-BpyCOA3I.js} +2 -2
  214. package/dist/{radio-group-manager-B_pENWmT.js → radio-group-manager-DCfD4e6U.js} +2 -2
  215. package/dist/{settings-BBN_bDP6.js → settings-BYFrjJ1N.js} +2 -2
  216. package/dist/{shared-enums-D8TrS6Ts.js → shared-enums-BhRvRKoR.js} +2 -2
  217. package/dist/{validity-BUGyJDQ6.js → validity-wk0CEz9X.js} +2 -2
@@ -1,9 +1,10 @@
1
1
  /**
2
- * Copyright IBM Corp. 2019, 2023
2
+ * Copyright IBM Corp. 2019, 2025
3
3
  *
4
4
  * This source code is licensed under the Apache-2.0 license found in the
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  */
7
+ import type { PropertyValues } from 'lit';
7
8
  import CDSDropdownItem from '../dropdown/dropdown-item';
8
9
  /**
9
10
  * Combo box item.
@@ -11,6 +12,14 @@ import CDSDropdownItem from '../dropdown/dropdown-item';
11
12
  * @element cds-combo-box-item
12
13
  */
13
14
  declare class CDSComboBoxItem extends CDSDropdownItem {
15
+ private _nextSiblingRefs;
16
+ private _handleMouseEnter;
17
+ private _handleMouseLeave;
18
+ connectedCallback(): void;
19
+ disconnectedCallback(): void;
20
+ private _getNextItem;
21
+ private _syncNextSibling;
22
+ protected updated(changedProperties: PropertyValues): void;
14
23
  static styles: any;
15
24
  }
16
25
  export default CDSComboBoxItem;
@@ -57,14 +57,14 @@ declare class CDSComboBox extends CDSDropdown {
57
57
  * @returns `true` if the given combo box item matches the given query text.
58
58
  */
59
59
  protected _defaultItemMatches(item: CDSComboBoxItem, queryText: string): boolean;
60
- connectedCallback(): void;
61
60
  /**
62
61
  * Handles `input` event on the `<input>` for filtering.
63
62
  */
64
- protected _handleInput(event: InputEvent): void;
65
- protected _removeAutoCompleteSuggestion(): void;
63
+ protected _handleInput(): void;
66
64
  protected _filterItems(items: NodeListOf<Element>, queryText: string, rawQueryText: string): number;
67
65
  protected _scrollItemIntoView(item: HTMLElement): void;
66
+ protected _getSelectedItem(): CDSComboBoxItem | null;
67
+ protected _revertInputToSelected(focus?: boolean): void;
68
68
  protected _handleInputKeydown(event: KeyboardEvent): void;
69
69
  protected _handleClickInner(event: MouseEvent): void;
70
70
  protected _handleKeypressInner(event: KeyboardEvent): void;
@@ -76,6 +76,7 @@ declare class CDSComboBox extends CDSDropdown {
76
76
  protected _selectionDidChange(itemToSelect?: CDSComboBoxItem): void;
77
77
  protected _renderLabel(): TemplateResult;
78
78
  protected _renderFollowingLabel(): TemplateResult | void;
79
+ protected _renderTitleLabel(): TemplateResult;
79
80
  /**
80
81
  * The `aria-label` attribute for the icon to clear selection.
81
82
  */
@@ -89,15 +90,11 @@ declare class CDSComboBox extends CDSDropdown {
89
90
  */
90
91
  itemMatches: (item: CDSComboBoxItem, queryText: string) => boolean;
91
92
  /**
92
- * Provide custom filtering behavior. This attribute will be ignored if
93
- * `typeahead` is enabled and will default to `true`
93
+ * Provide custom filtering behavior.
94
94
  */
95
95
  shouldFilterItem: boolean | ShouldFilterItem;
96
- /**
97
- * **Experimental**: will enable autocomplete and typeahead for the input field
98
- */
99
- typeahead: boolean;
100
96
  shouldUpdate(changedProperties: any): boolean;
97
+ protected _clearInputWithoutSelecting(focus?: boolean): void;
101
98
  updated(changedProperties: any): void;
102
99
  protected _resetFilteredItems(): void;
103
100
  static TRIGGER_KEYS: Set<string>;
@@ -1,14 +1,23 @@
1
1
  /**
2
- * Copyright IBM Corp. 2019, 2023
2
+ * Copyright IBM Corp. 2019, 2025
3
3
  *
4
4
  * This source code is licensed under the Apache-2.0 license found in the
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  */
7
7
  import { LitElement } from 'lit';
8
+ import { DROPDOWN_SIZE } from './defs';
8
9
  /**
9
10
  * Skeleton version of dropdown.
10
11
  */
11
12
  declare class CDSDropdownSkeleton extends LitElement {
13
+ /**
14
+ * Specify whether the label should be hidden, or not.
15
+ */
16
+ hideLabel: boolean;
17
+ /**
18
+ * Specify the size of the ListBox.
19
+ */
20
+ size: DROPDOWN_SIZE;
12
21
  render(): import("lit-html").TemplateResult<1>;
13
22
  static styles: any;
14
23
  }
@@ -1463,6 +1463,14 @@ declare class CDSDropdown extends CDSDropdown_base {
1463
1463
  * `true` if there is an AI Label.
1464
1464
  */
1465
1465
  protected _hasAILabel: boolean;
1466
+ /**
1467
+ * Currently slotted AI decorator nodes (`cds-ai-label`/slug) with listeners attached.
1468
+ */
1469
+ private _aiDecoratorNodes;
1470
+ /**
1471
+ * Handles interaction on an AI decorator while the menu is open.
1472
+ */
1473
+ private _handleAIDecoratorInteraction;
1466
1474
  protected _activeDescendant?: string;
1467
1475
  /**
1468
1476
  * The content of the selected item.
@@ -1508,8 +1516,20 @@ declare class CDSDropdown extends CDSDropdown_base {
1508
1516
  * Handler for the `keydown` event on the top-level element in the shadow DOM.
1509
1517
  */
1510
1518
  protected _handleKeydownInner(event: KeyboardEvent): void;
1519
+ private _handleMenuInputKeydown;
1520
+ protected _shouldClearMenuInputOnEscape({ menuOpen, }: {
1521
+ event: KeyboardEvent;
1522
+ menuOpen: boolean;
1523
+ isInputTarget: boolean;
1524
+ }): boolean;
1525
+ protected get _supportsMenuInputFiltering(): boolean;
1526
+ protected get _menuInputNode(): HTMLInputElement | null;
1527
+ protected _clearMenuInputFiltering(): void;
1528
+ private _shouldForwardKeyToMenuInput;
1529
+ private _forwardKeyToMenuInput;
1530
+ private _shouldRetainMenuInputFocus;
1511
1531
  /**
1512
- * Handler for the `keypress` event on the top-level element in the shadow DOM.
1532
+ * Handles keypress events (Space, Enter)
1513
1533
  */
1514
1534
  protected _handleKeypressInner(event: KeyboardEvent): void;
1515
1535
  /**
@@ -1517,6 +1537,8 @@ declare class CDSDropdown extends CDSDropdown_base {
1517
1537
  *
1518
1538
  * @param event The event.
1519
1539
  */
1540
+ protected _handleMouseoverInner(event: MouseEvent): void;
1541
+ protected _handleMouseleaveInner(event: MouseEvent): void;
1520
1542
  protected _handleFocusOut(event: FocusEvent): void;
1521
1543
  /**
1522
1544
  * Handles `slotchange` event for the `<slot>` for helper text.
@@ -1530,27 +1552,39 @@ declare class CDSDropdown extends CDSDropdown_base {
1530
1552
  * Handles `slotchange` event.
1531
1553
  */
1532
1554
  protected _handleAILabelSlotChange({ target }: Event): void;
1555
+ disconnectedCallback(): void;
1556
+ /**
1557
+ * Updates listeners for AI decorator nodes to ensure only one menu stays open.
1558
+ */
1559
+ private _updateAIDecoratorListeners;
1533
1560
  /**
1534
1561
  * Handles user-initiated selection of a dropdown item.
1535
1562
  *
1536
1563
  * @param [item] The dropdown item user wants to select. Absense of this argument means clearing selection.
1537
1564
  */
1538
1565
  protected _handleUserInitiatedSelectItem(item?: CDSDropdownItem): void;
1566
+ protected _shouldCloseAfterSelection(_item?: CDSDropdownItem): boolean;
1539
1567
  /**
1540
1568
  * Handles user-initiated toggling the open state.
1541
1569
  *
1542
1570
  * @param [force] If specified, forces the open state to the given one.
1543
1571
  */
1544
- protected _handleUserInitiatedToggle(force?: boolean): void;
1572
+ protected _handleUserInitiatedToggle(force?: boolean, { restoreTriggerFocus, focusMenu, highlightSelectedOnOpen, }?: {
1573
+ restoreTriggerFocus?: boolean;
1574
+ focusMenu?: boolean;
1575
+ highlightSelectedOnOpen?: boolean;
1576
+ }): void;
1545
1577
  /**
1546
1578
  * Clears the selection of dropdown items.
1547
1579
  */
1548
1580
  protected _clearHighlight(): void;
1549
- /**
1550
- * Navigate through dropdown items.
1551
- *
1552
- * @param direction `-1` to navigate backward, `1` to navigate forward.
1553
- */
1581
+ protected _getDropdownItemFromEvent(event: Event): CDSDropdownItem | null;
1582
+ protected _setHighlightedItem(item?: CDSDropdownItem | null, { scrollIntoView }?: {
1583
+ scrollIntoView?: boolean;
1584
+ }): void;
1585
+ protected _getNextDropdownItem(item: CDSDropdownItem): CDSDropdownItem | null;
1586
+ protected _updateSelectedNextSibling(item?: CDSDropdownItem | null): void;
1587
+ protected _highlightSelectedItem(): void;
1554
1588
  protected _navigate(direction: number): void;
1555
1589
  /**
1556
1590
  * @returns The content preceding the trigger button.
@@ -4,7 +4,7 @@
4
4
  * This source code is licensed under the Apache-2.0 license found in the
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  */
7
- import { TemplateResult } from 'lit';
7
+ import { PropertyValues, TemplateResult } from 'lit';
8
8
  import CDSDropdown from '../dropdown/dropdown';
9
9
  import { SELECTION_FEEDBACK_OPTION } from './defs';
10
10
  import CDSMultiSelectItem from './multi-select-item';
@@ -42,17 +42,29 @@ declare class CDSMultiSelect extends CDSDropdown {
42
42
  * The `<input>` for filtering.
43
43
  */
44
44
  private _filterInputNode;
45
+ protected get _supportsMenuInputFiltering(): boolean;
46
+ protected willUpdate(changedProperties: PropertyValues): void;
47
+ protected get _menuInputNode(): HTMLInputElement | null;
48
+ protected _clearMenuInputFiltering(): void;
49
+ protected _shouldClearMenuInputOnEscape({ menuOpen, isInputTarget, }: {
50
+ event: KeyboardEvent;
51
+ menuOpen: boolean;
52
+ isInputTarget: boolean;
53
+ }): boolean;
45
54
  /**
46
55
  * The trigger button.
47
56
  */
48
57
  private _triggerNode;
49
58
  protected _selectionShouldChange(itemToSelect?: CDSMultiSelectItem): boolean;
50
59
  protected _selectionDidChange(itemToSelect?: CDSMultiSelectItem): void;
60
+ protected _shouldCloseAfterSelection(item?: CDSMultiSelectItem): item is undefined;
51
61
  protected _handleClickInner(event: MouseEvent): void;
52
62
  /**
53
63
  * Handler for the `keypress` event, ensures filter still works upon entering space
54
64
  */
55
65
  protected _handleKeypressInner(event: KeyboardEvent): void;
66
+ protected _handleMouseoverInner(event: MouseEvent): void;
67
+ protected _handleMouseleaveInner(event: MouseEvent): void;
56
68
  /**
57
69
  * Special andler for the `keypress` event, ensures space selection for filterable
58
70
  * variation is disabled
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@carbon/web-components",
3
3
  "description": "Web components for the Carbon Design System",
4
- "version": "2.43.0",
4
+ "version": "2.44.0",
5
5
  "license": "Apache-2.0",
6
6
  "main": "es/index.js",
7
7
  "module": "es/index.js",
@@ -67,7 +67,8 @@
67
67
  },
68
68
  "dependencies": {
69
69
  "@carbon/icon-helpers": "10.47.0",
70
- "@carbon/styles": "^1.95.0",
70
+ "@carbon/icons": "^11.71.0",
71
+ "@carbon/styles": "^1.96.0",
71
72
  "@floating-ui/dom": "^1.6.3",
72
73
  "@ibm/telemetry-js": "^1.10.2",
73
74
  "@lit/context": "^1.1.3",
@@ -77,9 +78,8 @@
77
78
  "tslib": "^2.6.3"
78
79
  },
79
80
  "devDependencies": {
80
- "@carbon/icons": "^11.70.0",
81
- "@carbon/layout": "^11.43.0",
82
- "@carbon/motion": "^11.37.0",
81
+ "@carbon/layout": "^11.44.0",
82
+ "@carbon/motion": "^11.38.0",
83
83
  "@juggle/resize-observer": "^3.4.0",
84
84
  "@mordech/vite-lit-loader": "^0.37.0",
85
85
  "@open-wc/testing": "^4.0.0",
@@ -130,5 +130,5 @@
130
130
  }
131
131
  ]
132
132
  },
133
- "gitHead": "d2ccae94e5aa3defcce07cc9ea90058fda6c9705"
133
+ "gitHead": "4a42de3036ca693bf2c6477e917824982fafd7af"
134
134
  }
@@ -5,15 +5,13 @@
5
5
  // LICENSE file in the root directory of this source tree.
6
6
  //
7
7
 
8
- $css--plex: true !default;
9
-
10
8
  @use '@carbon/styles/scss/config' as *;
11
9
  @use '@carbon/styles/scss/spacing' as *;
12
10
  @use '@carbon/styles/scss/theme' as *;
13
11
  @use '@carbon/styles/scss/motion' as *;
14
12
  @use '@carbon/styles/scss/utilities' as *;
15
13
  @use '@carbon/styles/scss/components/breadcrumb';
16
- @import '../overflow-menu/overflow-menu';
14
+ @use '../overflow-menu/overflow-menu';
17
15
 
18
16
  :host(#{$prefix}-breadcrumb),
19
17
  :host(#{$prefix}-breadcrumb-skeleton) {
@@ -11,6 +11,7 @@ $css--plex: true !default;
11
11
  @use '@carbon/styles/scss/spacing' as *;
12
12
  @use '@carbon/styles/scss/theme' as *;
13
13
  @use '@carbon/styles/scss/utilities' as *;
14
+ @use '@carbon/styles/scss/utilities/focus-outline' as *;
14
15
  @use '@carbon/styles/scss/utilities/convert' as *;
15
16
  @use '@carbon/styles/scss/layout' as *;
16
17
  @use '@carbon/styles/scss/components/combo-box' as *;
@@ -41,6 +42,11 @@ $css--plex: true !default;
41
42
  }
42
43
  }
43
44
 
45
+ :host(#{$prefix}-combo-box) .#{$prefix}--text-input--highlighted-outline {
46
+ outline: 1px solid $focus;
47
+ outline-offset: -1px;
48
+ }
49
+
44
50
  :host(#{$prefix}-combo-box[disabled]),
45
51
  :host(#{$prefix}-combo-box[read-only]) {
46
52
  .#{$prefix}--list-box__selection {
@@ -68,29 +74,70 @@ $css--plex: true !default;
68
74
  .#{$prefix}--list-box__menu-item__option {
69
75
  block-size: auto;
70
76
  }
77
+ }
78
+
79
+ :host(#{$prefix}-combo-box-item:not([disabled]):hover) {
80
+ background-color: $layer-hover;
81
+ }
71
82
 
72
- &:hover {
73
- background-color: $layer-hover;
83
+ :host(#{$prefix}-combo-box-item:first-of-type)
84
+ .#{$prefix}--list-box__menu-item__option {
85
+ border-block-start-color: transparent;
86
+ }
87
+
88
+ :host(#{$prefix}-combo-box-item:first-of-type[highlighted]) {
89
+ @include focus-outline('reset');
90
+
91
+ &::before {
92
+ position: absolute;
93
+ border: 2px solid $focus;
94
+ block-size: 100%;
95
+ border-block-start: 1px solid $focus;
96
+ content: '';
97
+ inline-size: 100%;
98
+ inset-block-start: 0;
99
+ inset-inline-start: 0;
100
+ pointer-events: none;
74
101
  }
75
102
  }
76
103
 
104
+ :host(#{$prefix}-combo-box-item[highlighted-next-sibling]),
105
+ :host(#{$prefix}-combo-box-item[hovered-next-sibling])
106
+ .#{$prefix}--list-box__menu-item__option {
107
+ border-block-start-color: transparent;
108
+ }
109
+
77
110
  :host(#{$prefix}-combo-box-item[disabled]) {
111
+ cursor: not-allowed;
112
+
78
113
  .#{$prefix}--list-box__menu-item__option {
79
114
  color: $text-disabled;
80
115
  cursor: not-allowed;
116
+ pointer-events: none;
81
117
  text-decoration: none;
82
118
  }
83
119
  }
84
120
 
121
+ :host(#{$prefix}-combo-box-item[disabled][highlighted-next-sibling]:hover),
122
+ :host(#{$prefix}-combo-box-item[disabled][hovered-next-sibling]:hover)
123
+ .#{$prefix}--list-box__menu-item__option {
124
+ border-block-start-color: $border-subtle;
125
+ }
126
+
127
+ :host(#{$prefix}-combo-box-item[disabled]:hover)
128
+ .#{$prefix}--list-box__menu-item__option {
129
+ border-block-start-color: $border-subtle-01;
130
+ }
131
+
85
132
  :host(#{$prefix}-combo-box-item[highlighted]) {
86
133
  @extend .#{$prefix}--list-box__menu-item--highlighted;
87
134
  }
88
135
 
89
136
  :host(#{$prefix}-combo-box-item[selected]) {
90
137
  @extend .#{$prefix}--list-box__menu-item--active;
91
- @extend .#{$prefix}--list-box__menu-item--highlighted;
92
138
 
93
139
  .#{$prefix}--list-box__menu-item__option {
140
+ border-block-start-color: transparent;
94
141
  color: $text-primary;
95
142
  }
96
143
 
@@ -99,6 +146,16 @@ $css--plex: true !default;
99
146
  }
100
147
  }
101
148
 
149
+ :host(#{$prefix}-combo-box-item[selected-next-sibling])
150
+ .#{$prefix}--list-box__menu-item__option {
151
+ border-block-start-color: transparent;
152
+ }
153
+
154
+ :host(#{$prefix}-combo-box-item[disabled][selected-next-sibling]:hover)
155
+ .#{$prefix}--list-box__menu-item__option {
156
+ border-block-start-color: $border-subtle;
157
+ }
158
+
102
159
  :host(#{$prefix}-combo-box-item[size='sm']) {
103
160
  block-size: $spacing-07;
104
161
 
@@ -115,6 +172,18 @@ $css--plex: true !default;
115
172
  }
116
173
  }
117
174
 
175
+ :host(#{$prefix}-combo-box[size='sm']) {
176
+ .#{$prefix}--list-box__menu-icon {
177
+ inset-block: $spacing-02;
178
+ }
179
+ }
180
+
181
+ :host(#{$prefix}-combo-box[size='lg']) {
182
+ .#{$prefix}--list-box__menu-icon {
183
+ inset-block: $spacing-04;
184
+ }
185
+ }
186
+
118
187
  :host(#{$prefix}-combo-box[ai-label]) {
119
188
  @extend .#{$prefix}--list-box__wrapper--slug;
120
189
 
@@ -5,6 +5,16 @@
5
5
  // LICENSE file in the root directory of this source tree.
6
6
  //
7
7
 
8
+ @use '@carbon/styles/scss/config' as *;
9
+ @use '@carbon/styles/scss/utilities' as *;
10
+ @use '@carbon/styles/scss/spacing' as *;
11
+ @use '@carbon/styles/scss/motion' as *;
12
+ @use '@carbon/styles/scss/theme' as *;
13
+ @use '@carbon/styles/scss/type' as *;
14
+ @use '@carbon/styles/scss/breakpoint' as *;
15
+ @use '@carbon/styles/scss/utilities/ai-gradient' as *;
16
+ @use '@carbon/styles/scss/components/data-table';
17
+
8
18
  //
9
19
  // Table header and table body
10
20
  //
@@ -5,6 +5,12 @@
5
5
  // LICENSE file in the root directory of this source tree.
6
6
  //
7
7
 
8
+ @use '@carbon/styles/scss/config' as *;
9
+ @use '@carbon/styles/scss/spacing' as *;
10
+ @use '@carbon/styles/scss/motion' as *;
11
+ @use '@carbon/styles/scss/theme' as *;
12
+ @use '@carbon/styles/scss/utilities/ai-gradient' as *;
13
+
8
14
  :host(#{$prefix}-table-expanded-row) {
9
15
  display: table-row;
10
16
  block-size: 0;
@@ -5,6 +5,13 @@
5
5
  // LICENSE file in the root directory of this source tree.
6
6
  //
7
7
 
8
+ @use '@carbon/styles/scss/config' as *;
9
+ @use '@carbon/styles/scss/spacing' as *;
10
+ @use '@carbon/styles/scss/motion' as *;
11
+ @use '@carbon/styles/scss/theme' as *;
12
+ @use '@carbon/styles/scss/components/data-table/vars' as *;
13
+ @use '@carbon/styles/scss/utilities/ai-gradient' as *;
14
+
8
15
  //
9
16
  // Selection check box
10
17
  //
@@ -5,6 +5,10 @@
5
5
  // LICENSE file in the root directory of this source tree.
6
6
  //
7
7
 
8
+ @use '@carbon/styles/scss/config' as *;
9
+ @use '@carbon/styles/scss/spacing' as *;
10
+ @use '@carbon/styles/scss/utilities/convert' as *;
11
+
8
12
  //
9
13
  // "xs" table size variant
10
14
  //
@@ -16,17 +16,14 @@ $css--plex: true !default;
16
16
  @use '@carbon/styles/scss/utilities/convert' as *;
17
17
  @use '@carbon/styles/scss/utilities/ai-gradient' as *;
18
18
  @use '@carbon/styles/scss/components/checkbox';
19
-
20
19
  @use '@carbon/styles/scss/components/data-table' as *;
21
20
  @use '@carbon/styles/scss/components/link' as *;
22
-
23
21
  @use '@carbon/styles/scss/components/data-table/expandable';
24
22
  @use '@carbon/styles/scss/components/data-table/skeleton';
25
23
 
26
- // TODO: deprecate @import
27
- @import 'table-action';
28
- @import 'table-core';
29
- @import 'table-expandable';
30
- @import 'table-sizes';
31
- @import 'table-selection';
32
- @import 'table-sort';
24
+ @use 'table-action';
25
+ @use 'table-core';
26
+ @use 'table-expandable';
27
+ @use 'table-sizes';
28
+ @use 'table-selection';
29
+ @use 'table-sort';