@carbon/web-components 2.11.1 → 2.12.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 (404) hide show
  1. package/dist/16-486ace1a.js +1 -1
  2. package/dist/16-51a594ce.js +1 -1
  3. package/dist/16-656090c0.js +1 -1
  4. package/dist/16-71872213.js +1 -1
  5. package/dist/16-730a41a2.js +1 -1
  6. package/dist/16-83a1cd89.js +1 -1
  7. package/dist/16-b73c677b.js +1 -1
  8. package/dist/16-d1c73001.js +1 -1
  9. package/dist/20-d069d8da.js +1 -1
  10. package/dist/accordion.min.js +8 -14
  11. package/dist/ai-skeleton.min.js +1 -1
  12. package/dist/breadcrumb.min.js +4 -4
  13. package/dist/button-21c75bab.js +1 -1
  14. package/dist/{button-set-69863a24.js → button-set-984abad1.js} +2 -2
  15. package/dist/button-skeleton-1abc1fd8.js +1 -1
  16. package/dist/button.min.js +2 -2
  17. package/dist/carbon-element-4ca9803f.js +1 -1
  18. package/dist/chat-button.min.js +1 -1
  19. package/dist/checkbox-dc5fcaff.js +109 -0
  20. package/dist/checkbox.min.js +4 -4
  21. package/dist/class-map-5edb95da.js +1 -1
  22. package/dist/code-snippet.min.js +3 -3
  23. package/dist/collection-helpers-4e32fe16.js +1 -1
  24. package/dist/combo-box.min.js +3 -3
  25. package/dist/{content-switcher-item-5b8dd42f.js → content-switcher-item-62392ba8.js} +1 -1
  26. package/dist/content-switcher.min.js +2 -2
  27. package/dist/{copy-button-d673538b.js → copy-button-8ae404e7.js} +3 -3
  28. package/dist/copy-button.min.js +2 -2
  29. package/dist/data-table.min.js +9 -9
  30. package/dist/date-picker.min.js +6 -6
  31. package/dist/defineProperty-e448b551.js +1 -1
  32. package/dist/directive-e2d48b9c.js +1 -1
  33. package/dist/dropdown-item-8284b402.js +148 -0
  34. package/dist/dropdown.min.js +2 -2
  35. package/dist/file-uploader.min.js +2 -2
  36. package/dist/{floating-menu-46199beb.js → floating-menu-4fdda50e.js} +1 -1
  37. package/dist/floating-menu.min.js +2 -2
  38. package/dist/focus-e70d1cbe.js +1 -1
  39. package/dist/form-group.min.js +3 -3
  40. package/dist/form.min.js +2 -2
  41. package/dist/get-52a048b1.js +1 -1
  42. package/dist/host-listener-b6a3d690.js +1 -1
  43. package/dist/{icon-button-09275c70.js → icon-button-9889b58b.js} +4 -4
  44. package/dist/icon-button.min.js +2 -2
  45. package/dist/if-defined-2e09d22b.js +1 -1
  46. package/dist/if-non-empty-20ce3c96.js +1 -1
  47. package/dist/inline-loading.min.js +5 -5
  48. package/dist/{layer-5f257c4a.js → layer-ee2a047c.js} +1 -1
  49. package/dist/layer.min.js +2 -2
  50. package/dist/{link-dc6f9b4e.js → link-c2b4e683.js} +1 -1
  51. package/dist/link.min.js +2 -2
  52. package/dist/list.min.js +4 -4
  53. package/dist/loading-2604f4ad.js +1 -1
  54. package/dist/loading-icon-85b7e502.js +1 -1
  55. package/dist/loading.min.js +1 -1
  56. package/dist/{modal-label-d53c98de.js → modal-label-9ee331a4.js} +1 -1
  57. package/dist/modal.min.js +2 -2
  58. package/dist/multi-select.min.js +4 -4
  59. package/dist/notification.min.js +5 -5
  60. package/dist/number-input.min.js +4 -4
  61. package/dist/objectSpread2-46e4de7a.js +1 -1
  62. package/dist/on-6c264d49.js +1 -1
  63. package/dist/overflow-menu.min.js +5 -5
  64. package/dist/pagination.min.js +5 -5
  65. package/dist/{popover-content-08cf10b0.js → popover-content-d6f3bde5.js} +2 -2
  66. package/dist/popover-controller-486f0f75.js +73 -0
  67. package/dist/popover.min.js +2 -2
  68. package/dist/progress-bar.min.js +1 -1
  69. package/dist/progress-indicator.min.js +3 -3
  70. package/dist/query-5f833318.js +1 -1
  71. package/dist/query-assigned-elements-73bd2544.js +1 -1
  72. package/dist/radio-button.min.js +2 -2
  73. package/dist/radio-group-manager-de7f9ab3.js +1 -1
  74. package/dist/search-09497355.js +102 -0
  75. package/dist/search.min.js +2 -2
  76. package/dist/select-95272984.js +141 -0
  77. package/dist/select.min.js +3 -71
  78. package/dist/settings-97cd1c3a.js +1 -1
  79. package/dist/shared-enums-c6fe8c39.js +1 -1
  80. package/dist/side-panel.min.js +11 -11
  81. package/dist/skeleton-icon-bfc7d5c8.js +1 -1
  82. package/dist/skeleton-icon.min.js +1 -1
  83. package/dist/skeleton-placeholder-403f26a3.js +1 -1
  84. package/dist/skeleton-placeholder.min.js +1 -1
  85. package/dist/skeleton-text-9d02604f.js +1 -1
  86. package/dist/skeleton-text.min.js +1 -1
  87. package/dist/skip-to-content.min.js +2 -2
  88. package/dist/slider.min.js +4 -4
  89. package/dist/slug.min.js +3 -3
  90. package/dist/spread-d515f3f1.js +1 -1
  91. package/dist/stack.min.js +1 -1
  92. package/dist/state-ddd29b9d.js +1 -1
  93. package/dist/structured-list.min.js +5 -5
  94. package/dist/tabs.min.js +5 -5
  95. package/dist/tag.min.js +5 -5
  96. package/dist/tearsheet.min.js +10 -10
  97. package/dist/text-input-5ebf4917.js +142 -0
  98. package/dist/text-input.min.js +2 -2
  99. package/dist/textarea.min.js +6 -6
  100. package/dist/tile.min.js +3 -3
  101. package/dist/toggle-tip.min.js +2 -2
  102. package/dist/toggle.min.js +2 -2
  103. package/dist/{toggletip-f95c53b0.js → toggletip-1ef069a9.js} +2 -2
  104. package/dist/{tooltip-content-d784ae2b.js → tooltip-content-a75c5632.js} +3 -3
  105. package/dist/tooltip.min.js +2 -2
  106. package/dist/ui-shell.min.js +14 -14
  107. package/dist/validity-d86ffa4f.js +1 -1
  108. package/es/components/accordion/accordion-item-skeleton.js.map +1 -1
  109. package/es/components/accordion/accordion-item.js +8 -7
  110. package/es/components/accordion/accordion-item.js.map +1 -1
  111. package/es/components/accordion/accordion-skeleton.d.ts +1 -1
  112. package/es/components/accordion/accordion-skeleton.js +5 -6
  113. package/es/components/accordion/accordion-skeleton.js.map +1 -1
  114. package/es/components/accordion/accordion.css.js +1 -1
  115. package/es/components/accordion/accordion.js +4 -3
  116. package/es/components/accordion/accordion.js.map +1 -1
  117. package/es/components/ai-skeleton/ai-skeleton-icon.js.map +1 -1
  118. package/es/components/ai-skeleton/ai-skeleton-placeholder.js.map +1 -1
  119. package/es/components/ai-skeleton/ai-skeleton-text.js.map +1 -1
  120. package/es/components/breadcrumb/breadcrumb-item.js +3 -2
  121. package/es/components/breadcrumb/breadcrumb-item.js.map +1 -1
  122. package/es/components/breadcrumb/breadcrumb-link.js +3 -2
  123. package/es/components/breadcrumb/breadcrumb-link.js.map +1 -1
  124. package/es/components/breadcrumb/breadcrumb-overflow-menu.js.map +1 -1
  125. package/es/components/breadcrumb/breadcrumb-skeleton.js.map +1 -1
  126. package/es/components/breadcrumb/breadcrumb.js +3 -2
  127. package/es/components/breadcrumb/breadcrumb.js.map +1 -1
  128. package/es/components/button/button-set-base.js +3 -2
  129. package/es/components/button/button-set-base.js.map +1 -1
  130. package/es/components/button/button-set.js +1 -1
  131. package/es/components/button/button-set.js.map +1 -1
  132. package/es/components/button/button-skeleton.js.map +1 -1
  133. package/es/components/button/button.js.map +1 -1
  134. package/es/components/chat-button/chat-button-skeleton.js.map +1 -1
  135. package/es/components/chat-button/chat-button.js.map +1 -1
  136. package/es/components/checkbox/checkbox-group.js +2 -2
  137. package/es/components/checkbox/checkbox-group.js.map +1 -1
  138. package/es/components/checkbox/checkbox-skeleton.js.map +1 -1
  139. package/es/components/checkbox/checkbox.css.js +1 -1
  140. package/es/components/checkbox/checkbox.js +2 -2
  141. package/es/components/checkbox/checkbox.js.map +1 -1
  142. package/es/components/code-snippet/code-snippet-skeleton.js.map +1 -1
  143. package/es/components/code-snippet/code-snippet.js +3 -2
  144. package/es/components/code-snippet/code-snippet.js.map +1 -1
  145. package/es/components/combo-box/combo-box.css.js +1 -1
  146. package/es/components/combo-box/combo-box.js +14 -13
  147. package/es/components/combo-box/combo-box.js.map +1 -1
  148. package/es/components/content-switcher/content-switcher-item.js.map +1 -1
  149. package/es/components/content-switcher/content-switcher.js +6 -6
  150. package/es/components/content-switcher/content-switcher.js.map +1 -1
  151. package/es/components/copy/copy.d.ts +1 -1
  152. package/es/components/copy/copy.js +5 -4
  153. package/es/components/copy/copy.js.map +1 -1
  154. package/es/components/copy-button/copy-button.d.ts +1 -1
  155. package/es/components/copy-button/copy-button.js +1 -1
  156. package/es/components/copy-button/copy-button.js.map +1 -1
  157. package/es/components/data-table/data-table.css.js +1 -1
  158. package/es/components/data-table/table-batch-actions.js +2 -2
  159. package/es/components/data-table/table-batch-actions.js.map +1 -1
  160. package/es/components/data-table/table-body.js +3 -2
  161. package/es/components/data-table/table-body.js.map +1 -1
  162. package/es/components/data-table/table-cell-content.js.map +1 -1
  163. package/es/components/data-table/table-cell.js +3 -2
  164. package/es/components/data-table/table-cell.js.map +1 -1
  165. package/es/components/data-table/table-expanded-row.js +1 -1
  166. package/es/components/data-table/table-expanded-row.js.map +1 -1
  167. package/es/components/data-table/table-head.js +3 -2
  168. package/es/components/data-table/table-head.js.map +1 -1
  169. package/es/components/data-table/table-header-cell.js +5 -4
  170. package/es/components/data-table/table-header-cell.js.map +1 -1
  171. package/es/components/data-table/table-header-description.js.map +1 -1
  172. package/es/components/data-table/table-header-row.js +1 -1
  173. package/es/components/data-table/table-header-row.js.map +1 -1
  174. package/es/components/data-table/table-header-title.js.map +1 -1
  175. package/es/components/data-table/table-row.js +12 -11
  176. package/es/components/data-table/table-row.js.map +1 -1
  177. package/es/components/data-table/table-skeleton.js +3 -2
  178. package/es/components/data-table/table-skeleton.js.map +1 -1
  179. package/es/components/data-table/table-toolbar-content.js.map +1 -1
  180. package/es/components/data-table/table-toolbar-search.js +5 -4
  181. package/es/components/data-table/table-toolbar-search.js.map +1 -1
  182. package/es/components/data-table/table-toolbar.js +4 -3
  183. package/es/components/data-table/table-toolbar.js.map +1 -1
  184. package/es/components/data-table/table.js +28 -27
  185. package/es/components/data-table/table.js.map +1 -1
  186. package/es/components/date-picker/date-picker-input-skeleton.js.map +1 -1
  187. package/es/components/date-picker/date-picker-input.js +2 -2
  188. package/es/components/date-picker/date-picker-input.js.map +1 -1
  189. package/es/components/date-picker/date-picker.css.js +1 -1
  190. package/es/components/date-picker/date-picker.js +20 -19
  191. package/es/components/date-picker/date-picker.js.map +1 -1
  192. package/es/components/dropdown/dropdown-item.js +3 -2
  193. package/es/components/dropdown/dropdown-item.js.map +1 -1
  194. package/es/components/dropdown/dropdown-skeleton.js.map +1 -1
  195. package/es/components/dropdown/dropdown.css.js +1 -1
  196. package/es/components/dropdown/dropdown.js +9 -9
  197. package/es/components/dropdown/dropdown.js.map +1 -1
  198. package/es/components/file-uploader/demo-file-uploader.js.map +1 -1
  199. package/es/components/file-uploader/file-uploader-button.js +2 -2
  200. package/es/components/file-uploader/file-uploader-button.js.map +1 -1
  201. package/es/components/file-uploader/file-uploader-drop-container.js +2 -2
  202. package/es/components/file-uploader/file-uploader-drop-container.js.map +1 -1
  203. package/es/components/file-uploader/file-uploader-item.js +2 -2
  204. package/es/components/file-uploader/file-uploader-item.js.map +1 -1
  205. package/es/components/file-uploader/file-uploader-skeleton.js.map +1 -1
  206. package/es/components/file-uploader/file-uploader.css.js +1 -1
  207. package/es/components/file-uploader/file-uploader.js +1 -1
  208. package/es/components/file-uploader/file-uploader.js.map +1 -1
  209. package/es/components/floating-menu/floating-menu.js +3 -3
  210. package/es/components/floating-menu/floating-menu.js.map +1 -1
  211. package/es/components/form/form-item.css.js +1 -1
  212. package/es/components/form/form-item.js.map +1 -1
  213. package/es/components/form-group/form-group.css.js +1 -1
  214. package/es/components/form-group/form-group.js.map +1 -1
  215. package/es/components/icon-button/icon-button.js +3 -2
  216. package/es/components/icon-button/icon-button.js.map +1 -1
  217. package/es/components/inline-loading/inline-loading.js +3 -2
  218. package/es/components/inline-loading/inline-loading.js.map +1 -1
  219. package/es/components/layer/layer.js +2 -2
  220. package/es/components/layer/layer.js.map +1 -1
  221. package/es/components/link/link.js +1 -1
  222. package/es/components/link/link.js.map +1 -1
  223. package/es/components/list/list-item.js +4 -3
  224. package/es/components/list/list-item.js.map +1 -1
  225. package/es/components/list/ordered-list.js.map +1 -1
  226. package/es/components/list/unordered-list.js +4 -3
  227. package/es/components/list/unordered-list.js.map +1 -1
  228. package/es/components/loading/loading.js.map +1 -1
  229. package/es/components/modal/modal-body-content.js.map +1 -1
  230. package/es/components/modal/modal-body.js.map +1 -1
  231. package/es/components/modal/modal-close-button.js.map +1 -1
  232. package/es/components/modal/modal-footer.js +1 -1
  233. package/es/components/modal/modal-footer.js.map +1 -1
  234. package/es/components/modal/modal-header.js +1 -1
  235. package/es/components/modal/modal-header.js.map +1 -1
  236. package/es/components/modal/modal-heading.js.map +1 -1
  237. package/es/components/modal/modal-label.js.map +1 -1
  238. package/es/components/modal/modal.js +8 -8
  239. package/es/components/modal/modal.js.map +1 -1
  240. package/es/components/multi-select/multi-select-item.js +1 -1
  241. package/es/components/multi-select/multi-select-item.js.map +1 -1
  242. package/es/components/multi-select/multi-select.css.js +1 -1
  243. package/es/components/multi-select/multi-select.js +18 -17
  244. package/es/components/multi-select/multi-select.js.map +1 -1
  245. package/es/components/notification/actionable-notification-button.js +3 -2
  246. package/es/components/notification/actionable-notification-button.js.map +1 -1
  247. package/es/components/notification/actionable-notification.js +5 -4
  248. package/es/components/notification/actionable-notification.js.map +1 -1
  249. package/es/components/notification/inline-notification.js +5 -4
  250. package/es/components/notification/inline-notification.js.map +1 -1
  251. package/es/components/notification/toast-notification.js.map +1 -1
  252. package/es/components/number-input/number-input-skeleton.js.map +1 -1
  253. package/es/components/number-input/number-input.css.js +1 -1
  254. package/es/components/number-input/number-input.js +10 -9
  255. package/es/components/number-input/number-input.js.map +1 -1
  256. package/es/components/overflow-menu/overflow-menu-body.js +6 -5
  257. package/es/components/overflow-menu/overflow-menu-body.js.map +1 -1
  258. package/es/components/overflow-menu/overflow-menu-item.js +3 -2
  259. package/es/components/overflow-menu/overflow-menu-item.js.map +1 -1
  260. package/es/components/overflow-menu/overflow-menu.js +6 -5
  261. package/es/components/overflow-menu/overflow-menu.js.map +1 -1
  262. package/es/components/pagination/index.d.ts +2 -1
  263. package/es/components/pagination/index.js +2 -1
  264. package/es/components/pagination/index.js.map +1 -1
  265. package/es/components/pagination/pagination.css.js +1 -1
  266. package/es/components/pagination/pagination.js +4 -4
  267. package/es/components/pagination/pagination.js.map +1 -1
  268. package/es/components/popover/popover-content.js.map +1 -1
  269. package/es/components/popover/popover.js +3 -3
  270. package/es/components/popover/popover.js.map +1 -1
  271. package/es/components/progress-bar/progress-bar.js +1 -1
  272. package/es/components/progress-bar/progress-bar.js.map +1 -1
  273. package/es/components/progress-indicator/progress-indicator-skeleton.js +1 -1
  274. package/es/components/progress-indicator/progress-indicator-skeleton.js.map +1 -1
  275. package/es/components/progress-indicator/progress-indicator.js +4 -3
  276. package/es/components/progress-indicator/progress-indicator.js.map +1 -1
  277. package/es/components/progress-indicator/progress-step-skeleton.js.map +1 -1
  278. package/es/components/progress-indicator/progress-step.js +3 -2
  279. package/es/components/progress-indicator/progress-step.js.map +1 -1
  280. package/es/components/radio-button/radio-button-group.js +4 -4
  281. package/es/components/radio-button/radio-button-group.js.map +1 -1
  282. package/es/components/radio-button/radio-button-skeleton.js.map +1 -1
  283. package/es/components/radio-button/radio-button.css.js +1 -1
  284. package/es/components/radio-button/radio-button.js +5 -4
  285. package/es/components/radio-button/radio-button.js.map +1 -1
  286. package/es/components/search/search-skeleton.js.map +1 -1
  287. package/es/components/search/search.css.js +1 -1
  288. package/es/components/search/search.js +1 -1
  289. package/es/components/search/search.js.map +1 -1
  290. package/es/components/select/select-skeleton.js.map +1 -1
  291. package/es/components/select/select.css.js +1 -1
  292. package/es/components/select/select.js +14 -13
  293. package/es/components/select/select.js.map +1 -1
  294. package/es/components/side-panel/side-panel.css.js +1 -1
  295. package/es/components/side-panel/side-panel.js +10 -9
  296. package/es/components/side-panel/side-panel.js.map +1 -1
  297. package/es/components/skeleton-placeholder/skeleton-placeholder.js.map +1 -1
  298. package/es/components/skeleton-text/skeleton-text.js.map +1 -1
  299. package/es/components/skip-to-content/skip-to-content.js +3 -2
  300. package/es/components/skip-to-content/skip-to-content.js.map +1 -1
  301. package/es/components/slider/slider-input.js +8 -8
  302. package/es/components/slider/slider-input.js.map +1 -1
  303. package/es/components/slider/slider-skeleton.js.map +1 -1
  304. package/es/components/slider/slider.css.js +1 -1
  305. package/es/components/slider/slider.js +17 -16
  306. package/es/components/slider/slider.js.map +1 -1
  307. package/es/components/slug/slug.css.js +1 -1
  308. package/es/components/slug/slug.js +3 -2
  309. package/es/components/slug/slug.js.map +1 -1
  310. package/es/components/stack/stack.js.map +1 -1
  311. package/es/components/structured-list/structured-list-body.js +3 -2
  312. package/es/components/structured-list/structured-list-body.js.map +1 -1
  313. package/es/components/structured-list/structured-list-cell.js +3 -2
  314. package/es/components/structured-list/structured-list-cell.js.map +1 -1
  315. package/es/components/structured-list/structured-list-head.js +3 -2
  316. package/es/components/structured-list/structured-list-head.js.map +1 -1
  317. package/es/components/structured-list/structured-list-header-cell-skeleton.js.map +1 -1
  318. package/es/components/structured-list/structured-list-header-cell.js +3 -2
  319. package/es/components/structured-list/structured-list-header-cell.js.map +1 -1
  320. package/es/components/structured-list/structured-list-header-row.js +3 -2
  321. package/es/components/structured-list/structured-list-header-row.js.map +1 -1
  322. package/es/components/structured-list/structured-list-row.js +4 -3
  323. package/es/components/structured-list/structured-list-row.js.map +1 -1
  324. package/es/components/structured-list/structured-list.js +3 -2
  325. package/es/components/structured-list/structured-list.js.map +1 -1
  326. package/es/components/tabs/tab-skeleton.js.map +1 -1
  327. package/es/components/tabs/tab.js +3 -2
  328. package/es/components/tabs/tab.js.map +1 -1
  329. package/es/components/tabs/tabs-skeleton.js.map +1 -1
  330. package/es/components/tabs/tabs.js +13 -12
  331. package/es/components/tabs/tabs.js.map +1 -1
  332. package/es/components/tag/tag.css.js +1 -1
  333. package/es/components/tag/tag.js +3 -3
  334. package/es/components/tag/tag.js.map +1 -1
  335. package/es/components/tearsheet/tearsheet.js +11 -10
  336. package/es/components/tearsheet/tearsheet.js.map +1 -1
  337. package/es/components/text-input/text-input-skeleton.js.map +1 -1
  338. package/es/components/text-input/text-input.css.js +1 -1
  339. package/es/components/text-input/text-input.js +5 -5
  340. package/es/components/text-input/text-input.js.map +1 -1
  341. package/es/components/textarea/textarea-skeleton.js.map +1 -1
  342. package/es/components/textarea/textarea.css.js +1 -1
  343. package/es/components/textarea/textarea.js.map +1 -1
  344. package/es/components/tile/clickable-tile.js +5 -4
  345. package/es/components/tile/clickable-tile.js.map +1 -1
  346. package/es/components/tile/expandable-tile.js +3 -3
  347. package/es/components/tile/expandable-tile.js.map +1 -1
  348. package/es/components/tile/radio-tile.js +1 -1
  349. package/es/components/tile/radio-tile.js.map +1 -1
  350. package/es/components/tile/selectable-tile.js +2 -2
  351. package/es/components/tile/selectable-tile.js.map +1 -1
  352. package/es/components/tile/tile-group.js +4 -4
  353. package/es/components/tile/tile-group.js.map +1 -1
  354. package/es/components/tile/tile.css.js +1 -1
  355. package/es/components/tile/tile.js +1 -1
  356. package/es/components/tile/tile.js.map +1 -1
  357. package/es/components/toggle/toggle.js +1 -1
  358. package/es/components/toggle/toggle.js.map +1 -1
  359. package/es/components/toggle-tip/toggletip.js +3 -3
  360. package/es/components/toggle-tip/toggletip.js.map +1 -1
  361. package/es/components/tooltip/tooltip-content.js +3 -2
  362. package/es/components/tooltip/tooltip-content.js.map +1 -1
  363. package/es/components/tooltip/tooltip.js +8 -7
  364. package/es/components/tooltip/tooltip.js.map +1 -1
  365. package/es/components/ui-shell/header-global-action.js +3 -2
  366. package/es/components/ui-shell/header-global-action.js.map +1 -1
  367. package/es/components/ui-shell/header-menu-button.js +1 -1
  368. package/es/components/ui-shell/header-menu-button.js.map +1 -1
  369. package/es/components/ui-shell/header-menu.js +4 -3
  370. package/es/components/ui-shell/header-menu.js.map +1 -1
  371. package/es/components/ui-shell/header-name.js.map +1 -1
  372. package/es/components/ui-shell/header-nav-item.js.map +1 -1
  373. package/es/components/ui-shell/header-nav.js +3 -2
  374. package/es/components/ui-shell/header-nav.js.map +1 -1
  375. package/es/components/ui-shell/header-panel.js.map +1 -1
  376. package/es/components/ui-shell/header-side-nav-items.js +3 -2
  377. package/es/components/ui-shell/header-side-nav-items.js.map +1 -1
  378. package/es/components/ui-shell/header.js +3 -2
  379. package/es/components/ui-shell/header.js.map +1 -1
  380. package/es/components/ui-shell/side-nav-divider.js +3 -2
  381. package/es/components/ui-shell/side-nav-divider.js.map +1 -1
  382. package/es/components/ui-shell/side-nav-items.js +3 -2
  383. package/es/components/ui-shell/side-nav-items.js.map +1 -1
  384. package/es/components/ui-shell/side-nav-link.js +3 -2
  385. package/es/components/ui-shell/side-nav-link.js.map +1 -1
  386. package/es/components/ui-shell/side-nav-menu-item.js +4 -3
  387. package/es/components/ui-shell/side-nav-menu-item.js.map +1 -1
  388. package/es/components/ui-shell/side-nav-menu.js +6 -5
  389. package/es/components/ui-shell/side-nav-menu.js.map +1 -1
  390. package/es/components/ui-shell/side-nav.js +9 -8
  391. package/es/components/ui-shell/side-nav.js.map +1 -1
  392. package/es/components/ui-shell/switcher-divider.js +3 -2
  393. package/es/components/ui-shell/switcher-divider.js.map +1 -1
  394. package/es/components/ui-shell/switcher-item.js +3 -2
  395. package/es/components/ui-shell/switcher-item.js.map +1 -1
  396. package/es/components/ui-shell/switcher.js +3 -2
  397. package/es/components/ui-shell/switcher.js.map +1 -1
  398. package/package.json +6 -6
  399. package/dist/checkbox-d0a3a79f.js +0 -109
  400. package/dist/dropdown-item-91b3dc95.js +0 -148
  401. package/dist/popover-controller-cc6ccb74.js +0 -73
  402. package/dist/search-23232b04.js +0 -102
  403. package/dist/select-item-4ebf72a0.js +0 -73
  404. package/dist/text-input-ead65188.js +0 -142
