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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (517) hide show
  1. package/custom-elements.json +213 -161
  2. package/es/components/accordion/accordion.scss.js +1 -1
  3. package/es/components/ai-label/ai-label.scss.js +1 -1
  4. package/es/components/ai-skeleton/ai-skeleton.scss.js +1 -1
  5. package/es/components/badge-indicator/badge-indicator.scss.js +1 -1
  6. package/es/components/breadcrumb/breadcrumb.scss.js +1 -1
  7. package/es/components/button/button.d.ts +1 -1
  8. package/es/components/button/button.js +1 -1
  9. package/es/components/button/button.js.map +1 -1
  10. package/es/components/button/button.scss.js +1 -1
  11. package/es/components/checkbox/checkbox.scss.js +1 -1
  12. package/es/components/code-snippet/code-snippet.scss.js +1 -1
  13. package/es/components/combo-box/combo-box.scss.js +1 -1
  14. package/es/components/combo-button/combo-button.scss.js +1 -1
  15. package/es/components/contained-list/contained-list.scss.js +1 -1
  16. package/es/components/content-switcher/content-switcher.scss.js +1 -1
  17. package/es/components/copy-button/copy-button.scss.js +1 -1
  18. package/es/components/data-table/data-table.scss.js +1 -1
  19. package/es/components/date-picker/date-picker.scss.js +1 -1
  20. package/es/components/date-picker/date-picker.scss.js.map +1 -1
  21. package/es/components/dialog/dialog-body.js +1 -1
  22. package/es/components/dialog/dialog-close-button.js +1 -1
  23. package/es/components/dialog/dialog-footer.js +1 -1
  24. package/es/components/dialog/dialog-subtitle.js +1 -1
  25. package/es/components/dialog/dialog-title.js +1 -1
  26. package/es/components/dialog/dialog.d.ts +18 -7
  27. package/es/components/dialog/dialog.d.ts.map +1 -1
  28. package/es/components/dialog/dialog.js +51 -17
  29. package/es/components/dialog/dialog.js.map +1 -1
  30. package/es/components/dialog/dialog.scss.js +1 -1
  31. package/es/components/dialog/dialog.scss.js.map +1 -1
  32. package/es/components/dropdown/dropdown.d.ts +3 -2
  33. package/es/components/dropdown/dropdown.d.ts.map +1 -1
  34. package/es/components/dropdown/dropdown.js +9 -2
  35. package/es/components/dropdown/dropdown.js.map +1 -1
  36. package/es/components/dropdown/dropdown.scss.js +1 -1
  37. package/es/components/feature-flags/index.d.ts.map +1 -1
  38. package/es/components/feature-flags/index.js +8 -3
  39. package/es/components/feature-flags/index.js.map +1 -1
  40. package/es/components/file-uploader/file-uploader-button.d.ts.map +1 -1
  41. package/es/components/file-uploader/file-uploader-button.js +3 -2
  42. package/es/components/file-uploader/file-uploader-button.js.map +1 -1
  43. package/es/components/file-uploader/file-uploader-drop-container.d.ts +1 -1
  44. package/es/components/file-uploader/file-uploader-drop-container.d.ts.map +1 -1
  45. package/es/components/file-uploader/file-uploader-drop-container.js +3 -2
  46. package/es/components/file-uploader/file-uploader-drop-container.js.map +1 -1
  47. package/es/components/file-uploader/file-uploader-item.d.ts +4 -0
  48. package/es/components/file-uploader/file-uploader-item.d.ts.map +1 -1
  49. package/es/components/file-uploader/file-uploader-item.js +6 -0
  50. package/es/components/file-uploader/file-uploader-item.js.map +1 -1
  51. package/es/components/file-uploader/file-uploader.scss.js +1 -1
  52. package/es/components/file-uploader/file-uploader.scss.js.map +1 -1
  53. package/es/components/fluid-combo-box/fluid-combo-box.scss.js +1 -1
  54. package/es/components/fluid-dropdown/fluid-dropdown.scss.js +1 -1
  55. package/es/components/fluid-form/fluid-form.d.ts +19 -0
  56. package/es/components/fluid-form/fluid-form.d.ts.map +1 -0
  57. package/es/components/fluid-form/fluid-form.js +44 -0
  58. package/es/components/fluid-form/fluid-form.js.map +1 -0
  59. package/es/components/fluid-form/fluid-form.scss.js +14 -0
  60. package/es/components/fluid-form/fluid-form.scss.js.map +1 -0
  61. package/es/components/fluid-form/index.d.ts +8 -0
  62. package/es/components/fluid-form/index.d.ts.map +1 -0
  63. package/es/components/fluid-form/index.js +8 -0
  64. package/es/components/fluid-multi-select/fluid-multi-select.scss.js +1 -1
  65. package/es/components/fluid-number-input/fluid-number-input.scss.js +1 -1
  66. package/es/components/fluid-number-input/fluid-number-input.scss.js.map +1 -1
  67. package/es/components/fluid-password-input/fluid-password-input.scss.js +1 -1
  68. package/es/components/fluid-password-input/fluid-password-input.scss.js.map +1 -1
  69. package/es/components/fluid-search/fluid-search.scss.js +1 -1
  70. package/es/components/fluid-select/fluid-select.scss.js +1 -1
  71. package/es/components/fluid-select/fluid-select.scss.js.map +1 -1
  72. package/es/components/fluid-text-input/fluid-text-input.scss.js +1 -1
  73. package/es/components/fluid-text-input/fluid-text-input.scss.js.map +1 -1
  74. package/es/components/fluid-textarea/fluid-textarea.scss.js +1 -1
  75. package/es/components/fluid-textarea/fluid-textarea.scss.js.map +1 -1
  76. package/es/components/fluid-time-picker/fluid-time-picker.scss.js +1 -1
  77. package/es/components/form/form-item.scss.js +1 -1
  78. package/es/components/form/form.scss.js +1 -1
  79. package/es/components/form-group/form-group.scss.js +1 -1
  80. package/es/components/heading/heading.scss.js +1 -1
  81. package/es/components/icon/icon.d.ts +1 -1
  82. package/es/components/icon-button/icon-button.scss.js +1 -1
  83. package/es/components/icon-indicator/icon-indicator.scss.js +1 -1
  84. package/es/components/inline-loading/inline-loading.scss.js +1 -1
  85. package/es/components/link/link.d.ts +1 -1
  86. package/es/components/link/link.d.ts.map +1 -1
  87. package/es/components/link/link.js.map +1 -1
  88. package/es/components/link/link.scss.js +1 -1
  89. package/es/components/list/list.scss.js +1 -1
  90. package/es/components/loading/loading.scss.js +1 -1
  91. package/es/components/menu/menu-item.scss.js +1 -1
  92. package/es/components/menu/menu.scss.js +1 -1
  93. package/es/components/menu-button/menu-button.scss.js +1 -1
  94. package/es/components/modal/modal-base.d.ts +144 -0
  95. package/es/components/modal/modal-base.d.ts.map +1 -0
  96. package/es/components/modal/modal-base.js +229 -0
  97. package/es/components/modal/modal-base.js.map +1 -0
  98. package/es/components/modal/modal.d.ts +15 -89
  99. package/es/components/modal/modal.d.ts.map +1 -1
  100. package/es/components/modal/modal.js +66 -169
  101. package/es/components/modal/modal.js.map +1 -1
  102. package/es/components/modal/modal.scss.js +1 -1
  103. package/es/components/modal/modal.scss.js.map +1 -1
  104. package/es/components/multi-select/multi-select.scss.js +1 -1
  105. package/es/components/notification/actionable-notification.d.ts +1 -1
  106. package/es/components/notification/actionable-notification.scss.js +1 -1
  107. package/es/components/notification/callout-notification.d.ts +1 -1
  108. package/es/components/notification/inline-notification.d.ts +1 -1
  109. package/es/components/notification/inline-notification.scss.js +1 -1
  110. package/es/components/notification/toast-notification.scss.js +1 -1
  111. package/es/components/number-input/number-input.scss.js +1 -1
  112. package/es/components/overflow-menu/overflow-menu.scss.js +1 -1
  113. package/es/components/page-header/index.d.ts +4 -0
  114. package/es/components/page-header/index.d.ts.map +1 -1
  115. package/es/components/page-header/page-header-breadcrumb.d.ts +7 -0
  116. package/es/components/page-header/page-header-breadcrumb.d.ts.map +1 -1
  117. package/es/components/page-header/page-header-breadcrumb.js +7 -0
  118. package/es/components/page-header/page-header-breadcrumb.js.map +1 -1
  119. package/es/components/page-header/page-header-content-text.d.ts +7 -0
  120. package/es/components/page-header/page-header-content-text.d.ts.map +1 -1
  121. package/es/components/page-header/page-header-content-text.js +7 -0
  122. package/es/components/page-header/page-header-content-text.js.map +1 -1
  123. package/es/components/page-header/page-header-content.d.ts +7 -0
  124. package/es/components/page-header/page-header-content.d.ts.map +1 -1
  125. package/es/components/page-header/page-header-content.js +7 -0
  126. package/es/components/page-header/page-header-content.js.map +1 -1
  127. package/es/components/page-header/page-header-hero-image.d.ts +7 -0
  128. package/es/components/page-header/page-header-hero-image.d.ts.map +1 -1
  129. package/es/components/page-header/page-header-hero-image.js +7 -0
  130. package/es/components/page-header/page-header-hero-image.js.map +1 -1
  131. package/es/components/page-header/page-header-tabs.d.ts +7 -0
  132. package/es/components/page-header/page-header-tabs.d.ts.map +1 -1
  133. package/es/components/page-header/page-header-tabs.js +7 -0
  134. package/es/components/page-header/page-header-tabs.js.map +1 -1
  135. package/es/components/page-header/page-header.d.ts +7 -0
  136. package/es/components/page-header/page-header.d.ts.map +1 -1
  137. package/es/components/page-header/page-header.js +7 -0
  138. package/es/components/page-header/page-header.js.map +1 -1
  139. package/es/components/page-header/page-header.scss.js +1 -1
  140. package/es/components/page-header/page-header.scss.js.map +1 -1
  141. package/es/components/pagination/pagination.scss.js +1 -1
  142. package/es/components/pagination-nav/pagination-nav.scss.js +1 -1
  143. package/es/components/password-input/password-input.d.ts.map +1 -1
  144. package/es/components/password-input/password-input.js +1 -1
  145. package/es/components/password-input/password-input.js.map +1 -1
  146. package/es/components/password-input/password-input.scss.js +1 -1
  147. package/es/components/popover/popover.scss.js +1 -1
  148. package/es/components/progress-bar/progress-bar.scss.js +1 -1
  149. package/es/components/progress-indicator/progress-indicator.scss.js +1 -1
  150. package/es/components/radio-button/radio-button.scss.js +1 -1
  151. package/es/components/search/search.d.ts +4 -0
  152. package/es/components/search/search.d.ts.map +1 -1
  153. package/es/components/search/search.js +4 -1
  154. package/es/components/search/search.js.map +1 -1
  155. package/es/components/search/search.scss.js +1 -1
  156. package/es/components/select/select.scss.js +1 -1
  157. package/es/components/shape-indicator/shape-indicator.scss.js +1 -1
  158. package/es/components/side-panel/side-panel.d.ts +1 -1
  159. package/es/components/side-panel/side-panel.js +1 -1
  160. package/es/components/side-panel/side-panel.js.map +1 -1
  161. package/es/components/skeleton-icon/skeleton-icon.scss.js +1 -1
  162. package/es/components/skeleton-placeholder/skeleton-placeholder.scss.js +1 -1
  163. package/es/components/skeleton-text/skeleton-text.scss.js +1 -1
  164. package/es/components/skip-to-content/skip-to-content.scss.js +1 -1
  165. package/es/components/slider/slider.scss.js +1 -1
  166. package/es/components/slug/slug.scss.js +1 -1
  167. package/es/components/stack/stack.scss.js +1 -1
  168. package/es/components/structured-list/structured-list.scss.js +1 -1
  169. package/es/components/tabs/stories/tabs-wrapper.d.ts +4 -0
  170. package/es/components/tabs/stories/tabs-wrapper.d.ts.map +1 -1
  171. package/es/components/tabs/stories/tabs-wrapper.js +22 -10
  172. package/es/components/tabs/stories/tabs-wrapper.js.map +1 -1
  173. package/es/components/tabs/tab.d.ts +34 -1
  174. package/es/components/tabs/tab.d.ts.map +1 -1
  175. package/es/components/tabs/tab.js +36 -3
  176. package/es/components/tabs/tab.js.map +1 -1
  177. package/es/components/tabs/tabs.d.ts +12 -0
  178. package/es/components/tabs/tabs.d.ts.map +1 -1
  179. package/es/components/tabs/tabs.js +36 -10
  180. package/es/components/tabs/tabs.js.map +1 -1
  181. package/es/components/tabs/tabs.scss.js +1 -1
  182. package/es/components/tabs/tabs.scss.js.map +1 -1
  183. package/es/components/tag/tag.scss.js +1 -1
  184. package/es/components/tearsheet/tearsheet.d.ts +1 -1
  185. package/es/components/tearsheet/tearsheet.js +1 -1
  186. package/es/components/tearsheet/tearsheet.js.map +1 -1
  187. package/es/components/text-input/text-input.d.ts +2 -1
  188. package/es/components/text-input/text-input.d.ts.map +1 -1
  189. package/es/components/text-input/text-input.scss.js +1 -1
  190. package/es/components/textarea/textarea.scss.js +1 -1
  191. package/es/components/tile/clickable-tile.d.ts +1 -1
  192. package/es/components/tile/clickable-tile.d.ts.map +1 -1
  193. package/es/components/tile/clickable-tile.js +6 -1
  194. package/es/components/tile/clickable-tile.js.map +1 -1
  195. package/es/components/tile/radio-tile.d.ts +4 -1
  196. package/es/components/tile/radio-tile.d.ts.map +1 -1
  197. package/es/components/tile/radio-tile.js +23 -6
  198. package/es/components/tile/radio-tile.js.map +1 -1
  199. package/es/components/tile/selectable-tile.d.ts +1 -1
  200. package/es/components/tile/tile.scss.js +1 -1
  201. package/es/components/tile/tile.scss.js.map +1 -1
  202. package/es/components/time-picker/time-picker.d.ts +2 -1
  203. package/es/components/time-picker/time-picker.d.ts.map +1 -1
  204. package/es/components/time-picker/time-picker.scss.js +1 -1
  205. package/es/components/toggle/toggle.scss.js +1 -1
  206. package/es/components/toggle-tip/toggletip.scss.js +1 -1
  207. package/es/components/tooltip/tooltip.scss.js +1 -1
  208. package/es/components/tree-view/tree-view.scss.js +1 -1
  209. package/es/components/ui-shell/header.scss.js +1 -1
  210. package/es/components/ui-shell/side-nav.scss.js +1 -1
  211. package/es/globals/decorators/carbon-element.js.map +1 -1
  212. package/es/globals/directives/spread.d.ts +1 -1
  213. package/es/globals/directives/spread.d.ts.map +1 -1
  214. package/es/globals/internal/icon-loader-utils.d.ts +1 -1
  215. package/es/globals/internal/icon-loader-utils.d.ts.map +1 -1
  216. package/es/globals/mixins/validity.d.ts +2 -1
  217. package/es/globals/mixins/validity.d.ts.map +1 -1
  218. package/es/globals/mixins/validity.js.map +1 -1
  219. package/es/index.js +1 -1
  220. package/es-custom/components/accordion/accordion.scss.js +1 -1
  221. package/es-custom/components/ai-label/ai-label.scss.js +1 -1
  222. package/es-custom/components/ai-skeleton/ai-skeleton.scss.js +1 -1
  223. package/es-custom/components/badge-indicator/badge-indicator.scss.js +1 -1
  224. package/es-custom/components/breadcrumb/breadcrumb.scss.js +1 -1
  225. package/es-custom/components/button/button.d.ts +1 -1
  226. package/es-custom/components/button/button.js +1 -1
  227. package/es-custom/components/button/button.js.map +1 -1
  228. package/es-custom/components/button/button.scss.js +1 -1
  229. package/es-custom/components/checkbox/checkbox.scss.js +1 -1
  230. package/es-custom/components/code-snippet/code-snippet.scss.js +1 -1
  231. package/es-custom/components/combo-box/combo-box.scss.js +1 -1
  232. package/es-custom/components/combo-button/combo-button.scss.js +1 -1
  233. package/es-custom/components/contained-list/contained-list.scss.js +1 -1
  234. package/es-custom/components/content-switcher/content-switcher.scss.js +1 -1
  235. package/es-custom/components/copy-button/copy-button.scss.js +1 -1
  236. package/es-custom/components/data-table/data-table.scss.js +1 -1
  237. package/es-custom/components/date-picker/date-picker.scss.js +1 -1
  238. package/es-custom/components/date-picker/date-picker.scss.js.map +1 -1
  239. package/es-custom/components/dialog/dialog-body.js +1 -1
  240. package/es-custom/components/dialog/dialog-close-button.js +1 -1
  241. package/es-custom/components/dialog/dialog-footer.js +1 -1
  242. package/es-custom/components/dialog/dialog-subtitle.js +1 -1
  243. package/es-custom/components/dialog/dialog-title.js +1 -1
  244. package/es-custom/components/dialog/dialog.d.ts +18 -7
  245. package/es-custom/components/dialog/dialog.d.ts.map +1 -1
  246. package/es-custom/components/dialog/dialog.js +51 -17
  247. package/es-custom/components/dialog/dialog.js.map +1 -1
  248. package/es-custom/components/dialog/dialog.scss.js +1 -1
  249. package/es-custom/components/dialog/dialog.scss.js.map +1 -1
  250. package/es-custom/components/dropdown/dropdown.d.ts +3 -2
  251. package/es-custom/components/dropdown/dropdown.d.ts.map +1 -1
  252. package/es-custom/components/dropdown/dropdown.js +9 -2
  253. package/es-custom/components/dropdown/dropdown.js.map +1 -1
  254. package/es-custom/components/dropdown/dropdown.scss.js +1 -1
  255. package/es-custom/components/feature-flags/index.d.ts.map +1 -1
  256. package/es-custom/components/feature-flags/index.js +8 -3
  257. package/es-custom/components/feature-flags/index.js.map +1 -1
  258. package/es-custom/components/file-uploader/file-uploader-button.d.ts.map +1 -1
  259. package/es-custom/components/file-uploader/file-uploader-button.js +3 -2
  260. package/es-custom/components/file-uploader/file-uploader-button.js.map +1 -1
  261. package/es-custom/components/file-uploader/file-uploader-drop-container.d.ts +1 -1
  262. package/es-custom/components/file-uploader/file-uploader-drop-container.d.ts.map +1 -1
  263. package/es-custom/components/file-uploader/file-uploader-drop-container.js +3 -2
  264. package/es-custom/components/file-uploader/file-uploader-drop-container.js.map +1 -1
  265. package/es-custom/components/file-uploader/file-uploader-item.d.ts +4 -0
  266. package/es-custom/components/file-uploader/file-uploader-item.d.ts.map +1 -1
  267. package/es-custom/components/file-uploader/file-uploader-item.js +6 -0
  268. package/es-custom/components/file-uploader/file-uploader-item.js.map +1 -1
  269. package/es-custom/components/file-uploader/file-uploader.scss.js +1 -1
  270. package/es-custom/components/file-uploader/file-uploader.scss.js.map +1 -1
  271. package/es-custom/components/fluid-combo-box/fluid-combo-box.scss.js +1 -1
  272. package/es-custom/components/fluid-dropdown/fluid-dropdown.scss.js +1 -1
  273. package/es-custom/components/fluid-form/fluid-form.d.ts +19 -0
  274. package/es-custom/components/fluid-form/fluid-form.d.ts.map +1 -0
  275. package/es-custom/components/fluid-form/fluid-form.js +44 -0
  276. package/es-custom/components/fluid-form/fluid-form.js.map +1 -0
  277. package/es-custom/components/fluid-form/fluid-form.scss.js +14 -0
  278. package/es-custom/components/fluid-form/fluid-form.scss.js.map +1 -0
  279. package/es-custom/components/fluid-form/index.d.ts +8 -0
  280. package/es-custom/components/fluid-form/index.d.ts.map +1 -0
  281. package/es-custom/components/fluid-form/index.js +8 -0
  282. package/es-custom/components/fluid-multi-select/fluid-multi-select.scss.js +1 -1
  283. package/es-custom/components/fluid-number-input/fluid-number-input.scss.js +1 -1
  284. package/es-custom/components/fluid-number-input/fluid-number-input.scss.js.map +1 -1
  285. package/es-custom/components/fluid-password-input/fluid-password-input.scss.js +1 -1
  286. package/es-custom/components/fluid-password-input/fluid-password-input.scss.js.map +1 -1
  287. package/es-custom/components/fluid-search/fluid-search.scss.js +1 -1
  288. package/es-custom/components/fluid-select/fluid-select.scss.js +1 -1
  289. package/es-custom/components/fluid-select/fluid-select.scss.js.map +1 -1
  290. package/es-custom/components/fluid-text-input/fluid-text-input.scss.js +1 -1
  291. package/es-custom/components/fluid-text-input/fluid-text-input.scss.js.map +1 -1
  292. package/es-custom/components/fluid-textarea/fluid-textarea.scss.js +1 -1
  293. package/es-custom/components/fluid-textarea/fluid-textarea.scss.js.map +1 -1
  294. package/es-custom/components/fluid-time-picker/fluid-time-picker.scss.js +1 -1
  295. package/es-custom/components/form/form-item.scss.js +1 -1
  296. package/es-custom/components/form/form.scss.js +1 -1
  297. package/es-custom/components/form-group/form-group.scss.js +1 -1
  298. package/es-custom/components/heading/heading.scss.js +1 -1
  299. package/es-custom/components/icon/icon.d.ts +1 -1
  300. package/es-custom/components/icon-button/icon-button.scss.js +1 -1
  301. package/es-custom/components/icon-indicator/icon-indicator.scss.js +1 -1
  302. package/es-custom/components/inline-loading/inline-loading.scss.js +1 -1
  303. package/es-custom/components/link/link.d.ts +1 -1
  304. package/es-custom/components/link/link.d.ts.map +1 -1
  305. package/es-custom/components/link/link.js.map +1 -1
  306. package/es-custom/components/link/link.scss.js +1 -1
  307. package/es-custom/components/list/list.scss.js +1 -1
  308. package/es-custom/components/loading/loading.scss.js +1 -1
  309. package/es-custom/components/menu/menu-item.scss.js +1 -1
  310. package/es-custom/components/menu/menu.scss.js +1 -1
  311. package/es-custom/components/menu-button/menu-button.scss.js +1 -1
  312. package/es-custom/components/modal/modal-base.d.ts +144 -0
  313. package/es-custom/components/modal/modal-base.d.ts.map +1 -0
  314. package/es-custom/components/modal/modal-base.js +229 -0
  315. package/es-custom/components/modal/modal-base.js.map +1 -0
  316. package/es-custom/components/modal/modal.d.ts +15 -89
  317. package/es-custom/components/modal/modal.d.ts.map +1 -1
  318. package/es-custom/components/modal/modal.js +66 -169
  319. package/es-custom/components/modal/modal.js.map +1 -1
  320. package/es-custom/components/modal/modal.scss.js +1 -1
  321. package/es-custom/components/modal/modal.scss.js.map +1 -1
  322. package/es-custom/components/multi-select/multi-select.scss.js +1 -1
  323. package/es-custom/components/notification/actionable-notification.d.ts +1 -1
  324. package/es-custom/components/notification/actionable-notification.scss.js +1 -1
  325. package/es-custom/components/notification/callout-notification.d.ts +1 -1
  326. package/es-custom/components/notification/inline-notification.d.ts +1 -1
  327. package/es-custom/components/notification/inline-notification.scss.js +1 -1
  328. package/es-custom/components/notification/toast-notification.scss.js +1 -1
  329. package/es-custom/components/number-input/number-input.scss.js +1 -1
  330. package/es-custom/components/overflow-menu/overflow-menu.scss.js +1 -1
  331. package/es-custom/components/page-header/index.d.ts +4 -0
  332. package/es-custom/components/page-header/index.d.ts.map +1 -1
  333. package/es-custom/components/page-header/page-header-breadcrumb.d.ts +7 -0
  334. package/es-custom/components/page-header/page-header-breadcrumb.d.ts.map +1 -1
  335. package/es-custom/components/page-header/page-header-breadcrumb.js +7 -0
  336. package/es-custom/components/page-header/page-header-breadcrumb.js.map +1 -1
  337. package/es-custom/components/page-header/page-header-content-text.d.ts +7 -0
  338. package/es-custom/components/page-header/page-header-content-text.d.ts.map +1 -1
  339. package/es-custom/components/page-header/page-header-content-text.js +7 -0
  340. package/es-custom/components/page-header/page-header-content-text.js.map +1 -1
  341. package/es-custom/components/page-header/page-header-content.d.ts +7 -0
  342. package/es-custom/components/page-header/page-header-content.d.ts.map +1 -1
  343. package/es-custom/components/page-header/page-header-content.js +7 -0
  344. package/es-custom/components/page-header/page-header-content.js.map +1 -1
  345. package/es-custom/components/page-header/page-header-hero-image.d.ts +7 -0
  346. package/es-custom/components/page-header/page-header-hero-image.d.ts.map +1 -1
  347. package/es-custom/components/page-header/page-header-hero-image.js +7 -0
  348. package/es-custom/components/page-header/page-header-hero-image.js.map +1 -1
  349. package/es-custom/components/page-header/page-header-tabs.d.ts +7 -0
  350. package/es-custom/components/page-header/page-header-tabs.d.ts.map +1 -1
  351. package/es-custom/components/page-header/page-header-tabs.js +7 -0
  352. package/es-custom/components/page-header/page-header-tabs.js.map +1 -1
  353. package/es-custom/components/page-header/page-header.d.ts +7 -0
  354. package/es-custom/components/page-header/page-header.d.ts.map +1 -1
  355. package/es-custom/components/page-header/page-header.js +7 -0
  356. package/es-custom/components/page-header/page-header.js.map +1 -1
  357. package/es-custom/components/page-header/page-header.scss.js +1 -1
  358. package/es-custom/components/page-header/page-header.scss.js.map +1 -1
  359. package/es-custom/components/pagination/pagination.scss.js +1 -1
  360. package/es-custom/components/pagination-nav/pagination-nav.scss.js +1 -1
  361. package/es-custom/components/password-input/password-input.d.ts.map +1 -1
  362. package/es-custom/components/password-input/password-input.js +1 -1
  363. package/es-custom/components/password-input/password-input.js.map +1 -1
  364. package/es-custom/components/password-input/password-input.scss.js +1 -1
  365. package/es-custom/components/popover/popover.scss.js +1 -1
  366. package/es-custom/components/progress-bar/progress-bar.scss.js +1 -1
  367. package/es-custom/components/progress-indicator/progress-indicator.scss.js +1 -1
  368. package/es-custom/components/radio-button/radio-button.scss.js +1 -1
  369. package/es-custom/components/search/search.d.ts +4 -0
  370. package/es-custom/components/search/search.d.ts.map +1 -1
  371. package/es-custom/components/search/search.js +4 -1
  372. package/es-custom/components/search/search.js.map +1 -1
  373. package/es-custom/components/search/search.scss.js +1 -1
  374. package/es-custom/components/select/select.scss.js +1 -1
  375. package/es-custom/components/shape-indicator/shape-indicator.scss.js +1 -1
  376. package/es-custom/components/side-panel/side-panel.d.ts +1 -1
  377. package/es-custom/components/side-panel/side-panel.js +1 -1
  378. package/es-custom/components/side-panel/side-panel.js.map +1 -1
  379. package/es-custom/components/skeleton-icon/skeleton-icon.scss.js +1 -1
  380. package/es-custom/components/skeleton-placeholder/skeleton-placeholder.scss.js +1 -1
  381. package/es-custom/components/skeleton-text/skeleton-text.scss.js +1 -1
  382. package/es-custom/components/skip-to-content/skip-to-content.scss.js +1 -1
  383. package/es-custom/components/slider/slider.scss.js +1 -1
  384. package/es-custom/components/slug/slug.scss.js +1 -1
  385. package/es-custom/components/stack/stack.scss.js +1 -1
  386. package/es-custom/components/structured-list/structured-list.scss.js +1 -1
  387. package/es-custom/components/tabs/stories/tabs-wrapper.d.ts +4 -0
  388. package/es-custom/components/tabs/stories/tabs-wrapper.d.ts.map +1 -1
  389. package/es-custom/components/tabs/stories/tabs-wrapper.js +22 -10
  390. package/es-custom/components/tabs/stories/tabs-wrapper.js.map +1 -1
  391. package/es-custom/components/tabs/tab.d.ts +34 -1
  392. package/es-custom/components/tabs/tab.d.ts.map +1 -1
  393. package/es-custom/components/tabs/tab.js +36 -3
  394. package/es-custom/components/tabs/tab.js.map +1 -1
  395. package/es-custom/components/tabs/tabs.d.ts +12 -0
  396. package/es-custom/components/tabs/tabs.d.ts.map +1 -1
  397. package/es-custom/components/tabs/tabs.js +36 -10
  398. package/es-custom/components/tabs/tabs.js.map +1 -1
  399. package/es-custom/components/tabs/tabs.scss.js +1 -1
  400. package/es-custom/components/tabs/tabs.scss.js.map +1 -1
  401. package/es-custom/components/tag/tag.scss.js +1 -1
  402. package/es-custom/components/tearsheet/tearsheet.d.ts +1 -1
  403. package/es-custom/components/tearsheet/tearsheet.js +1 -1
  404. package/es-custom/components/tearsheet/tearsheet.js.map +1 -1
  405. package/es-custom/components/text-input/text-input.d.ts +2 -1
  406. package/es-custom/components/text-input/text-input.d.ts.map +1 -1
  407. package/es-custom/components/text-input/text-input.scss.js +1 -1
  408. package/es-custom/components/textarea/textarea.scss.js +1 -1
  409. package/es-custom/components/tile/clickable-tile.d.ts +1 -1
  410. package/es-custom/components/tile/clickable-tile.d.ts.map +1 -1
  411. package/es-custom/components/tile/clickable-tile.js +6 -1
  412. package/es-custom/components/tile/clickable-tile.js.map +1 -1
  413. package/es-custom/components/tile/radio-tile.d.ts +4 -1
  414. package/es-custom/components/tile/radio-tile.d.ts.map +1 -1
  415. package/es-custom/components/tile/radio-tile.js +23 -6
  416. package/es-custom/components/tile/radio-tile.js.map +1 -1
  417. package/es-custom/components/tile/selectable-tile.d.ts +1 -1
  418. package/es-custom/components/tile/tile.scss.js +1 -1
  419. package/es-custom/components/tile/tile.scss.js.map +1 -1
  420. package/es-custom/components/time-picker/time-picker.d.ts +2 -1
  421. package/es-custom/components/time-picker/time-picker.d.ts.map +1 -1
  422. package/es-custom/components/time-picker/time-picker.scss.js +1 -1
  423. package/es-custom/components/toggle/toggle.scss.js +1 -1
  424. package/es-custom/components/toggle-tip/toggletip.scss.js +1 -1
  425. package/es-custom/components/tooltip/tooltip.scss.js +1 -1
  426. package/es-custom/components/tree-view/tree-view.scss.js +1 -1
  427. package/es-custom/components/ui-shell/header.scss.js +1 -1
  428. package/es-custom/components/ui-shell/side-nav.scss.js +1 -1
  429. package/es-custom/globals/decorators/carbon-element.js.map +1 -1
  430. package/es-custom/globals/directives/spread.d.ts +1 -1
  431. package/es-custom/globals/directives/spread.d.ts.map +1 -1
  432. package/es-custom/globals/internal/icon-loader-utils.d.ts +1 -1
  433. package/es-custom/globals/internal/icon-loader-utils.d.ts.map +1 -1
  434. package/es-custom/globals/mixins/validity.d.ts +2 -1
  435. package/es-custom/globals/mixins/validity.d.ts.map +1 -1
  436. package/es-custom/globals/mixins/validity.js.map +1 -1
  437. package/es-custom/index.js +1 -1
  438. package/lib/components/button/button.d.ts +1 -1
  439. package/lib/components/dialog/dialog.d.ts +18 -7
  440. package/lib/components/dialog/dialog.d.ts.map +1 -1
  441. package/lib/components/dropdown/dropdown.d.ts +3 -2
  442. package/lib/components/dropdown/dropdown.d.ts.map +1 -1
  443. package/lib/components/feature-flags/index.d.ts.map +1 -1
  444. package/lib/components/file-uploader/file-uploader-button.d.ts.map +1 -1
  445. package/lib/components/file-uploader/file-uploader-drop-container.d.ts +1 -1
  446. package/lib/components/file-uploader/file-uploader-drop-container.d.ts.map +1 -1
  447. package/lib/components/file-uploader/file-uploader-item.d.ts +4 -0
  448. package/lib/components/file-uploader/file-uploader-item.d.ts.map +1 -1
  449. package/lib/components/fluid-form/fluid-form.d.ts +19 -0
  450. package/lib/components/fluid-form/fluid-form.d.ts.map +1 -0
  451. package/lib/components/fluid-form/index.d.ts +8 -0
  452. package/lib/components/fluid-form/index.d.ts.map +1 -0
  453. package/lib/components/icon/icon.d.ts +1 -1
  454. package/lib/components/link/link.d.ts +1 -1
  455. package/lib/components/link/link.d.ts.map +1 -1
  456. package/lib/components/modal/modal-base.d.ts +144 -0
  457. package/lib/components/modal/modal-base.d.ts.map +1 -0
  458. package/lib/components/modal/modal.d.ts +15 -89
  459. package/lib/components/modal/modal.d.ts.map +1 -1
  460. package/lib/components/notification/actionable-notification.d.ts +1 -1
  461. package/lib/components/notification/callout-notification.d.ts +1 -1
  462. package/lib/components/notification/inline-notification.d.ts +1 -1
  463. package/lib/components/page-header/index.d.ts +4 -0
  464. package/lib/components/page-header/index.d.ts.map +1 -1
  465. package/lib/components/page-header/page-header-breadcrumb.d.ts +7 -0
  466. package/lib/components/page-header/page-header-breadcrumb.d.ts.map +1 -1
  467. package/lib/components/page-header/page-header-content-text.d.ts +7 -0
  468. package/lib/components/page-header/page-header-content-text.d.ts.map +1 -1
  469. package/lib/components/page-header/page-header-content.d.ts +7 -0
  470. package/lib/components/page-header/page-header-content.d.ts.map +1 -1
  471. package/lib/components/page-header/page-header-hero-image.d.ts +7 -0
  472. package/lib/components/page-header/page-header-hero-image.d.ts.map +1 -1
  473. package/lib/components/page-header/page-header-tabs.d.ts +7 -0
  474. package/lib/components/page-header/page-header-tabs.d.ts.map +1 -1
  475. package/lib/components/page-header/page-header.d.ts +7 -0
  476. package/lib/components/page-header/page-header.d.ts.map +1 -1
  477. package/lib/components/password-input/password-input.d.ts.map +1 -1
  478. package/lib/components/search/search.d.ts +4 -0
  479. package/lib/components/search/search.d.ts.map +1 -1
  480. package/lib/components/side-panel/side-panel.d.ts +1 -1
  481. package/lib/components/tabs/stories/tabs-wrapper.d.ts +4 -0
  482. package/lib/components/tabs/stories/tabs-wrapper.d.ts.map +1 -1
  483. package/lib/components/tabs/tab.d.ts +34 -1
  484. package/lib/components/tabs/tab.d.ts.map +1 -1
  485. package/lib/components/tabs/tabs.d.ts +12 -0
  486. package/lib/components/tabs/tabs.d.ts.map +1 -1
  487. package/lib/components/tearsheet/tearsheet.d.ts +1 -1
  488. package/lib/components/text-input/text-input.d.ts +2 -1
  489. package/lib/components/text-input/text-input.d.ts.map +1 -1
  490. package/lib/components/tile/clickable-tile.d.ts +1 -1
  491. package/lib/components/tile/clickable-tile.d.ts.map +1 -1
  492. package/lib/components/tile/radio-tile.d.ts +4 -1
  493. package/lib/components/tile/radio-tile.d.ts.map +1 -1
  494. package/lib/components/tile/selectable-tile.d.ts +1 -1
  495. package/lib/components/time-picker/time-picker.d.ts +2 -1
  496. package/lib/components/time-picker/time-picker.d.ts.map +1 -1
  497. package/lib/globals/directives/spread.d.ts +1 -1
  498. package/lib/globals/directives/spread.d.ts.map +1 -1
  499. package/lib/globals/internal/icon-loader-utils.d.ts +1 -1
  500. package/lib/globals/internal/icon-loader-utils.d.ts.map +1 -1
  501. package/lib/globals/mixins/validity.d.ts +2 -1
  502. package/lib/globals/mixins/validity.d.ts.map +1 -1
  503. package/package.json +13 -13
  504. package/scss/components/date-picker/date-picker.scss +2 -1
  505. package/scss/components/dialog/dialog.scss +10 -4
  506. package/scss/components/file-uploader/file-uploader.scss +4 -0
  507. package/scss/components/fluid-form/fluid-form.scss +24 -0
  508. package/scss/components/fluid-number-input/fluid-number-input.scss +3 -1
  509. package/scss/components/fluid-password-input/fluid-password-input.scss +1 -1
  510. package/scss/components/fluid-select/fluid-select.scss +3 -1
  511. package/scss/components/fluid-text-input/fluid-text-input.scss +3 -1
  512. package/scss/components/fluid-textarea/fluid-textarea.scss +3 -1
  513. package/scss/components/modal/modal.scss +28 -0
  514. package/scss/components/page-header/page-header.scss +2 -0
  515. package/scss/components/tabs/tabs.scss +121 -1
  516. package/scss/components/tile/tile.scss +67 -1
  517. package/telemetry.yml +10 -6
