@carbon/web-components 2.53.0 → 2.54.0-rc.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (463) hide show
  1. package/custom-elements.json +769 -106
  2. package/es/components/ai-label/ai-label.scss.js +1 -1
  3. package/es/components/breadcrumb/breadcrumb.scss.js +1 -1
  4. package/es/components/button/button.scss.js +1 -1
  5. package/es/components/checkbox/checkbox.scss.js +1 -1
  6. package/es/components/code-snippet/code-snippet.scss.js +1 -1
  7. package/es/components/combo-box/combo-box.scss.js +1 -1
  8. package/es/components/combo-button/combo-button.scss.js +1 -1
  9. package/es/components/contained-list/contained-list.scss.js +1 -1
  10. package/es/components/content-switcher/content-switcher.scss.js +1 -1
  11. package/es/components/copy-button/copy-button.scss.js +1 -1
  12. package/es/components/data-table/data-table.scss.js +1 -1
  13. package/es/components/data-table/table-toolbar-search.d.ts +3 -3
  14. package/es/components/data-table/table-toolbar-search.d.ts.map +1 -1
  15. package/es/components/data-table/table-toolbar-search.js +2 -3
  16. package/es/components/data-table/table-toolbar-search.js.map +1 -1
  17. package/es/components/date-picker/date-picker.d.ts +4 -0
  18. package/es/components/date-picker/date-picker.d.ts.map +1 -1
  19. package/es/components/date-picker/date-picker.js +5 -1
  20. package/es/components/date-picker/date-picker.js.map +1 -1
  21. package/es/components/date-picker/date-picker.scss.js +1 -1
  22. package/es/components/date-picker/fix-events-plugin.d.ts.map +1 -1
  23. package/es/components/date-picker/fix-events-plugin.js +0 -6
  24. package/es/components/date-picker/fix-events-plugin.js.map +1 -1
  25. package/es/components/date-picker/range-plugin.d.ts +2 -8
  26. package/es/components/date-picker/range-plugin.d.ts.map +1 -1
  27. package/es/components/date-picker/range-plugin.js +3 -9
  28. package/es/components/date-picker/range-plugin.js.map +1 -1
  29. package/es/components/dialog/dialog.scss.js +1 -1
  30. package/es/components/dropdown/dropdown.scss.js +1 -1
  31. package/es/components/feature-flags/index.js +1 -1
  32. package/es/components/file-uploader/file-uploader.scss.js +1 -1
  33. package/es/components/fluid-combo-box/fluid-combo-box-skeleton.d.ts +18 -0
  34. package/es/components/fluid-combo-box/fluid-combo-box-skeleton.d.ts.map +1 -0
  35. package/es/components/fluid-combo-box/fluid-combo-box-skeleton.js +45 -0
  36. package/es/components/fluid-combo-box/fluid-combo-box-skeleton.js.map +1 -0
  37. package/es/components/fluid-combo-box/fluid-combo-box.d.ts +23 -0
  38. package/es/components/fluid-combo-box/fluid-combo-box.d.ts.map +1 -0
  39. package/es/components/fluid-combo-box/fluid-combo-box.js +53 -0
  40. package/es/components/fluid-combo-box/fluid-combo-box.js.map +1 -0
  41. package/es/components/fluid-combo-box/fluid-combo-box.scss.js +14 -0
  42. package/es/components/fluid-combo-box/fluid-combo-box.scss.js.map +1 -0
  43. package/es/components/fluid-combo-box/index.d.ts +9 -0
  44. package/es/components/fluid-combo-box/index.d.ts.map +1 -0
  45. package/es/components/fluid-combo-box/index.js +9 -0
  46. package/es/components/fluid-dropdown/fluid-dropdown.scss.js +1 -1
  47. package/es/components/fluid-multi-select/fluid-multi-select.scss.js +1 -1
  48. package/es/components/fluid-number-input/fluid-number-input.scss.js +1 -1
  49. package/es/components/fluid-password-input/fluid-password-input.scss.js +1 -1
  50. package/es/components/fluid-password-input/fluid-password-input.scss.js.map +1 -1
  51. package/es/components/fluid-search/fluid-search.scss.js +1 -1
  52. package/es/components/fluid-select/fluid-select.scss.js +1 -1
  53. package/es/components/fluid-text-input/fluid-text-input.scss.js +1 -1
  54. package/es/components/fluid-textarea/fluid-textarea.scss.js +1 -1
  55. package/es/components/fluid-time-picker/fluid-time-picker.scss.js +1 -1
  56. package/es/components/form/form-item.scss.js +1 -1
  57. package/es/components/form/form.scss.js +1 -1
  58. package/es/components/form-group/form-group.scss.js +1 -1
  59. package/es/components/grid/column-hang.scss.js +1 -1
  60. package/es/components/grid/grid.d.ts +5 -0
  61. package/es/components/grid/grid.d.ts.map +1 -1
  62. package/es/components/grid/grid.js +11 -1
  63. package/es/components/grid/grid.js.map +1 -1
  64. package/es/components/grid/grid.scss.js +1 -1
  65. package/es/components/grid/grid.scss.js.map +1 -1
  66. package/es/components/menu/menu-item.d.ts +1 -0
  67. package/es/components/menu/menu-item.d.ts.map +1 -1
  68. package/es/components/menu/menu-item.js +5 -0
  69. package/es/components/menu/menu-item.js.map +1 -1
  70. package/es/components/menu/menu-item.scss.js +1 -1
  71. package/es/components/menu/menu-item.scss.js.map +1 -1
  72. package/es/components/menu-button/menu-button.d.ts.map +1 -1
  73. package/es/components/menu-button/menu-button.js +0 -1
  74. package/es/components/menu-button/menu-button.js.map +1 -1
  75. package/es/components/menu-button/menu-button.scss.js +1 -1
  76. package/es/components/modal/modal.scss.js +1 -1
  77. package/es/components/multi-select/multi-select.d.ts +38 -4
  78. package/es/components/multi-select/multi-select.d.ts.map +1 -1
  79. package/es/components/multi-select/multi-select.js +30 -27
  80. package/es/components/multi-select/multi-select.js.map +1 -1
  81. package/es/components/multi-select/multi-select.scss.js +1 -1
  82. package/es/components/notification/actionable-notification.scss.js +1 -1
  83. package/es/components/notification/inline-notification.scss.js +1 -1
  84. package/es/components/notification/toast-notification.scss.js +1 -1
  85. package/es/components/number-input/number-input.scss.js +1 -1
  86. package/es/components/overflow-menu/overflow-menu.scss.js +1 -1
  87. package/es/components/page-header/page-header.scss.js +1 -1
  88. package/es/components/pagination/defs.d.ts +25 -0
  89. package/es/components/pagination/defs.d.ts.map +1 -1
  90. package/es/components/pagination/defs.js +27 -1
  91. package/es/components/pagination/defs.js.map +1 -1
  92. package/es/components/pagination/pagination.d.ts +9 -1
  93. package/es/components/pagination/pagination.d.ts.map +1 -1
  94. package/es/components/pagination/pagination.js +7 -2
  95. package/es/components/pagination/pagination.js.map +1 -1
  96. package/es/components/pagination/pagination.scss.js +1 -1
  97. package/es/components/pagination/pagination.scss.js.map +1 -1
  98. package/es/components/pagination-nav/pagination-nav.scss.js +1 -1
  99. package/es/components/password-input/defs.d.ts +5 -1
  100. package/es/components/password-input/defs.d.ts.map +1 -1
  101. package/es/components/password-input/defs.js +4 -0
  102. package/es/components/password-input/defs.js.map +1 -1
  103. package/es/components/password-input/password-input.d.ts +1 -1
  104. package/es/components/password-input/password-input.d.ts.map +1 -1
  105. package/es/components/password-input/password-input.js +14 -14
  106. package/es/components/password-input/password-input.js.map +1 -1
  107. package/es/components/password-input/password-input.scss.js +1 -1
  108. package/es/components/password-input/password-input.scss.js.map +1 -1
  109. package/es/components/popover/popover.scss.js +1 -1
  110. package/es/components/progress-indicator/progress-indicator.scss.js +1 -1
  111. package/es/components/radio-button/radio-button.scss.js +1 -1
  112. package/es/components/search/defs.d.ts +28 -0
  113. package/es/components/search/defs.d.ts.map +1 -0
  114. package/es/components/search/defs.js +40 -0
  115. package/es/components/search/defs.js.map +1 -0
  116. package/es/components/search/search-skeleton.d.ts +4 -4
  117. package/es/components/search/search-skeleton.d.ts.map +1 -1
  118. package/es/components/search/search-skeleton.js +9 -9
  119. package/es/components/search/search-skeleton.js.map +1 -1
  120. package/es/components/search/search.d.ts +4 -3
  121. package/es/components/search/search.d.ts.map +1 -1
  122. package/es/components/search/search.js +3 -5
  123. package/es/components/search/search.js.map +1 -1
  124. package/es/components/search/search.scss.js +1 -1
  125. package/es/components/search/search.scss.js.map +1 -1
  126. package/es/components/select/select.d.ts +1 -1
  127. package/es/components/select/select.d.ts.map +1 -1
  128. package/es/components/select/select.js +1 -4
  129. package/es/components/select/select.js.map +1 -1
  130. package/es/components/select/select.scss.js +1 -1
  131. package/es/components/select/select.scss.js.map +1 -1
  132. package/es/components/skip-to-content/skip-to-content.scss.js +1 -1
  133. package/es/components/slider/slider.d.ts.map +1 -1
  134. package/es/components/slider/slider.js +2 -2
  135. package/es/components/slider/slider.js.map +1 -1
  136. package/es/components/slider/slider.scss.js +1 -1
  137. package/es/components/slug/slug.scss.js +1 -1
  138. package/es/components/tabs/stories/tabs-wrapper.d.ts +53 -0
  139. package/es/components/tabs/stories/tabs-wrapper.d.ts.map +1 -0
  140. package/es/components/tabs/stories/tabs-wrapper.js +129 -0
  141. package/es/components/tabs/stories/tabs-wrapper.js.map +1 -0
  142. package/es/components/tabs/tab.d.ts +23 -0
  143. package/es/components/tabs/tab.d.ts.map +1 -1
  144. package/es/components/tabs/tab.js +59 -3
  145. package/es/components/tabs/tab.js.map +1 -1
  146. package/es/components/tabs/tabs.d.ts +14 -0
  147. package/es/components/tabs/tabs.d.ts.map +1 -1
  148. package/es/components/tabs/tabs.js +74 -25
  149. package/es/components/tabs/tabs.js.map +1 -1
  150. package/es/components/tabs/tabs.scss.js +1 -1
  151. package/es/components/tabs/tabs.scss.js.map +1 -1
  152. package/es/components/tag/tag.scss.js +1 -1
  153. package/es/components/text-input/defs.d.ts +5 -1
  154. package/es/components/text-input/defs.d.ts.map +1 -1
  155. package/es/components/text-input/defs.js +4 -0
  156. package/es/components/text-input/defs.js.map +1 -1
  157. package/es/components/text-input/text-input-skeleton.d.ts +5 -0
  158. package/es/components/text-input/text-input-skeleton.d.ts.map +1 -1
  159. package/es/components/text-input/text-input-skeleton.js +10 -3
  160. package/es/components/text-input/text-input-skeleton.js.map +1 -1
  161. package/es/components/text-input/text-input.d.ts +2 -2
  162. package/es/components/text-input/text-input.d.ts.map +1 -1
  163. package/es/components/text-input/text-input.js +15 -11
  164. package/es/components/text-input/text-input.js.map +1 -1
  165. package/es/components/text-input/text-input.scss.js +1 -1
  166. package/es/components/text-input/text-input.scss.js.map +1 -1
  167. package/es/components/textarea/textarea.scss.js +1 -1
  168. package/es/components/tile/tile.scss.js +1 -1
  169. package/es/components/time-picker/time-picker.scss.js +1 -1
  170. package/es/components/toggle-tip/toggletip.scss.js +1 -1
  171. package/es/components/tooltip/tooltip.scss.js +1 -1
  172. package/es/components/tooltip/tooltip.scss.js.map +1 -1
  173. package/es/components/tree-view/tree-view.scss.js +1 -1
  174. package/es/components/ui-shell/header.scss.js +1 -1
  175. package/es/index.js +1 -1
  176. package/es/node_modules/flatpickr/dist/esm/index.js +1516 -0
  177. package/es/node_modules/flatpickr/dist/esm/index.js.map +1 -0
  178. package/es/node_modules/flatpickr/dist/esm/l10n/default.js +99 -0
  179. package/es/node_modules/flatpickr/dist/esm/l10n/default.js.map +1 -0
  180. package/es/node_modules/flatpickr/dist/esm/plugins/rangePlugin.js +130 -0
  181. package/es/node_modules/flatpickr/dist/esm/plugins/rangePlugin.js.map +1 -0
  182. package/es/node_modules/flatpickr/dist/esm/types/options.js +90 -0
  183. package/es/node_modules/flatpickr/dist/esm/types/options.js.map +1 -0
  184. package/es/node_modules/flatpickr/dist/esm/utils/dates.js +118 -0
  185. package/es/node_modules/flatpickr/dist/esm/utils/dates.js.map +1 -0
  186. package/es/node_modules/flatpickr/dist/esm/utils/dom.js +52 -0
  187. package/es/node_modules/flatpickr/dist/esm/utils/dom.js.map +1 -0
  188. package/es/node_modules/flatpickr/dist/esm/utils/formatting.js +181 -0
  189. package/es/node_modules/flatpickr/dist/esm/utils/formatting.js.map +1 -0
  190. package/es/node_modules/flatpickr/dist/esm/utils/index.js +33 -0
  191. package/es/node_modules/flatpickr/dist/esm/utils/index.js.map +1 -0
  192. package/es/node_modules/flatpickr/dist/esm/utils/polyfills.js +26 -0
  193. package/es/node_modules/flatpickr/dist/esm/utils/polyfills.js.map +1 -0
  194. package/es/packages/feature-flags/es/index.js.map +1 -0
  195. package/es-custom/components/ai-label/ai-label.scss.js +1 -1
  196. package/es-custom/components/breadcrumb/breadcrumb.scss.js +1 -1
  197. package/es-custom/components/button/button.scss.js +1 -1
  198. package/es-custom/components/checkbox/checkbox.scss.js +1 -1
  199. package/es-custom/components/code-snippet/code-snippet.scss.js +1 -1
  200. package/es-custom/components/combo-box/combo-box.scss.js +1 -1
  201. package/es-custom/components/combo-button/combo-button.scss.js +1 -1
  202. package/es-custom/components/contained-list/contained-list.scss.js +1 -1
  203. package/es-custom/components/content-switcher/content-switcher.scss.js +1 -1
  204. package/es-custom/components/copy-button/copy-button.scss.js +1 -1
  205. package/es-custom/components/data-table/data-table.scss.js +1 -1
  206. package/es-custom/components/data-table/table-toolbar-search.d.ts +3 -3
  207. package/es-custom/components/data-table/table-toolbar-search.d.ts.map +1 -1
  208. package/es-custom/components/data-table/table-toolbar-search.js +2 -3
  209. package/es-custom/components/data-table/table-toolbar-search.js.map +1 -1
  210. package/es-custom/components/date-picker/date-picker.d.ts +4 -0
  211. package/es-custom/components/date-picker/date-picker.d.ts.map +1 -1
  212. package/es-custom/components/date-picker/date-picker.js +5 -1
  213. package/es-custom/components/date-picker/date-picker.js.map +1 -1
  214. package/es-custom/components/date-picker/date-picker.scss.js +1 -1
  215. package/es-custom/components/date-picker/fix-events-plugin.d.ts.map +1 -1
  216. package/es-custom/components/date-picker/fix-events-plugin.js +0 -6
  217. package/es-custom/components/date-picker/fix-events-plugin.js.map +1 -1
  218. package/es-custom/components/date-picker/range-plugin.d.ts +2 -8
  219. package/es-custom/components/date-picker/range-plugin.d.ts.map +1 -1
  220. package/es-custom/components/date-picker/range-plugin.js +3 -9
  221. package/es-custom/components/date-picker/range-plugin.js.map +1 -1
  222. package/es-custom/components/dialog/dialog.scss.js +1 -1
  223. package/es-custom/components/dropdown/dropdown.scss.js +1 -1
  224. package/es-custom/components/feature-flags/index.js +1 -1
  225. package/es-custom/components/file-uploader/file-uploader.scss.js +1 -1
  226. package/es-custom/components/fluid-combo-box/fluid-combo-box-skeleton.d.ts +18 -0
  227. package/es-custom/components/fluid-combo-box/fluid-combo-box-skeleton.d.ts.map +1 -0
  228. package/es-custom/components/fluid-combo-box/fluid-combo-box-skeleton.js +45 -0
  229. package/es-custom/components/fluid-combo-box/fluid-combo-box-skeleton.js.map +1 -0
  230. package/es-custom/components/fluid-combo-box/fluid-combo-box.d.ts +23 -0
  231. package/es-custom/components/fluid-combo-box/fluid-combo-box.d.ts.map +1 -0
  232. package/es-custom/components/fluid-combo-box/fluid-combo-box.js +53 -0
  233. package/es-custom/components/fluid-combo-box/fluid-combo-box.js.map +1 -0
  234. package/es-custom/components/fluid-combo-box/fluid-combo-box.scss.js +14 -0
  235. package/es-custom/components/fluid-combo-box/fluid-combo-box.scss.js.map +1 -0
  236. package/es-custom/components/fluid-combo-box/index.d.ts +9 -0
  237. package/es-custom/components/fluid-combo-box/index.d.ts.map +1 -0
  238. package/es-custom/components/fluid-combo-box/index.js +9 -0
  239. package/es-custom/components/fluid-dropdown/fluid-dropdown.scss.js +1 -1
  240. package/es-custom/components/fluid-multi-select/fluid-multi-select.scss.js +1 -1
  241. package/es-custom/components/fluid-number-input/fluid-number-input.scss.js +1 -1
  242. package/es-custom/components/fluid-password-input/fluid-password-input.scss.js +1 -1
  243. package/es-custom/components/fluid-password-input/fluid-password-input.scss.js.map +1 -1
  244. package/es-custom/components/fluid-search/fluid-search.scss.js +1 -1
  245. package/es-custom/components/fluid-select/fluid-select.scss.js +1 -1
  246. package/es-custom/components/fluid-text-input/fluid-text-input.scss.js +1 -1
  247. package/es-custom/components/fluid-textarea/fluid-textarea.scss.js +1 -1
  248. package/es-custom/components/fluid-time-picker/fluid-time-picker.scss.js +1 -1
  249. package/es-custom/components/form/form-item.scss.js +1 -1
  250. package/es-custom/components/form/form.scss.js +1 -1
  251. package/es-custom/components/form-group/form-group.scss.js +1 -1
  252. package/es-custom/components/grid/column-hang.scss.js +1 -1
  253. package/es-custom/components/grid/grid.d.ts +5 -0
  254. package/es-custom/components/grid/grid.d.ts.map +1 -1
  255. package/es-custom/components/grid/grid.js +11 -1
  256. package/es-custom/components/grid/grid.js.map +1 -1
  257. package/es-custom/components/grid/grid.scss.js +1 -1
  258. package/es-custom/components/grid/grid.scss.js.map +1 -1
  259. package/es-custom/components/menu/menu-item.d.ts +1 -0
  260. package/es-custom/components/menu/menu-item.d.ts.map +1 -1
  261. package/es-custom/components/menu/menu-item.js +5 -0
  262. package/es-custom/components/menu/menu-item.js.map +1 -1
  263. package/es-custom/components/menu/menu-item.scss.js +1 -1
  264. package/es-custom/components/menu/menu-item.scss.js.map +1 -1
  265. package/es-custom/components/menu-button/menu-button.d.ts.map +1 -1
  266. package/es-custom/components/menu-button/menu-button.js +0 -1
  267. package/es-custom/components/menu-button/menu-button.js.map +1 -1
  268. package/es-custom/components/menu-button/menu-button.scss.js +1 -1
  269. package/es-custom/components/modal/modal.scss.js +1 -1
  270. package/es-custom/components/multi-select/multi-select.d.ts +38 -4
  271. package/es-custom/components/multi-select/multi-select.d.ts.map +1 -1
  272. package/es-custom/components/multi-select/multi-select.js +30 -27
  273. package/es-custom/components/multi-select/multi-select.js.map +1 -1
  274. package/es-custom/components/multi-select/multi-select.scss.js +1 -1
  275. package/es-custom/components/notification/actionable-notification.scss.js +1 -1
  276. package/es-custom/components/notification/inline-notification.scss.js +1 -1
  277. package/es-custom/components/notification/toast-notification.scss.js +1 -1
  278. package/es-custom/components/number-input/number-input.scss.js +1 -1
  279. package/es-custom/components/overflow-menu/overflow-menu.scss.js +1 -1
  280. package/es-custom/components/page-header/page-header.scss.js +1 -1
  281. package/es-custom/components/pagination/defs.d.ts +25 -0
  282. package/es-custom/components/pagination/defs.d.ts.map +1 -1
  283. package/es-custom/components/pagination/defs.js +27 -1
  284. package/es-custom/components/pagination/defs.js.map +1 -1
  285. package/es-custom/components/pagination/pagination.d.ts +9 -1
  286. package/es-custom/components/pagination/pagination.d.ts.map +1 -1
  287. package/es-custom/components/pagination/pagination.js +7 -2
  288. package/es-custom/components/pagination/pagination.js.map +1 -1
  289. package/es-custom/components/pagination/pagination.scss.js +1 -1
  290. package/es-custom/components/pagination/pagination.scss.js.map +1 -1
  291. package/es-custom/components/pagination-nav/pagination-nav.scss.js +1 -1
  292. package/es-custom/components/password-input/defs.d.ts +5 -1
  293. package/es-custom/components/password-input/defs.d.ts.map +1 -1
  294. package/es-custom/components/password-input/defs.js +4 -0
  295. package/es-custom/components/password-input/defs.js.map +1 -1
  296. package/es-custom/components/password-input/password-input.d.ts +1 -1
  297. package/es-custom/components/password-input/password-input.d.ts.map +1 -1
  298. package/es-custom/components/password-input/password-input.js +14 -14
  299. package/es-custom/components/password-input/password-input.js.map +1 -1
  300. package/es-custom/components/password-input/password-input.scss.js +1 -1
  301. package/es-custom/components/password-input/password-input.scss.js.map +1 -1
  302. package/es-custom/components/popover/popover.scss.js +1 -1
  303. package/es-custom/components/progress-indicator/progress-indicator.scss.js +1 -1
  304. package/es-custom/components/radio-button/radio-button.scss.js +1 -1
  305. package/es-custom/components/search/defs.d.ts +28 -0
  306. package/es-custom/components/search/defs.d.ts.map +1 -0
  307. package/es-custom/components/search/defs.js +40 -0
  308. package/es-custom/components/search/defs.js.map +1 -0
  309. package/es-custom/components/search/search-skeleton.d.ts +4 -4
  310. package/es-custom/components/search/search-skeleton.d.ts.map +1 -1
  311. package/es-custom/components/search/search-skeleton.js +9 -9
  312. package/es-custom/components/search/search-skeleton.js.map +1 -1
  313. package/es-custom/components/search/search.d.ts +4 -3
  314. package/es-custom/components/search/search.d.ts.map +1 -1
  315. package/es-custom/components/search/search.js +3 -5
  316. package/es-custom/components/search/search.js.map +1 -1
  317. package/es-custom/components/search/search.scss.js +1 -1
  318. package/es-custom/components/search/search.scss.js.map +1 -1
  319. package/es-custom/components/select/select.d.ts +1 -1
  320. package/es-custom/components/select/select.d.ts.map +1 -1
  321. package/es-custom/components/select/select.js +1 -4
  322. package/es-custom/components/select/select.js.map +1 -1
  323. package/es-custom/components/select/select.scss.js +1 -1
  324. package/es-custom/components/select/select.scss.js.map +1 -1
  325. package/es-custom/components/skip-to-content/skip-to-content.scss.js +1 -1
  326. package/es-custom/components/slider/slider.d.ts.map +1 -1
  327. package/es-custom/components/slider/slider.js +2 -2
  328. package/es-custom/components/slider/slider.js.map +1 -1
  329. package/es-custom/components/slider/slider.scss.js +1 -1
  330. package/es-custom/components/slug/slug.scss.js +1 -1
  331. package/es-custom/components/tabs/stories/tabs-wrapper.d.ts +53 -0
  332. package/es-custom/components/tabs/stories/tabs-wrapper.d.ts.map +1 -0
  333. package/es-custom/components/tabs/stories/tabs-wrapper.js +129 -0
  334. package/es-custom/components/tabs/stories/tabs-wrapper.js.map +1 -0
  335. package/es-custom/components/tabs/tab.d.ts +23 -0
  336. package/es-custom/components/tabs/tab.d.ts.map +1 -1
  337. package/es-custom/components/tabs/tab.js +59 -3
  338. package/es-custom/components/tabs/tab.js.map +1 -1
  339. package/es-custom/components/tabs/tabs.d.ts +14 -0
  340. package/es-custom/components/tabs/tabs.d.ts.map +1 -1
  341. package/es-custom/components/tabs/tabs.js +74 -25
  342. package/es-custom/components/tabs/tabs.js.map +1 -1
  343. package/es-custom/components/tabs/tabs.scss.js +1 -1
  344. package/es-custom/components/tabs/tabs.scss.js.map +1 -1
  345. package/es-custom/components/tag/tag.scss.js +1 -1
  346. package/es-custom/components/text-input/defs.d.ts +5 -1
  347. package/es-custom/components/text-input/defs.d.ts.map +1 -1
  348. package/es-custom/components/text-input/defs.js +4 -0
  349. package/es-custom/components/text-input/defs.js.map +1 -1
  350. package/es-custom/components/text-input/text-input-skeleton.d.ts +5 -0
  351. package/es-custom/components/text-input/text-input-skeleton.d.ts.map +1 -1
  352. package/es-custom/components/text-input/text-input-skeleton.js +10 -3
  353. package/es-custom/components/text-input/text-input-skeleton.js.map +1 -1
  354. package/es-custom/components/text-input/text-input.d.ts +2 -2
  355. package/es-custom/components/text-input/text-input.d.ts.map +1 -1
  356. package/es-custom/components/text-input/text-input.js +15 -11
  357. package/es-custom/components/text-input/text-input.js.map +1 -1
  358. package/es-custom/components/text-input/text-input.scss.js +1 -1
  359. package/es-custom/components/text-input/text-input.scss.js.map +1 -1
  360. package/es-custom/components/textarea/textarea.scss.js +1 -1
  361. package/es-custom/components/tile/tile.scss.js +1 -1
  362. package/es-custom/components/time-picker/time-picker.scss.js +1 -1
  363. package/es-custom/components/toggle-tip/toggletip.scss.js +1 -1
  364. package/es-custom/components/tooltip/tooltip.scss.js +1 -1
  365. package/es-custom/components/tooltip/tooltip.scss.js.map +1 -1
  366. package/es-custom/components/tree-view/tree-view.scss.js +1 -1
  367. package/es-custom/components/ui-shell/header.scss.js +1 -1
  368. package/es-custom/index.js +1 -1
  369. package/es-custom/node_modules/flatpickr/dist/esm/index.js +1516 -0
  370. package/es-custom/node_modules/flatpickr/dist/esm/index.js.map +1 -0
  371. package/es-custom/node_modules/flatpickr/dist/esm/l10n/default.js +99 -0
  372. package/es-custom/node_modules/flatpickr/dist/esm/l10n/default.js.map +1 -0
  373. package/es-custom/node_modules/flatpickr/dist/esm/plugins/rangePlugin.js +130 -0
  374. package/es-custom/node_modules/flatpickr/dist/esm/plugins/rangePlugin.js.map +1 -0
  375. package/es-custom/node_modules/flatpickr/dist/esm/types/options.js +90 -0
  376. package/es-custom/node_modules/flatpickr/dist/esm/types/options.js.map +1 -0
  377. package/es-custom/node_modules/flatpickr/dist/esm/utils/dates.js +118 -0
  378. package/es-custom/node_modules/flatpickr/dist/esm/utils/dates.js.map +1 -0
  379. package/es-custom/node_modules/flatpickr/dist/esm/utils/dom.js +52 -0
  380. package/es-custom/node_modules/flatpickr/dist/esm/utils/dom.js.map +1 -0
  381. package/es-custom/node_modules/flatpickr/dist/esm/utils/formatting.js +181 -0
  382. package/es-custom/node_modules/flatpickr/dist/esm/utils/formatting.js.map +1 -0
  383. package/es-custom/node_modules/flatpickr/dist/esm/utils/index.js +33 -0
  384. package/es-custom/node_modules/flatpickr/dist/esm/utils/index.js.map +1 -0
  385. package/es-custom/node_modules/flatpickr/dist/esm/utils/polyfills.js +26 -0
  386. package/es-custom/node_modules/flatpickr/dist/esm/utils/polyfills.js.map +1 -0
  387. package/es-custom/packages/feature-flags/es/index.js.map +1 -0
  388. package/lib/components/data-table/table-toolbar-search.d.ts +3 -3
  389. package/lib/components/data-table/table-toolbar-search.d.ts.map +1 -1
  390. package/lib/components/date-picker/date-picker.d.ts +4 -0
  391. package/lib/components/date-picker/date-picker.d.ts.map +1 -1
  392. package/lib/components/date-picker/fix-events-plugin.d.ts.map +1 -1
  393. package/lib/components/date-picker/range-plugin.d.ts +2 -8
  394. package/lib/components/date-picker/range-plugin.d.ts.map +1 -1
  395. package/lib/components/fluid-combo-box/fluid-combo-box-skeleton.d.ts +18 -0
  396. package/lib/components/fluid-combo-box/fluid-combo-box-skeleton.d.ts.map +1 -0
  397. package/lib/components/fluid-combo-box/fluid-combo-box.d.ts +23 -0
  398. package/lib/components/fluid-combo-box/fluid-combo-box.d.ts.map +1 -0
  399. package/lib/components/fluid-combo-box/index.d.ts +9 -0
  400. package/lib/components/fluid-combo-box/index.d.ts.map +1 -0
  401. package/lib/components/grid/grid.d.ts +5 -0
  402. package/lib/components/grid/grid.d.ts.map +1 -1
  403. package/lib/components/menu/menu-item.d.ts +1 -0
  404. package/lib/components/menu/menu-item.d.ts.map +1 -1
  405. package/lib/components/menu-button/menu-button.d.ts.map +1 -1
  406. package/lib/components/multi-select/multi-select.d.ts +38 -4
  407. package/lib/components/multi-select/multi-select.d.ts.map +1 -1
  408. package/lib/components/pagination/defs.d.ts +25 -0
  409. package/lib/components/pagination/defs.d.ts.map +1 -1
  410. package/lib/components/pagination/defs.js +27 -0
  411. package/lib/components/pagination/defs.js.map +1 -1
  412. package/lib/components/pagination/pagination.d.ts +9 -1
  413. package/lib/components/pagination/pagination.d.ts.map +1 -1
  414. package/lib/components/password-input/defs.d.ts +5 -1
  415. package/lib/components/password-input/defs.d.ts.map +1 -1
  416. package/lib/components/password-input/defs.js +4 -0
  417. package/lib/components/password-input/defs.js.map +1 -1
  418. package/lib/components/password-input/password-input.d.ts +1 -1
  419. package/lib/components/password-input/password-input.d.ts.map +1 -1
  420. package/lib/components/search/defs.d.ts +28 -0
  421. package/lib/components/search/defs.d.ts.map +1 -0
  422. package/lib/components/search/defs.js +41 -0
  423. package/lib/components/search/defs.js.map +1 -0
  424. package/lib/components/search/search-skeleton.d.ts +4 -4
  425. package/lib/components/search/search-skeleton.d.ts.map +1 -1
  426. package/lib/components/search/search.d.ts +4 -3
  427. package/lib/components/search/search.d.ts.map +1 -1
  428. package/lib/components/select/select.d.ts +1 -1
  429. package/lib/components/select/select.d.ts.map +1 -1
  430. package/lib/components/slider/slider.d.ts.map +1 -1
  431. package/lib/components/tabs/stories/tabs-wrapper.d.ts +53 -0
  432. package/lib/components/tabs/stories/tabs-wrapper.d.ts.map +1 -0
  433. package/lib/components/tabs/tab.d.ts +23 -0
  434. package/lib/components/tabs/tab.d.ts.map +1 -1
  435. package/lib/components/tabs/tabs.d.ts +14 -0
  436. package/lib/components/tabs/tabs.d.ts.map +1 -1
  437. package/lib/components/text-input/defs.d.ts +5 -1
  438. package/lib/components/text-input/defs.d.ts.map +1 -1
  439. package/lib/components/text-input/defs.js +4 -0
  440. package/lib/components/text-input/defs.js.map +1 -1
  441. package/lib/components/text-input/text-input-skeleton.d.ts +5 -0
  442. package/lib/components/text-input/text-input-skeleton.d.ts.map +1 -1
  443. package/lib/components/text-input/text-input.d.ts +2 -2
  444. package/lib/components/text-input/text-input.d.ts.map +1 -1
  445. package/package.json +9 -6
  446. package/scss/components/data-table/_table-action.scss +9 -1
  447. package/scss/components/fluid-combo-box/fluid-combo-box.scss +252 -0
  448. package/scss/components/fluid-password-input/fluid-password-input.scss +0 -15
  449. package/scss/components/grid/grid.scss +20 -0
  450. package/scss/components/menu/menu-item.scss +5 -1
  451. package/scss/components/pagination/pagination.scss +3 -7
  452. package/scss/components/password-input/password-input.scss +1 -17
  453. package/scss/components/search/search.scss +20 -53
  454. package/scss/components/select/select.scss +4 -0
  455. package/scss/components/tabs/tabs-story.scss +19 -1
  456. package/scss/components/tabs/tabs.scss +74 -6
  457. package/scss/components/text-input/text-input.scss +7 -9
  458. package/scss/components/tooltip/tooltip.scss +13 -1
  459. package/telemetry.yml +25 -11
  460. package/es/feature-flags/es/index.js.map +0 -1
  461. package/es-custom/feature-flags/es/index.js.map +0 -1
  462. /package/es/{feature-flags → packages/feature-flags}/es/index.js +0 -0
  463. /package/es-custom/{feature-flags → packages/feature-flags}/es/index.js +0 -0