@@ -1,9 +1,10 @@
1
1
  import _decorate from "@babel/runtime/helpers/esm/decorate";
2
- import _get from "@babel/runtime/helpers/esm/get";
3
2
  import _getPrototypeOf from "@babel/runtime/helpers/esm/getPrototypeOf";
3
+ import _get from "@babel/runtime/helpers/esm/get";
4
4
  let _ = t => t,
5
5
  _t,
6
6
  _t2;
7
+ function _superPropGet(t, e, r, o) { var p = _get(_getPrototypeOf(1 & o ? t.prototype : t), e, r); return 2 & o ? function (t) { return p.apply(r, t); } : p; }
7
8
  /**
8
9
  * @license
9
10
  *
@@ -171,7 +172,7 @@ let CDSComboBox = _decorate([customElement(`${prefix}-combo-box`)], function (_i
171
172
  if ((_this$_selectionButto = this._selectionButtonNode) !== null && _this$_selectionButto !== void 0 && _this$_selectionButto.contains(target)) {
172
173
  this._handleUserInitiatedClearInput();
173
174
  } else {
174
- _get(_getPrototypeOf(CDSComboBox.prototype), "_handleClickInner", this).call(this, event);
175
+ _superPropGet(CDSComboBox, "_handleClickInner", this, 3)([event]);
175
176
  }
176
177
  }
177
178
  }, {
@@ -191,7 +192,7 @@ let CDSComboBox = _decorate([customElement(`${prefix}-combo-box`)], function (_i
191
192
  action === TRIGGERING || key === ' ')) {
192
193
  this._handleUserInitiatedClearInput();
193
194
  } else {
194
- _get(_getPrototypeOf(CDSComboBox.prototype), "_handleKeypressInner", this).call(this, event);
195
+ _superPropGet(CDSComboBox, "_handleKeypressInner", this, 3)([event]);
195
196
  }
196
197
  }
197
198
 
@@ -226,7 +227,7 @@ let CDSComboBox = _decorate([customElement(`${prefix}-combo-box`)], function (_i
226
227
  this.open = false;
227
228
  this.requestUpdate();
228
229
  }
229
- _get(_getPrototypeOf(CDSComboBox.prototype), "_handleUserInitiatedSelectItem", this).call(this, item);
230
+ _superPropGet(CDSComboBox, "_handleUserInitiatedSelectItem", this, 3)([item]);
230
231
  }
231
232
  }, {
232
233
  kind: "method",
@@ -353,7 +354,7 @@ let CDSComboBox = _decorate([customElement(`${prefix}-combo-box`)], function (_i
353
354
  * The custom item matching callback.
354
355
  */