@@ -0,0 +1,144 @@
1
+ /**
2
+ * Copyright IBM Corp. 2026
3
+ *
4
+ * This source code is licensed under the Apache-2.0 license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+ import { LitElement } from 'lit';
8
+ import CDSModalFooter from './modal-footer';
9
+ import '../inline-loading';
10
+ declare const CDSModalBase_base: {
11
+ new (...args: any[]): {
12
+ _handles: Set<import("../../globals/internal/handle").default>;
13
+ connectedCallback(): void;
14
+ disconnectedCallback(): void;
15
+ };
16
+ _hostListeners: {
17
+ [listenerName: string]: {
18
+ [type: string]: {
19
+ options?: boolean | AddEventListenerOptions;
20
+ };
21
+ };
22
+ };
23
+ } & typeof LitElement;
24
+ /**
25
+ * Base class for Modal and Dialog components.
26
+ */
27
+ export declare class CDSModalBase extends CDSModalBase_base {
28
+ /**
29
+ * The element that had focus before this modal gets open.
30
+ */
31
+ protected _launcher: Element | null;
32
+ /**
33
+ * The inline loading element that renders when `loading-status` is not `inactive`
34
+ */
35
+ protected _loadingEl: HTMLElement | null;
36
+ /**
37
+ * Loading statuses that are not `inactive`
38
+ */
39
+ protected WORKING_LOADING_STATUSES: string[];
40
+ /**
41
+ * Specify the loading status
42
+ */
43
+ loadingStatus: 'inactive' | 'active' | 'finished' | 'error';
44
+ /**
45
+ * Specify the description for the loading text
46
+ */
47
+ loadingDescription: string;
48
+ /**
49
+ * Provide a delay for the setTimeout for success
50
+ */
51
+ loadingSuccessDelay: number;
52
+ /**
53
+ * Specify the description for the loading icon
54
+ */
55
+ loadingIconDescription: string;
56
+ /**
57
+ * `true` if the modal should be open.
58
+ */
59
+ open: boolean;
60
+ /**
61
+ * Specify whether the Modal is displaying an alert, error or warning.
62
+ * Should go hand in hand with the danger prop.
63
+ */
64
+ alert: boolean;
65
+ /**
66
+ * Prevent closing on click outside of modal
67
+ */
68
+ preventCloseOnClickOutside: boolean;
69
+ /**
70
+ * Prevent the modal from closing after clicking the close button
71
+ */
72
+ preventClose: boolean;
73
+ /**
74
+ * Handles `slotchange` event.
75
+ */
76
+ protected _handleSlotChange(): void;
77
+ /**
78
+ * Handles `click` event on the modal container.
79
+ *
80
+ * @param event The event.
81
+ */
82
+ protected _handleClickContainer(event: MouseEvent): void;
83
+ /**
84
+ * Handles user-initiated close request of this modal.
85
+ *
86
+ * @param triggeredBy The element that triggered this close request.
87
+ */
88
+ protected _handleUserInitiatedClose(triggeredBy: EventTarget | null): void;
89
+ /**
90
+ * Get focusable elements.
91
+ *
92
+ * Querying all tabbable items.
93
+ *
94
+ * @returns {{first: HTMLElement, last: HTMLElement, all: HTMLElement[]}} Returns an object with various elements.
95
+ */
96
+ protected getFocusable(): {
97
+ first: HTMLElement | undefined;
98
+ last: HTMLElement | undefined;
99
+ all: HTMLElement[];
100
+ };
101
+ protected _getFooterElements(): {
102
+ footer: Element | null;
103
+ primaryButton: HTMLElement | null;
104
+ secondaryButtons: HTMLElement[];
105
+ };
106
+ protected _initializeLoadingEl(footer: CDSModalFooter): HTMLElement | null;
107
+ protected _updateLoadingElement(): void;
108
+ /**
109
+ * @param ms The number of milliseconds.
110
+ * @returns A promise that is resolves after the given milliseconds.
111
+ */
112
+ protected static _delay(ms?: number): Promise<unknown>;
113
+ /**
114
+ * A selector selecting buttons that should close this modal.
115
+ */
116
+ static get selectorCloseButton(): string;
117
+ /**
118
+ * A selector selecting tabbable nodes.
119
+ */
120
+ static get selectorTabbable(): string;
121
+ /**
122
+ * A selector selecting the nodes that should be focused when modal gets open.
123
+ */
124
+ static get selectorPrimaryFocus(): string;
125
+ /**
126
+ * A selector selecting the modal body component
127
+ */
128
+ static get selectorModalBody(): string;
129
+ /**
130
+ * The name of the custom event fired before this modal is being closed upon a user gesture.
131
+ * Cancellation of this event stops the user-initiated action of closing this modal.
132
+ */
133
+ static get eventBeforeClose(): string;
134
+ /**
135
+ * The name of the custom event fired after this modal is closed upon a user gesture.
136
+ */
137
+ static get eventClose(): string;
138
+ /**
139
+ * The name of the custom event fired when this modal reaches a `finished` loading state
140
+ */
141
+ static get eventOnLoadingSuccess(): string;
142
+ }
143
+ export default CDSModalBase;
144
+ //# sourceMappingURL=modal-base.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"modal-base.d.ts","sourceRoot":"","sources":["../../../src/components/modal/modal-base.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC;AAKjC,OAAO,cAAc,MAAM,gBAAgB,CAAC;AAC5C,OAAO,mBAAmB,CAAC;;;;;;;;;;uBAiBtB,CAAA;;;;;AAfL;;GAEG;AACH,qBAAa,YAAa,SAAQ,iBAA6B;IAC7D;;OAEG;IACH,SAAS,CAAC,SAAS,EAAE,OAAO,GAAG,IAAI,CAAQ;IAE3C;;OAEG;IACH,SAAS,CAAC,UAAU,EAAE,WAAW,GAAG,IAAI,CAAQ;IAEhD;;OAEG;IACH,SAAS,CAAC,wBAAwB,WAAmC;IAErE;;OAEG;IAEH,aAAa,EAAE,UAAU,GAAG,QAAQ,GAAG,UAAU,GAAG,OAAO,CAAc;IAEzE;;OAEG;IAEH,kBAAkB,SAAM;IAExB;;OAEG;IAEH,mBAAmB,SAAQ;IAE3B;;OAEG;IAEH,sBAAsB,SAAa;IAEnC;;OAEG;IAEH,IAAI,UAAS;IAEb;;;OAGG;IAEH,KAAK,UAAS;IAEd;;OAEG;IAEH,0BAA0B,UAAS;IAEnC;;OAEG;IAEH,YAAY,UAAS;IAErB;;OAEG;IACH,SAAS,CAAC,iBAAiB;IAQ3B;;;;OAIG;IACH,SAAS,CAAC,qBAAqB,CAAC,KAAK,EAAE,UAAU;IAUjD;;;;OAIG;IACH,SAAS,CAAC,yBAAyB,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI;IA6BnE;;;;;;OAMG;IACH,SAAS,CAAC,YAAY,IAAI;QACxB,KAAK,EAAE,WAAW,GAAG,SAAS,CAAC;QAC/B,IAAI,EAAE,WAAW,GAAG,SAAS,CAAC;QAC9B,GAAG,EAAE,WAAW,EAAE,CAAC;KACpB;IAqBD,SAAS,CAAC,kBAAkB;;;;;IAsB5B,SAAS,CAAC,oBAAoB,CAAC,MAAM,EAAE,cAAc;IAiBrD,SAAS,CAAC,qBAAqB;IAmD/B;;;OAGG;IACH,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,SAAI;IAM9B;;OAEG;IACH,MAAM,KAAK,mBAAmB,WAE7B;IAED;;OAEG;IACH,MAAM,KAAK,gBAAgB,WAE1B;IAED;;OAEG;IACH,MAAM,KAAK,oBAAoB,WAE9B;IAED;;OAEG;IACH,MAAM,KAAK,iBAAiB,WAE3B;IAED;;;OAGG;IACH,MAAM,KAAK,gBAAgB,WAE1B;IAED;;OAEG;IACH,MAAM,KAAK,UAAU,WAEpB;IAED;;OAEG;IACH,MAAM,KAAK,qBAAqB,WAE/B;CACF;AAED,eAAe,YAAY,CAAC"}
@@ -0,0 +1,229 @@
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 { selectorTabbable } from "../../globals/settings.js";
9
+ import { __decorate } from "../../_virtual/_@oxc-project_runtime@0.126.0/helpers/decorate.js";
10
+ import HostListenerMixin from "../../globals/mixins/host-listener.js";
11
+ import "../inline-loading/index.js";
12
+ import { LitElement } from "lit";
13
+ import { property } from "lit/decorators.js";
14
+ //#region src/components/modal/modal-base.ts
15
+ /**
16
+ * Copyright IBM Corp. 2026
17
+ *
18
+ * This source code is licensed under the Apache-2.0 license found in the
19
+ * LICENSE file in the root directory of this source tree.
20
+ */
21
+ /**
22
+ * Base class for Modal and Dialog components.
23
+ */
24
+ var CDSModalBase = class extends HostListenerMixin(LitElement) {
25
+ constructor(..._args) {
26
+ super(..._args);
27
+ this._launcher = null;
28
+ this._loadingEl = null;
29
+ this.WORKING_LOADING_STATUSES = [
30
+ "active",
31
+ "finished",
32
+ "error"
33
+ ];
34
+ this.loadingStatus = "inactive";
35
+ this.loadingDescription = "";
36
+ this.loadingSuccessDelay = 1500;
37
+ this.loadingIconDescription = "Loading";
38
+ this.open = false;
39
+ this.alert = false;
40
+ this.preventCloseOnClickOutside = false;
41
+ this.preventClose = false;
42
+ }
43
+ /**
44
+ * Handles `slotchange` event.
45
+ */
46
+ _handleSlotChange() {
47
+ if (this.querySelector(`cds-custom-modal-footer`)) this.setAttribute("has-footer", "");
48
+ else this.removeAttribute("has-footer");
49
+ }
50
+ /**
51
+ * Handles `click` event on the modal container.
52
+ *
53
+ * @param event The event.
54
+ */
55
+ _handleClickContainer(event) {
56
+ const { selectorCloseButton } = this.constructor;
57
+ if (event.target.matches?.(selectorCloseButton) && !this.preventClose) this._handleUserInitiatedClose(event.target);
58
+ }
59
+ /**
60
+ * Handles user-initiated close request of this modal.
61
+ *
62
+ * @param triggeredBy The element that triggered this close request.
63
+ */
64
+ _handleUserInitiatedClose(triggeredBy) {
65
+ if (this.open) {
66
+ const init = {
67
+ bubbles: true,
68
+ cancelable: true,
69
+ composed: true,
70
+ detail: { triggeredBy }
71
+ };
72
+ if (this.dispatchEvent(new CustomEvent(this.constructor.eventBeforeClose, init))) {
73
+ this.open = false;
74
+ this.dispatchEvent(new CustomEvent(this.constructor.eventClose, init));
75
+ }
76
+ }
77
+ }
78
+ /**
79
+ * Get focusable elements.
80
+ *
81
+ * Querying all tabbable items.
82
+ *
83
+ * @returns {{first: HTMLElement, last: HTMLElement, all: HTMLElement[]}} Returns an object with various elements.
84
+ */
85
+ getFocusable() {
86
+ const elements = [];
87
+ const tabbableItems = this.querySelectorAll(selectorTabbable);
88
+ if (tabbableItems?.length) elements.push(...tabbableItems);
89
+ const all = elements?.filter((el) => typeof el?.focus === "function");
90
+ return {
91
+ first: all[0],
92
+ last: all[all.length - 1],
93
+ all
94
+ };
95
+ }
96
+ _getFooterElements() {
97
+ return {
98
+ footer: this.querySelector(`cds-custom-modal-footer`),
99
+ primaryButton: this.querySelector(`cds-custom-modal-footer-button[kind="primary"]`) || this.querySelector(`cds-custom-modal-footer-button[kind="danger"]`) || null,
100
+ secondaryButtons: Array.from(this.querySelectorAll(`cds-custom-modal-footer-button[kind="secondary"]`))
101
+ };
102
+ }
103
+ _initializeLoadingEl(footer) {
104
+ if (!footer) return null;
105
+ if (!this._loadingEl && this.WORKING_LOADING_STATUSES.includes(this.loadingStatus)) {
106
+ const el = document.createElement(`cds-custom-inline-loading`);
107
+ el.setAttribute("controlled", "");
108
+ el.setAttribute("aria-live", "off");
109
+ footer.appendChild(el);
110
+ this._loadingEl = el;
111
+ }
112
+ return this._loadingEl;
113
+ }
114
+ _updateLoadingElement() {
115
+ const { footer, primaryButton, secondaryButtons } = this._getFooterElements();
116
+ const loader = this._initializeLoadingEl(footer);
117
+ if (!footer || !loader || !primaryButton) return;
118
+ if (this.WORKING_LOADING_STATUSES.includes(this.loadingStatus)) {
119
+ loader.style.display = "inline-flex";
120
+ loader.setAttribute("status", String(this.loadingStatus));
121
+ loader.setAttribute("aria-live", "assertive");
122
+ loader.setAttribute("icon-description", String(this.loadingIconDescription));
123
+ loader.textContent = this.loadingDescription;
124
+ primaryButton.style.display = "none";
125
+ if (secondaryButtons[0]) if (!footer.hasAttribute("has-three-buttons")) secondaryButtons[0].setAttribute("disabled", "");
126
+ else secondaryButtons.forEach((b) => b.removeAttribute("disabled"));
127
+ if (this.loadingStatus === "finished") setTimeout(() => {
128
+ this.dispatchEvent(new CustomEvent(this.constructor.eventOnLoadingSuccess, {
129
+ bubbles: true,
130
+ cancelable: true,
131
+ composed: true
132
+ }));
133
+ }, this.loadingSuccessDelay);
134
+ } else if (this.loadingStatus === "inactive") {
135
+ loader.style.display = "none";
136
+ loader.setAttribute("aria-live", "off");
137
+ if (primaryButton) primaryButton.style.display = "";
138
+ if (secondaryButtons) secondaryButtons.forEach((b) => b.removeAttribute("disabled"));
139
+ }
140
+ }
141
+ /**
142
+ * @param ms The number of milliseconds.
143
+ * @returns A promise that is resolves after the given milliseconds.
144
+ */
145
+ static _delay(ms = 0) {
146
+ return new Promise((resolve) => {
147
+ setTimeout(resolve, ms);
148
+ });
149
+ }
150
+ /**
151
+ * A selector selecting buttons that should close this modal.
152
+ */
153
+ static get selectorCloseButton() {
154
+ return `[data-modal-close],cds-custom-modal-close-button`;
155
+ }
156
+ /**
157
+ * A selector selecting tabbable nodes.
158
+ */
159
+ static get selectorTabbable() {
160
+ return selectorTabbable;
161
+ }
162
+ /**
163
+ * A selector selecting the nodes that should be focused when modal gets open.
164
+ */
165
+ static get selectorPrimaryFocus() {
166
+ return `[data-modal-primary-focus],cds-custom-modal-footer cds-custom-button[kind="primary"]`;
167
+ }
168
+ /**
169
+ * A selector selecting the modal body component
170
+ */
171
+ static get selectorModalBody() {
172
+ return `cds-custom-modal-body`;
173
+ }
174
+ /**
175
+ * The name of the custom event fired before this modal is being closed upon a user gesture.
176
+ * Cancellation of this event stops the user-initiated action of closing this modal.
177
+ */
178
+ static get eventBeforeClose() {
179
+ return `cds-custom-modal-beingclosed`;
180
+ }
181
+ /**
182
+ * The name of the custom event fired after this modal is closed upon a user gesture.
183
+ */
184
+ static get eventClose() {
185
+ return `cds-custom-modal-closed`;
186
+ }
187
+ /**
188
+ * The name of the custom event fired when this modal reaches a `finished` loading state
189
+ */
190
+ static get eventOnLoadingSuccess() {
191
+ return `cds-custom-modal-on-loadingsuccess`;
192
+ }
193
+ };
194
+ __decorate([property({
195
+ reflect: true,
196
+ attribute: "loading-status"
197
+ })], CDSModalBase.prototype, "loadingStatus", void 0);
198
+ __decorate([property({
199
+ type: String,
200
+ attribute: "loading-description"
201
+ })], CDSModalBase.prototype, "loadingDescription", void 0);
202
+ __decorate([property({
203
+ type: Number,
204
+ attribute: "loading-success-delay"
205
+ })], CDSModalBase.prototype, "loadingSuccessDelay", void 0);
206
+ __decorate([property({
207
+ type: String,
208
+ attribute: "loading-icon-description"
209
+ })], CDSModalBase.prototype, "loadingIconDescription", void 0);
210
+ __decorate([property({
211
+ type: Boolean,
212
+ reflect: true
213
+ })], CDSModalBase.prototype, "open", void 0);
214
+ __decorate([property({
215
+ type: Boolean,
216
+ reflect: true
217
+ })], CDSModalBase.prototype, "alert", void 0);
218
+ __decorate([property({
219
+ type: Boolean,
220
+ attribute: "prevent-close-on-click-outside"
221
+ })], CDSModalBase.prototype, "preventCloseOnClickOutside", void 0);
222
+ __decorate([property({
223
+ type: Boolean,
224
+ attribute: "prevent-close"
225
+ })], CDSModalBase.prototype, "preventClose", void 0);
226
+ //#endregion
227
+ export { CDSModalBase, CDSModalBase as default };
228
+
229
+ //# sourceMappingURL=modal-base.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"modal-base.js","names":[],"sources":["../../../src/components/modal/modal-base.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2026\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { LitElement } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { prefix } from '../../globals/settings';\nimport HostListenerMixin from '../../globals/mixins/host-listener';\nimport { selectorTabbable } from '../../globals/settings';\nimport CDSModalFooter from './modal-footer';\nimport '../inline-loading';\n\n/**\n * Base class for Modal and Dialog components.\n */\nexport class CDSModalBase extends HostListenerMixin(LitElement) {\n /**\n * The element that had focus before this modal gets open.\n */\n protected _launcher: Element | null = null;\n\n /**\n * The inline loading element that renders when `loading-status` is not `inactive`\n */\n protected _loadingEl: HTMLElement | null = null;\n\n /**\n * Loading statuses that are not `inactive`\n */\n protected WORKING_LOADING_STATUSES = ['active', 'finished', 'error'];\n\n /**\n * Specify the loading status\n */\n @property({ reflect: true, attribute: 'loading-status' })\n loadingStatus: 'inactive' | 'active' | 'finished' | 'error' = 'inactive';\n\n /**\n * Specify the description for the loading text\n */\n @property({ type: String, attribute: 'loading-description' })\n loadingDescription = '';\n\n /**\n * Provide a delay for the setTimeout for success\n */\n @property({ type: Number, attribute: 'loading-success-delay' })\n loadingSuccessDelay = 1500;\n\n /**\n * Specify the description for the loading icon\n */\n @property({ type: String, attribute: 'loading-icon-description' })\n loadingIconDescription = 'Loading';\n\n /**\n * `true` if the modal should be open.\n */\n @property({ type: Boolean, reflect: true })\n open = false;\n\n /**\n * Specify whether the Modal is displaying an alert, error or warning.\n * Should go hand in hand with the danger prop.\n */\n @property({ type: Boolean, reflect: true })\n alert = false;\n\n /**\n * Prevent closing on click outside of modal\n */\n @property({ type: Boolean, attribute: 'prevent-close-on-click-outside' })\n preventCloseOnClickOutside = false;\n\n /**\n * Prevent the modal from closing after clicking the close button\n */\n @property({ type: Boolean, attribute: 'prevent-close' })\n preventClose = false;\n\n /**\n * Handles `slotchange` event.\n */\n protected _handleSlotChange() {\n if (this.querySelector(`${prefix}-modal-footer`)) {\n this.setAttribute('has-footer', '');\n } else {\n this.removeAttribute('has-footer');\n }\n }\n\n /**\n * Handles `click` event on the modal container.\n *\n * @param event The event.\n */\n protected _handleClickContainer(event: MouseEvent) {\n const { selectorCloseButton } = this.constructor as typeof CDSModalBase;\n if (\n (event.target as Element).matches?.(selectorCloseButton) &&\n !this.preventClose\n ) {\n this._handleUserInitiatedClose(event.target);\n }\n }\n\n /**\n * Handles user-initiated close request of this modal.\n *\n * @param triggeredBy The element that triggered this close request.\n */\n protected _handleUserInitiatedClose(triggeredBy: EventTarget | null) {\n if (this.open) {\n const init = {\n bubbles: true,\n cancelable: true,\n composed: true,\n detail: {\n triggeredBy,\n },\n };\n if (\n this.dispatchEvent(\n new CustomEvent(\n (this.constructor as typeof CDSModalBase).eventBeforeClose,\n init\n )\n )\n ) {\n this.open = false;\n this.dispatchEvent(\n new CustomEvent(\n (this.constructor as typeof CDSModalBase).eventClose,\n init\n )\n );\n }\n }\n }\n\n /**\n * Get focusable elements.\n *\n * Querying all tabbable items.\n *\n * @returns {{first: HTMLElement, last: HTMLElement, all: HTMLElement[]}} Returns an object with various elements.\n */\n protected getFocusable(): {\n first: HTMLElement | undefined;\n last: HTMLElement | undefined;\n all: HTMLElement[];\n } {\n const elements: HTMLElement[] = [];\n\n // Add tabbable elements inside light DOM\n const tabbableItems = this.querySelectorAll<HTMLElement>(selectorTabbable);\n if (tabbableItems?.length) {\n elements.push(...tabbableItems);\n }\n\n // Flatten NodeList arrays and filter for focusable items\n const all = elements?.filter(\n (el): el is HTMLElement => typeof el?.focus === 'function'\n );\n\n return {\n first: all[0],\n last: all[all.length - 1],\n all,\n };\n }\n\n protected _getFooterElements() {\n const footer = this.querySelector(`${prefix}-modal-footer`);\n\n const primaryButton =\n this.querySelector<HTMLElement>(\n `${prefix}-modal-footer-button[kind=\"primary\"]`\n ) ||\n this.querySelector<HTMLElement>(\n `${prefix}-modal-footer-button[kind=\"danger\"]`\n ) ||\n null;\n\n const secondaryButtons = Array.from(\n this.querySelectorAll<HTMLElement>(\n `${prefix}-modal-footer-button[kind=\"secondary\"]`\n )\n );\n\n return { footer, primaryButton, secondaryButtons };\n }\n\n // Initializes the inline-loading element\n protected _initializeLoadingEl(footer: CDSModalFooter) {\n if (!footer) return null;\n\n if (\n !this._loadingEl &&\n this.WORKING_LOADING_STATUSES.includes(this.loadingStatus)\n ) {\n const el = document.createElement(`${prefix}-inline-loading`);\n el.setAttribute('controlled', '');\n el.setAttribute('aria-live', 'off');\n footer.appendChild(el);\n this._loadingEl = el as HTMLElement;\n }\n return this._loadingEl;\n }\n\n // Updates the inline loading element in the modal footer\n protected _updateLoadingElement() {\n const { footer, primaryButton, secondaryButtons } =\n this._getFooterElements();\n\n const loader = this._initializeLoadingEl(footer as CDSModalFooter);\n if (!footer || !loader || !primaryButton) return;\n\n if (this.WORKING_LOADING_STATUSES.includes(this.loadingStatus)) {\n loader.style.display = 'inline-flex';\n loader.setAttribute('status', String(this.loadingStatus));\n loader.setAttribute('aria-live', 'assertive');\n loader.setAttribute(\n 'icon-description',\n String(this.loadingIconDescription)\n );\n loader.textContent = this.loadingDescription;\n primaryButton.style.display = 'none';\n\n if (secondaryButtons[0]) {\n if (!footer.hasAttribute('has-three-buttons')) {\n secondaryButtons[0].setAttribute('disabled', '');\n } else {\n secondaryButtons.forEach((b) => b.removeAttribute('disabled'));\n }\n }\n\n if (this.loadingStatus === 'finished') {\n // fire event for successful load\n setTimeout(() => {\n this.dispatchEvent(\n new CustomEvent(\n (this.constructor as typeof CDSModalBase).eventOnLoadingSuccess,\n {\n bubbles: true,\n cancelable: true,\n composed: true,\n }\n )\n );\n }, this.loadingSuccessDelay);\n }\n } else if (this.loadingStatus === 'inactive') {\n loader.style.display = 'none';\n loader.setAttribute('aria-live', 'off');\n\n if (primaryButton) primaryButton.style.display = '';\n if (secondaryButtons)\n secondaryButtons.forEach((b) => b.removeAttribute('disabled'));\n }\n }\n\n /**\n * @param ms The number of milliseconds.\n * @returns A promise that is resolves after the given milliseconds.\n */\n protected static _delay(ms = 0) {\n return new Promise((resolve) => {\n setTimeout(resolve, ms);\n });\n }\n\n /**\n * A selector selecting buttons that should close this modal.\n */\n static get selectorCloseButton() {\n return `[data-modal-close],${prefix}-modal-close-button`;\n }\n\n /**\n * A selector selecting tabbable nodes.\n */\n static get selectorTabbable() {\n return selectorTabbable;\n }\n\n /**\n * A selector selecting the nodes that should be focused when modal gets open.\n */\n static get selectorPrimaryFocus() {\n return `[data-modal-primary-focus],${prefix}-modal-footer ${prefix}-button[kind=\"primary\"]`;\n }\n\n /**\n * A selector selecting the modal body component\n */\n static get selectorModalBody() {\n return `${prefix}-modal-body`;\n }\n\n /**\n * The name of the custom event fired before this modal is being closed upon a user gesture.\n * Cancellation of this event stops the user-initiated action of closing this modal.\n */\n static get eventBeforeClose() {\n return `${prefix}-modal-beingclosed`;\n }\n\n /**\n * The name of the custom event fired after this modal is closed upon a user gesture.\n */\n static get eventClose() {\n return `${prefix}-modal-closed`;\n }\n\n /**\n * The name of the custom event fired when this modal reaches a `finished` loading state\n */\n static get eventOnLoadingSuccess() {\n return `${prefix}-modal-on-loadingsuccess`;\n }\n}\n\nexport default CDSModalBase;\n"],"mappings":"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"}
@@ -4,24 +4,10 @@
4
4
  * This source code is licensed under the Apache-2.0 license found in the
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  */
7
- import { LitElement } from 'lit';
8
7
  import { MODAL_SIZE } from './defs';
