@koobiq/components 20.4.2 → 21.0.1

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 (798) hide show
  1. package/accordion/accordion-trigger.scss +3 -10
  2. package/accordion/accordion.scss +4 -6
  3. package/actions-panel/actions-panel-container.scss +45 -1
  4. package/alert/alert.component.scss +3 -2
  5. package/app-switcher/_app-switcher-theme.scss +0 -4
  6. package/app-switcher/app-switcher-dropdown-app.scss +3 -2
  7. package/app-switcher/app-switcher-dropdown-site.scss +2 -1
  8. package/app-switcher/{kbq-app-switcher-list-item.scss → app-switcher-list-item.scss} +18 -4
  9. package/app-switcher/app-switcher-tokens.scss +15 -0
  10. package/app-switcher/app-switcher.scss +14 -4
  11. package/autocomplete/autocomplete.scss +7 -6
  12. package/badge/badge.component.scss +5 -8
  13. package/breadcrumbs/breadcrumbs.scss +25 -10
  14. package/button/_button-base.scss +30 -7
  15. package/button/_button-theme.scss +16 -0
  16. package/button/button-group.scss +7 -0
  17. package/button/button-tokens.scss +0 -2
  18. package/button/button.scss +34 -2
  19. package/button-toggle/_button-toggle-theme.scss +7 -2
  20. package/button-toggle/button-toggle.scss +65 -15
  21. package/checkbox/_checkbox-theme.scss +4 -3
  22. package/checkbox/checkbox.scss +3 -6
  23. package/clamped-text/clamped-text.scss +6 -2
  24. package/code-block/code-block-tokens.scss +0 -224
  25. package/code-block/code-block.scss +20 -9
  26. package/content-panel/content-panel-aside.scss +3 -2
  27. package/content-panel/content-panel-container.scss +37 -0
  28. package/content-panel/content-panel.scss +4 -3
  29. package/core/highlight/_highlight-theme.scss +3 -1
  30. package/core/option/action-container.scss +2 -2
  31. package/core/option/action.scss +2 -1
  32. package/core/option/option.scss +2 -1
  33. package/core/pop-up/_pop-up.scss +0 -37
  34. package/core/selection/pseudo-checkbox/pseudo-checkbox.scss +5 -10
  35. package/core/styles/_core.scss +3 -0
  36. package/core/styles/_koobiq-theme.scss +5 -6
  37. package/core/styles/common/_animation.scss +44 -16
  38. package/core/styles/common/_groups-mixins.scss +21 -19
  39. package/core/styles/common/_groups.scss +4 -32
  40. package/core/styles/common/_index.scss +0 -2
  41. package/core/styles/common/_link.scss +117 -0
  42. package/core/styles/common/_list.scss +0 -26
  43. package/core/styles/common/_overlay.scss +8 -10
  44. package/core/styles/common/_rtl.scss +0 -14
  45. package/core/styles/common/_select.scss +33 -15
  46. package/core/styles/common/_squircle.scss +63 -0
  47. package/core/styles/common/_tokens.scss +0 -11
  48. package/core/styles/common/_vendor-prefixes.scss +0 -20
  49. package/core/styles/functions/_timing.scss +0 -22
  50. package/core/styles/theming/_scrollbar-theme.scss +6 -1
  51. package/core/styles/theming/_theming.scss +13 -65
  52. package/core/styles/typography/_index.scss +0 -1
  53. package/core/styles/typography/_typography.scss +0 -143
  54. package/core/styles/visual/_body.scss +1 -6
  55. package/core/styles/visual/_layout.scss +0 -12
  56. package/datepicker/calendar-body.scss +3 -1
  57. package/datepicker/calendar-header.scss +0 -1
  58. package/datepicker/datepicker-content.scss +33 -1
  59. package/datepicker/datepicker-toggle.scss +0 -38
  60. package/dl/dl-tokens.scss +10 -0
  61. package/dl/dl.scss +113 -13
  62. package/dropdown/_dropdown-theme.scss +4 -16
  63. package/dropdown/dropdown-item.scss +4 -10
  64. package/dropdown/dropdown.scss +2 -1
  65. package/empty-state/_empty-state-theme.scss +10 -4
  66. package/empty-state/empty-state-tokens.scss +4 -4
  67. package/empty-state/empty-state.scss +4 -0
  68. package/fesm2022/koobiq-components-accordion.mjs +347 -229
  69. package/fesm2022/koobiq-components-accordion.mjs.map +1 -1
  70. package/fesm2022/koobiq-components-actions-panel.mjs +302 -187
  71. package/fesm2022/koobiq-components-actions-panel.mjs.map +1 -1
  72. package/fesm2022/koobiq-components-alert.mjs +39 -39
  73. package/fesm2022/koobiq-components-alert.mjs.map +1 -1
  74. package/fesm2022/koobiq-components-app-switcher.mjs +677 -367
  75. package/fesm2022/koobiq-components-app-switcher.mjs.map +1 -1
  76. package/fesm2022/koobiq-components-autocomplete.mjs +620 -253
  77. package/fesm2022/koobiq-components-autocomplete.mjs.map +1 -1
  78. package/fesm2022/koobiq-components-badge.mjs +46 -48
  79. package/fesm2022/koobiq-components-badge.mjs.map +1 -1
  80. package/fesm2022/koobiq-components-breadcrumbs.mjs +221 -169
  81. package/fesm2022/koobiq-components-breadcrumbs.mjs.map +1 -1
  82. package/fesm2022/koobiq-components-button-toggle.mjs +565 -196
  83. package/fesm2022/koobiq-components-button-toggle.mjs.map +1 -1
  84. package/fesm2022/koobiq-components-button.mjs +332 -116
  85. package/fesm2022/koobiq-components-button.mjs.map +1 -1
  86. package/fesm2022/koobiq-components-checkbox.mjs +172 -132
  87. package/fesm2022/koobiq-components-checkbox.mjs.map +1 -1
  88. package/fesm2022/koobiq-components-clamped-text.mjs +165 -158
  89. package/fesm2022/koobiq-components-clamped-text.mjs.map +1 -1
  90. package/fesm2022/koobiq-components-code-block.mjs +791 -609
  91. package/fesm2022/koobiq-components-code-block.mjs.map +1 -1
  92. package/fesm2022/koobiq-components-content-panel.mjs +260 -143
  93. package/fesm2022/koobiq-components-content-panel.mjs.map +1 -1
  94. package/fesm2022/koobiq-components-core.mjs +4342 -1595
  95. package/fesm2022/koobiq-components-core.mjs.map +1 -1
  96. package/fesm2022/koobiq-components-datepicker.mjs +1713 -1606
  97. package/fesm2022/koobiq-components-datepicker.mjs.map +1 -1
  98. package/fesm2022/koobiq-components-divider.mjs +73 -36
  99. package/fesm2022/koobiq-components-divider.mjs.map +1 -1
  100. package/fesm2022/koobiq-components-dl.mjs +447 -89
  101. package/fesm2022/koobiq-components-dl.mjs.map +1 -1
  102. package/fesm2022/koobiq-components-dropdown.mjs +703 -599
  103. package/fesm2022/koobiq-components-dropdown.mjs.map +1 -1
  104. package/fesm2022/koobiq-components-dynamic-translation.mjs +20 -20
  105. package/fesm2022/koobiq-components-dynamic-translation.mjs.map +1 -1
  106. package/fesm2022/koobiq-components-ellipsis-center.mjs +46 -31
  107. package/fesm2022/koobiq-components-ellipsis-center.mjs.map +1 -1
  108. package/fesm2022/koobiq-components-empty-state.mjs +116 -60
  109. package/fesm2022/koobiq-components-empty-state.mjs.map +1 -1
  110. package/fesm2022/koobiq-components-file-upload.mjs +550 -290
  111. package/fesm2022/koobiq-components-file-upload.mjs.map +1 -1
  112. package/fesm2022/koobiq-components-filter-bar.mjs +2871 -2595
  113. package/fesm2022/koobiq-components-filter-bar.mjs.map +1 -1
  114. package/fesm2022/koobiq-components-flag.mjs +79 -24
  115. package/fesm2022/koobiq-components-flag.mjs.map +1 -1
  116. package/fesm2022/koobiq-components-form-field.mjs +389 -525
  117. package/fesm2022/koobiq-components-form-field.mjs.map +1 -1
  118. package/fesm2022/koobiq-components-icon.mjs +400 -149
  119. package/fesm2022/koobiq-components-icon.mjs.map +1 -1
  120. package/fesm2022/koobiq-components-inline-edit.mjs +429 -212
  121. package/fesm2022/koobiq-components-inline-edit.mjs.map +1 -1
  122. package/fesm2022/koobiq-components-input.mjs +601 -459
  123. package/fesm2022/koobiq-components-input.mjs.map +1 -1
  124. package/fesm2022/koobiq-components-link-deprecated.mjs +196 -0
  125. package/fesm2022/koobiq-components-link-deprecated.mjs.map +1 -0
  126. package/fesm2022/koobiq-components-link.mjs +328 -125
  127. package/fesm2022/koobiq-components-link.mjs.map +1 -1
  128. package/fesm2022/koobiq-components-list.mjs +583 -433
  129. package/fesm2022/koobiq-components-list.mjs.map +1 -1
  130. package/fesm2022/koobiq-components-loader-overlay.mjs +167 -68
  131. package/fesm2022/koobiq-components-loader-overlay.mjs.map +1 -1
  132. package/fesm2022/koobiq-components-markdown.mjs +55 -78
  133. package/fesm2022/koobiq-components-markdown.mjs.map +1 -1
  134. package/fesm2022/koobiq-components-modal.mjs +853 -475
  135. package/fesm2022/koobiq-components-modal.mjs.map +1 -1
  136. package/fesm2022/koobiq-components-navbar.mjs +895 -556
  137. package/fesm2022/koobiq-components-navbar.mjs.map +1 -1
  138. package/fesm2022/koobiq-components-notification-center.mjs +680 -310
  139. package/fesm2022/koobiq-components-notification-center.mjs.map +1 -1
  140. package/fesm2022/koobiq-components-overflow-items.mjs +46 -64
  141. package/fesm2022/koobiq-components-overflow-items.mjs.map +1 -1
  142. package/fesm2022/koobiq-components-popover.mjs +684 -285
  143. package/fesm2022/koobiq-components-popover.mjs.map +1 -1
  144. package/fesm2022/koobiq-components-progress-bar.mjs +87 -33
  145. package/fesm2022/koobiq-components-progress-bar.mjs.map +1 -1
  146. package/fesm2022/koobiq-components-progress-spinner.mjs +52 -43
  147. package/fesm2022/koobiq-components-progress-spinner.mjs.map +1 -1
  148. package/fesm2022/koobiq-components-radio.mjs +450 -231
  149. package/fesm2022/koobiq-components-radio.mjs.map +1 -1
  150. package/fesm2022/koobiq-components-resizer.mjs +127 -21
  151. package/fesm2022/koobiq-components-resizer.mjs.map +1 -1
  152. package/fesm2022/koobiq-components-scrollbar-deprecated.mjs +299 -0
  153. package/fesm2022/koobiq-components-scrollbar-deprecated.mjs.map +1 -0
  154. package/fesm2022/koobiq-components-scrollbar.mjs +745 -222
  155. package/fesm2022/koobiq-components-scrollbar.mjs.map +1 -1
  156. package/fesm2022/koobiq-components-search-expandable.mjs +288 -126
  157. package/fesm2022/koobiq-components-search-expandable.mjs.map +1 -1
  158. package/fesm2022/koobiq-components-select.mjs +883 -693
  159. package/fesm2022/koobiq-components-select.mjs.map +1 -1
  160. package/fesm2022/koobiq-components-sidebar.mjs +207 -88
  161. package/fesm2022/koobiq-components-sidebar.mjs.map +1 -1
  162. package/fesm2022/koobiq-components-sidepanel.mjs +689 -296
  163. package/fesm2022/koobiq-components-sidepanel.mjs.map +1 -1
  164. package/fesm2022/koobiq-components-skeleton.mjs +815 -41
  165. package/fesm2022/koobiq-components-skeleton.mjs.map +1 -1
  166. package/fesm2022/koobiq-components-split-button.mjs +109 -88
  167. package/fesm2022/koobiq-components-split-button.mjs.map +1 -1
  168. package/fesm2022/koobiq-components-splitter-deprecated.mjs +591 -0
  169. package/fesm2022/koobiq-components-splitter-deprecated.mjs.map +1 -0
  170. package/fesm2022/koobiq-components-splitter.mjs +890 -501
  171. package/fesm2022/koobiq-components-splitter.mjs.map +1 -1
  172. package/fesm2022/koobiq-components-table.mjs +63 -49
  173. package/fesm2022/koobiq-components-table.mjs.map +1 -1
  174. package/fesm2022/koobiq-components-tabs.mjs +1062 -603
  175. package/fesm2022/koobiq-components-tabs.mjs.map +1 -1
  176. package/fesm2022/koobiq-components-tags.mjs +886 -733
  177. package/fesm2022/koobiq-components-tags.mjs.map +1 -1
  178. package/fesm2022/koobiq-components-textarea.mjs +213 -185
  179. package/fesm2022/koobiq-components-textarea.mjs.map +1 -1
  180. package/fesm2022/koobiq-components-time-range.mjs +299 -147
  181. package/fesm2022/koobiq-components-time-range.mjs.map +1 -1
  182. package/fesm2022/koobiq-components-timepicker.mjs +233 -245
  183. package/fesm2022/koobiq-components-timepicker.mjs.map +1 -1
  184. package/fesm2022/koobiq-components-timezone.mjs +344 -142
  185. package/fesm2022/koobiq-components-timezone.mjs.map +1 -1
  186. package/fesm2022/koobiq-components-title.mjs +229 -145
  187. package/fesm2022/koobiq-components-title.mjs.map +1 -1
  188. package/fesm2022/koobiq-components-toast.mjs +463 -143
  189. package/fesm2022/koobiq-components-toast.mjs.map +1 -1
  190. package/fesm2022/koobiq-components-toggle.mjs +177 -130
  191. package/fesm2022/koobiq-components-toggle.mjs.map +1 -1
  192. package/fesm2022/koobiq-components-tooltip.mjs +657 -214
  193. package/fesm2022/koobiq-components-tooltip.mjs.map +1 -1
  194. package/fesm2022/koobiq-components-top-bar.mjs +61 -32
  195. package/fesm2022/koobiq-components-top-bar.mjs.map +1 -1
  196. package/fesm2022/koobiq-components-tree-select.mjs +734 -488
  197. package/fesm2022/koobiq-components-tree-select.mjs.map +1 -1
  198. package/fesm2022/koobiq-components-tree.mjs +1700 -617
  199. package/fesm2022/koobiq-components-tree.mjs.map +1 -1
  200. package/fesm2022/koobiq-components-username.mjs +290 -135
  201. package/fesm2022/koobiq-components-username.mjs.map +1 -1
  202. package/file-upload/dropzone.scss +31 -3
  203. package/file-upload/file-upload-tokens.scss +2 -22
  204. package/file-upload/file-upload.scss +6 -0
  205. package/file-upload/multiple-file-upload.component.scss +14 -12
  206. package/file-upload/single-file-upload.component.scss +3 -2
  207. package/filter-bar/filters.scss +7 -0
  208. package/filter-bar/pipes/base-pipe.scss +3 -3
  209. package/filter-bar/pipes/pipe-date.scss +8 -1
  210. package/flag/flag-tokens.scss +22 -0
  211. package/flag/flag.scss +34 -21
  212. package/form-field/{_fiedset-theme.scss → _fieldset-theme.scss} +1 -5
  213. package/form-field/_form-field-theme.scss +4 -9
  214. package/form-field/cleaner.scss +3 -1
  215. package/form-field/fieldset.scss +3 -4
  216. package/form-field/form-field.scss +26 -21
  217. package/form-field/password-toggle.scss +3 -1
  218. package/icon/_icon-button-theme.scss +7 -0
  219. package/icon/_icon-theme.scss +10 -7
  220. package/icon/icon-button.scss +0 -2
  221. package/icon/icon-tokens.scss +12 -9
  222. package/inline-edit/inline-edit.scss +40 -54
  223. package/input/input.scss +4 -0
  224. package/link/{_link-theme.scss → deprecated/_link-theme.scss} +11 -6
  225. package/link/deprecated/link-tokens.scss +27 -0
  226. package/link/link-tokens.scss +6 -25
  227. package/link/link.scss +137 -0
  228. package/list/list.scss +3 -2
  229. package/loader-overlay/_loader-overlay-theme.scss +19 -10
  230. package/loader-overlay/loader-overlay-tokens.scss +0 -2
  231. package/loader-overlay/loader-overlay.scss +7 -1
  232. package/markdown/_markdown-theme.scss +16 -0
  233. package/markdown/markdown-tokens.scss +5 -0
  234. package/markdown/markdown.scss +2 -1
  235. package/modal/_modal-animation.scss +23 -14
  236. package/modal/modal-tokens.scss +2 -1
  237. package/modal/modal.scss +35 -31
  238. package/navbar/_navbar-item_horizontal.scss +8 -6
  239. package/navbar/_navbar-item_vertical.scss +18 -6
  240. package/navbar/_navbar-theme.scss +9 -1
  241. package/navbar/navbar-brand.scss +8 -6
  242. package/navbar/navbar-divider.scss +1 -1
  243. package/navbar/navbar-item.scss +8 -9
  244. package/navbar/navbar-toggle.scss +3 -3
  245. package/navbar/navbar-tokens.scss +14 -0
  246. package/navbar/navbar.scss +1 -2
  247. package/navbar/vertical-navbar.scss +2 -2
  248. package/notification-center/_notification-center-theme.scss +11 -6
  249. package/notification-center/notification-center-tokens.scss +33 -0
  250. package/notification-center/notification-center.scss +58 -20
  251. package/notification-center/notification-item.scss +15 -6
  252. package/package.json +112 -81
  253. package/popover/popover-tokens.scss +0 -2
  254. package/popover/popover.scss +41 -19
  255. package/prebuilt-themes/theme.css +1 -1
  256. package/progress-bar/_progress-bar-theme.scss +20 -3
  257. package/progress-bar/progress-bar-tokens.scss +3 -0
  258. package/progress-bar/progress-bar.scss +36 -8
  259. package/progress-spinner/progress-spinner.scss +4 -3
  260. package/radio/_radio-theme.scss +21 -4
  261. package/radio/radio-tokens.scss +7 -3
  262. package/radio/radio.scss +55 -8
  263. package/schematics/collection.json +415 -18
  264. package/schematics/migrations/accordion-state-saving-default/README.md +60 -0
  265. package/schematics/migrations/accordion-state-saving-default/data.cjs +75 -0
  266. package/schematics/migrations/accordion-state-saving-default/index.cjs +61 -0
  267. package/schematics/migrations/accordion-state-saving-default/schema.json +15 -0
  268. package/schematics/migrations/actions-panel-overlay-container/README.md +35 -0
  269. package/schematics/migrations/actions-panel-overlay-container/data.cjs +47 -0
  270. package/schematics/migrations/actions-panel-overlay-container/index.cjs +55 -0
  271. package/schematics/migrations/actions-panel-overlay-container/schema.json +15 -0
  272. package/schematics/migrations/alert-signals/README.md +13 -7
  273. package/schematics/migrations/alert-signals/{data.js → data.cjs} +3 -0
  274. package/schematics/migrations/alert-signals/index.cjs +221 -0
  275. package/schematics/migrations/angular-animations-removal/README.md +46 -0
  276. package/schematics/migrations/angular-animations-removal/data.cjs +150 -0
  277. package/schematics/migrations/angular-animations-removal/index.cjs +21 -0
  278. package/schematics/migrations/angular-animations-removal/schema.json +15 -0
  279. package/schematics/migrations/app-switcher-signals/README.md +88 -0
  280. package/schematics/migrations/app-switcher-signals/data.cjs +136 -0
  281. package/schematics/migrations/app-switcher-signals/index.cjs +366 -0
  282. package/schematics/migrations/app-switcher-signals/schema.json +20 -0
  283. package/schematics/migrations/autocomplete-panel-width-auto/README.md +2 -2
  284. package/schematics/migrations/autocomplete-panel-width-auto/{index.js → index.cjs} +6 -5
  285. package/schematics/migrations/autocomplete-signals/README.md +92 -0
  286. package/schematics/migrations/autocomplete-signals/data.cjs +149 -0
  287. package/schematics/migrations/autocomplete-signals/index.cjs +707 -0
  288. package/schematics/migrations/autocomplete-signals/schema.json +20 -0
  289. package/schematics/migrations/badge-signals/README.md +77 -0
  290. package/schematics/migrations/badge-signals/data.cjs +109 -0
  291. package/schematics/migrations/badge-signals/index.cjs +694 -0
  292. package/schematics/migrations/badge-signals/schema.json +20 -0
  293. package/schematics/migrations/button-state-and-styles/README.md +129 -0
  294. package/schematics/migrations/button-state-and-styles/data.cjs +136 -0
  295. package/schematics/migrations/button-state-and-styles/index.cjs +221 -0
  296. package/schematics/migrations/button-state-and-styles/schema.json +20 -0
  297. package/schematics/migrations/button-supported-colors/README.md +73 -0
  298. package/schematics/migrations/button-supported-colors/data.cjs +106 -0
  299. package/schematics/migrations/button-supported-colors/index.cjs +261 -0
  300. package/schematics/migrations/button-supported-colors/schema.json +20 -0
  301. package/schematics/migrations/button-toggle-signals-and-aria/README.md +137 -0
  302. package/schematics/migrations/button-toggle-signals-and-aria/data.cjs +200 -0
  303. package/schematics/migrations/button-toggle-signals-and-aria/index.cjs +497 -0
  304. package/schematics/migrations/button-toggle-signals-and-aria/schema.json +20 -0
  305. package/schematics/migrations/button-truncation/README.md +110 -0
  306. package/schematics/migrations/button-truncation/data.cjs +88 -0
  307. package/schematics/migrations/button-truncation/index.cjs +270 -0
  308. package/schematics/migrations/button-truncation/schema.json +20 -0
  309. package/schematics/migrations/checkbox-signals/README.md +76 -0
  310. package/schematics/migrations/checkbox-signals/data.cjs +114 -0
  311. package/schematics/migrations/checkbox-signals/index.cjs +635 -0
  312. package/schematics/migrations/checkbox-signals/schema.json +20 -0
  313. package/schematics/migrations/clamped-text-disclosure/README.md +62 -0
  314. package/schematics/migrations/clamped-text-disclosure/data.cjs +101 -0
  315. package/schematics/migrations/clamped-text-disclosure/index.cjs +60 -0
  316. package/schematics/migrations/clamped-text-disclosure/schema.json +15 -0
  317. package/schematics/migrations/code-block-highlight-js-core/README.md +53 -0
  318. package/schematics/migrations/code-block-highlight-js-core/data.cjs +64 -0
  319. package/schematics/migrations/code-block-highlight-js-core/index.cjs +319 -0
  320. package/schematics/migrations/code-block-highlight-js-core/schema.json +20 -0
  321. package/schematics/migrations/code-block-signals/README.md +84 -0
  322. package/schematics/migrations/code-block-signals/data.cjs +121 -0
  323. package/schematics/migrations/code-block-signals/index.cjs +701 -0
  324. package/schematics/migrations/code-block-signals/schema.json +20 -0
  325. package/schematics/migrations/color-signals/README.md +46 -0
  326. package/schematics/migrations/color-signals/data.cjs +131 -0
  327. package/schematics/migrations/color-signals/index.cjs +20 -0
  328. package/schematics/migrations/color-signals/schema.json +20 -0
  329. package/schematics/migrations/core-mixins-removal/README.md +20 -0
  330. package/schematics/migrations/core-mixins-removal/data.cjs +27 -0
  331. package/schematics/migrations/core-mixins-removal/index.cjs +18 -0
  332. package/schematics/migrations/core-mixins-removal/schema.json +15 -0
  333. package/schematics/migrations/css-selectors/README.md +2 -2
  334. package/schematics/migrations/css-selectors/{index.js → index.cjs} +4 -3
  335. package/schematics/migrations/datepicker-signals/README.md +24 -0
  336. package/schematics/migrations/datepicker-signals/data.cjs +49 -0
  337. package/schematics/migrations/datepicker-signals/index.cjs +18 -0
  338. package/schematics/migrations/datepicker-signals/schema.json +15 -0
  339. package/schematics/migrations/deprecated-icons/README.md +2 -2
  340. package/schematics/migrations/deprecated-icons/{index.js → index.cjs} +8 -7
  341. package/schematics/migrations/design-tokens-v4/README.md +75 -0
  342. package/schematics/migrations/design-tokens-v4/index.cjs +60 -0
  343. package/schematics/migrations/design-tokens-v4/schema.json +15 -0
  344. package/schematics/migrations/divider-signals-and-aria/README.md +47 -0
  345. package/schematics/migrations/divider-signals-and-aria/data.cjs +62 -0
  346. package/schematics/migrations/divider-signals-and-aria/index.cjs +212 -0
  347. package/schematics/migrations/divider-signals-and-aria/schema.json +15 -0
  348. package/schematics/migrations/dl-attribute-coercion/README.md +59 -0
  349. package/schematics/migrations/dl-attribute-coercion/data.cjs +85 -0
  350. package/schematics/migrations/dl-attribute-coercion/index.cjs +162 -0
  351. package/schematics/migrations/dl-attribute-coercion/schema.json +15 -0
  352. package/schematics/migrations/dl-standalone-names/README.md +49 -0
  353. package/schematics/migrations/dl-standalone-names/data.cjs +44 -0
  354. package/schematics/migrations/dl-standalone-names/index.cjs +322 -0
  355. package/schematics/migrations/dl-standalone-names/schema.json +20 -0
  356. package/schematics/migrations/dropdown-demote-overlay/README.md +137 -0
  357. package/schematics/migrations/dropdown-demote-overlay/data.cjs +84 -0
  358. package/schematics/migrations/dropdown-demote-overlay/index.cjs +289 -0
  359. package/schematics/migrations/dropdown-demote-overlay/schema.json +20 -0
  360. package/schematics/migrations/dropdown-signals/README.md +83 -0
  361. package/schematics/migrations/dropdown-signals/data.cjs +152 -0
  362. package/schematics/migrations/dropdown-signals/index.cjs +20 -0
  363. package/schematics/migrations/dropdown-signals/schema.json +20 -0
  364. package/schematics/migrations/empty-state-error-color/README.md +84 -0
  365. package/schematics/migrations/empty-state-error-color/data.cjs +85 -0
  366. package/schematics/migrations/empty-state-error-color/index.cjs +72 -0
  367. package/schematics/migrations/empty-state-error-color/schema.json +15 -0
  368. package/schematics/migrations/empty-state-size-attr/README.md +2 -2
  369. package/schematics/migrations/empty-state-size-attr/{index.js → index.cjs} +6 -5
  370. package/schematics/migrations/file-upload-cva-and-primitives/README.md +70 -0
  371. package/schematics/migrations/file-upload-cva-and-primitives/data.cjs +97 -0
  372. package/schematics/migrations/file-upload-cva-and-primitives/index.cjs +61 -0
  373. package/schematics/migrations/file-upload-cva-and-primitives/schema.json +15 -0
  374. package/schematics/migrations/file-upload-deprecated-outputs/README.md +90 -0
  375. package/schematics/migrations/file-upload-deprecated-outputs/data.cjs +20 -0
  376. package/schematics/migrations/file-upload-deprecated-outputs/index.cjs +71 -0
  377. package/schematics/migrations/file-upload-deprecated-outputs/schema.json +20 -0
  378. package/schematics/migrations/filter-bar-rename-action/README.md +183 -0
  379. package/schematics/migrations/filter-bar-rename-action/data.cjs +151 -0
  380. package/schematics/migrations/filter-bar-rename-action/index.cjs +178 -0
  381. package/schematics/migrations/filter-bar-rename-action/schema.json +20 -0
  382. package/schematics/migrations/filter-bar-signals/README.md +27 -16
  383. package/schematics/migrations/filter-bar-signals/{data.js → data.cjs} +1 -2
  384. package/schematics/migrations/filter-bar-signals/index.cjs +225 -0
  385. package/schematics/migrations/filter-bar-state-saving-default/README.md +53 -0
  386. package/schematics/migrations/filter-bar-state-saving-default/data.cjs +87 -0
  387. package/schematics/migrations/filter-bar-state-saving-default/index.cjs +62 -0
  388. package/schematics/migrations/filter-bar-state-saving-default/schema.json +15 -0
  389. package/schematics/migrations/flag-inner-html/README.md +67 -0
  390. package/schematics/migrations/flag-inner-html/data.cjs +58 -0
  391. package/schematics/migrations/flag-inner-html/index.cjs +62 -0
  392. package/schematics/migrations/flag-inner-html/schema.json +15 -0
  393. package/schematics/migrations/form-field-signals/README.md +125 -0
  394. package/schematics/migrations/form-field-signals/data.cjs +288 -0
  395. package/schematics/migrations/form-field-signals/index.cjs +383 -0
  396. package/schematics/migrations/form-field-signals/schema.json +20 -0
  397. package/schematics/migrations/icon-semantics-and-api/README.md +65 -0
  398. package/schematics/migrations/icon-semantics-and-api/data.cjs +97 -0
  399. package/schematics/migrations/icon-semantics-and-api/index.cjs +65 -0
  400. package/schematics/migrations/icon-semantics-and-api/schema.json +15 -0
  401. package/schematics/migrations/icons-replacement/README.md +5 -5
  402. package/schematics/migrations/icons-replacement/{index.js → index.cjs} +4 -3
  403. package/schematics/migrations/inline-edit-a11y-and-types/README.md +82 -0
  404. package/schematics/migrations/inline-edit-a11y-and-types/data.cjs +117 -0
  405. package/schematics/migrations/inline-edit-a11y-and-types/index.cjs +98 -0
  406. package/schematics/migrations/inline-edit-a11y-and-types/schema.json +20 -0
  407. package/schematics/migrations/input-number-surface/README.md +140 -0
  408. package/schematics/migrations/input-number-surface/data.cjs +135 -0
  409. package/schematics/migrations/input-number-surface/index.cjs +293 -0
  410. package/schematics/migrations/input-number-surface/schema.json +20 -0
  411. package/schematics/migrations/input-signals/README.md +20 -0
  412. package/schematics/migrations/input-signals/data.cjs +30 -0
  413. package/schematics/migrations/input-signals/index.cjs +18 -0
  414. package/schematics/migrations/input-signals/schema.json +15 -0
  415. package/schematics/migrations/link-deprecated-path/README.md +144 -0
  416. package/schematics/migrations/link-deprecated-path/index.cjs +20 -0
  417. package/schematics/migrations/link-deprecated-path/schema.json +20 -0
  418. package/schematics/migrations/link-signals/README.md +71 -0
  419. package/schematics/migrations/link-signals/data.cjs +116 -0
  420. package/schematics/migrations/link-signals/index.cjs +416 -0
  421. package/schematics/migrations/link-signals/schema.json +20 -0
  422. package/schematics/migrations/list-signals/README.md +22 -0
  423. package/schematics/migrations/list-signals/data.cjs +35 -0
  424. package/schematics/migrations/list-signals/index.cjs +18 -0
  425. package/schematics/migrations/list-signals/schema.json +15 -0
  426. package/schematics/migrations/list-tree-multiple-input/README.md +105 -0
  427. package/schematics/migrations/list-tree-multiple-input/data.cjs +74 -0
  428. package/schematics/migrations/list-tree-multiple-input/index.cjs +222 -0
  429. package/schematics/migrations/list-tree-multiple-input/schema.json +20 -0
  430. package/schematics/migrations/loader-overlay-signals/README.md +62 -0
  431. package/schematics/migrations/loader-overlay-signals/data.cjs +101 -0
  432. package/schematics/migrations/loader-overlay-signals/index.cjs +698 -0
  433. package/schematics/migrations/loader-overlay-signals/schema.json +20 -0
  434. package/schematics/migrations/loader-overlay-size-attr/README.md +2 -2
  435. package/schematics/migrations/loader-overlay-size-attr/{index.js → index.cjs} +6 -5
  436. package/schematics/migrations/locale-configuration-providers/README.md +163 -0
  437. package/schematics/migrations/locale-configuration-providers/data.cjs +257 -0
  438. package/schematics/migrations/locale-configuration-providers/index.cjs +295 -0
  439. package/schematics/migrations/locale-configuration-providers/schema.json +20 -0
  440. package/schematics/migrations/mandatory-peer-dependencies/README.md +70 -0
  441. package/schematics/migrations/mandatory-peer-dependencies/index.cjs +43 -0
  442. package/schematics/migrations/mandatory-peer-dependencies/schema.json +15 -0
  443. package/schematics/migrations/markdown-signals/README.md +58 -0
  444. package/schematics/migrations/markdown-signals/data.cjs +79 -0
  445. package/schematics/migrations/markdown-signals/index.cjs +640 -0
  446. package/schematics/migrations/markdown-signals/schema.json +20 -0
  447. package/schematics/migrations/modal-dialog-semantics/README.md +106 -0
  448. package/schematics/migrations/modal-dialog-semantics/data.cjs +110 -0
  449. package/schematics/migrations/modal-dialog-semantics/index.cjs +59 -0
  450. package/schematics/migrations/modal-dialog-semantics/schema.json +15 -0
  451. package/schematics/migrations/modal-signals/README.md +88 -0
  452. package/schematics/migrations/modal-signals/data.cjs +132 -0
  453. package/schematics/migrations/modal-signals/index.cjs +20 -0
  454. package/schematics/migrations/modal-signals/schema.json +20 -0
  455. package/schematics/migrations/navbar-signals-and-aria/README.md +111 -0
  456. package/schematics/migrations/navbar-signals-and-aria/data.cjs +198 -0
  457. package/schematics/migrations/navbar-signals-and-aria/index.cjs +569 -0
  458. package/schematics/migrations/navbar-signals-and-aria/schema.json +20 -0
  459. package/schematics/migrations/new-icons-pack/README.md +10 -10
  460. package/schematics/migrations/new-icons-pack/{index.js → index.cjs} +8 -7
  461. package/schematics/migrations/notification-center-signals/README.md +67 -0
  462. package/schematics/migrations/notification-center-signals/data.cjs +66 -0
  463. package/schematics/migrations/notification-center-signals/index.cjs +62 -0
  464. package/schematics/migrations/notification-center-signals/schema.json +15 -0
  465. package/schematics/migrations/option-signals/README.md +37 -0
  466. package/schematics/migrations/option-signals/data.cjs +86 -0
  467. package/schematics/migrations/option-signals/index.cjs +20 -0
  468. package/schematics/migrations/option-signals/schema.json +20 -0
  469. package/schematics/migrations/popover-leave-delay/README.md +51 -0
  470. package/schematics/migrations/popover-leave-delay/data.cjs +61 -0
  471. package/schematics/migrations/popover-leave-delay/index.cjs +55 -0
  472. package/schematics/migrations/popover-leave-delay/schema.json +15 -0
  473. package/schematics/migrations/progress-bar-percentage-and-aria/README.md +54 -0
  474. package/schematics/migrations/progress-bar-percentage-and-aria/data.cjs +76 -0
  475. package/schematics/migrations/progress-bar-percentage-and-aria/index.cjs +59 -0
  476. package/schematics/migrations/progress-bar-percentage-and-aria/schema.json +15 -0
  477. package/schematics/migrations/progress-spinner-signals/README.md +72 -0
  478. package/schematics/migrations/progress-spinner-signals/data.cjs +83 -0
  479. package/schematics/migrations/progress-spinner-signals/index.cjs +695 -0
  480. package/schematics/migrations/progress-spinner-signals/schema.json +20 -0
  481. package/schematics/migrations/query-list-signals/README.md +32 -0
  482. package/schematics/migrations/query-list-signals/data.cjs +70 -0
  483. package/schematics/migrations/query-list-signals/index.cjs +18 -0
  484. package/schematics/migrations/query-list-signals/schema.json +15 -0
  485. package/schematics/migrations/radio-signals-and-aria/README.md +82 -0
  486. package/schematics/migrations/radio-signals-and-aria/data.cjs +163 -0
  487. package/schematics/migrations/radio-signals-and-aria/index.cjs +40 -0
  488. package/schematics/migrations/radio-signals-and-aria/schema.json +20 -0
  489. package/schematics/migrations/read-state-dwell-handlers/README.md +125 -0
  490. package/schematics/migrations/read-state-dwell-handlers/data.cjs +45 -0
  491. package/schematics/migrations/read-state-dwell-handlers/index.cjs +216 -0
  492. package/schematics/migrations/read-state-dwell-handlers/schema.json +20 -0
  493. package/schematics/migrations/scrollbar-deprecated-path/README.md +128 -0
  494. package/schematics/migrations/scrollbar-deprecated-path/index.cjs +21 -0
  495. package/schematics/migrations/scrollbar-deprecated-path/schema.json +20 -0
  496. package/schematics/migrations/select-signal-inputs/README.md +61 -0
  497. package/schematics/migrations/select-signal-inputs/data.cjs +99 -0
  498. package/schematics/migrations/select-signal-inputs/index.cjs +58 -0
  499. package/schematics/migrations/select-signal-inputs/schema.json +15 -0
  500. package/schematics/migrations/sidepanel-non-modal-behavior/README.md +57 -0
  501. package/schematics/migrations/sidepanel-non-modal-behavior/data.cjs +111 -0
  502. package/schematics/migrations/sidepanel-non-modal-behavior/index.cjs +58 -0
  503. package/schematics/migrations/sidepanel-non-modal-behavior/schema.json +15 -0
  504. package/schematics/migrations/signal-inputs-subclasses/README.md +28 -0
  505. package/schematics/migrations/signal-inputs-subclasses/data.cjs +69 -0
  506. package/schematics/migrations/signal-inputs-subclasses/index.cjs +18 -0
  507. package/schematics/migrations/signal-inputs-subclasses/schema.json +15 -0
  508. package/schematics/migrations/split-button-optional-disabled/README.md +47 -0
  509. package/schematics/migrations/split-button-optional-disabled/data.cjs +53 -0
  510. package/schematics/migrations/split-button-optional-disabled/index.cjs +58 -0
  511. package/schematics/migrations/split-button-optional-disabled/schema.json +15 -0
  512. package/schematics/migrations/splitter-deprecated-path/README.md +136 -0
  513. package/schematics/migrations/splitter-deprecated-path/index.cjs +21 -0
  514. package/schematics/migrations/splitter-deprecated-path/schema.json +20 -0
  515. package/schematics/migrations/state-saving-default/README.md +67 -0
  516. package/schematics/migrations/state-saving-default/data.cjs +88 -0
  517. package/schematics/migrations/state-saving-default/index.cjs +63 -0
  518. package/schematics/migrations/state-saving-default/schema.json +15 -0
  519. package/schematics/migrations/table-cell-content/README.md +55 -0
  520. package/schematics/migrations/table-cell-content/data.cjs +66 -0
  521. package/schematics/migrations/table-cell-content/index.cjs +67 -0
  522. package/schematics/migrations/table-cell-content/schema.json +15 -0
  523. package/schematics/migrations/tabs-signals-and-aria/README.md +93 -0
  524. package/schematics/migrations/tabs-signals-and-aria/data.cjs +139 -0
  525. package/schematics/migrations/tabs-signals-and-aria/index.cjs +66 -0
  526. package/schematics/migrations/tabs-signals-and-aria/schema.json +15 -0
  527. package/schematics/migrations/tag-list-cleaner/README.md +58 -0
  528. package/schematics/migrations/tag-list-cleaner/data.cjs +42 -0
  529. package/schematics/migrations/tag-list-cleaner/index.cjs +197 -0
  530. package/schematics/migrations/tag-list-cleaner/schema.json +20 -0
  531. package/schematics/migrations/tag-slots/README.md +41 -0
  532. package/schematics/migrations/tag-slots/index.cjs +191 -0
  533. package/schematics/migrations/tag-slots/schema.json +20 -0
  534. package/schematics/migrations/tags-signals/README.md +85 -0
  535. package/schematics/migrations/tags-signals/data.cjs +103 -0
  536. package/schematics/migrations/tags-signals/index.cjs +674 -0
  537. package/schematics/migrations/tags-signals/schema.json +20 -0
  538. package/schematics/migrations/textarea-signals/README.md +72 -0
  539. package/schematics/migrations/textarea-signals/data.cjs +121 -0
  540. package/schematics/migrations/textarea-signals/index.cjs +380 -0
  541. package/schematics/migrations/textarea-signals/schema.json +20 -0
  542. package/schematics/migrations/time-range-title-for/README.md +164 -0
  543. package/schematics/migrations/time-range-title-for/data.cjs +139 -0
  544. package/schematics/migrations/time-range-title-for/index.cjs +164 -0
  545. package/schematics/migrations/time-range-title-for/schema.json +20 -0
  546. package/schematics/migrations/timepicker-signals/README.md +78 -0
  547. package/schematics/migrations/timepicker-signals/data.cjs +82 -0
  548. package/schematics/migrations/timepicker-signals/index.cjs +710 -0
  549. package/schematics/migrations/timepicker-signals/schema.json +20 -0
  550. package/schematics/migrations/timezone-grouping-utils/README.md +73 -0
  551. package/schematics/migrations/timezone-grouping-utils/data.cjs +101 -0
  552. package/schematics/migrations/timezone-grouping-utils/index.cjs +65 -0
  553. package/schematics/migrations/timezone-grouping-utils/schema.json +15 -0
  554. package/schematics/migrations/title-encapsulation/README.md +49 -0
  555. package/schematics/migrations/title-encapsulation/data.cjs +69 -0
  556. package/schematics/migrations/title-encapsulation/index.cjs +58 -0
  557. package/schematics/migrations/title-encapsulation/schema.json +15 -0
  558. package/schematics/migrations/toast-stack-and-defaults/README.md +102 -0
  559. package/schematics/migrations/toast-stack-and-defaults/data.cjs +79 -0
  560. package/schematics/migrations/toast-stack-and-defaults/index.cjs +54 -0
  561. package/schematics/migrations/toast-stack-and-defaults/schema.json +15 -0
  562. package/schematics/migrations/tooltip-pointer-events-and-types/README.md +53 -0
  563. package/schematics/migrations/tooltip-pointer-events-and-types/data.cjs +89 -0
  564. package/schematics/migrations/tooltip-pointer-events-and-types/index.cjs +61 -0
  565. package/schematics/migrations/tooltip-pointer-events-and-types/schema.json +15 -0
  566. package/schematics/migrations/top-bar-container-selectors/README.md +111 -0
  567. package/schematics/migrations/top-bar-container-selectors/data.cjs +56 -0
  568. package/schematics/migrations/top-bar-container-selectors/index.cjs +85 -0
  569. package/schematics/migrations/top-bar-container-selectors/schema.json +20 -0
  570. package/schematics/migrations/tree-select-signals/README.md +61 -0
  571. package/schematics/migrations/tree-select-signals/data.cjs +106 -0
  572. package/schematics/migrations/tree-select-signals/index.cjs +59 -0
  573. package/schematics/migrations/tree-select-signals/schema.json +15 -0
  574. package/schematics/migrations/tree-signals/README.md +82 -0
  575. package/schematics/migrations/tree-signals/data.cjs +123 -0
  576. package/schematics/migrations/tree-signals/index.cjs +55 -0
  577. package/schematics/migrations/tree-signals/schema.json +15 -0
  578. package/schematics/migrations/tree-state-saving-default/README.md +66 -0
  579. package/schematics/migrations/tree-state-saving-default/data.cjs +78 -0
  580. package/schematics/migrations/tree-state-saving-default/index.cjs +61 -0
  581. package/schematics/migrations/tree-state-saving-default/schema.json +15 -0
  582. package/schematics/migrations/username-pipe-injection/README.md +59 -0
  583. package/schematics/migrations/username-pipe-injection/data.cjs +78 -0
  584. package/schematics/migrations/username-pipe-injection/index.cjs +59 -0
  585. package/schematics/migrations/username-pipe-injection/schema.json +15 -0
  586. package/schematics/migrations/v20-upgrade/README.md +36 -16
  587. package/schematics/migrations/v20-upgrade/{data.js → data.cjs} +124 -77
  588. package/schematics/migrations/v20-upgrade/index.cjs +19 -0
  589. package/schematics/migrations/v21-upgrade/README.md +271 -0
  590. package/schematics/migrations/v21-upgrade/data.cjs +1371 -0
  591. package/schematics/migrations/v21-upgrade/index.cjs +95 -0
  592. package/schematics/migrations/v21-upgrade/schema.json +20 -0
  593. package/schematics/migrations/zoneless-change-detection/README.md +30 -0
  594. package/schematics/migrations/zoneless-change-detection/data.cjs +29 -0
  595. package/schematics/migrations/zoneless-change-detection/index.cjs +21 -0
  596. package/schematics/migrations/zoneless-change-detection/schema.json +15 -0
  597. package/schematics/migrations.json +401 -6
  598. package/schematics/ng-add/index.cjs +266 -0
  599. package/schematics/ng-add/schema.json +15 -0
  600. package/schematics/utils/{angular-parsing.js → angular-parsing.cjs} +2 -2
  601. package/schematics/utils/deprecated-path-migration.cjs +62 -0
  602. package/schematics/utils/html-config.cjs +148 -0
  603. package/schematics/utils/{icon-migration.js → icon-migration.cjs} +2 -2
  604. package/schematics/utils/list-item-pattern.cjs +16 -0
  605. package/schematics/utils/{package-config.js → package-config.cjs} +3 -32
  606. package/schematics/utils/project-files.cjs +25 -0
  607. package/schematics/utils/replacement-driver.cjs +337 -0
  608. package/schematics/utils/safe-rule.cjs +23 -0
  609. package/schematics/utils/signal-members-migration.cjs +779 -0
  610. package/schematics/utils/tag-patterns.cjs +21 -0
  611. package/schematics/utils/template-ref-access.cjs +155 -0
  612. package/schematics/utils/{typescript.js → typescript.cjs} +1 -1
  613. package/schematics/utils/warn-only-migration.cjs +52 -0
  614. package/schematics/utils/workspace-styles.cjs +123 -0
  615. package/scrollbar/{_scrollbar-component-theme.scss → deprecated/_scrollbar-component-theme.scss} +1 -1
  616. package/scrollbar/{scrollbar.component.scss → deprecated/scrollbar.component.scss} +1 -1
  617. package/scrollbar/native-scrollbar.scss +68 -0
  618. package/scrollbar/scrollbar-tokens.scss +13 -22
  619. package/scrollbar/scrollbar-track.scss +94 -0
  620. package/scrollbar/scrollbar-viewport.scss +33 -0
  621. package/scrollbar/scrollbar.scss +24 -0
  622. package/search-expandable/search-expandable-tokens.scss +4 -0
  623. package/search-expandable/search-expandable.scss +4 -2
  624. package/select/_select-theme.scss +3 -16
  625. package/select/select.scss +0 -6
  626. package/sidebar/sidebar.scss +20 -0
  627. package/sidepanel/_sidepanel-theme.scss +1 -1
  628. package/sidepanel/sidepanel-tokens.scss +7 -1
  629. package/sidepanel/sidepanel.scss +41 -5
  630. package/skeleton/skeleton-presets.scss +350 -0
  631. package/skeleton/skeleton-tokens.scss +127 -0
  632. package/skeleton/skeleton.scss +53 -45
  633. package/split-button/_split-button-theme.scss +4 -4
  634. package/split-button/split-button.scss +2 -6
  635. package/splitter/{_splitter-theme.scss → deprecated/_splitter-theme.scss} +1 -1
  636. package/splitter/deprecated/splitter.scss +51 -0
  637. package/splitter/splitter-tokens.scss +19 -0
  638. package/splitter/splitter.scss +148 -28
  639. package/table/_table-theme.scss +13 -12
  640. package/table/table-tokens.scss +8 -0
  641. package/table/table.scss +47 -22
  642. package/tabs/_tabs-common.scss +14 -14
  643. package/tabs/_tabs-theme.scss +4 -5
  644. package/tabs/tab-body.scss +49 -1
  645. package/tabs/tab-header.scss +2 -1
  646. package/tags/tag-list.scss +4 -0
  647. package/tags/tag.scss +19 -1
  648. package/time-range/time-range.scss +9 -0
  649. package/timezone/timezone-option.component.scss +4 -7
  650. package/timezone/timezone-select.component.scss +3 -0
  651. package/toast/_toast-theme.scss +1 -4
  652. package/toast/toast-container.component.scss +19 -13
  653. package/toast/toast-tokens.scss +12 -6
  654. package/toast/toast.component.scss +42 -19
  655. package/toggle/_toggle-theme.scss +4 -10
  656. package/toggle/toggle.scss +67 -26
  657. package/tooltip/_tooltip-theme.scss +7 -1
  658. package/tooltip/tooltip-tokens.scss +1 -2
  659. package/tooltip/tooltip.scss +55 -9
  660. package/top-bar/top-bar-tokens.scss +13 -2
  661. package/top-bar/top-bar.scss +24 -19
  662. package/tree/_tree-theme.scss +0 -1
  663. package/tree/toggle.scss +5 -9
  664. package/tree/tree-option.scss +2 -4
  665. package/tree/tree-tokens.scss +2 -1
  666. package/tree/tree.scss +3 -5
  667. package/tree-select/_tree-select-theme.scss +4 -15
  668. package/tree-select/tree-select-tokens.scss +16 -0
  669. package/tree-select/tree-select.scss +0 -6
  670. package/{accordion/index.d.ts → types/koobiq-components-accordion.d.ts} +102 -84
  671. package/{actions-panel/index.d.ts → types/koobiq-components-actions-panel.d.ts} +44 -59
  672. package/{alert/index.d.ts → types/koobiq-components-alert.d.ts} +8 -3
  673. package/types/koobiq-components-app-switcher.d.ts +406 -0
  674. package/types/koobiq-components-autocomplete.d.ts +443 -0
  675. package/{badge/index.d.ts → types/koobiq-components-badge.d.ts} +25 -20
  676. package/{breadcrumbs/index.d.ts → types/koobiq-components-breadcrumbs.d.ts} +97 -46
  677. package/types/koobiq-components-button-toggle.d.ts +340 -0
  678. package/types/koobiq-components-button.d.ts +296 -0
  679. package/types/koobiq-components-checkbox.d.ts +172 -0
  680. package/types/koobiq-components-clamped-text.d.ts +184 -0
  681. package/{code-block/index.d.ts → types/koobiq-components-code-block.d.ts} +150 -88
  682. package/{content-panel/index.d.ts → types/koobiq-components-content-panel.d.ts} +81 -25
  683. package/{core/index.d.ts → types/koobiq-components-core.d.ts} +2827 -865
  684. package/{datepicker/index.d.ts → types/koobiq-components-datepicker.d.ts} +161 -116
  685. package/types/koobiq-components-divider.d.ts +43 -0
  686. package/types/koobiq-components-dl.d.ts +235 -0
  687. package/{dropdown/index.d.ts → types/koobiq-components-dropdown.d.ts} +245 -239
  688. package/types/koobiq-components-ellipsis-center.d.ts +85 -0
  689. package/types/koobiq-components-empty-state.d.ts +106 -0
  690. package/{file-upload/index.d.ts → types/koobiq-components-file-upload.d.ts} +214 -107
  691. package/{filter-bar/index.d.ts → types/koobiq-components-filter-bar.d.ts} +410 -495
  692. package/types/koobiq-components-flag.d.ts +68 -0
  693. package/{form-field/index.d.ts → types/koobiq-components-form-field.d.ts} +167 -191
  694. package/types/koobiq-components-icon.d.ts +333 -0
  695. package/{inline-edit/index.d.ts → types/koobiq-components-inline-edit.d.ts} +109 -46
  696. package/types/koobiq-components-input.d.ts +477 -0
  697. package/types/koobiq-components-link-deprecated.d.ts +101 -0
  698. package/types/koobiq-components-link.d.ts +176 -0
  699. package/{list/index.d.ts → types/koobiq-components-list.d.ts} +162 -99
  700. package/types/koobiq-components-loader-overlay.d.ts +101 -0
  701. package/{markdown/index.d.ts → types/koobiq-components-markdown.d.ts} +16 -24
  702. package/types/koobiq-components-modal.d.ts +666 -0
  703. package/types/koobiq-components-navbar.d.ts +569 -0
  704. package/types/koobiq-components-notification-center.d.ts +500 -0
  705. package/{overflow-items/index.d.ts → types/koobiq-components-overflow-items.d.ts} +8 -22
  706. package/types/koobiq-components-popover.d.ts +468 -0
  707. package/types/koobiq-components-progress-bar.d.ts +67 -0
  708. package/{progress-spinner/index.d.ts → types/koobiq-components-progress-spinner.d.ts} +33 -10
  709. package/types/koobiq-components-radio.d.ts +294 -0
  710. package/{resizer/index.d.ts → types/koobiq-components-resizer.d.ts} +37 -2
  711. package/{scrollbar/index.d.ts → types/koobiq-components-scrollbar-deprecated.d.ts} +18 -1
  712. package/types/koobiq-components-scrollbar.d.ts +154 -0
  713. package/types/koobiq-components-search-expandable.d.ts +164 -0
  714. package/{select/index.d.ts → types/koobiq-components-select.d.ts} +360 -167
  715. package/types/koobiq-components-sidebar.d.ts +152 -0
  716. package/types/koobiq-components-sidepanel.d.ts +436 -0
  717. package/types/koobiq-components-skeleton.d.ts +234 -0
  718. package/types/koobiq-components-split-button.d.ts +65 -0
  719. package/{splitter/index.d.ts → types/koobiq-components-splitter-deprecated.d.ts} +44 -1
  720. package/types/koobiq-components-splitter.d.ts +406 -0
  721. package/types/koobiq-components-table.d.ts +44 -0
  722. package/types/koobiq-components-tabs.d.ts +888 -0
  723. package/{tags/index.d.ts → types/koobiq-components-tags.d.ts} +249 -133
  724. package/types/koobiq-components-textarea.d.ts +178 -0
  725. package/{time-range/index.d.ts → types/koobiq-components-time-range.d.ts} +135 -62
  726. package/types/koobiq-components-timepicker.d.ts +223 -0
  727. package/types/koobiq-components-timezone.d.ts +266 -0
  728. package/types/koobiq-components-title.d.ts +184 -0
  729. package/types/koobiq-components-toast.d.ts +289 -0
  730. package/types/koobiq-components-toggle.d.ts +121 -0
  731. package/types/koobiq-components-tooltip.d.ts +610 -0
  732. package/types/koobiq-components-top-bar.d.ts +61 -0
  733. package/types/koobiq-components-tree-select.d.ts +670 -0
  734. package/types/koobiq-components-tree.d.ts +1339 -0
  735. package/types/koobiq-components-username.d.ts +340 -0
  736. package/username/_username-theme.scss +35 -0
  737. package/username/username.scss +10 -34
  738. package/app-switcher/index.d.ts +0 -276
  739. package/autocomplete/index.d.ts +0 -286
  740. package/button/index.d.ts +0 -153
  741. package/button-toggle/index.d.ts +0 -162
  742. package/checkbox/index.d.ts +0 -163
  743. package/clamped-text/index.d.ts +0 -146
  744. package/core/styles/_tokens.scss +0 -7
  745. package/core/styles/common/_clearfix.scss +0 -13
  746. package/core/styles/common/_popup.scss +0 -6
  747. package/core/styles/functions/_index.scss +0 -3
  748. package/core/styles/functions/_number.scss +0 -60
  749. package/core/styles/functions/_string.scss +0 -18
  750. package/core/styles/theming/scrollbar-tokens.scss +0 -25
  751. package/core/styles/typography/_typography-utils.scss +0 -84
  752. package/divider/index.d.ts +0 -20
  753. package/dl/index.d.ts +0 -45
  754. package/ellipsis-center/index.d.ts +0 -71
  755. package/empty-state/index.d.ts +0 -45
  756. package/flag/index.d.ts +0 -44
  757. package/icon/index.d.ts +0 -200
  758. package/input/index.d.ts +0 -354
  759. package/link/index.d.ts +0 -56
  760. package/loader-overlay/index.d.ts +0 -57
  761. package/modal/index.d.ts +0 -339
  762. package/navbar/index.d.ts +0 -372
  763. package/notification-center/index.d.ts +0 -323
  764. package/popover/index.d.ts +0 -182
  765. package/prebuilt-themes/dark-theme.css +0 -1
  766. package/prebuilt-themes/light-theme.css +0 -1
  767. package/progress-bar/index.d.ts +0 -31
  768. package/radio/index.d.ts +0 -203
  769. package/schematics/migrations/alert-signals/index.js +0 -353
  770. package/schematics/migrations/filter-bar-signals/index.js +0 -319
  771. package/schematics/migrations/v20-upgrade/index.js +0 -225
  772. package/schematics/ng-add/index.js +0 -39
  773. package/search-expandable/index.d.ts +0 -101
  774. package/sidebar/index.d.ts +0 -94
  775. package/sidepanel/index.d.ts +0 -272
  776. package/skeleton/index.d.ts +0 -26
  777. package/split-button/index.d.ts +0 -46
  778. package/table/index.d.ts +0 -25
  779. package/tabs/index.d.ts +0 -677
  780. package/textarea/index.d.ts +0 -138
  781. package/timepicker/index.d.ts +0 -197
  782. package/timezone/index.d.ts +0 -125
  783. package/title/index.d.ts +0 -139
  784. package/toast/index.d.ts +0 -178
  785. package/toggle/index.d.ts +0 -104
  786. package/tooltip/index.d.ts +0 -335
  787. package/top-bar/index.d.ts +0 -33
  788. package/tree/index.d.ts +0 -802
  789. package/tree-select/index.d.ts +0 -475
  790. package/username/index.d.ts +0 -194
  791. /package/schematics/migrations/css-selectors/{data.js → data.cjs} +0 -0
  792. /package/schematics/migrations/deprecated-icons/{data.js → data.cjs} +0 -0
  793. /package/schematics/migrations/icons-replacement/{data.js → data.cjs} +0 -0
  794. /package/schematics/migrations/new-icons-pack/{data.js → data.cjs} +0 -0
  795. /package/schematics/utils/{ast.js → ast.cjs} +0 -0
  796. /package/schematics/utils/{messages.js → messages.cjs} +0 -0
  797. /package/{dynamic-translation/index.d.ts → types/koobiq-components-dynamic-translation.d.ts} +0 -0
  798. /package/{index.d.ts → types/koobiq-components.d.ts} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"koobiq-components-toast.mjs","sources":["../../../packages/components/toast/toast-animations.ts","../../../packages/components/toast/toast.type.ts","../../../packages/components/toast/toast.component.ts","../../../packages/components/toast/toast.component.html","../../../packages/components/toast/toast.service.ts","../../../packages/components/toast/toast-container.component.ts","../../../packages/components/toast/toast.module.ts","../../../packages/components/toast/koobiq-components-toast.ts"],"sourcesContent":["import { animate, AnimationTriggerMetadata, state, style, transition, trigger } from '@angular/animations';\n\nexport const kbqToastAnimations: {\n readonly toastState: AnimationTriggerMetadata;\n} = {\n toastState: trigger('state', [\n state('void', style({ transform: 'translateX(100%)', opacity: 0 })),\n transition('* => visible', animate('150ms ease-out', style({ transform: 'translateX(0%)', opacity: 1 }))),\n transition(\n '* => void',\n animate('300ms ease-in', style({ transform: 'translateX(50%)', opacity: 0, height: 0 }))\n )\n ])\n};\n\nexport const toastState = kbqToastAnimations.toastState;\n","import { InjectionToken, Provider, TemplateRef } from '@angular/core';\n\nexport enum KbqToastStyle {\n Contrast = 'contrast',\n Success = 'success',\n Warning = 'warning',\n Error = 'error'\n}\n\nexport enum KbqToastPosition {\n TOP_RIGHT = 'top-right',\n TOP_LEFT = 'top-left',\n TOP_CENTER = 'top-center',\n BOTTOM_RIGHT = 'bottom-right',\n BOTTOM_LEFT = 'bottom-left',\n BOTTOM_CENTER = 'bottom-center',\n CENTER = 'center'\n}\n\nexport class KbqToastData {\n id?: string;\n title?: string | TemplateRef<any>;\n style?: KbqToastStyle | string;\n\n icon?: TemplateRef<any> | boolean;\n iconClass?: string;\n caption?: string | TemplateRef<any>;\n\n content?: string | TemplateRef<any>;\n actions?: TemplateRef<any>;\n\n closeButton?: TemplateRef<any> | boolean;\n}\n\nexport interface KbqToastConfig {\n position: KbqToastPosition;\n duration: number;\n delay: number;\n onTop: boolean;\n /** Custom indentation for positioning the toast stack overlay when using `GlobalPositionStrategy` */\n indent: {\n /** Vertical spacing from the top or bottom of the screen. */\n vertical: number;\n\n /** Horizontal spacing from the left or right of the screen. */\n horizontal: number;\n };\n}\n\nexport const defaultToastConfig: KbqToastConfig = {\n position: KbqToastPosition.TOP_RIGHT,\n duration: 5000,\n delay: 2000,\n onTop: false,\n indent: {\n vertical: 0,\n horizontal: 0\n }\n};\n\nexport const KBQ_TOAST_CONFIG = new InjectionToken<KbqToastConfig>('kbq-toast-config', {\n factory: () => defaultToastConfig\n});\n\n/** Utility provider for `KBQ_TOAST_CONFIG`. */\nexport const kbqToastConfigurationProvider = (configuration: Partial<KbqToastConfig>): Provider => ({\n provide: KBQ_TOAST_CONFIG,\n useValue: { ...defaultToastConfig, ...configuration }\n});\n","import { AnimationEvent } from '@angular/animations';\nimport { FocusMonitor, FocusOrigin } from '@angular/cdk/a11y';\nimport { NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n Directive,\n ElementRef,\n OnDestroy,\n TemplateRef,\n ViewEncapsulation,\n inject\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { KbqReadStateDirective, ThemePalette } from '@koobiq/components/core';\nimport { KbqIconModule } from '@koobiq/components/icon';\nimport { KbqTitleModule } from '@koobiq/components/title';\nimport { BehaviorSubject, merge } from 'rxjs';\nimport { filter } from 'rxjs/operators';\nimport { kbqToastAnimations } from './toast-animations';\nimport { KbqToastService } from './toast.service';\nimport { KbqToastData, KbqToastStyle } from './toast.type';\n\n@Directive({\n selector: '[kbq-toast-close-button]',\n host: {\n class: 'kbq-toast__close-button'\n }\n})\nexport class KbqToastCloseButton {}\n\nlet id = 0;\n\n@Component({\n selector: 'kbq-toast',\n imports: [\n NgTemplateOutlet,\n KbqIconModule,\n KbqTitleModule,\n KbqToastCloseButton\n ],\n templateUrl: './toast.component.html',\n styleUrls: ['./toast.component.scss', './toast-tokens.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'kbq-toast',\n '[class]': 'toastStyle',\n '[class.kbq-toast_dismissible]': 'data.closeButton',\n '[@state]': 'animationState',\n '(@state.start)': 'onAnimation($event)',\n '(@state.done)': 'onAnimation($event)',\n '(mouseenter)': 'hovered.next(true)',\n '(mouseleave)': 'hovered.next(false)',\n '(keydown.esc)': 'close()'\n },\n hostDirectives: [KbqReadStateDirective],\n animations: [kbqToastAnimations.toastState]\n})\nexport class KbqToastComponent implements OnDestroy {\n readonly data = inject(KbqToastData);\n readonly service = inject(KbqToastService);\n elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private focusMonitor = inject(FocusMonitor);\n\n protected readonly readStateDirective = inject(KbqReadStateDirective, { host: true });\n\n themePalette = ThemePalette;\n\n animationState = 'void';\n\n readonly hovered = new BehaviorSubject<boolean>(false);\n readonly focused = new BehaviorSubject<boolean>(false);\n\n id = id++;\n ttl;\n delay;\n\n $implicit;\n\n get toastStyle() {\n return {\n [`kbq-toast_${this.data.style}`]: true\n };\n }\n\n get isFocusedOrHovered(): boolean {\n return this.hovered.getValue() || this.focused.getValue();\n }\n\n constructor() {\n this.$implicit = this;\n\n this.data.style = this.data.style || KbqToastStyle.Contrast;\n this.data.icon = this.data.icon !== undefined ? this.data.icon : true;\n this.data.iconClass = this.data.iconClass || undefined;\n this.data.closeButton = this.data.closeButton !== undefined ? this.data.closeButton : true;\n\n this.animationState = 'visible';\n\n this.runFocusMonitor();\n\n this.hovered.subscribe(this.service.hovered);\n this.focused.subscribe(this.service.focused);\n\n merge(this.hovered, this.focused)\n .pipe(\n filter((value) => value),\n takeUntilDestroyed()\n )\n .subscribe(() => {\n if (this.ttl === 0) {\n return;\n }\n\n this.ttl = this.ttl < this.delay ? this.delay : this.ttl;\n });\n\n this.readStateDirective.read\n .pipe(\n filter((value) => value),\n takeUntilDestroyed()\n )\n .subscribe(() => this.service.read.next(this.data));\n }\n\n ngOnDestroy() {\n this.stopFocusMonitor();\n\n this.hovered.next(false);\n this.focused.next(false);\n }\n\n close(): void {\n this.service.read.next(this.data);\n this.service.hide(this.id);\n }\n\n isTemplateRef(value): boolean {\n return value instanceof TemplateRef;\n }\n\n onAnimation($event: AnimationEvent) {\n this.service.animation.next($event);\n }\n\n private runFocusMonitor() {\n this.focusMonitor\n .monitor(this.elementRef.nativeElement, true)\n .subscribe((origin: FocusOrigin) => this.focused.next(!!origin));\n }\n\n private stopFocusMonitor() {\n this.focusMonitor.stopMonitoring(this.elementRef.nativeElement);\n }\n}\n","@if (data.icon) {\n <div class=\"kbq-toast__icon-container layout-row layout-align-start-start\">\n @if (data.icon === true) {\n @switch (data.style) {\n @case ('contrast') {\n <i\n kbq-icon=\"kbq-circle-info_16\"\n class=\"kbq-toast__icon\"\n [color]=\"$any(data.style)\"\n [class]=\"data.iconClass\"\n ></i>\n }\n @case ('success') {\n <i\n kbq-icon=\"kbq-circle-check_16\"\n class=\"kbq-toast__icon\"\n [color]=\"$any(data.style)\"\n [class]=\"data.iconClass\"\n ></i>\n }\n @case ('warning') {\n <i\n kbq-icon=\"kbq-triangle-exclamation_16\"\n class=\"kbq-toast__icon\"\n [color]=\"$any(data.style)\"\n [class]=\"data.iconClass\"\n ></i>\n }\n @case ('error') {\n <i\n kbq-icon=\"kbq-triangle-exclamation_16\"\n class=\"kbq-toast__icon\"\n [color]=\"$any(data.style)\"\n [class]=\"data.iconClass\"\n ></i>\n }\n }\n }\n @if (isTemplateRef(data.icon)) {\n <ng-container [ngTemplateOutlet]=\"$any(data.icon)\" [ngTemplateOutletContext]=\"{ $implicit }\" />\n }\n </div>\n}\n\n<div class=\"kbq-toast__container\">\n @if (data.title) {\n <div\n kbq-title\n class=\"kbq-toast__title\"\n [class.kbq-toast__title_only-text]=\"!isTemplateRef(data.title)\"\n [class.kbq-toast__title_with-content]=\"data.caption || data.content\"\n >\n @if (isTemplateRef(data.title)) {\n <ng-container [ngTemplateOutlet]=\"$any(data.title)\" [ngTemplateOutletContext]=\"{ $implicit }\" />\n } @else {\n <p>{{ data.title }}</p>\n }\n </div>\n }\n\n @if (data.caption) {\n <div\n kbq-title\n [class.kbq-toast__text]=\"data.title\"\n [class.kbq-toast__text_only-text]=\"!isTemplateRef(data.caption)\"\n [class.kbq-toast__title]=\"!data.title\"\n >\n @if (isTemplateRef(data.caption)) {\n <ng-container [ngTemplateOutlet]=\"$any(data.caption)\" [ngTemplateOutletContext]=\"{ $implicit }\" />\n }\n <!-- prettier-ignore -->\n @else {{{ data.caption }}}\n </div>\n }\n\n @if (data.content) {\n <div class=\"kbq-toast__content\" [class.kbq-toast__content_only-text]=\"!isTemplateRef(data.content)\">\n @if (isTemplateRef(data.content)) {\n <ng-container [ngTemplateOutlet]=\"$any(data.content)\" [ngTemplateOutletContext]=\"{ $implicit }\" />\n }\n <!-- prettier-ignore -->\n @else {{{ data.content }}}\n </div>\n }\n\n @if (data.actions) {\n <div class=\"kbq-toast__actions\">\n @if (isTemplateRef(data.actions)) {\n <ng-container [ngTemplateOutlet]=\"$any(data.actions)\" [ngTemplateOutletContext]=\"{ $implicit }\" />\n } @else {\n {{ data.actions }}\n }\n </div>\n }\n</div>\n\n@if (data.closeButton) {\n <div>\n @if (data.closeButton === true) {\n <i kbq-icon-button=\"kbq-xmark-s_16\" kbq-toast-close-button (click)=\"close()\"></i>\n }\n @if (isTemplateRef(data.closeButton)) {\n <ng-container [ngTemplateOutlet]=\"$any(data.closeButton)\" [ngTemplateOutletContext]=\"{ $implicit }\" />\n }\n </div>\n}\n","import { AnimationEvent } from '@angular/animations';\nimport { GlobalPositionStrategy, Overlay, OverlayContainer, OverlayRef } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport {\n ComponentRef,\n EmbeddedViewRef,\n Injectable,\n InjectionToken,\n Injector,\n NgZone,\n OnDestroy,\n TemplateRef,\n inject\n} from '@angular/core';\nimport { BehaviorSubject, Subscription, filter, shareReplay, timer } from 'rxjs';\nimport { KbqToastContainerComponent } from './toast-container.component';\nimport { KbqToastComponent } from './toast.component';\nimport { KBQ_TOAST_CONFIG, KbqToastConfig, KbqToastData, KbqToastPosition } from './toast.type';\n\nexport const KBQ_TOAST_FACTORY = new InjectionToken('KBQ_TOAST_FACTORY', {\n factory: () => KbqToastComponent\n});\n\nconst CHECK_INTERVAL = 500;\n\nlet templateId = 0;\n\n/** Generic `T` is a type hint only; the runtime component comes from `KBQ_TOAST_FACTORY`. */\n@Injectable({ providedIn: 'root' })\nexport class KbqToastService<T extends KbqToastComponent = KbqToastComponent> implements OnDestroy {\n private overlay = inject(Overlay);\n private injector = inject(Injector);\n private overlayContainer = inject(OverlayContainer);\n private ngZone = inject(NgZone);\n private toastFactory = inject(KBQ_TOAST_FACTORY);\n private toastConfig = inject<KbqToastConfig>(KBQ_TOAST_CONFIG, { optional: true })!;\n\n get toasts(): ComponentRef<T>[] {\n return Object.values(this.toastsDict).filter((item) => !item.hostView.destroyed);\n }\n\n get templates(): EmbeddedViewRef<T>[] {\n return Object.values(this.templatesDict);\n }\n\n readonly read = new BehaviorSubject<KbqToastData | null>(null);\n readonly hovered = new BehaviorSubject<boolean>(false);\n readonly focused = new BehaviorSubject<boolean>(false);\n readonly animation = new BehaviorSubject<AnimationEvent | null>(null);\n\n timer = timer(CHECK_INTERVAL, CHECK_INTERVAL).pipe(\n filter(() => this.toasts.length > 0 && !this.hovered.getValue() && !this.focused.getValue()),\n // eslint-disable-next-line rxjs-x/no-ignored-replay-buffer\n shareReplay()\n );\n\n private containerInstance?: KbqToastContainerComponent;\n private overlayRef?: OverlayRef;\n private portal?: ComponentPortal<KbqToastContainerComponent>;\n private timerSubscription: Subscription;\n private currentPosition?: KbqToastPosition;\n\n private toastsDict: { [id: number]: ComponentRef<T> } = {};\n private templatesDict: { [id: number]: EmbeddedViewRef<T> } = {};\n\n constructor() {\n this.ngZone.runOutsideAngular(() => {\n this.timerSubscription = this.timer.subscribe(this.processToasts);\n });\n }\n\n ngOnDestroy(): void {\n this.timerSubscription.unsubscribe();\n this.overlayRef?.dispose();\n this.overlayRef = undefined;\n this.containerInstance = undefined;\n this.portal = undefined;\n this.currentPosition = undefined;\n this.toastsDict = {};\n this.templatesDict = {};\n }\n\n show(\n data: KbqToastData,\n duration: number = this.toastConfig.duration,\n onTop: boolean = this.toastConfig.onTop\n ): { ref: ComponentRef<T>; id: number } {\n const container = this.prepareContainer();\n const componentRef = container.createToast<T>(data, this.toastFactory, onTop);\n\n this.toastsDict[componentRef.instance.id] = componentRef;\n\n componentRef.instance.ttl = duration;\n componentRef.instance.delay = this.toastConfig.delay;\n\n return { ref: componentRef, id: componentRef.instance.id };\n }\n\n showTemplate(\n data: KbqToastData,\n template: TemplateRef<any>,\n duration: number = this.toastConfig.duration,\n onTop: boolean = this.toastConfig.onTop\n ): { ref: EmbeddedViewRef<T>; id: number } {\n const container = this.prepareContainer();\n const viewRef = container.createTemplate<T>(data, template, onTop);\n const id = templateId++;\n\n this.templatesDict[id] = viewRef;\n this.addRemoveTimer(id, duration);\n\n return { ref: viewRef, id };\n }\n\n hide(id: number) {\n const componentRef = this.toastsDict[id];\n\n if (!componentRef) {\n return;\n }\n\n this.containerInstance?.remove(componentRef.hostView);\n\n delete this.toastsDict[id];\n\n this.detachOverlay();\n }\n\n hideTemplate(id: number) {\n const viewRef = this.templatesDict[id];\n\n if (!viewRef) {\n return;\n }\n\n this.containerInstance?.remove(viewRef);\n\n delete this.templatesDict[id];\n\n this.detachOverlay();\n }\n\n private detachOverlay() {\n if (this.toasts.length !== 0 || this.templates.length !== 0) {\n return;\n }\n\n this.overlayRef?.detach();\n }\n\n private processToasts = () => {\n for (const toast of this.toasts.filter((item) => item.instance.ttl > 0)) {\n toast.instance.ttl -= CHECK_INTERVAL;\n\n if (toast.instance.ttl <= 0) {\n this.ngZone.run(() => {\n this.hide(toast.instance.id);\n\n this.updateTTLAfterDelete();\n });\n\n break;\n }\n }\n };\n\n private updateTTLAfterDelete() {\n this.toasts\n .filter((item) => item.instance.ttl > 0)\n .forEach((item) => (item.instance.ttl = this.toastConfig.delay));\n }\n\n private addRemoveTimer(id: number, duration: number) {\n setTimeout(() => this.hideTemplate(id), duration);\n }\n\n private prepareContainer(): KbqToastContainerComponent {\n const overlayRef = this.createOverlay();\n const portal = this.portal || new ComponentPortal(KbqToastContainerComponent, null, this.injector);\n\n this.portal = portal;\n\n if (!overlayRef.hasAttached()) {\n this.containerInstance = overlayRef.attach(portal).instance;\n this.containerInstance\n .getElementRef()\n .nativeElement.classList.add(`kbq-toast-container-${this.toastConfig.position}`);\n }\n\n this.toTop(overlayRef);\n\n return this.containerInstance!;\n }\n\n private toTop(overlayRef: OverlayRef) {\n const overlays = this.overlayContainer.getContainerElement().childNodes;\n\n if (overlays.length > 1) {\n overlays[overlays.length - 1].after(overlayRef.hostElement);\n }\n }\n\n private createOverlay(): OverlayRef {\n const expectedPosition = this.toastConfig.position;\n\n if (this.overlayRef && this.currentPosition === expectedPosition) {\n return this.overlayRef;\n }\n\n if (this.overlayRef) {\n this.overlayRef.dispose();\n this.containerInstance = undefined;\n this.portal = undefined;\n }\n\n const positionStrategy = this.getPositionStrategy(expectedPosition);\n const overlayRef = this.overlay.create({ positionStrategy });\n\n overlayRef.hostElement.classList.add('kbq-toast-overlay');\n\n this.overlayRef = overlayRef;\n this.currentPosition = expectedPosition;\n\n return overlayRef;\n }\n\n private getPositionStrategy(position?: KbqToastPosition): GlobalPositionStrategy {\n switch (position) {\n case KbqToastPosition.CENTER:\n return this.getCenter();\n case KbqToastPosition.BOTTOM_CENTER:\n return this.getBottomCenter();\n case KbqToastPosition.BOTTOM_LEFT:\n return this.getBottomLeft();\n case KbqToastPosition.BOTTOM_RIGHT:\n return this.getBottomRight();\n case KbqToastPosition.TOP_CENTER:\n return this.getTopCenter();\n case KbqToastPosition.TOP_LEFT:\n return this.getTopLeft();\n case KbqToastPosition.TOP_RIGHT:\n return this.getTopRight();\n default:\n return this.getTopCenter();\n }\n }\n\n private getTopCenter(): GlobalPositionStrategy {\n return this.getGlobalOverlayPosition().top(`${this.toastConfig.indent.vertical}px`).centerHorizontally();\n }\n\n private getTopLeft(): GlobalPositionStrategy {\n return this.getGlobalOverlayPosition()\n .top(`${this.toastConfig.indent.vertical}px`)\n .left(`${this.toastConfig.indent.horizontal}px`);\n }\n\n private getTopRight(): GlobalPositionStrategy {\n return this.getGlobalOverlayPosition()\n .top(`${this.toastConfig.indent.vertical}px`)\n .right(`${this.toastConfig.indent.horizontal}px`);\n }\n\n private getBottomCenter(): GlobalPositionStrategy {\n return this.getGlobalOverlayPosition().bottom(`${this.toastConfig.indent.vertical}px`).centerHorizontally();\n }\n\n private getBottomLeft(): GlobalPositionStrategy {\n return this.getGlobalOverlayPosition()\n .bottom(`${this.toastConfig.indent.vertical}px`)\n .left(`${this.toastConfig.indent.horizontal}px`);\n }\n\n private getBottomRight(): GlobalPositionStrategy {\n return this.getGlobalOverlayPosition()\n .bottom(`${this.toastConfig.indent.vertical}px`)\n .right(`${this.toastConfig.indent.horizontal}px`);\n }\n\n private getCenter(): GlobalPositionStrategy {\n return this.getGlobalOverlayPosition().centerVertically().centerHorizontally();\n }\n\n private getGlobalOverlayPosition(): GlobalPositionStrategy {\n return this.overlay.position().global();\n }\n}\n","import { SharedResizeObserver } from '@angular/cdk/observers/private';\nimport { CdkScrollable, FlexibleConnectedPositionStrategy, OverlayKeyboardDispatcher } from '@angular/cdk/overlay';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ComponentRef,\n EmbeddedViewRef,\n Injector,\n TemplateRef,\n ViewContainerRef,\n ViewEncapsulation,\n ViewRef,\n inject,\n viewChild\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { KbqToastService } from './toast.service';\nimport { KbqToastData } from './toast.type';\n\n@Component({\n selector: 'kbq-toast-container',\n template: '<ng-container #container />',\n styleUrls: ['./toast-container.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'kbq-toast-container'\n }\n})\nexport class KbqToastContainerComponent extends CdkScrollable {\n private injector = inject(Injector);\n private changeDetectorRef = inject(ChangeDetectorRef);\n readonly service = inject(KbqToastService);\n\n readonly viewContainer = viewChild.required('container', { read: ViewContainerRef });\n\n private readonly overlayKeyboardDispatcher = inject(OverlayKeyboardDispatcher);\n\n constructor() {\n super();\n\n // Toasts are ordinary flow children, so removing one slides the rest for as long as its height animates,\n // and an overlay opened from inside a toast is left behind its trigger: CDK re-measures the origin only on\n // a scroll or a viewport resize. The container's box tracks the reflow exactly. It is not reported as a\n // scroll: `ScrollDispatcher` is global, and every close-on-scroll overlay of the app would close.\n inject(SharedResizeObserver)\n .observe(this.elementRef.nativeElement)\n .pipe(takeUntilDestroyed())\n .subscribe(() => this.repositionConnectedOverlays());\n }\n\n createToast<C>(data: KbqToastData, componentType, onTop: boolean): ComponentRef<C> {\n const injector = this.getInjector(data);\n const index = onTop ? 0 : undefined;\n\n this.changeDetectorRef.markForCheck();\n\n return this.viewContainer().createComponent(componentType, { injector, index });\n }\n\n createTemplate<C>(data: KbqToastData, template: TemplateRef<any>, onTop: boolean): EmbeddedViewRef<C> {\n const index = onTop ? 0 : undefined;\n\n return this.viewContainer().createEmbeddedView(template, { $implicit: data }, index);\n }\n\n remove(viewRef: ViewRef) {\n const index = this.viewContainer().indexOf(viewRef);\n\n if (index < 0) {\n return;\n }\n\n this.viewContainer().remove(index);\n }\n\n getInjector(data: KbqToastData): Injector {\n return Injector.create({\n providers: [{ provide: KbqToastData, useValue: data }],\n parent: this.injector\n });\n }\n\n /**\n * Re-applies the position of every overlay anchored to an element; one whose origin has not moved stays where it\n * is. CDK keeps no public registry of attached overlays, but its keyboard dispatcher tracks each of them.\n */\n private repositionConnectedOverlays(): void {\n // A copy: a `positionChanges` handler may detach an overlay, which splices the list being iterated.\n for (const overlayRef of this.overlayKeyboardDispatcher._attachedOverlays.slice()) {\n if (overlayRef.getConfig().positionStrategy instanceof FlexibleConnectedPositionStrategy) {\n overlayRef.updatePosition();\n }\n }\n }\n\n /**\n * Fakes a scroll on the container so that overlays anchored inside a toast are repositioned by their\n * `RepositionScrollStrategy` when the stack shifts.\n *\n * @deprecated The container repositions the overlays anchored inside it on its own, so nothing calls this.\n * It is kept only for callers that already hold a container reference — the instance created by\n * `KbqToastService` is not exposed. The fake scroll also closes every close-on-scroll overlay of the app.\n */\n dispatchScrollEvent = () => {\n this.elementRef.nativeElement.dispatchEvent(new Event('scroll'));\n };\n}\n","import { NgModule } from '@angular/core';\nimport { KbqToastContainerComponent } from './toast-container.component';\nimport { KbqToastCloseButton, KbqToastComponent } from './toast.component';\n\nconst COMPONENTS = [\n KbqToastComponent,\n KbqToastCloseButton,\n KbqToastContainerComponent\n];\n\n@NgModule({\n imports: COMPONENTS,\n exports: COMPONENTS\n})\nexport class KbqToastModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["filter"],"mappings":"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"}
1
+ {"version":3,"file":"koobiq-components-toast.mjs","sources":["../../../packages/components/toast/toast.type.ts","../../../packages/components/toast/toast.component.ts","../../../packages/components/toast/toast.component.html","../../../packages/components/toast/toast.service.ts","../../../packages/components/toast/toast-container.component.ts","../../../packages/components/toast/toast.module.ts","../../../packages/components/toast/koobiq-components-toast.ts"],"sourcesContent":["import { FocusOrigin } from '@angular/cdk/a11y';\nimport { InjectionToken, Provider, TemplateRef } from '@angular/core';\nimport { Subject } from 'rxjs';\n\nexport enum KbqToastStyle {\n Contrast = 'contrast',\n Success = 'success',\n Warning = 'warning',\n Error = 'error'\n}\n\nexport enum KbqToastPosition {\n TOP_RIGHT = 'top-right',\n TOP_LEFT = 'top-left',\n TOP_CENTER = 'top-center',\n BOTTOM_RIGHT = 'bottom-right',\n BOTTOM_LEFT = 'bottom-left',\n BOTTOM_CENTER = 'bottom-center',\n CENTER = 'center'\n}\n\nexport class KbqToastData {\n id?: string;\n title?: string | TemplateRef<any>;\n /** Visual style of the toast. Styles outside `KbqToastStyle` render without a default icon. */\n style?: KbqToastStyle | (string & {});\n\n icon?: TemplateRef<any> | boolean;\n iconClass?: string;\n caption?: string | TemplateRef<any>;\n\n content?: string | TemplateRef<any>;\n actions?: TemplateRef<any>;\n\n closeButton?: TemplateRef<any> | boolean;\n}\n\n/**\n * Context of a template rendered by `KbqToastService.showTemplate`.\n *\n * Note that it differs from the context of the slot templates passed through `KbqToastData` (title, caption,\n * content, actions, icon and close button), whose `$implicit` is the `KbqToastComponent` instance.\n */\nexport type KbqToastTemplateContext = {\n $implicit: KbqToastData;\n};\n\n/**\n * Narrow contract that a toast consumes from the service owning its stack.\n *\n * `KbqToastService` implements it and provides itself under `KBQ_TOAST_STACK` for every toast it creates, so\n * that a toast never has to depend on the concrete service that instantiates it.\n */\nexport interface KbqToastStack {\n /** Emits the data of a toast once the user has read it. */\n readonly read: Subject<KbqToastData | null>;\n /** Removes the toast with the given id from the stack. */\n hide(id: number): void;\n\n /** Reports that the pointer entered or left the toast with the given id. */\n setHovered(id: number, hovered: boolean): void;\n\n /** Reports the origin the toast with the given id is focused with, or `null` once it loses focus. */\n setFocused(id: number, origin: FocusOrigin): void;\n}\n\n/** Stack a toast belongs to. Provided by `KbqToastService` for every toast it creates. */\nexport const KBQ_TOAST_STACK = new InjectionToken<KbqToastStack>('KBQ_TOAST_STACK');\n\nexport interface KbqToastConfig {\n position: KbqToastPosition;\n duration: number;\n delay: number;\n onTop: boolean;\n /** Custom indentation for positioning the toast stack overlay when using `GlobalPositionStrategy` */\n indent: {\n /** Vertical spacing from the top or bottom of the screen. */\n vertical: number;\n\n /** Horizontal spacing from the left or right of the screen. */\n horizontal: number;\n };\n}\n\n/** Frozen so that the fallback every application shares cannot be reconfigured from a single consumer. */\nexport const defaultToastConfig: KbqToastConfig = Object.freeze({\n position: KbqToastPosition.TOP_RIGHT,\n duration: 5000,\n delay: 2000,\n onTop: false,\n indent: Object.freeze({\n vertical: 0,\n horizontal: 0\n })\n});\n\nexport const KBQ_TOAST_CONFIG = new InjectionToken<KbqToastConfig>('kbq-toast-config', {\n factory: () => defaultToastConfig\n});\n\n/** Utility provider for `KBQ_TOAST_CONFIG`. */\nexport const kbqToastConfigurationProvider = (configuration: Partial<KbqToastConfig>): Provider => ({\n provide: KBQ_TOAST_CONFIG,\n useValue: {\n ...defaultToastConfig,\n ...configuration,\n // `indent` is merged on its own: a shallow spread would alias the default object into every\n // configuration that omits it, so writing to one provider's indent would move the global default.\n indent: { ...defaultToastConfig.indent, ...configuration.indent }\n } satisfies KbqToastConfig\n});\n","import { FocusMonitor, FocusOrigin } from '@angular/cdk/a11y';\nimport { NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n Directive,\n ElementRef,\n Injector,\n OnDestroy,\n Signal,\n TemplateRef,\n ViewEncapsulation,\n inject,\n signal\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport {\n KbqReadStateDirective,\n kbqAfterAnimations,\n kbqAnimationsDisabled,\n kbqInjectA11yLocaleConfiguration\n} from '@koobiq/components/core';\nimport { KbqIconModule } from '@koobiq/components/icon';\nimport { KbqTitleModule } from '@koobiq/components/title';\nimport { filter, take } from 'rxjs/operators';\nimport { KBQ_TOAST_STACK, KbqToastData, KbqToastStyle } from './toast.type';\n\n@Directive({\n selector: '[kbq-toast-close-button]',\n host: {\n class: 'kbq-toast__close-button'\n }\n})\nexport class KbqToastCloseButton {}\n\nlet id = 0;\n\n/** Glyph rendered by the built-in icon of every style. A style outside the map renders no default icon. */\nconst defaultIcons: { [style: string]: string | undefined } = {\n [KbqToastStyle.Contrast]: 'kbq-circle-info_16',\n [KbqToastStyle.Success]: 'kbq-circle-check_16',\n [KbqToastStyle.Warning]: 'kbq-triangle-exclamation_16',\n [KbqToastStyle.Error]: 'kbq-triangle-exclamation_16'\n};\n\n/** Styles whose message interrupts the user instead of waiting for the next graceful moment. */\nconst assertiveStyles: string[] = [KbqToastStyle.Warning, KbqToastStyle.Error];\n\n@Component({\n selector: 'kbq-toast',\n imports: [\n NgTemplateOutlet,\n KbqIconModule,\n KbqTitleModule,\n KbqToastCloseButton\n ],\n templateUrl: './toast.component.html',\n styleUrls: ['./toast.component.scss', './toast-tokens.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'kbq-toast',\n '[class]': 'styleClass',\n '[class.kbq-toast_dismissible]': 'closeButton',\n // A toast is inserted into an already rendered page, so the toast itself has to be the live region:\n // screen readers announce a node inserted with `role=\"alert\"`/`role=\"status\"`, while an `aria-live`\n // wrapper has to be in the accessibility tree before its content changes.\n '[attr.role]': 'role',\n 'aria-atomic': 'true',\n '[class.kbq-toast_leaving]': 'leavingHeight() !== null',\n '[style.--kbq-toast-leaving-height.px]': 'leavingHeight()',\n '[class.kbq-animations-disabled]': 'animationsDisabled',\n '(mouseenter)': 'setHovered(true)',\n '(mouseleave)': 'setHovered(false)',\n '(keydown.esc)': 'close()'\n },\n hostDirectives: [KbqReadStateDirective]\n})\nexport class KbqToastComponent implements OnDestroy {\n readonly data = inject(KbqToastData);\n\n private readonly stack = inject(KBQ_TOAST_STACK);\n private readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly focusMonitor = inject(FocusMonitor);\n private readonly injector = inject(Injector);\n\n protected readonly readStateDirective = inject(KbqReadStateDirective, { host: true });\n protected readonly a11yLocaleConfiguration = kbqInjectA11yLocaleConfiguration();\n\n /** Whether the toast appears and leaves without motion. */\n protected readonly animationsDisabled = kbqAnimationsDisabled();\n\n /** Height the exit animation collapses from, set once the toast leaves. */\n protected readonly leavingHeight = signal<number | null>(null);\n\n private readonly _hovered = signal(false);\n private readonly _focused = signal(false);\n\n /** Whether the pointer is over the toast. */\n readonly hovered: Signal<boolean> = this._hovered.asReadonly();\n\n /** Whether the toast or an element inside it holds the focus. */\n readonly focused: Signal<boolean> = this._focused.asReadonly();\n\n id = id++;\n\n /** Context of the templates a consumer passes through `KbqToastData`. */\n readonly $implicit: this = this;\n\n // The injected data belongs to the caller, so every default lives here instead of being written back into it.\n protected readonly style = this.data.style || KbqToastStyle.Contrast;\n protected readonly styleClass = `kbq-toast_${this.style}`;\n protected readonly role = assertiveStyles.includes(this.style) ? 'alert' : 'status';\n protected readonly closeButton = this.data.closeButton !== undefined ? this.data.closeButton : true;\n protected readonly icon = this.data.icon !== undefined ? this.data.icon : true;\n protected readonly defaultIcon: string | null = defaultIcons[this.style] ?? null;\n\n // The slot templates are fixed once the toast is created, so they are resolved once instead of on every\n // change detection cycle.\n protected readonly iconTemplate = this.asTemplateRef(this.icon);\n protected readonly titleTemplate = this.asTemplateRef(this.data.title);\n protected readonly captionTemplate = this.asTemplateRef(this.data.caption);\n protected readonly contentTemplate = this.asTemplateRef(this.data.content);\n protected readonly actionsTemplate = this.asTemplateRef(this.data.actions);\n protected readonly closeButtonTemplate = this.asTemplateRef(this.closeButton);\n\n private alreadyRead = false;\n\n // TODO: nothing in the library uses it; kept as public API at the DS-2196 review. Document or deprecate it.\n get isFocusedOrHovered(): boolean {\n return this.hovered() || this.focused();\n }\n\n constructor() {\n this.runFocusMonitor(inject(DestroyRef));\n\n // `read` is a `BehaviorSubject` re-emitted by every hover long enough to count as read, while a toast\n // is read exactly once.\n this.readStateDirective.read\n .pipe(filter(Boolean), take(1), takeUntilDestroyed())\n .subscribe(() => this.markAsRead());\n }\n\n ngOnDestroy() {\n this.stopFocusMonitor();\n\n this.stack.setHovered(this.id, false);\n this.stack.setFocused(this.id, null);\n }\n\n close(): void {\n this.markAsRead();\n this.stack.hide(this.id);\n }\n\n /**\n * Plays the exit animation of a toast taken off the stack, then calls `done`.\n *\n * @docs-private\n */\n leave(done: () => void): void {\n const element = this.elementRef.nativeElement;\n const destroyRef = this.injector.get(DestroyRef);\n\n // `auto` does not animate, so the collapse starts from the measured height.\n this.leavingHeight.set(element.offsetHeight);\n\n // Raising the stack without `moveBefore()` takes it out of the DOM, which cancels the exit animation and\n // starts it over: the one that runs then is waited for as well.\n const afterExit = (awaited: Animation[]): void => {\n const running = (element.getAnimations?.() ?? []).filter(\n (animation) =>\n animation.playState === 'running' &&\n !awaited.includes(animation) &&\n animation.effect?.getComputedTiming().endTime !== Infinity\n );\n\n if (!running.length) return done();\n\n Promise.allSettled(running.map(({ finished }) => finished)).then(() => {\n if (!destroyRef.destroyed) afterExit(running);\n });\n };\n\n kbqAfterAnimations(\n () => element,\n () => afterExit([]),\n this.injector\n );\n }\n\n /** @docs-private */\n protected setHovered(hovered: boolean): void {\n this._hovered.set(hovered);\n this.stack.setHovered(this.id, hovered);\n }\n\n private markAsRead(): void {\n if (this.alreadyRead) {\n return;\n }\n\n this.alreadyRead = true;\n this.stack.read.next(this.data);\n }\n\n private asTemplateRef(value: unknown): TemplateRef<{ $implicit: KbqToastComponent }> | null {\n return value instanceof TemplateRef ? value : null;\n }\n\n private runFocusMonitor(destroyRef: DestroyRef) {\n this.focusMonitor\n .monitor(this.elementRef.nativeElement, true)\n .pipe(takeUntilDestroyed(destroyRef))\n .subscribe((origin: FocusOrigin) => {\n this._focused.set(!!origin);\n this.stack.setFocused(this.id, origin);\n });\n }\n\n private stopFocusMonitor() {\n this.focusMonitor.stopMonitoring(this.elementRef.nativeElement);\n }\n}\n","@if (icon) {\n <div class=\"kbq-toast__icon-container\">\n @if (iconTemplate) {\n <ng-container [ngTemplateOutlet]=\"iconTemplate\" [ngTemplateOutletContext]=\"{ $implicit }\" />\n } @else if (defaultIcon) {\n <i\n class=\"kbq-toast__icon\"\n aria-hidden=\"true\"\n [kbq-icon]=\"defaultIcon\"\n [color]=\"style\"\n [class]=\"data.iconClass\"\n ></i>\n }\n </div>\n}\n\n<div class=\"kbq-toast__container\">\n @if (data.title) {\n <div\n kbq-title\n class=\"kbq-toast__title\"\n [class.kbq-toast__title_only-text]=\"!titleTemplate\"\n [class.kbq-toast__title_with-content]=\"data.caption || data.content\"\n >\n @if (titleTemplate) {\n <ng-container [ngTemplateOutlet]=\"titleTemplate\" [ngTemplateOutletContext]=\"{ $implicit }\" />\n } @else {\n <p>{{ data.title }}</p>\n }\n </div>\n }\n\n @if (data.caption) {\n <div\n kbq-title\n [class.kbq-toast__text]=\"data.title\"\n [class.kbq-toast__text_only-text]=\"!captionTemplate\"\n [class.kbq-toast__title]=\"!data.title\"\n >\n @if (captionTemplate) {\n <ng-container [ngTemplateOutlet]=\"captionTemplate\" [ngTemplateOutletContext]=\"{ $implicit }\" />\n }\n <!-- prettier-ignore -->\n @else {{{ data.caption }}}\n </div>\n }\n\n @if (data.content) {\n <div class=\"kbq-toast__content\" [class.kbq-toast__content_only-text]=\"!contentTemplate\">\n @if (contentTemplate) {\n <ng-container [ngTemplateOutlet]=\"contentTemplate\" [ngTemplateOutletContext]=\"{ $implicit }\" />\n }\n <!-- prettier-ignore -->\n @else {{{ data.content }}}\n </div>\n }\n\n @if (data.actions) {\n <div class=\"kbq-toast__actions\">\n @if (actionsTemplate) {\n <ng-container [ngTemplateOutlet]=\"actionsTemplate\" [ngTemplateOutletContext]=\"{ $implicit }\" />\n } @else {\n {{ data.actions }}\n }\n </div>\n }\n</div>\n\n@if (closeButton) {\n <div>\n @if (closeButtonTemplate) {\n <ng-container [ngTemplateOutlet]=\"closeButtonTemplate\" [ngTemplateOutletContext]=\"{ $implicit }\" />\n } @else {\n <button\n type=\"button\"\n kbq-icon-button=\"kbq-xmark-s_16\"\n kbq-toast-close-button\n [attr.aria-label]=\"a11yLocaleConfiguration().close\"\n (click)=\"close()\"\n ></button>\n }\n </div>\n}\n","import { FocusMonitor, FocusOrigin } from '@angular/cdk/a11y';\nimport { GlobalPositionStrategy, Overlay, OverlayContainer, OverlayRef } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { DOCUMENT } from '@angular/common';\nimport {\n ComponentRef,\n EmbeddedViewRef,\n Injectable,\n InjectionToken,\n Injector,\n NgZone,\n OnDestroy,\n Signal,\n TemplateRef,\n Type,\n inject,\n signal,\n untracked\n} from '@angular/core';\nimport {\n BehaviorSubject,\n EMPTY,\n Observable,\n Subscription,\n distinctUntilChanged,\n filter,\n map,\n share,\n switchMap,\n timer\n} from 'rxjs';\nimport { KbqToastContainerComponent } from './toast-container.component';\nimport { KbqToastComponent } from './toast.component';\nimport {\n KBQ_TOAST_CONFIG,\n KBQ_TOAST_STACK,\n KbqToastData,\n KbqToastPosition,\n KbqToastStack,\n KbqToastTemplateContext\n} from './toast.type';\n\nexport const KBQ_TOAST_FACTORY = new InjectionToken('KBQ_TOAST_FACTORY', {\n factory: () => KbqToastComponent\n});\n\nconst CHECK_INTERVAL = 500;\n\nlet templateId = 0;\n\n/** `ParentNode.moveBefore()`, which TypeScript does not declare yet. */\ntype StatePreservingParent = ParentNode & { moveBefore?(node: Node, child: Node | null): void };\n\n/** Where a CSS animation in a subtree had got to. */\ntype AnimationProgress = { target: Element | null; name: string; time: CSSNumberish | null };\n\nconst cssAnimationsIn = (element: Element): CSSAnimation[] =>\n (element.getAnimations?.({ subtree: true }) ?? []).filter(\n (animation): animation is CSSAnimation => 'animationName' in animation\n );\n\nconst targetOf = (animation: Animation): Element | null => (animation.effect as KeyframeEffect | null)?.target ?? null;\n\n/**\n * Moves `node` right after `reference` without starting the CSS animations inside it over, as taking a node out of\n * the DOM and putting it back does: the exit animation of a leaving toast would be cancelled, and every visible toast\n * would slide in again. `moveBefore()` keeps them running; where it is missing, each restarted animation is set back\n * to the time it had reached, and one that had ended is ended again.\n */\nconst moveAfter = (node: Element, reference: ChildNode): void => {\n const parent = reference.parentNode as StatePreservingParent | null;\n\n if (parent?.moveBefore) {\n parent.moveBefore(node, reference.nextSibling);\n\n return;\n }\n\n const progress: AnimationProgress[] = cssAnimationsIn(node).map((animation) => ({\n target: targetOf(animation),\n name: animation.animationName,\n time: animation.currentTime\n }));\n\n reference.after(node);\n\n for (const animation of cssAnimationsIn(node)) {\n const reached = progress.find(\n ({ target, name }) => target === targetOf(animation) && name === animation.animationName\n );\n\n if (reached) {\n if (reached.time !== null) animation.currentTime = reached.time;\n } else if (animation.effect?.getComputedTiming().endTime !== Infinity) {\n animation.finish();\n }\n }\n};\n\ntype KbqToastRecord<T> = {\n readonly componentRef: ComponentRef<T>;\n /** Remaining lifetime in ms. `0` keeps the toast on screen until it is hidden explicitly. */\n ttl: number;\n /** Element that held the focus when the toast appeared, so that focus can be handed back to it. */\n readonly previouslyFocused: HTMLElement | null;\n};\n\ntype KbqToastTemplateRecord = {\n readonly viewRef: EmbeddedViewRef<KbqToastTemplateContext>;\n /** Remaining lifetime in ms. `0` keeps the template on screen until it is hidden explicitly. */\n ttl: number;\n};\n\n/** Generic `T` is a type hint only; the runtime component comes from `KBQ_TOAST_FACTORY`. */\n@Injectable({ providedIn: 'root' })\nexport class KbqToastService<T extends KbqToastComponent = KbqToastComponent> implements OnDestroy, KbqToastStack {\n private readonly overlay = inject(Overlay);\n private readonly injector = inject(Injector);\n private readonly overlayContainer = inject(OverlayContainer);\n private readonly ngZone = inject(NgZone);\n private readonly focusMonitor = inject(FocusMonitor);\n private readonly document = inject(DOCUMENT);\n private readonly toastFactory = inject(KBQ_TOAST_FACTORY);\n private readonly toastConfig = inject(KBQ_TOAST_CONFIG);\n\n get toasts(): ComponentRef<T>[] {\n return Object.values(this.toastsDict)\n .map(({ componentRef }) => componentRef)\n .filter((componentRef) => !componentRef.hostView.destroyed);\n }\n\n get templates(): EmbeddedViewRef<KbqToastTemplateContext>[] {\n return Object.values(this.templatesDict)\n .map(({ viewRef }) => viewRef)\n .filter((viewRef) => !viewRef.destroyed);\n }\n\n readonly read = new BehaviorSubject<KbqToastData | null>(null);\n\n private readonly _hovered = signal(false);\n private readonly _focused = signal(false);\n\n /** Whether at least one toast is hovered. */\n readonly hovered: Signal<boolean> = this._hovered.asReadonly();\n\n /** Whether at least one toast holds the focus. */\n readonly focused: Signal<boolean> = this._focused.asReadonly();\n\n private readonly stackSize = new BehaviorSubject<number>(0);\n\n /** Subscribed outside Angular so that a tick never runs change detection over the whole application. */\n private readonly heartbeat = new Observable<number>((subscriber) =>\n this.ngZone.runOutsideAngular(() => timer(CHECK_INTERVAL, CHECK_INTERVAL).subscribe(subscriber))\n );\n\n /**\n * Countdown heartbeat: emits every 500 ms while the stack holds something and is not paused by the pointer\n * or the keyboard focus. No interval runs while the stack is empty.\n */\n readonly timer: Observable<number> = this.stackSize.pipe(\n map((size) => size > 0),\n distinctUntilChanged(),\n switchMap((filled) => (filled ? this.heartbeat : EMPTY)),\n filter(() => !this.isPaused),\n share()\n );\n\n private containerInstance?: KbqToastContainerComponent;\n private overlayRef?: OverlayRef;\n private portal?: ComponentPortal<KbqToastContainerComponent>;\n private timerSubscription: Subscription;\n private currentPosition?: KbqToastPosition;\n\n /** Toasts taken off the stack that still play their exit animation in the container. */\n private readonly leaving = new Set<ComponentRef<T>>();\n\n private toastsDict: { [id: number]: KbqToastRecord<T> } = {};\n private templatesDict: { [id: number]: KbqToastTemplateRecord } = {};\n\n private readonly hoveredToasts = new Set<number>();\n private readonly focusedToasts = new Map<number, FocusOrigin>();\n private wasPaused = false;\n\n private get isPaused(): boolean {\n return this.hoveredToasts.size > 0 || this.focusedToasts.size > 0;\n }\n\n constructor() {\n this.ngZone.runOutsideAngular(() => {\n this.timerSubscription = this.timer.subscribe(this.processToasts);\n });\n }\n\n ngOnDestroy(): void {\n this.timerSubscription.unsubscribe();\n this.overlayRef?.dispose();\n this.overlayRef = undefined;\n this.containerInstance = undefined;\n this.portal = undefined;\n this.currentPosition = undefined;\n this.toastsDict = {};\n this.templatesDict = {};\n this.hoveredToasts.clear();\n this.focusedToasts.clear();\n this.stackSize.next(0);\n }\n\n show(\n data: KbqToastData,\n duration: number = this.toastConfig.duration,\n onTop: boolean = this.toastConfig.onTop\n ): { ref: ComponentRef<T>; id: number } {\n // Untracked, as `showTemplate()`, `hide()` and `hideTemplate()`: called from a consumer's `effect()`, the signals\n // read on the way — the container's view query, those the focus listeners read when the focus moves on to the\n // next toast — would become dependencies of the effect.\n return untracked(() => this.addToast(data, duration, onTop));\n }\n\n /** Body of `show()`. */\n private addToast(data: KbqToastData, duration: number, onTop: boolean): { ref: ComponentRef<T>; id: number } {\n const previouslyFocused = this.document.activeElement as HTMLElement | null;\n const container = this.prepareContainer();\n // The class generic is a hint: the runtime component is whatever `KBQ_TOAST_FACTORY` resolves to.\n const componentRef = container.createToast<T>(data, this.toastFactory as Type<T>, onTop);\n const id = componentRef.instance.id;\n\n if (typeof id !== 'number') {\n // The component is already rendered by now, and it never reaches the stack, so nothing else\n // would ever tear it down: every retry would strand one more element inside the overlay.\n // Detaching the view drops it from the container but leaves its host element connected, so\n // the element has to be taken out by hand as well.\n container.remove(componentRef.hostView);\n (componentRef.location.nativeElement as HTMLElement).remove();\n this.detachOverlay();\n\n throw new Error('KBQ_TOAST_FACTORY must provide a component extending KbqToastComponent: `id` is missing.');\n }\n\n this.toastsDict[id] = { componentRef, ttl: duration, previouslyFocused };\n this.syncStackSize();\n\n return { ref: componentRef, id };\n }\n\n showTemplate(\n data: KbqToastData,\n template: TemplateRef<any>,\n duration: number = this.toastConfig.duration,\n onTop: boolean = this.toastConfig.onTop\n ): { ref: EmbeddedViewRef<KbqToastTemplateContext>; id: number } {\n return untracked(() => this.addTemplate(data, template, duration, onTop));\n }\n\n /** Body of `showTemplate()`. */\n private addTemplate(\n data: KbqToastData,\n template: TemplateRef<any>,\n duration: number,\n onTop: boolean\n ): { ref: EmbeddedViewRef<KbqToastTemplateContext>; id: number } {\n const container = this.prepareContainer();\n const viewRef = container.createTemplate(data, template, onTop);\n const id = templateId++;\n\n this.templatesDict[id] = { viewRef, ttl: duration };\n this.syncStackSize();\n\n return { ref: viewRef, id };\n }\n\n hide(id: number) {\n untracked(() => this.removeToast(id));\n }\n\n /** Body of `hide()`. */\n private removeToast(id: number): void {\n const record = this.toastsDict[id];\n\n if (!record) {\n return;\n }\n\n // Removing the view destroys the toast, which releases its own pause state, so the focus origin has to\n // be read before that happens.\n const focusOrigin = this.focusedToasts.get(id);\n\n this.removeAfterExit(record.componentRef);\n\n delete this.toastsDict[id];\n\n this.setHovered(id, false);\n this.setFocused(id, null);\n\n // Only a keyboard or a programmatic focus is handed on. A mouse press on the close button focuses it\n // as a side effect of the click, and moving that focus into the next toast would report the survivor\n // as focused — pausing the whole stack until something blurs it, which a pointer leaving never does.\n if (focusOrigin === 'keyboard' || focusOrigin === 'program') {\n this.restoreFocus(record.previouslyFocused, focusOrigin);\n }\n\n this.renewLifetimes();\n this.syncStackSize();\n }\n\n hideTemplate(id: number) {\n untracked(() => this.removeTemplate(id));\n }\n\n /** Body of `hideTemplate()`. */\n private removeTemplate(id: number): void {\n const record = this.templatesDict[id];\n\n if (!record) {\n return;\n }\n\n this.containerInstance?.remove(record.viewRef);\n\n delete this.templatesDict[id];\n\n this.renewLifetimes();\n this.syncStackSize();\n this.detachOverlay();\n }\n\n /** Reports that the pointer entered or left the toast with the given id. @docs-private */\n setHovered(id: number, hovered: boolean): void {\n if (hovered === this.hoveredToasts.has(id)) {\n return;\n }\n\n if (hovered) {\n this.hoveredToasts.add(id);\n } else {\n this.hoveredToasts.delete(id);\n }\n\n this.updatePauseState();\n }\n\n /** Reports the origin the toast with the given id is focused with, or `null` once it is not. @docs-private */\n setFocused(id: number, origin: FocusOrigin): void {\n if ((this.focusedToasts.get(id) ?? null) === origin) {\n return;\n }\n\n if (origin) {\n this.focusedToasts.set(id, origin);\n } else {\n this.focusedToasts.delete(id);\n }\n\n this.updatePauseState();\n }\n\n private updatePauseState(): void {\n const paused = this.isPaused;\n\n // Entering the paused state renews the countdown, so that nothing disappears the instant the pointer or\n // the focus leaves the stack.\n if (paused && !this.wasPaused) {\n this.renewLifetimes();\n }\n\n this.wasPaused = paused;\n\n this._hovered.set(this.hoveredToasts.size > 0);\n this._focused.set(this.focusedToasts.size > 0);\n }\n\n /** Focus must not fall back to the document body when the toast holding it goes away. */\n private restoreFocus(previouslyFocused: HTMLElement | null, origin: FocusOrigin): void {\n const target = this.getNextFocusTarget() || previouslyFocused;\n\n if (!target?.isConnected) {\n return;\n }\n\n // `focusVia` keeps the focus ring of a keyboard user, which a native `focus()` would drop.\n this.focusMonitor.focusVia(target, origin || 'program');\n }\n\n private getNextFocusTarget(): HTMLElement | null {\n // Stack order, not `toastsDict` order. The dictionary is keyed by id, so `toasts` always reads\n // oldest-first, while `onTop` inserts a new toast at the top of the stack — following the dictionary\n // there would carry the focus past every toast between the one that closed and the oldest on screen.\n const inStackOrder = this.toasts\n .map(({ location }) => location.nativeElement as HTMLElement)\n .sort((a, b) => (a.compareDocumentPosition(b) & Node.DOCUMENT_POSITION_FOLLOWING ? -1 : 1));\n\n for (const host of inStackOrder) {\n const closeButton = host.querySelector<HTMLElement>('[kbq-toast-close-button]');\n\n if (closeButton) {\n return closeButton;\n }\n }\n\n return null;\n }\n\n /** Plays the exit animation of a toast taken off the stack, then removes it from the container. */\n private removeAfterExit(componentRef: ComponentRef<T>): void {\n // Destroyed by whoever held the ref: there is nothing left to animate.\n if (componentRef.hostView.destroyed) {\n this.detachOverlay();\n\n return;\n }\n\n this.leaving.add(componentRef);\n // Also destroyed before its exit ends, by whoever holds the ref or with the overlay, which a destroyed\n // view never reports back from.\n componentRef.onDestroy(() => {\n this.leaving.delete(componentRef);\n this.detachOverlay();\n });\n\n componentRef.instance.leave(() => this.containerInstance?.remove(componentRef.hostView));\n }\n\n /** Detaching destroys the container, so it waits for the stack to empty and the last exit to end. */\n private detachOverlay(): void {\n if (this.toasts.length !== 0 || this.templates.length !== 0 || this.leaving.size !== 0) {\n return;\n }\n\n this.overlayRef?.detach();\n }\n\n private syncStackSize(): void {\n this.stackSize.next(this.toasts.length + this.templates.length);\n }\n\n /**\n * Drops the records whose view was destroyed from outside the service — by a consumer holding the ref,\n * or by whatever owns the surrounding view. Nothing else deletes them: a record with a `ttl` of `0` is\n * skipped by the countdown forever, so the stack would keep reporting a size and the heartbeat would\n * keep running with nothing on screen.\n */\n private purgeDestroyed(): void {\n let purged = false;\n\n for (const [id, { componentRef }] of Object.entries(this.toastsDict)) {\n if (!componentRef.hostView.destroyed) {\n continue;\n }\n\n delete this.toastsDict[+id];\n this.setHovered(+id, false);\n this.setFocused(+id, null);\n purged = true;\n }\n\n for (const [id, { viewRef }] of Object.entries(this.templatesDict)) {\n if (!viewRef.destroyed) {\n continue;\n }\n\n delete this.templatesDict[+id];\n purged = true;\n }\n\n if (!purged) {\n return;\n }\n\n this.syncStackSize();\n this.detachOverlay();\n }\n\n private processToasts = () => {\n this.purgeDestroyed();\n\n for (const [id, record] of Object.entries(this.toastsDict)) {\n if (record.ttl <= 0) {\n continue;\n }\n\n record.ttl -= CHECK_INTERVAL;\n\n if (record.ttl <= 0) {\n this.ngZone.run(() => this.hide(+id));\n\n return;\n }\n }\n\n for (const [id, record] of Object.entries(this.templatesDict)) {\n if (record.ttl <= 0) {\n continue;\n }\n\n record.ttl -= CHECK_INTERVAL;\n\n if (record.ttl <= 0) {\n this.ngZone.run(() => this.hideTemplate(+id));\n\n return;\n }\n }\n };\n\n /** Keeps every survivor on screen for at least the configured delay after a dismissal or a pause. */\n private renewLifetimes() {\n const records = [...Object.values(this.toastsDict), ...Object.values(this.templatesDict)];\n\n for (const record of records) {\n if (record.ttl > 0) {\n record.ttl = Math.max(record.ttl, this.toastConfig.delay);\n }\n }\n }\n\n private prepareContainer(): KbqToastContainerComponent {\n const overlayRef = this.createOverlay();\n const portal = this.portal || new ComponentPortal(KbqToastContainerComponent, null, this.createStackInjector());\n\n this.portal = portal;\n\n if (!overlayRef.hasAttached()) {\n this.containerInstance = overlayRef.attach(portal).instance;\n this.containerInstance\n .getElementRef()\n .nativeElement.classList.add(`kbq-toast-container-${this.toastConfig.position}`);\n }\n\n this.toTop(overlayRef);\n\n return this.containerInstance!;\n }\n\n /** Every toast resolves its stack through the container, so that it never depends on this service. */\n private createStackInjector(): Injector {\n return Injector.create({\n providers: [{ provide: KBQ_TOAST_STACK, useValue: this }],\n parent: this.injector\n });\n }\n\n /** Raises the stack above the overlays opened after it. */\n private toTop(overlayRef: OverlayRef) {\n const host = overlayRef.hostElement;\n const overlays = this.overlayContainer.getContainerElement().childNodes;\n const last = overlays[overlays.length - 1];\n\n // The identity check matters: `x.after(x)` is not a no-op. `after()` resolves no viable next\n // sibling for a node that is already last and falls through to `insertBefore(x, null)`, whose\n // insert steps take `x` out of its parent first — a real detach and re-attach of the wrapper\n // holding every live toast, on every `show()`.\n if (overlays.length < 2 || last === host) {\n return;\n }\n\n // A popover host is in the top layer, painted in the order the popovers were shown in, not in DOM\n // order. Taking it out of the DOM hides the popover, which drops the stack beneath every overlay\n // there, so it is shown again instead. Its place in the DOM stays, so it is raised again on every\n // `show()` while that overlay is open.\n if (overlayRef.getConfig().usePopover && host.matches(':popover-open')) {\n host.hidePopover();\n host.showPopover();\n\n return;\n }\n\n moveAfter(host, last);\n }\n\n private createOverlay(): OverlayRef {\n const expectedPosition = this.toastConfig.position;\n\n if (this.overlayRef && this.currentPosition === expectedPosition) {\n return this.overlayRef;\n }\n\n if (this.overlayRef) {\n // Nothing survives the overlay it lives in, so the stack is drained through the regular paths\n // instead of leaving both dictionaries pointing at destroyed views.\n this.clear();\n\n this.overlayRef.dispose();\n this.overlayRef = undefined;\n this.containerInstance = undefined;\n this.portal = undefined;\n }\n\n const positionStrategy = this.getPositionStrategy(expectedPosition);\n const overlayRef = this.overlay.create({ positionStrategy });\n\n overlayRef.hostElement.classList.add('kbq-toast-overlay');\n\n this.overlayRef = overlayRef;\n this.currentPosition = expectedPosition;\n\n return overlayRef;\n }\n\n private clear(): void {\n Object.keys(this.toastsDict).forEach((id) => this.hide(+id));\n Object.keys(this.templatesDict).forEach((id) => this.hideTemplate(+id));\n }\n\n private getPositionStrategy(position?: KbqToastPosition): GlobalPositionStrategy {\n switch (position) {\n case KbqToastPosition.CENTER:\n return this.getCenter();\n case KbqToastPosition.BOTTOM_CENTER:\n return this.getBottomCenter();\n case KbqToastPosition.BOTTOM_LEFT:\n return this.getBottomLeft();\n case KbqToastPosition.BOTTOM_RIGHT:\n return this.getBottomRight();\n case KbqToastPosition.TOP_CENTER:\n return this.getTopCenter();\n case KbqToastPosition.TOP_LEFT:\n return this.getTopLeft();\n case KbqToastPosition.TOP_RIGHT:\n return this.getTopRight();\n default:\n return this.getTopCenter();\n }\n }\n\n private getTopCenter(): GlobalPositionStrategy {\n return this.getGlobalOverlayPosition().top(`${this.toastConfig.indent.vertical}px`).centerHorizontally();\n }\n\n private getTopLeft(): GlobalPositionStrategy {\n return this.getGlobalOverlayPosition()\n .top(`${this.toastConfig.indent.vertical}px`)\n .left(`${this.toastConfig.indent.horizontal}px`);\n }\n\n private getTopRight(): GlobalPositionStrategy {\n return this.getGlobalOverlayPosition()\n .top(`${this.toastConfig.indent.vertical}px`)\n .right(`${this.toastConfig.indent.horizontal}px`);\n }\n\n private getBottomCenter(): GlobalPositionStrategy {\n return this.getGlobalOverlayPosition().bottom(`${this.toastConfig.indent.vertical}px`).centerHorizontally();\n }\n\n private getBottomLeft(): GlobalPositionStrategy {\n return this.getGlobalOverlayPosition()\n .bottom(`${this.toastConfig.indent.vertical}px`)\n .left(`${this.toastConfig.indent.horizontal}px`);\n }\n\n private getBottomRight(): GlobalPositionStrategy {\n return this.getGlobalOverlayPosition()\n .bottom(`${this.toastConfig.indent.vertical}px`)\n .right(`${this.toastConfig.indent.horizontal}px`);\n }\n\n private getCenter(): GlobalPositionStrategy {\n return this.getGlobalOverlayPosition().centerVertically().centerHorizontally();\n }\n\n private getGlobalOverlayPosition(): GlobalPositionStrategy {\n return this.overlay.position().global();\n }\n}\n","import { SharedResizeObserver } from '@angular/cdk/observers/private';\nimport { CdkScrollable, FlexibleConnectedPositionStrategy, OverlayKeyboardDispatcher } from '@angular/cdk/overlay';\nimport {\n ChangeDetectionStrategy,\n Component,\n ComponentRef,\n EmbeddedViewRef,\n Injector,\n TemplateRef,\n Type,\n ViewContainerRef,\n ViewEncapsulation,\n ViewRef,\n forwardRef,\n inject,\n viewChild\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { kbqInjectA11yLocaleConfiguration } from '@koobiq/components/core';\nimport { KbqToastService } from './toast.service';\nimport { KBQ_TOAST_STACK, KbqToastData, KbqToastTemplateContext } from './toast.type';\n\n@Component({\n selector: 'kbq-toast-container',\n template: '<ng-container #container />',\n styleUrls: ['./toast-container.component.scss'],\n // A container written into a consumer's template has no stack above it — `KbqToastService` provides\n // itself only for the container it creates — so `createToast()` would leave the toast without one.\n // `forwardRef` because the service imports this file back.\n providers: [{ provide: KBQ_TOAST_STACK, useExisting: forwardRef(() => KbqToastService) }],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'kbq-toast-container',\n role: 'region',\n '[attr.aria-label]': 'a11yLocaleConfiguration().toastRegion'\n }\n})\nexport class KbqToastContainerComponent extends CdkScrollable {\n private readonly injector = inject(Injector);\n\n protected readonly a11yLocaleConfiguration = kbqInjectA11yLocaleConfiguration();\n\n readonly service = inject(KbqToastService);\n\n readonly viewContainer = viewChild.required('container', { read: ViewContainerRef });\n\n private readonly overlayKeyboardDispatcher = inject(OverlayKeyboardDispatcher);\n\n constructor() {\n super();\n\n // Toasts are ordinary flow children, so removing one slides the rest for as long as its height animates,\n // and an overlay opened from inside a toast is left behind its trigger: CDK re-measures the origin only on\n // a scroll or a viewport resize. The container's box tracks the reflow exactly. It is not reported as a\n // scroll: `ScrollDispatcher` is global, and every close-on-scroll overlay of the app would close.\n inject(SharedResizeObserver)\n .observe(this.elementRef.nativeElement)\n .pipe(takeUntilDestroyed())\n .subscribe(() => this.repositionConnectedOverlays());\n }\n\n createToast<C>(data: KbqToastData, componentType: Type<C>, onTop: boolean): ComponentRef<C> {\n const injector = this.getInjector(data);\n const index = onTop ? 0 : undefined;\n\n return this.viewContainer().createComponent(componentType, { injector, index });\n }\n\n createTemplate(\n data: KbqToastData,\n template: TemplateRef<any>,\n onTop: boolean\n ): EmbeddedViewRef<KbqToastTemplateContext> {\n const index = onTop ? 0 : undefined;\n const viewRef = this.viewContainer().createEmbeddedView<KbqToastTemplateContext>(\n template,\n { $implicit: data },\n index\n );\n\n this.markAsLiveRegion(viewRef);\n\n return viewRef;\n }\n\n remove(viewRef: ViewRef) {\n const index = this.viewContainer().indexOf(viewRef);\n\n if (index < 0) {\n return;\n }\n\n this.viewContainer().remove(index);\n }\n\n getInjector(data: KbqToastData): Injector {\n return Injector.create({\n providers: [{ provide: KbqToastData, useValue: data }],\n parent: this.injector\n });\n }\n\n /**\n * Re-applies the position of every overlay anchored to an element; one whose origin has not moved stays where it\n * is. CDK keeps no public registry of attached overlays, but its keyboard dispatcher tracks each of them.\n */\n private repositionConnectedOverlays(): void {\n // A copy: a `positionChanges` handler may detach an overlay, which splices the list being iterated.\n for (const overlayRef of this.overlayKeyboardDispatcher._attachedOverlays.slice()) {\n if (overlayRef.getConfig().positionStrategy instanceof FlexibleConnectedPositionStrategy) {\n overlayRef.updatePosition();\n }\n }\n }\n\n /**\n * A template toast has no component host of its own, so its first element becomes the live region — screen\n * readers announce a node inserted with `role=\"status\"`. A template declaring its own role is left alone,\n * and one whose root is a bare text node cannot carry the attribute at all — it needs an element around it.\n */\n private markAsLiveRegion(viewRef: EmbeddedViewRef<KbqToastTemplateContext>): void {\n const root = viewRef.rootNodes.find((node) => node?.nodeType === Node.ELEMENT_NODE) as HTMLElement | undefined;\n\n if (!root || root.hasAttribute('role')) {\n return;\n }\n\n root.setAttribute('role', 'status');\n root.setAttribute('aria-atomic', 'true');\n }\n}\n","import { NgModule } from '@angular/core';\nimport { KbqToastContainerComponent } from './toast-container.component';\nimport { KbqToastCloseButton, KbqToastComponent } from './toast.component';\n\nconst COMPONENTS = [\n KbqToastComponent,\n KbqToastCloseButton,\n KbqToastContainerComponent\n];\n\n@NgModule({\n imports: COMPONENTS,\n exports: COMPONENTS\n})\nexport class KbqToastModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["filter"],"mappings":"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"}