@@ -0,0 +1,53 @@
1
+ /**
2
+ * Copyright IBM Corp. 2026
3
+ *
4
+ * This source code is licensed under the Apache-2.0 license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+ import { LitElement } from 'lit';
8
+ import '../../button';
9
+ /**
10
+ * Wrapper component for dismissable tabs story with state management
11
+ */
12
+ export declare class DismissableTabsWrapper extends LitElement {
13
+ private _defaultTabs;
14
+ /**
15
+ * Array of tab configurations
16
+ */
17
+ private _tabs;
18
+ /**
19
+ * Whether tabs are disabled
20
+ */
21
+ disabled: boolean;
22
+ /**
23
+ * Whether tabs are contained
24
+ */
25
+ contained: boolean;
26
+ /**
27
+ * Whether the rendered Tab children should be dismissable.
28
+ */
29
+ dismissable: boolean;
30
+ /**
31
+ * Selection mode
32
+ */
33
+ selectionMode: string;
34
+ /**
35
+ * Selected index for the initially selected content
36
+ */
37
+ selectedIndex: number;
38
+ /**
39
+ * Handle tab dismissed event
40
+ */
41
+ private _handleDismissed;
42
+ /**
43
+ * Handle before selected event
44
+ */
45
+ private _handleBeforeSelected;
46
+ private resetTabs;
47
+ render(): import("lit-html").TemplateResult<1>;
48
+ /**
49
+ * Disable shadow DOM to inherit styles from parent
50
+ */
51
+ createRenderRoot(): this;
52
+ }
53
+ //# sourceMappingURL=tabs-wrapper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tabs-wrapper.d.ts","sourceRoot":"","sources":["../../../../src/components/tabs/stories/tabs-wrapper.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,UAAU,EAAQ,MAAM,KAAK,CAAC;AAIvC,OAAO,cAAc,CAAC;AAEtB;;GAEG;AACH,qBAAa,sBAAuB,SAAQ,UAAU;IACpD,OAAO,CAAC,YAAY,CAKlB;IACF;;OAEG;IAEH,OAAO,CAAC,KAAK,CAAqB;IAElC;;OAEG;IAEH,QAAQ,UAAS;IAEjB;;OAEG;IAEH,SAAS,UAAS;IAClB;;OAEG;IAEH,WAAW,UAAQ;IAEnB;;OAEG;IAEH,aAAa,SAAe;IAE5B;;OAEG;IAEH,aAAa,SAAK;IAElB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAKxB;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAM7B,OAAO,CAAC,SAAS;IAIjB,MAAM;IA2CN;;OAEG;IACH,gBAAgB;CAGjB"}
@@ -0,0 +1,129 @@
1
+ /**
2
+ * Copyright IBM Corp. 2026
3
+ *
4
+ * This source code is licensed under the Apache-2.0 license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+
8
+ import "../../../globals/settings.js";
9
+ import { __decorate } from "../../../_virtual/_@oxc-project_runtime@0.126.0/helpers/decorate.js";
10
+ import "../../button/index.js";
11
+ import "../defs.js";
12
+ import "../tabs.js";
13
+ import { LitElement, html } from "lit";
14
+ import { property, state } from "lit/decorators.js";
15
+ //#region src/components/tabs/stories/tabs-wrapper.ts
16
+ /**
17
+ * Copyright IBM Corp. 2026
18
+ *
19
+ * This source code is licensed under the Apache-2.0 license found in the
20
+ * LICENSE file in the root directory of this source tree.
21
+ */
22
+ /**
23
+ * Wrapper component for dismissable tabs story with state management
24
+ */
25
+ var DismissableTabsWrapper = class extends LitElement {
26
+ constructor(..._args) {
27
+ super(..._args);
28
+ this._defaultTabs = [
29
+ {
30
+ id: "all",
31
+ label: "Dashboard",
32
+ value: "all"
33
+ },
34
+ {
35
+ id: "cloudFoundry",
36
+ label: "Monitoring",
37
+ value: "cloudFoundry"
38
+ },
39
+ {
40
+ id: "staging",
41
+ label: "Activity",
42
+ value: "staging"
43
+ },
44
+ {
45
+ id: "dea",
46
+ label: "Settings",
47
+ value: "dea",
48
+ disabled: true
49
+ }
50
+ ];
51
+ this._tabs = this._defaultTabs;
52
+ this.disabled = false;
53
+ this.contained = false;
54
+ this.dismissable = true;
55
+ this.selectionMode = "automatic";
56
+ this.selectedIndex = 0;
57
+ }
58
+ /**
59
+ * Handle tab dismissed event
60
+ */
61
+ _handleDismissed(event) {
62
+ const { index } = event.detail;
63
+ this._tabs = this._tabs.filter((_, i) => i !== index);
64
+ }
65
+ /**
66
+ * Handle before selected event
67
+ */
68
+ _handleBeforeSelected(event) {
69
+ if (this.disabled) event.preventDefault();
70
+ }
71
+ resetTabs() {
72
+ this._tabs = [...this._defaultTabs];
73
+ }
74
+ render() {
75
+ const { resetTabs } = this;
76
+ return html`
77
+ <cds-custom-button style="margin-bottom: 3rem" @click="${resetTabs}">
78
+ Reset
79
+ </cds-custom-button>
80
+ <cds-custom-tabs
81
+ ?disabled="${this.disabled}"
82
+ selection-mode="${this.selectionMode}"
83
+ selected-index="${this.selectedIndex}"
84
+ type="${this.contained ? "contained" : ""}"
85
+ ?dismissable="${this.dismissable}"
86
+ value="all"
87
+ @cds-custom-tab-closed="${this._handleDismissed}"
88
+ @cds-custom-tabs-beingselected="${this._handleBeforeSelected}">
89
+ ${this._tabs.map((tab) => html`
90
+ <cds-custom-tab
91
+ id="tab-${tab.id}"
92
+ target="panel-${tab.id}"
93
+ value="${tab.value}"
94
+ ?disabled="${tab.disabled}">
95
+ ${tab.label}
96
+ </cds-custom-tab>
97
+ `)}
98
+ </cds-custom-tabs>
99
+ <div class="${"cds-custom"}-ce-demo-devenv--tab-panels">
100
+ ${this._tabs.map((tab) => html`
101
+ <div
102
+ id="panel-${tab.id}"
103
+ role="tabpanel"
104
+ aria-labelledby="tab-${tab.id}"
105
+ hidden>
106
+ ${tab.label}
107
+ </div>
108
+ `)}
109
+ </div>
110
+ `;
111
+ }
112
+ /**
113
+ * Disable shadow DOM to inherit styles from parent
114
+ */
115
+ createRenderRoot() {
116
+ return this;
117
+ }
118
+ };
119
+ __decorate([state()], DismissableTabsWrapper.prototype, "_tabs", void 0);
120
+ __decorate([property({ type: Boolean })], DismissableTabsWrapper.prototype, "disabled", void 0);
121
+ __decorate([property({ type: Boolean })], DismissableTabsWrapper.prototype, "contained", void 0);
122
+ __decorate([property({ type: Boolean })], DismissableTabsWrapper.prototype, "dismissable", void 0);
123
+ __decorate([property({ attribute: "selection-mode" })], DismissableTabsWrapper.prototype, "selectionMode", void 0);
124
+ __decorate([property({ attribute: "selected-index" })], DismissableTabsWrapper.prototype, "selectedIndex", void 0);
125
+ customElements.define("tabs-story-wrapper", DismissableTabsWrapper);
126
+ //#endregion
127
+ export { DismissableTabsWrapper };
128
+
129
+ //# sourceMappingURL=tabs-wrapper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tabs-wrapper.js","names":[],"sources":["../../../../src/components/tabs/stories/tabs-wrapper.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2026\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, state } from 'lit/decorators.js';\nimport { prefix } from '../../../globals/settings';\nimport { TABS_TYPE } from '../tabs';\nimport '../../button';\n\n/**\n * Wrapper component for dismissable tabs story with state management\n */\nexport class DismissableTabsWrapper extends LitElement {\n private _defaultTabs = [\n { id: 'all', label: 'Dashboard', value: 'all' },\n { id: 'cloudFoundry', label: 'Monitoring', value: 'cloudFoundry' },\n { id: 'staging', label: 'Activity', value: 'staging' },\n { id: 'dea', label: 'Settings', value: 'dea', disabled: true },\n ];\n /**\n * Array of tab configurations\n */\n @state()\n private _tabs = this._defaultTabs;\n\n /**\n * Whether tabs are disabled\n */\n @property({ type: Boolean })\n disabled = false;\n\n /**\n * Whether tabs are contained\n */\n @property({ type: Boolean })\n contained = false;\n /**\n * Whether the rendered Tab children should be dismissable.\n */\n @property({ type: Boolean })\n dismissable = true;\n\n /**\n * Selection mode\n */\n @property({ attribute: 'selection-mode' })\n selectionMode = 'automatic';\n\n /**\n * Selected index for the initially selected content\n */\n @property({ attribute: 'selected-index' })\n selectedIndex = 0;\n\n /**\n * Handle tab dismissed event\n */\n private _handleDismissed(event: CustomEvent) {\n const { index } = event.detail;\n this._tabs = this._tabs.filter((_, i) => i !== index);\n }\n\n /**\n * Handle before selected event\n */\n private _handleBeforeSelected(event: CustomEvent) {\n if (this.disabled) {\n event.preventDefault();\n }\n }\n\n private resetTabs() {\n this._tabs = [...this._defaultTabs];\n }\n\n render() {\n const { resetTabs } = this;\n return html`\n <cds-custom-button style=\"margin-bottom: 3rem\" @click=\"${resetTabs}\">\n Reset\n </cds-custom-button>\n <cds-custom-tabs\n ?disabled=\"${this.disabled}\"\n selection-mode=\"${this.selectionMode}\"\n selected-index=\"${this.selectedIndex}\"\n type=\"${this.contained ? TABS_TYPE.CONTAINED : TABS_TYPE.REGULAR}\"\n ?dismissable=\"${this.dismissable}\"\n value=\"all\"\n @cds-custom-tab-closed=\"${this._handleDismissed}\"\n @cds-custom-tabs-beingselected=\"${this._handleBeforeSelected}\">\n ${this._tabs.map(\n (tab) => html`\n <cds-custom-tab\n id=\"tab-${tab.id}\"\n target=\"panel-${tab.id}\"\n value=\"${tab.value}\"\n ?disabled=\"${tab.disabled}\">\n ${tab.label}\n </cds-custom-tab>\n `\n )}\n </cds-custom-tabs>\n <div class=\"${prefix}-ce-demo-devenv--tab-panels\">\n ${this._tabs.map(\n (tab) => html`\n <div\n id=\"panel-${tab.id}\"\n role=\"tabpanel\"\n aria-labelledby=\"tab-${tab.id}\"\n hidden>\n ${tab.label}\n </div>\n `\n )}\n </div>\n `;\n }\n\n /**\n * Disable shadow DOM to inherit styles from parent\n */\n createRenderRoot() {\n return this;\n }\n}\n\ncustomElements.define('tabs-story-wrapper', DismissableTabsWrapper);\n\n// Made with Bob\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAgBA,IAAa,yBAAb,cAA4C,WAAW;;;sBAC9B;GACrB;IAAE,IAAI;IAAO,OAAO;IAAa,OAAO;IAAO;GAC/C;IAAE,IAAI;IAAgB,OAAO;IAAc,OAAO;IAAgB;GAClE;IAAE,IAAI;IAAW,OAAO;IAAY,OAAO;IAAW;GACtD;IAAE,IAAI;IAAO,OAAO;IAAY,OAAO;IAAO,UAAU;IAAM;GAC/D;eAKe,KAAK;kBAMV;mBAMC;qBAKE;uBAME;uBAMA;;;;;CAKhB,iBAAyB,OAAoB;EAC3C,MAAM,EAAE,UAAU,MAAM;AACxB,OAAK,QAAQ,KAAK,MAAM,QAAQ,GAAG,MAAM,MAAM,MAAM;;;;;CAMvD,sBAA8B,OAAoB;AAChD,MAAI,KAAK,SACP,OAAM,gBAAgB;;CAI1B,YAAoB;AAClB,OAAK,QAAQ,CAAC,GAAG,KAAK,aAAa;;CAGrC,SAAS;EACP,MAAM,EAAE,cAAc;AACtB,SAAO,IAAI;wDACyC,UAAU;;;;qBAI7C,KAAK,SAAS;0BACT,KAAK,cAAc;0BACnB,KAAK,cAAc;gBAC7B,KAAK,YAAA,cAAA,GAAoD;wBACjD,KAAK,YAAY;;2BAEd,KAAK,iBAAiB;mCACd,KAAK,sBAAsB;UACpD,KAAK,MAAM,KACV,QAAQ,IAAI;;wBAEC,IAAI,GAAG;8BACD,IAAI,GAAG;uBACd,IAAI,MAAM;2BACN,IAAI,SAAS;gBACxB,IAAI,MAAM;;YAGjB,CAAC;;0BAEiB;UACjB,KAAK,MAAM,KACV,QAAQ,IAAI;;0BAEG,IAAI,GAAG;;qCAEI,IAAI,GAAG;;gBAE5B,IAAI,MAAM;;YAGjB,CAAC;;;;;;;CAQR,mBAAmB;AACjB,SAAO;;;YApGR,OAAO,CAAA,EAAA,uBAAA,WAAA,SAAA,KAAA,EAAA;YAMP,SAAS,EAAE,MAAM,SAAS,CAAC,CAAA,EAAA,uBAAA,WAAA,YAAA,KAAA,EAAA;YAM3B,SAAS,EAAE,MAAM,SAAS,CAAC,CAAA,EAAA,uBAAA,WAAA,aAAA,KAAA,EAAA;YAK3B,SAAS,EAAE,MAAM,SAAS,CAAC,CAAA,EAAA,uBAAA,WAAA,eAAA,KAAA,EAAA;YAM3B,SAAS,EAAE,WAAW,kBAAkB,CAAC,CAAA,EAAA,uBAAA,WAAA,iBAAA,KAAA,EAAA;YAMzC,SAAS,EAAE,WAAW,kBAAkB,CAAC,CAAA,EAAA,uBAAA,WAAA,iBAAA,KAAA,EAAA;AA2E5C,eAAe,OAAO,sBAAsB,uBAAuB"}
@@ -6,10 +6,15 @@
6
6
  */