355
356
  function shouldUpdate(changedProperties) {
356
- _get(_getPrototypeOf(CDSComboBox.prototype), "shouldUpdate", this).call(this, changedProperties);
357
+ _superPropGet(CDSComboBox, "shouldUpdate", this, 3)([changedProperties]);
357
358
  const {
358
359
  _selectedItemContent: selectedItemContent
359
360
  } = this;
@@ -366,7 +367,7 @@ let CDSComboBox = _decorate([customElement(`${prefix}-combo-box`)], function (_i
366
367
  kind: "method",
367
368
  key: "updated",
368
369
  value: function updated(changedProperties) {
369
- _get(_getPrototypeOf(CDSComboBox.prototype), "updated", this).call(this, changedProperties);
370
+ _superPropGet(CDSComboBox, "updated", this, 3)([changedProperties]);
370
371
  const {
371
372
  _listBoxNode: listBoxNode
372
373
  } = this;
@@ -391,7 +392,7 @@ let CDSComboBox = _decorate([customElement(`${prefix}-combo-box`)], function (_i
391
392
  /**
392
393
  * A selector that will return highlighted items.
393
394
  */
394
- function selectorItemHighlighted() {
395
+ function () {
395
396
  return `${prefix}-combo-box-item[highlighted]`;
396
397
  }
397
398
 
@@ -402,7 +403,7 @@ let CDSComboBox = _decorate([customElement(`${prefix}-combo-box`)], function (_i
402
403
  kind: "get",
403
404
  static: true,
404
405
  key: "selectorItem",
405
- value: function selectorItem() {
406
+ value: function () {
406
407
  return `${prefix}-combo-box-item`;
407
408
  }
408
409
 
@@ -413,7 +414,7 @@ let CDSComboBox = _decorate([customElement(`${prefix}-combo-box`)], function (_i
413
414
  kind: "get",
414
415
  static: true,
415
416
  key: "selectorItemSelected",
416
- value: function selectorItemSelected() {
417
+ value: function () {
417
418
  return `${prefix}-combo-box-item[selected]`;
418
419
  }
419
420
 
@@ -425,7 +426,7 @@ let CDSComboBox = _decorate([customElement(`${prefix}-combo-box`)], function (_i
425
426
  kind: "get",
426
427
  static: true,
427
428
  key: "eventBeforeToggle",
428
- value: function eventBeforeToggle() {
429
+ value: function () {
429
430
  return `${prefix}-combo-box-beingtoggled`;
430
431
  }
431
432
 
@@ -436,7 +437,7 @@ let CDSComboBox = _decorate([customElement(`${prefix}-combo-box`)], function (_i
436
437
  kind: "get",
437
438
  static: true,
438
439
  key: "eventToggle",
439
- value: function eventToggle() {
440
+ value: function () {
440
441
  return `${prefix}-combo-box-toggled`;
441
442
  }
442
443
 
@@ -448,7 +449,7 @@ let CDSComboBox = _decorate([customElement(`${prefix}-combo-box`)], function (_i
448
449
  kind: "get",
449
450
  static: true,
450
451
  key: "eventBeforeSelect",
451
- value: function eventBeforeSelect() {
452
+ value: function () {
452
453
  return `${prefix}-combo-box-beingselected`;
453
454
  }
454
455
 
@@ -459,7 +460,7 @@ let CDSComboBox = _decorate([customElement(`${prefix}-combo-box`)], function (_i
459
460
  kind: "get",
460
461
  static: true,
461
462
  key: "eventSelect",
462
- value: function eventSelect() {
463
+ value: function () {
463
464
  return `${prefix}-combo-box-selected`;
464
465
  }
465
466
  }, {
@@ -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","_superPropGet","_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"],"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 +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":"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","ignoreList":[]}
@@ -313,7 +313,7 @@ let CDSContentSwitcher = _decorate([customElement(`${prefix}-content-switcher`)]
313
313
  kind: "get",
314
314
  static: true,
315
315
  key: "selectorItem",
316
- value: function selectorItem() {
316
+ value: function () {
317
317
  return `${prefix}-content-switcher-item`;
318
318
  }
319
319
 
@@ -324,7 +324,7 @@ let CDSContentSwitcher = _decorate([customElement(`${prefix}-content-switcher`)]
324
324
  kind: "get",
325
325
  static: true,
326
326
  key: "selectorIconItem",
327
- value: function selectorIconItem() {
327
+ value: function () {
328
328
  return `${prefix}-content-switcher-item[icon]`;
329
329
  }
330
330
 
@@ -335,7 +335,7 @@ let CDSContentSwitcher = _decorate([customElement(`${prefix}-content-switcher`)]
335
335
  kind: "get",
336
336
  static: true,
337
337
  key: "selectorItemEnabled",
338
- value: function selectorItemEnabled() {
338
+ value: function () {
339
339
  return `${prefix}-content-switcher-item:not([disabled])`;
340
340
  }
341
341
 
@@ -346,7 +346,7 @@ let CDSContentSwitcher = _decorate([customElement(`${prefix}-content-switcher`)]
346
346
  kind: "get",
347
347
  static: true,
348
348
  key: "selectorItemSelected",
349
- value: function selectorItemSelected() {
349
+ value: function () {
350
350
  return `${prefix}-content-switcher-item[selected]`;
351
351
  }
352
352
 
@@ -358,7 +358,7 @@ let CDSContentSwitcher = _decorate([customElement(`${prefix}-content-switcher`)]
358
358
  kind: "get",
359
359
  static: true,
360
360
  key: "eventBeforeSelect",
361
- value: function eventBeforeSelect() {
361
+ value: function () {
362
362
  return `${prefix}-content-switcher-beingselected`;
363
363
  }
364
364
 
@@ -369,7 +369,7 @@ let CDSContentSwitcher = _decorate([customElement(`${prefix}-content-switcher`)]
369
369
  kind: "get",
370
370
  static: true,
371
371
  key: "eventSelect",
372
- value: function eventSelect() {
372
+ value: function () {
373
373
  return `${prefix}-content-switcher-selected`;
374
374
  }
375
375
  }, {
@@ -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":";;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,UAAU,EAAEC,IAAI,QAAQ,KAAK;AACtC,SAASC,QAAQ,QAAQ,mBAAmB;AAC5C,SAASC,MAAM,QAAQ,wBAAwB;AAC/C,SAASC,OAAO,EAAEC,OAAO,QAAQ,2CAA2C;AAC5E,SAASC,oBAAoB,EAAEC,qBAAqB,QAAQ,QAAQ;AAEpE,OAAOC,MAAM,MAAM,6BAAyB;AAC5C,SAASC,aAAa,IAAIC,aAAa,QAAQ,yCAAyC;AAExF,SAASJ,oBAAoB,EAAEC,qBAAqB;;AAEpD;AACA;AACA;AACA;AACA;AACA,MAAMI,QAAQ,GAAGA,CAACC,KAAa,EAAEC,MAAc,KAAK;EAClD,IAAID,KAAK,GAAG,CAAC,EAAE;IACb,OAAOC,MAAM,GAAG,CAAC;EACnB;EACA,IAAID,KAAK,IAAIC,MAAM,EAAE;IACnB,OAAO,CAAC;EACV;EACA,OAAOD,KAAK;AACd,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AARA,IAUqBE,kBAAkB,GAAAC,SAAA,EADtCL,aAAa,CAAC,GAAGP,MAAM,mBAAmB,CAAC,aAAAa,WAAA,EAAAC,WAAA;EAA5C,MACqBH,kBAAkB,SAAAG,WAAA,CAAoB;IAAAC,YAAA,GAAAC,IAAA;MAAA,SAAAA,IAAA;MAAAH,WAAA;IAAA;EAmR3D;EAAC;IAAAI,CAAA,EAnRoBN,kBAAkB;IAAAO,CAAA;MAAAC,IAAA;MAAAC,GAAA;MAAAC,KAAA;MACrC;AACF;AACA;AACA;AACA;AACA;AACA;MACE,SAAAC,aAAqB;QAAEC,MAAM;QAAEC;MAAiB,CAAC,EAAE;QACjD,MAAM;UAAEC;QAAa,CAAC,GAAG,IAAI,CAACV,WAAwC;QACtE,MAAMW,KAAK,GAAG,IAAI,CAACC,gBAAgB,CAACF,YAAY,CAAC;QACjD,MAAMhB,KAAK,GACTe,IAAI,KAAK,WAAW,GAChB,CAAC,CAAC,GACFtB,OAAO,CAACwB,KAAK,EAAGH,MAAM,CAAaK,OAAO,CAACH,YAAY,CAAE,CAAC;QAChE,MAAMI,SAAS,GAAGpB,KAAK,GAAG,CAAC,GAAGA,KAAK,GAAGA,KAAK,GAAG,CAAC;QAC/CR,OAAO,CAAC,IAAI,CAAC0B,gBAAgB,CAACF,YAAY,CAAC,EAAE,CAACK,IAAI,EAAEC,CAAC,KAAK;UACxD;UACA;UACCD,IAAI,CAA4BE,WAAW,GAAGD,CAAC,KAAKF,SAAS;QAChE,CAAC,CAAC;QAEF,MAAM;UAAEI;QAAqB,CAAC,GAAG,IAAI,CAClClB,WAAwC;QAC3C,MAAMmB,YAAY,GAAG,IAAI,CAACC,aAAa,CAACF,oBAAoB,CAAC;QAC7D,MAAMG,QAAQ,GAAG,IAAI,CAACC,YAAY,CAChCH,YAAY,EACZ,CACF,CAAC;QACAE,QAAQ,CAA4BJ,WAAW,GAAG,IAAI;MACzD;;MAEA;AACF;AACA;AACA;IAHE;MAAAb,IAAA;MAAAC,GAAA;MAAAC,KAAA,EAIA,SAAAiB,gBAA0Bf,MAAmB,EAAE;QAAA,IAAAgB,YAAA;QAC7C,MAAMb,KAAK,GAAG,IAAI,CAACC,gBAAgB,CAChC,IAAI,CAACZ,WAAW,CAA+ByB,mBAClD,CAAC;QACD,MAAM;UAAEf;QAAa,CAAC,GAAG,IAAI,CAACV,WAAwC;QACtE,MAAM0B,aAAa,GAAGlB,MAAM,CAACK,OAAO,CAClCH,YACF,CAA2B;QAC3B,MAAMhB,KAAK,GAAGP,OAAO,CAACwB,KAAK,EAAEe,aAAa,CAAC;QAC3C,QAAAF,YAAA,GAAOb,KAAK,CAACjB,KAAK,CAAC,cAAA8B,YAAA,cAAAA,YAAA,GAAI,IAAI;MAC7B;;MAEA;AACF;AACA;AACA;AACA;IAJE;MAAApB,IAAA;MAAAC,GAAA;MAAAC,KAAA,EAKA,SAAAgB,aACEK,WAAmC,EACnCC,SAAiB,EACjB;QACA,MAAMjB,KAAK,GAAG,IAAI,CAACC,gBAAgB,CAChC,IAAI,CAACZ,WAAW,CAA+ByB,mBAClD,CAAC;QACD,MAAMI,YAAY,GAAG1C,OAAO,CAACwB,KAAK,EAAEgB,WAAW,CAAC;QAChD,MAAMb,SAAS,GAAGrB,QAAQ,CAACoC,YAAY,GAAGD,SAAS,EAAEjB,KAAK,CAAChB,MAAM,CAAC;QAClE,OAAOmB,SAAS,KAAKe,YAAY,GAAG,IAAI,GAAGlB,KAAK,CAACG,SAAS,CAAC;MAC7D;;MAEA;AACF;AACA;AACA;AACA;AACA;IALE;MAAAV,IAAA;MAAAC,GAAA;MAAAC,KAAA,EAMA,SAAAwB,aAAuB;QAAEtB;MAAmB,CAAC,EAAE;QAC7C,MAAMmB,WAAW,GAAG,IAAI,CAACJ,eAAe,CAACf,MAAqB,CAAC;QAC/D,IAAI,CAACuB,8BAA8B,CAACJ,WAAqC,CAAC;MAC5E;;MAEA;AACF;AACA;AACA;AACA;AACA;IALE;MAAAvB,IAAA;MAAAC,GAAA;MAAAC,KAAA,EAMA,SAAA0B,eAAyB;QAAE3B;MAAmB,CAAC,EAAE;QAC/C,IAAIA,GAAG,IAAIjB,oBAAoB,EAAE;UAC/B,IAAI,CAAC6C,SAAS,CAAC7C,oBAAoB,CAACiB,GAAG,CAAC,CAAC;QAC3C;MACF;;MAEA;AACF;AACA;AACA;AACA;IAJE;MAAAD,IAAA;MAAAC,GAAA;MAAAC,KAAA,EAKA,SAAAyB,+BAAyCG,IAA4B,EAAE;QACrE,IAAI,CAACA,IAAI,CAACC,QAAQ,IAAID,IAAI,CAAC5B,KAAK,KAAK,IAAI,CAACA,KAAK,EAAE;UAC/C,MAAM8B,IAAI,GAAG;YACXC,OAAO,EAAE,IAAI;YACbC,QAAQ,EAAE,IAAI;YACdC,MAAM,EAAE;cACNL;YACF;UACF,CAAC;UACD,MAAMlC,WAAW,GAAG,IAAI,CAACA,WAAwC;UACjE,MAAMwC,iBAAiB,GAAG,IAAIC,WAAW,CAACzC,WAAW,CAAC0C,iBAAiB,EAAAC,aAAA,CAAAA,aAAA,KAClEP,IAAI;YACPQ,UAAU,EAAE;UAAI,EACjB,CAAC;UACF,IAAI,IAAI,CAACC,aAAa,CAACL,iBAAiB,CAAC,EAAE;YACzC,IAAI,CAACM,mBAAmB,CAACZ,IAAI,CAAC;YAC9B,MAAMa,gBAAgB,GAAG,IAAIN,WAAW,CAACzC,WAAW,CAACgD,WAAW,EAAEZ,IAAI,CAAC;YACvE,IAAI,CAACS,aAAa,CAACE,gBAAgB,CAAC;UACtC;QACF;MACF;;MAEA;AACF;AACA;AACA;AACA;IAJE;MAAA3C,IAAA;MAAAC,GAAA;MAAAC,KAAA,EAKA,SAAA2B,UAAoBL,SAAiB,EAAE;QACrC,MAAM;UAAEV;QAAqB,CAAC,GAAG,IAAI,CAClClB,WAAwC;QAC3C,MAAMqB,QAAQ,GAAG,IAAI,CAACC,YAAY,CAChC,IAAI,CAACF,aAAa,CAACF,oBAAoB,CAAC,EACxCU,SACF,CAAC;QACD,IAAIP,QAAQ,EAAE;UACZ,IAAI,CAACU,8BAA8B,CAACV,QAAkC,CAAC;UACvE,IAAI,CAAC4B,aAAa,CAAC,CAAC;QACtB;MACF;;MAEA;AACF;AACA;AACA;AACA;IAJE;MAAA7C,IAAA;MAAAC,GAAA;MAAAC,KAAA,EAKA,SAAAwC,oBAA8BI,YAAoC,EAAE;QAClE,IAAI,CAAC5C,KAAK,GAAG4C,YAAY,CAAC5C,KAAK;QAC/BpB,OAAO,CACL,IAAI,CAAC0B,gBAAgB,CAClB,IAAI,CAACZ,WAAW,CAA+BkB,oBAClD,CAAC,EACAgB,IAAI,IAAK;UACPA,IAAI,CAA4BiB,QAAQ,GAAG,KAAK;QACnD,CACF,CAAC;QACDD,YAAY,CAACC,QAAQ,GAAG,IAAI;QAC5B;QACAC,OAAO,CAACC,OAAO,CAAC,CAAC,CAACC,IAAI,CAAC,MAAM;UAC3BJ,YAAY,CAACK,KAAK,CAAC,CAAC;UAEpB,MAAM;YAAE7C;UAAa,CAAC,GAAG,IAAI,CAACV,WAAwC;UACtE,MAAMW,KAAK,GAAG,IAAI,CAACC,gBAAgB,CAACF,YAAY,CAAC;UACjD,MAAMhB,KAAK,GAAGP,OAAO,CACnBwB,KAAK,EACJuC,YAAY,CAAarC,OAAO,CAACH,YAAY,CAChD,CAAC;UACD,MAAMI,SAAS,GAAGpB,KAAK,GAAG,CAAC,GAAGA,KAAK,GAAGA,KAAK,GAAG,CAAC;UAC/CR,OAAO,CAAC,IAAI,CAAC0B,gBAAgB,CAACF,YAAY,CAAC,EAAE,CAACK,IAAI,EAAEC,CAAC,KAAK;YACxD;YACA;YACCD,IAAI,CAA4BE,WAAW,GAAGD,CAAC,KAAKF,SAAS;UAChE,CAAC,CAAC;QACJ,CAAC,CAAC;MACJ;;MAEA;AACF;AACA;IAFE;MAAAV,IAAA;MAAAoD,UAAA,GAGCxE,QAAQ,CAAC;QAAEyE,OAAO,EAAE;MAAK,CAAC,CAAC;MAAApD,GAAA;MAAAC,MAAA;QAAA,OACpB,EAAE;MAAA;IAAA;MAAAF,IAAA;MAAAoD,UAAA,GAKTxE,QAAQ,CAAC;QAAEyE,OAAO,EAAE;MAAK,CAAC,CAAC;MAAApD,GAAA;MAAAC,MAAA;QAAA,OACrBjB,qBAAqB,CAACqE,OAAO;MAAA;IAAA;MAAAtD,IAAA;MAAAoD,UAAA,GAKnCxE,QAAQ,CAAC;QAAEyB,IAAI,EAAEkD,OAAO;QAAEF,OAAO,EAAE,IAAI;QAAEG,SAAS,EAAE;MAAO,CAAC,CAAC;MAAAvD,GAAA;MAAAC,MAAA;QAAA,OACnD,KAAK;MAAA;IAAA;MAAAF,IAAA;MAAAC,GAAA;MAAAC,KAAA;MAVhB;AACF;AACA;MAIE;AACF;AACA;MAIE,SAAAuD,aAAaC,iBAAiB,EAAE;QAC9B,IAAIA,iBAAiB,CAACC,GAAG,CAAC,OAAO,CAAC,EAAE;UAClC,MAAM;YAAErD;UAAa,CAAC,GAAG,IAAI,CAACV,WAAwC;UACtEd,OAAO,CAAC,IAAI,CAAC0B,gBAAgB,CAACF,YAAY,CAAC,EAAGK,IAAI,IAAK;YACpDA,IAAI,CAA4BoC,QAAQ,GACtCpC,IAAI,CAA4BT,KAAK,KAAK,IAAI,CAACA,KAAK;UACzD,CAAC,CAAC;QACJ;QACA,MAAM;UAAE0D;QAAiB,CAAC,GAAG,IAAI,CAAChE,WAAwC;QAC1E,IAAI,IAAI,CAACoB,aAAa,CAAC4C,gBAAgB,CAAC,EAAE;UACxC,IAAI,CAACC,QAAQ,GAAG,IAAI;QACtB;QACA,OAAO,IAAI;MACb;IAAC;MAAA7D,IAAA;MAAAC,GAAA;MAAAC,KAAA,EAED,SAAA4D,kBAAA,EAAoB;QAClB,MAAM;UAAEhD;QAAqB,CAAC,GAAG,IAAI,CAClClB,WAAwC;QAC3C,MAAMmB,YAAY,GAAG,IAAI,CAACC,aAAa,CAACF,oBAAoB,CAAC;QAC7D,MAAMG,QAAQ,GAAG,IAAI,CAACC,YAAY,CAChCH,YAAY,EACZ,CACF,CAAC;;QAED;QACA;QACCE,QAAQ,CAA4BJ,WAAW,GAAG,IAAI;MACzD;;MAEA;AACF;AACA;IAFE;MAAAb,IAAA;MAAA+D,MAAA;MAAA9D,GAAA;MAAAC,KAAA,EAGA,SAAAI,aAAA,EAA0B;QACxB,OAAO,GAAGzB,MAAM,wBAAwB;MAC1C;;MAEA;AACF;AACA;IAFE;MAAAmB,IAAA;MAAA+D,MAAA;MAAA9D,GAAA;MAAAC,KAAA,EAGA,SAAA0D,iBAAA,EAA8B;QAC5B,OAAO,GAAG/E,MAAM,8BAA8B;MAChD;;MAEA;AACF;AACA;IAFE;MAAAmB,IAAA;MAAA+D,MAAA;MAAA9D,GAAA;MAAAC,KAAA,EAGA,SAAAmB,oBAAA,EAAiC;QAC/B,OAAO,GAAGxC,MAAM,wCAAwC;MAC1D;;MAEA;AACF;AACA;IAFE;MAAAmB,IAAA;MAAA+D,MAAA;MAAA9D,GAAA;MAAAC,KAAA,EAGA,SAAAY,qBAAA,EAAkC;QAChC,OAAO,GAAGjC,MAAM,kCAAkC;MACpD;;MAEA;AACF;AACA;AACA;IAHE;MAAAmB,IAAA;MAAA+D,MAAA;MAAA9D,GAAA;MAAAC,KAAA,EAIA,SAAAoC,kBAAA,EAA+B;QAC7B,OAAO,GAAGzD,MAAM,iCAAiC;MACnD;;MAEA;AACF;AACA;IAFE;MAAAmB,IAAA;MAAA+D,MAAA;MAAA9D,GAAA;MAAAC,KAAA,EAGA,SAAA0C,YAAA,EAAyB;QACvB,OAAO,GAAG/D,MAAM,4BAA4B;MAC9C;IAAC;MAAAmB,IAAA;MAAAC,GAAA;MAAAC,KAAA,EAED,SAAA8D,OAAA,EAAS;QACP,MAAM;UACJ7D,YAAY,EAAE8D,WAAW;UACzBrC,cAAc,EAAEsC,aAAa;UAC7BJ,iBAAiB,EAAEK;QACrB,CAAC,GAAG,IAAI;QACR,OAAOxF,IAAI,CAAAyF,EAAA,KAAAA,EAAA,GAAAC,CAAA;AACf;AACA,kBAFe;AACf,oBADe;AACf,sBADe;AACf,qBADe;AACf,sBADe;AACf,KADe,GAEG,IAAI,CAAC3C,YAAY,EACfwC,aAAa,EACXD,WAAW,EACZA,WAAW,EACVE,gBAAgB;MAEpC;IAAC;MAAAnE,IAAA;MAAA+D,MAAA;MAAA9D,GAAA;MAAAC,MAAA;QAAA,OAEehB,MAAM;MAAA;IAAA;EAAA;AAAA,GAlRwBR,UAAU;AAAA,SAArCc,kBAAkB,IAAA8E,OAAA","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,7 +1,7 @@
1
1
  /**
2
2
  * @license
3
3
  *
4
- * Copyright IBM Corp. 2019, 2024
4
+ * Copyright IBM Corp. 2019, 2023
5
5
  *
6
6
  * This source code is licensed under the Apache-2.0 license found in the
7
7
  * LICENSE file in the root directory of this source tree.
@@ -1,13 +1,14 @@
1
1
  import _decorate from "@babel/runtime/helpers/esm/decorate";
2
- import _get from "@babel/runtime/helpers/esm/get";
3
2
  import _getPrototypeOf from "@babel/runtime/helpers/esm/getPrototypeOf";
3
+ import _get from "@babel/runtime/helpers/esm/get";
4
4
  let _ = t => t,
5
5
  _t,
6
6
  _t2;
7
+ function _superPropGet(t, e, r, o) { var p = _get(_getPrototypeOf(1 & o ? t.prototype : t), e, r); return 2 & o ? function (t) { return p.apply(r, t); } : p; }
7
8
  /**
8
9
  * @license
9
10
  *
10
- * Copyright IBM Corp. 2019, 2024
11
+ * Copyright IBM Corp. 2019, 2023
11
12
  *
12
13
  * This source code is licensed under the Apache-2.0 license found in the
13
14
  * LICENSE file in the root directory of this source tree.
@@ -145,7 +146,7 @@ let CDSCopy = _decorate([customElement(`${prefix}-copy`)], function (_initialize
145
146
  this.closeOnActivation = false;
146
147
  this.align = 'bottom';
147
148
  this.addEventListener('click', this._handleClickButton);
148
- _get(_getPrototypeOf(CDSCopy.prototype), "connectedCallback", this).call(this);
149
+ _superPropGet(CDSCopy, "connectedCallback", this, 3)([]);
149
150
  }
150
151
  }, {
151
152
  kind: "method",
@@ -161,7 +162,7 @@ let CDSCopy = _decorate([customElement(`${prefix}-copy`)], function (_initialize
161
162
  this._animation = '';
162
163
  }
163
164
  });
164
- _get(_getPrototypeOf(CDSCopy.prototype), "updated", this).call(this, changedProperties);
165
+ _superPropGet(CDSCopy, "updated", this, 3)([changedProperties]);
165
166
  (_this$shadowRoot4 = this.shadowRoot) === null || _this$shadowRoot4 === void 0 || (_this$shadowRoot4 = _this$shadowRoot4.querySelector('button') // @ts-ignore: TS thinks `host` doesn't exist on `parentNode`
166
167
  ) === null || _this$shadowRoot4 === void 0 || _this$shadowRoot4.setAttribute('aria-label', (_this$parentNode = this.parentNode) === null || _this$parentNode === void 0 ? void 0 : _this$parentNode.host.textContent);
167
168
  }
@@ -1 +1 @@
1
- {"version":3,"file":"copy.js","names":["html","property","prefix","styles","CDSIconButton","carbonElement","customElement","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, 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 { html } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { prefix } from '../../globals/settings';\nimport styles from '../copy-button/copy-button.scss';\nimport CDSIconButton from '../icon-button/icon-button';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\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","prefix","styles","CDSIconButton","carbonElement","customElement","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","_superPropGet","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 } from 'lit/decorators.js';\nimport { prefix } from '../../globals/settings';\nimport styles from '../copy-button/copy-button.scss';\nimport CDSIconButton from '../icon-button/icon-button';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\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,7 +1,7 @@
1
1
  /**
2
2
  * @license
3
3
  *
4
- * Copyright IBM Corp. 2019, 2024
4
+ * Copyright IBM Corp. 2019, 2023
5
5
  *
6
6
  * This source code is licensed under the Apache-2.0 license found in the
7
7
  * LICENSE file in the root directory of this source tree.
@@ -4,7 +4,7 @@ let _ = t => t,
4
4
  /**
5
5
  * @license
6
6
  *
7
- * Copyright IBM Corp. 2019, 2024
7
+ * Copyright IBM Corp. 2019, 2023
8
8
  *
9
9
  * This source code is licensed under the Apache-2.0 license found in the
10
10
  * LICENSE file in the root directory of this source tree.
@@ -1 +1 @@
1
- {"version":3,"file":"copy-button.js","names":["LitElement","html","property","Copy16","carbonElement","customElement","prefix","FocusMixin","styles","CDSCopyButton","_decorate","_initialize","_FocusMixin","constructor","args","F","d","kind","decorators","reflect","attribute","key","value","type","Boolean","Number","render","buttonClassName","disabled","feedback","feedbackTimeout","classes","_t","_","slot","class","static"],"sources":["components/copy-button/copy-button.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 Copy16 from '@carbon/icons/lib/copy/16';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\nimport { prefix } from '../../globals/settings';\nimport FocusMixin from '../../globals/mixins/focus';\nimport styles from './copy-button.scss';\nimport '../copy/copy';\n\n/**\n * Copy button.\n *\n * @element cds-copy-button\n */\n@customElement(`${prefix}-copy-button`)\nclass CDSCopyButton extends FocusMixin(LitElement) {\n /**\n * Specify an optional className to be added to your Button\n */\n @property({ reflect: true, attribute: 'button-class-name' })\n buttonClassName;\n\n /**\n * `true` if the button should be disabled.\n */\n @property({ type: Boolean, reflect: true })\n disabled = false;\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 render() {\n const { buttonClassName, disabled, feedback, feedbackTimeout } = this;\n\n let classes = `${prefix}--copy-btn`;\n\n if (buttonClassName) {\n classes += ` ${buttonClassName}`;\n }\n\n return html`\n <cds-copy\n ?disabled=${disabled}\n feedback=${feedback}\n feedback-timeout=${feedbackTimeout}\n button-class-name=${classes}>\n ${Copy16({ slot: 'icon', class: `${prefix}--snippet__icon` })}\n <slot slot=\"tooltip-content\"></slot>\n </cds-copy>\n `;\n }\n\n static styles = styles;\n}\n\nexport default CDSCopyButton;\n"],"mappings":";;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,UAAU,EAAEC,IAAI,QAAQ,KAAK;AACtC,SAASC,QAAQ,QAAQ,mBAAmB;AAC5C,OAAOC,MAAM,MAAM,qBAA2B;AAC9C,SAASC,aAAa,IAAIC,aAAa,QAAQ,yCAAyC;AACxF,SAASC,MAAM,QAAQ,wBAAwB;AAC/C,OAAOC,UAAU,MAAM,4BAA4B;AACnD,OAAOC,MAAM,MAAM,wBAAoB;AACvC,OAAO,cAAc;;AAErB;AACA;AACA;AACA;AACA;AAJA,IAMMC,aAAa,GAAAC,SAAA,EADlBL,aAAa,CAAC,GAAGC,MAAM,cAAc,CAAC,aAAAK,WAAA,EAAAC,WAAA;EAAvC,MACMH,aAAa,SAAAG,WAAA,CAAgC;IAAAC,YAAA,GAAAC,IAAA;MAAA,SAAAA,IAAA;MAAAH,WAAA;IAAA;EA+CnD;EAAC;IAAAI,CAAA,EA/CKN,aAAa;IAAAO,CAAA;MAAAC,IAAA;MAAAC,UAAA,GAIhBhB,QAAQ,CAAC;QAAEiB,OAAO,EAAE,IAAI;QAAEC,SAAS,EAAE;MAAoB,CAAC,CAAC;MAAAC,GAAA;MAAAC,KAAA;IAAA;MAAAL,IAAA;MAAAC,UAAA,GAM3DhB,QAAQ,CAAC;QAAEqB,IAAI,EAAEC,OAAO;QAAEL,OAAO,EAAE;MAAK,CAAC,CAAC;MAAAE,GAAA;MAAAC,MAAA;QAAA,OAChC,KAAK;MAAA;IAAA;MAAAL,IAAA;MAAAC,UAAA,GAKfhB,QAAQ,CAAC,CAAC;MAAAmB,GAAA;MAAAC,MAAA;QAAA,OACA,SAAS;MAAA;IAAA;MAAAL,IAAA;MAAAC,UAAA,GAKnBhB,QAAQ,CAAC;QAAEqB,IAAI,EAAEE,MAAM;QAAEL,SAAS,EAAE;MAAmB,CAAC,CAAC;MAAAC,GAAA;MAAAC,MAAA;QAAA,OACxC,IAAI;MAAA;IAAA;MAAAL,IAAA;MAAAI,GAAA;MAAAC,KAAA;MAtBtB;AACF;AACA;;MAIE;AACF;AACA;;MAIE;AACF;AACA;;MAIE;AACF;AACA;;MAIE,SAAAI,OAAA,EAAS;QACP,MAAM;UAAEC,eAAe;UAAEC,QAAQ;UAAEC,QAAQ;UAAEC;QAAgB,CAAC,GAAG,IAAI;QAErE,IAAIC,OAAO,GAAG,GAAGzB,MAAM,YAAY;QAEnC,IAAIqB,eAAe,EAAE;UACnBI,OAAO,IAAI,IAAIJ,eAAe,EAAE;QAClC;QAEA,OAAO1B,IAAI,CAAA+B,EAAA,KAAAA,EAAA,GAAAC,CAAA;AACf;AACA,oBAFe;AACf,mBADe;AACf,2BADe;AACf,4BADe;AACf,UADe;AACf;AACA;AACA,KAHe,GAEKL,QAAQ,EACTC,QAAQ,EACAC,eAAe,EACdC,OAAO,EACzB5B,MAAM,CAAC;UAAE+B,IAAI,EAAE,MAAM;UAAEC,KAAK,EAAE,GAAG7B,MAAM;QAAkB,CAAC,CAAC;MAInE;IAAC;MAAAW,IAAA;MAAAmB,MAAA;MAAAf,GAAA;MAAAC,MAAA;QAAA,OAEed,MAAM;MAAA;IAAA;EAAA;AAAA,GA9CID,UAAU,CAACP,UAAU,CAAC;AAiDlD,eAAeS,aAAa","ignoreList":[]}
1
+ {"version":3,"file":"copy-button.js","names":["LitElement","html","property","Copy16","carbonElement","customElement","prefix","FocusMixin","styles","CDSCopyButton","_decorate","_initialize","_FocusMixin","constructor","args","F","d","kind","decorators","reflect","attribute","key","value","type","Boolean","Number","render","buttonClassName","disabled","feedback","feedbackTimeout","classes","_t","_","slot","class","static"],"sources":["components/copy-button/copy-button.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 { LitElement, html } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport Copy16 from '@carbon/icons/lib/copy/16';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\nimport { prefix } from '../../globals/settings';\nimport FocusMixin from '../../globals/mixins/focus';\nimport styles from './copy-button.scss';\nimport '../copy/copy';\n\n/**\n * Copy button.\n *\n * @element cds-copy-button\n */\n@customElement(`${prefix}-copy-button`)\nclass CDSCopyButton extends FocusMixin(LitElement) {\n /**\n * Specify an optional className to be added to your Button\n */\n @property({ reflect: true, attribute: 'button-class-name' })\n buttonClassName;\n\n /**\n * `true` if the button should be disabled.\n */\n @property({ type: Boolean, reflect: true })\n disabled = false;\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 render() {\n const { buttonClassName, disabled, feedback, feedbackTimeout } = this;\n\n let classes = `${prefix}--copy-btn`;\n\n if (buttonClassName) {\n classes += ` ${buttonClassName}`;\n }\n\n return html`\n <cds-copy\n ?disabled=${disabled}\n feedback=${feedback}\n feedback-timeout=${feedbackTimeout}\n button-class-name=${classes}>\n ${Copy16({ slot: 'icon', class: `${prefix}--snippet__icon` })}\n <slot slot=\"tooltip-content\"></slot>\n </cds-copy>\n `;\n }\n\n static styles = styles;\n}\n\nexport default CDSCopyButton;\n"],"mappings":";;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,UAAU,EAAEC,IAAI,QAAQ,KAAK;AACtC,SAASC,QAAQ,QAAQ,mBAAmB;AAC5C,OAAOC,MAAM,MAAM,qBAA2B;AAC9C,SAASC,aAAa,IAAIC,aAAa,QAAQ,yCAAyC;AACxF,SAASC,MAAM,QAAQ,wBAAwB;AAC/C,OAAOC,UAAU,MAAM,4BAA4B;AACnD,OAAOC,MAAM,MAAM,wBAAoB;AACvC,OAAO,cAAc;;AAErB;AACA;AACA;AACA;AACA;AAJA,IAMMC,aAAa,GAAAC,SAAA,EADlBL,aAAa,CAAC,GAAGC,MAAM,cAAc,CAAC,aAAAK,WAAA,EAAAC,WAAA;EAAvC,MACMH,aAAa,SAAAG,WAAA,CAAgC;IAAAC,YAAA,GAAAC,IAAA;MAAA,SAAAA,IAAA;MAAAH,WAAA;IAAA;EA+CnD;EAAC;IAAAI,CAAA,EA/CKN,aAAa;IAAAO,CAAA;MAAAC,IAAA;MAAAC,UAAA,GAIhBhB,QAAQ,CAAC;QAAEiB,OAAO,EAAE,IAAI;QAAEC,SAAS,EAAE;MAAoB,CAAC,CAAC;MAAAC,GAAA;MAAAC,KAAA;IAAA;MAAAL,IAAA;MAAAC,UAAA,GAM3DhB,QAAQ,CAAC;QAAEqB,IAAI,EAAEC,OAAO;QAAEL,OAAO,EAAE;MAAK,CAAC,CAAC;MAAAE,GAAA;MAAAC,MAAA;QAAA,OAChC,KAAK;MAAA;IAAA;MAAAL,IAAA;MAAAC,UAAA,GAKfhB,QAAQ,CAAC,CAAC;MAAAmB,GAAA;MAAAC,MAAA;QAAA,OACA,SAAS;MAAA;IAAA;MAAAL,IAAA;MAAAC,UAAA,GAKnBhB,QAAQ,CAAC;QAAEqB,IAAI,EAAEE,MAAM;QAAEL,SAAS,EAAE;MAAmB,CAAC,CAAC;MAAAC,GAAA;MAAAC,MAAA;QAAA,OACxC,IAAI;MAAA;IAAA;MAAAL,IAAA;MAAAI,GAAA;MAAAC,KAAA;MAtBtB;AACF;AACA;;MAIE;AACF;AACA;;MAIE;AACF;AACA;;MAIE;AACF;AACA;;MAIE,SAAAI,MAAMA,CAAA,EAAG;QACP,MAAM;UAAEC,eAAe;UAAEC,QAAQ;UAAEC,QAAQ;UAAEC;QAAgB,CAAC,GAAG,IAAI;QAErE,IAAIC,OAAO,GAAG,GAAGzB,MAAM,YAAY;QAEnC,IAAIqB,eAAe,EAAE;UACnBI,OAAO,IAAI,IAAIJ,eAAe,EAAE;QAClC;QAEA,OAAO1B,IAAI,CAAA+B,EAAA,KAAAA,EAAA,GAAAC,CAAA;AACf;AACA,oBAFe;AACf,mBADe;AACf,2BADe;AACf,4BADe;AACf,UADe;AACf;AACA;AACA,KAHe,GAEKL,QAAQ,EACTC,QAAQ,EACAC,eAAe,EACdC,OAAO,EACzB5B,MAAM,CAAC;UAAE+B,IAAI,EAAE,MAAM;UAAEC,KAAK,EAAE,GAAG7B,MAAM;QAAkB,CAAC,CAAC;MAInE;IAAC;MAAAW,IAAA;MAAAmB,MAAA;MAAAf,GAAA;MAAAC,MAAA;QAAA,OAEed,MAAM;MAAA;IAAA;EAAA;AAAA,GA9CID,UAAU,CAACP,UAAU,CAAC;AAiDlD,eAAeS,aAAa","ignoreList":[]}