@carbon/ibm-products-web-components 0.37.0 → 0.38.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 (275) hide show
  1. package/custom-elements.json +957 -4843
  2. package/es/components/about-modal/about-modal.d.ts +0 -350
  3. package/es/components/about-modal/about-modal.d.ts.map +1 -1
  4. package/es/components/about-modal/about-modal.scss.js +1 -1
  5. package/es/components/about-modal/about-modal.scss.js.map +1 -1
  6. package/es/components/coachmark/coachmark-beacon/coachmark-beacon.d.ts +0 -350
  7. package/es/components/coachmark/coachmark-beacon/coachmark-beacon.d.ts.map +1 -1
  8. package/es/components/coachmark/coachmark-body.d.ts +0 -350
  9. package/es/components/coachmark/coachmark-body.d.ts.map +1 -1
  10. package/es/components/coachmark/coachmark-header.d.ts +0 -350
  11. package/es/components/coachmark/coachmark-header.d.ts.map +1 -1
  12. package/es/components/coachmark/coachmark-header.js +11 -2
  13. package/es/components/coachmark/coachmark-header.js.map +1 -1
  14. package/es/components/coachmark/coachmark-tagline/coachmark-tagline.d.ts +0 -350
  15. package/es/components/coachmark/coachmark-tagline/coachmark-tagline.d.ts.map +1 -1
  16. package/es/components/coachmark/coachmark-tagline/coachmark-tagline.js.map +1 -1
  17. package/es/components/coachmark/coachmark.d.ts +7 -350
  18. package/es/components/coachmark/coachmark.d.ts.map +1 -1
  19. package/es/components/coachmark/coachmark.js +10 -0
  20. package/es/components/coachmark/coachmark.js.map +1 -1
  21. package/es/components/guide-banner/guide-banner-element.d.ts +0 -350
  22. package/es/components/guide-banner/guide-banner-element.d.ts.map +1 -1
  23. package/es/components/guide-banner/guide-banner.d.ts +0 -350
  24. package/es/components/guide-banner/guide-banner.d.ts.map +1 -1
  25. package/es/components/interstitial-screen/interstitial-screen-body-item.d.ts +0 -350
  26. package/es/components/interstitial-screen/interstitial-screen-body-item.d.ts.map +1 -1
  27. package/es/components/interstitial-screen/interstitial-screen-body-item.scss.js +1 -1
  28. package/es/components/interstitial-screen/interstitial-screen-body-item.scss.js.map +1 -1
  29. package/es/components/interstitial-screen/interstitial-screen-body.d.ts +0 -350
  30. package/es/components/interstitial-screen/interstitial-screen-body.d.ts.map +1 -1
  31. package/es/components/interstitial-screen/interstitial-screen-body.scss.js +1 -1
  32. package/es/components/interstitial-screen/interstitial-screen-body.scss.js.map +1 -1
  33. package/es/components/interstitial-screen/interstitial-screen-footer.d.ts +0 -350
  34. package/es/components/interstitial-screen/interstitial-screen-footer.d.ts.map +1 -1
  35. package/es/components/interstitial-screen/interstitial-screen-header.d.ts +0 -350
  36. package/es/components/interstitial-screen/interstitial-screen-header.d.ts.map +1 -1
  37. package/es/components/interstitial-screen/interstitial-screen.d.ts +0 -350
  38. package/es/components/interstitial-screen/interstitial-screen.d.ts.map +1 -1
  39. package/es/components/notification-panel/notification-footer.d.ts +0 -350
  40. package/es/components/notification-panel/notification-footer.d.ts.map +1 -1
  41. package/es/components/notification-panel/notification-panel.d.ts +0 -350
  42. package/es/components/notification-panel/notification-panel.d.ts.map +1 -1
  43. package/es/components/notification-panel/notification.d.ts +0 -350
  44. package/es/components/notification-panel/notification.d.ts.map +1 -1
  45. package/es/components/options-tile/options-tile.d.ts +0 -350
  46. package/es/components/options-tile/options-tile.d.ts.map +1 -1
  47. package/es/components/page-header/_story-assets/overflowHandler.d.ts +99 -0
  48. package/es/components/page-header/_story-assets/overflowHandler.d.ts.map +1 -0
  49. package/es/components/page-header/_story-assets/overflowHandler.js +122 -0
  50. package/es/components/page-header/_story-assets/overflowHandler.js.map +1 -0
  51. package/es/components/page-header/index.d.ts +4 -1
  52. package/es/components/page-header/index.d.ts.map +1 -1
  53. package/es/components/page-header/index.js +3 -0
  54. package/es/components/page-header/page-header-actions-set/index.d.ts +10 -0
  55. package/es/components/page-header/page-header-actions-set/index.d.ts.map +1 -0
  56. package/es/components/page-header/page-header-actions-set/index.js +8 -0
  57. package/es/components/page-header/page-header-actions-set/page-header-actions-set.d.ts +50 -0
  58. package/es/components/page-header/page-header-actions-set/page-header-actions-set.d.ts.map +1 -0
  59. package/es/components/page-header/page-header-actions-set/page-header-actions-set.js +162 -0
  60. package/es/components/page-header/page-header-actions-set/page-header-actions-set.js.map +1 -0
  61. package/es/components/page-header/page-header-actions-set/page-header-actions-set.scss.js +15 -0
  62. package/es/components/page-header/page-header-actions-set/page-header-actions-set.scss.js.map +1 -0
  63. package/es/components/page-header/page-header-breadcrumbs-set/index.d.ts +10 -0
  64. package/es/components/page-header/page-header-breadcrumbs-set/index.d.ts.map +1 -0
  65. package/es/components/page-header/page-header-breadcrumbs-set/index.js +8 -0
  66. package/es/components/page-header/page-header-breadcrumbs-set/page-header-breadcrumbs-set.d.ts +48 -0
  67. package/es/components/page-header/page-header-breadcrumbs-set/page-header-breadcrumbs-set.d.ts.map +1 -0
  68. package/es/components/page-header/page-header-breadcrumbs-set/page-header-breadcrumbs-set.js +136 -0
  69. package/es/components/page-header/page-header-breadcrumbs-set/page-header-breadcrumbs-set.js.map +1 -0
  70. package/es/components/page-header/page-header-breadcrumbs-set/page-header-breadcrumbs-set.scss.js +15 -0
  71. package/es/components/page-header/page-header-breadcrumbs-set/page-header-breadcrumbs-set.scss.js.map +1 -0
  72. package/es/components/page-header/page-header-tags-set/index.d.ts +10 -0
  73. package/es/components/page-header/page-header-tags-set/index.d.ts.map +1 -0
  74. package/es/components/page-header/page-header-tags-set/index.js +8 -0
  75. package/es/components/page-header/page-header-tags-set/page-header-tags-set.d.ts +41 -0
  76. package/es/components/page-header/page-header-tags-set/page-header-tags-set.d.ts.map +1 -0
  77. package/es/components/page-header/page-header-tags-set/page-header-tags-set.js +210 -0
  78. package/es/components/page-header/page-header-tags-set/page-header-tags-set.js.map +1 -0
  79. package/es/components/page-header/page-header-tags-set/page-header-tags-set.scss.js +15 -0
  80. package/es/components/page-header/page-header-tags-set/page-header-tags-set.scss.js.map +1 -0
  81. package/es/components/page-header/page-header-tags-set/utils.d.ts +24 -0
  82. package/es/components/page-header/page-header-tags-set/utils.d.ts.map +1 -0
  83. package/es/components/page-header/page-header-tags-set/utils.js +42 -0
  84. package/es/components/page-header/page-header-tags-set/utils.js.map +1 -0
  85. package/es/components/page-header/page-header.scss.js +1 -1
  86. package/es/components/page-header/page-header.scss.js.map +1 -1
  87. package/es/components/page-header/utils.d.ts +9 -1
  88. package/es/components/page-header/utils.d.ts.map +1 -1
  89. package/es/components/page-header/utils.js +4 -2
  90. package/es/components/page-header/utils.js.map +1 -1
  91. package/es/components/side-panel/side-panel.d.ts +0 -350
  92. package/es/components/side-panel/side-panel.d.ts.map +1 -1
  93. package/es/components/tearsheet/tearsheet.d.ts +0 -370
  94. package/es/components/tearsheet/tearsheet.d.ts.map +1 -1
  95. package/es/components/tearsheet/tearsheet.scss.js +1 -1
  96. package/es/components/tearsheet-preview/index.d.ts +1 -0
  97. package/es/components/tearsheet-preview/index.d.ts.map +1 -1
  98. package/es/components/tearsheet-preview/index.js +1 -0
  99. package/es/components/tearsheet-preview/tearsheet-body.d.ts +0 -350
  100. package/es/components/tearsheet-preview/tearsheet-body.d.ts.map +1 -1
  101. package/es/components/tearsheet-preview/tearsheet-footer.d.ts +17 -351
  102. package/es/components/tearsheet-preview/tearsheet-footer.d.ts.map +1 -1
  103. package/es/components/tearsheet-preview/tearsheet-footer.js +31 -3
  104. package/es/components/tearsheet-preview/tearsheet-footer.js.map +1 -1
  105. package/es/components/tearsheet-preview/tearsheet-header-content.d.ts +0 -350
  106. package/es/components/tearsheet-preview/tearsheet-header-content.d.ts.map +1 -1
  107. package/es/components/tearsheet-preview/tearsheet-header-content.scss.js +1 -1
  108. package/es/components/tearsheet-preview/tearsheet-header-content.scss.js.map +1 -1
  109. package/es/components/tearsheet-preview/tearsheet-header.d.ts +0 -350
  110. package/es/components/tearsheet-preview/tearsheet-header.d.ts.map +1 -1
  111. package/es/components/tearsheet-preview/tearsheet-header.scss.js +1 -1
  112. package/es/components/tearsheet-preview/tearsheet-header.scss.js.map +1 -1
  113. package/es/components/tearsheet-preview/tearsheet-influencer.d.ts +0 -350
  114. package/es/components/tearsheet-preview/tearsheet-influencer.d.ts.map +1 -1
  115. package/es/components/tearsheet-preview/tearsheet-navigation-bar.d.ts +0 -350
  116. package/es/components/tearsheet-preview/tearsheet-navigation-bar.d.ts.map +1 -1
  117. package/es/components/tearsheet-preview/tearsheet-navigation-bar.scss.js +1 -1
  118. package/es/components/tearsheet-preview/tearsheet-stack.d.ts +42 -0
  119. package/es/components/tearsheet-preview/tearsheet-stack.d.ts.map +1 -0
  120. package/es/components/tearsheet-preview/tearsheet-stack.js +83 -0
  121. package/es/components/tearsheet-preview/tearsheet-stack.js.map +1 -0
  122. package/es/components/tearsheet-preview/tearsheet-summary-content.d.ts +0 -350
  123. package/es/components/tearsheet-preview/tearsheet-summary-content.d.ts.map +1 -1
  124. package/es/components/tearsheet-preview/tearsheet.d.ts +16 -350
  125. package/es/components/tearsheet-preview/tearsheet.d.ts.map +1 -1
  126. package/es/components/tearsheet-preview/tearsheet.js +32 -3
  127. package/es/components/tearsheet-preview/tearsheet.js.map +1 -1
  128. package/es/components/tearsheet-preview/tearsheet.scss.js +1 -1
  129. package/es/components/tearsheet-preview/tearsheet.scss.js.map +1 -1
  130. package/es/components/user-avatar/user-avatar.d.ts +0 -350
  131. package/es/components/user-avatar/user-avatar.d.ts.map +1 -1
  132. package/es/package.js +1 -1
  133. package/es-custom/components/about-modal/about-modal.scss.js +1 -1
  134. package/es-custom/components/about-modal/about-modal.scss.js.map +1 -1
  135. package/es-custom/components/coachmark/coachmark-header.js +11 -2
  136. package/es-custom/components/coachmark/coachmark-header.js.map +1 -1
  137. package/es-custom/components/coachmark/coachmark-tagline/coachmark-tagline.js.map +1 -1
  138. package/es-custom/components/coachmark/coachmark.js +10 -0
  139. package/es-custom/components/coachmark/coachmark.js.map +1 -1
  140. package/es-custom/components/interstitial-screen/interstitial-screen-body-item.scss.js +1 -1
  141. package/es-custom/components/interstitial-screen/interstitial-screen-body-item.scss.js.map +1 -1
  142. package/es-custom/components/interstitial-screen/interstitial-screen-body.scss.js +1 -1
  143. package/es-custom/components/interstitial-screen/interstitial-screen-body.scss.js.map +1 -1
  144. package/es-custom/components/page-header/_story-assets/overflowHandler.js +122 -0
  145. package/es-custom/components/page-header/_story-assets/overflowHandler.js.map +1 -0
  146. package/es-custom/components/page-header/index.js +3 -0
  147. package/es-custom/components/page-header/page-header-actions-set/index.js +8 -0
  148. package/es-custom/components/page-header/page-header-actions-set/page-header-actions-set.js +162 -0
  149. package/es-custom/components/page-header/page-header-actions-set/page-header-actions-set.js.map +1 -0
  150. package/es-custom/components/page-header/page-header-actions-set/page-header-actions-set.scss.js +15 -0
  151. package/es-custom/components/page-header/page-header-actions-set/page-header-actions-set.scss.js.map +1 -0
  152. package/es-custom/components/page-header/page-header-breadcrumbs-set/index.js +8 -0
  153. package/es-custom/components/page-header/page-header-breadcrumbs-set/page-header-breadcrumbs-set.js +136 -0
  154. package/es-custom/components/page-header/page-header-breadcrumbs-set/page-header-breadcrumbs-set.js.map +1 -0
  155. package/es-custom/components/page-header/page-header-breadcrumbs-set/page-header-breadcrumbs-set.scss.js +15 -0
  156. package/es-custom/components/page-header/page-header-breadcrumbs-set/page-header-breadcrumbs-set.scss.js.map +1 -0
  157. package/es-custom/components/page-header/page-header-tags-set/index.js +8 -0
  158. package/es-custom/components/page-header/page-header-tags-set/page-header-tags-set.js +210 -0
  159. package/es-custom/components/page-header/page-header-tags-set/page-header-tags-set.js.map +1 -0
  160. package/es-custom/components/page-header/page-header-tags-set/page-header-tags-set.scss.js +15 -0
  161. package/es-custom/components/page-header/page-header-tags-set/page-header-tags-set.scss.js.map +1 -0
  162. package/es-custom/components/page-header/page-header-tags-set/utils.js +42 -0
  163. package/es-custom/components/page-header/page-header-tags-set/utils.js.map +1 -0
  164. package/es-custom/components/page-header/page-header.scss.js +1 -1
  165. package/es-custom/components/page-header/page-header.scss.js.map +1 -1
  166. package/es-custom/components/page-header/utils.js +4 -2
  167. package/es-custom/components/page-header/utils.js.map +1 -1
  168. package/es-custom/components/tearsheet/tearsheet.scss.js +1 -1
  169. package/es-custom/components/tearsheet-preview/index.js +1 -0
  170. package/es-custom/components/tearsheet-preview/tearsheet-footer.js +31 -3
  171. package/es-custom/components/tearsheet-preview/tearsheet-footer.js.map +1 -1
  172. package/es-custom/components/tearsheet-preview/tearsheet-header-content.scss.js +1 -1
  173. package/es-custom/components/tearsheet-preview/tearsheet-header-content.scss.js.map +1 -1
  174. package/es-custom/components/tearsheet-preview/tearsheet-header.scss.js +1 -1
  175. package/es-custom/components/tearsheet-preview/tearsheet-header.scss.js.map +1 -1
  176. package/es-custom/components/tearsheet-preview/tearsheet-navigation-bar.scss.js +1 -1
  177. package/es-custom/components/tearsheet-preview/tearsheet-stack.js +83 -0
  178. package/es-custom/components/tearsheet-preview/tearsheet-stack.js.map +1 -0
  179. package/es-custom/components/tearsheet-preview/tearsheet.js +32 -3
  180. package/es-custom/components/tearsheet-preview/tearsheet.js.map +1 -1
  181. package/es-custom/components/tearsheet-preview/tearsheet.scss.js +1 -1
  182. package/es-custom/components/tearsheet-preview/tearsheet.scss.js.map +1 -1
  183. package/es-custom/package.js +1 -1
  184. package/lib/components/about-modal/about-modal.d.ts +0 -350
  185. package/lib/components/about-modal/about-modal.d.ts.map +1 -1
  186. package/lib/components/coachmark/coachmark-beacon/coachmark-beacon.d.ts +0 -350
  187. package/lib/components/coachmark/coachmark-beacon/coachmark-beacon.d.ts.map +1 -1
  188. package/lib/components/coachmark/coachmark-body.d.ts +0 -350
  189. package/lib/components/coachmark/coachmark-body.d.ts.map +1 -1
  190. package/lib/components/coachmark/coachmark-header.d.ts +0 -350
  191. package/lib/components/coachmark/coachmark-header.d.ts.map +1 -1
  192. package/lib/components/coachmark/coachmark-tagline/coachmark-tagline.d.ts +0 -350
  193. package/lib/components/coachmark/coachmark-tagline/coachmark-tagline.d.ts.map +1 -1
  194. package/lib/components/coachmark/coachmark.d.ts +7 -350
  195. package/lib/components/coachmark/coachmark.d.ts.map +1 -1
  196. package/lib/components/guide-banner/guide-banner-element.d.ts +0 -350
  197. package/lib/components/guide-banner/guide-banner-element.d.ts.map +1 -1
  198. package/lib/components/guide-banner/guide-banner.d.ts +0 -350
  199. package/lib/components/guide-banner/guide-banner.d.ts.map +1 -1
  200. package/lib/components/interstitial-screen/interstitial-screen-body-item.d.ts +0 -350
  201. package/lib/components/interstitial-screen/interstitial-screen-body-item.d.ts.map +1 -1
  202. package/lib/components/interstitial-screen/interstitial-screen-body.d.ts +0 -350
  203. package/lib/components/interstitial-screen/interstitial-screen-body.d.ts.map +1 -1
  204. package/lib/components/interstitial-screen/interstitial-screen-footer.d.ts +0 -350
  205. package/lib/components/interstitial-screen/interstitial-screen-footer.d.ts.map +1 -1
  206. package/lib/components/interstitial-screen/interstitial-screen-header.d.ts +0 -350
  207. package/lib/components/interstitial-screen/interstitial-screen-header.d.ts.map +1 -1
  208. package/lib/components/interstitial-screen/interstitial-screen.d.ts +0 -350
  209. package/lib/components/interstitial-screen/interstitial-screen.d.ts.map +1 -1
  210. package/lib/components/notification-panel/notification-footer.d.ts +0 -350
  211. package/lib/components/notification-panel/notification-footer.d.ts.map +1 -1
  212. package/lib/components/notification-panel/notification-panel.d.ts +0 -350
  213. package/lib/components/notification-panel/notification-panel.d.ts.map +1 -1
  214. package/lib/components/notification-panel/notification.d.ts +0 -350
  215. package/lib/components/notification-panel/notification.d.ts.map +1 -1
  216. package/lib/components/options-tile/options-tile.d.ts +0 -350
  217. package/lib/components/options-tile/options-tile.d.ts.map +1 -1
  218. package/lib/components/page-header/_story-assets/overflowHandler.d.ts +99 -0
  219. package/lib/components/page-header/_story-assets/overflowHandler.d.ts.map +1 -0
  220. package/lib/components/page-header/index.d.ts +4 -1
  221. package/lib/components/page-header/index.d.ts.map +1 -1
  222. package/lib/components/page-header/page-header-actions-set/index.d.ts +10 -0
  223. package/lib/components/page-header/page-header-actions-set/index.d.ts.map +1 -0
  224. package/lib/components/page-header/page-header-actions-set/page-header-actions-set.d.ts +50 -0
  225. package/lib/components/page-header/page-header-actions-set/page-header-actions-set.d.ts.map +1 -0
  226. package/lib/components/page-header/page-header-breadcrumbs-set/index.d.ts +10 -0
  227. package/lib/components/page-header/page-header-breadcrumbs-set/index.d.ts.map +1 -0
  228. package/lib/components/page-header/page-header-breadcrumbs-set/page-header-breadcrumbs-set.d.ts +48 -0
  229. package/lib/components/page-header/page-header-breadcrumbs-set/page-header-breadcrumbs-set.d.ts.map +1 -0
  230. package/lib/components/page-header/page-header-tags-set/index.d.ts +10 -0
  231. package/lib/components/page-header/page-header-tags-set/index.d.ts.map +1 -0
  232. package/lib/components/page-header/page-header-tags-set/page-header-tags-set.d.ts +41 -0
  233. package/lib/components/page-header/page-header-tags-set/page-header-tags-set.d.ts.map +1 -0
  234. package/lib/components/page-header/page-header-tags-set/utils.d.ts +24 -0
  235. package/lib/components/page-header/page-header-tags-set/utils.d.ts.map +1 -0
  236. package/lib/components/page-header/utils.d.ts +9 -1
  237. package/lib/components/page-header/utils.d.ts.map +1 -1
  238. package/lib/components/side-panel/side-panel.d.ts +0 -350
  239. package/lib/components/side-panel/side-panel.d.ts.map +1 -1
  240. package/lib/components/tearsheet/tearsheet.d.ts +0 -370
  241. package/lib/components/tearsheet/tearsheet.d.ts.map +1 -1
  242. package/lib/components/tearsheet-preview/index.d.ts +1 -0
  243. package/lib/components/tearsheet-preview/index.d.ts.map +1 -1
  244. package/lib/components/tearsheet-preview/tearsheet-body.d.ts +0 -350
  245. package/lib/components/tearsheet-preview/tearsheet-body.d.ts.map +1 -1
  246. package/lib/components/tearsheet-preview/tearsheet-footer.d.ts +17 -351
  247. package/lib/components/tearsheet-preview/tearsheet-footer.d.ts.map +1 -1
  248. package/lib/components/tearsheet-preview/tearsheet-header-content.d.ts +0 -350
  249. package/lib/components/tearsheet-preview/tearsheet-header-content.d.ts.map +1 -1
  250. package/lib/components/tearsheet-preview/tearsheet-header.d.ts +0 -350
  251. package/lib/components/tearsheet-preview/tearsheet-header.d.ts.map +1 -1
  252. package/lib/components/tearsheet-preview/tearsheet-influencer.d.ts +0 -350
  253. package/lib/components/tearsheet-preview/tearsheet-influencer.d.ts.map +1 -1
  254. package/lib/components/tearsheet-preview/tearsheet-navigation-bar.d.ts +0 -350
  255. package/lib/components/tearsheet-preview/tearsheet-navigation-bar.d.ts.map +1 -1
  256. package/lib/components/tearsheet-preview/tearsheet-stack.d.ts +42 -0
  257. package/lib/components/tearsheet-preview/tearsheet-stack.d.ts.map +1 -0
  258. package/lib/components/tearsheet-preview/tearsheet-summary-content.d.ts +0 -350
  259. package/lib/components/tearsheet-preview/tearsheet-summary-content.d.ts.map +1 -1
  260. package/lib/components/tearsheet-preview/tearsheet.d.ts +16 -350
  261. package/lib/components/tearsheet-preview/tearsheet.d.ts.map +1 -1
  262. package/lib/components/user-avatar/user-avatar.d.ts +0 -350
  263. package/lib/components/user-avatar/user-avatar.d.ts.map +1 -1
  264. package/package.json +11 -11
  265. package/scss/components/about-modal/about-modal.scss +0 -2
  266. package/scss/components/interstitial-screen/interstitial-screen-body-item.scss +1 -1
  267. package/scss/components/interstitial-screen/interstitial-screen-body.scss +1 -1
  268. package/scss/components/page-header/page-header-actions-set/page-header-actions-set.scss +82 -0
  269. package/scss/components/page-header/page-header-breadcrumbs-set/page-header-breadcrumbs-set.scss +41 -0
  270. package/scss/components/page-header/page-header-tags-set/page-header-tags-set.scss +96 -0
  271. package/scss/components/page-header/page-header.scss +35 -4
  272. package/scss/components/tearsheet-preview/tearsheet-header-content.scss +10 -0
  273. package/scss/components/tearsheet-preview/tearsheet-header.scss +15 -0
  274. package/scss/components/tearsheet-preview/tearsheet.scss +1 -3
  275. package/telemetry.yml +22 -13