9
- import '../inline-loading';
8
+ import CDSModalBase from './modal-base';
9
+ import '../dialog/dialog';
10
10
  export { MODAL_SIZE };
11
- declare const CDSModal_base: {
12
- new (...args: any[]): {
13
- _handles: Set<import("../../globals/internal/handle").default>;
14
- connectedCallback(): void;
15
- disconnectedCallback(): void;
16
- };
17
- _hostListeners: {
18
- [listenerName: string]: {
19
- [type: string]: {
20
- options?: boolean | AddEventListenerOptions;
21
- };
22
- };
23
- };
24
- } & typeof LitElement;
25
11
  /**
26
12
  * Modal.
27
13
  *
@@ -32,15 +18,11 @@ declare const CDSModal_base: {
32
18
  * Cancellation of this event stops the user-initiated action of closing this modal.
33
19
  * @fires cds-custom-modal-closed - The custom event fired after this modal is closed upon a user gesture.
34
20
  */
35
- declare class CDSModal extends CDSModal_base {
21
+ declare class CDSModal extends CDSModalBase {
36
22
  /**
37
- * The element that had focus before this modal gets open.
23
+ * Enable the use of native dialog element instead of div with role="dialog"
38
24
  */
39
- protected _launcher: Element | null;
40
- /**
41
- * The inline loading element that renders when `loading-status` is not `inactive`
42
- */
43
- private _loadingEl;
25
+ enableDialogElement: boolean;
44
26
  /**
45
27
  * MutationObserver that observes the modal-footer
46
28
  */
@@ -49,16 +31,13 @@ declare class CDSModal extends CDSModal_base {
49
31
  * MutationObserver that observes the modal-header
50
32
  */
51
33
  private _headerObserver?;
52
- /**
53
- * Loading statuses that are not `inactive`
54
- */
55
- private WORKING_LOADING_STATUSES;
56
34
  /**
57
35
  * Handles `click` event on this element.
58
36
  *
59
37
  * @param event The event.
60
38
  */
61
39
  protected _handleClick: (event: MouseEvent) => void;
40
+ protected _handleKeydown: ({ key, target }: KeyboardEvent) => void;
62
41
  /**
63
42
  * Handle the keydown event.
64
43
  * Trap the focus inside the side-panel by tracking keydown.key == `Tab`
@@ -66,35 +45,21 @@ declare class CDSModal extends CDSModal_base {
66
45
  * @param {KeyboardEvent} event The keyboard event object.
67
46
  */
68
47
  protected _handleHostKeydown: (event: KeyboardEvent) => void;
69
- protected _handleKeydown: ({ key, target }: KeyboardEvent) => void;
70
48
  /**
71
- * Get focusable elements.
49
+ * `enable-dialog-element`
72
50
  *
73
- * Querying all tabbable items.
74
- *
75
- * @returns {{first: HTMLElement, last: HTMLElement, all: HTMLElement[]}} Returns an object with various elements.
51
+ * Handles `cds-custom-dialog-closed` event from the nested dialog element.
52
+ * Syncs the open state when the dialog closes, and stops the propagation of the
53
+ * event in favour of `cds-custom-modal-closed`
76
54
  */
77
- protected getFocusable(): {
78
- first: HTMLElement | undefined;
79
- last: HTMLElement | undefined;
80
- all: HTMLElement[];
81
- };
55
+ protected _handleDialogClosed: (event: CustomEvent) => void;
82
56
  /**
83
- * Handles `click` event on the modal container.
57
+ * `enable-dialog-element`
84
58
  *
85
- * @param event The event.
59
+ * Handles `cds-custom-dialog-beingclosed` event from the nested dialog element.
60
+ * Stops the propagation of the event in favour of `cds-custom-modal-beingclosed`
86
61
  */
87
- protected _handleClickContainer(event: MouseEvent): void;
88
- /**
89
- * Handles user-initiated close request of this modal.
90
- *
91
- * @param triggeredBy The element that triggered this close request.
92
- */
93
- protected _handleUserInitiatedClose(triggeredBy: EventTarget | null): void;
94
- /**
95
- * Handles `slotchange` event.
96
- */
97
- protected _handleSlotChange(): void;
62
+ protected _handleDialogBeingClosed: (event: CustomEvent) => void;
98
63
  /**
99
64
  * Specify whether the Modal is displaying an alert, error or warning.
100
65
  * Should go hand in hand with the danger prop.
@@ -124,41 +89,10 @@ declare class CDSModal extends CDSModal_base {
124
89
  * Modal size.
125
90
  */
126
91
  size: MODAL_SIZE;
127
- /**
128
- * Prevent closing on click outside of modal
129
- */
130
- preventCloseOnClickOutside: boolean;
131
- /**
132
- * Specify the loading status
133
- */
134
- loadingStatus: 'inactive' | 'active' | 'finished' | 'error';
135
- /**
136
- * Specify the description for the loading text
137
- */
138
- loadingDescription: string;
139
- /**
140
- * Provide a delay for the setTimeout for success
141
- */
142
- loadingSuccessDelay: number;
143
- /**
144
- * Specify the description for the loading icon
145
- */
146
- loadingIconDescription: string;
147
92
  /**
148
93
  * Specify if Enter key should be used as "submit" action that clicks the primary footer button
149
94
  */
150
95
  shouldSubmitOnEnter: boolean;
151
- /**
152
- * Prevent the modal from closing after clicking the close button
153
- */
154
- preventClose: boolean;
155
- private _initializeLoadingEl;
156
- protected _getFooterElements(): {
157
- footer: Element | null;
158
- primaryButton: HTMLElement | null;
159
- secondaryButtons: HTMLElement[];
160
- };
161
- private _updateLoadingElement;
162
96
  firstUpdated(): Promise<void>;
163
97
  /**
164
98
  * Computes the aria-label of the modal based on (in order of highest to lowest precedence):
@@ -192,10 +126,6 @@ declare class CDSModal extends CDSModal_base {
192
126
  * A selector selecting buttons that should close this modal.
193
127
  */
194
128
  static get selectorCloseButton(): string;
195
- /**
196
- * A selector selecting tabbable nodes.
197
- */
198
- static get selectorTabbable(): string;
199
129
  /**
200
130
  * A selector selecting the nodes that should be focused when modal gets open.
201
131
  */
@@ -213,10 +143,6 @@ declare class CDSModal extends CDSModal_base {
213
143
  * The name of the custom event fired after this modal is closed upon a user gesture.
214
144
  */
215
145
  static get eventClose(): string;
216
- /**
217
- * The name of the custom event fired when this modal reaches a `finished` loading state
218
- */
219
- static get eventOnLoadingSuccess(): string;
220
146
  static styles: any;
221
147
  }
222
148
  export default CDSModal;
@@ -1 +1 @@
1
- {"version":3,"file":"modal.d.ts","sourceRoot":"","sources":["../../../src/components/modal/modal.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,UAAU,EAAQ,MAAM,KAAK,CAAC;AAKvC,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAIpC,OAAO,mBAAmB,CAAC;AAG3B,OAAO,EAAE,UAAU,EAAE,CAAC;;;;;;;;;;uBAOjB,CAAC;;;;;AALN;;;;;;;;;GASG;AACH,cACM,QAAS,SAAQ,aAA6B;IAClD;;OAEG;IACH,SAAS,CAAC,SAAS,EAAE,OAAO,GAAG,IAAI,CAAQ;IAE3C;;OAEG;IACH,OAAO,CAAC,UAAU,CAA4B;IAE9C;;OAEG;IACH,OAAO,CAAC,eAAe,CAAC,CAAmB;IAE3C;;OAEG;IACH,OAAO,CAAC,eAAe,CAAC,CAAmB;IAE3C;;OAEG;IACH,OAAO,CAAC,wBAAwB,CAAmC;IAEnE;;;;OAIG;IAIH,SAAS,CAAC,YAAY,GAAI,OAAO,UAAU,UAQzC;IAEF;;;;;OAKG;IAEH,SAAS,CAAC,kBAAkB,GAAI,OAAO,aAAa,UAwClD;IAKF,SAAS,CAAC,cAAc,GAAI,iBAAiB,aAAa,UAMxD;IAEF;;;;;;OAMG;IACH,SAAS,CAAC,YAAY,IAAI;QACxB,KAAK,EAAE,WAAW,GAAG,SAAS,CAAC;QAC/B,IAAI,EAAE,WAAW,GAAG,SAAS,CAAC;QAC9B,GAAG,EAAE,WAAW,EAAE,CAAC;KACpB;IAqBD;;;;OAIG;IACH,SAAS,CAAC,qBAAqB,CAAC,KAAK,EAAE,UAAU;IAWjD;;;;OAIG;IACH,SAAS,CAAC,yBAAyB,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI;IA6BnE;;OAEG;IACH,SAAS,CAAC,iBAAiB;IAQ3B;;;OAGG;IAEH,KAAK,UAAS;IAEd;;OAEG;IAEH,SAAS,EAAE,MAAM,GAAG,IAAI,CAAQ;IAEhC;;OAEG;IAEH,cAAc,SAAM;IAEpB;;OAEG;IAEH,SAAS,UAAS;IAElB;;OAEG;IAMH,mBAAmB,UAAS;IAE5B;;OAEG;IAEH,IAAI,UAAS;IAEb;;OAEG;IAEH,IAAI,aAAqB;IAEzB;;OAEG;IAEH,0BAA0B,UAAS;IAEnC;;OAEG;IAEH,aAAa,EAAE,UAAU,GAAG,QAAQ,GAAG,UAAU,GAAG,OAAO,CAAc;IAEzE;;OAEG;IAEH,kBAAkB,SAAM;IAExB;;OAEG;IAEH,mBAAmB,SAAQ;IAE3B;;OAEG;IAEH,sBAAsB,SAAa;IAEnC;;OAEG;IAMH,mBAAmB,UAAS;IAE5B;;OAEG;IAEH,YAAY,UAAS;IAGrB,OAAO,CAAC,oBAAoB;IAgB5B,SAAS,CAAC,kBAAkB;;;;;IAsB5B,OAAO,CAAC,qBAAqB;IAmDvB,YAAY;IAalB;;;;;OAKG;IACH,OAAO,CAAC,iBAAiB;IAazB;;;;OAIG;IACH,OAAO,CAAC,cAAc;IActB;;;;OAIG;IACH,OAAO,CAAC,cAAc;IActB,iBAAiB;IAMjB,oBAAoB;IAMpB,MAAM;IA4BA,OAAO,CAAC,iBAAiB,KAAA;IAiD/B;;;OAGG;IACH,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,SAAI;IAM9B;;OAEG;IACH,MAAM,KAAK,mBAAmB,WAE7B;IAED;;OAEG;IACH,MAAM,KAAK,gBAAgB,WAE1B;IAED;;OAEG;IACH,MAAM,KAAK,oBAAoB,WAE9B;IAED;;OAEG;IACH,MAAM,KAAK,iBAAiB,WAE3B;IAED;;;OAGG;IACH,MAAM,KAAK,gBAAgB,WAE1B;IAED;;OAEG;IACH,MAAM,KAAK,UAAU,WAEpB;IAED;;OAEG;IACH,MAAM,KAAK,qBAAqB,WAE/B;IAED,MAAM,CAAC,MAAM,MAAU;CACxB;AAED,eAAe,QAAQ,CAAC"}
1
+ {"version":3,"file":"modal.d.ts","sourceRoot":"","sources":["../../../src/components/modal/modal.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAOH,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAGpC,OAAO,YAAY,MAAM,cAAc,CAAC;AACxC,OAAO,kBAAkB,CAAC;AAE1B,OAAO,EAAE,UAAU,EAAE,CAAC;AAEtB;;;;;;;;;GASG;AACH,cACM,QAAS,SAAQ,YAAY;IACjC;;OAEG;IAMH,mBAAmB,UAAS;IAE5B;;OAEG;IACH,OAAO,CAAC,eAAe,CAAC,CAAmB;IAE3C;;OAEG;IACH,OAAO,CAAC,eAAe,CAAC,CAAmB;IAE3C;;;;OAIG;IAIH,SAAS,CAAC,YAAY,GAAI,OAAO,UAAU,UAQzC;IAKF,SAAS,CAAC,cAAc,GAAI,iBAAiB,aAAa,UAOxD;IAEF;;;;;OAKG;IAEH,SAAS,CAAC,kBAAkB,GAAI,OAAO,aAAa,UA2ClD;IAEF;;;;;;OAMG;IACH,SAAS,CAAC,mBAAmB,GAAI,OAAO,WAAW,UAcjD;IAEF;;;;;OAKG;IACH,SAAS,CAAC,wBAAwB,GAAI,OAAO,WAAW,UAiBtD;IAEF;;;OAGG;IAEH,KAAK,UAAS;IAEd;;OAEG;IAEH,SAAS,EAAE,MAAM,GAAG,IAAI,CAAQ;IAEhC;;OAEG;IAEH,cAAc,SAAM;IAEpB;;OAEG;IAEH,SAAS,UAAS;IAElB;;OAEG;IAMH,mBAAmB,UAAS;IAE5B;;OAEG;IAEH,IAAI,UAAS;IAEb;;OAEG;IAEH,IAAI,aAAqB;IAEzB;;OAEG;IAMH,mBAAmB,UAAS;IAEtB,YAAY;IAalB;;;;;OAKG;IACH,OAAO,CAAC,iBAAiB;IAazB;;;;OAIG;IACH,OAAO,CAAC,cAAc;IActB;;;;OAIG;IACH,OAAO,CAAC,cAAc;IActB,iBAAiB;IAMjB,oBAAoB;IAMpB,MAAM;IAmDA,OAAO,CAAC,iBAAiB,KAAA;IAiD/B;;;OAGG;IACH,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,SAAI;IAM9B;;OAEG;IACH,MAAM,KAAK,mBAAmB,WAE7B;IAED;;OAEG;IACH,MAAM,KAAK,oBAAoB,WAE9B;IAED;;OAEG;IACH,MAAM,KAAK,iBAAiB,WAE3B;IAED;;;OAGG;IACH,MAAM,KAAK,gBAAgB,WAE1B;IAED;;OAEG;IACH,MAAM,KAAK,UAAU,WAEpB;IAED,MAAM,CAAC,MAAM,MAAU;CACxB;AAED,eAAe,QAAQ,CAAC"}