@carbon/web-components 2.10.0 → 2.11.0-rc.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 (531) hide show
  1. package/dist/{16-c82d5cfd.js → 16-486ace1a.js} +6 -6
  2. package/dist/{16-86616f6a.js → 16-51a594ce.js} +6 -6
  3. package/dist/16-656090c0.js +73 -0
  4. package/dist/{16-9bfd003b.js → 16-71872213.js} +6 -6
  5. package/dist/{16-e3da4022.js → 16-730a41a2.js} +6 -6
  6. package/dist/{16-6f99b9d8.js → 16-83a1cd89.js} +6 -6
  7. package/dist/{16-b507d4ba.js → 16-b73c677b.js} +6 -6
  8. package/dist/{16-3e28b02c.js → 16-d1c73001.js} +6 -6
  9. package/dist/{16-8688d7b7.js → 20-d069d8da.js} +6 -6
  10. package/dist/accordion.min.js +12 -12
  11. package/dist/ai-skeleton.min.js +6 -6
  12. package/dist/breadcrumb.min.js +6 -6
  13. package/dist/{button-690db41b.js → button-21c75bab.js} +6 -6
  14. package/dist/{button-set-4d1a3543.js → button-set-69863a24.js} +6 -6
  15. package/dist/{button-skeleton-efe28069.js → button-skeleton-1abc1fd8.js} +7 -7
  16. package/dist/button.min.js +6 -6
  17. package/dist/carbon-element-4ca9803f.js +5 -5
  18. package/dist/chat-button.min.js +6 -6
  19. package/dist/checkbox-d0a3a79f.js +109 -0
  20. package/dist/checkbox.min.js +6 -6
  21. package/dist/{class-map-40d6e892.js → class-map-5edb95da.js} +7 -7
  22. package/dist/code-snippet.min.js +14 -14
  23. package/dist/collection-helpers-4e32fe16.js +5 -5
  24. package/dist/combo-box.min.js +6 -6
  25. package/dist/{content-switcher-item-557f043e.js → content-switcher-item-5b8dd42f.js} +6 -6
  26. package/dist/content-switcher.min.js +6 -6
  27. package/dist/{copy-button-77c9a2be.js → copy-button-0cfa83bd.js} +6 -6
  28. package/dist/copy-button.min.js +6 -6
  29. package/dist/custom-element-975be15f.js +5 -5
  30. package/dist/data-table.min.js +8 -8
  31. package/dist/date-picker.min.js +6 -6
  32. package/dist/{defineProperty-1c81c535.js → defineProperty-e448b551.js} +6 -6
  33. package/dist/directive-e2d48b9c.js +5 -5
  34. package/dist/dropdown-item-91b3dc95.js +148 -0
  35. package/dist/dropdown.min.js +6 -6
  36. package/dist/file-uploader.min.js +6 -6
  37. package/dist/{floating-menu-ee49fedd.js → floating-menu-46199beb.js} +7 -7
  38. package/dist/floating-menu.min.js +6 -6
  39. package/dist/{focus-28af17cd.js → focus-e70d1cbe.js} +7 -7
  40. package/dist/form-group.min.js +6 -6
  41. package/dist/form.min.js +6 -6
  42. package/dist/{get-d229c408.js → get-52a048b1.js} +6 -6
  43. package/dist/{host-listener-1093b8af.js → host-listener-b6a3d690.js} +7 -7
  44. package/dist/{icon-button-8c199f5d.js → icon-button-37322eeb.js} +6 -6
  45. package/dist/icon-button.min.js +6 -6
  46. package/dist/{if-defined-87ba0c08.js → if-defined-2e09d22b.js} +6 -6
  47. package/dist/{if-non-empty-a1c6e0fe.js → if-non-empty-20ce3c96.js} +7 -7
  48. package/dist/inline-loading.min.js +6 -6
  49. package/dist/{layer-c557b485.js → layer-0633200a.js} +6 -6
  50. package/dist/layer.min.js +6 -6
  51. package/dist/{link-49d03ffa.js → link-dc6f9b4e.js} +9 -9
  52. package/dist/link.min.js +6 -6
  53. package/dist/list.min.js +6 -6
  54. package/dist/{loading-358d36a7.js → loading-2604f4ad.js} +6 -6
  55. package/dist/{loading-icon-4d90d624.js → loading-icon-85b7e502.js} +8 -8
  56. package/dist/loading.min.js +6 -6
  57. package/dist/{modal-label-f7bb6b21.js → modal-label-d53c98de.js} +10 -10
  58. package/dist/modal.min.js +6 -6
  59. package/dist/multi-select.min.js +9 -9
  60. package/dist/notification.min.js +14 -14
  61. package/dist/number-input.min.js +6 -6
  62. package/dist/{objectSpread2-97102dd8.js → objectSpread2-46e4de7a.js} +6 -6
  63. package/dist/on-6c264d49.js +5 -5
  64. package/dist/overflow-menu.min.js +6 -6
  65. package/dist/pagination.min.js +6 -6
  66. package/dist/{popover-content-2a2998fe.js → popover-content-11101167.js} +6 -6
  67. package/dist/popover-controller-cc6ccb74.js +73 -0
  68. package/dist/popover.min.js +6 -6
  69. package/dist/progress-bar.min.js +6 -6
  70. package/dist/progress-indicator.min.js +6 -6
  71. package/dist/query-5f833318.js +5 -5
  72. package/dist/query-assigned-elements-73bd2544.js +5 -5
  73. package/dist/radio-button.min.js +6 -6
  74. package/dist/{radio-group-manager-aa09b989.js → radio-group-manager-de7f9ab3.js} +6 -6
  75. package/dist/{search-d48abba3.js → search-1b5a2d87.js} +6 -6
  76. package/dist/search.min.js +6 -6
  77. package/dist/{select-item-ddced627.js → select-item-4ebf72a0.js} +6 -6
  78. package/dist/select.min.js +15 -15
  79. package/dist/{settings-2211e02a.js → settings-97cd1c3a.js} +6 -6
  80. package/dist/shared-enums-c6fe8c39.js +5 -5
  81. package/dist/side-panel.min.js +7 -7
  82. package/dist/{skeleton-icon-0f8941b3.js → skeleton-icon-bfc7d5c8.js} +6 -6
  83. package/dist/skeleton-icon.min.js +6 -6
  84. package/dist/{skeleton-placeholder-80d37e68.js → skeleton-placeholder-403f26a3.js} +6 -6
  85. package/dist/skeleton-placeholder.min.js +6 -6
  86. package/dist/{skeleton-text-2f44cf41.js → skeleton-text-9d02604f.js} +6 -6
  87. package/dist/skeleton-text.min.js +6 -6
  88. package/dist/skip-to-content.min.js +7 -7
  89. package/dist/slider.min.js +6 -6
  90. package/dist/slug.min.js +6 -6
  91. package/dist/{spread-c0d6f8ee.js → spread-d515f3f1.js} +7 -7
  92. package/dist/stack.min.js +6 -6
  93. package/dist/state-ddd29b9d.js +5 -5
  94. package/dist/structured-list.min.js +9 -9
  95. package/dist/tabs.min.js +7 -7
  96. package/dist/tag.min.js +9 -9
  97. package/dist/tearsheet.min.js +9 -9
  98. package/dist/{text-input-06f2796d.js → text-input-672028f4.js} +6 -6
  99. package/dist/text-input.min.js +6 -6
  100. package/dist/textarea.min.js +10 -10
  101. package/dist/tile.min.js +6 -6
  102. package/dist/toggle-tip.min.js +6 -6
  103. package/dist/toggle.min.js +6 -6
  104. package/dist/{toggletip-586fce1e.js → toggletip-b1b58c28.js} +7 -7
  105. package/dist/{tooltip-content-7e00430f.js → tooltip-content-51c6ffbc.js} +6 -6
  106. package/dist/tooltip.min.js +6 -6
  107. package/dist/ui-shell.min.js +19 -19
  108. package/dist/validity-d86ffa4f.js +5 -5
  109. package/es/components/accordion/accordion-item-skeleton.js.map +1 -1
  110. package/es/components/accordion/accordion-item.d.ts +47 -44
  111. package/es/components/accordion/accordion-item.js.map +1 -1
  112. package/es/components/accordion/accordion-skeleton.js.map +1 -1
  113. package/es/components/accordion/accordion.css.js +1 -1
  114. package/es/components/accordion/accordion.js.map +1 -1
  115. package/es/components/ai-skeleton/ai-skeleton-icon.js.map +1 -1
  116. package/es/components/ai-skeleton/ai-skeleton-placeholder.js.map +1 -1
  117. package/es/components/ai-skeleton/ai-skeleton-text.js.map +1 -1
  118. package/es/components/breadcrumb/breadcrumb-item.js.map +1 -1
  119. package/es/components/breadcrumb/breadcrumb-link.js.map +1 -1
  120. package/es/components/breadcrumb/breadcrumb-overflow-menu.js.map +1 -1
  121. package/es/components/breadcrumb/breadcrumb-skeleton.js.map +1 -1
  122. package/es/components/breadcrumb/breadcrumb.js.map +1 -1
  123. package/es/components/button/button-set-base.js.map +1 -1
  124. package/es/components/button/button-set.js.map +1 -1
  125. package/es/components/button/button-skeleton.js.map +1 -1
  126. package/es/components/button/button.d.ts +99 -92
  127. package/es/components/button/button.js.map +1 -1
  128. package/es/components/chat-button/chat-button-skeleton.js.map +1 -1
  129. package/es/components/chat-button/chat-button.js.map +1 -1
  130. package/es/components/checkbox/checkbox-group.d.ts +2 -1
  131. package/es/components/checkbox/checkbox-group.js.map +1 -1
  132. package/es/components/checkbox/checkbox-skeleton.js.map +1 -1
  133. package/es/components/checkbox/checkbox.css.js +1 -1
  134. package/es/components/checkbox/checkbox.d.ts +97 -90
  135. package/es/components/checkbox/checkbox.js.map +1 -1
  136. package/es/components/code-snippet/code-snippet-skeleton.js.map +1 -1
  137. package/es/components/code-snippet/code-snippet.d.ts +49 -45
  138. package/es/components/code-snippet/code-snippet.js.map +1 -1
  139. package/es/components/combo-box/combo-box-item.js.map +1 -1
  140. package/es/components/combo-box/combo-box.css.js +1 -1
  141. package/es/components/combo-box/combo-box.js.map +1 -1
  142. package/es/components/content-switcher/content-switcher-item.d.ts +49 -45
  143. package/es/components/content-switcher/content-switcher-item.js.map +1 -1
  144. package/es/components/content-switcher/content-switcher.js.map +1 -1
  145. package/es/components/copy/copy.js.map +1 -1
  146. package/es/components/copy-button/copy-button.d.ts +47 -44
  147. package/es/components/copy-button/copy-button.js.map +1 -1
  148. package/es/components/data-table/data-table.css.js +1 -1
  149. package/es/components/data-table/table-batch-actions.js.map +1 -1
  150. package/es/components/data-table/table-body.js.map +1 -1
  151. package/es/components/data-table/table-cell-content.js.map +1 -1
  152. package/es/components/data-table/table-cell.js.map +1 -1
  153. package/es/components/data-table/table-expanded-row.d.ts +49 -46
  154. package/es/components/data-table/table-expanded-row.js.map +1 -1
  155. package/es/components/data-table/table-head.js.map +1 -1
  156. package/es/components/data-table/table-header-cell.d.ts +49 -45
  157. package/es/components/data-table/table-header-cell.js.map +1 -1
  158. package/es/components/data-table/table-header-description.js.map +1 -1
  159. package/es/components/data-table/table-header-row.js.map +1 -1
  160. package/es/components/data-table/table-header-title.js.map +1 -1
  161. package/es/components/data-table/table-row.d.ts +97 -91
  162. package/es/components/data-table/table-row.js.map +1 -1
  163. package/es/components/data-table/table-skeleton.js.map +1 -1
  164. package/es/components/data-table/table-toolbar-content.js.map +1 -1
  165. package/es/components/data-table/table-toolbar-search.d.ts +51 -47
  166. package/es/components/data-table/table-toolbar-search.js.map +1 -1
  167. package/es/components/data-table/table-toolbar.js.map +1 -1
  168. package/es/components/data-table/table.d.ts +49 -46
  169. package/es/components/data-table/table.js.map +1 -1
  170. package/es/components/date-picker/append-to-plugin.js.map +1 -1
  171. package/es/components/date-picker/date-picker-input-skeleton.js.map +1 -1
  172. package/es/components/date-picker/date-picker-input.d.ts +49 -45
  173. package/es/components/date-picker/date-picker-input.js.map +1 -1
  174. package/es/components/date-picker/date-picker.d.ts +98 -92
  175. package/es/components/date-picker/date-picker.js.map +1 -1
  176. package/es/components/dropdown/dropdown-item.js.map +1 -1
  177. package/es/components/dropdown/dropdown-skeleton.js.map +1 -1
  178. package/es/components/dropdown/dropdown.css.js +1 -1
  179. package/es/components/dropdown/dropdown.d.ts +196 -183
  180. package/es/components/dropdown/dropdown.js.map +1 -1
  181. package/es/components/file-uploader/demo-file-uploader.js.map +1 -1
  182. package/es/components/file-uploader/file-uploader-button.d.ts +49 -46
  183. package/es/components/file-uploader/file-uploader-button.js.map +1 -1
  184. package/es/components/file-uploader/file-uploader-drop-container.d.ts +49 -46
  185. package/es/components/file-uploader/file-uploader-drop-container.js.map +1 -1
  186. package/es/components/file-uploader/file-uploader-item.js.map +1 -1
  187. package/es/components/file-uploader/file-uploader-skeleton.js.map +1 -1
  188. package/es/components/file-uploader/file-uploader.js.map +1 -1
  189. package/es/components/floating-menu/floating-menu.d.ts +100 -93
  190. package/es/components/floating-menu/floating-menu.js.map +1 -1
  191. package/es/components/form/form-item.js.map +1 -1
  192. package/es/components/form-group/form-group.js.map +1 -1
  193. package/es/components/icon-button/icon-button.js.map +1 -1
  194. package/es/components/inline-loading/inline-loading.js.map +1 -1
  195. package/es/components/layer/layer.js.map +1 -1
  196. package/es/components/link/link.d.ts +49 -45
  197. package/es/components/link/link.js.map +1 -1
  198. package/es/components/list/list-item.js.map +1 -1
  199. package/es/components/list/ordered-list.js.map +1 -1
  200. package/es/components/list/unordered-list.js.map +1 -1
  201. package/es/components/loading/loading-icon.js.map +1 -1
  202. package/es/components/loading/loading.js.map +1 -1
  203. package/es/components/modal/modal-body-content.js.map +1 -1
  204. package/es/components/modal/modal-body.js.map +1 -1
  205. package/es/components/modal/modal-close-button.d.ts +49 -45
  206. package/es/components/modal/modal-close-button.js.map +1 -1
  207. package/es/components/modal/modal-footer-button.js.map +1 -1
  208. package/es/components/modal/modal-footer.js.map +1 -1
  209. package/es/components/modal/modal-header.js.map +1 -1
  210. package/es/components/modal/modal-heading.js.map +1 -1
  211. package/es/components/modal/modal-label.js.map +1 -1
  212. package/es/components/modal/modal.css.js +1 -1
  213. package/es/components/modal/modal.d.ts +49 -46
  214. package/es/components/modal/modal.js.map +1 -1
  215. package/es/components/multi-select/multi-select-item.js.map +1 -1
  216. package/es/components/multi-select/multi-select.css.js +1 -1
  217. package/es/components/multi-select/multi-select.js.map +1 -1
  218. package/es/components/notification/actionable-notification-button.js.map +1 -1
  219. package/es/components/notification/actionable-notification.d.ts +49 -46
  220. package/es/components/notification/actionable-notification.js.map +1 -1
  221. package/es/components/notification/inline-notification.d.ts +47 -44
  222. package/es/components/notification/inline-notification.js.map +1 -1
  223. package/es/components/notification/toast-notification.js.map +1 -1
  224. package/es/components/number-input/number-input-skeleton.js.map +1 -1
  225. package/es/components/number-input/number-input.d.ts +2 -1
  226. package/es/components/number-input/number-input.js.map +1 -1
  227. package/es/components/overflow-menu/overflow-menu-body.js.map +1 -1
  228. package/es/components/overflow-menu/overflow-menu-item.d.ts +49 -45
  229. package/es/components/overflow-menu/overflow-menu-item.js.map +1 -1
  230. package/es/components/overflow-menu/overflow-menu.d.ts +97 -91
  231. package/es/components/overflow-menu/overflow-menu.js.map +1 -1
  232. package/es/components/pagination/pagination.d.ts +98 -91
  233. package/es/components/pagination/pagination.js.map +1 -1
  234. package/es/components/popover/popover-content.js.map +1 -1
  235. package/es/components/popover/popover.js.map +1 -1
  236. package/es/components/progress-bar/progress-bar.js.map +1 -1
  237. package/es/components/progress-indicator/progress-indicator-skeleton.js.map +1 -1
  238. package/es/components/progress-indicator/progress-indicator.js.map +1 -1
  239. package/es/components/progress-indicator/progress-step-skeleton.js.map +1 -1
  240. package/es/components/progress-indicator/progress-step.d.ts +49 -45
  241. package/es/components/progress-indicator/progress-step.js.map +1 -1
  242. package/es/components/radio-button/radio-button-group.d.ts +98 -92
  243. package/es/components/radio-button/radio-button-group.js.map +1 -1
  244. package/es/components/radio-button/radio-button-skeleton.js.map +1 -1
  245. package/es/components/radio-button/radio-button.d.ts +99 -92
  246. package/es/components/radio-button/radio-button.js.map +1 -1
  247. package/es/components/search/search-skeleton.js.map +1 -1
  248. package/es/components/search/search.d.ts +148 -138
  249. package/es/components/search/search.js.map +1 -1
  250. package/es/components/select/select-item-group.js.map +1 -1
  251. package/es/components/select/select-item.js.map +1 -1
  252. package/es/components/select/select-skeleton.js.map +1 -1
  253. package/es/components/select/select.d.ts +51 -47
  254. package/es/components/select/select.js.map +1 -1
  255. package/es/components/side-panel/side-panel.css.js +1 -1
  256. package/es/components/side-panel/side-panel.d.ts +49 -46
  257. package/es/components/side-panel/side-panel.js.map +1 -1
  258. package/es/components/skeleton-icon/skeleton-icon.js.map +1 -1
  259. package/es/components/skeleton-placeholder/skeleton-placeholder.js.map +1 -1
  260. package/es/components/skeleton-text/skeleton-text.js.map +1 -1
  261. package/es/components/skip-to-content/skip-to-content.d.ts +49 -45
  262. package/es/components/skip-to-content/skip-to-content.js.map +1 -1
  263. package/es/components/slider/slider-input.d.ts +49 -45
  264. package/es/components/slider/slider-input.js.map +1 -1
  265. package/es/components/slider/slider-skeleton.js.map +1 -1
  266. package/es/components/slider/slider.d.ts +148 -138
  267. package/es/components/slider/slider.js.map +1 -1
  268. package/es/components/slug/slug-action-button.js.map +1 -1
  269. package/es/components/slug/slug.css.js +1 -1
  270. package/es/components/slug/slug.js.map +1 -1
  271. package/es/components/stack/stack.js.map +1 -1
  272. package/es/components/structured-list/structured-list-body.js.map +1 -1
  273. package/es/components/structured-list/structured-list-cell.js.map +1 -1
  274. package/es/components/structured-list/structured-list-head.js.map +1 -1
  275. package/es/components/structured-list/structured-list-header-cell-skeleton.js.map +1 -1
  276. package/es/components/structured-list/structured-list-header-cell.js.map +1 -1
  277. package/es/components/structured-list/structured-list-header-row.js.map +1 -1
  278. package/es/components/structured-list/structured-list-row.d.ts +49 -46
  279. package/es/components/structured-list/structured-list-row.js.map +1 -1
  280. package/es/components/structured-list/structured-list.css.js +1 -1
  281. package/es/components/structured-list/structured-list.d.ts +49 -45
  282. package/es/components/structured-list/structured-list.js.map +1 -1
  283. package/es/components/tabs/tab-skeleton.js.map +1 -1
  284. package/es/components/tabs/tab.js.map +1 -1
  285. package/es/components/tabs/tabs-skeleton.js.map +1 -1
  286. package/es/components/tabs/tabs.css.js +1 -1
  287. package/es/components/tabs/tabs.d.ts +49 -46
  288. package/es/components/tabs/tabs.js.map +1 -1
  289. package/es/components/tag/tag.css.js +1 -1
  290. package/es/components/tag/tag.d.ts +97 -91
  291. package/es/components/tag/tag.js.map +1 -1
  292. package/es/components/tearsheet/tearsheet.css.js +1 -1
  293. package/es/components/tearsheet/tearsheet.d.ts +49 -46
  294. package/es/components/tearsheet/tearsheet.js.map +1 -1
  295. package/es/components/text-input/text-input-skeleton.js.map +1 -1
  296. package/es/components/text-input/text-input.d.ts +98 -91
  297. package/es/components/text-input/text-input.js.map +1 -1
  298. package/es/components/textarea/textarea-skeleton.js.map +1 -1
  299. package/es/components/textarea/textarea.css.js +1 -1
  300. package/es/components/textarea/textarea.d.ts +2 -1
  301. package/es/components/textarea/textarea.js.map +1 -1
  302. package/es/components/tile/clickable-tile.js.map +1 -1
  303. package/es/components/tile/expandable-tile.d.ts +97 -91
  304. package/es/components/tile/expandable-tile.js.map +1 -1
  305. package/es/components/tile/radio-tile.js.map +1 -1
  306. package/es/components/tile/selectable-tile.d.ts +99 -92
  307. package/es/components/tile/selectable-tile.js.map +1 -1
  308. package/es/components/tile/tile-group.d.ts +49 -46
  309. package/es/components/tile/tile-group.js.map +1 -1
  310. package/es/components/tile/tile.css.js +1 -1
  311. package/es/components/tile/tile.js.map +1 -1
  312. package/es/components/toggle/toggle.d.ts +50 -49
  313. package/es/components/toggle/toggle.js.map +1 -1
  314. package/es/components/toggle-tip/toggletip.css.js +1 -1
  315. package/es/components/toggle-tip/toggletip.d.ts +99 -92
  316. package/es/components/toggle-tip/toggletip.js.map +1 -1
  317. package/es/components/tooltip/tooltip-content.js.map +1 -1
  318. package/es/components/tooltip/tooltip.d.ts +49 -46
  319. package/es/components/tooltip/tooltip.js.map +1 -1
  320. package/es/components/ui-shell/header-global-action.d.ts +2 -1
  321. package/es/components/ui-shell/header-global-action.js.map +1 -1
  322. package/es/components/ui-shell/header-menu-button.d.ts +49 -45
  323. package/es/components/ui-shell/header-menu-button.js.map +1 -1
  324. package/es/components/ui-shell/header-menu-item.js.map +1 -1
  325. package/es/components/ui-shell/header-menu.d.ts +99 -92
  326. package/es/components/ui-shell/header-menu.js.map +1 -1
  327. package/es/components/ui-shell/header-name.d.ts +49 -45
  328. package/es/components/ui-shell/header-name.js.map +1 -1
  329. package/es/components/ui-shell/header-nav-item.d.ts +49 -45
  330. package/es/components/ui-shell/header-nav-item.js.map +1 -1
  331. package/es/components/ui-shell/header-nav.js.map +1 -1
  332. package/es/components/ui-shell/header-panel.d.ts +2 -1
  333. package/es/components/ui-shell/header-panel.js.map +1 -1
  334. package/es/components/ui-shell/header-side-nav-items.js.map +1 -1
  335. package/es/components/ui-shell/header.js.map +1 -1
  336. package/es/components/ui-shell/side-nav-divider.js.map +1 -1
  337. package/es/components/ui-shell/side-nav-items.js.map +1 -1
  338. package/es/components/ui-shell/side-nav-link.d.ts +49 -45
  339. package/es/components/ui-shell/side-nav-link.js.map +1 -1
  340. package/es/components/ui-shell/side-nav-menu-item.d.ts +49 -45
  341. package/es/components/ui-shell/side-nav-menu-item.js.map +1 -1
  342. package/es/components/ui-shell/side-nav-menu.d.ts +49 -45
  343. package/es/components/ui-shell/side-nav-menu.js.map +1 -1
  344. package/es/components/ui-shell/side-nav.d.ts +50 -56
  345. package/es/components/ui-shell/side-nav.js +5 -47
  346. package/es/components/ui-shell/side-nav.js.map +1 -1
  347. package/es/components/ui-shell/switcher-divider.js.map +1 -1
  348. package/es/components/ui-shell/switcher-item.d.ts +49 -45
  349. package/es/components/ui-shell/switcher-item.js.map +1 -1
  350. package/es/components/ui-shell/switcher.d.ts +2 -1
  351. package/es/components/ui-shell/switcher.js.map +1 -1
  352. package/es/globals/controllers/popover-controller.js.map +1 -1
  353. package/es/globals/decorators/carbon-element.js.map +1 -1
  354. package/es/globals/internal/storybook-cdn.js.map +1 -1
  355. package/es/globals/mixins/focus.d.ts +47 -44
  356. package/es/globals/mixins/form.d.ts +48 -45
  357. package/es/globals/mixins/host-listener.d.ts +48 -45
  358. package/es/globals/mixins/host-listener.js.map +1 -1
  359. package/es/globals/mixins/validity.d.ts +48 -45
  360. package/es/globals/scss/themes.css.js +1 -1
  361. package/es/globals/settings.js.map +1 -1
  362. package/es/polyfills/toggle-class.js.map +1 -1
  363. package/lib/components-react-node/accordion/accordion-item-skeleton.js +2 -2
  364. package/lib/components-react-node/accordion/accordion-item.js +2 -2
  365. package/lib/components-react-node/accordion/accordion-skeleton.js +2 -2
  366. package/lib/components-react-node/accordion/accordion.js +2 -2
  367. package/lib/components-react-node/ai-skeleton/ai-skeleton-icon.js +2 -2
  368. package/lib/components-react-node/ai-skeleton/ai-skeleton-placeholder.js +2 -2
  369. package/lib/components-react-node/ai-skeleton/ai-skeleton-text.js +2 -2
  370. package/lib/components-react-node/breadcrumb/breadcrumb-item.js +2 -2
  371. package/lib/components-react-node/breadcrumb/breadcrumb-link.js +2 -2
  372. package/lib/components-react-node/breadcrumb/breadcrumb-overflow-menu.js +2 -2
  373. package/lib/components-react-node/breadcrumb/breadcrumb-skeleton.js +2 -2
  374. package/lib/components-react-node/breadcrumb/breadcrumb.js +2 -2
  375. package/lib/components-react-node/button/button-set-base.js +2 -2
  376. package/lib/components-react-node/button/button-set.js +2 -2
  377. package/lib/components-react-node/button/button-skeleton.js +2 -2
  378. package/lib/components-react-node/button/button.js +2 -2
  379. package/lib/components-react-node/chat-button/chat-button-skeleton.js +2 -2
  380. package/lib/components-react-node/chat-button/chat-button.js +2 -2
  381. package/lib/components-react-node/checkbox/checkbox-group.js +2 -2
  382. package/lib/components-react-node/checkbox/checkbox-skeleton.js +2 -2
  383. package/lib/components-react-node/checkbox/checkbox.js +2 -2
  384. package/lib/components-react-node/code-snippet/code-snippet-skeleton.js +2 -2
  385. package/lib/components-react-node/code-snippet/code-snippet.js +2 -2
  386. package/lib/components-react-node/combo-box/combo-box-item.js +2 -2
  387. package/lib/components-react-node/combo-box/combo-box.js +2 -2
  388. package/lib/components-react-node/content-switcher/content-switcher-item.js +2 -2
  389. package/lib/components-react-node/content-switcher/content-switcher.js +2 -2
  390. package/lib/components-react-node/copy/copy.js +2 -2
  391. package/lib/components-react-node/copy-button/copy-button.js +2 -2
  392. package/lib/components-react-node/data-table/table-batch-actions.js +2 -2
  393. package/lib/components-react-node/data-table/table-body.js +2 -2
  394. package/lib/components-react-node/data-table/table-cell-content.js +2 -2
  395. package/lib/components-react-node/data-table/table-cell.js +2 -2
  396. package/lib/components-react-node/data-table/table-expanded-row.js +2 -2
  397. package/lib/components-react-node/data-table/table-head.js +2 -2
  398. package/lib/components-react-node/data-table/table-header-cell.js +2 -2
  399. package/lib/components-react-node/data-table/table-header-description.js +2 -2
  400. package/lib/components-react-node/data-table/table-header-row.js +2 -2
  401. package/lib/components-react-node/data-table/table-header-title.js +2 -2
  402. package/lib/components-react-node/data-table/table-row.js +2 -2
  403. package/lib/components-react-node/data-table/table-skeleton.js +2 -2
  404. package/lib/components-react-node/data-table/table-toolbar-content.js +2 -2
  405. package/lib/components-react-node/data-table/table-toolbar-search.js +2 -2
  406. package/lib/components-react-node/data-table/table-toolbar.js +2 -2
  407. package/lib/components-react-node/data-table/table.js +2 -2
  408. package/lib/components-react-node/date-picker/date-picker-input-skeleton.js +2 -2
  409. package/lib/components-react-node/date-picker/date-picker-input.js +2 -2
  410. package/lib/components-react-node/date-picker/date-picker.js +2 -2
  411. package/lib/components-react-node/dropdown/dropdown-item.js +2 -2
  412. package/lib/components-react-node/dropdown/dropdown-skeleton.js +2 -2
  413. package/lib/components-react-node/dropdown/dropdown.js +2 -2
  414. package/lib/components-react-node/file-uploader/demo-file-uploader.js +2 -2
  415. package/lib/components-react-node/file-uploader/file-uploader-button.js +2 -2
  416. package/lib/components-react-node/file-uploader/file-uploader-drop-container.js +2 -2
  417. package/lib/components-react-node/file-uploader/file-uploader-item.js +2 -2
  418. package/lib/components-react-node/file-uploader/file-uploader-skeleton.js +2 -2
  419. package/lib/components-react-node/file-uploader/file-uploader.js +2 -2
  420. package/lib/components-react-node/form/form-item.js +2 -2
  421. package/lib/components-react-node/form-group/form-group.js +2 -2
  422. package/lib/components-react-node/icon-button/icon-button.js +2 -2
  423. package/lib/components-react-node/inline-loading/inline-loading.js +2 -2
  424. package/lib/components-react-node/layer/layer.js +2 -2
  425. package/lib/components-react-node/link/link.js +2 -2
  426. package/lib/components-react-node/list/list-item.js +2 -2
  427. package/lib/components-react-node/list/ordered-list.js +2 -2
  428. package/lib/components-react-node/list/unordered-list.js +2 -2
  429. package/lib/components-react-node/loading/loading.js +2 -2
  430. package/lib/components-react-node/modal/modal-body-content.js +2 -2
  431. package/lib/components-react-node/modal/modal-body.js +2 -2
  432. package/lib/components-react-node/modal/modal-close-button.js +2 -2
  433. package/lib/components-react-node/modal/modal-footer-button.js +2 -2
  434. package/lib/components-react-node/modal/modal-footer.js +2 -2
  435. package/lib/components-react-node/modal/modal-header.js +2 -2
  436. package/lib/components-react-node/modal/modal-heading.js +2 -2
  437. package/lib/components-react-node/modal/modal-label.js +2 -2
  438. package/lib/components-react-node/modal/modal.js +2 -2
  439. package/lib/components-react-node/multi-select/multi-select-item.js +2 -2
  440. package/lib/components-react-node/multi-select/multi-select.js +2 -2
  441. package/lib/components-react-node/notification/actionable-notification-button.js +2 -2
  442. package/lib/components-react-node/notification/actionable-notification.js +2 -2
  443. package/lib/components-react-node/notification/inline-notification.js +2 -2
  444. package/lib/components-react-node/notification/toast-notification.js +2 -2
  445. package/lib/components-react-node/number-input/number-input-skeleton.js +2 -2
  446. package/lib/components-react-node/number-input/number-input.js +2 -2
  447. package/lib/components-react-node/overflow-menu/overflow-menu-body.js +2 -2
  448. package/lib/components-react-node/overflow-menu/overflow-menu-item.js +2 -2
  449. package/lib/components-react-node/overflow-menu/overflow-menu.js +2 -2
  450. package/lib/components-react-node/pagination/pagination.js +2 -2
  451. package/lib/components-react-node/popover/popover-content.js +2 -2
  452. package/lib/components-react-node/popover/popover.js +2 -2
  453. package/lib/components-react-node/progress-bar/progress-bar.js +2 -2
  454. package/lib/components-react-node/progress-indicator/progress-indicator-skeleton.js +2 -2
  455. package/lib/components-react-node/progress-indicator/progress-indicator.js +2 -2
  456. package/lib/components-react-node/progress-indicator/progress-step-skeleton.js +2 -2
  457. package/lib/components-react-node/progress-indicator/progress-step.js +2 -2
  458. package/lib/components-react-node/radio-button/radio-button-group.js +2 -2
  459. package/lib/components-react-node/radio-button/radio-button-skeleton.js +2 -2
  460. package/lib/components-react-node/radio-button/radio-button.js +2 -2
  461. package/lib/components-react-node/search/search-skeleton.js +2 -2
  462. package/lib/components-react-node/search/search.js +2 -2
  463. package/lib/components-react-node/select/select-item-group.js +2 -2
  464. package/lib/components-react-node/select/select-item.js +2 -2
  465. package/lib/components-react-node/select/select-skeleton.js +2 -2
  466. package/lib/components-react-node/select/select.js +2 -2
  467. package/lib/components-react-node/side-panel/side-panel.js +2 -2
  468. package/lib/components-react-node/skeleton-icon/skeleton-icon.js +2 -2
  469. package/lib/components-react-node/skeleton-placeholder/skeleton-placeholder.js +2 -2
  470. package/lib/components-react-node/skeleton-text/skeleton-text.js +2 -2
  471. package/lib/components-react-node/skip-to-content/skip-to-content.js +2 -2
  472. package/lib/components-react-node/slider/slider-input.js +2 -2
  473. package/lib/components-react-node/slider/slider-skeleton.js +2 -2
  474. package/lib/components-react-node/slider/slider.js +2 -2
  475. package/lib/components-react-node/slug/slug-action-button.js +2 -2
  476. package/lib/components-react-node/slug/slug.js +2 -2
  477. package/lib/components-react-node/stack/stack.js +2 -2
  478. package/lib/components-react-node/structured-list/structured-list-body.js +2 -2
  479. package/lib/components-react-node/structured-list/structured-list-cell.js +2 -2
  480. package/lib/components-react-node/structured-list/structured-list-head.js +2 -2
  481. package/lib/components-react-node/structured-list/structured-list-header-cell-skeleton.js +2 -2
  482. package/lib/components-react-node/structured-list/structured-list-header-cell.js +2 -2
  483. package/lib/components-react-node/structured-list/structured-list-header-row.js +2 -2
  484. package/lib/components-react-node/structured-list/structured-list-row.js +2 -2
  485. package/lib/components-react-node/structured-list/structured-list.js +2 -2
  486. package/lib/components-react-node/tabs/tab-skeleton.js +2 -2
  487. package/lib/components-react-node/tabs/tab.js +2 -2
  488. package/lib/components-react-node/tabs/tabs-skeleton.js +2 -2
  489. package/lib/components-react-node/tabs/tabs.js +2 -2
  490. package/lib/components-react-node/tag/tag.js +2 -2
  491. package/lib/components-react-node/tearsheet/tearsheet.js +2 -2
  492. package/lib/components-react-node/text-input/text-input-skeleton.js +2 -2
  493. package/lib/components-react-node/text-input/text-input.js +2 -2
  494. package/lib/components-react-node/textarea/textarea-skeleton.js +2 -2
  495. package/lib/components-react-node/textarea/textarea.js +2 -2
  496. package/lib/components-react-node/tile/clickable-tile.js +2 -2
  497. package/lib/components-react-node/tile/expandable-tile.js +2 -2
  498. package/lib/components-react-node/tile/radio-tile.js +2 -2
  499. package/lib/components-react-node/tile/selectable-tile.js +2 -2
  500. package/lib/components-react-node/tile/tile-group.js +2 -2
  501. package/lib/components-react-node/tile/tile.js +2 -2
  502. package/lib/components-react-node/toggle/toggle.js +2 -2
  503. package/lib/components-react-node/toggle-tip/toggletip.js +2 -2
  504. package/lib/components-react-node/tooltip/tooltip-content.js +2 -2
  505. package/lib/components-react-node/tooltip/tooltip.js +2 -2
  506. package/lib/components-react-node/ui-shell/header-global-action.js +2 -2
  507. package/lib/components-react-node/ui-shell/header-menu-button.js +2 -2
  508. package/lib/components-react-node/ui-shell/header-menu-item.js +2 -2
  509. package/lib/components-react-node/ui-shell/header-menu.js +2 -2
  510. package/lib/components-react-node/ui-shell/header-name.js +2 -2
  511. package/lib/components-react-node/ui-shell/header-nav-item.js +2 -2
  512. package/lib/components-react-node/ui-shell/header-nav.js +2 -2
  513. package/lib/components-react-node/ui-shell/header-panel.js +2 -2
  514. package/lib/components-react-node/ui-shell/header-side-nav-items.js +2 -2
  515. package/lib/components-react-node/ui-shell/header.js +2 -2
  516. package/lib/components-react-node/ui-shell/side-nav-divider.js +2 -2
  517. package/lib/components-react-node/ui-shell/side-nav-items.js +2 -2
  518. package/lib/components-react-node/ui-shell/side-nav-link.js +2 -2
  519. package/lib/components-react-node/ui-shell/side-nav-menu-item.js +2 -2
  520. package/lib/components-react-node/ui-shell/side-nav-menu.js +2 -2
  521. package/lib/components-react-node/ui-shell/side-nav.js +2 -2
  522. package/lib/components-react-node/ui-shell/switcher-divider.js +2 -2
  523. package/lib/components-react-node/ui-shell/switcher-item.js +2 -2
  524. package/lib/components-react-node/ui-shell/switcher.js +2 -2
  525. package/lib/globals/controllers/popover-controller.js.map +1 -1
  526. package/lib/globals/settings.js.map +1 -1
  527. package/package.json +4 -4
  528. package/dist/20-7dd70a15.js +0 -73
  529. package/dist/checkbox-6b1a3bff.js +0 -109
  530. package/dist/dropdown-item-4c020a7d.js +0 -148
  531. package/dist/popover-controller-0c0475fc.js +0 -73