7
7
  import CDSContentSwitcherItem from '../content-switcher/content-switcher-item';
8
8
  import { TABS_ICON_SIZE, TABS_TYPE } from './defs';
9
+ import '../button/button';
9
10
  /**
10
11
  * Basic tab.
11
12
  *
12
13
  * @element cds-custom-tab
14
+ * @fires cds-custom-tab-beingclosed
15
+ * The custom event fired before a tab is closed upon a user gesture.
16
+ * Cancellation of this event stops changing the user-initiated action.
17
+ * @fires cds-custom-tab-closed - The custom event fired after a a tab is closed upon a user gesture.
13
18
  */
14
19
  export default class CDSTab extends CDSContentSwitcherItem {
15
20
  /**
@@ -39,12 +44,30 @@ export default class CDSTab extends CDSContentSwitcherItem {
39
44
  * **Experimental**: Display an empty dot badge on the Tab.
40
45
  */
41
46
  badgeIndicator: boolean;
47
+ /**
48
+ * Whether this tab should be dismissable.
49
+ */
50
+ _dismissable: boolean;
51
+ /**
52
+ * The index of the tab component
53
+ */
54
+ _index: number;
42
55
  /**
43
56
  * Handles `slotchange` event.
44
57
  */
45
58
  protected _handleSlotChange({ target }: Event): void;
46
59
  connectedCallback(): void;
47
60
  render(): import("lit-html").TemplateResult<1>;
61
+ _handleClick(event: Event): void;
62
+ /**
63
+ * The name of the custom event fired before a tab is closed upon a user gesture.
64
+ * Cancellation of this event stops changing the user-initiated action.
65
+ */
66
+ static get eventBeforeClose(): string;
67
+ /**
68
+ * The name of the custom event fired after a a tab is closed upon a user gesture.
69
+ */
70
+ static get eventClose(): string;
48
71
  static styles: any;
49
72
  }