@@ -12,356 +12,6 @@ declare const CDSTearsheet_base: {
12
12
  _handles: Set<import("@carbon/web-components/es/globals/internal/handle").default>;
13
13
  connectedCallback(): void;
14
14
  disconnectedCallback(): void;
15
- accessKey: string;
16
- readonly accessKeyLabel: string;
17
- autocapitalize: string;
18
- autocorrect: boolean;
19
- dir: string;
20
- draggable: boolean;
21
- hidden: boolean;
22
- inert: boolean;
23
- innerText: string;
24
- lang: string;
25
- readonly offsetHeight: number;
26
- readonly offsetLeft: number;
27
- readonly offsetParent: Element | null;
28
- readonly offsetTop: number;
29
- readonly offsetWidth: number;
30
- outerText: string;
31
- popover: string | null;
32
- spellcheck: boolean;
33
- title: string;
34
- translate: boolean;
35
- writingSuggestions: string;
36
- attachInternals(): ElementInternals;
37
- click(): void;
38
- hidePopover(): void;
39
- showPopover(): void;
40
- togglePopover(options?: boolean): boolean;
41
- addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
42
- addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
43
- removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
44
- removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
45
- readonly attributes: NamedNodeMap;
46
- get classList(): DOMTokenList;
47
- set classList(value: string): any;
48
- className: string;
49
- readonly clientHeight: number;
50
- readonly clientLeft: number;
51
- readonly clientTop: number;
52
- readonly clientWidth: number;
53
- readonly currentCSSZoom: number;
54
- id: string;
55
- innerHTML: string;
56
- readonly localName: string;
57
- readonly namespaceURI: string | null;
58
- onfullscreenchange: ((this: Element, ev: Event) => any) | null;
59
- onfullscreenerror: ((this: Element, ev: Event) => any) | null;
60
- outerHTML: string;
61
- readonly ownerDocument: Document;
62
- get part(): DOMTokenList;
63
- set part(value: string): any;
64
- readonly prefix: string | null;
65
- readonly scrollHeight: number;
66
- scrollLeft: number;
67
- scrollTop: number;
68
- readonly scrollWidth: number;
69
- readonly shadowRoot: ShadowRoot | null;
70
- slot: string;
71
- readonly tagName: string;
72
- attachShadow(init: ShadowRootInit): ShadowRoot;
73
- checkVisibility(options?: CheckVisibilityOptions): boolean;
74
- closest<K extends keyof HTMLElementTagNameMap>(selector: K): HTMLElementTagNameMap[K] | null;
75
- closest<K extends keyof SVGElementTagNameMap>(selector: K): SVGElementTagNameMap[K] | null;
76
- closest<K extends keyof MathMLElementTagNameMap>(selector: K): MathMLElementTagNameMap[K] | null;
77
- closest<E extends Element = Element>(selectors: string): E | null;
78
- computedStyleMap(): StylePropertyMapReadOnly;
79
- getAttribute(qualifiedName: string): string | null;
80
- getAttributeNS(namespace: string | null, localName: string): string | null;
81
- getAttributeNames(): string[];
82
- getAttributeNode(qualifiedName: string): Attr | null;
83
- getAttributeNodeNS(namespace: string | null, localName: string): Attr | null;
84
- getBoundingClientRect(): DOMRect;
85
- getClientRects(): DOMRectList;
86
- getElementsByClassName(classNames: string): HTMLCollectionOf<Element>;
87
- getElementsByTagName<K extends keyof HTMLElementTagNameMap>(qualifiedName: K): HTMLCollectionOf<HTMLElementTagNameMap[K]>;
88
- getElementsByTagName<K extends keyof SVGElementTagNameMap>(qualifiedName: K): HTMLCollectionOf<SVGElementTagNameMap[K]>;
89
- getElementsByTagName<K extends keyof MathMLElementTagNameMap>(qualifiedName: K): HTMLCollectionOf<MathMLElementTagNameMap[K]>;
90
- getElementsByTagName<K extends keyof HTMLElementDeprecatedTagNameMap>(qualifiedName: K): HTMLCollectionOf<HTMLElementDeprecatedTagNameMap[K]>;
91
- getElementsByTagName(qualifiedName: string): HTMLCollectionOf<Element>;
92
- getElementsByTagNameNS(namespaceURI: "http://www.w3.org/1999/xhtml", localName: string): HTMLCollectionOf<HTMLElement>;
93
- getElementsByTagNameNS(namespaceURI: "http://www.w3.org/2000/svg", localName: string): HTMLCollectionOf<SVGElement>;
94
- getElementsByTagNameNS(namespaceURI: "http://www.w3.org/1998/Math/MathML", localName: string): HTMLCollectionOf<MathMLElement>;
95
- getElementsByTagNameNS(namespace: string | null, localName: string): HTMLCollectionOf<Element>;
96
- getHTML(options?: GetHTMLOptions): string;
97
- hasAttribute(qualifiedName: string): boolean;
98
- hasAttributeNS(namespace: string | null, localName: string): boolean;
99
- hasAttributes(): boolean;
100
- hasPointerCapture(pointerId: number): boolean;
101
- insertAdjacentElement(where: InsertPosition, element: Element): Element | null;
102
- insertAdjacentHTML(position: InsertPosition, string: string): void;
103
- insertAdjacentText(where: InsertPosition, data: string): void;
104
- matches(selectors: string): boolean;
105
- releasePointerCapture(pointerId: number): void;
106
- removeAttribute(qualifiedName: string): void;
107
- removeAttributeNS(namespace: string | null, localName: string): void;
108
- removeAttributeNode(attr: Attr): Attr;
109
- requestFullscreen(options?: FullscreenOptions): Promise<void>;
110
- requestPointerLock(options?: PointerLockOptions): Promise<void>;
111
- scroll(options?: ScrollToOptions): void;
112
- scroll(x: number, y: number): void;
113
- scrollBy(options?: ScrollToOptions): void;
114
- scrollBy(x: number, y: number): void;
115
- scrollIntoView(arg?: boolean | ScrollIntoViewOptions): void;
116
- scrollTo(options?: ScrollToOptions): void;
117
- scrollTo(x: number, y: number): void;
118
- setAttribute(qualifiedName: string, value: string): void;
119
- setAttributeNS(namespace: string | null, qualifiedName: string, value: string): void;
120
- setAttributeNode(attr: Attr): Attr | null;
121
- setAttributeNodeNS(attr: Attr): Attr | null;
122
- setHTMLUnsafe(html: string): void;
123
- setPointerCapture(pointerId: number): void;
124
- toggleAttribute(qualifiedName: string, force?: boolean): boolean;
125
- webkitMatchesSelector(selectors: string): boolean;
126
- get textContent(): string;
127
- set textContent(value: string | null): any;
128
- readonly baseURI: string;
129
- readonly childNodes: NodeListOf<ChildNode>;
130
- readonly firstChild: ChildNode | null;
131
- readonly isConnected: boolean;
132
- readonly lastChild: ChildNode | null;
133
- readonly nextSibling: ChildNode | null;
134
- readonly nodeName: string;
135
- readonly nodeType: number;
136
- nodeValue: string | null;
137
- readonly parentElement: HTMLElement | null;
138
- readonly parentNode: ParentNode | null;
139
- readonly previousSibling: ChildNode | null;
140
- appendChild<T_1 extends Node>(node: T_1): T_1;
141
- cloneNode(subtree?: boolean): Node;
142
- compareDocumentPosition(other: Node): number;
143
- contains(other: Node | null): boolean;
144
- getRootNode(options?: GetRootNodeOptions): Node;
145
- hasChildNodes(): boolean;
146
- insertBefore<T_1 extends Node>(node: T_1, child: Node | null): T_1;
147
- isDefaultNamespace(namespace: string | null): boolean;
148
- isEqualNode(otherNode: Node | null): boolean;
149
- isSameNode(otherNode: Node | null): boolean;
150
- lookupNamespaceURI(prefix: string | null): string | null;
151
- lookupPrefix(namespace: string | null): string | null;
152
- normalize(): void;
153
- removeChild<T_1 extends Node>(child: T_1): T_1;
154
- replaceChild<T_1 extends Node>(node: Node, child: T_1): T_1;
155
- readonly ELEMENT_NODE: 1;
156
- readonly ATTRIBUTE_NODE: 2;
157
- readonly TEXT_NODE: 3;
158
- readonly CDATA_SECTION_NODE: 4;
159
- readonly ENTITY_REFERENCE_NODE: 5;
160
- readonly ENTITY_NODE: 6;
161
- readonly PROCESSING_INSTRUCTION_NODE: 7;
162
- readonly COMMENT_NODE: 8;
163
- readonly DOCUMENT_NODE: 9;
164
- readonly DOCUMENT_TYPE_NODE: 10;
165
- readonly DOCUMENT_FRAGMENT_NODE: 11;
166
- readonly NOTATION_NODE: 12;
167
- readonly DOCUMENT_POSITION_DISCONNECTED: 1;
168
- readonly DOCUMENT_POSITION_PRECEDING: 2;
169
- readonly DOCUMENT_POSITION_FOLLOWING: 4;
170
- readonly DOCUMENT_POSITION_CONTAINS: 8;
171
- readonly DOCUMENT_POSITION_CONTAINED_BY: 16;
172
- readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: 32;
173
- dispatchEvent(event: Event): boolean;
174
- ariaActiveDescendantElement: Element | null;
175
- ariaAtomic: string | null;
176
- ariaAutoComplete: string | null;
177
- ariaBrailleLabel: string | null;
178
- ariaBrailleRoleDescription: string | null;
179
- ariaBusy: string | null;
180
- ariaChecked: string | null;
181
- ariaColCount: string | null;
182
- ariaColIndex: string | null;
183
- ariaColIndexText: string | null;
184
- ariaColSpan: string | null;
185
- ariaControlsElements: ReadonlyArray<Element> | null;
186
- ariaCurrent: string | null;
187
- ariaDescribedByElements: ReadonlyArray<Element> | null;
188
- ariaDescription: string | null;
189
- ariaDetailsElements: ReadonlyArray<Element> | null;
190
- ariaDisabled: string | null;
191
- ariaErrorMessageElements: ReadonlyArray<Element> | null;
192
- ariaExpanded: string | null;
193
- ariaFlowToElements: ReadonlyArray<Element> | null;
194
- ariaHasPopup: string | null;
195
- ariaHidden: string | null;
196
- ariaInvalid: string | null;
197
- ariaKeyShortcuts: string | null;
198
- ariaLabel: string | null;
199
- ariaLabelledByElements: ReadonlyArray<Element> | null;
200
- ariaLevel: string | null;
201
- ariaLive: string | null;
202
- ariaModal: string | null;
203
- ariaMultiLine: string | null;
204
- ariaMultiSelectable: string | null;
205
- ariaOrientation: string | null;
206
- ariaOwnsElements: ReadonlyArray<Element> | null;
207
- ariaPlaceholder: string | null;
208
- ariaPosInSet: string | null;
209
- ariaPressed: string | null;
210
- ariaReadOnly: string | null;
211
- ariaRelevant: string | null;
212
- ariaRequired: string | null;
213
- ariaRoleDescription: string | null;
214
- ariaRowCount: string | null;
215
- ariaRowIndex: string | null;
216
- ariaRowIndexText: string | null;
217
- ariaRowSpan: string | null;
218
- ariaSelected: string | null;
219
- ariaSetSize: string | null;
220
- ariaSort: string | null;
221
- ariaValueMax: string | null;
222
- ariaValueMin: string | null;
223
- ariaValueNow: string | null;
224
- ariaValueText: string | null;
225
- role: string | null;
226
- animate(keyframes: Keyframe[] | PropertyIndexedKeyframes | null, options?: number | KeyframeAnimationOptions): Animation;
227
- getAnimations(options?: GetAnimationsOptions): Animation[];
228
- after(...nodes: (Node | string)[]): void;
229
- before(...nodes: (Node | string)[]): void;
230
- remove(): void;
231
- replaceWith(...nodes: (Node | string)[]): void;
232
- readonly nextElementSibling: Element | null;
233
- readonly previousElementSibling: Element | null;
234
- readonly childElementCount: number;
235
- readonly children: HTMLCollection;
236
- readonly firstElementChild: Element | null;
237
- readonly lastElementChild: Element | null;
238
- append(...nodes: (Node | string)[]): void;
239
- prepend(...nodes: (Node | string)[]): void;
240
- querySelector<K extends keyof HTMLElementTagNameMap>(selectors: K): HTMLElementTagNameMap[K] | null;
241
- querySelector<K extends keyof SVGElementTagNameMap>(selectors: K): SVGElementTagNameMap[K] | null;
242
- querySelector<K extends keyof MathMLElementTagNameMap>(selectors: K): MathMLElementTagNameMap[K] | null;
243
- querySelector<K extends keyof HTMLElementDeprecatedTagNameMap>(selectors: K): HTMLElementDeprecatedTagNameMap[K] | null;
244
- querySelector<E extends Element = Element>(selectors: string): E | null;
245
- querySelectorAll<K extends keyof HTMLElementTagNameMap>(selectors: K): NodeListOf<HTMLElementTagNameMap[K]>;
246
- querySelectorAll<K extends keyof SVGElementTagNameMap>(selectors: K): NodeListOf<SVGElementTagNameMap[K]>;
247
- querySelectorAll<K extends keyof MathMLElementTagNameMap>(selectors: K): NodeListOf<MathMLElementTagNameMap[K]>;
248
- querySelectorAll<K extends keyof HTMLElementDeprecatedTagNameMap>(selectors: K): NodeListOf<HTMLElementDeprecatedTagNameMap[K]>;
249
- querySelectorAll<E extends Element = Element>(selectors: string): NodeListOf<E>;
250
- replaceChildren(...nodes: (Node | string)[]): void;
251
- readonly assignedSlot: HTMLSlotElement | null;
252
- readonly attributeStyleMap: StylePropertyMap;
253
- get style(): CSSStyleDeclaration;
254
- set style(cssText: string): any;
255
- contentEditable: string;
256
- enterKeyHint: string;
257
- inputMode: string;
258
- readonly isContentEditable: boolean;
259
- onabort: ((this: GlobalEventHandlers, ev: UIEvent) => any) | null;
260
- onanimationcancel: ((this: GlobalEventHandlers, ev: AnimationEvent) => any) | null;
261
- onanimationend: ((this: GlobalEventHandlers, ev: AnimationEvent) => any) | null;
262
- onanimationiteration: ((this: GlobalEventHandlers, ev: AnimationEvent) => any) | null;
263
- onanimationstart: ((this: GlobalEventHandlers, ev: AnimationEvent) => any) | null;
264
- onauxclick: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
265
- onbeforeinput: ((this: GlobalEventHandlers, ev: InputEvent) => any) | null;
266
- onbeforematch: ((this: GlobalEventHandlers, ev: Event) => any) | null;
267
- onbeforetoggle: ((this: GlobalEventHandlers, ev: ToggleEvent) => any) | null;
268
- onblur: ((this: GlobalEventHandlers, ev: FocusEvent) => any) | null;
269
- oncancel: ((this: GlobalEventHandlers, ev: Event) => any) | null;
270
- oncanplay: ((this: GlobalEventHandlers, ev: Event) => any) | null;
271
- oncanplaythrough: ((this: GlobalEventHandlers, ev: Event) => any) | null;
272
- onchange: ((this: GlobalEventHandlers, ev: Event) => any) | null;
273
- onclick: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
274
- onclose: ((this: GlobalEventHandlers, ev: Event) => any) | null;
275
- oncontextlost: ((this: GlobalEventHandlers, ev: Event) => any) | null;
276
- oncontextmenu: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
277
- oncontextrestored: ((this: GlobalEventHandlers, ev: Event) => any) | null;
278
- oncopy: ((this: GlobalEventHandlers, ev: ClipboardEvent) => any) | null;
279
- oncuechange: ((this: GlobalEventHandlers, ev: Event) => any) | null;
280
- oncut: ((this: GlobalEventHandlers, ev: ClipboardEvent) => any) | null;
281
- ondblclick: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;
282
- ondrag: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null;
283
- ondragend: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null;
284
- ondragenter: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null;
285
- ondragleave: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null;
286
- ondragover: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null;
287
- ondragstart: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null;
288
- ondrop: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null;
289
- ondurationchange: ((this: GlobalEventHandlers, ev: Event) => any) | null;
290
- onemptied: ((this: GlobalEventHandlers, ev: Event) => any) | null;
291
- onended: ((this: GlobalEventHandlers, ev: Event) => any) | null;
292
- onerror: OnErrorEventHandler;
293
- onfocus: ((this: GlobalEventHandlers, ev: FocusEvent) => any) | null;
294
- onformdata: ((this: GlobalEventHandlers, ev: FormDataEvent) => any) | null;
295
- ongotpointercapture: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
296
- oninput: ((this: GlobalEventHandlers, ev: Event) => any) | null;
297
- oninvalid: ((this: GlobalEventHandlers, ev: Event) => any) | null;
298
- onkeydown: ((this: GlobalEventHandlers, ev: KeyboardEvent) => any) | null;
299
- onkeypress: ((this: GlobalEventHandlers, ev: KeyboardEvent) => any) | null;
300
- onkeyup: ((this: GlobalEventHandlers, ev: KeyboardEvent) => any) | null;
301
- onload: ((this: GlobalEventHandlers, ev: Event) => any) | null;
302
- onloadeddata: ((this: GlobalEventHandlers, ev: Event) => any) | null;
303
- onloadedmetadata: ((this: GlobalEventHandlers, ev: Event) => any) | null;
304
- onloadstart: ((this: GlobalEventHandlers, ev: Event) => any) | null;
305
- onlostpointercapture: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
306
- onmousedown: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;
307
- onmouseenter: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;
308
- onmouseleave: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;
309
- onmousemove: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;
310
- onmouseout: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;
311
- onmouseover: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;
312
- onmouseup: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;
313
- onpaste: ((this: GlobalEventHandlers, ev: ClipboardEvent) => any) | null;
314
- onpause: ((this: GlobalEventHandlers, ev: Event) => any) | null;
315
- onplay: ((this: GlobalEventHandlers, ev: Event) => any) | null;
316
- onplaying: ((this: GlobalEventHandlers, ev: Event) => any) | null;
317
- onpointercancel: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
318
- onpointerdown: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
319
- onpointerenter: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
320
- onpointerleave: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
321
- onpointermove: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
322
- onpointerout: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
323
- onpointerover: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
324
- onpointerrawupdate: ((this: GlobalEventHandlers, ev: Event) => any) | null;
325
- onpointerup: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
326
- onprogress: ((this: GlobalEventHandlers, ev: ProgressEvent) => any) | null;
327
- onratechange: ((this: GlobalEventHandlers, ev: Event) => any) | null;
328
- onreset: ((this: GlobalEventHandlers, ev: Event) => any) | null;
329
- onresize: ((this: GlobalEventHandlers, ev: UIEvent) => any) | null;
330
- onscroll: ((this: GlobalEventHandlers, ev: Event) => any) | null;
331
- onscrollend: ((this: GlobalEventHandlers, ev: Event) => any) | null;
332
- onsecuritypolicyviolation: ((this: GlobalEventHandlers, ev: SecurityPolicyViolationEvent) => any) | null;
333
- onseeked: ((this: GlobalEventHandlers, ev: Event) => any) | null;
334
- onseeking: ((this: GlobalEventHandlers, ev: Event) => any) | null;
335
- onselect: ((this: GlobalEventHandlers, ev: Event) => any) | null;
336
- onselectionchange: ((this: GlobalEventHandlers, ev: Event) => any) | null;
337
- onselectstart: ((this: GlobalEventHandlers, ev: Event) => any) | null;
338
- onslotchange: ((this: GlobalEventHandlers, ev: Event) => any) | null;
339
- onstalled: ((this: GlobalEventHandlers, ev: Event) => any) | null;
340
- onsubmit: ((this: GlobalEventHandlers, ev: SubmitEvent) => any) | null;
341
- onsuspend: ((this: GlobalEventHandlers, ev: Event) => any) | null;
342
- ontimeupdate: ((this: GlobalEventHandlers, ev: Event) => any) | null;
343
- ontoggle: ((this: GlobalEventHandlers, ev: ToggleEvent) => any) | null;
344
- ontouchcancel?: ((this: GlobalEventHandlers, ev: TouchEvent) => any) | null | undefined;
345
- ontouchend?: ((this: GlobalEventHandlers, ev: TouchEvent) => any) | null | undefined;
346
- ontouchmove?: ((this: GlobalEventHandlers, ev: TouchEvent) => any) | null | undefined;
347
- ontouchstart?: ((this: GlobalEventHandlers, ev: TouchEvent) => any) | null | undefined;
348
- ontransitioncancel: ((this: GlobalEventHandlers, ev: TransitionEvent) => any) | null;
349
- ontransitionend: ((this: GlobalEventHandlers, ev: TransitionEvent) => any) | null;
350
- ontransitionrun: ((this: GlobalEventHandlers, ev: TransitionEvent) => any) | null;
351
- ontransitionstart: ((this: GlobalEventHandlers, ev: TransitionEvent) => any) | null;
352
- onvolumechange: ((this: GlobalEventHandlers, ev: Event) => any) | null;
353
- onwaiting: ((this: GlobalEventHandlers, ev: Event) => any) | null;
354
- onwebkitanimationend: ((this: GlobalEventHandlers, ev: Event) => any) | null;
355
- onwebkitanimationiteration: ((this: GlobalEventHandlers, ev: Event) => any) | null;
356
- onwebkitanimationstart: ((this: GlobalEventHandlers, ev: Event) => any) | null;
357
- onwebkittransitionend: ((this: GlobalEventHandlers, ev: Event) => any) | null;
358
- onwheel: ((this: GlobalEventHandlers, ev: WheelEvent) => any) | null;
359
- autofocus: boolean;
360
- readonly dataset: DOMStringMap;
361
- nonce?: string;
362
- tabIndex: number;
363
- blur(): void;
364
- focus(options?: FocusOptions): void;
365
15
  };
