@carbon/web-components 2.30.0 → 2.31.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 (312) hide show
  1. package/custom-elements.json +103 -0
  2. package/dist/{16-1acbca89.js → 16-0353e7e3.js} +2 -2
  3. package/dist/{16-e99fe18d.js → 16-2363f096.js} +2 -2
  4. package/dist/{16-86aaab1b.js → 16-250e2a70.js} +2 -2
  5. package/dist/{16-ea8d6351.js → 16-41ffb037.js} +2 -2
  6. package/dist/{16-0753806c.js → 16-9631190c.js} +2 -2
  7. package/dist/{16-f1660d25.js → 16-a4bb462e.js} +2 -2
  8. package/dist/{16-9f896de4.js → 16-a6ff8f82.js} +2 -2
  9. package/dist/{16-37a8844b.js → 16-a9f5da53.js} +2 -2
  10. package/dist/{16-7a98a3a1.js → 16-acbb0130.js} +2 -2
  11. package/dist/{16-15766a67.js → 16-c0c2f9cc.js} +2 -2
  12. package/dist/{16-48100f95.js → 16-dbe65920.js} +2 -2
  13. package/dist/{16-0815751b.js → 16-f4def175.js} +2 -2
  14. package/dist/{20-8d9176aa.js → 20-6f209450.js} +2 -2
  15. package/dist/{20-39279d7b.js → 20-cf8682e7.js} +2 -2
  16. package/dist/accordion.min.js +2 -2
  17. package/dist/ai-label.min.js +2 -2
  18. package/dist/ai-skeleton.min.js +2 -2
  19. package/dist/badge-indicator.min.js +2 -2
  20. package/dist/breadcrumb.min.js +2 -2
  21. package/dist/button-8a9ddb9f.js +144 -0
  22. package/dist/{button-set-db868f52.js → button-set-e143c49e.js} +2 -2
  23. package/dist/{button-skeleton-74dbc8c7.js → button-skeleton-eb7300c7.js} +4 -4
  24. package/dist/button.min.js +2 -2
  25. package/dist/carbon-element-716e46b0.js +1 -1
  26. package/dist/chat-button.min.js +2 -2
  27. package/dist/checkbox-2bd29f97.js +118 -0
  28. package/dist/{checkbox-skeleton-85225580.js → checkbox-skeleton-5a0295cb.js} +2 -2
  29. package/dist/checkbox.min.js +2 -2
  30. package/dist/{class-map-0105578d.js → class-map-287e73b5.js} +2 -2
  31. package/dist/code-snippet.min.js +3 -3
  32. package/dist/collection-helpers-eb62fd34.js +1 -1
  33. package/dist/combo-box.min.js +4 -4
  34. package/dist/combo-button.min.js +93 -0
  35. package/dist/content-switcher-item-c66114b8.js +105 -0
  36. package/dist/content-switcher.min.js +2 -2
  37. package/dist/copy-button-2dbb2b01.js +94 -0
  38. package/dist/copy-button.min.js +2 -2
  39. package/dist/data-table.min.js +5 -5
  40. package/dist/date-picker.min.js +3 -3
  41. package/dist/{definition-tooltip-76a6bcfc.js → definition-tooltip-f7e0a735.js} +6 -6
  42. package/dist/defs-c5cfba1b.js +1 -1
  43. package/dist/directive-e2d48b9c.js +1 -1
  44. package/dist/dropdown-item-b80ac457.js +147 -0
  45. package/dist/dropdown.min.js +3 -3
  46. package/dist/file-uploader.min.js +4 -4
  47. package/dist/floating-controller-92da0306.js +1 -1
  48. package/dist/{floating-menu-5ab3e498.js → floating-menu-f19577a8.js} +2 -2
  49. package/dist/floating-menu.min.js +2 -2
  50. package/dist/{focus-b89bb373.js → focus-c9ba63ff.js} +2 -2
  51. package/dist/form-3c2e14c6.js +1 -1
  52. package/dist/form-group.min.js +6 -6
  53. package/dist/form.min.js +2 -2
  54. package/dist/heading.min.js +2 -2
  55. package/dist/host-listener-97e78474.js +1 -1
  56. package/dist/icon-button-6a61637b.js +93 -0
  57. package/dist/icon-button.min.js +2 -2
  58. package/dist/icon-indicator.min.js +2 -2
  59. package/dist/{if-defined-3aa71b6b.js → if-defined-7fb4dd64.js} +2 -2
  60. package/dist/{if-non-empty-a8509432.js → if-non-empty-d0ff50a3.js} +2 -2
  61. package/dist/inline-loading.min.js +5 -5
  62. package/dist/{layer-62205ad5.js → layer-602c2202.js} +2 -2
  63. package/dist/layer.min.js +2 -2
  64. package/dist/{link-540fb662.js → link-76646b17.js} +6 -6
  65. package/dist/link.min.js +2 -2
  66. package/dist/list.min.js +2 -2
  67. package/dist/{loading-c1a7d0e7.js → loading-ae8e2f1b.js} +2 -2
  68. package/dist/{loading-icon-7b5d963f.js → loading-icon-f3d7d50c.js} +4 -4
  69. package/dist/loading.min.js +2 -2
  70. package/dist/menu-button.min.js +2 -2
  71. package/dist/{menu-item-radio-group-2a6c6359.js → menu-item-radio-group-45e474cb.js} +2 -2
  72. package/dist/menu.min.js +2 -2
  73. package/dist/modal-label-f93860bf.js +110 -0
  74. package/dist/modal.min.js +2 -2
  75. package/dist/multi-select.min.js +2 -2
  76. package/dist/notification.min.js +19 -9
  77. package/dist/number-input.min.js +13 -13
  78. package/dist/on-8707857f.js +1 -1
  79. package/dist/overflow-menu.min.js +2 -2
  80. package/dist/pagination.min.js +2 -2
  81. package/dist/popover-content-b41e9612.js +94 -0
  82. package/dist/popover.min.js +2 -2
  83. package/dist/progress-bar.min.js +2 -2
  84. package/dist/progress-indicator.min.js +2 -2
  85. package/dist/{property-92d0c002.js → property-dd1c81a7.js} +2 -2
  86. package/dist/query-602de8af.js +1 -1
  87. package/dist/query-assigned-elements-1bd68a6e.js +1 -1
  88. package/dist/radio-button-skeleton-48a9df2a.js +118 -0
  89. package/dist/radio-button.min.js +2 -2
  90. package/dist/radio-group-manager-853a7e76.js +1 -1
  91. package/dist/search-2e2c46ea.js +108 -0
  92. package/dist/search.min.js +3 -3
  93. package/dist/select-e40e62af.js +148 -0
  94. package/dist/select.min.js +3 -3
  95. package/dist/{settings-acffb3e3.js → settings-c3654bc7.js} +2 -2
  96. package/dist/shape-indicator.min.js +2 -2
  97. package/dist/shared-enums-ccc90ee0.js +1 -1
  98. package/dist/side-panel.min.js +2 -2
  99. package/dist/{skeleton-icon-6b138257.js → skeleton-icon-e81be97a.js} +2 -2
  100. package/dist/skeleton-icon.min.js +2 -2
  101. package/dist/{skeleton-placeholder-f88fcab6.js → skeleton-placeholder-13b648d8.js} +2 -2
  102. package/dist/skeleton-placeholder.min.js +2 -2
  103. package/dist/{skeleton-text-03f78801.js → skeleton-text-ec2217a3.js} +2 -2
  104. package/dist/skeleton-text.min.js +2 -2
  105. package/dist/skip-to-content.min.js +2 -2
  106. package/dist/slider.min.js +4 -4
  107. package/dist/slug.min.js +2 -2
  108. package/dist/{spread-9f8d827a.js → spread-bbf12ceb.js} +2 -2
  109. package/dist/stack.min.js +2 -2
  110. package/dist/{state-670da9a4.js → state-8793f01e.js} +2 -2
  111. package/dist/structured-list.min.js +3 -3
  112. package/dist/tabs.min.js +2 -2
  113. package/dist/tag.min.js +24 -24
  114. package/dist/tearsheet.min.js +9 -9
  115. package/dist/text-input-a947ecef.js +140 -0
  116. package/dist/text-input.min.js +3 -3
  117. package/dist/textarea.min.js +5 -5
  118. package/dist/tile.min.js +2 -2
  119. package/dist/time-picker.min.js +2 -2
  120. package/dist/toggle-tip.min.js +2 -2
  121. package/dist/toggle.min.js +2 -2
  122. package/dist/toggletip-691cdd4c.js +124 -0
  123. package/dist/tooltip-content-8fc23961.js +81 -0
  124. package/dist/tooltip.min.js +2 -2
  125. package/dist/tree-view.min.js +17 -17
  126. package/dist/ui-shell.min.js +5 -5
  127. package/dist/validity-de6fe348.js +1 -1
  128. package/es/components/accordion/accordion.scss.js +1 -1
  129. package/es/components/ai-label/ai-label.scss.js +1 -1
  130. package/es/components/breadcrumb/breadcrumb.scss.js +1 -1
  131. package/es/components/button/button.scss.js +1 -1
  132. package/es/components/chat-button/chat-button.scss.js +1 -1
  133. package/es/components/checkbox/checkbox.scss.js +1 -1
  134. package/es/components/code-snippet/code-snippet.scss.js +1 -1
  135. package/es/components/combo-box/combo-box.scss.js +1 -1
  136. package/es/components/combo-button/combo-button.d.ts +408 -0
  137. package/es/components/combo-button/combo-button.js +170 -0
  138. package/es/components/combo-button/combo-button.js.map +1 -0
  139. package/es/components/combo-button/combo-button.scss.js +13 -0
  140. package/es/components/combo-button/combo-button.scss.js.map +1 -0
  141. package/es/components/combo-button/defs.d.ts +40 -0
  142. package/es/components/combo-button/defs.js +52 -0
  143. package/es/components/combo-button/defs.js.map +1 -0
  144. package/es/components/combo-button/index.d.ts +7 -0
  145. package/es/components/combo-button/index.js +9 -0
  146. package/es/components/combo-button/index.js.map +1 -0
  147. package/es/components/content-switcher/content-switcher.scss.js +1 -1
  148. package/es/components/copy-button/copy-button.scss.js +1 -1
  149. package/es/components/data-table/data-table.scss.js +1 -1
  150. package/es/components/date-picker/date-picker.scss.js +1 -1
  151. package/es/components/dropdown/dropdown.scss.js +1 -1
  152. package/es/components/file-uploader/file-uploader.scss.js +1 -1
  153. package/es/components/form/form-item.scss.js +1 -1
  154. package/es/components/form-group/form-group.scss.js +1 -1
  155. package/es/components/icon-button/icon-button.scss.js +1 -1
  156. package/es/components/layer/layer.d.ts +1 -0
  157. package/es/components/layer/layer.js +3 -0
  158. package/es/components/layer/layer.js.map +1 -1
  159. package/es/components/layer/layer.scss.js +1 -1
  160. package/es/components/menu-button/menu-button.scss.js +1 -1
  161. package/es/components/modal/modal.js +27 -0
  162. package/es/components/modal/modal.js.map +1 -1
  163. package/es/components/modal/modal.scss.js +1 -1
  164. package/es/components/multi-select/multi-select.scss.js +1 -1
  165. package/es/components/notification/actionable-notification.d.ts +18 -0
  166. package/es/components/notification/actionable-notification.js +130 -4
  167. package/es/components/notification/actionable-notification.js.map +1 -1
  168. package/es/components/notification/actionable-notification.scss.js +1 -1
  169. package/es/components/notification/inline-notification.scss.js +1 -1
  170. package/es/components/notification/toast-notification.scss.js +1 -1
  171. package/es/components/number-input/number-input.scss.js +1 -1
  172. package/es/components/overflow-menu/overflow-menu-body.js +1 -0
  173. package/es/components/overflow-menu/overflow-menu-body.js.map +1 -1
  174. package/es/components/overflow-menu/overflow-menu.scss.js +1 -1
  175. package/es/components/pagination/pagination.scss.js +1 -1
  176. package/es/components/popover/popover.scss.js +1 -1
  177. package/es/components/progress-indicator/progress-indicator.scss.js +1 -1
  178. package/es/components/radio-button/radio-button.scss.js +1 -1
  179. package/es/components/search/search.scss.js +1 -1
  180. package/es/components/select/select.scss.js +1 -1
  181. package/es/components/skip-to-content/skip-to-content.scss.js +1 -1
  182. package/es/components/slider/slider.scss.js +1 -1
  183. package/es/components/slug/slug.scss.js +1 -1
  184. package/es/components/structured-list/structured-list.scss.js +1 -1
  185. package/es/components/tabs/tabs.scss.js +1 -1
  186. package/es/components/tag/dismissible-tag.d.ts +5 -0
  187. package/es/components/tag/dismissible-tag.js +24 -0
  188. package/es/components/tag/dismissible-tag.js.map +1 -1
  189. package/es/components/tag/tag.scss.js +1 -1
  190. package/es/components/text-input/text-input.scss.js +1 -1
  191. package/es/components/textarea/textarea.scss.js +1 -1
  192. package/es/components/tile/tile.scss.js +1 -1
  193. package/es/components/time-picker/time-picker.scss.js +1 -1
  194. package/es/components/toggle-tip/toggletip.scss.js +1 -1
  195. package/es/components/tooltip/tooltip.scss.js +1 -1
  196. package/es/components/tree-view/tree-view.scss.js +1 -1
  197. package/es/components/ui-shell/header.scss.js +1 -1
  198. package/es/components/ui-shell/side-nav.scss.js +1 -1
  199. package/es/globals/settings.d.ts +1 -1
  200. package/es/globals/settings.js +2 -1
  201. package/es/globals/settings.js.map +1 -1
  202. package/es/index.d.ts +1 -0
  203. package/es/index.js +1 -0
  204. package/es/index.js.map +1 -1
  205. package/es-custom/components/accordion/accordion.scss.js +1 -1
  206. package/es-custom/components/ai-label/ai-label.scss.js +1 -1
  207. package/es-custom/components/breadcrumb/breadcrumb.scss.js +1 -1
  208. package/es-custom/components/button/button.scss.js +1 -1
  209. package/es-custom/components/chat-button/chat-button.scss.js +1 -1
  210. package/es-custom/components/checkbox/checkbox.scss.js +1 -1
  211. package/es-custom/components/code-snippet/code-snippet.scss.js +1 -1
  212. package/es-custom/components/combo-box/combo-box.scss.js +1 -1
  213. package/es-custom/components/combo-button/combo-button.d.ts +408 -0
  214. package/es-custom/components/combo-button/combo-button.js +170 -0
  215. package/es-custom/components/combo-button/combo-button.js.map +1 -0
  216. package/es-custom/components/combo-button/combo-button.scss.js +13 -0
  217. package/es-custom/components/combo-button/combo-button.scss.js.map +1 -0
  218. package/es-custom/components/combo-button/defs.d.ts +40 -0
  219. package/es-custom/components/combo-button/defs.js +52 -0
  220. package/es-custom/components/combo-button/defs.js.map +1 -0
  221. package/es-custom/components/combo-button/index.d.ts +7 -0
  222. package/es-custom/components/combo-button/index.js +9 -0
  223. package/es-custom/components/combo-button/index.js.map +1 -0
  224. package/es-custom/components/content-switcher/content-switcher.scss.js +1 -1
  225. package/es-custom/components/copy-button/copy-button.scss.js +1 -1
  226. package/es-custom/components/data-table/data-table.scss.js +1 -1
  227. package/es-custom/components/date-picker/date-picker.scss.js +1 -1
  228. package/es-custom/components/dropdown/dropdown.scss.js +1 -1
  229. package/es-custom/components/file-uploader/file-uploader.scss.js +1 -1
  230. package/es-custom/components/form/form-item.scss.js +1 -1
  231. package/es-custom/components/form-group/form-group.scss.js +1 -1
  232. package/es-custom/components/icon-button/icon-button.scss.js +1 -1
  233. package/es-custom/components/layer/layer.d.ts +1 -0
  234. package/es-custom/components/layer/layer.js +3 -0
  235. package/es-custom/components/layer/layer.js.map +1 -1
  236. package/es-custom/components/layer/layer.scss.js +1 -1
  237. package/es-custom/components/menu-button/menu-button.scss.js +1 -1
  238. package/es-custom/components/modal/modal.js +27 -0
  239. package/es-custom/components/modal/modal.js.map +1 -1
  240. package/es-custom/components/modal/modal.scss.js +1 -1
  241. package/es-custom/components/multi-select/multi-select.scss.js +1 -1
  242. package/es-custom/components/notification/actionable-notification.d.ts +18 -0
  243. package/es-custom/components/notification/actionable-notification.js +130 -4
  244. package/es-custom/components/notification/actionable-notification.js.map +1 -1
  245. package/es-custom/components/notification/actionable-notification.scss.js +1 -1
  246. package/es-custom/components/notification/inline-notification.scss.js +1 -1
  247. package/es-custom/components/notification/toast-notification.scss.js +1 -1
  248. package/es-custom/components/number-input/number-input.scss.js +1 -1
  249. package/es-custom/components/overflow-menu/overflow-menu-body.js +1 -0
  250. package/es-custom/components/overflow-menu/overflow-menu-body.js.map +1 -1
  251. package/es-custom/components/overflow-menu/overflow-menu.scss.js +1 -1
  252. package/es-custom/components/pagination/pagination.scss.js +1 -1
  253. package/es-custom/components/popover/popover.scss.js +1 -1
  254. package/es-custom/components/progress-indicator/progress-indicator.scss.js +1 -1
  255. package/es-custom/components/radio-button/radio-button.scss.js +1 -1
  256. package/es-custom/components/search/search.scss.js +1 -1
  257. package/es-custom/components/select/select.scss.js +1 -1
  258. package/es-custom/components/skip-to-content/skip-to-content.scss.js +1 -1
  259. package/es-custom/components/slider/slider.scss.js +1 -1
  260. package/es-custom/components/slug/slug.scss.js +1 -1
  261. package/es-custom/components/structured-list/structured-list.scss.js +1 -1
  262. package/es-custom/components/tabs/tabs.scss.js +1 -1
  263. package/es-custom/components/tag/dismissible-tag.d.ts +5 -0
  264. package/es-custom/components/tag/dismissible-tag.js +24 -0
  265. package/es-custom/components/tag/dismissible-tag.js.map +1 -1
  266. package/es-custom/components/tag/tag.scss.js +1 -1
  267. package/es-custom/components/text-input/text-input.scss.js +1 -1
  268. package/es-custom/components/textarea/textarea.scss.js +1 -1
  269. package/es-custom/components/tile/tile.scss.js +1 -1
  270. package/es-custom/components/time-picker/time-picker.scss.js +1 -1
  271. package/es-custom/components/toggle-tip/toggletip.scss.js +1 -1
  272. package/es-custom/components/tooltip/tooltip.scss.js +1 -1
  273. package/es-custom/components/tree-view/tree-view.scss.js +1 -1
  274. package/es-custom/components/ui-shell/header.scss.js +1 -1
  275. package/es-custom/components/ui-shell/side-nav.scss.js +1 -1
  276. package/es-custom/globals/settings.d.ts +1 -1
  277. package/es-custom/globals/settings.js +2 -1
  278. package/es-custom/globals/settings.js.map +1 -1
  279. package/es-custom/index.d.ts +1 -0
  280. package/es-custom/index.js +1 -0
  281. package/es-custom/index.js.map +1 -1
  282. package/lib/components/combo-button/combo-button.d.ts +408 -0
  283. package/lib/components/combo-button/defs.d.ts +40 -0
  284. package/lib/components/combo-button/defs.js +54 -0
  285. package/lib/components/combo-button/defs.js.map +1 -0
  286. package/lib/components/combo-button/index.d.ts +7 -0
  287. package/lib/components/layer/layer.d.ts +1 -0
  288. package/lib/components/notification/actionable-notification.d.ts +18 -0
  289. package/lib/components/tag/dismissible-tag.d.ts +5 -0
  290. package/lib/globals/settings.d.ts +1 -1
  291. package/lib/globals/settings.js +2 -1
  292. package/lib/globals/settings.js.map +1 -1
  293. package/lib/index.d.ts +1 -0
  294. package/package.json +7 -8
  295. package/scss/components/combo-button/combo-button.scss +22 -0
  296. package/scss/components/layer/layer-story.scss +5 -0
  297. package/scss/components/layer/layer.scss +8 -0
  298. package/scss/components/multi-select/multi-select.scss +20 -1
  299. package/dist/button-16145b2c.js +0 -144
  300. package/dist/checkbox-cef62ad0.js +0 -118
  301. package/dist/content-switcher-item-f2de2bb6.js +0 -105
  302. package/dist/copy-button-ae38a4d8.js +0 -94
  303. package/dist/dropdown-item-67a36b6e.js +0 -147
  304. package/dist/icon-button-95e0ef4f.js +0 -93
  305. package/dist/modal-label-74958279.js +0 -110
  306. package/dist/popover-content-ecd216f7.js +0 -94
  307. package/dist/radio-button-skeleton-4a954abe.js +0 -118
  308. package/dist/search-ef834921.js +0 -108
  309. package/dist/select-46b4d65b.js +0 -148
  310. package/dist/text-input-3c32638b.js +0 -140
  311. package/dist/toggletip-4f3e6a4b.js +0 -124
  312. package/dist/tooltip-content-eac4e54e.js +0 -81