50
73
  //# sourceMappingURL=tab.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tab.d.ts","sourceRoot":"","sources":["../../../src/components/tabs/tab.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,OAAO,sBAAsB,MAAM,2CAA2C,CAAC;AAC/E,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAInD;;;;GAIG;AAEH,MAAM,CAAC,OAAO,OAAO,MAAO,SAAQ,sBAAsB;IACxD;;;;;OAKG;IAEH,WAAW,UAAS;IAEpB;;OAEG;IAEH,IAAI,YAAqB;IAEzB;;OAEG;IAEH,QAAQ,UAAS;IAEjB;;OAEG;IAEH,QAAQ,CAAC,EAAE,cAAc,CAAC;IAE1B;;OAEG;IAEH,QAAQ,MAAC;IAET;;OAEG;IAEH,cAAc,UAAS;IAEvB;;OAEG;IACH,SAAS,CAAC,iBAAiB,CAAC,EAAE,MAAM,EAAE,EAAE,KAAK;IAM7C,iBAAiB;IAOjB,MAAM;IA0CN,MAAM,CAAC,MAAM,MAAU;CACxB"}
1
+ {"version":3,"file":"tab.d.ts","sourceRoot":"","sources":["../../../src/components/tabs/tab.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,OAAO,sBAAsB,MAAM,2CAA2C,CAAC;AAC/E,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAGnD,OAAO,kBAAkB,CAAC;AAK1B;;;;;;;;GAQG;AAEH,MAAM,CAAC,OAAO,OAAO,MAAO,SAAQ,sBAAsB;IACxD;;;;;OAKG;IAEH,WAAW,UAAS;IAEpB;;OAEG;IAEH,IAAI,YAAqB;IAEzB;;OAEG;IAEH,QAAQ,UAAS;IAEjB;;OAEG;IAEH,QAAQ,CAAC,EAAE,cAAc,CAAC;IAE1B;;OAEG;IAEH,QAAQ,MAAC;IAET;;OAEG;IAEH,cAAc,UAAS;IAEvB;;OAEG;IAEH,YAAY,UAAS;IAErB;;OAEG;IAEH,MAAM,SAAM;IAEZ;;OAEG;IACH,SAAS,CAAC,iBAAiB,CAAC,EAAE,MAAM,EAAE,EAAE,KAAK;IAM7C,iBAAiB;IAOjB,MAAM;IAqEN,YAAY,CAAC,KAAK,EAAE,KAAK;IAwBzB;;;OAGG;IACH,MAAM,KAAK,gBAAgB,WAE1B;IAED;;OAEG;IACH,MAAM,KAAK,UAAU,WAEpB;IAED,MAAM,CAAC,MAAM,MAAU;CACxB"}
@@ -8,12 +8,16 @@
8
8
  import "../../globals/settings.js";
9
9
  import { carbonElement } from "../../globals/decorators/carbon-element.js";
10
10
  import { __decorate } from "../../_virtual/_@oxc-project_runtime@0.126.0/helpers/decorate.js";
11
+ import iconLoader from "../../globals/internal/icon-loader.js";
12
+ import "../button/button.js";
11
13
  import content_switcher_item_default from "../content-switcher/content-switcher-item.js";
12
14
  import "./defs.js";
13
15
  import tabs_default from "./tabs.scss.js";
14
16
  import { html } from "lit";
15
- import { property } from "lit/decorators.js";
17
+ import { property, state } from "lit/decorators.js";
18
+ import { classMap } from "lit/directives/class-map.js";
16
19
  import { ifDefined } from "lit/directives/if-defined.js";
20
+ import Close16 from "@carbon/icons/es/close/16.js";
17
21
  //#region src/components/tabs/tab.ts
18
22
  /**
19
23
  * Copyright IBM Corp. 2019, 2026
@@ -28,6 +32,8 @@ let CDSTab = class CDSTab extends content_switcher_item_default {
28
32
  this.type = "";
29
33
  this.iconOnly = false;
30
34
  this.badgeIndicator = false;
35
+ this._dismissable = false;
36
+ this._index = -1;
31
37
  }
32
38
  /**
33
39
  * Handles `slotchange` event.
@@ -41,12 +47,36 @@ let CDSTab = class CDSTab extends content_switcher_item_default {
41
47
  super.connectedCallback();
42
48
  }
43
49
  render() {
44
- const { badgeIndicator, disabled, selected, tabTitle, _handleSlotChange: handleSlotChange } = this;
50
+ const navLinkClasses = classMap({
51
+ [`cds-custom--tabs__nav-link`]: true,
52
+ [`cds-custom--tabs__nav-link--dismissable`]: this._dismissable
53
+ });
54
+ const closeButtonClasses = classMap({
55
+ [`cds-custom--tabs__nav-item--close`]: this._dismissable,
56
+ [`cds-custom--tabs__nav-item--close--hidden`]: !this._dismissable
57
+ });
58
+ const { badgeIndicator, disabled, selected, tabTitle, _handleSlotChange: handleSlotChange, _handleClick: handleClick } = this;
59
+ const iconButton = html`
60
+ <cds-custom-button
61
+ title="${this.textContent?.trim() ? `Remove ${this.textContent.trim()} tab` : "Remove tab"}"
62
+ class="${closeButtonClasses}"
63
+ kind="ghost"
64
+ size="xs"
65
+ @click="${handleClick}"
66
+ tab-index="${-1}"
67
+ aria-hidden="${this.selected && this._dismissable ? "false" : "true"}"
68
+ ?disabled="${disabled}">
69
+ ${iconLoader(Close16, {
70
+ "aria-label": "close",
71
+ slot: "icon"
72
+ })}
73
+ </cds-custom-button>
74
+ `;
45
75
  const accessibleLabel = tabTitle || this.getAttribute("aria-label");
46
76
  const isIconOnly = this.iconOnly || this.classList.contains(`cds-custom--tabs__nav-item--icon-only`);
47
77
  const tabLink = html`
48
78
  <a
49
- class="${"cds-custom"}--tabs__nav-link"
79
+ class="${navLinkClasses}"
50
80
  role="tab"
51
81
  aria-label="${ifDefined(accessibleLabel || void 0)}"
52
82
  tabindex="${selected ? 0 : -1}"
@@ -57,6 +87,7 @@ let CDSTab = class CDSTab extends content_switcher_item_default {
57
87
  </span>
58
88
  ${!disabled && badgeIndicator ? html`<cds-custom-badge-indicator></cds-custom-badge-indicator>` : ""}
59
89
  </a>
90
+ ${iconButton}
60
91
  `;
61
92
  if (isIconOnly && accessibleLabel && !disabled) return html`
62
93
  <cds-custom-tooltip align="bottom" class="${"cds-custom"}--icon-tooltip">
@@ -66,6 +97,29 @@ let CDSTab = class CDSTab extends content_switcher_item_default {
66
97
  `;
67
98
  return tabLink;
68
99
  }
100
+ _handleClick(event) {
101
+ event.stopPropagation();
102
+ const init = {
103
+ bubbles: true,
104
+ cancelable: true,
105
+ composed: true,
106
+ detail: { index: this._index }
107
+ };
108
+ if (this.dispatchEvent(new CustomEvent(this.constructor.eventBeforeClose, init))) this.dispatchEvent(new CustomEvent(this.constructor.eventClose, init));
109
+ }
110
+ /**
111
+ * The name of the custom event fired before a tab is closed upon a user gesture.
112
+ * Cancellation of this event stops changing the user-initiated action.
113
+ */
114
+ static get eventBeforeClose() {
115
+ return `cds-custom-tab-beingclosed`;
116
+ }
117
+ /**
118
+ * The name of the custom event fired after a a tab is closed upon a user gesture.
119
+ */
120
+ static get eventClose() {
121
+ return `cds-custom-tab-closed`;
122
+ }
69
123
  static {
70
124
  this.styles = tabs_default;
71
125
  }
@@ -90,6 +144,8 @@ __decorate([property({
90
144
  reflect: true,
91
145
  attribute: "badge-indicator"
92
146
  })], CDSTab.prototype, "badgeIndicator", void 0);
147
+ __decorate([state()], CDSTab.prototype, "_dismissable", void 0);
148
+ __decorate([state()], CDSTab.prototype, "_index", void 0);
93
149
  CDSTab = __decorate([carbonElement(`cds-custom-tab`)], CDSTab);
94
150
  var tab_default = CDSTab;
95
151
  //#endregion
@@ -1 +1 @@
1
- {"version":3,"file":"tab.js","names":["CDSContentSwitcherItem","styles","customElement"],"sources":["../../../src/components/tabs/tab.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2019, 2026\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 { ifDefined } from 'lit/directives/if-defined.js';\nimport { property } from 'lit/decorators.js';\nimport { prefix } from '../../globals/settings';\nimport CDSContentSwitcherItem from '../content-switcher/content-switcher-item';\nimport { TABS_ICON_SIZE, TABS_TYPE } from './defs';\nimport styles from './tabs.scss?lit';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\n\n/**\n * Basic tab.\n *\n * @element cds-custom-tab\n */\n@customElement(`${prefix}-tab`)\nexport default class CDSTab extends CDSContentSwitcherItem {\n /**\n * `true` if this tab should be highlighted.\n * If `true`, parent `<cds-custom-tabs>` selects/deselects this tab upon keyboard interaction.\n *\n * @private\n */\n @property({ type: Boolean, reflect: true })\n highlighted = false;\n\n /**\n * Tab type.\n */\n @property({ reflect: true })\n type = TABS_TYPE.REGULAR;\n\n /**\n * `true` if this tab is icon-only.\n */\n @property({ type: Boolean, reflect: true, attribute: 'icon-only' })\n iconOnly = false;\n\n /**\n * Specify the icon size used by icon-only tabs.\n */\n @property({ attribute: 'icon-size', reflect: true })\n iconSize?: TABS_ICON_SIZE;\n\n /**\n * The tab text content.\n */\n @property()\n tabTitle;\n\n /**\n * **Experimental**: Display an empty dot badge on the Tab.\n */\n @property({ type: Boolean, reflect: true, attribute: 'badge-indicator' })\n badgeIndicator = false;\n\n /**\n * Handles `slotchange` event.\n */\n protected _handleSlotChange({ target }: Event) {\n // Retrieve content of the slot to use for aria-label.\n const content = (target as HTMLSlotElement).assignedNodes();\n this.tabTitle = content[0]?.textContent?.trim() || undefined;\n }\n\n connectedCallback() {\n if (!this.hasAttribute('role')) {\n this.setAttribute('role', 'listitem');\n }\n super.connectedCallback();\n }\n\n render() {\n const {\n badgeIndicator,\n disabled,\n selected,\n tabTitle,\n _handleSlotChange: handleSlotChange,\n } = this;\n const accessibleLabel = tabTitle || this.getAttribute('aria-label');\n const isIconOnly =\n this.iconOnly ||\n this.classList.contains(`${prefix}--tabs__nav-item--icon-only`);\n // No `href`/`tabindex` to not to make this `<a>` click-focusable\n const tabLink = html`\n <a\n class=\"${prefix}--tabs__nav-link\"\n role=\"tab\"\n aria-label=\"${ifDefined(accessibleLabel || undefined)}\"\n tabindex=\"${selected ? 0 : -1}\"\n ?disabled=\"${disabled}\"\n aria-selected=\"${selected}\">\n <span class=\"${prefix}--tabs__nav-item-label-wrapper\">\n <slot @slotchange=\"${handleSlotChange}\"></slot>\n </span>\n ${!disabled && badgeIndicator\n ? html`<cds-custom-badge-indicator></cds-custom-badge-indicator>`\n : ''}\n </a>\n `;\n\n if (isIconOnly && accessibleLabel && !disabled) {\n return html`\n <cds-custom-tooltip align=\"bottom\" class=\"${prefix}--icon-tooltip\">\n ${tabLink}\n <cds-custom-tooltip-content>${accessibleLabel}</cds-custom-tooltip-content>\n </cds-custom-tooltip>\n `;\n }\n\n return tabLink;\n }\n\n static styles = styles;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAsBe,IAAA,SAAA,MAAM,eAAeA,8BAAuB;;;qBAQ3C;;kBAYH;wBAkBM;;;;;CAKjB,kBAA4B,EAAE,UAAiB;EAE7C,MAAM,UAAW,OAA2B,eAAe;AAC3D,OAAK,WAAW,QAAQ,IAAI,aAAa,MAAM,IAAI,KAAA;;CAGrD,oBAAoB;AAClB,MAAI,CAAC,KAAK,aAAa,OAAO,CAC5B,MAAK,aAAa,QAAQ,WAAW;AAEvC,QAAM,mBAAmB;;CAG3B,SAAS;EACP,MAAM,EACJ,gBACA,UACA,UACA,UACA,mBAAmB,qBACjB;EACJ,MAAM,kBAAkB,YAAY,KAAK,aAAa,aAAa;EACnE,MAAM,aACJ,KAAK,YACL,KAAK,UAAU,SAAS,iCAAuC;EAEjE,MAAM,UAAU,IAAI;;uBAEA;;sBAEF,UAAU,mBAAmB,KAAA,EAAU,CAAC;oBAC1C,WAAW,IAAI,GAAG;qBACjB,SAAS;yBACL,SAAS;6BACJ;+BACC,iBAAiB;;UAEtC,CAAC,YAAY,iBACX,IAAI,gDACJ,GAAG;;;AAIX,MAAI,cAAc,mBAAmB,CAAC,SACpC,QAAO,IAAI;mDACmC;YACxC,QAAQ;iCACa,gBAAgB;;;AAK7C,SAAO;;;gBAGOC;;;YA3Ff,SAAS;CAAE,MAAM;CAAS,SAAS;CAAM,CAAC,CAAA,EAAA,OAAA,WAAA,eAAA,KAAA,EAAA;YAM1C,SAAS,EAAE,SAAS,MAAM,CAAC,CAAA,EAAA,OAAA,WAAA,QAAA,KAAA,EAAA;YAM3B,SAAS;CAAE,MAAM;CAAS,SAAS;CAAM,WAAW;CAAa,CAAC,CAAA,EAAA,OAAA,WAAA,YAAA,KAAA,EAAA;YAMlE,SAAS;CAAE,WAAW;CAAa,SAAS;CAAM,CAAC,CAAA,EAAA,OAAA,WAAA,YAAA,KAAA,EAAA;YAMnD,UAAU,CAAA,EAAA,OAAA,WAAA,YAAA,KAAA,EAAA;YAMV,SAAS;CAAE,MAAM;CAAS,SAAS;CAAM,WAAW;CAAmB,CAAC,CAAA,EAAA,OAAA,WAAA,kBAAA,KAAA,EAAA;qBAtC1EC,cAAc,UAAgB,CAAA,EAAA,OAAA"}
1
+ {"version":3,"file":"tab.js","names":["CDSContentSwitcherItem","styles","customElement"],"sources":["../../../src/components/tabs/tab.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2019, 2026\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 { ifDefined } from 'lit/directives/if-defined.js';\nimport { property, state } from 'lit/decorators.js';\nimport { prefix } from '../../globals/settings';\nimport CDSContentSwitcherItem from '../content-switcher/content-switcher-item';\nimport { TABS_ICON_SIZE, TABS_TYPE } from './defs';\nimport styles from './tabs.scss?lit';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\nimport '../button/button';\nimport Close16 from '@carbon/icons/es/close/16.js';\nimport iconLoader from '../../globals/internal/icon-loader';\nimport { classMap } from 'lit/directives/class-map.js';\n\n/**\n * Basic tab.\n *\n * @element cds-custom-tab\n * @fires cds-custom-tab-beingclosed\n * The custom event fired before a tab is closed upon a user gesture.\n * Cancellation of this event stops changing the user-initiated action.\n * @fires cds-custom-tab-closed - The custom event fired after a a tab is closed upon a user gesture.\n */\n@customElement(`${prefix}-tab`)\nexport default class CDSTab extends CDSContentSwitcherItem {\n /**\n * `true` if this tab should be highlighted.\n * If `true`, parent `<cds-custom-tabs>` selects/deselects this tab upon keyboard interaction.\n *\n * @private\n */\n @property({ type: Boolean, reflect: true })\n highlighted = false;\n\n /**\n * Tab type.\n */\n @property({ reflect: true })\n type = TABS_TYPE.REGULAR;\n\n /**\n * `true` if this tab is icon-only.\n */\n @property({ type: Boolean, reflect: true, attribute: 'icon-only' })\n iconOnly = false;\n\n /**\n * Specify the icon size used by icon-only tabs.\n */\n @property({ attribute: 'icon-size', reflect: true })\n iconSize?: TABS_ICON_SIZE;\n\n /**\n * The tab text content.\n */\n @property()\n tabTitle;\n\n /**\n * **Experimental**: Display an empty dot badge on the Tab.\n */\n @property({ type: Boolean, reflect: true, attribute: 'badge-indicator' })\n badgeIndicator = false;\n\n /**\n * Whether this tab should be dismissable.\n */\n @state()\n _dismissable = false;\n\n /**\n * The index of the tab component\n */\n @state()\n _index = -1;\n\n /**\n * Handles `slotchange` event.\n */\n protected _handleSlotChange({ target }: Event) {\n // Retrieve content of the slot to use for aria-label.\n const content = (target as HTMLSlotElement).assignedNodes();\n this.tabTitle = content[0]?.textContent?.trim() || undefined;\n }\n\n connectedCallback() {\n if (!this.hasAttribute('role')) {\n this.setAttribute('role', 'listitem');\n }\n super.connectedCallback();\n }\n\n render() {\n const navLinkClasses = classMap({\n [`${prefix}--tabs__nav-link`]: true,\n [`${prefix}--tabs__nav-link--dismissable`]: this._dismissable,\n });\n const closeButtonClasses = classMap({\n [`${prefix}--tabs__nav-item--close`]: this._dismissable,\n [`${prefix}--tabs__nav-item--close--hidden`]: !this._dismissable,\n });\n const {\n badgeIndicator,\n disabled,\n selected,\n tabTitle,\n _handleSlotChange: handleSlotChange,\n _handleClick: handleClick,\n } = this;\n\n const iconButton = html`\n <cds-custom-button\n title=\"${this.textContent?.trim()\n ? `Remove ${this.textContent.trim()} tab`\n : 'Remove tab'}\"\n class=\"${closeButtonClasses}\"\n kind=\"ghost\"\n size=\"xs\"\n @click=\"${handleClick}\"\n tab-index=\"${-1}\"\n aria-hidden=\"${this.selected && this._dismissable ? 'false' : 'true'}\"\n ?disabled=\"${disabled}\">\n ${iconLoader(Close16, { 'aria-label': 'close', slot: 'icon' })}\n </cds-custom-button>\n `;\n\n const accessibleLabel = tabTitle || this.getAttribute('aria-label');\n const isIconOnly =\n this.iconOnly ||\n this.classList.contains(`${prefix}--tabs__nav-item--icon-only`);\n // No `href`/`tabindex` to not to make this `<a>` click-focusable\n const tabLink = html`\n <a\n class=\"${navLinkClasses}\"\n role=\"tab\"\n aria-label=\"${ifDefined(accessibleLabel || undefined)}\"\n tabindex=\"${selected ? 0 : -1}\"\n ?disabled=\"${disabled}\"\n aria-selected=\"${selected}\">\n <span class=\"${prefix}--tabs__nav-item-label-wrapper\">\n <slot @slotchange=\"${handleSlotChange}\"></slot>\n </span>\n ${!disabled && badgeIndicator\n ? html`<cds-custom-badge-indicator></cds-custom-badge-indicator>`\n : ''}\n </a>\n ${iconButton}\n `;\n\n if (isIconOnly && accessibleLabel && !disabled) {\n return html`\n <cds-custom-tooltip align=\"bottom\" class=\"${prefix}--icon-tooltip\">\n ${tabLink}\n <cds-custom-tooltip-content>${accessibleLabel}</cds-custom-tooltip-content>\n </cds-custom-tooltip>\n `;\n }\n\n return tabLink;\n }\n\n _handleClick(event: Event) {\n event.stopPropagation();\n const init = {\n bubbles: true,\n cancelable: true,\n composed: true,\n detail: {\n index: this._index,\n },\n };\n if (\n this.dispatchEvent(\n new CustomEvent(\n (this.constructor as typeof CDSTab).eventBeforeClose,\n init\n )\n )\n ) {\n this.dispatchEvent(\n new CustomEvent((this.constructor as typeof CDSTab).eventClose, init)\n );\n }\n }\n\n /**\n * The name of the custom event fired before a tab is closed upon a user gesture.\n * Cancellation of this event stops changing the user-initiated action.\n */\n static get eventBeforeClose() {\n return `${prefix}-tab-beingclosed`;\n }\n\n /**\n * The name of the custom event fired after a a tab is closed upon a user gesture.\n */\n static get eventClose() {\n return `${prefix}-tab-closed`;\n }\n\n static styles = styles;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AA8Be,IAAA,SAAA,MAAM,eAAeA,8BAAuB;;;qBAQ3C;;kBAYH;wBAkBM;sBAMF;gBAMN;;;;;CAKT,kBAA4B,EAAE,UAAiB;EAE7C,MAAM,UAAW,OAA2B,eAAe;AAC3D,OAAK,WAAW,QAAQ,IAAI,aAAa,MAAM,IAAI,KAAA;;CAGrD,oBAAoB;AAClB,MAAI,CAAC,KAAK,aAAa,OAAO,CAC5B,MAAK,aAAa,QAAQ,WAAW;AAEvC,QAAM,mBAAmB;;CAG3B,SAAS;EACP,MAAM,iBAAiB,SAAS;IAC7B,wBAA8B;IAC9B,qCAA2C,KAAK;GAClD,CAAC;EACF,MAAM,qBAAqB,SAAS;IACjC,+BAAqC,KAAK;IAC1C,uCAA6C,CAAC,KAAK;GACrD,CAAC;EACF,MAAM,EACJ,gBACA,UACA,UACA,UACA,mBAAmB,kBACnB,cAAc,gBACZ;EAEJ,MAAM,aAAa,IAAI;;iBAEV,KAAK,aAAa,MAAM,GAC7B,UAAU,KAAK,YAAY,MAAM,CAAC,QAClC,aAAa;iBACR,mBAAmB;;;kBAGlB,YAAY;qBACT,GAAG;uBACD,KAAK,YAAY,KAAK,eAAe,UAAU,OAAO;qBACxD,SAAS;UACpB,WAAW,SAAS;GAAE,cAAc;GAAS,MAAM;GAAQ,CAAC,CAAC;;;EAInE,MAAM,kBAAkB,YAAY,KAAK,aAAa,aAAa;EACnE,MAAM,aACJ,KAAK,YACL,KAAK,UAAU,SAAS,iCAAuC;EAEjE,MAAM,UAAU,IAAI;;iBAEP,eAAe;;sBAEV,UAAU,mBAAmB,KAAA,EAAU,CAAC;oBAC1C,WAAW,IAAI,GAAG;qBACjB,SAAS;yBACL,SAAS;6BACJ;+BACC,iBAAiB;;UAEtC,CAAC,YAAY,iBACX,IAAI,gDACJ,GAAG;;QAEP,WAAW;;AAGf,MAAI,cAAc,mBAAmB,CAAC,SACpC,QAAO,IAAI;mDACmC;YACxC,QAAQ;iCACa,gBAAgB;;;AAK7C,SAAO;;CAGT,aAAa,OAAc;AACzB,QAAM,iBAAiB;EACvB,MAAM,OAAO;GACX,SAAS;GACT,YAAY;GACZ,UAAU;GACV,QAAQ,EACN,OAAO,KAAK,QACb;GACF;AACD,MACE,KAAK,cACH,IAAI,YACD,KAAK,YAA8B,kBACpC,KACD,CACF,CAED,MAAK,cACH,IAAI,YAAa,KAAK,YAA8B,YAAY,KAAK,CACtE;;;;;;CAQL,WAAW,mBAAmB;AAC5B,SAAO;;;;;CAMT,WAAW,aAAa;AACtB,SAAO;;;gBAGOC;;;YAzKf,SAAS;CAAE,MAAM;CAAS,SAAS;CAAM,CAAC,CAAA,EAAA,OAAA,WAAA,eAAA,KAAA,EAAA;YAM1C,SAAS,EAAE,SAAS,MAAM,CAAC,CAAA,EAAA,OAAA,WAAA,QAAA,KAAA,EAAA;YAM3B,SAAS;CAAE,MAAM;CAAS,SAAS;CAAM,WAAW;CAAa,CAAC,CAAA,EAAA,OAAA,WAAA,YAAA,KAAA,EAAA;YAMlE,SAAS;CAAE,WAAW;CAAa,SAAS;CAAM,CAAC,CAAA,EAAA,OAAA,WAAA,YAAA,KAAA,EAAA;YAMnD,UAAU,CAAA,EAAA,OAAA,WAAA,YAAA,KAAA,EAAA;YAMV,SAAS;CAAE,MAAM;CAAS,SAAS;CAAM,WAAW;CAAmB,CAAC,CAAA,EAAA,OAAA,WAAA,kBAAA,KAAA,EAAA;YAMxE,OAAO,CAAA,EAAA,OAAA,WAAA,gBAAA,KAAA,EAAA;YAMP,OAAO,CAAA,EAAA,OAAA,WAAA,UAAA,KAAA,EAAA;qBAlDTC,cAAc,UAAgB,CAAA,EAAA,OAAA"}
@@ -70,8 +70,16 @@ export default class CDSTabs extends CDSTabs_base {
70
70
  * Going prev/next item immediately changes the selection
71
71
  */
72
72
  protected _navigate(direction: number): void;
73
+ /**
74
+ * Resets the highlighted state of all tabs, setting only the specified tab as highlighted.
75
+ *
76
+ * @param nextItem The tab item to be highlighted. If provided, only this item will be highlighted.
77
+ * If null or undefined, all tabs will have their highlighted state set to false.
78
+ */
79
+ protected resetHighlighted(nextItem?: CDSTab | null): void;
73
80
  protected _handleClick(event: MouseEvent): void;
74
81
  protected _handleKeydown(event: KeyboardEvent): void;
82
+ protected _handleTabClosed(event: CustomEvent): void;
75
83
  /**
76
84
  * Handles click on overflow scroll buttons.
77
85
  *
@@ -122,6 +130,10 @@ export default class CDSTabs extends CDSTabs_base {
122
130
  * Tabs type.
123
131
  */
124
132
  type: TABS_TYPE;
133
+ /**
134
+ * Whether the rendered Tab children should be dismissable.
135
+ */
136
+ dismissable: any;
125
137
  /**
126
138
  * Specify the icon size used by icon-only tabs.
127
139
  */
@@ -166,6 +178,8 @@ export default class CDSTabs extends CDSTabs_base {
166
178
  */
167
179
  protected renderNextButton(): TemplateResult | null;
168
180
  render(): TemplateResult<1>;
181
+ protected _updateTabsState(): void;
182
+ protected _tabInitialLoad(): void;
169
183
  /**
170
184
  * Symbols of keys that triggers opening/closing menu and selecting/deselecting menu item.
171
185
  */
@@ -1 +1 @@
1
- {"version":3,"file":"tabs.d.ts","sourceRoot":"","sources":["../../../src/components/tabs/tabs.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tabs.d.ts","sourceRoot":"","sources":["../../../src/components/tabs/tabs.ts"],"names":[],"mappings":"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"}
@@ -66,13 +66,11 @@ let CDSTabs = class CDSTabs extends HostListenerMixin(content_switcher_default)
66
66
  */
67
67
  _navigate(direction) {
68
68
  const immediate = this.selectionMode === "automatic";
69
- const { selectorItem, selectorItemHighlighted, selectorItemSelected } = this.constructor;
69
+ const { selectorItemHighlighted, selectorItemSelected } = this.constructor;
70
70
  const nextItem = this._getNextItem(this.querySelector(immediate ? selectorItemSelected : selectorItemHighlighted), direction);
71
71
  if (!nextItem) return;
72
72
  this._handleUserInitiatedSelectItem(nextItem, "keyboard");
73
- if (!immediate) forEach(this.querySelectorAll(selectorItem), (item) => {
74
- item[immediate ? "selected" : "highlighted"] = nextItem === item;
75
- });
73
+ if (!immediate) this.resetHighlighted(nextItem);
76
74
  nextItem.scrollIntoView({
77
75
  block: "nearest",
78
76
  inline: "nearest"
@@ -82,16 +80,22 @@ let CDSTabs = class CDSTabs extends HostListenerMixin(content_switcher_default)
82
80
  this._currentIndex += direction;
83
81
  this.requestUpdate();
84
82
  }
83
+ /**
84
+ * Resets the highlighted state of all tabs, setting only the specified tab as highlighted.
85
+ *
86
+ * @param nextItem The tab item to be highlighted. If provided, only this item will be highlighted.
87
+ * If null or undefined, all tabs will have their highlighted state set to false.
88
+ */
89
+ resetHighlighted(nextItem) {
90
+ const { selectorItem } = this.constructor;
91
+ forEach(this.querySelectorAll(selectorItem), (item) => {
92
+ item["highlighted"] = nextItem === item;
93
+ });
94
+ }
85
95
  _handleClick(event) {
86
96
  super._handleClick(event);
87
- const { selectorItem } = this.constructor;
88
97
  const currentItem = this._getCurrentItem(event.target);
89
- if (currentItem) {
90
- forEach(this.querySelectorAll(selectorItem), (item) => {
91
- item.highlighted = false;
92
- });
93
- currentItem.highlighted = true;
94
- }
98
+ if (currentItem) this.resetHighlighted(currentItem);
95
99
  }
96
100
  _handleKeydown(event) {
97
101
  const { key } = event;
@@ -105,7 +109,8 @@ let CDSTabs = class CDSTabs extends HostListenerMixin(content_switcher_default)
105
109
  block: "nearest",
106
110
  inline: "nearest"
107
111
  });
108
- this._handleUserInitiatedSelectItem(firstEnabledTab);
112
+ if (this.selectionMode === "manual") this.resetHighlighted(firstEnabledTab);
113
+ this._handleUserInitiatedSelectItem(firstEnabledTab, this.selectionMode !== "manual" ? "activation" : "keyboard");
109
114
  this.requestUpdate();
110
115
  }
111
116
  break;
@@ -116,7 +121,8 @@ let CDSTabs = class CDSTabs extends HostListenerMixin(content_switcher_default)
116
121
  block: "nearest",
117
122
  inline: "nearest"
118
123
  });
119
- this._handleUserInitiatedSelectItem(lastEnabledTab);
124
+ if (this.selectionMode === "manual") this.resetHighlighted(lastEnabledTab);
125
+ this._handleUserInitiatedSelectItem(lastEnabledTab, this.selectionMode !== "manual" ? "activation" : "keyboard");
120
126
  this.requestUpdate();
121
127
  }
122
128
  break;
@@ -138,6 +144,34 @@ let CDSTabs = class CDSTabs extends HostListenerMixin(content_switcher_default)
138
144
  default: break;
139
145
  }
140
146
  }
147
+ _handleTabClosed(event) {
148
+ const { selectorItem, selectorItemEnabled, selectorItemSelected } = this.constructor;
149
+ const { index } = event.detail;
150
+ const allTabs = this.querySelectorAll(selectorItem);
151
+ const enabledTabsBeforeRemoval = this.querySelectorAll(selectorItemEnabled);
152
+ const activeItem = this.querySelector(selectorItemSelected);
153
+ const indexInEnabledTabs = Array.from(enabledTabsBeforeRemoval).indexOf(allTabs[index]);
154
+ const activeTabClosed = activeItem === allTabs[index];
155
+ requestAnimationFrame(() => {
156
+ const enabledTabs = this.querySelectorAll(selectorItemEnabled);
157
+ if (enabledTabs.length > 0) {
158
+ if (activeTabClosed) {
159
+ enabledTabs[0].selected = true;
160
+ this.value = enabledTabs[0].value;
161
+ }
162
+ const nextHighlightedItem = indexInEnabledTabs < enabledTabs.length ? enabledTabs[indexInEnabledTabs] : enabledTabs[indexInEnabledTabs - 1];
163
+ nextHighlightedItem.highlighted = true;
164
+ nextHighlightedItem.shadowRoot?.querySelector(`.cds-custom--tabs__nav-link--dismissable`)?.focus();
165
+ nextHighlightedItem.scrollIntoView({
166
+ block: "nearest",
167
+ inline: "nearest"
168
+ });
169
+ } else {
170
+ this.value = "";
171
+ return;
172
+ }
173
+ });
174
+ }
141
175
  /**
142
176
  * Handles click on overflow scroll buttons.
143
177
  *
@@ -164,6 +198,7 @@ let CDSTabs = class CDSTabs extends HostListenerMixin(content_switcher_default)
164
198
  const selectedItem = this.querySelector(selectorItemSelected);
165
199
  const nextItem = this._getNextItem(selectedItem, 1);
166
200
  if (nextItem) nextItem.hideDivider = true;
201
+ this._updateTabsState();
167
202
  }
168
203
  _selectionDidChange(itemToSelect, interactionType) {
169
204
  super._selectionDidChange(itemToSelect, interactionType);
@@ -213,18 +248,7 @@ let CDSTabs = class CDSTabs extends HostListenerMixin(content_switcher_default)
213
248
  }
214
249
  firstUpdated() {
215
250
  super.firstUpdated();
216
- const { selectorTablist, selectorItemEnabled } = this.constructor;
217
- const { selectionMode, selectedIndex } = this;
218
- const tablist = this.shadowRoot.querySelector(selectorTablist);
219
- this.tablist = tablist;
220
- if (selectionMode === "manual") {
221
- const firstItem = this.querySelectorAll(selectorItemEnabled)[selectedIndex];
222
- if (firstItem) {
223
- firstItem.highlighted = true;
224
- firstItem.selected = true;
225
- this.value = firstItem.value;
226
- }
227
- }
251
+ this._tabInitialLoad();
228
252
  this._cleanAndCreateIntersectionObserverContainer({ create: true });
229
253
  }
230
254
  updated(changedProperties) {
@@ -244,6 +268,7 @@ let CDSTabs = class CDSTabs extends HostListenerMixin(content_switcher_default)
244
268
  if (changedProperties.has("_currentScrollPosition")) {
245
269
  if (this._contentNode) this._contentNode.style.insetInlineStart = `-${this._currentScrollPosition}px`;
246
270
  }
271
+ if (changedProperties.has("dismissable")) this._updateTabsState();
247
272
  }
248
273
  /**
249
274
  * Render the previous button if tablist is wider than container.
@@ -312,6 +337,25 @@ let CDSTabs = class CDSTabs extends HostListenerMixin(content_switcher_default)
312
337
  </div>
313
338
  `;
314
339
  }
340
+ _updateTabsState() {
341
+ const { selectorItem } = this.constructor;
342
+ this.querySelectorAll(selectorItem).forEach((tab, index) => {
343
+ tab._dismissable = this.dismissable;
344
+ tab._index = index;
345
+ });
346
+ }
347
+ _tabInitialLoad() {
348
+ const { selectorTablist, selectorItemEnabled } = this.constructor;
349
+ const { selectionMode, selectedIndex } = this;
350
+ const tablist = this.shadowRoot.querySelector(selectorTablist);
351
+ this.tablist = tablist;
352
+ const firstItem = this.querySelectorAll(selectorItemEnabled)[selectedIndex];
353
+ if (firstItem) {
354
+ if (selectionMode === "manual") firstItem.highlighted = true;
355
+ firstItem.selected = true;
356
+ this.value = firstItem.value;
357
+ }
358
+ }
315
359
  static {
316
360
  this.TRIGGER_KEYS = new Set([" ", "Enter"]);
317
361
  }
@@ -375,6 +419,7 @@ let CDSTabs = class CDSTabs extends HostListenerMixin(content_switcher_default)
375
419
  };
376
420
  __decorate([HostListener("click")], CDSTabs.prototype, "_handleClick", null);
377
421
  __decorate([HostListener("keydown")], CDSTabs.prototype, "_handleKeydown", null);
422
+ __decorate([HostListener("cds-custom-tab-closed")], CDSTabs.prototype, "_handleTabClosed", null);
378
423
  __decorate([query(`.cds-custom--tabs-nav-content-container`)], CDSTabs.prototype, "_contentContainerNode", void 0);
379
424
  __decorate([query(`.cds-custom--tabs-nav-content`)], CDSTabs.prototype, "_contentNode", void 0);
380
425
  __decorate([state()], CDSTabs.prototype, "_currentScrollPosition", void 0);
@@ -384,6 +429,10 @@ __decorate([property({ attribute: "selecting-items-assistive-text" })], CDSTabs.
384
429
  __decorate([property({ attribute: "selected-item-assistive-text" })], CDSTabs.prototype, "selectedItemAssistiveText", void 0);
385
430
  __decorate([property({ attribute: "trigger-content" })], CDSTabs.prototype, "triggerContent", void 0);
386
431
  __decorate([property({ reflect: true })], CDSTabs.prototype, "type", void 0);
432
+ __decorate([property({
433
+ type: Boolean,
434
+ reflect: true
435
+ })], CDSTabs.prototype, "dismissable", void 0);
387
436
  __decorate([property({
388
437
  attribute: "icon-size",
389
438
  reflect: true