366
16
  _hostListeners: {
367
17
  [listenerName: string]: {
@@ -423,6 +73,10 @@ declare class CDSTearsheet extends CDSTearsheet_base {
423
73
  * Unique ID for this tearsheet instance
424
74
  */
425
75
  private uniqueId;
76
+ /**
77
+ * Internal flag to track if stacking is enabled (via wrapper)
78
+ */
79
+ private _stackingEnabled;
426
80
  /**
427
81
  * Internal state for tracking if the tearsheet is in small screen mode
428
82
  */
@@ -462,6 +116,18 @@ declare class CDSTearsheet extends CDSTearsheet_base {
462
116
  * Handles both slot changes and screen size changes
463
117
  */
464
118
  private updateInfluencerVisibility;
119
+ /**
120
+ * Check if this tearsheet is wrapped in a stack provider
121
+ */
122
+ private _checkForStackWrapper;
123
+ /**
124
+ * Handle stack wrapper connected event
125
+ */
126
+ private handleStackConnected;
127
+ /**
128
+ * Handle stack step size changed event
129
+ */
130
+ private handleStackStepSizeChanged;
465
131
  /**
466
132
  * Handle influencer slot change
467
133
  */
@@ -1 +1 @@
1
- {"version":3,"file":"tearsheet.d.ts","sourceRoot":"","sources":["../../../src/components/tearsheet-preview/tearsheet.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tearsheet.d.ts","sourceRoot":"","sources":["../../../src/components/tearsheet-preview/tearsheet.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,UAAU,EAAE,cAAc,EAAQ,MAAM,KAAK,CAAC;;;;;;;;;;uBAOnB,CAAC;;;;;AAOrC;;;;;;;;;;GAUG;AACH,cACM,YAAa,SAAQ,iBAA4C;IACrE;;OAEG;IAEH,IAAI,EAAE,OAAO,CAAS;IAEtB;;OAEG;IAEH,kBAAkB,EAAE,MAAM,CAAM;IAEhC;;OAEG;IAEH,eAAe,EAAE,MAAM,CAAM;IAE7B;;OAEG;IAEH,mBAAmB,EAAE,MAAM,CAAM;IAEjC;;OAEG;IAEH,WAAW,EAAE,MAAM,CAAM;IAEzB;;OAEG;IAEH,OAAO,EAAE,MAAM,GAAG,QAAQ,CAAU;IAEpC;;OAEG;IAEH,sBAAsB,EAAE,MAAM,CAAM;IAEpC;;OAEG;IAEH,oBAAoB,EAAE,MAAM,CAAM;IAElC;;OAEG;IAEH,0BAA0B,EAAE,OAAO,CAAS;IAE5C;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAkE;IAElF;;OAEG;IACH,OAAO,CAAC,gBAAgB,CAAkB;IAE1C;;OAEG;IAEH,OAAO,CAAC,IAAI,CAAkB;IAE9B;;OAEG;IAEH,OAAO,CAAC,gBAAgB,CAAC,CAAc;IAEvC,OAAO,CAAC,YAAY,CAA0C;IAC9D,OAAO,CAAC,aAAa,CAInB;IACF;;OAEG;IACH,OAAO,KAAK,YAAY,GAOvB;IAED;;OAEG;IACH,OAAO,KAAK,UAAU,GAWrB;IAED,iBAAiB,IAAI,IAAI;IA+BzB,SAAS,CAAC,YAAY,CAAC,kBAAkB,EAAE,cAAc,GAAG,IAAI;IAYhE,SAAS,CAAC,OAAO,CAAC,kBAAkB,EAAE,cAAc,GAAG,IAAI;IAgB3D,OAAO,CAAC,eAAe;IASvB,OAAO,CAAC,wBAAwB;IAoBhC,OAAO,CAAC,2BAA2B;IAanC,OAAO,CAAC,6BAA6B;IAYrC;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAoB7B,oBAAoB;IAsCpB;;OAEG;IACH,OAAO,CAAC,yBAAyB;IAqBjC;;;OAGG;IACH,OAAO,CAAC,0BAA0B;IA6BlC;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAa7B;;OAEG;IACH,OAAO,CAAC,oBAAoB,CAG1B;IAEF;;OAEG;IACH,OAAO,CAAC,0BAA0B,CAOhC;IAEF;;OAEG;IACH,OAAO,CAAC,0BAA0B,CAGhC;IAEF;;;;OAIG;IACH,OAAO,CAAC,cAAc;IA0CtB;;;OAGG;IACH,OAAO,CAAC,4BAA4B,CAIlC;IAEF;;OAEG;IACH,OAAO,CAAC,WAAW,CAEjB;IAEF;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAgBhC,MAAM;IAwCN,MAAM,CAAC,MAAM,MAAU;CACxB;AAED,eAAe,YAAY,CAAC"}
@@ -53,9 +53,18 @@ let CDSTearsheet = class CDSTearsheet extends SignalWatcher(HostListenerMixin(Li
53
53
  this.selectorPrimaryFocus = "";
54
54
  this.preventCloseOnClickOutside = false;
55
55
  this.uniqueId = `tearsheet-${Math.random().toString(36).substr(2, 9)}`;
56
+ this._stackingEnabled = false;
56
57
  this.isSm = false;
57
58
  this.smMediaQuery = `(max-width: ${breakpoints.md.width})`;
58
59
  this.isSmallDevice = new MatchMediaController(this, this.smMediaQuery, false);
60
+ this.handleStackConnected = (event) => {
61
+ event.stopPropagation();
62
+ this._stackingEnabled = true;
63
+ };
64
+ this.handleStackStepSizeChanged = (event) => {
65
+ event.stopPropagation();
66
+ if (this._stackingEnabled && this.open) this.updateStackProperties();
67
+ };
59
68
  this.handleInfluencerSlotChange = (e) => {
60
69
  const slot = e.target;
61
70
  this.updateInfluencerVisibility(slot);
@@ -89,6 +98,9 @@ let CDSTearsheet = class CDSTearsheet extends SignalWatcher(HostListenerMixin(Li
89
98
  }
90
99
  connectedCallback() {
91
100
  super.connectedCallback();
101
+ this.addEventListener(`${prefix}-tearsheet-stack-connected`, this.handleStackConnected);
102
+ this.addEventListener(`${prefix}-tearsheet-stack-step-size-changed`, this.handleStackStepSizeChanged);
103
+ this._checkForStackWrapper();
92
104
  if (this.open) this.classList.add("is-visible");
93
105
  else this.classList.remove("is-visible");
94
106
  this.addEventListener(`${prefix}-tearsheet-header-close-button-clicked`, this.handleHeaderCloseButtonClick);
@@ -119,14 +131,15 @@ let CDSTearsheet = class CDSTearsheet extends SignalWatcher(HostListenerMixin(Li
119
131
  handleOpenPropertyChange(_changedProperties) {
120
132
  if (!_changedProperties.has("open")) return;
121
133
  updateTearsheetSignals({ open: this.open });
122
- if (this.modalBodyElement) stackManager.notifyStack(this.uniqueId, this.open, this.modalBodyElement);
134
+ if (this._stackingEnabled && this.modalBodyElement) stackManager.notifyStack(this.uniqueId, this.open, this.modalBodyElement);
123
135
  this.classList.toggle("is-visible", this.open);
124
- this.updateStackProperties();
136
+ if (this._stackingEnabled) this.updateStackProperties();
125
137
  }
126
138
  updateCSSPropertiesIfNeeded(_changedProperties) {
127
139
  if (_changedProperties.has("influencerWidth") || _changedProperties.has("summaryContentWidth") || _changedProperties.has("verticalGap")) this.updateCSSCustomProperties();
128
140
  }
129
141
  updateStackPropertiesIfNeeded() {
142
+ if (!this._stackingEnabled) return;
130
143
  if (stackManager.state.stack.length > 0) this.updateStackProperties();
131
144
  }
132
145
  /**
@@ -148,7 +161,9 @@ let CDSTearsheet = class CDSTearsheet extends SignalWatcher(HostListenerMixin(Li
148
161
  disconnectedCallback() {
149
162
  super.disconnectedCallback();
150
163
  this.removeEventListener(`${prefix}-tearsheet-header-close-button-clicked`, this.handleHeaderCloseButtonClick);
151
- stackManager.notifyStack(this.uniqueId, false, null);
164
+ this.removeEventListener(`${prefix}-tearsheet-stack-connected`, this.handleStackConnected);
165
+ this.removeEventListener(`${prefix}-tearsheet-stack-step-size-changed`, this.handleStackStepSizeChanged);
166
+ if (this._stackingEnabled) stackManager.notifyStack(this.uniqueId, false, null);
152
167
  if (this.influencerWidth) document.documentElement.style.removeProperty("--tearsheet-influencer-width");
153
168
  if (this.summaryContentWidth) document.documentElement.style.removeProperty("--tearsheet-summary-content-width");
154
169
  if (this.verticalGap) document.documentElement.style.removeProperty("--tearsheet-vertical-gap");
@@ -173,6 +188,20 @@ let CDSTearsheet = class CDSTearsheet extends SignalWatcher(HostListenerMixin(Li
173
188
  else this.modalBodyElement.classList.remove(`${blockClass}__body-layout--has-influencer`);
174
189
  }
175
190
  /**
191
+ * Check if this tearsheet is wrapped in a stack provider
192
+ */
193
+ _checkForStackWrapper() {
194
+ let parent = this.parentElement;
195
+ while (parent) {
196
+ if (parent.tagName.toLowerCase() === `${prefix}-tearsheet-stack`) {
197
+ this._stackingEnabled = true;
198
+ return;
199
+ }
200
+ parent = parent.parentElement;
201
+ }
202
+ this._stackingEnabled = false;
203
+ }
204
+ /**
176
205
  * Common method to handle tearsheet close with proper event dispatching
177
206
  * @param originalEvent - The original event that triggered the close (optional)
178
207
  * @param useAsync - Whether to dispatch closed event asynchronously
@@ -1 +1 @@
1
- {"version":3,"file":"tearsheet.js","names":["styles","customElement"],"sources":["../../../src/components/tearsheet-preview/tearsheet.ts"],"sourcesContent":["/**\n * @license\n *\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, PropertyValues, html } from 'lit';\nimport { property, state, query } from 'lit/decorators.js';\nimport { prefix } from '../../globals/settings';\nimport styles from './tearsheet.scss?lit';\nimport { carbonElement as customElement } from '@carbon/web-components/es/globals/decorators/carbon-element.js';\nimport { classMap } from 'lit-html/directives/class-map.js';\nimport { MatchMediaController } from '../../globals/js/utils/match-media-controller';\nimport { breakpoints } from '@carbon/layout';\nimport { blockClass, updateTearsheetSignals } from './tearsheet-signal';\nimport { SignalWatcher } from '@lit-labs/signals';\nimport HostListenerMixin from '@carbon/web-components/es/globals/mixins/host-listener';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { stackManager } from './stack-signal';\n\n/**\n * Tearsheet component - A slide-out panel for displaying detailed content.\n *\n * @element c4p-preview-tearsheet\n * @slot header - The header content of the tearsheet\n * @slot influencer - Optional left sidebar content (wide variant only)\n * @slot body - Main body content\n * @slot footer - Footer content with actions\n * @fires c4p-preview-tearsheet-beingclosed - Fired when the tearsheet is about to close\n * @fires c4p-preview-tearsheet-closed - Fired after the tearsheet has closed\n */\n@customElement(`${prefix}-preview-tearsheet`)\nclass CDSTearsheet extends SignalWatcher(HostListenerMixin(LitElement)) {\n /**\n * Specifies whether the tearsheet is currently open.\n */\n @property({ type: Boolean, reflect: true })\n open: boolean = false;\n\n /**\n * User can pass any class names that will be added to the modal container\n */\n @property({ attribute: 'container-class-name' })\n containerClassName: string = '';\n\n /**\n * Default influencer takes 256px, this allows override eg: 300px, 20rem\n */\n @property({ attribute: 'influencer-width' })\n influencerWidth: string = '';\n\n /**\n * Default summary content takes 256px, this allows override eg: 300px, 20rem\n */\n @property({ attribute: 'summary-content-width' })\n summaryContentWidth: string = '';\n\n /**\n * Defines the gap from top of the viewport. Defaulted to 3rem\n */\n @property({ attribute: 'vertical-gap' })\n verticalGap: string = '';\n\n /**\n * Default to wide variant. Pass in narrow for narrow tearsheet\n */\n @property({ reflect: true })\n variant: 'wide' | 'narrow' = 'wide';\n\n /**\n * Specify the CSS selectors that match the floating menus (comma-separated)\n */\n @property({ attribute: 'selectors-floating-menus' })\n selectorsFloatingMenus: string = '';\n\n /**\n * Specify a CSS selector that matches the DOM element that should be focused when the Modal opens\n */\n @property({ attribute: 'selector-primary-focus' })\n selectorPrimaryFocus: string = '';\n\n /**\n * Prevents the modal from closing when clicking outside\n */\n @property({ type: Boolean, attribute: 'prevent-close-on-click-outside' })\n preventCloseOnClickOutside: boolean = false;\n\n /**\n * Unique ID for this tearsheet instance\n */\n private uniqueId: string = `tearsheet-${Math.random().toString(36).substr(2, 9)}`;\n\n /**\n * Internal state for tracking if the tearsheet is in small screen mode\n */\n @state()\n private isSm: boolean = false;\n\n /**\n * Query the modal body element\n */\n @query('cds-modal-body')\n private modalBodyElement?: HTMLElement;\n\n private smMediaQuery = `(max-width: ${breakpoints.md.width})`;\n private isSmallDevice = new MatchMediaController(\n this,\n this.smMediaQuery,\n false\n );\n /**\n * Checks if the tearsheet has a decorator (AI label or other)\n */\n private get hasDecorator(): boolean {\n const headerElement = this.querySelector(`${prefix}-tearsheet-header`);\n if (!headerElement) {\n return false;\n }\n const decorator = headerElement.querySelector('[slot=\"decorator\"]');\n return !!decorator;\n }\n\n /**\n * Checks if the tearsheet has an AI label decorator\n */\n private get hasAILabel(): boolean {\n const headerElement = this.querySelector(`${prefix}-tearsheet-header`);\n if (!headerElement) {\n return false;\n }\n const decorator = headerElement.querySelector('[slot=\"decorator\"]');\n if (!decorator) {\n return false;\n }\n const tagName = decorator.tagName.toLowerCase();\n return tagName === 'cds-ai-label' || tagName === `${prefix}-ai-label`;\n }\n\n connectedCallback(): void {\n super.connectedCallback();\n\n // Set visibility class\n if (this.open) {\n this.classList.add('is-visible');\n } else {\n this.classList.remove('is-visible');\n }\n\n // Listen for close button click from header\n this.addEventListener(\n `${prefix}-tearsheet-header-close-button-clicked`,\n this.handleHeaderCloseButtonClick as EventListener\n );\n }\n\n protected firstUpdated(_changedProperties: PropertyValues): void {\n this.updateCSSCustomProperties();\n this.isSm = this.isSmallDevice?.matches || this.variant === 'narrow';\n // Initialize all signals on first update\n updateTearsheetSignals({\n variant: this.variant,\n isSm: this.isSm,\n open: this.open,\n hasAILabel: this.hasAILabel,\n });\n }\n\n protected updated(_changedProperties: PropertyValues): void {\n this.updateIsSmState(_changedProperties);\n this.handleOpenPropertyChange(_changedProperties);\n this.updateCSSPropertiesIfNeeded(_changedProperties);\n\n if (_changedProperties.has('variant')) {\n updateTearsheetSignals({ variant: this.variant });\n }\n\n if (_changedProperties.has('isSm')) {\n this.updateInfluencerVisibility();\n }\n\n this.updateStackPropertiesIfNeeded();\n }\n\n private updateIsSmState(_changedProperties: PropertyValues): void {\n const previousIsSm = this.isSm;\n this.isSm = this.isSmallDevice?.matches || this.variant === 'narrow';\n\n if (this.isSm !== previousIsSm) {\n updateTearsheetSignals({ isSm: this.isSm });\n }\n }\n\n private handleOpenPropertyChange(_changedProperties: PropertyValues): void {\n if (!_changedProperties.has('open')) {\n return;\n }\n\n updateTearsheetSignals({ open: this.open });\n\n if (this.modalBodyElement) {\n stackManager.notifyStack(this.uniqueId, this.open, this.modalBodyElement);\n }\n\n this.classList.toggle('is-visible', this.open);\n this.updateStackProperties();\n }\n\n private updateCSSPropertiesIfNeeded(\n _changedProperties: PropertyValues\n ): void {\n const hasRelevantChanges =\n _changedProperties.has('influencerWidth') ||\n _changedProperties.has('summaryContentWidth') ||\n _changedProperties.has('verticalGap');\n\n if (hasRelevantChanges) {\n this.updateCSSCustomProperties();\n }\n }\n\n private updateStackPropertiesIfNeeded(): void {\n const stackState = stackManager.state;\n if (stackState.stack.length > 0) {\n this.updateStackProperties();\n }\n }\n\n /**\n * Update CSS custom properties for stacking\n */\n private updateStackProperties(): void {\n const stackState = stackManager.state;\n const depth = stackManager.getDepth(this.uniqueId);\n const scaleFactor = stackManager.getScaleFactor(this.uniqueId);\n const blockSizeChange = stackManager.getBlockSizeChange(this.uniqueId);\n\n // Manage --stack-activated class on host element\n if (stackState.stack.length > 1) {\n this.classList.add(`${blockClass}--stack-activated`);\n } else {\n this.classList.remove(`${blockClass}--stack-activated`);\n }\n\n if (depth !== -1) {\n this.style.setProperty('--stack-depth', depth.toString());\n this.style.setProperty('--scale-factor', scaleFactor.toString());\n this.style.setProperty('--block-size-change', blockSizeChange);\n }\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n\n // Remove event listener\n this.removeEventListener(\n `${prefix}-tearsheet-header-close-button-clicked`,\n this.handleHeaderCloseButtonClick as EventListener\n );\n\n // Notify stack manager that this tearsheet is closing\n stackManager.notifyStack(this.uniqueId, false, null);\n\n // Clean up CSS custom properties\n if (this.influencerWidth) {\n document.documentElement.style.removeProperty(\n '--tearsheet-influencer-width'\n );\n }\n if (this.summaryContentWidth) {\n document.documentElement.style.removeProperty(\n '--tearsheet-summary-content-width'\n );\n }\n if (this.verticalGap) {\n document.documentElement.style.removeProperty('--tearsheet-vertical-gap');\n }\n }\n\n /**\n * Update CSS custom properties for dynamic styling\n */\n private updateCSSCustomProperties(): void {\n if (this.influencerWidth) {\n document.documentElement.style.setProperty(\n '--tearsheet-influencer-width',\n this.influencerWidth\n );\n }\n if (this.summaryContentWidth) {\n document.documentElement.style.setProperty(\n '--tearsheet-summary-content-width',\n this.summaryContentWidth\n );\n }\n if (this.verticalGap) {\n document.documentElement.style.setProperty(\n '--tearsheet-vertical-gap',\n this.verticalGap\n );\n }\n }\n\n /**\n * Update influencer visibility based on slot content and screen size\n * Handles both slot changes and screen size changes\n */\n private updateInfluencerVisibility(slot?: HTMLSlotElement): void {\n const influencerSlot =\n slot ||\n (this.shadowRoot?.querySelector(\n 'slot[name=\"influencer\"]'\n ) as HTMLSlotElement);\n\n if (!influencerSlot) {\n return;\n }\n\n const hasContent =\n influencerSlot.assignedNodes({ flatten: true }).length > 0;\n const shouldShow = hasContent && !this.isSm;\n\n // Update CSS class on modal body\n if (this.modalBodyElement) {\n if (shouldShow) {\n this.modalBodyElement.classList.add(\n `${blockClass}__body-layout--has-influencer`\n );\n } else {\n this.modalBodyElement.classList.remove(\n `${blockClass}__body-layout--has-influencer`\n );\n }\n }\n }\n\n /**\n * Handle influencer slot change\n */\n private handleInfluencerSlotChange = (e: Event) => {\n const slot = e.target as HTMLSlotElement;\n this.updateInfluencerVisibility(slot);\n };\n\n /**\n * Common method to handle tearsheet close with proper event dispatching\n * @param originalEvent - The original event that triggered the close (optional)\n * @param useAsync - Whether to dispatch closed event asynchronously\n */\n private closeTearsheet(originalEvent?: Event, useAsync: boolean = false) {\n // Dispatch the beingclosed event (cancelable)\n const beforeCloseEvent = new CustomEvent(\n `${prefix}-preview-tearsheet-beingclosed`,\n {\n bubbles: true,\n cancelable: true,\n composed: true,\n detail: {},\n }\n );\n\n if (!this.dispatchEvent(beforeCloseEvent)) {\n // If event was cancelled, prevent closing\n if (originalEvent) {\n originalEvent.preventDefault();\n }\n return;\n }\n\n // Close the tearsheet\n this.open = false;\n\n // Dispatch closed event\n const dispatchClosedEvent = () => {\n this.dispatchEvent(\n new CustomEvent(`${prefix}-preview-tearsheet-closed`, {\n bubbles: true,\n composed: true,\n detail: {},\n })\n );\n };\n\n if (useAsync) {\n // Use microtask for async scenarios (e.g., click outside)\n Promise.resolve().then(dispatchClosedEvent);\n } else {\n dispatchClosedEvent();\n }\n }\n\n /**\n * Handle close button click from the header\n * This is an internal event that triggers the tearsheet to close\n */\n private handleHeaderCloseButtonClick = (event: Event) => {\n // Stop the internal event from propagating\n event.stopPropagation();\n this.closeTearsheet();\n };\n\n /**\n * Handle close event from the modal (ESC key, click outside, etc.)\n */\n private handleClose = (event: Event) => {\n this.closeTearsheet(event, true);\n };\n\n /**\n * Parse floating menu selectors from comma-separated string\n */\n private getFloatingMenuSelectors(): string {\n const defaultSelectors = [\n `.${prefix}--overflow-menu-options`,\n `.${prefix}--tooltip`,\n '.flatpickr-calendar',\n `.${blockClass}__container`,\n `.${prefix}--menu`,\n ];\n\n const customSelectors = this.selectorsFloatingMenus\n ? this.selectorsFloatingMenus.split(',').map((s) => s.trim())\n : [];\n\n return [...defaultSelectors, ...customSelectors].join(',');\n }\n\n render() {\n const classes = classMap({\n [blockClass]: true,\n [`${blockClass}--wide`]: this.variant === 'wide',\n [`${blockClass}--narrow`]: this.variant === 'narrow',\n [`${blockClass}--has-ai-label`]: this.hasAILabel,\n [`${blockClass}--has-decorator`]: this.hasDecorator && !this.hasAILabel,\n });\n\n const containerClasses = `${blockClass}__container ${this.containerClassName}`;\n\n return html`<cds-modal\n class=${classes}\n size=${this.variant === 'narrow' ? 'sm' : 'lg'}\n ?open=\"${this.open}\"\n container-class=\"${containerClasses}\"\n ?prevent-close-on-click-outside=\"${this.preventCloseOnClickOutside}\"\n aria-label=\"${ifDefined(this.ariaLabel || undefined)}\"\n selector-primary-focus=\"${ifDefined(\n this.selectorPrimaryFocus || undefined\n )}\"\n selectors-floating-menus=\"${this.getFloatingMenuSelectors()}\"\n @cds-modal-beingclosed=\"${this.handleClose}\"\n @cds-modal-closed=\"${this.handleClose}\"\n ?full-width=\"${true}\"\n ai-label=\"${ifDefined(this.hasAILabel || undefined)}\"\n >\n <slot name=\"decorator\"></slot>\n <slot name=\"header\"></slot>\n <cds-modal-body class=\"${blockClass}__body-layout\">\n <slot\n name=\"influencer\"\n @slotchange=${this.handleInfluencerSlotChange}\n ></slot>\n <slot name=\"body\"></slot>\n <slot name=\"footer\"></slot>\n </cds-modal-body>\n </cds-modal>`;\n }\n\n static styles = styles;\n}\n\nexport default CDSTearsheet;\n"],"mappings":"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"}
1
+ {"version":3,"file":"tearsheet.js","names":["styles","customElement"],"sources":["../../../src/components/tearsheet-preview/tearsheet.ts"],"sourcesContent":["/**\n * @license\n *\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, PropertyValues, html } from 'lit';\nimport { property, state, query } from 'lit/decorators.js';\nimport { prefix } from '../../globals/settings';\nimport styles from './tearsheet.scss?lit';\nimport { carbonElement as customElement } from '@carbon/web-components/es/globals/decorators/carbon-element.js';\nimport { classMap } from 'lit-html/directives/class-map.js';\nimport { MatchMediaController } from '../../globals/js/utils/match-media-controller';\nimport { breakpoints } from '@carbon/layout';\nimport { blockClass, updateTearsheetSignals } from './tearsheet-signal';\nimport { SignalWatcher } from '@lit-labs/signals';\nimport HostListenerMixin from '@carbon/web-components/es/globals/mixins/host-listener';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { stackManager } from './stack-signal';\n\n/**\n * Tearsheet component - A slide-out panel for displaying detailed content.\n *\n * @element c4p-preview-tearsheet\n * @slot header - The header content of the tearsheet\n * @slot influencer - Optional left sidebar content (wide variant only)\n * @slot body - Main body content\n * @slot footer - Footer content with actions\n * @fires c4p-preview-tearsheet-beingclosed - Fired when the tearsheet is about to close\n * @fires c4p-preview-tearsheet-closed - Fired after the tearsheet has closed\n */\n@customElement(`${prefix}-preview-tearsheet`)\nclass CDSTearsheet extends SignalWatcher(HostListenerMixin(LitElement)) {\n /**\n * Specifies whether the tearsheet is currently open.\n */\n @property({ type: Boolean, reflect: true })\n open: boolean = false;\n\n /**\n * User can pass any class names that will be added to the modal container\n */\n @property({ attribute: 'container-class-name' })\n containerClassName: string = '';\n\n /**\n * Default influencer takes 256px, this allows override eg: 300px, 20rem\n */\n @property({ attribute: 'influencer-width' })\n influencerWidth: string = '';\n\n /**\n * Default summary content takes 256px, this allows override eg: 300px, 20rem\n */\n @property({ attribute: 'summary-content-width' })\n summaryContentWidth: string = '';\n\n /**\n * Defines the gap from top of the viewport. Defaulted to 3rem\n */\n @property({ attribute: 'vertical-gap' })\n verticalGap: string = '';\n\n /**\n * Default to wide variant. Pass in narrow for narrow tearsheet\n */\n @property({ reflect: true })\n variant: 'wide' | 'narrow' = 'wide';\n\n /**\n * Specify the CSS selectors that match the floating menus (comma-separated)\n */\n @property({ attribute: 'selectors-floating-menus' })\n selectorsFloatingMenus: string = '';\n\n /**\n * Specify a CSS selector that matches the DOM element that should be focused when the Modal opens\n */\n @property({ attribute: 'selector-primary-focus' })\n selectorPrimaryFocus: string = '';\n\n /**\n * Prevents the modal from closing when clicking outside\n */\n @property({ type: Boolean, attribute: 'prevent-close-on-click-outside' })\n preventCloseOnClickOutside: boolean = false;\n\n /**\n * Unique ID for this tearsheet instance\n */\n private uniqueId: string = `tearsheet-${Math.random().toString(36).substr(2, 9)}`;\n\n /**\n * Internal flag to track if stacking is enabled (via wrapper)\n */\n private _stackingEnabled: boolean = false;\n\n /**\n * Internal state for tracking if the tearsheet is in small screen mode\n */\n @state()\n private isSm: boolean = false;\n\n /**\n * Query the modal body element\n */\n @query('cds-modal-body')\n private modalBodyElement?: HTMLElement;\n\n private smMediaQuery = `(max-width: ${breakpoints.md.width})`;\n private isSmallDevice = new MatchMediaController(\n this,\n this.smMediaQuery,\n false\n );\n /**\n * Checks if the tearsheet has a decorator (AI label or other)\n */\n private get hasDecorator(): boolean {\n const headerElement = this.querySelector(`${prefix}-tearsheet-header`);\n if (!headerElement) {\n return false;\n }\n const decorator = headerElement.querySelector('[slot=\"decorator\"]');\n return !!decorator;\n }\n\n /**\n * Checks if the tearsheet has an AI label decorator\n */\n private get hasAILabel(): boolean {\n const headerElement = this.querySelector(`${prefix}-tearsheet-header`);\n if (!headerElement) {\n return false;\n }\n const decorator = headerElement.querySelector('[slot=\"decorator\"]');\n if (!decorator) {\n return false;\n }\n const tagName = decorator.tagName.toLowerCase();\n return tagName === 'cds-ai-label' || tagName === `${prefix}-ai-label`;\n }\n\n connectedCallback(): void {\n super.connectedCallback();\n\n // Listen for stack wrapper events first\n this.addEventListener(\n `${prefix}-tearsheet-stack-connected`,\n this.handleStackConnected as EventListener\n );\n this.addEventListener(\n `${prefix}-tearsheet-stack-step-size-changed`,\n this.handleStackStepSizeChanged as EventListener\n );\n\n // Check if this tearsheet is wrapped in a stack provider\n // This handles the case where the stack wrapper connected before this tearsheet\n this._checkForStackWrapper();\n\n // Set visibility class\n if (this.open) {\n this.classList.add('is-visible');\n } else {\n this.classList.remove('is-visible');\n }\n\n // Listen for close button click from header\n this.addEventListener(\n `${prefix}-tearsheet-header-close-button-clicked`,\n this.handleHeaderCloseButtonClick as EventListener\n );\n }\n\n protected firstUpdated(_changedProperties: PropertyValues): void {\n this.updateCSSCustomProperties();\n this.isSm = this.isSmallDevice?.matches || this.variant === 'narrow';\n // Initialize all signals on first update\n updateTearsheetSignals({\n variant: this.variant,\n isSm: this.isSm,\n open: this.open,\n hasAILabel: this.hasAILabel,\n });\n }\n\n protected updated(_changedProperties: PropertyValues): void {\n this.updateIsSmState(_changedProperties);\n this.handleOpenPropertyChange(_changedProperties);\n this.updateCSSPropertiesIfNeeded(_changedProperties);\n\n if (_changedProperties.has('variant')) {\n updateTearsheetSignals({ variant: this.variant });\n }\n\n if (_changedProperties.has('isSm')) {\n this.updateInfluencerVisibility();\n }\n\n this.updateStackPropertiesIfNeeded();\n }\n\n private updateIsSmState(_changedProperties: PropertyValues): void {\n const previousIsSm = this.isSm;\n this.isSm = this.isSmallDevice?.matches || this.variant === 'narrow';\n\n if (this.isSm !== previousIsSm) {\n updateTearsheetSignals({ isSm: this.isSm });\n }\n }\n\n private handleOpenPropertyChange(_changedProperties: PropertyValues): void {\n if (!_changedProperties.has('open')) {\n return;\n }\n\n updateTearsheetSignals({ open: this.open });\n\n // Only register with stack manager if stacking is enabled\n if (this._stackingEnabled && this.modalBodyElement) {\n stackManager.notifyStack(this.uniqueId, this.open, this.modalBodyElement);\n }\n\n this.classList.toggle('is-visible', this.open);\n\n // Only update stack properties if stacking is enabled\n if (this._stackingEnabled) {\n this.updateStackProperties();\n }\n }\n\n private updateCSSPropertiesIfNeeded(\n _changedProperties: PropertyValues\n ): void {\n const hasRelevantChanges =\n _changedProperties.has('influencerWidth') ||\n _changedProperties.has('summaryContentWidth') ||\n _changedProperties.has('verticalGap');\n\n if (hasRelevantChanges) {\n this.updateCSSCustomProperties();\n }\n }\n\n private updateStackPropertiesIfNeeded(): void {\n // Only update if stacking is enabled\n if (!this._stackingEnabled) {\n return;\n }\n\n const stackState = stackManager.state;\n if (stackState.stack.length > 0) {\n this.updateStackProperties();\n }\n }\n\n /**\n * Update CSS custom properties for stacking\n */\n private updateStackProperties(): void {\n const stackState = stackManager.state;\n const depth = stackManager.getDepth(this.uniqueId);\n const scaleFactor = stackManager.getScaleFactor(this.uniqueId);\n const blockSizeChange = stackManager.getBlockSizeChange(this.uniqueId);\n\n // Manage --stack-activated class on host element\n if (stackState.stack.length > 1) {\n this.classList.add(`${blockClass}--stack-activated`);\n } else {\n this.classList.remove(`${blockClass}--stack-activated`);\n }\n\n if (depth !== -1) {\n this.style.setProperty('--stack-depth', depth.toString());\n this.style.setProperty('--scale-factor', scaleFactor.toString());\n this.style.setProperty('--block-size-change', blockSizeChange);\n }\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n\n // Remove event listeners\n this.removeEventListener(\n `${prefix}-tearsheet-header-close-button-clicked`,\n this.handleHeaderCloseButtonClick as EventListener\n );\n this.removeEventListener(\n `${prefix}-tearsheet-stack-connected`,\n this.handleStackConnected as EventListener\n );\n this.removeEventListener(\n `${prefix}-tearsheet-stack-step-size-changed`,\n this.handleStackStepSizeChanged as EventListener\n );\n\n // Notify stack manager that this tearsheet is closing (only if stacking was enabled)\n if (this._stackingEnabled) {\n stackManager.notifyStack(this.uniqueId, false, null);\n }\n\n // Clean up CSS custom properties\n if (this.influencerWidth) {\n document.documentElement.style.removeProperty(\n '--tearsheet-influencer-width'\n );\n }\n if (this.summaryContentWidth) {\n document.documentElement.style.removeProperty(\n '--tearsheet-summary-content-width'\n );\n }\n if (this.verticalGap) {\n document.documentElement.style.removeProperty('--tearsheet-vertical-gap');\n }\n }\n\n /**\n * Update CSS custom properties for dynamic styling\n */\n private updateCSSCustomProperties(): void {\n if (this.influencerWidth) {\n document.documentElement.style.setProperty(\n '--tearsheet-influencer-width',\n this.influencerWidth\n );\n }\n if (this.summaryContentWidth) {\n document.documentElement.style.setProperty(\n '--tearsheet-summary-content-width',\n this.summaryContentWidth\n );\n }\n if (this.verticalGap) {\n document.documentElement.style.setProperty(\n '--tearsheet-vertical-gap',\n this.verticalGap\n );\n }\n }\n\n /**\n * Update influencer visibility based on slot content and screen size\n * Handles both slot changes and screen size changes\n */\n private updateInfluencerVisibility(slot?: HTMLSlotElement): void {\n const influencerSlot =\n slot ||\n (this.shadowRoot?.querySelector(\n 'slot[name=\"influencer\"]'\n ) as HTMLSlotElement);\n\n if (!influencerSlot) {\n return;\n }\n\n const hasContent =\n influencerSlot.assignedNodes({ flatten: true }).length > 0;\n const shouldShow = hasContent && !this.isSm;\n\n // Update CSS class on modal body\n if (this.modalBodyElement) {\n if (shouldShow) {\n this.modalBodyElement.classList.add(\n `${blockClass}__body-layout--has-influencer`\n );\n } else {\n this.modalBodyElement.classList.remove(\n `${blockClass}__body-layout--has-influencer`\n );\n }\n }\n }\n\n /**\n * Check if this tearsheet is wrapped in a stack provider\n */\n private _checkForStackWrapper(): void {\n // Check if there's a c4p-tearsheet-stack ancestor\n let parent = this.parentElement;\n while (parent) {\n if (parent.tagName.toLowerCase() === `${prefix}-tearsheet-stack`) {\n this._stackingEnabled = true;\n return;\n }\n parent = parent.parentElement;\n }\n this._stackingEnabled = false;\n }\n\n /**\n * Handle stack wrapper connected event\n */\n private handleStackConnected = (event: Event) => {\n event.stopPropagation();\n this._stackingEnabled = true;\n };\n\n /**\n * Handle stack step size changed event\n */\n private handleStackStepSizeChanged = (event: Event) => {\n event.stopPropagation();\n // Stack manager is already updated by the wrapper\n // Just trigger a re-render of stack properties if needed\n if (this._stackingEnabled && this.open) {\n this.updateStackProperties();\n }\n };\n\n /**\n * Handle influencer slot change\n */\n private handleInfluencerSlotChange = (e: Event) => {\n const slot = e.target as HTMLSlotElement;\n this.updateInfluencerVisibility(slot);\n };\n\n /**\n * Common method to handle tearsheet close with proper event dispatching\n * @param originalEvent - The original event that triggered the close (optional)\n * @param useAsync - Whether to dispatch closed event asynchronously\n */\n private closeTearsheet(originalEvent?: Event, useAsync: boolean = false) {\n // Dispatch the beingclosed event (cancelable)\n const beforeCloseEvent = new CustomEvent(\n `${prefix}-preview-tearsheet-beingclosed`,\n {\n bubbles: true,\n cancelable: true,\n composed: true,\n detail: {},\n }\n );\n\n if (!this.dispatchEvent(beforeCloseEvent)) {\n // If event was cancelled, prevent closing\n if (originalEvent) {\n originalEvent.preventDefault();\n }\n return;\n }\n\n // Close the tearsheet\n this.open = false;\n\n // Dispatch closed event\n const dispatchClosedEvent = () => {\n this.dispatchEvent(\n new CustomEvent(`${prefix}-preview-tearsheet-closed`, {\n bubbles: true,\n composed: true,\n detail: {},\n })\n );\n };\n\n if (useAsync) {\n // Use microtask for async scenarios (e.g., click outside)\n Promise.resolve().then(dispatchClosedEvent);\n } else {\n dispatchClosedEvent();\n }\n }\n\n /**\n * Handle close button click from the header\n * This is an internal event that triggers the tearsheet to close\n */\n private handleHeaderCloseButtonClick = (event: Event) => {\n // Stop the internal event from propagating\n event.stopPropagation();\n this.closeTearsheet();\n };\n\n /**\n * Handle close event from the modal (ESC key, click outside, etc.)\n */\n private handleClose = (event: Event) => {\n this.closeTearsheet(event, true);\n };\n\n /**\n * Parse floating menu selectors from comma-separated string\n */\n private getFloatingMenuSelectors(): string {\n const defaultSelectors = [\n `.${prefix}--overflow-menu-options`,\n `.${prefix}--tooltip`,\n '.flatpickr-calendar',\n `.${blockClass}__container`,\n `.${prefix}--menu`,\n ];\n\n const customSelectors = this.selectorsFloatingMenus\n ? this.selectorsFloatingMenus.split(',').map((s) => s.trim())\n : [];\n\n return [...defaultSelectors, ...customSelectors].join(',');\n }\n\n render() {\n const classes = classMap({\n [blockClass]: true,\n [`${blockClass}--wide`]: this.variant === 'wide',\n [`${blockClass}--narrow`]: this.variant === 'narrow',\n [`${blockClass}--has-ai-label`]: this.hasAILabel,\n [`${blockClass}--has-decorator`]: this.hasDecorator && !this.hasAILabel,\n });\n\n const containerClasses = `${blockClass}__container ${this.containerClassName}`;\n\n return html`<cds-modal\n class=${classes}\n size=${this.variant === 'narrow' ? 'sm' : 'lg'}\n ?open=\"${this.open}\"\n container-class=\"${containerClasses}\"\n ?prevent-close-on-click-outside=\"${this.preventCloseOnClickOutside}\"\n aria-label=\"${ifDefined(this.ariaLabel || undefined)}\"\n selector-primary-focus=\"${ifDefined(\n this.selectorPrimaryFocus || undefined\n )}\"\n selectors-floating-menus=\"${this.getFloatingMenuSelectors()}\"\n @cds-modal-beingclosed=\"${this.handleClose}\"\n @cds-modal-closed=\"${this.handleClose}\"\n ?full-width=\"${true}\"\n ai-label=\"${ifDefined(this.hasAILabel || undefined)}\"\n >\n <slot name=\"decorator\"></slot>\n <slot name=\"header\"></slot>\n <cds-modal-body class=\"${blockClass}__body-layout\">\n <slot\n name=\"influencer\"\n @slotchange=${this.handleInfluencerSlotChange}\n ></slot>\n <slot name=\"body\"></slot>\n <slot name=\"footer\"></slot>\n </cds-modal-body>\n </cds-modal>`;\n }\n\n static styles = styles;\n}\n\nexport default CDSTearsheet;\n"],"mappings":"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"}