@@ -0,0 +1,408 @@
1
+ /**
2
+ * Copyright IBM Corp. 2025, 2025
3
+ *
4
+ * This source code is licensed under the Apache-2.0 license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+ import { LitElement } from 'lit';
8
+ import '../button/index';
9
+ import '../menu/index';
10
+ import '../icon-button/index';
11
+ import CDSMenu from '../menu/menu';
12
+ import CDSButton from '../button/button';
13
+ import { COMBO_BUTTON_SIZE, COMBO_BUTTON_TOOLTIP_ALIGNMENT } from './defs';
14
+ import { POPOVER_ALIGNMENT } from '../popover/defs';
15
+ import { ICON_BUTTON_TOOLTIP_ALIGNMENT } from '../icon-button/defs';
16
+ export { COMBO_BUTTON_SIZE, COMBO_BUTTON_TOOLTIP_ALIGNMENT };
17
+ declare const CDSComboButton_base: {
18
+ new (...args: any[]): {
19
+ _handles: Set<import("../../globals/internal/handle").default>;
20
+ connectedCallback(): void;
21
+ disconnectedCallback(): void;
22
+ accessKey: string;
23
+ readonly accessKeyLabel: string;
24
+ autocapitalize: string;
25
+ dir: string;
26
+ draggable: boolean;
27
+ hidden: boolean;
28
+ inert: boolean;
29
+ innerText: string;
30
+ lang: string;
31
+ readonly offsetHeight: number;
32
+ readonly offsetLeft: number;
33
+ readonly offsetParent: Element | null;
34
+ readonly offsetTop: number;
35
+ readonly offsetWidth: number;
36
+ outerText: string;
37
+ popover: string | null;
38
+ spellcheck: boolean;
39
+ title: string;
40
+ translate: boolean;
41
+ writingSuggestions: string;
42
+ attachInternals(): ElementInternals;
43
+ click(): void;
44
+ hidePopover(): void;
45
+ showPopover(): void;
46
+ togglePopover(force?: boolean): boolean;
47
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
48
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
49
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
50
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
51
+ readonly attributes: NamedNodeMap;
52
+ readonly classList: DOMTokenList;
53
+ className: string;
54
+ readonly clientHeight: number;
55
+ readonly clientLeft: number;
56
+ readonly clientTop: number;
57
+ readonly clientWidth: number;
58
+ readonly currentCSSZoom: number;
59
+ id: string;
60
+ innerHTML: string;
61
+ readonly localName: string;
62
+ readonly namespaceURI: string | null;
63
+ onfullscreenchange: ((this: Element, ev: Event) => any) | null;
64
+ onfullscreenerror: ((this: Element, ev: Event) => any) | null;
65
+ outerHTML: string;
66
+ readonly ownerDocument: Document;
67
+ readonly part: DOMTokenList;
68
+ readonly prefix: string | null;
69
+ readonly scrollHeight: number;
70
+ scrollLeft: number;
71
+ scrollTop: number;
72
+ readonly scrollWidth: number;
73
+ readonly shadowRoot: ShadowRoot | null;
74
+ slot: string;
75
+ readonly tagName: string;
76
+ attachShadow(init: ShadowRootInit): ShadowRoot;
77
+ checkVisibility(options?: CheckVisibilityOptions): boolean;
78
+ closest<K extends keyof HTMLElementTagNameMap>(selector: K): HTMLElementTagNameMap[K] | null;
79
+ closest<K extends keyof SVGElementTagNameMap>(selector: K): SVGElementTagNameMap[K] | null;
80
+ closest<K extends keyof MathMLElementTagNameMap>(selector: K): MathMLElementTagNameMap[K] | null;
81
+ closest<E extends Element = Element>(selectors: string): E | null;
82
+ computedStyleMap(): StylePropertyMapReadOnly;
83
+ getAttribute(qualifiedName: string): string | null;
84
+ getAttributeNS(namespace: string | null, localName: string): string | null;
85
+ getAttributeNames(): string[];
86
+ getAttributeNode(qualifiedName: string): Attr | null;
87
+ getAttributeNodeNS(namespace: string | null, localName: string): Attr | null;
88
+ getBoundingClientRect(): DOMRect;
89
+ getClientRects(): DOMRectList;
90
+ getElementsByClassName(classNames: string): HTMLCollectionOf<Element>;
91
+ getElementsByTagName<K extends keyof HTMLElementTagNameMap>(qualifiedName: K): HTMLCollectionOf<HTMLElementTagNameMap[K]>;
92
+ getElementsByTagName<K extends keyof SVGElementTagNameMap>(qualifiedName: K): HTMLCollectionOf<SVGElementTagNameMap[K]>;
93
+ getElementsByTagName<K extends keyof MathMLElementTagNameMap>(qualifiedName: K): HTMLCollectionOf<MathMLElementTagNameMap[K]>;
94
+ getElementsByTagName<K extends keyof HTMLElementDeprecatedTagNameMap>(qualifiedName: K): HTMLCollectionOf<HTMLElementDeprecatedTagNameMap[K]>;
95
+ getElementsByTagName(qualifiedName: string): HTMLCollectionOf<Element>;
96
+ getElementsByTagNameNS(namespaceURI: "http://www.w3.org/1999/xhtml", localName: string): HTMLCollectionOf<HTMLElement>;
97
+ getElementsByTagNameNS(namespaceURI: "http://www.w3.org/2000/svg", localName: string): HTMLCollectionOf<SVGElement>;
98
+ getElementsByTagNameNS(namespaceURI: "http://www.w3.org/1998/Math/MathML", localName: string): HTMLCollectionOf<MathMLElement>;
99
+ getElementsByTagNameNS(namespace: string | null, localName: string): HTMLCollectionOf<Element>;
100
+ getHTML(options?: GetHTMLOptions): string;
101
+ hasAttribute(qualifiedName: string): boolean;
102
+ hasAttributeNS(namespace: string | null, localName: string): boolean;
103
+ hasAttributes(): boolean;
104
+ hasPointerCapture(pointerId: number): boolean;
105
+ insertAdjacentElement(where: InsertPosition, element: Element): Element | null;
106
+ insertAdjacentHTML(position: InsertPosition, string: string): void;
107
+ insertAdjacentText(where: InsertPosition, data: string): void;
108
+ matches(selectors: string): boolean;
109
+ releasePointerCapture(pointerId: number): void;
110
+ removeAttribute(qualifiedName: string): void;
111
+ removeAttributeNS(namespace: string | null, localName: string): void;
112
+ removeAttributeNode(attr: Attr): Attr;
113
+ requestFullscreen(options?: FullscreenOptions): Promise<void>;
114
+ requestPointerLock(options?: PointerLockOptions): Promise<void>;
115
+ scroll(options?: ScrollToOptions): void;
116
+ scroll(x: number, y: number): void;
117
+ scrollBy(options?: ScrollToOptions): void;
118
+ scrollBy(x: number, y: number): void;
119
+ scrollIntoView(arg?: boolean | ScrollIntoViewOptions): void;
120
+ scrollTo(options?: ScrollToOptions): void;
121
+ scrollTo(x: number, y: number): void;
122
+ setAttribute(qualifiedName: string, value: string): void;
123
+ setAttributeNS(namespace: string | null, qualifiedName: string, value: string): void;
124
+ setAttributeNode(attr: Attr): Attr | null;
125
+ setAttributeNodeNS(attr: Attr): Attr | null;
126
+ setHTMLUnsafe(html: string): void;
127
+ setPointerCapture(pointerId: number): void;
128
+ toggleAttribute(qualifiedName: string, force?: boolean): boolean;
129
+ webkitMatchesSelector(selectors: string): boolean;
130
+ readonly baseURI: string;
131
+ readonly childNodes: NodeListOf<ChildNode>;
132
+ readonly firstChild: ChildNode | null;
133
+ readonly isConnected: boolean;
134
+ readonly lastChild: ChildNode | null;
135
+ readonly nextSibling: ChildNode | null;
136
+ readonly nodeName: string;
137
+ readonly nodeType: number;
138
+ nodeValue: string | null;
139
+ readonly parentElement: HTMLElement | null;
140
+ readonly parentNode: ParentNode | null;
141
+ readonly previousSibling: ChildNode | null;
142
+ textContent: string | null;
143
+ appendChild<T extends Node>(node: T): T;
144
+ cloneNode(deep?: boolean): Node;
145
+ compareDocumentPosition(other: Node): number;
146
+ contains(other: Node | null): boolean;
147
+ getRootNode(options?: GetRootNodeOptions): Node;
148
+ hasChildNodes(): boolean;
149
+ insertBefore<T extends Node>(node: T, child: Node | null): T;
150
+ isDefaultNamespace(namespace: string | null): boolean;
151
+ isEqualNode(otherNode: Node | null): boolean;
152
+ isSameNode(otherNode: Node | null): boolean;
153
+ lookupNamespaceURI(prefix: string | null): string | null;
154
+ lookupPrefix(namespace: string | null): string | null;
155
+ normalize(): void;
156
+ removeChild<T extends Node>(child: T): T;
157
+ replaceChild<T extends Node>(node: Node, child: T): T;
158
+ readonly ELEMENT_NODE: 1;
159
+ readonly ATTRIBUTE_NODE: 2;
160
+ readonly TEXT_NODE: 3;
161
+ readonly CDATA_SECTION_NODE: 4;
162
+ readonly ENTITY_REFERENCE_NODE: 5;
163
+ readonly ENTITY_NODE: 6;
164
+ readonly PROCESSING_INSTRUCTION_NODE: 7;
165
+ readonly COMMENT_NODE: 8;
166
+ readonly DOCUMENT_NODE: 9;
167
+ readonly DOCUMENT_TYPE_NODE: 10;
168
+ readonly DOCUMENT_FRAGMENT_NODE: 11;
169
+ readonly NOTATION_NODE: 12;
170
+ readonly DOCUMENT_POSITION_DISCONNECTED: 1;
171
+ readonly DOCUMENT_POSITION_PRECEDING: 2;
172
+ readonly DOCUMENT_POSITION_FOLLOWING: 4;
173
+ readonly DOCUMENT_POSITION_CONTAINS: 8;
174
+ readonly DOCUMENT_POSITION_CONTAINED_BY: 16;
175
+ readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: 32;
176
+ dispatchEvent(event: Event): boolean;
177
+ ariaAtomic: string | null;
178
+ ariaAutoComplete: string | null;
179
+ ariaBrailleLabel: string | null;
180
+ ariaBrailleRoleDescription: string | null;
181
+ ariaBusy: string | null;
182
+ ariaChecked: string | null;
183
+ ariaColCount: string | null;
184
+ ariaColIndex: string | null;
185
+ ariaColIndexText: string | null;
186
+ ariaColSpan: string | null;
187
+ ariaCurrent: string | null;
188
+ ariaDescription: string | null;
189
+ ariaDisabled: string | null;
190
+ ariaExpanded: string | null;
191
+ ariaHasPopup: string | null;
192
+ ariaHidden: string | null;
193
+ ariaInvalid: string | null;
194
+ ariaKeyShortcuts: string | null;
195
+ ariaLabel: string | null;
196
+ ariaLevel: string | null;
197
+ ariaLive: string | null;
198
+ ariaModal: string | null;
199
+ ariaMultiLine: string | null;
200
+ ariaMultiSelectable: string | null;
201
+ ariaOrientation: string | null;
202
+ ariaPlaceholder: string | null;
203
+ ariaPosInSet: string | null;
204
+ ariaPressed: string | null;
205
+ ariaReadOnly: string | null;
206
+ ariaRequired: string | null;
207
+ ariaRoleDescription: string | null;
208
+ ariaRowCount: string | null;
209
+ ariaRowIndex: string | null;
210
+ ariaRowIndexText: string | null;
211
+ ariaRowSpan: string | null;
212
+ ariaSelected: string | null;
213
+ ariaSetSize: string | null;
214
+ ariaSort: string | null;
215
+ ariaValueMax: string | null;
216
+ ariaValueMin: string | null;
217
+ ariaValueNow: string | null;
218
+ ariaValueText: string | null;
219
+ role: string | null;
220
+ animate(keyframes: Keyframe[] | PropertyIndexedKeyframes | null, options?: number | KeyframeAnimationOptions): Animation;
221
+ getAnimations(options?: GetAnimationsOptions): Animation[];
222
+ after(...nodes: (Node | string)[]): void;
223
+ before(...nodes: (Node | string)[]): void;
224
+ remove(): void;
225
+ replaceWith(...nodes: (Node | string)[]): void;
226
+ readonly nextElementSibling: Element | null;
227
+ readonly previousElementSibling: Element | null;
228
+ readonly childElementCount: number;
229
+ readonly children: HTMLCollection;
230
+ readonly firstElementChild: Element | null;
231
+ readonly lastElementChild: Element | null;
232
+ append(...nodes: (Node | string)[]): void;
233
+ prepend(...nodes: (Node | string)[]): void;
234
+ querySelector<K extends keyof HTMLElementTagNameMap>(selectors: K): HTMLElementTagNameMap[K] | null;
235
+ querySelector<K extends keyof SVGElementTagNameMap>(selectors: K): SVGElementTagNameMap[K] | null;
236
+ querySelector<K extends keyof MathMLElementTagNameMap>(selectors: K): MathMLElementTagNameMap[K] | null;
237
+ querySelector<K extends keyof HTMLElementDeprecatedTagNameMap>(selectors: K): HTMLElementDeprecatedTagNameMap[K] | null;
238
+ querySelector<E extends Element = Element>(selectors: string): E | null;
239
+ querySelectorAll<K extends keyof HTMLElementTagNameMap>(selectors: K): NodeListOf<HTMLElementTagNameMap[K]>;
240
+ querySelectorAll<K extends keyof SVGElementTagNameMap>(selectors: K): NodeListOf<SVGElementTagNameMap[K]>;
241
+ querySelectorAll<K extends keyof MathMLElementTagNameMap>(selectors: K): NodeListOf<MathMLElementTagNameMap[K]>;
242
+ querySelectorAll<K extends keyof HTMLElementDeprecatedTagNameMap>(selectors: K): NodeListOf<HTMLElementDeprecatedTagNameMap[K]>;
243
+ querySelectorAll<E extends Element = Element>(selectors: string): NodeListOf<E>;
244
+ replaceChildren(...nodes: (Node | string)[]): void;
245
+ readonly assignedSlot: HTMLSlotElement | null;
246
+ readonly attributeStyleMap: StylePropertyMap;
247
+ readonly style: CSSStyleDeclaration;
248
+ contentEditable: string;
249
+ enterKeyHint: string;
250
+ inputMode: string;
251
+ readonly isContentEditable: boolean;
252
+ onabort: ((this: GlobalEventHandlers, ev: UIEvent) => any) | null;
253
+ onanimationcancel: ((this: GlobalEventHandlers, ev: AnimationEvent) => any) | null;
254
+ onanimationend: ((this: GlobalEventHandlers, ev: AnimationEvent) => any) | null;
255
+ onanimationiteration: ((this: GlobalEventHandlers, ev: AnimationEvent) => any) | null;
256
+ onanimationstart: ((this: GlobalEventHandlers, ev: AnimationEvent) => any) | null;
257
+ onauxclick: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;
258
+ onbeforeinput: ((this: GlobalEventHandlers, ev: InputEvent) => any) | null;
259
+ onbeforetoggle: ((this: GlobalEventHandlers, ev: Event) => any) | null;
260
+ onblur: ((this: GlobalEventHandlers, ev: FocusEvent) => any) | null;
261
+ oncancel: ((this: GlobalEventHandlers, ev: Event) => any) | null;
262
+ oncanplay: ((this: GlobalEventHandlers, ev: Event) => any) | null;
263
+ oncanplaythrough: ((this: GlobalEventHandlers, ev: Event) => any) | null;
264
+ onchange: ((this: GlobalEventHandlers, ev: Event) => any) | null;
265
+ onclick: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;
266
+ onclose: ((this: GlobalEventHandlers, ev: Event) => any) | null;
267
+ oncontextlost: ((this: GlobalEventHandlers, ev: Event) => any) | null;
268
+ oncontextmenu: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;
269
+ oncontextrestored: ((this: GlobalEventHandlers, ev: Event) => any) | null;
270
+ oncopy: ((this: GlobalEventHandlers, ev: ClipboardEvent) => any) | null;
271
+ oncuechange: ((this: GlobalEventHandlers, ev: Event) => any) | null;
272
+ oncut: ((this: GlobalEventHandlers, ev: ClipboardEvent) => any) | null;
273
+ ondblclick: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;
274
+ ondrag: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null;
275
+ ondragend: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null;
276
+ ondragenter: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null;
277
+ ondragleave: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null;
278
+ ondragover: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null;
279
+ ondragstart: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null;
280
+ ondrop: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null;
281
+ ondurationchange: ((this: GlobalEventHandlers, ev: Event) => any) | null;
282
+ onemptied: ((this: GlobalEventHandlers, ev: Event) => any) | null;
283
+ onended: ((this: GlobalEventHandlers, ev: Event) => any) | null;
284
+ onerror: OnErrorEventHandler;
285
+ onfocus: ((this: GlobalEventHandlers, ev: FocusEvent) => any) | null;
286
+ onformdata: ((this: GlobalEventHandlers, ev: FormDataEvent) => any) | null;
287
+ ongotpointercapture: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
288
+ oninput: ((this: GlobalEventHandlers, ev: Event) => any) | null;
289
+ oninvalid: ((this: GlobalEventHandlers, ev: Event) => any) | null;
290
+ onkeydown: ((this: GlobalEventHandlers, ev: KeyboardEvent) => any) | null;
291
+ onkeypress: ((this: GlobalEventHandlers, ev: KeyboardEvent) => any) | null;
292
+ onkeyup: ((this: GlobalEventHandlers, ev: KeyboardEvent) => any) | null;
293
+ onload: ((this: GlobalEventHandlers, ev: Event) => any) | null;
294
+ onloadeddata: ((this: GlobalEventHandlers, ev: Event) => any) | null;
295
+ onloadedmetadata: ((this: GlobalEventHandlers, ev: Event) => any) | null;
296
+ onloadstart: ((this: GlobalEventHandlers, ev: Event) => any) | null;
297
+ onlostpointercapture: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
298
+ onmousedown: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;
299
+ onmouseenter: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;
300
+ onmouseleave: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;
301
+ onmousemove: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;
302
+ onmouseout: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;
303
+ onmouseover: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;
304
+ onmouseup: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;
305
+ onpaste: ((this: GlobalEventHandlers, ev: ClipboardEvent) => any) | null;
306
+ onpause: ((this: GlobalEventHandlers, ev: Event) => any) | null;
307
+ onplay: ((this: GlobalEventHandlers, ev: Event) => any) | null;
308
+ onplaying: ((this: GlobalEventHandlers, ev: Event) => any) | null;
309
+ onpointercancel: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
310
+ onpointerdown: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
311
+ onpointerenter: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
312
+ onpointerleave: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
313
+ onpointermove: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
314
+ onpointerout: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
315
+ onpointerover: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
316
+ onpointerup: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
317
+ onprogress: ((this: GlobalEventHandlers, ev: ProgressEvent) => any) | null;
318
+ onratechange: ((this: GlobalEventHandlers, ev: Event) => any) | null;
319
+ onreset: ((this: GlobalEventHandlers, ev: Event) => any) | null;
320
+ onresize: ((this: GlobalEventHandlers, ev: UIEvent) => any) | null;
321
+ onscroll: ((this: GlobalEventHandlers, ev: Event) => any) | null;
322
+ onscrollend: ((this: GlobalEventHandlers, ev: Event) => any) | null;
323
+ onsecuritypolicyviolation: ((this: GlobalEventHandlers, ev: SecurityPolicyViolationEvent) => any) | null;
324
+ onseeked: ((this: GlobalEventHandlers, ev: Event) => any) | null;
325
+ onseeking: ((this: GlobalEventHandlers, ev: Event) => any) | null;
326
+ onselect: ((this: GlobalEventHandlers, ev: Event) => any) | null;
327
+ onselectionchange: ((this: GlobalEventHandlers, ev: Event) => any) | null;
328
+ onselectstart: ((this: GlobalEventHandlers, ev: Event) => any) | null;
329
+ onslotchange: ((this: GlobalEventHandlers, ev: Event) => any) | null;
330
+ onstalled: ((this: GlobalEventHandlers, ev: Event) => any) | null;
331
+ onsubmit: ((this: GlobalEventHandlers, ev: SubmitEvent) => any) | null;
332
+ onsuspend: ((this: GlobalEventHandlers, ev: Event) => any) | null;
333
+ ontimeupdate: ((this: GlobalEventHandlers, ev: Event) => any) | null;
334
+ ontoggle: ((this: GlobalEventHandlers, ev: Event) => any) | null;
335
+ ontouchcancel?: ((this: GlobalEventHandlers, ev: TouchEvent) => any) | null | undefined;
336
+ ontouchend?: ((this: GlobalEventHandlers, ev: TouchEvent) => any) | null | undefined;
337
+ ontouchmove?: ((this: GlobalEventHandlers, ev: TouchEvent) => any) | null | undefined;
338
+ ontouchstart?: ((this: GlobalEventHandlers, ev: TouchEvent) => any) | null | undefined;
339
+ ontransitioncancel: ((this: GlobalEventHandlers, ev: TransitionEvent) => any) | null;
340
+ ontransitionend: ((this: GlobalEventHandlers, ev: TransitionEvent) => any) | null;
341
+ ontransitionrun: ((this: GlobalEventHandlers, ev: TransitionEvent) => any) | null;
342
+ ontransitionstart: ((this: GlobalEventHandlers, ev: TransitionEvent) => any) | null;
343
+ onvolumechange: ((this: GlobalEventHandlers, ev: Event) => any) | null;
344
+ onwaiting: ((this: GlobalEventHandlers, ev: Event) => any) | null;
345
+ onwebkitanimationend: ((this: GlobalEventHandlers, ev: Event) => any) | null;
346
+ onwebkitanimationiteration: ((this: GlobalEventHandlers, ev: Event) => any) | null;
347
+ onwebkitanimationstart: ((this: GlobalEventHandlers, ev: Event) => any) | null;
348
+ onwebkittransitionend: ((this: GlobalEventHandlers, ev: Event) => any) | null;
349
+ onwheel: ((this: GlobalEventHandlers, ev: WheelEvent) => any) | null;
350
+ autofocus: boolean;
351
+ readonly dataset: DOMStringMap;
352
+ nonce?: string;
353
+ tabIndex: number;
354
+ blur(): void;
355
+ focus(options?: FocusOptions): void;
356
+ };
357
+ _hostListeners: {
358
+ [listenerName: string]: {
359
+ [type: string]: {
360
+ options?: boolean | AddEventListenerOptions;
361
+ };
362
+ };
363
+ };
364
+ } & typeof LitElement;
365
+ /**
366
+ * Combo button.
367
+ * @element cds-combo-button
368
+ */
369
+ declare class CDSComboButton extends CDSComboButton_base {
370
+ private _menuController;
371
+ _triggerNode: CDSButton;
372
+ _menuNode: CDSMenu;
373
+ private _open;
374
+ /**
375
+ * Specify whether the ComboButton should be disabled, or not.
376
+ */
377
+ disabled?: any;
378
+ /**
379
+ * Provide the label to be rendered on the primary action button.
380
+ */
381
+ label: string;
382
+ /**
383
+ * Experimental property. Specify how the menu should align with the button element
384
+ */
385
+ menuAlignment: POPOVER_ALIGNMENT;
386
+ /**
387
+ * Provide an optional function to be called when the primary action element is clicked.
388
+ */
389
+ onClick?: (event: Event) => void;
390
+ /**
391
+ * Specify the size of the button and menu.
392
+ */
393
+ size: COMBO_BUTTON_SIZE;
394
+ /**
395
+ * Specify how the trigger tooltip should be aligned.
396
+ */
397
+ tooltipAlignment: ICON_BUTTON_TOOLTIP_ALIGNMENT;
398
+ /**
399
+ * Provide the tooltip content for the icon button.
400
+ */
401
+ tooltipContent: string;
402
+ private _handleClick;
403
+ private _handleBlur;
404
+ updated(changedProperties: any): void;
405
+ render(): import("lit-html").TemplateResult<1>;
406
+ static styles: any;
407
+ }
408
+ export default CDSComboButton;
@@ -0,0 +1,170 @@
1
+ /**
2
+ * Copyright IBM Corp. 2024
3
+ *
4
+ * This source code is licensed under the Apache-2.0 license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+
8
+ import { __decorate } from 'tslib';
9
+ import { html, LitElement } from 'lit';
10
+ import { query, property } from 'lit/decorators.js';
11
+ import { prefix } from '../../globals/settings.js';
12
+ import HostListener from '../../globals/decorators/host-listener.js';
13
+ import HostListenerMixin from '../../globals/mixins/host-listener.js';
14
+ import { carbonElement } from '../../globals/decorators/carbon-element.js';
15
+ import styles from './combo-button.scss.js';
16
+ import '../button/button.js';
17
+ import '../button/button-set.js';
18
+ import '../button/button-skeleton.js';
19
+ import '../menu/menu.js';
20
+ import '../menu/menu-item.js';
21
+ import '../menu/menu-item-divider.js';
22
+ import '../menu/menu-item-group.js';
23
+ import '../menu/menu-item-selectable.js';
24
+ import '../menu/menu-item-radio-group.js';
25
+ import '../icon-button/icon-button.js';
26
+ import ChevronDown16 from '../../icons/chevron--down/16.js';
27
+ import { COMBO_BUTTON_SIZE } from './defs.js';
28
+ export { COMBO_BUTTON_SIZE, COMBO_BUTTON_TOOLTIP_ALIGNMENT } from './defs.js';
29
+ import { POPOVER_ALIGNMENT } from '../popover/defs.js';
30
+ import { ICON_BUTTON_TOOLTIP_ALIGNMENT } from '../icon-button/defs.js';
31
+ import FloatingController from '../../globals/controllers/floating-controller.js';
32
+
33
+ /**
34
+ * Copyright IBM Corp. 2025, 2025
35
+ *
36
+ * This source code is licensed under the Apache-2.0 license found in the
37
+ * LICENSE file in the root directory of this source tree.
38
+ */
39
+ /**
40
+ * Combo button.
41
+ * @element cds-combo-button
42
+ */
43
+ let CDSComboButton = class CDSComboButton extends HostListenerMixin(LitElement) {
44
+ constructor() {
45
+ super(...arguments);
46
+ this._menuController = new FloatingController(this);
47
+ this._open = false;
48
+ /**
49
+ * Experimental property. Specify how the menu should align with the button element
50
+ */
51
+ this.menuAlignment = POPOVER_ALIGNMENT.TOP;
52
+ /**
53
+ * Specify the size of the button and menu.
54
+ */
55
+ this.size = COMBO_BUTTON_SIZE.LARGE;
56
+ /**
57
+ * Specify how the trigger tooltip should be aligned.
58
+ */
59
+ this.tooltipAlignment = ICON_BUTTON_TOOLTIP_ALIGNMENT.TOP;
60
+ /**
61
+ * Provide the tooltip content for the icon button.
62
+ */
63
+ this.tooltipContent = 'Additional actions';
64
+ this._handleClick = (event) => {
65
+ var _a;
66
+ const path = event.composedPath();
67
+ if (path.includes(this._triggerNode)) {
68
+ this._open = !this._open;
69
+ }
70
+ else if (this._open) {
71
+ this._open = false;
72
+ }
73
+ if (event.target.tagName === 'CDS-MENU-ITEM') {
74
+ (_a = this.onClick) === null || _a === void 0 ? void 0 : _a.call(this, event);
75
+ }
76
+ };
77
+ this._handleBlur = ({ relatedTarget }) => {
78
+ // Close the menu if the focus moves outside the menu button or menu
79
+ if (!this.contains(relatedTarget)) {
80
+ this._open = false;
81
+ }
82
+ };
83
+ }
84
+ updated(changedProperties) {
85
+ const menu = this.querySelector(`${prefix}-menu`);
86
+ if (changedProperties.has('_open') ||
87
+ changedProperties.has('menuAlignment')) {
88
+ this.updateComplete.then(() => {
89
+ var _a;
90
+ const styleElement = (_a = menu.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector(`.${prefix}--menu`);
91
+ menu.open = this._open;
92
+ this._menuController.setPlacement({
93
+ trigger: this,
94
+ target: menu,
95
+ alignment: this.menuAlignment,
96
+ styleElement,
97
+ matchWidth: true,
98
+ open: this._open,
99
+ });
100
+ });
101
+ }
102
+ if (changedProperties.has('size')) {
103
+ menu.setAttribute('size', this.size);
104
+ }
105
+ }
106
+ render() {
107
+ const { size, disabled, label, tooltipAlignment, menuAlignment, onClick } = this;
108
+ return html `
109
+ <cds-button size=${size} ?disabled=${disabled} @click=${onClick}>
110
+ ${label}
111
+ </cds-button>
112
+ <cds-icon-button
113
+ size=${size}
114
+ ?disabled=${disabled}
115
+ align=${tooltipAlignment}
116
+ menu-alignment=${menuAlignment}
117
+ part="trigger">
118
+ ${ChevronDown16({ slot: 'icon' })}
119
+ <span slot="tooltip-content">${this.tooltipContent}</span>
120
+ </cds-icon-button>
121
+ <slot></slot>
122
+ `;
123
+ }
124
+ };
125
+ CDSComboButton.styles = styles;
126
+ __decorate([
127
+ query(`${prefix}-icon-button`)
128
+ ], CDSComboButton.prototype, "_triggerNode", void 0);
129
+ __decorate([
130
+ query(`${prefix}-menu`)
131
+ ], CDSComboButton.prototype, "_menuNode", void 0);
132
+ __decorate([
133
+ property({ type: Boolean, reflect: true })
134
+ ], CDSComboButton.prototype, "_open", void 0);
135
+ __decorate([
136
+ property({ type: Boolean, reflect: true })
137
+ ], CDSComboButton.prototype, "disabled", void 0);
138
+ __decorate([
139
+ property()
140
+ ], CDSComboButton.prototype, "label", void 0);
141
+ __decorate([
142
+ property({ reflect: true, type: String, attribute: 'menu-alignment' })
143
+ ], CDSComboButton.prototype, "menuAlignment", void 0);
144
+ __decorate([
145
+ property({ type: Function })
146
+ ], CDSComboButton.prototype, "onClick", void 0);
147
+ __decorate([
148
+ property({ type: COMBO_BUTTON_SIZE, reflect: true })
149
+ ], CDSComboButton.prototype, "size", void 0);
150
+ __decorate([
151
+ property({ reflect: true, attribute: 'tooltip-alignment' })
152
+ ], CDSComboButton.prototype, "tooltipAlignment", void 0);
153
+ __decorate([
154
+ property({ type: String, attribute: 'tooltip-content' })
155
+ ], CDSComboButton.prototype, "tooltipContent", void 0);
156
+ __decorate([
157
+ HostListener('click')
158
+ // @ts-ignore: The decorator refers to this method but TS thinks this method is not referred to
159
+ ], CDSComboButton.prototype, "_handleClick", void 0);
160
+ __decorate([
161
+ HostListener('focusout')
162
+ // @ts-ignore: The decorator refers to this method but TS thinks this method is not referred to
163
+ ], CDSComboButton.prototype, "_handleBlur", void 0);
164
+ CDSComboButton = __decorate([
165
+ carbonElement(`${prefix}-combo-button`)
166
+ ], CDSComboButton);
167
+ var CDSComboButton$1 = CDSComboButton;
168
+
169
+ export { CDSComboButton$1 as default };
170
+ //# sourceMappingURL=combo-button.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"combo-button.js","sources":["../../../src/components/combo-button/combo-button.ts"],"sourcesContent":[null],"names":["FloatingUIController","customElement"],"mappings":"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"}