@carbon/web-components 2.61.0 → 2.62.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 (354) hide show
  1. package/custom-elements.json +455 -13
  2. package/es/components/accordion/accordion-item.d.ts +0 -4
  3. package/es/components/accordion/accordion-item.d.ts.map +1 -1
  4. package/es/components/accordion/accordion-item.js +2 -6
  5. package/es/components/accordion/accordion-item.js.map +1 -1
  6. package/es/components/action-set/action-set.d.ts +107 -0
  7. package/es/components/action-set/action-set.d.ts.map +1 -0
  8. package/es/components/action-set/action-set.js +269 -0
  9. package/es/components/action-set/action-set.js.map +1 -0
  10. package/es/components/action-set/action-set.scss.js +14 -0
  11. package/es/components/action-set/action-set.scss.js.map +1 -0
  12. package/es/components/action-set/index.d.ts +9 -0
  13. package/es/components/action-set/index.d.ts.map +1 -0
  14. package/es/components/action-set/index.js +8 -0
  15. package/es/components/ai-label/ai-label.scss.js +1 -1
  16. package/es/components/breadcrumb/breadcrumb.scss.js +1 -1
  17. package/es/components/button/button.d.ts.map +1 -1
  18. package/es/components/button/button.js +7 -2
  19. package/es/components/button/button.js.map +1 -1
  20. package/es/components/button/button.scss.js +1 -1
  21. package/es/components/code-snippet/code-snippet.scss.js +1 -1
  22. package/es/components/combo-box/combo-box.scss.js +1 -1
  23. package/es/components/combo-button/combo-button.scss.js +1 -1
  24. package/es/components/contained-list/contained-list.scss.js +1 -1
  25. package/es/components/content-switcher/content-switcher.scss.js +1 -1
  26. package/es/components/copy-button/copy-button.scss.js +1 -1
  27. package/es/components/data-table/data-table.scss.js +1 -1
  28. package/es/components/date-picker/date-picker.scss.js +1 -1
  29. package/es/components/date-picker/date-picker.scss.js.map +1 -1
  30. package/es/components/date-picker/next/components/date-picker.scss.js +1 -1
  31. package/es/components/dialog/dialog.scss.js +1 -1
  32. package/es/components/dropdown/dropdown.scss.js +1 -1
  33. package/es/components/file-uploader/file-uploader.scss.js +1 -1
  34. package/es/components/fluid-combo-box/fluid-combo-box.scss.js +1 -1
  35. package/es/components/fluid-date-picker/fluid-date-picker.scss.js +1 -1
  36. package/es/components/fluid-dropdown/fluid-dropdown.scss.js +1 -1
  37. package/es/components/fluid-multi-select/fluid-multi-select.scss.js +1 -1
  38. package/es/components/fluid-number-input/fluid-number-input.scss.js +1 -1
  39. package/es/components/fluid-password-input/fluid-password-input.scss.js +1 -1
  40. package/es/components/fluid-search/fluid-search.scss.js +1 -1
  41. package/es/components/fluid-text-input/fluid-text-input.scss.js +1 -1
  42. package/es/components/fluid-time-picker/fluid-time-picker.scss.js +1 -1
  43. package/es/components/inline-loading/inline-loading.scss.js +1 -1
  44. package/es/components/loading/loading.scss.js +1 -1
  45. package/es/components/menu-button/menu-button.scss.js +1 -1
  46. package/es/components/modal/modal.scss.js +1 -1
  47. package/es/components/multi-select/multi-select.scss.js +1 -1
  48. package/es/components/notification/actionable-notification.scss.js +1 -1
  49. package/es/components/notification/inline-notification.scss.js +1 -1
  50. package/es/components/notification/toast-notification.scss.js +1 -1
  51. package/es/components/overflow-menu/overflow-menu.scss.js +1 -1
  52. package/es/components/overflow-menu/overflow-menu.scss.js.map +1 -1
  53. package/es/components/pagination/pagination.scss.js +1 -1
  54. package/es/components/pagination-nav/pagination-nav.scss.js +1 -1
  55. package/es/components/password-input/password-input.scss.js +1 -1
  56. package/es/components/progress-indicator/progress-indicator.scss.js +1 -1
  57. package/es/components/resizer/defs.d.ts +73 -0
  58. package/es/components/resizer/defs.d.ts.map +1 -0
  59. package/es/components/resizer/defs.js +97 -0
  60. package/es/components/resizer/defs.js.map +1 -0
  61. package/es/components/resizer/index.d.ts +11 -0
  62. package/es/components/resizer/index.d.ts.map +1 -0
  63. package/es/components/resizer/index.js +11 -0
  64. package/es/components/resizer/resizer-grid.d.ts +22 -0
  65. package/es/components/resizer/resizer-grid.d.ts.map +1 -0
  66. package/es/components/resizer/resizer-grid.js +44 -0
  67. package/es/components/resizer/resizer-grid.js.map +1 -0
  68. package/es/components/resizer/resizer-grid.scss.js +14 -0
  69. package/es/components/resizer/resizer-grid.scss.js.map +1 -0
  70. package/es/components/resizer/resizer-handle-pivot.d.ts +31 -0
  71. package/es/components/resizer/resizer-handle-pivot.d.ts.map +1 -0
  72. package/es/components/resizer/resizer-handle-pivot.js +93 -0
  73. package/es/components/resizer/resizer-handle-pivot.js.map +1 -0
  74. package/es/components/resizer/resizer-handle-pivot.scss.js +14 -0
  75. package/es/components/resizer/resizer-handle-pivot.scss.js.map +1 -0
  76. package/es/components/resizer/resizer-handle.d.ts +64 -0
  77. package/es/components/resizer/resizer-handle.d.ts.map +1 -0
  78. package/es/components/resizer/resizer-handle.js +350 -0
  79. package/es/components/resizer/resizer-handle.js.map +1 -0
  80. package/es/components/resizer/resizer-handle.scss.js +14 -0
  81. package/es/components/resizer/resizer-handle.scss.js.map +1 -0
  82. package/es/components/resizer/resizer-panel.d.ts +22 -0
  83. package/es/components/resizer/resizer-panel.d.ts.map +1 -0
  84. package/es/components/resizer/resizer-panel.js +37 -0
  85. package/es/components/resizer/resizer-panel.js.map +1 -0
  86. package/es/components/resizer/resizer-panel.scss.js +14 -0
  87. package/es/components/resizer/resizer-panel.scss.js.map +1 -0
  88. package/es/components/search/search.scss.js +1 -1
  89. package/es/components/side-panel/_story-assets/index.d.ts +9 -0
  90. package/es/components/side-panel/_story-assets/index.d.ts.map +1 -0
  91. package/es/components/side-panel/_story-assets/index.js +246 -0
  92. package/es/components/side-panel/_story-assets/index.js.map +1 -0
  93. package/es/components/side-panel/defs.d.ts +7 -1
  94. package/es/components/side-panel/defs.d.ts.map +1 -1
  95. package/es/components/side-panel/defs.js +7 -1
  96. package/es/components/side-panel/defs.js.map +1 -1
  97. package/es/components/side-panel/index.d.ts +3 -1
  98. package/es/components/side-panel/index.d.ts.map +1 -1
  99. package/es/components/side-panel/index.js +12 -0
  100. package/es/components/side-panel/index.js.map +1 -0
  101. package/es/components/side-panel/side-panel.d.ts +60 -22
  102. package/es/components/side-panel/side-panel.d.ts.map +1 -1
  103. package/es/components/side-panel/side-panel.js +268 -126
  104. package/es/components/side-panel/side-panel.js.map +1 -1
  105. package/es/components/side-panel/side-panel.scss.js +14 -0
  106. package/es/components/side-panel/side-panel.scss.js.map +1 -0
  107. package/es/components/side-panel/story-styles.scss.js +14 -0
  108. package/es/components/side-panel/story-styles.scss.js.map +1 -0
  109. package/es/components/skip-to-content/skip-to-content.scss.js +1 -1
  110. package/es/components/slider/slider.d.ts +14 -0
  111. package/es/components/slider/slider.d.ts.map +1 -1
  112. package/es/components/slider/slider.js +40 -5
  113. package/es/components/slider/slider.js.map +1 -1
  114. package/es/components/slider/slider.scss.js +1 -1
  115. package/es/components/slug/slug.scss.js +1 -1
  116. package/es/components/structured-list/structured-list.scss.js +1 -1
  117. package/es/components/structured-list/structured-list.scss.js.map +1 -1
  118. package/es/components/tabs/tab.d.ts.map +1 -1
  119. package/es/components/tabs/tab.js +4 -1
  120. package/es/components/tabs/tab.js.map +1 -1
  121. package/es/components/tabs/tabs.scss.js +1 -1
  122. package/es/components/tabs/tabs.scss.js.map +1 -1
  123. package/es/components/tag/tag.scss.js +1 -1
  124. package/es/components/tag/tag.scss.js.map +1 -1
  125. package/es/components/text-input/text-input.scss.js +1 -1
  126. package/es/components/textarea/textarea.scss.js +1 -1
  127. package/es/components/textarea/textarea.scss.js.map +1 -1
  128. package/es/components/time-picker/time-picker.scss.js +1 -1
  129. package/es/components/toggle-tip/toggletip.scss.js +1 -1
  130. package/es/components/tree-view/tree-view.scss.js +1 -1
  131. package/es/components/truncated-text/index.d.ts +8 -0
  132. package/es/components/truncated-text/index.d.ts.map +1 -0
  133. package/es/components/truncated-text/index.js +8 -0
  134. package/es/components/truncated-text/truncated-text.d.ts +77 -0
  135. package/es/components/truncated-text/truncated-text.d.ts.map +1 -0
  136. package/es/components/truncated-text/truncated-text.js +216 -0
  137. package/es/components/truncated-text/truncated-text.js.map +1 -0
  138. package/es/components/truncated-text/truncated-text.scss.js +14 -0
  139. package/es/components/truncated-text/truncated-text.scss.js.map +1 -0
  140. package/es/components/ui-shell/header.scss.js +1 -1
  141. package/es/components/ui-shell/side-nav.scss.js +1 -1
  142. package/es/components/ui-shell/side-nav.scss.js.map +1 -1
  143. package/es/globals/internal/icon-loader-utils.d.ts +2 -2
  144. package/es/globals/internal/icon-loader-utils.d.ts.map +1 -1
  145. package/es/globals/internal/icon-loader-utils.js +1 -1
  146. package/es/globals/internal/icon-loader-utils.js.map +1 -1
  147. package/es/index.d.ts.map +1 -1
  148. package/es-custom/components/accordion/accordion-item.d.ts +0 -4
  149. package/es-custom/components/accordion/accordion-item.d.ts.map +1 -1
  150. package/es-custom/components/accordion/accordion-item.js +2 -6
  151. package/es-custom/components/accordion/accordion-item.js.map +1 -1
  152. package/es-custom/components/action-set/action-set.d.ts +107 -0
  153. package/es-custom/components/action-set/action-set.d.ts.map +1 -0
  154. package/es-custom/components/action-set/action-set.js +269 -0
  155. package/es-custom/components/action-set/action-set.js.map +1 -0
  156. package/es-custom/components/action-set/action-set.scss.js +14 -0
  157. package/es-custom/components/action-set/action-set.scss.js.map +1 -0
  158. package/es-custom/components/action-set/index.d.ts +9 -0
  159. package/es-custom/components/action-set/index.d.ts.map +1 -0
  160. package/es-custom/components/action-set/index.js +8 -0
  161. package/es-custom/components/ai-label/ai-label.scss.js +1 -1
  162. package/es-custom/components/breadcrumb/breadcrumb.scss.js +1 -1
  163. package/es-custom/components/button/button.d.ts.map +1 -1
  164. package/es-custom/components/button/button.js +7 -2
  165. package/es-custom/components/button/button.js.map +1 -1
  166. package/es-custom/components/button/button.scss.js +1 -1
  167. package/es-custom/components/code-snippet/code-snippet.scss.js +1 -1
  168. package/es-custom/components/combo-box/combo-box.scss.js +1 -1
  169. package/es-custom/components/combo-button/combo-button.scss.js +1 -1
  170. package/es-custom/components/contained-list/contained-list.scss.js +1 -1
  171. package/es-custom/components/content-switcher/content-switcher.scss.js +1 -1
  172. package/es-custom/components/copy-button/copy-button.scss.js +1 -1
  173. package/es-custom/components/data-table/data-table.scss.js +1 -1
  174. package/es-custom/components/date-picker/date-picker.scss.js +1 -1
  175. package/es-custom/components/date-picker/date-picker.scss.js.map +1 -1
  176. package/es-custom/components/date-picker/next/components/date-picker.scss.js +1 -1
  177. package/es-custom/components/dialog/dialog.scss.js +1 -1
  178. package/es-custom/components/dropdown/dropdown.scss.js +1 -1
  179. package/es-custom/components/file-uploader/file-uploader.scss.js +1 -1
  180. package/es-custom/components/fluid-combo-box/fluid-combo-box.scss.js +1 -1
  181. package/es-custom/components/fluid-date-picker/fluid-date-picker.scss.js +1 -1
  182. package/es-custom/components/fluid-dropdown/fluid-dropdown.scss.js +1 -1
  183. package/es-custom/components/fluid-multi-select/fluid-multi-select.scss.js +1 -1
  184. package/es-custom/components/fluid-number-input/fluid-number-input.scss.js +1 -1
  185. package/es-custom/components/fluid-password-input/fluid-password-input.scss.js +1 -1
  186. package/es-custom/components/fluid-search/fluid-search.scss.js +1 -1
  187. package/es-custom/components/fluid-text-input/fluid-text-input.scss.js +1 -1
  188. package/es-custom/components/fluid-time-picker/fluid-time-picker.scss.js +1 -1
  189. package/es-custom/components/inline-loading/inline-loading.scss.js +1 -1
  190. package/es-custom/components/loading/loading.scss.js +1 -1
  191. package/es-custom/components/menu-button/menu-button.scss.js +1 -1
  192. package/es-custom/components/modal/modal.scss.js +1 -1
  193. package/es-custom/components/multi-select/multi-select.scss.js +1 -1
  194. package/es-custom/components/notification/actionable-notification.scss.js +1 -1
  195. package/es-custom/components/notification/inline-notification.scss.js +1 -1
  196. package/es-custom/components/notification/toast-notification.scss.js +1 -1
  197. package/es-custom/components/overflow-menu/overflow-menu.scss.js +1 -1
  198. package/es-custom/components/overflow-menu/overflow-menu.scss.js.map +1 -1
  199. package/es-custom/components/pagination/pagination.scss.js +1 -1
  200. package/es-custom/components/pagination-nav/pagination-nav.scss.js +1 -1
  201. package/es-custom/components/password-input/password-input.scss.js +1 -1
  202. package/es-custom/components/progress-indicator/progress-indicator.scss.js +1 -1
  203. package/es-custom/components/resizer/defs.d.ts +73 -0
  204. package/es-custom/components/resizer/defs.d.ts.map +1 -0
  205. package/es-custom/components/resizer/defs.js +97 -0
  206. package/es-custom/components/resizer/defs.js.map +1 -0
  207. package/es-custom/components/resizer/index.d.ts +11 -0
  208. package/es-custom/components/resizer/index.d.ts.map +1 -0
  209. package/es-custom/components/resizer/index.js +11 -0
  210. package/es-custom/components/resizer/resizer-grid.d.ts +22 -0
  211. package/es-custom/components/resizer/resizer-grid.d.ts.map +1 -0
  212. package/es-custom/components/resizer/resizer-grid.js +44 -0
  213. package/es-custom/components/resizer/resizer-grid.js.map +1 -0
  214. package/es-custom/components/resizer/resizer-grid.scss.js +14 -0
  215. package/es-custom/components/resizer/resizer-grid.scss.js.map +1 -0
  216. package/es-custom/components/resizer/resizer-handle-pivot.d.ts +31 -0
  217. package/es-custom/components/resizer/resizer-handle-pivot.d.ts.map +1 -0
  218. package/es-custom/components/resizer/resizer-handle-pivot.js +93 -0
  219. package/es-custom/components/resizer/resizer-handle-pivot.js.map +1 -0
  220. package/es-custom/components/resizer/resizer-handle-pivot.scss.js +14 -0
  221. package/es-custom/components/resizer/resizer-handle-pivot.scss.js.map +1 -0
  222. package/es-custom/components/resizer/resizer-handle.d.ts +64 -0
  223. package/es-custom/components/resizer/resizer-handle.d.ts.map +1 -0
  224. package/es-custom/components/resizer/resizer-handle.js +350 -0
  225. package/es-custom/components/resizer/resizer-handle.js.map +1 -0
  226. package/es-custom/components/resizer/resizer-handle.scss.js +14 -0
  227. package/es-custom/components/resizer/resizer-handle.scss.js.map +1 -0
  228. package/es-custom/components/resizer/resizer-panel.d.ts +22 -0
  229. package/es-custom/components/resizer/resizer-panel.d.ts.map +1 -0
  230. package/es-custom/components/resizer/resizer-panel.js +37 -0
  231. package/es-custom/components/resizer/resizer-panel.js.map +1 -0
  232. package/es-custom/components/resizer/resizer-panel.scss.js +14 -0
  233. package/es-custom/components/resizer/resizer-panel.scss.js.map +1 -0
  234. package/es-custom/components/search/search.scss.js +1 -1
  235. package/es-custom/components/side-panel/_story-assets/index.d.ts +9 -0
  236. package/es-custom/components/side-panel/_story-assets/index.d.ts.map +1 -0
  237. package/es-custom/components/side-panel/_story-assets/index.js +246 -0
  238. package/es-custom/components/side-panel/_story-assets/index.js.map +1 -0
  239. package/es-custom/components/side-panel/defs.d.ts +7 -1
  240. package/es-custom/components/side-panel/defs.d.ts.map +1 -1
  241. package/es-custom/components/side-panel/defs.js +7 -1
  242. package/es-custom/components/side-panel/defs.js.map +1 -1
  243. package/es-custom/components/side-panel/index.d.ts +3 -1
  244. package/es-custom/components/side-panel/index.d.ts.map +1 -1
  245. package/es-custom/components/side-panel/index.js +12 -0
  246. package/es-custom/components/side-panel/index.js.map +1 -0
  247. package/es-custom/components/side-panel/side-panel.d.ts +60 -22
  248. package/es-custom/components/side-panel/side-panel.d.ts.map +1 -1
  249. package/es-custom/components/side-panel/side-panel.js +268 -126
  250. package/es-custom/components/side-panel/side-panel.js.map +1 -1
  251. package/es-custom/components/side-panel/side-panel.scss.js +14 -0
  252. package/es-custom/components/side-panel/side-panel.scss.js.map +1 -0
  253. package/es-custom/components/side-panel/story-styles.scss.js +14 -0
  254. package/es-custom/components/side-panel/story-styles.scss.js.map +1 -0
  255. package/es-custom/components/skip-to-content/skip-to-content.scss.js +1 -1
  256. package/es-custom/components/slider/slider.d.ts +14 -0
  257. package/es-custom/components/slider/slider.d.ts.map +1 -1
  258. package/es-custom/components/slider/slider.js +40 -5
  259. package/es-custom/components/slider/slider.js.map +1 -1
  260. package/es-custom/components/slider/slider.scss.js +1 -1
  261. package/es-custom/components/slug/slug.scss.js +1 -1
  262. package/es-custom/components/structured-list/structured-list.scss.js +1 -1
  263. package/es-custom/components/structured-list/structured-list.scss.js.map +1 -1
  264. package/es-custom/components/tabs/tab.d.ts.map +1 -1
  265. package/es-custom/components/tabs/tab.js +4 -1
  266. package/es-custom/components/tabs/tab.js.map +1 -1
  267. package/es-custom/components/tabs/tabs.scss.js +1 -1
  268. package/es-custom/components/tabs/tabs.scss.js.map +1 -1
  269. package/es-custom/components/tag/tag.scss.js +1 -1
  270. package/es-custom/components/tag/tag.scss.js.map +1 -1
  271. package/es-custom/components/text-input/text-input.scss.js +1 -1
  272. package/es-custom/components/textarea/textarea.scss.js +1 -1
  273. package/es-custom/components/textarea/textarea.scss.js.map +1 -1
  274. package/es-custom/components/time-picker/time-picker.scss.js +1 -1
  275. package/es-custom/components/toggle-tip/toggletip.scss.js +1 -1
  276. package/es-custom/components/tree-view/tree-view.scss.js +1 -1
  277. package/es-custom/components/truncated-text/index.d.ts +8 -0
  278. package/es-custom/components/truncated-text/index.d.ts.map +1 -0
  279. package/es-custom/components/truncated-text/index.js +8 -0
  280. package/es-custom/components/truncated-text/truncated-text.d.ts +77 -0
  281. package/es-custom/components/truncated-text/truncated-text.d.ts.map +1 -0
  282. package/es-custom/components/truncated-text/truncated-text.js +216 -0
  283. package/es-custom/components/truncated-text/truncated-text.js.map +1 -0
  284. package/es-custom/components/truncated-text/truncated-text.scss.js +14 -0
  285. package/es-custom/components/truncated-text/truncated-text.scss.js.map +1 -0
  286. package/es-custom/components/ui-shell/header.scss.js +1 -1
  287. package/es-custom/components/ui-shell/side-nav.scss.js +1 -1
  288. package/es-custom/components/ui-shell/side-nav.scss.js.map +1 -1
  289. package/es-custom/globals/internal/icon-loader-utils.d.ts +2 -2
  290. package/es-custom/globals/internal/icon-loader-utils.d.ts.map +1 -1
  291. package/es-custom/globals/internal/icon-loader-utils.js +1 -1
  292. package/es-custom/globals/internal/icon-loader-utils.js.map +1 -1
  293. package/es-custom/index.d.ts.map +1 -1
  294. package/lib/components/accordion/accordion-item.d.ts +0 -4
  295. package/lib/components/accordion/accordion-item.d.ts.map +1 -1
  296. package/lib/components/action-set/action-set.d.ts +107 -0
  297. package/lib/components/action-set/action-set.d.ts.map +1 -0
  298. package/lib/components/action-set/index.d.ts +9 -0
  299. package/lib/components/action-set/index.d.ts.map +1 -0
  300. package/lib/components/button/button.d.ts.map +1 -1
  301. package/lib/components/resizer/defs.d.ts +73 -0
  302. package/lib/components/resizer/defs.d.ts.map +1 -0
  303. package/lib/components/resizer/defs.js +112 -0
  304. package/lib/components/resizer/defs.js.map +1 -0
  305. package/lib/components/resizer/index.d.ts +11 -0
  306. package/lib/components/resizer/index.d.ts.map +1 -0
  307. package/lib/components/resizer/resizer-grid.d.ts +22 -0
  308. package/lib/components/resizer/resizer-grid.d.ts.map +1 -0
  309. package/lib/components/resizer/resizer-handle-pivot.d.ts +31 -0
  310. package/lib/components/resizer/resizer-handle-pivot.d.ts.map +1 -0
  311. package/lib/components/resizer/resizer-handle.d.ts +64 -0
  312. package/lib/components/resizer/resizer-handle.d.ts.map +1 -0
  313. package/lib/components/resizer/resizer-panel.d.ts +22 -0
  314. package/lib/components/resizer/resizer-panel.d.ts.map +1 -0
  315. package/lib/components/side-panel/_story-assets/index.d.ts +9 -0
  316. package/lib/components/side-panel/_story-assets/index.d.ts.map +1 -0
  317. package/lib/components/side-panel/defs.d.ts +7 -1
  318. package/lib/components/side-panel/defs.d.ts.map +1 -1
  319. package/lib/components/side-panel/defs.js +7 -1
  320. package/lib/components/side-panel/defs.js.map +1 -1
  321. package/lib/components/side-panel/index.d.ts +3 -1
  322. package/lib/components/side-panel/index.d.ts.map +1 -1
  323. package/lib/components/side-panel/side-panel.d.ts +60 -22
  324. package/lib/components/side-panel/side-panel.d.ts.map +1 -1
  325. package/lib/components/slider/slider.d.ts +14 -0
  326. package/lib/components/slider/slider.d.ts.map +1 -1
  327. package/lib/components/tabs/tab.d.ts.map +1 -1
  328. package/lib/components/truncated-text/index.d.ts +8 -0
  329. package/lib/components/truncated-text/index.d.ts.map +1 -0
  330. package/lib/components/truncated-text/truncated-text.d.ts +77 -0
  331. package/lib/components/truncated-text/truncated-text.d.ts.map +1 -0
  332. package/lib/globals/internal/icon-loader-utils.d.ts +2 -2
  333. package/lib/globals/internal/icon-loader-utils.d.ts.map +1 -1
  334. package/lib/index.d.ts.map +1 -1
  335. package/package.json +7 -7
  336. package/scss/components/action-set/action-set.scss +93 -0
  337. package/scss/components/data-table/_table-core.scss +73 -20
  338. package/scss/components/data-table/_table-selection.scss +31 -14
  339. package/scss/components/date-picker/date-picker.scss +10 -6
  340. package/scss/components/overflow-menu/overflow-menu.scss +31 -11
  341. package/scss/components/resizer/resizer-grid.scss +34 -0
  342. package/scss/components/resizer/resizer-handle-pivot.scss +39 -0
  343. package/scss/components/resizer/resizer-handle.scss +127 -0
  344. package/scss/components/resizer/resizer-panel.scss +10 -0
  345. package/scss/components/side-panel/side-panel.scss +363 -0
  346. package/scss/components/side-panel/story-styles.scss +51 -0
  347. package/scss/components/structured-list/structured-list.scss +10 -8
  348. package/scss/components/tabs/tabs.scss +4 -0
  349. package/scss/components/tag/tag.scss +11 -7
  350. package/scss/components/textarea/textarea.scss +6 -0
  351. package/scss/components/truncated-text/truncated-text-story.scss +14 -0
  352. package/scss/components/truncated-text/truncated-text.scss +122 -0
  353. package/scss/components/ui-shell/side-nav.scss +9 -7
  354. package/telemetry.yml +26 -0