@@ -1 +1 @@
1
- {"version":3,"file":"combo-box.js","names":["classMap","html","property","query","Close16","prefix","findIndex","forEach","CDSDropdown","DROPDOWN_KEYBOARD_ACTION","styles","carbonElement","customElement","ifDefined","ifNonEmpty","DROPDOWN_DIRECTION","DROPDOWN_SIZE","CDSComboBox","_decorate","_initialize","_CDSDropdown","constructor","args","F","d","kind","key","value","decorators","_testItemWithQueryText","item","itemMatches","_defaultItemMatches","_filterInputNode","queryText","textContent","toLowerCase","indexOf","_handleInput","_filterInputValue","length","setAttribute","removeAttribute","items","querySelectorAll","selectorItem","index","i","_this$_itemMenu","menuRect","_itemMenu","getBoundingClientRect","itemRect","isViewable","top","bottom","clientHeight","scrollTop","scrollBot","Math","abs","highlighted","filterInput","open","requestUpdate","_handleClickInner","event","_this$_selectionButto","target","_selectionButtonNode","contains","_handleUserInitiatedClearInput","_get","_getPrototypeOf","prototype","call","_handleKeypressInner","_this$_selectionButto2","action","getAction","TRIGGERING","focus","_handleUserInitiatedSelectItem","_selectionShouldChange","_selectionDidChange","itemToSelect","selectorItemSelected","selected","_handleUserInitiatedToggle","_renderLabel","disabled","inputLabel","label","readOnly","_activeDescendant","activeDescendant","filterInputValue","handleInput","inputClasses","activeDescendantFallback","_items$","id","_t","_","String","_renderFollowingLabel","clearSelectionLabel","undefined","_t2","attribute","shouldUpdate","changedProperties","_selectedItemContent","selectedItemContent","has","updated","_listBoxNode","listBoxNode","classList","add","static","Set","selectorItemHighlighted","eventBeforeToggle","eventToggle","eventBeforeSelect","eventSelect"],"sources":["components/combo-box/combo-box.ts"],"sourcesContent":["/**\n * @license\n *\n * Copyright IBM Corp. 2019, 2024\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { classMap } from 'lit/directives/class-map.js';\nimport { TemplateResult, html } from 'lit';\nimport { property, query } from 'lit/decorators.js';\nimport Close16 from '@carbon/icons/lib/close/16';\nimport { prefix } from '../../globals/settings';\nimport { findIndex, forEach } from '../../globals/internal/collection-helpers';\nimport CDSDropdown, { DROPDOWN_KEYBOARD_ACTION } from '../dropdown/dropdown';\nimport CDSComboBoxItem from './combo-box-item';\nimport styles from './combo-box.scss';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport ifNonEmpty from '../../globals/directives/if-non-empty';\n\nexport { DROPDOWN_DIRECTION, DROPDOWN_SIZE } from '../dropdown/dropdown';\n\n/**\n * Combo box.\n *\n * @element cds-combo-box\n * @fires cds-combo-box-beingselected\n * The custom event fired before a combo box item is selected upon a user gesture.\n * Cancellation of this event stops changing the user-initiated selection.\n * @fires cds-combo-box-beingtoggled\n * The custom event fired before the open state of this combo box is toggled upon a user gesture.\n * Cancellation of this event stops the user-initiated toggling.\n * @fires cds-combo-box-selected - The custom event fired after a combo box item is selected upon a user gesture.\n * @fires cds-combo-box-toggled - The custom event fired after the open state of this combo box is toggled upon a user gesture.\n */\n@customElement(`${prefix}-combo-box`)\nclass CDSComboBox extends CDSDropdown {\n /**\n * The text content that should be set to the `<input>` for filtering.\n */\n protected _filterInputValue = '';\n\n protected _shouldTriggerBeFocusable = false;\n\n /**\n * The `<input>` for filtering.\n */\n @query('input')\n private _filterInputNode!: HTMLInputElement;\n\n /**\n * The menu containing all selectable items.\n */\n @query('#menu-body')\n private _itemMenu!: HTMLElement;\n\n /**\n * The selection button.\n */\n @query('#selection-button')\n private _selectionButtonNode!: HTMLElement;\n\n /**\n * @param item A combo box item.\n * @returns `true` if the given combo box item matches the query text user types.\n */\n protected _testItemWithQueryText(item) {\n return (this.itemMatches || this._defaultItemMatches)(\n item,\n this._filterInputNode.value\n );\n }\n\n /* eslint-disable class-methods-use-this */\n /**\n * The default item matching callback.\n *\n * @param item The combo box item.\n * @param queryText The query text user types.\n * @returns `true` if the given combo box item matches the given query text.\n */\n protected _defaultItemMatches(\n item: CDSComboBoxItem,\n queryText: string\n ): boolean {\n return (\n item.textContent!.toLowerCase().indexOf(queryText.toLowerCase()) >= 0\n );\n }\n /* eslint-enable class-methods-use-this */\n\n /**\n * Handles `input` event on the `<input>` for filtering.\n */\n protected _handleInput() {\n if (this._filterInputValue.length != 0) {\n this.setAttribute('isClosable', '');\n } else {\n this.removeAttribute('isClosable');\n }\n\n const items = this.querySelectorAll(\n (this.constructor as typeof CDSComboBox).selectorItem\n );\n const index = !this._filterInputNode.value\n ? -1\n : findIndex(items, this._testItemWithQueryText, this);\n forEach(items, (item, i) => {\n if (i === index) {\n const menuRect = this._itemMenu?.getBoundingClientRect();\n const itemRect = item.getBoundingClientRect();\n\n if (menuRect && itemRect) {\n const isViewable =\n menuRect!.top <= itemRect?.top &&\n itemRect?.bottom <= menuRect?.top + this._itemMenu!.clientHeight;\n if (!isViewable) {\n const scrollTop = itemRect?.top - menuRect?.top;\n const scrollBot = itemRect?.bottom - menuRect?.bottom;\n\n if (Math.abs(scrollTop) < Math.abs(scrollBot)) {\n this._itemMenu!.scrollTop += scrollTop;\n } else {\n this._itemMenu!.scrollTop += scrollBot;\n }\n }\n }\n }\n (item as CDSComboBoxItem).highlighted = i === index;\n });\n const { _filterInputNode: filterInput } = this;\n this._filterInputValue = !filterInput ? '' : filterInput.value;\n this.open = true;\n this.requestUpdate(); // If the only change is to `_filterInputValue`, auto-update doesn't happen\n }\n\n protected _handleClickInner(event: MouseEvent) {\n const { target } = event as any;\n if (this._selectionButtonNode?.contains(target)) {\n this._handleUserInitiatedClearInput();\n } else {\n super._handleClickInner(event);\n }\n }\n\n protected _handleKeypressInner(event: KeyboardEvent) {\n const { key } = event;\n const action = (this.constructor as typeof CDSDropdown).getAction(key);\n const { TRIGGERING } = DROPDOWN_KEYBOARD_ACTION;\n if (\n this._selectionButtonNode?.contains(event.target as Node) &&\n // Space key should be handled by `<input>` unless \"clear selection\" button has focus\n (action === TRIGGERING || key === ' ')\n ) {\n this._handleUserInitiatedClearInput();\n } else {\n super._handleKeypressInner(event);\n }\n }\n\n /**\n * Handles user-initiated clearing the `<input>` for filtering.\n */\n protected _handleUserInitiatedClearInput() {\n forEach(\n this.querySelectorAll(\n (this.constructor as typeof CDSComboBox).selectorItem\n ),\n (item) => {\n (item as CDSComboBoxItem).highlighted = false;\n }\n );\n this._filterInputValue = '';\n this._filterInputNode.focus();\n this._handleUserInitiatedSelectItem();\n }\n\n protected _handleUserInitiatedSelectItem(item?: CDSComboBoxItem) {\n if (item && !this._selectionShouldChange(item)) {\n // Escape hatch for `shouldUpdate()` logic that updates `._filterInputValue()` when selection changes,\n // given we want to update the `<input>` and close the dropdown even if selection doesn't update.\n // Use case:\n // 1. Select the 2nd item in combo box drop down\n // 2. Type some text in the `<input>`\n // 3. Re-select the 2nd item in combo box drop down,\n // the `<input>` has to updated with the 2nd item and the dropdown should be closed,\n // even if there is no change in the selected value\n this._filterInputValue = item.textContent || '';\n this.open = false;\n this.requestUpdate();\n }\n super._handleUserInitiatedSelectItem(item);\n }\n\n protected _selectionDidChange(itemToSelect?: CDSComboBoxItem) {\n this.value = !itemToSelect ? '' : itemToSelect.value;\n forEach(\n this.querySelectorAll(\n (this.constructor as typeof CDSDropdown).selectorItemSelected\n ),\n (item) => {\n (item as CDSComboBoxItem).selected = false;\n item.setAttribute('aria-selected', 'false');\n }\n );\n if (itemToSelect) {\n itemToSelect.selected = true;\n itemToSelect.setAttribute('aria-selected', 'true');\n }\n this._handleUserInitiatedToggle(false);\n }\n\n protected _renderLabel(): TemplateResult {\n const {\n disabled,\n inputLabel,\n label,\n open,\n readOnly,\n value,\n _activeDescendant: activeDescendant,\n _filterInputValue: filterInputValue,\n _handleInput: handleInput,\n } = this;\n\n const inputClasses = classMap({\n [`${prefix}--text-input`]: true,\n [`${prefix}--text-input--empty`]: !value,\n });\n\n let activeDescendantFallback: string | undefined;\n if (open && !activeDescendant) {\n const constructor = this.constructor as typeof CDSDropdown;\n const items = this.querySelectorAll(constructor.selectorItem);\n activeDescendantFallback = items[0]?.id;\n }\n\n return html`\n <input\n id=\"trigger-button\"\n class=\"${inputClasses}\"\n ?disabled=${disabled}\n placeholder=\"${label}\"\n .value=${filterInputValue}\n role=\"combobox\"\n aria-label=\"${ifNonEmpty(inputLabel)}\"\n aria-controls=\"menu-body\"\n aria-haspopup=\"listbox\"\n aria-autocomplete=\"list\"\n aria-expanded=\"${String(open)}\"\n aria-activedescendant=\"${ifDefined(\n open ? activeDescendant ?? activeDescendantFallback : ''\n )}\"\n ?readonly=${readOnly}\n @input=${handleInput} />\n `;\n }\n\n protected _renderFollowingLabel(): TemplateResult | void {\n const { clearSelectionLabel, _filterInputValue: filterInputValue } = this;\n\n if (filterInputValue.length != 0) {\n this.setAttribute('isClosable', '');\n } else {\n this.removeAttribute('isClosable');\n }\n\n return filterInputValue.length === 0\n ? undefined\n : html`\n <div\n id=\"selection-button\"\n role=\"button\"\n class=\"${prefix}--list-box__selection\"\n tabindex=\"0\"\n title=\"${clearSelectionLabel}\">\n ${Close16({ 'aria-label': clearSelectionLabel })}\n </div>\n `;\n }\n\n /**\n * The `aria-label` attribute for the icon to clear selection.\n */\n @property({ attribute: 'clear-selection-label' })\n clearSelectionLabel = 'Clear selection';\n\n /**\n * The `aria-label` attribute for the `<input>` for filtering.\n */\n @property({ attribute: 'input-label' })\n inputLabel = '';\n\n /**\n * The custom item matching callback.\n */\n @property({ attribute: false })\n itemMatches!: (item: CDSComboBoxItem, queryText: string) => boolean;\n\n shouldUpdate(changedProperties) {\n super.shouldUpdate(changedProperties);\n const { _selectedItemContent: selectedItemContent } = this;\n if (selectedItemContent && changedProperties.has('value')) {\n this._filterInputValue = selectedItemContent?.textContent || '';\n }\n return true;\n }\n\n updated(changedProperties) {\n super.updated(changedProperties);\n const { _listBoxNode: listBoxNode } = this;\n if (listBoxNode) {\n listBoxNode.classList.add(`${prefix}--combo-box`);\n }\n }\n\n // For combo box, open/selection with space key is disabled given the input box should take it over\n static TRIGGER_KEYS = new Set(['Enter']);\n\n /**\n * A selector that will return highlighted items.\n */\n static get selectorItemHighlighted() {\n return `${prefix}-combo-box-item[highlighted]`;\n }\n\n /**\n * A selector that will return combo box items.\n */\n static get selectorItem() {\n return `${prefix}-combo-box-item`;\n }\n\n /**\n * A selector that will return selected items.\n */\n static get selectorItemSelected() {\n return `${prefix}-combo-box-item[selected]`;\n }\n\n /**\n * The name of the custom event fired before this combo box item is being toggled upon a user gesture.\n * Cancellation of this event stops the user-initiated action of toggling this combo box item.\n */\n static get eventBeforeToggle() {\n return `${prefix}-combo-box-beingtoggled`;\n }\n\n /**\n * The name of the custom event fired after this combo box item is toggled upon a user gesture.\n */\n static get eventToggle() {\n return `${prefix}-combo-box-toggled`;\n }\n\n /**\n * The name of the custom event fired before a combo box item is selected upon a user gesture.\n * Cancellation of this event stops changing the user-initiated selection.\n */\n static get eventBeforeSelect() {\n return `${prefix}-combo-box-beingselected`;\n }\n\n /**\n * The name of the custom event fired after a a combo box item is selected upon a user gesture.\n */\n static get eventSelect() {\n return `${prefix}-combo-box-selected`;\n }\n\n static styles = styles;\n}\n\nexport default CDSComboBox;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"combo-box.js","names":["classMap","html","property","query","Close16","prefix","findIndex","forEach","CDSDropdown","DROPDOWN_KEYBOARD_ACTION","styles","carbonElement","customElement","ifDefined","ifNonEmpty","DROPDOWN_DIRECTION","DROPDOWN_SIZE","CDSComboBox","_decorate","_initialize","_CDSDropdown","constructor","args","F","d","kind","key","value","decorators","_testItemWithQueryText","item","itemMatches","_defaultItemMatches","_filterInputNode","queryText","textContent","toLowerCase","indexOf","_handleInput","_filterInputValue","length","setAttribute","removeAttribute","items","querySelectorAll","selectorItem","index","i","_this$_itemMenu","menuRect","_itemMenu","getBoundingClientRect","itemRect","isViewable","top","bottom","clientHeight","scrollTop","scrollBot","Math","abs","highlighted","filterInput","open","requestUpdate","_handleClickInner","event","_this$_selectionButto","target","_selectionButtonNode","contains","_handleUserInitiatedClearInput","_get","_getPrototypeOf","prototype","call","_handleKeypressInner","_this$_selectionButto2","action","getAction","TRIGGERING","focus","_handleUserInitiatedSelectItem","_selectionShouldChange","_selectionDidChange","itemToSelect","selectorItemSelected","selected","_handleUserInitiatedToggle","_renderLabel","disabled","inputLabel","label","readOnly","_activeDescendant","activeDescendant","filterInputValue","handleInput","inputClasses","activeDescendantFallback","_items$","id","_t","_","String","_renderFollowingLabel","clearSelectionLabel","undefined","_t2","attribute","shouldUpdate","changedProperties","_selectedItemContent","selectedItemContent","has","updated","_listBoxNode","listBoxNode","classList","add","static","Set","selectorItemHighlighted","eventBeforeToggle","eventToggle","eventBeforeSelect","eventSelect"],"sources":["components/combo-box/combo-box.ts"],"sourcesContent":["/**\n * @license\n *\n * Copyright IBM Corp. 2019, 2024\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { classMap } from 'lit/directives/class-map.js';\nimport { TemplateResult, html } from 'lit';\nimport { property, query } from 'lit/decorators.js';\nimport Close16 from '@carbon/icons/lib/close/16';\nimport { prefix } from '../../globals/settings';\nimport { findIndex, forEach } from '../../globals/internal/collection-helpers';\nimport CDSDropdown, { DROPDOWN_KEYBOARD_ACTION } from '../dropdown/dropdown';\nimport CDSComboBoxItem from './combo-box-item';\nimport styles from './combo-box.scss';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport ifNonEmpty from '../../globals/directives/if-non-empty';\n\nexport { DROPDOWN_DIRECTION, DROPDOWN_SIZE } from '../dropdown/dropdown';\n\n/**\n * Combo box.\n *\n * @element cds-combo-box\n * @fires cds-combo-box-beingselected\n * The custom event fired before a combo box item is selected upon a user gesture.\n * Cancellation of this event stops changing the user-initiated selection.\n * @fires cds-combo-box-beingtoggled\n * The custom event fired before the open state of this combo box is toggled upon a user gesture.\n * Cancellation of this event stops the user-initiated toggling.\n * @fires cds-combo-box-selected - The custom event fired after a combo box item is selected upon a user gesture.\n * @fires cds-combo-box-toggled - The custom event fired after the open state of this combo box is toggled upon a user gesture.\n */\n@customElement(`${prefix}-combo-box`)\nclass CDSComboBox extends CDSDropdown {\n /**\n * The text content that should be set to the `<input>` for filtering.\n */\n protected _filterInputValue = '';\n\n protected _shouldTriggerBeFocusable = false;\n\n /**\n * The `<input>` for filtering.\n */\n @query('input')\n private _filterInputNode!: HTMLInputElement;\n\n /**\n * The menu containing all selectable items.\n */\n @query('#menu-body')\n private _itemMenu!: HTMLElement;\n\n /**\n * The selection button.\n */\n @query('#selection-button')\n private _selectionButtonNode!: HTMLElement;\n\n /**\n * @param item A combo box item.\n * @returns `true` if the given combo box item matches the query text user types.\n */\n protected _testItemWithQueryText(item) {\n return (this.itemMatches || this._defaultItemMatches)(\n item,\n this._filterInputNode.value\n );\n }\n\n /* eslint-disable class-methods-use-this */\n /**\n * The default item matching callback.\n *\n * @param item The combo box item.\n * @param queryText The query text user types.\n * @returns `true` if the given combo box item matches the given query text.\n */\n protected _defaultItemMatches(\n item: CDSComboBoxItem,\n queryText: string\n ): boolean {\n return (\n item.textContent!.toLowerCase().indexOf(queryText.toLowerCase()) >= 0\n );\n }\n /* eslint-enable class-methods-use-this */\n\n /**\n * Handles `input` event on the `<input>` for filtering.\n */\n protected _handleInput() {\n if (this._filterInputValue.length != 0) {\n this.setAttribute('isClosable', '');\n } else {\n this.removeAttribute('isClosable');\n }\n\n const items = this.querySelectorAll(\n (this.constructor as typeof CDSComboBox).selectorItem\n );\n const index = !this._filterInputNode.value\n ? -1\n : findIndex(items, this._testItemWithQueryText, this);\n forEach(items, (item, i) => {\n if (i === index) {\n const menuRect = this._itemMenu?.getBoundingClientRect();\n const itemRect = item.getBoundingClientRect();\n\n if (menuRect && itemRect) {\n const isViewable =\n menuRect!.top <= itemRect?.top &&\n itemRect?.bottom <= menuRect?.top + this._itemMenu!.clientHeight;\n if (!isViewable) {\n const scrollTop = itemRect?.top - menuRect?.top;\n const scrollBot = itemRect?.bottom - menuRect?.bottom;\n\n if (Math.abs(scrollTop) < Math.abs(scrollBot)) {\n this._itemMenu!.scrollTop += scrollTop;\n } else {\n this._itemMenu!.scrollTop += scrollBot;\n }\n }\n }\n }\n (item as CDSComboBoxItem).highlighted = i === index;\n });\n const { _filterInputNode: filterInput } = this;\n this._filterInputValue = !filterInput ? '' : filterInput.value;\n this.open = true;\n this.requestUpdate(); // If the only change is to `_filterInputValue`, auto-update doesn't happen\n }\n\n protected _handleClickInner(event: MouseEvent) {\n const { target } = event as any;\n if (this._selectionButtonNode?.contains(target)) {\n this._handleUserInitiatedClearInput();\n } else {\n super._handleClickInner(event);\n }\n }\n\n protected _handleKeypressInner(event: KeyboardEvent) {\n const { key } = event;\n const action = (this.constructor as typeof CDSDropdown).getAction(key);\n const { TRIGGERING } = DROPDOWN_KEYBOARD_ACTION;\n if (\n this._selectionButtonNode?.contains(event.target as Node) &&\n // Space key should be handled by `<input>` unless \"clear selection\" button has focus\n (action === TRIGGERING || key === ' ')\n ) {\n this._handleUserInitiatedClearInput();\n } else {\n super._handleKeypressInner(event);\n }\n }\n\n /**\n * Handles user-initiated clearing the `<input>` for filtering.\n */\n protected _handleUserInitiatedClearInput() {\n forEach(\n this.querySelectorAll(\n (this.constructor as typeof CDSComboBox).selectorItem\n ),\n (item) => {\n (item as CDSComboBoxItem).highlighted = false;\n }\n );\n this._filterInputValue = '';\n this._filterInputNode.focus();\n this._handleUserInitiatedSelectItem();\n }\n\n protected _handleUserInitiatedSelectItem(item?: CDSComboBoxItem) {\n if (item && !this._selectionShouldChange(item)) {\n // Escape hatch for `shouldUpdate()` logic that updates `._filterInputValue()` when selection changes,\n // given we want to update the `<input>` and close the dropdown even if selection doesn't update.\n // Use case:\n // 1. Select the 2nd item in combo box drop down\n // 2. Type some text in the `<input>`\n // 3. Re-select the 2nd item in combo box drop down,\n // the `<input>` has to updated with the 2nd item and the dropdown should be closed,\n // even if there is no change in the selected value\n this._filterInputValue = item.textContent || '';\n this.open = false;\n this.requestUpdate();\n }\n super._handleUserInitiatedSelectItem(item);\n }\n\n protected _selectionDidChange(itemToSelect?: CDSComboBoxItem) {\n this.value = !itemToSelect ? '' : itemToSelect.value;\n forEach(\n this.querySelectorAll(\n (this.constructor as typeof CDSDropdown).selectorItemSelected\n ),\n (item) => {\n (item as CDSComboBoxItem).selected = false;\n item.setAttribute('aria-selected', 'false');\n }\n );\n if (itemToSelect) {\n itemToSelect.selected = true;\n itemToSelect.setAttribute('aria-selected', 'true');\n }\n this._handleUserInitiatedToggle(false);\n }\n\n protected _renderLabel(): TemplateResult {\n const {\n disabled,\n inputLabel,\n label,\n open,\n readOnly,\n value,\n _activeDescendant: activeDescendant,\n _filterInputValue: filterInputValue,\n _handleInput: handleInput,\n } = this;\n\n const inputClasses = classMap({\n [`${prefix}--text-input`]: true,\n [`${prefix}--text-input--empty`]: !value,\n });\n\n let activeDescendantFallback: string | undefined;\n if (open && !activeDescendant) {\n const constructor = this.constructor as typeof CDSDropdown;\n const items = this.querySelectorAll(constructor.selectorItem);\n activeDescendantFallback = items[0]?.id;\n }\n\n return html`\n <input\n id=\"trigger-button\"\n class=\"${inputClasses}\"\n ?disabled=${disabled}\n placeholder=\"${label}\"\n .value=${filterInputValue}\n role=\"combobox\"\n aria-label=\"${ifNonEmpty(inputLabel)}\"\n aria-controls=\"menu-body\"\n aria-haspopup=\"listbox\"\n aria-autocomplete=\"list\"\n aria-expanded=\"${String(open)}\"\n aria-activedescendant=\"${ifDefined(\n open ? activeDescendant ?? activeDescendantFallback : ''\n )}\"\n ?readonly=${readOnly}\n @input=${handleInput} />\n `;\n }\n\n protected _renderFollowingLabel(): TemplateResult | void {\n const { clearSelectionLabel, _filterInputValue: filterInputValue } = this;\n\n if (filterInputValue.length != 0) {\n this.setAttribute('isClosable', '');\n } else {\n this.removeAttribute('isClosable');\n }\n\n return filterInputValue.length === 0\n ? undefined\n : html`\n <div\n id=\"selection-button\"\n role=\"button\"\n class=\"${prefix}--list-box__selection\"\n tabindex=\"0\"\n title=\"${clearSelectionLabel}\">\n ${Close16({ 'aria-label': clearSelectionLabel })}\n </div>\n `;\n }\n\n /**\n * The `aria-label` attribute for the icon to clear selection.\n */\n @property({ attribute: 'clear-selection-label' })\n clearSelectionLabel = 'Clear selection';\n\n /**\n * The `aria-label` attribute for the `<input>` for filtering.\n */\n @property({ attribute: 'input-label' })\n inputLabel = '';\n\n /**\n * The custom item matching callback.\n */\n @property({ attribute: false })\n itemMatches!: (item: CDSComboBoxItem, queryText: string) => boolean;\n\n shouldUpdate(changedProperties) {\n super.shouldUpdate(changedProperties);\n const { _selectedItemContent: selectedItemContent } = this;\n if (selectedItemContent && changedProperties.has('value')) {\n this._filterInputValue = selectedItemContent?.textContent || '';\n }\n return true;\n }\n\n updated(changedProperties) {\n super.updated(changedProperties);\n const { _listBoxNode: listBoxNode } = this;\n if (listBoxNode) {\n listBoxNode.classList.add(`${prefix}--combo-box`);\n }\n }\n\n // For combo box, open/selection with space key is disabled given the input box should take it over\n static TRIGGER_KEYS = new Set(['Enter']);\n\n /**\n * A selector that will return highlighted items.\n */\n static get selectorItemHighlighted() {\n return `${prefix}-combo-box-item[highlighted]`;\n }\n\n /**\n * A selector that will return combo box items.\n */\n static get selectorItem() {\n return `${prefix}-combo-box-item`;\n }\n\n /**\n * A selector that will return selected items.\n */\n static get selectorItemSelected() {\n return `${prefix}-combo-box-item[selected]`;\n }\n\n /**\n * The name of the custom event fired before this combo box item is being toggled upon a user gesture.\n * Cancellation of this event stops the user-initiated action of toggling this combo box item.\n */\n static get eventBeforeToggle() {\n return `${prefix}-combo-box-beingtoggled`;\n }\n\n /**\n * The name of the custom event fired after this combo box item is toggled upon a user gesture.\n */\n static get eventToggle() {\n return `${prefix}-combo-box-toggled`;\n }\n\n /**\n * The name of the custom event fired before a combo box item is selected upon a user gesture.\n * Cancellation of this event stops changing the user-initiated selection.\n */\n static get eventBeforeSelect() {\n return `${prefix}-combo-box-beingselected`;\n }\n\n /**\n * The name of the custom event fired after a a combo box item is selected upon a user gesture.\n */\n static get eventSelect() {\n return `${prefix}-combo-box-selected`;\n }\n\n static styles = styles;\n}\n\nexport default CDSComboBox;\n"],"mappings":"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","ignoreList":[]}
@@ -33,11 +33,11 @@ declare const CDSContentSwitcherItem_base: {
33
33
  click(): void;
34
34
  hidePopover(): void;
35
35
  showPopover(): void;
36
- togglePopover(force?: boolean | undefined): boolean;
37
- addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions | undefined): void;
38
- addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions | undefined): void;
39
- removeEventListener<K_1 extends keyof HTMLElementEventMap>(type: K_1, listener: (this: HTMLElement, ev: HTMLElementEventMap[K_1]) => any, options?: boolean | EventListenerOptions | undefined): void;
40
- removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions | undefined): void;
36
+ togglePopover(force?: boolean): boolean;
37
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
38
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
39
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
40
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
41
41
  readonly attributes: NamedNodeMap;
42
42
  readonly classList: DOMTokenList;
43
43
  className: string;
@@ -62,10 +62,10 @@ declare const CDSContentSwitcherItem_base: {
62
62
  slot: string;
63
63
  readonly tagName: string;
64
64
  attachShadow(init: ShadowRootInit): ShadowRoot;
65
- checkVisibility(options?: CheckVisibilityOptions | undefined): boolean;
66
- closest<K_2 extends keyof HTMLElementTagNameMap>(selector: K_2): HTMLElementTagNameMap[K_2] | null;
67
- closest<K_3 extends keyof SVGElementTagNameMap>(selector: K_3): SVGElementTagNameMap[K_3] | null;
68
- closest<K_4 extends keyof MathMLElementTagNameMap>(selector: K_4): MathMLElementTagNameMap[K_4] | null;
65
+ checkVisibility(options?: CheckVisibilityOptions): boolean;
66
+ closest<K extends keyof HTMLElementTagNameMap>(selector: K): HTMLElementTagNameMap[K] | null;
67
+ closest<K extends keyof SVGElementTagNameMap>(selector: K): SVGElementTagNameMap[K] | null;
68
+ closest<K extends keyof MathMLElementTagNameMap>(selector: K): MathMLElementTagNameMap[K] | null;
69
69
  closest<E extends Element = Element>(selectors: string): E | null;
70
70
  computedStyleMap(): StylePropertyMapReadOnly;
71
71
  getAttribute(qualifiedName: string): string | null;
@@ -76,10 +76,10 @@ declare const CDSContentSwitcherItem_base: {
76
76
  getBoundingClientRect(): DOMRect;
77
77
  getClientRects(): DOMRectList;
78
78
  getElementsByClassName(classNames: string): HTMLCollectionOf<Element>;
79
- getElementsByTagName<K_5 extends keyof HTMLElementTagNameMap>(qualifiedName: K_5): HTMLCollectionOf<HTMLElementTagNameMap[K_5]>;
80
- getElementsByTagName<K_6 extends keyof SVGElementTagNameMap>(qualifiedName: K_6): HTMLCollectionOf<SVGElementTagNameMap[K_6]>;
81
- getElementsByTagName<K_7 extends keyof MathMLElementTagNameMap>(qualifiedName: K_7): HTMLCollectionOf<MathMLElementTagNameMap[K_7]>;
82
- getElementsByTagName<K_8 extends keyof HTMLElementDeprecatedTagNameMap>(qualifiedName: K_8): HTMLCollectionOf<HTMLElementDeprecatedTagNameMap[K_8]>;
79
+ getElementsByTagName<K extends keyof HTMLElementTagNameMap>(qualifiedName: K): HTMLCollectionOf<HTMLElementTagNameMap[K]>;
80
+ getElementsByTagName<K extends keyof SVGElementTagNameMap>(qualifiedName: K): HTMLCollectionOf<SVGElementTagNameMap[K]>;
81
+ getElementsByTagName<K extends keyof MathMLElementTagNameMap>(qualifiedName: K): HTMLCollectionOf<MathMLElementTagNameMap[K]>;
82
+ getElementsByTagName<K extends keyof HTMLElementDeprecatedTagNameMap>(qualifiedName: K): HTMLCollectionOf<HTMLElementDeprecatedTagNameMap[K]>;
83
83
  getElementsByTagName(qualifiedName: string): HTMLCollectionOf<Element>;
84
84
  getElementsByTagNameNS(namespaceURI: "http://www.w3.org/1999/xhtml", localName: string): HTMLCollectionOf<HTMLElement>;
85
85
  getElementsByTagNameNS(namespaceURI: "http://www.w3.org/2000/svg", localName: string): HTMLCollectionOf<SVGElement>;
@@ -97,21 +97,22 @@ declare const CDSContentSwitcherItem_base: {
97
97
  removeAttribute(qualifiedName: string): void;
98
98
  removeAttributeNS(namespace: string | null, localName: string): void;
99
99
  removeAttributeNode(attr: Attr): Attr;
100
- requestFullscreen(options?: FullscreenOptions | undefined): Promise<void>;
100
+ requestFullscreen(options?: FullscreenOptions): Promise<void>;
101
101
  requestPointerLock(): void;
102
- scroll(options?: ScrollToOptions | undefined): void;
102
+ scroll(options?: ScrollToOptions): void;
103
103
  scroll(x: number, y: number): void;
104
- scrollBy(options?: ScrollToOptions | undefined): void;
104
+ scrollBy(options?: ScrollToOptions): void;
105
105
  scrollBy(x: number, y: number): void;
106
- scrollIntoView(arg?: boolean | ScrollIntoViewOptions | undefined): void;
107
- scrollTo(options?: ScrollToOptions | undefined): void;
106
+ scrollIntoView(arg?: boolean | ScrollIntoViewOptions): void;
107
+ scrollTo(options?: ScrollToOptions): void;
108
108
  scrollTo(x: number, y: number): void;
109
109
  setAttribute(qualifiedName: string, value: string): void;
110
110
  setAttributeNS(namespace: string | null, qualifiedName: string, value: string): void;
111
111
  setAttributeNode(attr: Attr): Attr | null;
112
112
  setAttributeNodeNS(attr: Attr): Attr | null;
113
+ setHTMLUnsafe(html: string): void;
113
114
  setPointerCapture(pointerId: number): void;
114
- toggleAttribute(qualifiedName: string, force?: boolean | undefined): boolean;
115
+ toggleAttribute(qualifiedName: string, force?: boolean): boolean;
115
116
  webkitMatchesSelector(selectors: string): boolean;
116
117
  readonly baseURI: string;
117
118
  readonly childNodes: NodeListOf<ChildNode>;
@@ -127,20 +128,20 @@ declare const CDSContentSwitcherItem_base: {
127
128
  readonly previousSibling: ChildNode | null;
128
129
  textContent: string | null;
129
130
  appendChild<T extends Node>(node: T): T;
130
- cloneNode(deep?: boolean | undefined): Node;
131
+ cloneNode(deep?: boolean): Node;
131
132
  compareDocumentPosition(other: Node): number;
132
133
  contains(other: Node | null): boolean;
133
- getRootNode(options?: GetRootNodeOptions | undefined): Node;
134
+ getRootNode(options?: GetRootNodeOptions): Node;
134
135
  hasChildNodes(): boolean;
135
- insertBefore<T_1 extends Node>(node: T_1, child: Node | null): T_1;
136
+ insertBefore<T extends Node>(node: T, child: Node | null): T;
136
137
  isDefaultNamespace(namespace: string | null): boolean;
137
138
  isEqualNode(otherNode: Node | null): boolean;
138
139
  isSameNode(otherNode: Node | null): boolean;
139
140
  lookupNamespaceURI(prefix: string | null): string | null;
140
141
  lookupPrefix(namespace: string | null): string | null;
141
142
  normalize(): void;
142
- removeChild<T_2 extends Node>(child: T_2): T_2;
143
- replaceChild<T_3 extends Node>(node: Node, child: T_3): T_3;
143
+ removeChild<T extends Node>(child: T): T;
144
+ replaceChild<T extends Node>(node: Node, child: T): T;
144
145
  readonly ELEMENT_NODE: 1;
145
146
  readonly ATTRIBUTE_NODE: 2;
146
147
  readonly TEXT_NODE: 3;
@@ -162,6 +163,8 @@ declare const CDSContentSwitcherItem_base: {
162
163
  dispatchEvent(event: Event): boolean;
163
164
  ariaAtomic: string | null;
164
165
  ariaAutoComplete: string | null;
166
+ ariaBrailleLabel: string | null;
167
+ ariaBrailleRoleDescription: string | null;
165
168
  ariaBusy: string | null;
166
169
  ariaChecked: string | null;
167
170
  ariaColCount: string | null;
@@ -199,12 +202,12 @@ declare const CDSContentSwitcherItem_base: {
199
202
  ariaValueNow: string | null;
200
203
  ariaValueText: string | null;
201
204
  role: string | null;
202
- animate(keyframes: Keyframe[] | PropertyIndexedKeyframes | null, options?: number | KeyframeAnimationOptions | undefined): Animation;
203
- getAnimations(options?: GetAnimationsOptions | undefined): Animation[];
204
- after(...nodes: (string | Node)[]): void;
205
- before(...nodes: (string | Node)[]): void;
205
+ animate(keyframes: Keyframe[] | PropertyIndexedKeyframes | null, options?: number | KeyframeAnimationOptions): Animation;
206
+ getAnimations(options?: GetAnimationsOptions): Animation[];
207
+ after(...nodes: (Node | string)[]): void;
208
+ before(...nodes: (Node | string)[]): void;
206
209
  remove(): void;
207
- replaceWith(...nodes: (string | Node)[]): void;
210
+ replaceWith(...nodes: (Node | string)[]): void;
208
211
  innerHTML: string;
209
212
  readonly nextElementSibling: Element | null;
210
213
  readonly previousElementSibling: Element | null;
@@ -212,19 +215,19 @@ declare const CDSContentSwitcherItem_base: {
212
215
  readonly children: HTMLCollection;
213
216
  readonly firstElementChild: Element | null;
214
217
  readonly lastElementChild: Element | null;
215
- append(...nodes: (string | Node)[]): void;
216
- prepend(...nodes: (string | Node)[]): void;
217
- querySelector<K_9 extends keyof HTMLElementTagNameMap>(selectors: K_9): HTMLElementTagNameMap[K_9] | null;
218
- querySelector<K_10 extends keyof SVGElementTagNameMap>(selectors: K_10): SVGElementTagNameMap[K_10] | null;
219
- querySelector<K_11 extends keyof MathMLElementTagNameMap>(selectors: K_11): MathMLElementTagNameMap[K_11] | null;
220
- querySelector<K_12 extends keyof HTMLElementDeprecatedTagNameMap>(selectors: K_12): HTMLElementDeprecatedTagNameMap[K_12] | null;
221
- querySelector<E_1 extends Element = Element>(selectors: string): E_1 | null;
222
- querySelectorAll<K_13 extends keyof HTMLElementTagNameMap>(selectors: K_13): NodeListOf<HTMLElementTagNameMap[K_13]>;
223
- querySelectorAll<K_14 extends keyof SVGElementTagNameMap>(selectors: K_14): NodeListOf<SVGElementTagNameMap[K_14]>;
224
- querySelectorAll<K_15 extends keyof MathMLElementTagNameMap>(selectors: K_15): NodeListOf<MathMLElementTagNameMap[K_15]>;
225
- querySelectorAll<K_16 extends keyof HTMLElementDeprecatedTagNameMap>(selectors: K_16): NodeListOf<HTMLElementDeprecatedTagNameMap[K_16]>;
226
- querySelectorAll<E_2 extends Element = Element>(selectors: string): NodeListOf<E_2>;
227
- replaceChildren(...nodes: (string | Node)[]): void;
218
+ append(...nodes: (Node | string)[]): void;
219
+ prepend(...nodes: (Node | string)[]): void;
220
+ querySelector<K extends keyof HTMLElementTagNameMap>(selectors: K): HTMLElementTagNameMap[K] | null;
221
+ querySelector<K extends keyof SVGElementTagNameMap>(selectors: K): SVGElementTagNameMap[K] | null;
222
+ querySelector<K extends keyof MathMLElementTagNameMap>(selectors: K): MathMLElementTagNameMap[K] | null;
223
+ querySelector<K extends keyof HTMLElementDeprecatedTagNameMap>(selectors: K): HTMLElementDeprecatedTagNameMap[K] | null;
224
+ querySelector<E extends Element = Element>(selectors: string): E | null;
225
+ querySelectorAll<K extends keyof HTMLElementTagNameMap>(selectors: K): NodeListOf<HTMLElementTagNameMap[K]>;
226
+ querySelectorAll<K extends keyof SVGElementTagNameMap>(selectors: K): NodeListOf<SVGElementTagNameMap[K]>;
227
+ querySelectorAll<K extends keyof MathMLElementTagNameMap>(selectors: K): NodeListOf<MathMLElementTagNameMap[K]>;
228
+ querySelectorAll<K extends keyof HTMLElementDeprecatedTagNameMap>(selectors: K): NodeListOf<HTMLElementDeprecatedTagNameMap[K]>;
229
+ querySelectorAll<E extends Element = Element>(selectors: string): NodeListOf<E>;
230
+ replaceChildren(...nodes: (Node | string)[]): void;
228
231
  readonly assignedSlot: HTMLSlotElement | null;
229
232
  readonly attributeStyleMap: StylePropertyMap;
230
233
  readonly style: CSSStyleDeclaration;
@@ -295,7 +298,7 @@ declare const CDSContentSwitcherItem_base: {
295
298
  onpointerout: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
296
299
  onpointerover: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
297
300
  onpointerup: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
298
- onprogress: ((this: GlobalEventHandlers, ev: ProgressEvent<EventTarget>) => any) | null;
301
+ onprogress: ((this: GlobalEventHandlers, ev: ProgressEvent) => any) | null;
299
302
  onratechange: ((this: GlobalEventHandlers, ev: Event) => any) | null;
300
303
  onreset: ((this: GlobalEventHandlers, ev: Event) => any) | null;
301
304
  onresize: ((this: GlobalEventHandlers, ev: UIEvent) => any) | null;
@@ -330,7 +333,7 @@ declare const CDSContentSwitcherItem_base: {
330
333
  onwheel: ((this: GlobalEventHandlers, ev: WheelEvent) => any) | null;
331
334
  autofocus: boolean;
332
335
  readonly dataset: DOMStringMap;
333
- nonce?: string | undefined;
336
+ nonce?: string;
334
337
  tabIndex: number;
335
338
  blur(): void;
336
339
  };
@@ -399,7 +402,8 @@ export default class CDSContentSwitcherItem extends CDSContentSwitcherItem_base
399
402
  static shadowRootOptions: {
400
403
  delegatesFocus: boolean;
401
404
  mode: ShadowRootMode;
402
- slotAssignment?: SlotAssignmentMode | undefined;
405
+ serializable?: boolean;
406
+ slotAssignment?: SlotAssignmentMode;
403
407
  };
404
408
  static styles: any;
405
409
  }
@@ -1 +1 @@
1
- {"version":3,"file":"content-switcher-item.js","names":["classMap","ifDefined","LitElement","html","property","prefix","FocusMixin","styles","carbonElement","customElement","CDSContentSwitcherItem","_decorate","_initialize","_FocusMixin","constructor","args","F","d","kind","decorators","type","Boolean","reflect","key","value","attribute","String","updated","changedProperties","_this$shadowRoot","shadowRoot","querySelector","classList","add","_renderTooltipContent","_t","_","shouldUpdate","has","selected","target","doc","getRootNode","targetNode","getElementById","toggleAttribute","render","disabled","className","switcherItem","_t2","icon","align","closeOnActivation","enterDelayMs","leaveDelayMs","_t3","static","_objectSpread","shadowRootOptions","delegatesFocus","default"],"sources":["components/content-switcher/content-switcher-item.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 { classMap } from 'lit/directives/class-map.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { LitElement, html } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { prefix } from '../../globals/settings';\nimport FocusMixin from '../../globals/mixins/focus';\nimport styles from './content-switcher.scss';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\n\n/**\n * Content switcher button.\n *\n * @element cds-content-switcher-item\n */\n@customElement(`${prefix}-content-switcher-item`)\nexport default class CDSContentSwitcherItem extends FocusMixin(LitElement) {\n /**\n * `true` if this content switcher item should be disabled.\n */\n @property({ type: Boolean, reflect: true })\n disabled = false;\n\n /**\n * `true` to hide the divider at the left.\n *\n * @private\n */\n @property({ type: Boolean, reflect: true, attribute: 'hide-divider' })\n hideDivider = false;\n\n /**\n * `true` if the content switcher button should be selected.\n *\n * @private\n */\n @property({ type: Boolean, reflect: true })\n selected = false;\n\n /**\n * The element ID of target panel.\n */\n @property()\n target!: string;\n\n /**\n * The `value` attribute that is set to the parent `<cds-content-switcher>`\n * when this content switcher item is selected.\n */\n @property()\n value = '';\n\n /**\n * `true` if the content switcher button should be icon-only.\n */\n @property({ type: Boolean, reflect: true })\n icon = false;\n\n /**\n * Specify how the trigger should align with the tooltip for icon-only\n * switcher item\n */\n @property({ reflect: true, type: String })\n align = 'top';\n\n /**\n * Determines whether the tooltip should close when inner content is\n * activated (click, Enter or Space)\n */\n @property({ attribute: 'close-on-activation', reflect: true, type: Boolean })\n closeOnActivation = true;\n\n /**\n * Specify the duration in milliseconds to delay before displaying the\n * tooltip for icon-only switcher item\n */\n enterDelayMs = 100;\n\n /**\n * Specify the duration in milliseconds to delay before hiding the tooltip\n * for icon-only switcher-item\n *\n * TODO: match upstream value once #10471 is resolved\n */\n leaveDelayMs = 100;\n\n updated(changedProperties) {\n if (changedProperties) {\n this.shadowRoot\n ?.querySelector(`${prefix}-tooltip`)\n ?.shadowRoot?.querySelector(`.${prefix}--tooltip`)\n ?.classList.add(`${prefix}--icon-tooltip`);\n }\n }\n\n // eslint-disable-next-line class-methods-use-this\n protected _renderTooltipContent() {\n return html`\n <cds-tooltip-content>\n <slot name=\"tooltip-content\"></slot>\n </cds-tooltip-content>\n `;\n }\n\n shouldUpdate(changedProperties) {\n if (changedProperties.has('selected') || changedProperties.has('target')) {\n const { selected, target } = this;\n if (target) {\n const doc = this.getRootNode() as HTMLDocument;\n // `doc` can be an element if such element is orphaned\n const targetNode = doc?.getElementById(target);\n targetNode?.toggleAttribute('hidden', !selected);\n }\n }\n return true;\n }\n\n render() {\n const { disabled, selected, target } = this;\n const className = classMap({\n [`${prefix}--content-switcher-btn`]: true,\n [`${prefix}--content-switcher--selected`]: selected,\n });\n const switcherItem = html`<button\n type=\"button\"\n role=\"tab\"\n class=\"${className}\"\n ?disabled=\"${disabled}\"\n tabindex=\"${selected ? '0' : '-1'}\"\n aria-controls=\"${ifDefined(target)}\"\n aria-selected=\"${Boolean(selected)}\">\n <span class=\"${prefix}--content-switcher__label\"><slot></slot></span>\n </button>`;\n\n if (this.icon) {\n const { align, closeOnActivation, enterDelayMs, leaveDelayMs } = this;\n return html`<cds-tooltip\n align=${align}\n close-on-activation=\"${closeOnActivation}\"\n enter-delay-ms=${enterDelayMs}\n leave-delay-ms=${leaveDelayMs}>\n ${switcherItem} ${this._renderTooltipContent()}\n </cds-tooltip>`;\n }\n return switcherItem;\n }\n\n static shadowRootOptions = {\n ...LitElement.shadowRootOptions,\n delegatesFocus: true,\n };\n static styles = styles;\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"content-switcher-item.js","names":["classMap","ifDefined","LitElement","html","property","prefix","FocusMixin","styles","carbonElement","customElement","CDSContentSwitcherItem","_decorate","_initialize","_FocusMixin","constructor","args","F","d","kind","decorators","type","Boolean","reflect","key","value","attribute","String","updated","changedProperties","_this$shadowRoot","shadowRoot","querySelector","classList","add","_renderTooltipContent","_t","_","shouldUpdate","has","selected","target","doc","getRootNode","targetNode","getElementById","toggleAttribute","render","disabled","className","switcherItem","_t2","icon","align","closeOnActivation","enterDelayMs","leaveDelayMs","_t3","static","_objectSpread","shadowRootOptions","delegatesFocus","default"],"sources":["components/content-switcher/content-switcher-item.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 { classMap } from 'lit/directives/class-map.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { LitElement, html } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { prefix } from '../../globals/settings';\nimport FocusMixin from '../../globals/mixins/focus';\nimport styles from './content-switcher.scss';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\n\n/**\n * Content switcher button.\n *\n * @element cds-content-switcher-item\n */\n@customElement(`${prefix}-content-switcher-item`)\nexport default class CDSContentSwitcherItem extends FocusMixin(LitElement) {\n /**\n * `true` if this content switcher item should be disabled.\n */\n @property({ type: Boolean, reflect: true })\n disabled = false;\n\n /**\n * `true` to hide the divider at the left.\n *\n * @private\n */\n @property({ type: Boolean, reflect: true, attribute: 'hide-divider' })\n hideDivider = false;\n\n /**\n * `true` if the content switcher button should be selected.\n *\n * @private\n */\n @property({ type: Boolean, reflect: true })\n selected = false;\n\n /**\n * The element ID of target panel.\n */\n @property()\n target!: string;\n\n /**\n * The `value` attribute that is set to the parent `<cds-content-switcher>`\n * when this content switcher item is selected.\n */\n @property()\n value = '';\n\n /**\n * `true` if the content switcher button should be icon-only.\n */\n @property({ type: Boolean, reflect: true })\n icon = false;\n\n /**\n * Specify how the trigger should align with the tooltip for icon-only\n * switcher item\n */\n @property({ reflect: true, type: String })\n align = 'top';\n\n /**\n * Determines whether the tooltip should close when inner content is\n * activated (click, Enter or Space)\n */\n @property({ attribute: 'close-on-activation', reflect: true, type: Boolean })\n closeOnActivation = true;\n\n /**\n * Specify the duration in milliseconds to delay before displaying the\n * tooltip for icon-only switcher item\n */\n enterDelayMs = 100;\n\n /**\n * Specify the duration in milliseconds to delay before hiding the tooltip\n * for icon-only switcher-item\n *\n * TODO: match upstream value once #10471 is resolved\n */\n leaveDelayMs = 100;\n\n updated(changedProperties) {\n if (changedProperties) {\n this.shadowRoot\n ?.querySelector(`${prefix}-tooltip`)\n ?.shadowRoot?.querySelector(`.${prefix}--tooltip`)\n ?.classList.add(`${prefix}--icon-tooltip`);\n }\n }\n\n // eslint-disable-next-line class-methods-use-this\n protected _renderTooltipContent() {\n return html`\n <cds-tooltip-content>\n <slot name=\"tooltip-content\"></slot>\n </cds-tooltip-content>\n `;\n }\n\n shouldUpdate(changedProperties) {\n if (changedProperties.has('selected') || changedProperties.has('target')) {\n const { selected, target } = this;\n if (target) {\n const doc = this.getRootNode() as HTMLDocument;\n // `doc` can be an element if such element is orphaned\n const targetNode = doc?.getElementById(target);\n targetNode?.toggleAttribute('hidden', !selected);\n }\n }\n return true;\n }\n\n render() {\n const { disabled, selected, target } = this;\n const className = classMap({\n [`${prefix}--content-switcher-btn`]: true,\n [`${prefix}--content-switcher--selected`]: selected,\n });\n const switcherItem = html`<button\n type=\"button\"\n role=\"tab\"\n class=\"${className}\"\n ?disabled=\"${disabled}\"\n tabindex=\"${selected ? '0' : '-1'}\"\n aria-controls=\"${ifDefined(target)}\"\n aria-selected=\"${Boolean(selected)}\">\n <span class=\"${prefix}--content-switcher__label\"><slot></slot></span>\n </button>`;\n\n if (this.icon) {\n const { align, closeOnActivation, enterDelayMs, leaveDelayMs } = this;\n return html`<cds-tooltip\n align=${align}\n close-on-activation=\"${closeOnActivation}\"\n enter-delay-ms=${enterDelayMs}\n leave-delay-ms=${leaveDelayMs}>\n ${switcherItem} ${this._renderTooltipContent()}\n </cds-tooltip>`;\n }\n return switcherItem;\n }\n\n static shadowRootOptions = {\n ...LitElement.shadowRootOptions,\n delegatesFocus: true,\n };\n static styles = styles;\n}\n"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,QAAQ,QAAQ,6BAA6B;AACtD,SAASC,SAAS,QAAQ,8BAA8B;AACxD,SAASC,UAAU,EAAEC,IAAI,QAAQ,KAAK;AACtC,SAASC,QAAQ,QAAQ,mBAAmB;AAC5C,SAASC,MAAM,QAAQ,wBAAwB;AAC/C,OAAOC,UAAU,MAAM,4BAA4B;AACnD,OAAOC,MAAM,MAAM,6BAAyB;AAC5C,SAASC,aAAa,IAAIC,aAAa,QAAQ,yCAAyC;;AAExF;AACA;AACA;AACA;AACA;AAJA,IAMqBC,sBAAsB,GAAAC,SAAA,EAD1CF,aAAa,CAAC,GAAGJ,MAAM,wBAAwB,CAAC,aAAAO,WAAA,EAAAC,WAAA;EAAjD,MACqBH,sBAAsB,SAAAG,WAAA,CAAgC;IAAAC,YAAA,GAAAC,IAAA;MAAA,SAAAA,IAAA;MAAAH,WAAA;IAAA;EAwI3E;EAAC;IAAAI,CAAA,EAxIoBN,sBAAsB;IAAAO,CAAA;MAAAC,IAAA;MAAAC,UAAA,GAIxCf,QAAQ,CAAC;QAAEgB,IAAI,EAAEC,OAAO;QAAEC,OAAO,EAAE;MAAK,CAAC,CAAC;MAAAC,GAAA;MAAAC,MAAA;QAAA,OAChC,KAAK;MAAA;IAAA;MAAAN,IAAA;MAAAC,UAAA,GAOff,QAAQ,CAAC;QAAEgB,IAAI,EAAEC,OAAO;QAAEC,OAAO,EAAE,IAAI;QAAEG,SAAS,EAAE;MAAe,CAAC,CAAC;MAAAF,GAAA;MAAAC,MAAA;QAAA,OACxD,KAAK;MAAA;IAAA;MAAAN,IAAA;MAAAC,UAAA,GAOlBf,QAAQ,CAAC;QAAEgB,IAAI,EAAEC,OAAO;QAAEC,OAAO,EAAE;MAAK,CAAC,CAAC;MAAAC,GAAA;MAAAC,MAAA;QAAA,OAChC,KAAK;MAAA;IAAA;MAAAN,IAAA;MAAAC,UAAA,GAKff,QAAQ,CAAC,CAAC;MAAAmB,GAAA;MAAAC,KAAA;IAAA;MAAAN,IAAA;MAAAC,UAAA,GAOVf,QAAQ,CAAC,CAAC;MAAAmB,GAAA;MAAAC,MAAA;QAAA,OACH,EAAE;MAAA;IAAA;MAAAN,IAAA;MAAAC,UAAA,GAKTf,QAAQ,CAAC;QAAEgB,IAAI,EAAEC,OAAO;QAAEC,OAAO,EAAE;MAAK,CAAC,CAAC;MAAAC,GAAA;MAAAC,MAAA;QAAA,OACpC,KAAK;MAAA;IAAA;MAAAN,IAAA;MAAAC,UAAA,GAMXf,QAAQ,CAAC;QAAEkB,OAAO,EAAE,IAAI;QAAEF,IAAI,EAAEM;MAAO,CAAC,CAAC;MAAAH,GAAA;MAAAC,MAAA;QAAA,OAClC,KAAK;MAAA;IAAA;MAAAN,IAAA;MAAAC,UAAA,GAMZf,QAAQ,CAAC;QAAEqB,SAAS,EAAE,qBAAqB;QAAEH,OAAO,EAAE,IAAI;QAAEF,IAAI,EAAEC;MAAQ,CAAC,CAAC;MAAAE,GAAA;MAAAC,MAAA;QAAA,OACzD,IAAI;MAAA;IAAA;MAAAN,IAAA;MAAAK,GAAA;MAAAC,MAAA;QAAA,OAMT,GAAG;MAAA;IAAA;MAAAN,IAAA;MAAAK,GAAA;MAAAC,MAAA;QAAA,OAQH,GAAG;MAAA;IAAA;MAAAN,IAAA;MAAAK,GAAA;MAAAC,KAAA;MAnElB;AACF;AACA;;MAIE;AACF;AACA;AACA;AACA;;MAIE;AACF;AACA;AACA;AACA;;MAIE;AACF;AACA;;MAIE;AACF;AACA;AACA;;MAIE;AACF;AACA;;MAIE;AACF;AACA;AACA;;MAIE;AACF;AACA;AACA;;MAIE;AACF;AACA;AACA;;MAGE;AACF;AACA;AACA;AACA;AACA;;MAGE,SAAAG,QAAQC,iBAAiB,EAAE;QACzB,IAAIA,iBAAiB,EAAE;UAAA,IAAAC,gBAAA;UACrB,CAAAA,gBAAA,OAAI,CAACC,UAAU,cAAAD,gBAAA,gBAAAA,gBAAA,GAAfA,gBAAA,CACIE,aAAa,CAAC,GAAG1B,MAAM,UAAU,CAAC,cAAAwB,gBAAA,gBAAAA,gBAAA,GADtCA,gBAAA,CAEIC,UAAU,cAAAD,gBAAA,gBAAAA,gBAAA,GAFdA,gBAAA,CAEgBE,aAAa,CAAC,IAAI1B,MAAM,WAAW,CAAC,cAAAwB,gBAAA,eAFpDA,gBAAA,CAGIG,SAAS,CAACC,GAAG,CAAC,GAAG5B,MAAM,gBAAgB,CAAC;QAC9C;MACF;;MAEA;IAAA;MAAAa,IAAA;MAAAK,GAAA;MAAAC,KAAA,EACA,SAAAU,sBAAA,EAAkC;QAChC,OAAO/B,IAAI,CAAAgC,EAAA,KAAAA,EAAA,GAAAC,CAAA;AACf;AACA;AACA;AACA,KAJe;MAKb;IAAC;MAAAlB,IAAA;MAAAK,GAAA;MAAAC,KAAA,EAED,SAAAa,aAAaT,iBAAiB,EAAE;QAC9B,IAAIA,iBAAiB,CAACU,GAAG,CAAC,UAAU,CAAC,IAAIV,iBAAiB,CAACU,GAAG,CAAC,QAAQ,CAAC,EAAE;UACxE,MAAM;YAAEC,QAAQ;YAAEC;UAAO,CAAC,GAAG,IAAI;UACjC,IAAIA,MAAM,EAAE;YACV,MAAMC,GAAG,GAAG,IAAI,CAACC,WAAW,CAAC,CAAiB;YAC9C;YACA,MAAMC,UAAU,GAAGF,GAAG,aAAHA,GAAG,uBAAHA,GAAG,CAAEG,cAAc,CAACJ,MAAM,CAAC;YAC9CG,UAAU,aAAVA,UAAU,eAAVA,UAAU,CAAEE,eAAe,CAAC,QAAQ,EAAE,CAACN,QAAQ,CAAC;UAClD;QACF;QACA,OAAO,IAAI;MACb;IAAC;MAAArB,IAAA;MAAAK,GAAA;MAAAC,KAAA,EAED,SAAAsB,OAAA,EAAS;QACP,MAAM;UAAEC,QAAQ;UAAER,QAAQ;UAAEC;QAAO,CAAC,GAAG,IAAI;QAC3C,MAAMQ,SAAS,GAAGhD,QAAQ,CAAC;UACzB,CAAC,GAAGK,MAAM,wBAAwB,GAAG,IAAI;UACzC,CAAC,GAAGA,MAAM,8BAA8B,GAAGkC;QAC7C,CAAC,CAAC;QACF,MAAMU,YAAY,GAAG9C,IAAI,CAAA+C,GAAA,KAAAA,GAAA,GAAAd,CAAA;AAC7B;AACA;AACA,eAH6B;AAC7B,mBAD6B;AAC7B,kBAD6B;AAC7B,uBAD6B;AAC7B,uBAD6B;AAC7B,qBAD6B;AAC7B,cAD6B,GAGdY,SAAS,EACLD,QAAQ,EACTR,QAAQ,GAAG,GAAG,GAAG,IAAI,EAChBtC,SAAS,CAACuC,MAAM,CAAC,EACjBnB,OAAO,CAACkB,QAAQ,CAAC,EACnBlC,MAAM,CACb;QAEV,IAAI,IAAI,CAAC8C,IAAI,EAAE;UACb,MAAM;YAAEC,KAAK;YAAEC,iBAAiB;YAAEC,YAAY;YAAEC;UAAa,CAAC,GAAG,IAAI;UACrE,OAAOpD,IAAI,CAAAqD,GAAA,KAAAA,GAAA,GAAApB,CAAA;AACjB,gBADiB;AACjB,+BADiB;AACjB,yBADiB;AACjB,yBADiB;AACjB,UADiB;AACjB,qBADiB,GACDgB,KAAK,EACUC,iBAAiB,EACvBC,YAAY,EACZC,YAAY,EAC3BN,YAAY,EAAI,IAAI,CAACf,qBAAqB,CAAC,CAAC;QAElD;QACA,OAAOe,YAAY;MACrB;IAAC;MAAA/B,IAAA;MAAAuC,MAAA;MAAAlC,GAAA;MAAAC,MAAA;QAAA,OAAAkC,aAAA,CAAAA,aAAA,KAGIxD,UAAU,CAACyD,iBAAiB;UAC/BC,cAAc,EAAE;QAAI;MAAA;IAAA;MAAA1C,IAAA;MAAAuC,MAAA;MAAAlC,GAAA;MAAAC,MAAA;QAAA,OAENjB,MAAM;MAAA;IAAA;EAAA;AAAA,GAvI4BD,UAAU,CAACJ,UAAU,CAAC;AAAA,SAArDQ,sBAAsB,IAAAmD,OAAA","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"content-switcher.js","names":["LitElement","html","property","prefix","forEach","indexOf","NAVIGATION_DIRECTION","CONTENT_SWITCHER_SIZE","styles","carbonElement","customElement","capIndex","index","length","CDSContentSwitcher","_decorate","_initialize","_LitElement","constructor","args","F","d","kind","key","value","_handleHover","target","type","selectorItem","items","querySelectorAll","closest","nextIndex","elem","i","hideDivider","selectorItemSelected","selectedItem","querySelector","nextItem","_getNextItem","_getCurrentItem","_items$index","selectorItemEnabled","containerItem","currentItem","direction","currentIndex","_handleClick","_handleUserInitiatedSelectItem","_handleKeydown","_navigate","item","disabled","init","bubbles","composed","detail","beforeSelectEvent","CustomEvent","eventBeforeSelect","_objectSpread","cancelable","dispatchEvent","_selectionDidChange","afterSelectEvent","eventSelect","requestUpdate","itemToSelect","selected","Promise","resolve","then","focus","decorators","reflect","REGULAR","Boolean","attribute","shouldUpdate","changedProperties","has","selectorIconItem","iconOnly","_handleSlotchange","static","render","handleHover","handleKeydown","handleSlotchange","_t","_","default"],"sources":["components/content-switcher/content-switcher.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 { LitElement, html } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { prefix } from '../../globals/settings';\nimport { forEach, indexOf } from '../../globals/internal/collection-helpers';\nimport { NAVIGATION_DIRECTION, CONTENT_SWITCHER_SIZE } from './defs';\nimport CDSContentSwitcherItem from './content-switcher-item';\nimport styles from './content-switcher.scss';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\n\nexport { NAVIGATION_DIRECTION, CONTENT_SWITCHER_SIZE };\n\n/**\n * @param index The index\n * @param length The length of the array.\n * @returns The new index, adjusting overflow/underflow.\n */\nconst capIndex = (index: number, length: number) => {\n if (index < 0) {\n return length - 1;\n }\n if (index >= length) {\n return 0;\n }\n return index;\n};\n\n/**\n * Content switcher.\n *\n * @element cds-content-switcher\n * @fires cds-content-switcher-beingselected\n * The custom event fired before a content switcher item is selected upon a user gesture.\n * Cancellation of this event stops changing the user-initiated selection.\n * @fires cds-content-switcher-selected - The custom event fired after a a content switcher item is selected upon a user gesture.\n */\n@customElement(`${prefix}-content-switcher`)\nexport default class CDSContentSwitcher extends LitElement {\n /**\n * Handles `mouseover`/`mouseout` events on `<slot>`.\n *\n * @param event The event.\n * @param event.target The event target.\n * @param event.type The event type.\n */\n private _handleHover({ target, type }: MouseEvent) {\n const { selectorItem } = this.constructor as typeof CDSContentSwitcher;\n const items = this.querySelectorAll(selectorItem);\n const index =\n type !== 'mouseover'\n ? -1\n : indexOf(items, (target as Element).closest(selectorItem)!);\n const nextIndex = index < 0 ? index : index + 1;\n forEach(this.querySelectorAll(selectorItem), (elem, i) => {\n // Specifies child `<cds-content-switcher-item>` to hide its divider instead of using CSS,\n // until `:host-context()` gets supported in all major browsers\n (elem as CDSContentSwitcherItem).hideDivider = i === nextIndex;\n });\n\n const { selectorItemSelected } = this\n .constructor as typeof CDSContentSwitcher;\n const selectedItem = this.querySelector(selectorItemSelected);\n const nextItem = this._getNextItem(\n selectedItem as CDSContentSwitcherItem,\n 1\n );\n (nextItem as CDSContentSwitcherItem).hideDivider = true;\n }\n\n /**\n * @param target The current event target.\n * @returns The item to be selected.\n */\n protected _getCurrentItem(target: HTMLElement) {\n const items = this.querySelectorAll(\n (this.constructor as typeof CDSContentSwitcher).selectorItemEnabled\n );\n const { selectorItem } = this.constructor as typeof CDSContentSwitcher;\n const containerItem = target.closest(\n selectorItem\n ) as CDSContentSwitcherItem;\n const index = indexOf(items, containerItem);\n return items[index] ?? null;\n }\n\n /**\n * @param currentItem The currently selected item.\n * @param direction The navigation direction.\n * @returns The item to be selected.\n */\n protected _getNextItem(\n currentItem: CDSContentSwitcherItem,\n direction: number\n ) {\n const items = this.querySelectorAll(\n (this.constructor as typeof CDSContentSwitcher).selectorItemEnabled\n );\n const currentIndex = indexOf(items, currentItem);\n const nextIndex = capIndex(currentIndex + direction, items.length);\n return nextIndex === currentIndex ? null : items[nextIndex];\n }\n\n /**\n * Handles `click` event on content switcher item.\n *\n * @param event The event.\n * @param event.target The event target.\n */\n protected _handleClick({ target }: MouseEvent) {\n const currentItem = this._getCurrentItem(target as HTMLElement);\n this._handleUserInitiatedSelectItem(currentItem as CDSContentSwitcherItem);\n }\n\n /**\n * Handles `keydown` event on the top-level element in the shadow DOM.\n *\n * @param event The event.\n * @param event.key The event key.\n */\n protected _handleKeydown({ key }: KeyboardEvent) {\n if (key in NAVIGATION_DIRECTION) {\n this._navigate(NAVIGATION_DIRECTION[key]);\n }\n }\n\n /**\n * Handles user-initiated selection of a content switcher item.\n *\n * @param [item] The content switcher item user wants to select.\n */\n protected _handleUserInitiatedSelectItem(item: CDSContentSwitcherItem) {\n if (!item.disabled && item.value !== this.value) {\n const init = {\n bubbles: true,\n composed: true,\n detail: {\n item,\n },\n };\n const constructor = this.constructor as typeof CDSContentSwitcher;\n const beforeSelectEvent = new CustomEvent(constructor.eventBeforeSelect, {\n ...init,\n cancelable: true,\n });\n if (this.dispatchEvent(beforeSelectEvent)) {\n this._selectionDidChange(item);\n const afterSelectEvent = new CustomEvent(constructor.eventSelect, init);\n this.dispatchEvent(afterSelectEvent);\n }\n }\n }\n\n /**\n * Navigates through content switcher items.\n *\n * @param direction `-1` to navigate backward, `1` to navigate forward.\n */\n protected _navigate(direction: number) {\n const { selectorItemSelected } = this\n .constructor as typeof CDSContentSwitcher;\n const nextItem = this._getNextItem(\n this.querySelector(selectorItemSelected) as CDSContentSwitcherItem,\n direction\n );\n if (nextItem) {\n this._handleUserInitiatedSelectItem(nextItem as CDSContentSwitcherItem);\n this.requestUpdate();\n }\n }\n\n /**\n * A callback that runs after change in content switcher selection upon user interaction is confirmed.\n *\n * @param itemToSelect A content switcher item.\n */\n protected _selectionDidChange(itemToSelect: CDSContentSwitcherItem) {\n this.value = itemToSelect.value;\n forEach(\n this.querySelectorAll(\n (this.constructor as typeof CDSContentSwitcher).selectorItemSelected\n ),\n (item) => {\n (item as CDSContentSwitcherItem).selected = false;\n }\n );\n itemToSelect.selected = true;\n // Waits for rendering with the new state that updates `tabindex`\n Promise.resolve().then(() => {\n itemToSelect.focus();\n\n const { selectorItem } = this.constructor as typeof CDSContentSwitcher;\n const items = this.querySelectorAll(selectorItem);\n const index = indexOf(\n items,\n (itemToSelect as Element).closest(selectorItem)!\n );\n const nextIndex = index < 0 ? index : index + 1;\n forEach(this.querySelectorAll(selectorItem), (elem, i) => {\n // Specifies child `<cds-content-switcher-item>` to hide its divider instead of using CSS,\n // until `:host-context()` gets supported in all major browsers\n (elem as CDSContentSwitcherItem).hideDivider = i === nextIndex;\n });\n });\n }\n\n /**\n * The value of the selected item.\n */\n @property({ reflect: true })\n value = '';\n\n /**\n * Content switcher size.\n */\n @property({ reflect: true })\n size = CONTENT_SWITCHER_SIZE.REGULAR;\n\n /**\n * Icon only.\n */\n @property({ type: Boolean, reflect: true, attribute: 'icon' })\n iconOnly = false;\n\n shouldUpdate(changedProperties) {\n if (changedProperties.has('value')) {\n const { selectorItem } = this.constructor as typeof CDSContentSwitcher;\n forEach(this.querySelectorAll(selectorItem), (elem) => {\n (elem as CDSContentSwitcherItem).selected =\n (elem as CDSContentSwitcherItem).value === this.value;\n });\n }\n const { selectorIconItem } = this.constructor as typeof CDSContentSwitcher;\n if (this.querySelector(selectorIconItem)) {\n this.iconOnly = true;\n }\n return true;\n }\n\n _handleSlotchange() {\n const { selectorItemSelected } = this\n .constructor as typeof CDSContentSwitcher;\n const selectedItem = this.querySelector(selectorItemSelected);\n const nextItem = this._getNextItem(\n selectedItem as CDSContentSwitcherItem,\n 1\n );\n\n // Specifies child `<cds-content-switcher-item>` to hide its divider instead of using CSS,\n // until `:host-context()` gets supported in all major browsers\n (nextItem as CDSContentSwitcherItem).hideDivider = true;\n }\n\n /**\n * A selector that will return content switcher items.\n */\n static get selectorItem() {\n return `${prefix}-content-switcher-item`;\n }\n\n /**\n * A selector that will return content switcher icon items.\n */\n static get selectorIconItem() {\n return `${prefix}-content-switcher-item[icon]`;\n }\n\n /**\n * A selector that will return enabled content switcher items.\n */\n static get selectorItemEnabled() {\n return `${prefix}-content-switcher-item:not([disabled])`;\n }\n\n /**\n * A selector that will return selected items.\n */\n static get selectorItemSelected() {\n return `${prefix}-content-switcher-item[selected]`;\n }\n\n /**\n * The name of the custom event fired before a content switcher item is selected upon a user gesture.\n * Cancellation of this event stops changing the user-initiated selection.\n */\n static get eventBeforeSelect() {\n return `${prefix}-content-switcher-beingselected`;\n }\n\n /**\n * The name of the custom event fired after a a content switcher item is selected upon a user gesture.\n */\n static get eventSelect() {\n return `${prefix}-content-switcher-selected`;\n }\n\n render() {\n const {\n _handleHover: handleHover,\n _handleKeydown: handleKeydown,\n _handleSlotchange: handleSlotchange,\n } = this;\n return html`\n <slot\n @click=\"${this._handleClick}\"\n @keydown=\"${handleKeydown}\"\n @mouseover=\"${handleHover}\"\n @mouseout=\"${handleHover}\"\n @slotchange=${handleSlotchange}></slot>\n `;\n }\n\n static styles = styles;\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"content-switcher.js","names":["LitElement","html","property","prefix","forEach","indexOf","NAVIGATION_DIRECTION","CONTENT_SWITCHER_SIZE","styles","carbonElement","customElement","capIndex","index","length","CDSContentSwitcher","_decorate","_initialize","_LitElement","constructor","args","F","d","kind","key","value","_handleHover","target","type","selectorItem","items","querySelectorAll","closest","nextIndex","elem","i","hideDivider","selectorItemSelected","selectedItem","querySelector","nextItem","_getNextItem","_getCurrentItem","_items$index","selectorItemEnabled","containerItem","currentItem","direction","currentIndex","_handleClick","_handleUserInitiatedSelectItem","_handleKeydown","_navigate","item","disabled","init","bubbles","composed","detail","beforeSelectEvent","CustomEvent","eventBeforeSelect","_objectSpread","cancelable","dispatchEvent","_selectionDidChange","afterSelectEvent","eventSelect","requestUpdate","itemToSelect","selected","Promise","resolve","then","focus","decorators","reflect","REGULAR","Boolean","attribute","shouldUpdate","changedProperties","has","selectorIconItem","iconOnly","_handleSlotchange","static","render","handleHover","handleKeydown","handleSlotchange","_t","_","default"],"sources":["components/content-switcher/content-switcher.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 { LitElement, html } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { prefix } from '../../globals/settings';\nimport { forEach, indexOf } from '../../globals/internal/collection-helpers';\nimport { NAVIGATION_DIRECTION, CONTENT_SWITCHER_SIZE } from './defs';\nimport CDSContentSwitcherItem from './content-switcher-item';\nimport styles from './content-switcher.scss';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\n\nexport { NAVIGATION_DIRECTION, CONTENT_SWITCHER_SIZE };\n\n/**\n * @param index The index\n * @param length The length of the array.\n * @returns The new index, adjusting overflow/underflow.\n */\nconst capIndex = (index: number, length: number) => {\n if (index < 0) {\n return length - 1;\n }\n if (index >= length) {\n return 0;\n }\n return index;\n};\n\n/**\n * Content switcher.\n *\n * @element cds-content-switcher\n * @fires cds-content-switcher-beingselected\n * The custom event fired before a content switcher item is selected upon a user gesture.\n * Cancellation of this event stops changing the user-initiated selection.\n * @fires cds-content-switcher-selected - The custom event fired after a a content switcher item is selected upon a user gesture.\n */\n@customElement(`${prefix}-content-switcher`)\nexport default class CDSContentSwitcher extends LitElement {\n /**\n * Handles `mouseover`/`mouseout` events on `<slot>`.\n *\n * @param event The event.\n * @param event.target The event target.\n * @param event.type The event type.\n */\n private _handleHover({ target, type }: MouseEvent) {\n const { selectorItem } = this.constructor as typeof CDSContentSwitcher;\n const items = this.querySelectorAll(selectorItem);\n const index =\n type !== 'mouseover'\n ? -1\n : indexOf(items, (target as Element).closest(selectorItem)!);\n const nextIndex = index < 0 ? index : index + 1;\n forEach(this.querySelectorAll(selectorItem), (elem, i) => {\n // Specifies child `<cds-content-switcher-item>` to hide its divider instead of using CSS,\n // until `:host-context()` gets supported in all major browsers\n (elem as CDSContentSwitcherItem).hideDivider = i === nextIndex;\n });\n\n const { selectorItemSelected } = this\n .constructor as typeof CDSContentSwitcher;\n const selectedItem = this.querySelector(selectorItemSelected);\n const nextItem = this._getNextItem(\n selectedItem as CDSContentSwitcherItem,\n 1\n );\n (nextItem as CDSContentSwitcherItem).hideDivider = true;\n }\n\n /**\n * @param target The current event target.\n * @returns The item to be selected.\n */\n protected _getCurrentItem(target: HTMLElement) {\n const items = this.querySelectorAll(\n (this.constructor as typeof CDSContentSwitcher).selectorItemEnabled\n );\n const { selectorItem } = this.constructor as typeof CDSContentSwitcher;\n const containerItem = target.closest(\n selectorItem\n ) as CDSContentSwitcherItem;\n const index = indexOf(items, containerItem);\n return items[index] ?? null;\n }\n\n /**\n * @param currentItem The currently selected item.\n * @param direction The navigation direction.\n * @returns The item to be selected.\n */\n protected _getNextItem(\n currentItem: CDSContentSwitcherItem,\n direction: number\n ) {\n const items = this.querySelectorAll(\n (this.constructor as typeof CDSContentSwitcher).selectorItemEnabled\n );\n const currentIndex = indexOf(items, currentItem);\n const nextIndex = capIndex(currentIndex + direction, items.length);\n return nextIndex === currentIndex ? null : items[nextIndex];\n }\n\n /**\n * Handles `click` event on content switcher item.\n *\n * @param event The event.\n * @param event.target The event target.\n */\n protected _handleClick({ target }: MouseEvent) {\n const currentItem = this._getCurrentItem(target as HTMLElement);\n this._handleUserInitiatedSelectItem(currentItem as CDSContentSwitcherItem);\n }\n\n /**\n * Handles `keydown` event on the top-level element in the shadow DOM.\n *\n * @param event The event.\n * @param event.key The event key.\n */\n protected _handleKeydown({ key }: KeyboardEvent) {\n if (key in NAVIGATION_DIRECTION) {\n this._navigate(NAVIGATION_DIRECTION[key]);\n }\n }\n\n /**\n * Handles user-initiated selection of a content switcher item.\n *\n * @param [item] The content switcher item user wants to select.\n */\n protected _handleUserInitiatedSelectItem(item: CDSContentSwitcherItem) {\n if (!item.disabled && item.value !== this.value) {\n const init = {\n bubbles: true,\n composed: true,\n detail: {\n item,\n },\n };\n const constructor = this.constructor as typeof CDSContentSwitcher;\n const beforeSelectEvent = new CustomEvent(constructor.eventBeforeSelect, {\n ...init,\n cancelable: true,\n });\n if (this.dispatchEvent(beforeSelectEvent)) {\n this._selectionDidChange(item);\n const afterSelectEvent = new CustomEvent(constructor.eventSelect, init);\n this.dispatchEvent(afterSelectEvent);\n }\n }\n }\n\n /**\n * Navigates through content switcher items.\n *\n * @param direction `-1` to navigate backward, `1` to navigate forward.\n */\n protected _navigate(direction: number) {\n const { selectorItemSelected } = this\n .constructor as typeof CDSContentSwitcher;\n const nextItem = this._getNextItem(\n this.querySelector(selectorItemSelected) as CDSContentSwitcherItem,\n direction\n );\n if (nextItem) {\n this._handleUserInitiatedSelectItem(nextItem as CDSContentSwitcherItem);\n this.requestUpdate();\n }\n }\n\n /**\n * A callback that runs after change in content switcher selection upon user interaction is confirmed.\n *\n * @param itemToSelect A content switcher item.\n */\n protected _selectionDidChange(itemToSelect: CDSContentSwitcherItem) {\n this.value = itemToSelect.value;\n forEach(\n this.querySelectorAll(\n (this.constructor as typeof CDSContentSwitcher).selectorItemSelected\n ),\n (item) => {\n (item as CDSContentSwitcherItem).selected = false;\n }\n );\n itemToSelect.selected = true;\n // Waits for rendering with the new state that updates `tabindex`\n Promise.resolve().then(() => {\n itemToSelect.focus();\n\n const { selectorItem } = this.constructor as typeof CDSContentSwitcher;\n const items = this.querySelectorAll(selectorItem);\n const index = indexOf(\n items,\n (itemToSelect as Element).closest(selectorItem)!\n );\n const nextIndex = index < 0 ? index : index + 1;\n forEach(this.querySelectorAll(selectorItem), (elem, i) => {\n // Specifies child `<cds-content-switcher-item>` to hide its divider instead of using CSS,\n // until `:host-context()` gets supported in all major browsers\n (elem as CDSContentSwitcherItem).hideDivider = i === nextIndex;\n });\n });\n }\n\n /**\n * The value of the selected item.\n */\n @property({ reflect: true })\n value = '';\n\n /**\n * Content switcher size.\n */\n @property({ reflect: true })\n size = CONTENT_SWITCHER_SIZE.REGULAR;\n\n /**\n * Icon only.\n */\n @property({ type: Boolean, reflect: true, attribute: 'icon' })\n iconOnly = false;\n\n shouldUpdate(changedProperties) {\n if (changedProperties.has('value')) {\n const { selectorItem } = this.constructor as typeof CDSContentSwitcher;\n forEach(this.querySelectorAll(selectorItem), (elem) => {\n (elem as CDSContentSwitcherItem).selected =\n (elem as CDSContentSwitcherItem).value === this.value;\n });\n }\n const { selectorIconItem } = this.constructor as typeof CDSContentSwitcher;\n if (this.querySelector(selectorIconItem)) {\n this.iconOnly = true;\n }\n return true;\n }\n\n _handleSlotchange() {\n const { selectorItemSelected } = this\n .constructor as typeof CDSContentSwitcher;\n const selectedItem = this.querySelector(selectorItemSelected);\n const nextItem = this._getNextItem(\n selectedItem as CDSContentSwitcherItem,\n 1\n );\n\n // Specifies child `<cds-content-switcher-item>` to hide its divider instead of using CSS,\n // until `:host-context()` gets supported in all major browsers\n (nextItem as CDSContentSwitcherItem).hideDivider = true;\n }\n\n /**\n * A selector that will return content switcher items.\n */\n static get selectorItem() {\n return `${prefix}-content-switcher-item`;\n }\n\n /**\n * A selector that will return content switcher icon items.\n */\n static get selectorIconItem() {\n return `${prefix}-content-switcher-item[icon]`;\n }\n\n /**\n * A selector that will return enabled content switcher items.\n */\n static get selectorItemEnabled() {\n return `${prefix}-content-switcher-item:not([disabled])`;\n }\n\n /**\n * A selector that will return selected items.\n */\n static get selectorItemSelected() {\n return `${prefix}-content-switcher-item[selected]`;\n }\n\n /**\n * The name of the custom event fired before a content switcher item is selected upon a user gesture.\n * Cancellation of this event stops changing the user-initiated selection.\n */\n static get eventBeforeSelect() {\n return `${prefix}-content-switcher-beingselected`;\n }\n\n /**\n * The name of the custom event fired after a a content switcher item is selected upon a user gesture.\n */\n static get eventSelect() {\n return `${prefix}-content-switcher-selected`;\n }\n\n render() {\n const {\n _handleHover: handleHover,\n _handleKeydown: handleKeydown,\n _handleSlotchange: handleSlotchange,\n } = this;\n return html`\n <slot\n @click=\"${this._handleClick}\"\n @keydown=\"${handleKeydown}\"\n @mouseover=\"${handleHover}\"\n @mouseout=\"${handleHover}\"\n @slotchange=${handleSlotchange}></slot>\n `;\n }\n\n static styles = styles;\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"copy.js","names":["html","property","customElement","prefix","styles","CDSIconButton","CDSCopy","_decorate","_initialize","_CDSIconButton","constructor","args","F","d","kind","key","value","timeoutId","timeout","_this$shadowRoot","buttonClasses","shadowRoot","querySelector","classList","clearTimeout","undefined","_showFeedback","add","_animation","requestUpdate","setTimeout","remove","_createHandleFeedbackTooltip","_handleClickButton","_handleFeedbackTooltip","feedbackTimeout","decorators","type","Number","attribute","_renderTooltipContent","_t","_","feedback","_t2","connectedCallback","closeOnActivation","align","addEventListener","_get","_getPrototypeOf","prototype","call","updated","changedProperties","_this$shadowRoot2","_this$shadowRoot4","_this$parentNode","_this$shadowRoot3","setAttribute","parentNode","host","textContent","static"],"sources":["components/copy/copy.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 { html } from 'lit';\nimport { property, customElement } from 'lit/decorators.js';\nimport { prefix } from '../../globals/settings';\nimport styles from '../copy-button/copy-button.scss';\nimport CDSIconButton from '../icon-button/icon-button';\n\n/**\n * Copy.\n *\n * @element cds-copy\n */\n@customElement(`${prefix}-copy`)\nclass CDSCopy extends CDSIconButton {\n /**\n * `true` to show the feedback tooltip.\n */\n private _showFeedback = false;\n\n /**\n * `true` to show the feedback tooltip.\n */\n private _animation = '';\n\n private _createHandleFeedbackTooltip = () => {\n let timeoutId: number | void;\n return (timeout: number) => {\n const buttonClasses = this.shadowRoot?.querySelector('button')?.classList;\n\n if (timeoutId) {\n clearTimeout(timeoutId);\n timeoutId = undefined;\n }\n this._showFeedback = true;\n buttonClasses?.add(`${prefix}--copy-btn--animating`);\n this._animation = 'fade-in';\n buttonClasses?.add(`${prefix}--copy-btn--${this._animation}`);\n this.requestUpdate();\n timeoutId = setTimeout(() => {\n this._showFeedback = false;\n this._animation = 'fade-out';\n buttonClasses?.remove(`${prefix}--copy-btn--fade-in`);\n buttonClasses?.add(`${prefix}--copy-btn--${this._animation}`);\n this.requestUpdate();\n }, timeout) as unknown as number;\n };\n };\n\n /**\n * Handles showing/hiding the feedback tooltip.\n */\n private _handleFeedbackTooltip = this._createHandleFeedbackTooltip();\n\n /**\n * Handles `click` event on the copy button.\n */\n private _handleClickButton() {\n this._handleFeedbackTooltip(this.feedbackTimeout);\n }\n\n /**\n * Specify the string that is displayed when the button is clicked and the content is copi\n */\n @property()\n feedback = 'Copied!';\n\n /**\n * The number in milliseconds to determine how long the tooltip should remain.\n */\n @property({ type: Number, attribute: 'feedback-timeout' })\n feedbackTimeout = 2000;\n\n // eslint-disable-next-line class-methods-use-this\n protected _renderTooltipContent() {\n return html`\n <cds-tooltip-content>\n ${this._showFeedback\n ? this.feedback\n : html`<slot name=\"tooltip-content\"></slot>`}\n </cds-tooltip-content>\n `;\n }\n\n connectedCallback() {\n this.closeOnActivation = false;\n this.align = 'bottom';\n\n this.addEventListener('click', this._handleClickButton);\n\n super.connectedCallback();\n }\n\n updated(changedProperties) {\n this.shadowRoot\n ?.querySelector('button')\n ?.addEventListener('animationend', () => {\n if (this._animation === 'fade-out') {\n const buttonClasses =\n this.shadowRoot?.querySelector('button')?.classList;\n buttonClasses?.remove(`${prefix}--copy-btn--animating`);\n buttonClasses?.remove(`${prefix}--copy-btn--${this._animation}`);\n this._animation = '';\n }\n });\n\n super.updated(changedProperties);\n\n this.shadowRoot\n ?.querySelector('button') // @ts-ignore: TS thinks `host` doesn't exist on `parentNode`\n ?.setAttribute('aria-label', this.parentNode?.host.textContent);\n }\n\n static styles = styles;\n}\n\nexport default CDSCopy;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"copy.js","names":["html","property","customElement","prefix","styles","CDSIconButton","CDSCopy","_decorate","_initialize","_CDSIconButton","constructor","args","F","d","kind","key","value","timeoutId","timeout","_this$shadowRoot","buttonClasses","shadowRoot","querySelector","classList","clearTimeout","undefined","_showFeedback","add","_animation","requestUpdate","setTimeout","remove","_createHandleFeedbackTooltip","_handleClickButton","_handleFeedbackTooltip","feedbackTimeout","decorators","type","Number","attribute","_renderTooltipContent","_t","_","feedback","_t2","connectedCallback","closeOnActivation","align","addEventListener","_get","_getPrototypeOf","prototype","call","updated","changedProperties","_this$shadowRoot2","_this$shadowRoot4","_this$parentNode","_this$shadowRoot3","setAttribute","parentNode","host","textContent","static"],"sources":["components/copy/copy.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 { html } from 'lit';\nimport { property, customElement } from 'lit/decorators.js';\nimport { prefix } from '../../globals/settings';\nimport styles from '../copy-button/copy-button.scss';\nimport CDSIconButton from '../icon-button/icon-button';\n\n/**\n * Copy.\n *\n * @element cds-copy\n */\n@customElement(`${prefix}-copy`)\nclass CDSCopy extends CDSIconButton {\n /**\n * `true` to show the feedback tooltip.\n */\n private _showFeedback = false;\n\n /**\n * `true` to show the feedback tooltip.\n */\n private _animation = '';\n\n private _createHandleFeedbackTooltip = () => {\n let timeoutId: number | void;\n return (timeout: number) => {\n const buttonClasses = this.shadowRoot?.querySelector('button')?.classList;\n\n if (timeoutId) {\n clearTimeout(timeoutId);\n timeoutId = undefined;\n }\n this._showFeedback = true;\n buttonClasses?.add(`${prefix}--copy-btn--animating`);\n this._animation = 'fade-in';\n buttonClasses?.add(`${prefix}--copy-btn--${this._animation}`);\n this.requestUpdate();\n timeoutId = setTimeout(() => {\n this._showFeedback = false;\n this._animation = 'fade-out';\n buttonClasses?.remove(`${prefix}--copy-btn--fade-in`);\n buttonClasses?.add(`${prefix}--copy-btn--${this._animation}`);\n this.requestUpdate();\n }, timeout) as unknown as number;\n };\n };\n\n /**\n * Handles showing/hiding the feedback tooltip.\n */\n private _handleFeedbackTooltip = this._createHandleFeedbackTooltip();\n\n /**\n * Handles `click` event on the copy button.\n */\n private _handleClickButton() {\n this._handleFeedbackTooltip(this.feedbackTimeout);\n }\n\n /**\n * Specify the string that is displayed when the button is clicked and the content is copi\n */\n @property()\n feedback = 'Copied!';\n\n /**\n * The number in milliseconds to determine how long the tooltip should remain.\n */\n @property({ type: Number, attribute: 'feedback-timeout' })\n feedbackTimeout = 2000;\n\n // eslint-disable-next-line class-methods-use-this\n protected _renderTooltipContent() {\n return html`\n <cds-tooltip-content>\n ${this._showFeedback\n ? this.feedback\n : html`<slot name=\"tooltip-content\"></slot>`}\n </cds-tooltip-content>\n `;\n }\n\n connectedCallback() {\n this.closeOnActivation = false;\n this.align = 'bottom';\n\n this.addEventListener('click', this._handleClickButton);\n\n super.connectedCallback();\n }\n\n updated(changedProperties) {\n this.shadowRoot\n ?.querySelector('button')\n ?.addEventListener('animationend', () => {\n if (this._animation === 'fade-out') {\n const buttonClasses =\n this.shadowRoot?.querySelector('button')?.classList;\n buttonClasses?.remove(`${prefix}--copy-btn--animating`);\n buttonClasses?.remove(`${prefix}--copy-btn--${this._animation}`);\n this._animation = '';\n }\n });\n\n super.updated(changedProperties);\n\n this.shadowRoot\n ?.querySelector('button') // @ts-ignore: TS thinks `host` doesn't exist on `parentNode`\n ?.setAttribute('aria-label', this.parentNode?.host.textContent);\n }\n\n static styles = styles;\n}\n\nexport default CDSCopy;\n"],"mappings":"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","ignoreList":[]}