@@ -0,0 +1,350 @@
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 { carbonElement } from "../../globals/decorators/carbon-element.js";
10
+ import __decorate from "../../_virtual/_@oxc-project_runtime@0.139.0/helpers/esm/decorate.js";
11
+ import { ARIA, DOUBLE_TAP, EVENTS, KEYBOARD, SELECTORS, SLOTS, calculateFlexRatio, createCustomEvent, determineAxis, formatSplitRatio, getOrientationFromAxis, isWithinDistance, safeClosest, safeQuerySelectorAll, triggerHapticFeedback } from "./defs.js";
12
+ import resizer_handle_default$1 from "./resizer-handle.scss.js";
13
+ import { LitElement, html } from "lit";
14
+ import { property, state } from "lit/decorators.js";
15
+ //#region src/components/resizer/resizer-handle.ts
16
+ /**
17
+ * Copyright IBM Corp. 2026, 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
+ * Resizer handle component for resizing panels.
24
+ * @element cds-custom-resizer-handle
25
+ * @fires resize-start - Fired when dragging starts
26
+ * @fires resize-drag - Fired during dragging (detail: { axis, delta, position })
27
+ * @fires resize-end - Fired when dragging ends (detail: { axis, delta, position })
28
+ * @fires resize-reset - Fired on double-tap / double-click
29
+ */
30
+ let CDSResizerHandle = class CDSResizerHandle extends LitElement {
31
+ constructor(..._args) {
32
+ super(..._args);
33
+ this.axis = "y";
34
+ this._isDragging = false;
35
+ this._startSize = 0;
36
+ this._endSize = 0;
37
+ this._lastTapTime = 0;
38
+ this._lastTapPosition = {
39
+ x: 0,
40
+ y: 0
41
+ };
42
+ this.startDrag = (e) => {
43
+ this._handlePointerDown(e);
44
+ };
45
+ this.resetSizes = (e) => {
46
+ e.preventDefault();
47
+ this.dispatchEvent(createCustomEvent(EVENTS.RESIZE_RESET));
48
+ if (this._grid) {
49
+ this._grid.style.removeProperty("--start-element-size");
50
+ this._grid.style.removeProperty("--end-element-size");
51
+ const handleTransitionEnd = () => {
52
+ this._updateAriaAttributes();
53
+ this._grid?.removeEventListener("transitionend", handleTransitionEnd);
54
+ };
55
+ this._grid.addEventListener("transitionend", handleTransitionEnd, { once: true });
56
+ }
57
+ };
58
+ this._handlePointerDown = (e) => {
59
+ if (this._detectDoubleTap(e)) return;
60
+ e.preventDefault();
61
+ this._isDragging = true;
62
+ this.setSyntheticActiveState(true);
63
+ const startPosition = {
64
+ x: e.clientX,
65
+ y: e.clientY
66
+ };
67
+ const startValue = this.axis === "x" ? e.clientX : e.clientY;
68
+ this.dispatchEvent(createCustomEvent(EVENTS.RESIZE_START, {
69
+ axis: this.axis,
70
+ startPosition
71
+ }));
72
+ if (this._grid && this._startNode && this._endNode) {
73
+ const rectStart = this._startNode.getBoundingClientRect();
74
+ const rectEnd = this._endNode.getBoundingClientRect();
75
+ this._startSize = this.axis === "x" ? rectStart.width : rectStart.height;
76
+ this._endSize = this.axis === "x" ? rectEnd.width : rectEnd.height;
77
+ }
78
+ this._boundMove = this._createMoveHandler(startValue);
79
+ this._boundStop = this._createStopHandler(startValue);
80
+ window.addEventListener("pointermove", this._boundMove);
81
+ window.addEventListener("pointerup", this._boundStop);
82
+ };
83
+ this._handleKeyDown = (e) => {
84
+ if (![
85
+ "ArrowUp",
86
+ "ArrowDown",
87
+ "ArrowLeft",
88
+ "ArrowRight",
89
+ "Home",
90
+ "End",
91
+ "PageUp",
92
+ "PageDown"
93
+ ].includes(e.key)) return;
94
+ e.preventDefault();
95
+ e.stopPropagation();
96
+ const step = e.shiftKey ? KEYBOARD.LARGE_STEP_PX : KEYBOARD.DEFAULT_STEP_PX;
97
+ const isHorizontal = this.axis === "x";
98
+ let delta = 0;
99
+ if (e.key === "ArrowUp" && !isHorizontal) delta = -step;
100
+ else if (e.key === "ArrowDown" && !isHorizontal) delta = step;
101
+ else if (e.key === "ArrowLeft" && isHorizontal) delta = -step;
102
+ else if (e.key === "ArrowRight" && isHorizontal) delta = step;
103
+ else if (e.key === "Home" && this._grid && this._startNode) {
104
+ const rect = this._startNode.getBoundingClientRect();
105
+ delta = isHorizontal ? -rect.width : -rect.height;
106
+ } else if (e.key === "End" && this._grid && this._endNode) {
107
+ const rect = this._endNode.getBoundingClientRect();
108
+ delta = isHorizontal ? rect.width : rect.height;
109
+ }
110
+ if (delta !== 0) this._handleKeyboardResize(delta);
111
+ };
112
+ }
113
+ static {
114
+ this.styles = resizer_handle_default$1;
115
+ }
116
+ setSyntheticHoverState(isHovered) {
117
+ this.toggleAttribute("data-synthetic-hover", isHovered);
118
+ this.requestUpdate();
119
+ }
120
+ setSyntheticActiveState(isActive) {
121
+ this.toggleAttribute("data-synthetic-active", isActive);
122
+ this.requestUpdate();
123
+ }
124
+ get pivot() {
125
+ return this._pivot;
126
+ }
127
+ connectedCallback() {
128
+ super.connectedCallback();
129
+ this._initializeComponent();
130
+ this._setupEventListeners();
131
+ }
132
+ firstUpdated() {
133
+ if (this._grid && this._startNode && this._endNode) requestAnimationFrame(() => {
134
+ this._updateAriaAttributes();
135
+ });
136
+ }
137
+ disconnectedCallback() {
138
+ this._cleanup();
139
+ super.disconnectedCallback();
140
+ }
141
+ _initializeComponent() {
142
+ this._grid = safeClosest(this, SELECTORS.GRID) || void 0;
143
+ const slot = this.getAttribute("slot");
144
+ const cursor = getComputedStyle(this).cursor;
145
+ this.axis = determineAxis(slot, cursor);
146
+ if (this._grid) {
147
+ const panels = safeQuerySelectorAll(this._grid, SELECTORS.PANEL);
148
+ if (this.axis === "x") {
149
+ this._startNode = panels.find((p) => p.slot === SLOTS.LEFT);
150
+ this._endNode = panels.find((p) => p.slot === SLOTS.RIGHT);
151
+ } else {
152
+ this._startNode = panels.find((p) => p.slot === SLOTS.TOP);
153
+ this._endNode = panels.find((p) => p.slot === SLOTS.BOTTOM);
154
+ }
155
+ }
156
+ this._setupAccessibility();
157
+ }
158
+ _setupAccessibility() {
159
+ this.setAttribute("role", ARIA.ROLE_SEPARATOR);
160
+ this.setAttribute("tabindex", "0");
161
+ this.setAttribute("aria-orientation", getOrientationFromAxis(this.axis));
162
+ this.setAttribute("aria-live", ARIA.LIVE_ASSERTIVE);
163
+ if (this._grid && this._startNode && this._endNode) {
164
+ this.setAttribute("aria-valuenow", ARIA.VALUE_DEFAULT);
165
+ this.setAttribute("aria-valuemin", ARIA.VALUE_MIN);
166
+ this.setAttribute("aria-valuemax", ARIA.VALUE_MAX);
167
+ this.setAttribute("aria-valuetext", formatSplitRatio(50));
168
+ }
169
+ }
170
+ _setupEventListeners() {
171
+ this._boundStartDrag = this._handlePointerDown.bind(this);
172
+ this._boundHandleKeyDown = this._handleKeyDown.bind(this);
173
+ this.addEventListener("pointerdown", this._boundStartDrag);
174
+ this.addEventListener("keydown", this._boundHandleKeyDown);
175
+ }
176
+ _cleanup() {
177
+ if (this._boundStartDrag) {
178
+ this.removeEventListener("pointerdown", this._boundStartDrag);
179
+ this._boundStartDrag = void 0;
180
+ }
181
+ if (this._boundHandleKeyDown) {
182
+ this.removeEventListener("keydown", this._boundHandleKeyDown);
183
+ this._boundHandleKeyDown = void 0;
184
+ }
185
+ if (this._boundMove) {
186
+ window.removeEventListener("pointermove", this._boundMove);
187
+ this._boundMove = void 0;
188
+ }
189
+ if (this._boundStop) {
190
+ window.removeEventListener("pointerup", this._boundStop);
191
+ this._boundStop = void 0;
192
+ }
193
+ this.removeAttribute("data-synthetic-hover");
194
+ this.removeAttribute("data-synthetic-active");
195
+ this._isDragging = false;
196
+ }
197
+ get _pivot() {
198
+ const panel = safeClosest(this, SELECTORS.PANEL);
199
+ if (!panel) return void 0;
200
+ const slot = panel.getAttribute("slot");
201
+ if (slot === SLOTS.LEFT) return "end";
202
+ if (slot === SLOTS.RIGHT) return "start";
203
+ }
204
+ _updateAriaAttributes() {
205
+ if (!this._grid || !this._startNode || !this._endNode) return;
206
+ const rectStart = this._startNode.getBoundingClientRect();
207
+ const rectEnd = this._endNode.getBoundingClientRect();
208
+ const isHorizontal = this.axis === "x";
209
+ const startSize = isHorizontal ? rectStart.width : rectStart.height;
210
+ const totalSize = startSize + (isHorizontal ? rectEnd.width : rectEnd.height);
211
+ if (totalSize > 0) {
212
+ const percentage = Math.round(startSize / totalSize * 100);
213
+ this.setAttribute("aria-valuenow", percentage.toString());
214
+ this.setAttribute("aria-valuemin", ARIA.VALUE_MIN);
215
+ this.setAttribute("aria-valuemax", ARIA.VALUE_MAX);
216
+ this.setAttribute("aria-valuetext", formatSplitRatio(percentage));
217
+ }
218
+ }
219
+ _detectDoubleTap(e) {
220
+ const now = Date.now();
221
+ const dt = now - this._lastTapTime;
222
+ const currentPos = {
223
+ x: e.clientX,
224
+ y: e.clientY
225
+ };
226
+ if (dt < DOUBLE_TAP.MAX_TIME_MS && isWithinDistance(currentPos, this._lastTapPosition, DOUBLE_TAP.MAX_DISTANCE_PX)) {
227
+ triggerHapticFeedback(DOUBLE_TAP.VIBRATION_MS);
228
+ this.resetSizes(e);
229
+ this._lastTapTime = 0;
230
+ return true;
231
+ }
232
+ this._lastTapTime = now;
233
+ this._lastTapPosition = currentPos;
234
+ return false;
235
+ }
236
+ _createMoveHandler(startValue) {
237
+ return (e) => {
238
+ if (!this._isDragging) return;
239
+ const delta = (this.axis === "x" ? e.clientX : e.clientY) - startValue;
240
+ const position = {
241
+ x: e.clientX,
242
+ y: e.clientY
243
+ };
244
+ this.dispatchEvent(createCustomEvent(EVENTS.RESIZE_DRAG, {
245
+ axis: this.axis,
246
+ delta,
247
+ position
248
+ }));
249
+ if (this._grid && this._startNode && this._endNode) this._updateGridSizes(delta);
250
+ };
251
+ }
252
+ _createStopHandler(startValue) {
253
+ return (e) => {
254
+ const delta = (this.axis === "x" ? e.clientX : e.clientY) - startValue;
255
+ const position = {
256
+ x: e.clientX,
257
+ y: e.clientY
258
+ };
259
+ this.dispatchEvent(createCustomEvent(EVENTS.RESIZE_END, {
260
+ axis: this.axis,
261
+ delta,
262
+ position
263
+ }));
264
+ if (this._boundMove) {
265
+ window.removeEventListener("pointermove", this._boundMove);
266
+ this._boundMove = void 0;
267
+ }
268
+ if (this._boundStop) {
269
+ window.removeEventListener("pointerup", this._boundStop);
270
+ this._boundStop = void 0;
271
+ }
272
+ if (this._grid) this._grid.style.removeProperty("transition");
273
+ this._isDragging = false;
274
+ this.setSyntheticActiveState(false);
275
+ };
276
+ }
277
+ _updateGridSizes(delta) {
278
+ if (!this._grid) return;
279
+ this._grid.style.transition = "none";
280
+ const start = this._startSize + delta;
281
+ const end = this._endSize - delta;
282
+ const total = start + end || 1;
283
+ this._grid.style.setProperty("--start-element-size", `${calculateFlexRatio(start, total)}fr`);
284
+ this._grid.style.setProperty("--end-element-size", `${calculateFlexRatio(end, total)}fr`);
285
+ this._updateAriaAttributes();
286
+ }
287
+ _handleKeyboardResize(delta) {
288
+ const position = {
289
+ x: 0,
290
+ y: 0
291
+ };
292
+ this.dispatchEvent(createCustomEvent(EVENTS.RESIZE_START, {
293
+ axis: this.axis,
294
+ startPosition: position
295
+ }));
296
+ if (this._grid && this._startNode && this._endNode) {
297
+ const rectStart = this._startNode.getBoundingClientRect();
298
+ const rectEnd = this._endNode.getBoundingClientRect();
299
+ const isHorizontal = this.axis === "x";
300
+ this._startSize = isHorizontal ? rectStart.width : rectStart.height;
301
+ this._endSize = isHorizontal ? rectEnd.width : rectEnd.height;
302
+ const start = this._startSize + delta;
303
+ const end = this._endSize - delta;
304
+ const total = start + end || 1;
305
+ this._grid.style.setProperty("--start-element-size", `${calculateFlexRatio(start, total)}fr`);
306
+ this._grid.style.setProperty("--end-element-size", `${calculateFlexRatio(end, total)}fr`);
307
+ this._updateAriaAttributes();
308
+ }
309
+ this.dispatchEvent(createCustomEvent(EVENTS.RESIZE_DRAG, {
310
+ axis: this.axis,
311
+ delta,
312
+ position
313
+ }));
314
+ this.dispatchEvent(createCustomEvent(EVENTS.RESIZE_END, {
315
+ axis: this.axis,
316
+ delta,
317
+ position
318
+ }));
319
+ }
320
+ render() {
321
+ return html`
322
+ <div class="handle-content">
323
+ <span class="sr-only">
324
+ Use arrow keys to resize, hold Shift for larger steps. Double-click to
325
+ reset.
326
+ </span>
327
+ <div>
328
+ ${this._pivot === "start" ? html`<slot name="${SLOTS.PIVOT}"></slot>` : ""}
329
+ </div>
330
+ <div class="icon-container" part="icon-container">
331
+ <slot name="${SLOTS.ICON}"></slot>
332
+ </div>
333
+ <div>
334
+ ${this._pivot === "end" ? html`<slot name="${SLOTS.PIVOT}"></slot>` : ""}
335
+ </div>
336
+ </div>
337
+ `;
338
+ }
339
+ };
340
+ __decorate([property({
341
+ type: String,
342
+ reflect: true
343
+ })], CDSResizerHandle.prototype, "axis", void 0);
344
+ __decorate([state()], CDSResizerHandle.prototype, "_isDragging", void 0);
345
+ CDSResizerHandle = __decorate([carbonElement(`cds-custom-resizer-handle`)], CDSResizerHandle);
346
+ var resizer_handle_default = CDSResizerHandle;
347
+ //#endregion
348
+ export { resizer_handle_default as default };
349
+
350
+ //# sourceMappingURL=resizer-handle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resizer-handle.js","names":["styles","customElement"],"sources":["../../../src/components/resizer/resizer-handle.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2026, 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 { carbonElement as customElement } from '../../globals/decorators/carbon-element';\nimport { prefix } from '../../globals/settings';\nimport styles from './resizer-handle.scss?lit';\nimport type { ResizerAxis, Position } from './defs';\nimport {\n DOUBLE_TAP,\n KEYBOARD,\n ARIA,\n SELECTORS,\n SLOTS,\n EVENTS,\n determineAxis,\n calculateFlexRatio,\n formatSplitRatio,\n isWithinDistance,\n triggerHapticFeedback,\n createCustomEvent,\n getOrientationFromAxis,\n safeClosest,\n safeQuerySelectorAll,\n} from './defs';\n\n/**\n * Resizer handle component for resizing panels.\n * @element cds-custom-resizer-handle\n * @fires resize-start - Fired when dragging starts\n * @fires resize-drag - Fired during dragging (detail: { axis, delta, position })\n * @fires resize-end - Fired when dragging ends (detail: { axis, delta, position })\n * @fires resize-reset - Fired on double-tap / double-click\n */\n@customElement(`${prefix}-resizer-handle`)\nclass CDSResizerHandle extends LitElement {\n static styles = styles;\n\n /** Resize axis — determined automatically from slot, or set explicitly. */\n @property({ type: String, reflect: true })\n axis: ResizerAxis = 'y';\n\n @state()\n private _isDragging = false;\n\n private _startNode?: HTMLElement;\n private _endNode?: HTMLElement;\n private _grid?: HTMLElement;\n private _startSize = 0;\n private _endSize = 0;\n private _lastTapTime = 0;\n private _lastTapPosition: Position = { x: 0, y: 0 };\n\n private _boundStartDrag?: (e: PointerEvent) => void;\n private _boundHandleKeyDown?: (e: KeyboardEvent) => void;\n private _boundMove?: (e: PointerEvent) => void;\n private _boundStop?: (e: PointerEvent) => void;\n\n // ─── Public API (used by resizer-handle-pivot) ──────────────────────────────\n\n setSyntheticHoverState(isHovered: boolean): void {\n this.toggleAttribute('data-synthetic-hover', isHovered);\n this.requestUpdate();\n }\n\n setSyntheticActiveState(isActive: boolean): void {\n this.toggleAttribute('data-synthetic-active', isActive);\n this.requestUpdate();\n }\n\n /** Start dragging (called by pivot component). */\n startDrag = (e: PointerEvent): void => {\n this._handlePointerDown(e);\n };\n\n /** Reset panel sizes to default (called by pivot component or double-click). */\n resetSizes = (e: MouseEvent): void => {\n e.preventDefault();\n this.dispatchEvent(createCustomEvent(EVENTS.RESIZE_RESET));\n\n if (this._grid) {\n this._grid.style.removeProperty('--start-element-size');\n this._grid.style.removeProperty('--end-element-size');\n const handleTransitionEnd = () => {\n this._updateAriaAttributes();\n this._grid?.removeEventListener('transitionend', handleTransitionEnd);\n };\n this._grid.addEventListener('transitionend', handleTransitionEnd, {\n once: true,\n });\n }\n };\n\n get pivot(): 'start' | 'end' | undefined {\n return this._pivot;\n }\n\n // ─── Lifecycle ──────────────────────────────────────────────────────────────\n\n connectedCallback() {\n super.connectedCallback();\n this._initializeComponent();\n this._setupEventListeners();\n }\n\n firstUpdated(): void {\n if (this._grid && this._startNode && this._endNode) {\n requestAnimationFrame(() => {\n this._updateAriaAttributes();\n });\n }\n }\n\n disconnectedCallback() {\n this._cleanup();\n super.disconnectedCallback();\n }\n\n // ─── Internals ──────────────────────────────────────────────────────────────\n\n private _initializeComponent(): void {\n this._grid = safeClosest(this, SELECTORS.GRID) || undefined;\n\n const slot = this.getAttribute('slot');\n const cursor = getComputedStyle(this).cursor;\n this.axis = determineAxis(slot, cursor);\n\n if (this._grid) {\n const panels = safeQuerySelectorAll<HTMLElement>(\n this._grid,\n SELECTORS.PANEL\n );\n if (this.axis === 'x') {\n this._startNode = panels.find((p) => p.slot === SLOTS.LEFT);\n this._endNode = panels.find((p) => p.slot === SLOTS.RIGHT);\n } else {\n this._startNode = panels.find((p) => p.slot === SLOTS.TOP);\n this._endNode = panels.find((p) => p.slot === SLOTS.BOTTOM);\n }\n }\n\n this._setupAccessibility();\n }\n\n private _setupAccessibility(): void {\n this.setAttribute('role', ARIA.ROLE_SEPARATOR);\n this.setAttribute('tabindex', '0');\n this.setAttribute('aria-orientation', getOrientationFromAxis(this.axis));\n this.setAttribute('aria-live', ARIA.LIVE_ASSERTIVE);\n if (this._grid && this._startNode && this._endNode) {\n this.setAttribute('aria-valuenow', ARIA.VALUE_DEFAULT);\n this.setAttribute('aria-valuemin', ARIA.VALUE_MIN);\n this.setAttribute('aria-valuemax', ARIA.VALUE_MAX);\n this.setAttribute('aria-valuetext', formatSplitRatio(50));\n }\n }\n\n private _setupEventListeners(): void {\n this._boundStartDrag = this._handlePointerDown.bind(this);\n this._boundHandleKeyDown = this._handleKeyDown.bind(this);\n this.addEventListener('pointerdown', this._boundStartDrag);\n this.addEventListener('keydown', this._boundHandleKeyDown);\n }\n\n private _cleanup(): void {\n if (this._boundStartDrag) {\n this.removeEventListener('pointerdown', this._boundStartDrag);\n this._boundStartDrag = undefined;\n }\n if (this._boundHandleKeyDown) {\n this.removeEventListener('keydown', this._boundHandleKeyDown);\n this._boundHandleKeyDown = undefined;\n }\n if (this._boundMove) {\n window.removeEventListener('pointermove', this._boundMove);\n this._boundMove = undefined;\n }\n if (this._boundStop) {\n window.removeEventListener('pointerup', this._boundStop);\n this._boundStop = undefined;\n }\n this.removeAttribute('data-synthetic-hover');\n this.removeAttribute('data-synthetic-active');\n this._isDragging = false;\n }\n\n private get _pivot(): 'start' | 'end' | undefined {\n const panel = safeClosest(this, SELECTORS.PANEL);\n if (!panel) return undefined;\n const slot = panel.getAttribute('slot');\n if (slot === SLOTS.LEFT) return 'end';\n if (slot === SLOTS.RIGHT) return 'start';\n return undefined;\n }\n\n private _updateAriaAttributes(): void {\n if (!this._grid || !this._startNode || !this._endNode) return;\n const rectStart = this._startNode.getBoundingClientRect();\n const rectEnd = this._endNode.getBoundingClientRect();\n const isHorizontal = this.axis === 'x';\n const startSize = isHorizontal ? rectStart.width : rectStart.height;\n const endSize = isHorizontal ? rectEnd.width : rectEnd.height;\n const totalSize = startSize + endSize;\n if (totalSize > 0) {\n const percentage = Math.round((startSize / totalSize) * 100);\n this.setAttribute('aria-valuenow', percentage.toString());\n this.setAttribute('aria-valuemin', ARIA.VALUE_MIN);\n this.setAttribute('aria-valuemax', ARIA.VALUE_MAX);\n this.setAttribute('aria-valuetext', formatSplitRatio(percentage));\n }\n }\n\n private _detectDoubleTap(e: PointerEvent): boolean {\n const now = Date.now();\n const dt = now - this._lastTapTime;\n const currentPos: Position = { x: e.clientX, y: e.clientY };\n if (\n dt < DOUBLE_TAP.MAX_TIME_MS &&\n isWithinDistance(\n currentPos,\n this._lastTapPosition,\n DOUBLE_TAP.MAX_DISTANCE_PX\n )\n ) {\n triggerHapticFeedback(DOUBLE_TAP.VIBRATION_MS);\n this.resetSizes(e as MouseEvent);\n this._lastTapTime = 0;\n return true;\n }\n this._lastTapTime = now;\n this._lastTapPosition = currentPos;\n return false;\n }\n\n private _handlePointerDown = (e: PointerEvent): void => {\n if (this._detectDoubleTap(e)) return;\n e.preventDefault();\n this._isDragging = true;\n this.setSyntheticActiveState(true);\n\n const startPosition: Position = { x: e.clientX, y: e.clientY };\n const startValue = this.axis === 'x' ? e.clientX : e.clientY;\n\n this.dispatchEvent(\n createCustomEvent(EVENTS.RESIZE_START, { axis: this.axis, startPosition })\n );\n\n if (this._grid && this._startNode && this._endNode) {\n const rectStart = this._startNode.getBoundingClientRect();\n const rectEnd = this._endNode.getBoundingClientRect();\n this._startSize = this.axis === 'x' ? rectStart.width : rectStart.height;\n this._endSize = this.axis === 'x' ? rectEnd.width : rectEnd.height;\n }\n\n this._boundMove = this._createMoveHandler(startValue);\n this._boundStop = this._createStopHandler(startValue);\n window.addEventListener('pointermove', this._boundMove);\n window.addEventListener('pointerup', this._boundStop);\n };\n\n private _createMoveHandler(startValue: number): (e: PointerEvent) => void {\n return (e: PointerEvent) => {\n if (!this._isDragging) return;\n const currentValue = this.axis === 'x' ? e.clientX : e.clientY;\n const delta = currentValue - startValue;\n const position: Position = { x: e.clientX, y: e.clientY };\n this.dispatchEvent(\n createCustomEvent(EVENTS.RESIZE_DRAG, {\n axis: this.axis,\n delta,\n position,\n })\n );\n if (this._grid && this._startNode && this._endNode) {\n this._updateGridSizes(delta);\n }\n };\n }\n\n private _createStopHandler(startValue: number): (e: PointerEvent) => void {\n return (e: PointerEvent) => {\n const currentValue = this.axis === 'x' ? e.clientX : e.clientY;\n const delta = currentValue - startValue;\n const position: Position = { x: e.clientX, y: e.clientY };\n this.dispatchEvent(\n createCustomEvent(EVENTS.RESIZE_END, {\n axis: this.axis,\n delta,\n position,\n })\n );\n if (this._boundMove) {\n window.removeEventListener('pointermove', this._boundMove);\n this._boundMove = undefined;\n }\n if (this._boundStop) {\n window.removeEventListener('pointerup', this._boundStop);\n this._boundStop = undefined;\n }\n if (this._grid) this._grid.style.removeProperty('transition');\n this._isDragging = false;\n this.setSyntheticActiveState(false);\n };\n }\n\n private _updateGridSizes(delta: number): void {\n if (!this._grid) return;\n this._grid.style.transition = 'none';\n const start = this._startSize + delta;\n const end = this._endSize - delta;\n const total = start + end || 1;\n this._grid.style.setProperty(\n '--start-element-size',\n `${calculateFlexRatio(start, total)}fr`\n );\n this._grid.style.setProperty(\n '--end-element-size',\n `${calculateFlexRatio(end, total)}fr`\n );\n this._updateAriaAttributes();\n }\n\n private _handleKeyDown = (e: KeyboardEvent): void => {\n const navKeys = [\n 'ArrowUp',\n 'ArrowDown',\n 'ArrowLeft',\n 'ArrowRight',\n 'Home',\n 'End',\n 'PageUp',\n 'PageDown',\n ];\n if (!navKeys.includes(e.key)) return;\n e.preventDefault();\n e.stopPropagation();\n\n const step = e.shiftKey ? KEYBOARD.LARGE_STEP_PX : KEYBOARD.DEFAULT_STEP_PX;\n const isHorizontal = this.axis === 'x';\n let delta = 0;\n\n if (e.key === 'ArrowUp' && !isHorizontal) delta = -step;\n else if (e.key === 'ArrowDown' && !isHorizontal) delta = step;\n else if (e.key === 'ArrowLeft' && isHorizontal) delta = -step;\n else if (e.key === 'ArrowRight' && isHorizontal) delta = step;\n else if (e.key === 'Home' && this._grid && this._startNode) {\n const rect = this._startNode.getBoundingClientRect();\n delta = isHorizontal ? -rect.width : -rect.height;\n } else if (e.key === 'End' && this._grid && this._endNode) {\n const rect = this._endNode.getBoundingClientRect();\n delta = isHorizontal ? rect.width : rect.height;\n }\n\n if (delta !== 0) this._handleKeyboardResize(delta);\n };\n\n private _handleKeyboardResize(delta: number): void {\n const position: Position = { x: 0, y: 0 };\n this.dispatchEvent(\n createCustomEvent(EVENTS.RESIZE_START, {\n axis: this.axis,\n startPosition: position,\n })\n );\n if (this._grid && this._startNode && this._endNode) {\n const rectStart = this._startNode.getBoundingClientRect();\n const rectEnd = this._endNode.getBoundingClientRect();\n const isHorizontal = this.axis === 'x';\n this._startSize = isHorizontal ? rectStart.width : rectStart.height;\n this._endSize = isHorizontal ? rectEnd.width : rectEnd.height;\n const start = this._startSize + delta;\n const end = this._endSize - delta;\n const total = start + end || 1;\n this._grid.style.setProperty(\n '--start-element-size',\n `${calculateFlexRatio(start, total)}fr`\n );\n this._grid.style.setProperty(\n '--end-element-size',\n `${calculateFlexRatio(end, total)}fr`\n );\n this._updateAriaAttributes();\n }\n this.dispatchEvent(\n createCustomEvent(EVENTS.RESIZE_DRAG, {\n axis: this.axis,\n delta,\n position,\n })\n );\n this.dispatchEvent(\n createCustomEvent(EVENTS.RESIZE_END, { axis: this.axis, delta, position })\n );\n }\n\n render() {\n return html`\n <div class=\"handle-content\">\n <span class=\"sr-only\">\n Use arrow keys to resize, hold Shift for larger steps. Double-click to\n reset.\n </span>\n <div>\n ${this._pivot === 'start'\n ? html`<slot name=\"${SLOTS.PIVOT}\"></slot>`\n : ''}\n </div>\n <div class=\"icon-container\" part=\"icon-container\">\n <slot name=\"${SLOTS.ICON}\"></slot>\n </div>\n <div>\n ${this._pivot === 'end'\n ? html`<slot name=\"${SLOTS.PIVOT}\"></slot>`\n : ''}\n </div>\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'cds-custom-resizer-handle': CDSResizerHandle;\n }\n}\n\nexport default CDSResizerHandle;\n"],"mappings":"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"}
@@ -0,0 +1,14 @@
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 { css } from "lit";
9
+ //#region src/components/resizer/resizer-handle.scss?lit
10
+ var resizer_handle_default = css([".handle-content{display:flex;block-size:100%;inline-size:100%}.icon-container{display:flex;flex-grow:1;align-items:center;justify-content:center;block-size:100%}:host{display:grid;background:var(--cds-border-subtle);cursor:ns-resize;min-block-size:max(1px,var(--resizer-thickness));min-inline-size:max(1px,var(--resizer-thickness));touch-action:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}:host .icon-container{position:relative}:host .icon-container:before{position:absolute;background-color:var(--resizer-grab-color);block-size:calc(max(1px, var(--resizer-thickness)) + max(0px, var(--resizer-grab-thickness)));content:\"\";inline-size:100%;inset-inline-start:0}@media (prefers-reduced-motion:no-preference){:host(:hover),:host([data-synthetic-hover]){background-color:var(--cds-border-interactive);transition:background-color var(--cds-duration-moderate-01)}}:host(:focus){background-color:var(--cds-border-interactive);outline:none}:host(:active),:host([data-synthetic-active]){background-color:var(--cds-border-interactive)}:host(:focus:not(:focus-visible)){box-shadow:none;outline:none}:host([orientation=horizontal]),:host([slot=handle-horizontal]){cursor:ew-resize}:host([orientation=horizontal]) .icon-container,:host([slot=handle-horizontal]) .icon-container{position:relative}:host([orientation=horizontal]) .icon-container:before,:host([slot=handle-horizontal]) .icon-container:before{position:absolute;background-color:var(--resizer-grab-color);block-size:100%;content:\"\";inline-size:calc(max(1px, var(--resizer-thickness)) + max(0px, var(--resizer-grab-thickness)));inset-block-start:0;inset-inline-start:auto}:host([orientation=vertical]),:host([slot=handle-vertical]){cursor:ns-resize;min-inline-size:0}:host([orientation=vertical]) .icon-container,:host([slot=handle-vertical]) .icon-container{position:relative}:host([orientation=vertical]) .icon-container:before,:host([slot=handle-vertical]) .icon-container:before{position:absolute;background-color:var(--resizer-grab-color);block-size:calc(max(1px, var(--resizer-thickness)) + max(0px, var(--resizer-grab-thickness)));content:\"\";inline-size:100%;inset-inline-start:0}.sr-only{position:absolute;overflow:hidden;padding:0;border:0;margin:-1px;block-size:1px;clip:rect(0,0,0,0);inline-size:1px;white-space:nowrap}"]);
11
+ //#endregion
12
+ export { resizer_handle_default as default };
13
+
14
+ //# sourceMappingURL=resizer-handle.scss.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resizer-handle.scss.js","names":[],"sources":["../../../src/components/resizer/resizer-handle.scss?lit"],"sourcesContent":["/**\n * Copyright IBM Corp. 2026, 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\n.handle-content {\n display: flex;\n block-size: 100%;\n inline-size: 100%;\n}\n\n.icon-container {\n display: flex;\n flex-grow: 1;\n align-items: center;\n justify-content: center;\n block-size: 100%;\n}\n\n:host {\n display: grid;\n background: var(--cds-border-subtle);\n cursor: ns-resize;\n min-block-size: max(1px, var(--resizer-thickness));\n min-inline-size: max(1px, var(--resizer-thickness));\n touch-action: none;\n -webkit-user-select: none;\n -ms-user-select: none;\n user-select: none;\n\n .icon-container {\n position: relative;\n\n &::before {\n position: absolute;\n background-color: var(--resizer-grab-color);\n block-size: calc(\n max(1px, var(--resizer-thickness)) +\n max(0px, var(--resizer-grab-thickness))\n );\n content: '';\n inline-size: 100%;\n inset-inline-start: 0;\n }\n }\n}\n\n:host(:hover),\n:host([data-synthetic-hover]) {\n @media (prefers-reduced-motion: no-preference) {\n background-color: var(--cds-border-interactive);\n transition: background-color var(--cds-duration-moderate-01);\n }\n}\n\n:host(:focus) {\n background-color: var(--cds-border-interactive);\n outline: none;\n}\n\n:host(:active),\n:host([data-synthetic-active]) {\n background-color: var(--cds-border-interactive);\n}\n\n:host(:focus:not(:focus-visible)) {\n box-shadow: none;\n outline: none;\n}\n\n:host([slot='handle-horizontal']),\n:host([orientation='horizontal']) {\n cursor: ew-resize;\n\n .icon-container {\n position: relative;\n\n &::before {\n position: absolute;\n background-color: var(--resizer-grab-color);\n block-size: 100%;\n content: '';\n inline-size: calc(\n max(1px, var(--resizer-thickness)) +\n max(0px, var(--resizer-grab-thickness))\n );\n inset-block-start: 0;\n inset-inline-start: auto;\n }\n }\n}\n\n:host([slot='handle-vertical']),\n:host([orientation='vertical']) {\n cursor: ns-resize;\n min-inline-size: 0;\n\n .icon-container {\n position: relative;\n\n &::before {\n position: absolute;\n background-color: var(--resizer-grab-color);\n block-size: calc(\n max(1px, var(--resizer-thickness)) +\n max(0px, var(--resizer-grab-thickness))\n );\n content: '';\n inline-size: 100%;\n inset-inline-start: 0;\n }\n }\n}\n\n.sr-only {\n position: absolute;\n overflow: hidden;\n padding: 0;\n border: 0;\n margin: -1px;\n block-size: 1px;\n clip: rect(0, 0, 0, 0);\n inline-size: 1px;\n white-space: nowrap;\n}\n"],"mappings":""}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Copyright IBM Corp. 2026, 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
+ /**
9
+ * Resizer panel component for resizable content areas.
10
+ * @element cds-custom-resizer-panel
11
+ */
12
+ declare class CDSResizerPanel extends LitElement {
13
+ static styles: any;
14
+ render(): import("lit-html").TemplateResult<1>;
15
+ }
16
+ declare global {
17
+ interface HTMLElementTagNameMap {
18
+ 'cds-custom-resizer-panel': CDSResizerPanel;
19
+ }
20
+ }
21
+ export default CDSResizerPanel;
22
+ //# sourceMappingURL=resizer-panel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resizer-panel.d.ts","sourceRoot":"","sources":["../../../src/components/resizer/resizer-panel.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,UAAU,EAAQ,MAAM,KAAK,CAAC;AAKvC;;;GAGG;AACH,cACM,eAAgB,SAAQ,UAAU;IACtC,MAAM,CAAC,MAAM,MAAU;IAEvB,MAAM;CAGP;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,mBAAmB,EAAE,eAAe,CAAC;KACtC;CACF;AAED,eAAe,eAAe,CAAC"}
@@ -0,0 +1,37 @@
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 { carbonElement } from "../../globals/decorators/carbon-element.js";
10
+ import __decorate from "../../_virtual/_@oxc-project_runtime@0.139.0/helpers/esm/decorate.js";
11
+ import resizer_panel_default$1 from "./resizer-panel.scss.js";
12
+ import { LitElement, html } from "lit";
13
+ //#region src/components/resizer/resizer-panel.ts
14
+ /**
15
+ * Copyright IBM Corp. 2026, 2026
16
+ *
17
+ * This source code is licensed under the Apache-2.0 license found in the
18
+ * LICENSE file in the root directory of this source tree.
19
+ */
20
+ /**
21
+ * Resizer panel component for resizable content areas.
22
+ * @element cds-custom-resizer-panel
23
+ */
24
+ let CDSResizerPanel = class CDSResizerPanel extends LitElement {
25
+ static {
26
+ this.styles = resizer_panel_default$1;
27
+ }
28
+ render() {
29
+ return html`<slot></slot>`;
30
+ }
31
+ };
32
+ CDSResizerPanel = __decorate([carbonElement(`cds-custom-resizer-panel`)], CDSResizerPanel);
33
+ var resizer_panel_default = CDSResizerPanel;
34
+ //#endregion
35
+ export { resizer_panel_default as default };
36
+
37
+ //# sourceMappingURL=resizer-panel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resizer-panel.js","names":["styles","customElement"],"sources":["../../../src/components/resizer/resizer-panel.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2026, 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 { carbonElement as customElement } from '../../globals/decorators/carbon-element';\nimport { prefix } from '../../globals/settings';\nimport styles from './resizer-panel.scss?lit';\n\n/**\n * Resizer panel component for resizable content areas.\n * @element cds-custom-resizer-panel\n */\n@customElement(`${prefix}-resizer-panel`)\nclass CDSResizerPanel extends LitElement {\n static styles = styles;\n\n render() {\n return html`<slot></slot>`;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'cds-custom-resizer-panel': CDSResizerPanel;\n }\n}\n\nexport default CDSResizerPanel;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAgBA,IAAA,kBAAA,MACM,wBAAwB,WAAW;;gBACvBA;;CAEhB,SAAS;EACP,OAAO,IAAI;CACb;AACF;8BAPCC,cAAc,mBAAyB,CAAA,GAAA,eAAA;AAexC,IAAA,wBAAe"}
@@ -0,0 +1,14 @@
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 { css } from "lit";
9
+ //#region src/components/resizer/resizer-panel.scss?lit
10
+ var resizer_panel_default = css([":host{overflow:hidden}"]);
11
+ //#endregion
12
+ export { resizer_panel_default as default };
13
+
14
+ //# sourceMappingURL=resizer-panel.scss.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resizer-panel.scss.js","names":[],"sources":["../../../src/components/resizer/resizer-panel.scss?lit"],"sourcesContent":["/**\n * Copyright IBM Corp. 2026, 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\n:host {\n overflow: hidden;\n}\n"],"mappings":""}