@koobiq/components 20.4.2 → 21.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (771) 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 +755 -601
  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 +2810 -2538
  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 +366 -136
  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 +719 -488
  197. package/fesm2022/koobiq-components-tree-select.mjs.map +1 -1
  198. package/fesm2022/koobiq-components-tree.mjs +1506 -558
  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 +399 -7
  264. package/schematics/migrations/accordion-state-saving-default/README.md +60 -0
  265. package/schematics/migrations/accordion-state-saving-default/data.js +75 -0
  266. package/schematics/migrations/accordion-state-saving-default/index.js +60 -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.js +47 -0
  270. package/schematics/migrations/actions-panel-overlay-container/index.js +54 -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 +3 -0
  274. package/schematics/migrations/alert-signals/index.js +70 -203
  275. package/schematics/migrations/angular-animations-removal/README.md +46 -0
  276. package/schematics/migrations/angular-animations-removal/data.js +150 -0
  277. package/schematics/migrations/angular-animations-removal/index.js +20 -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.js +136 -0
  281. package/schematics/migrations/app-switcher-signals/index.js +365 -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 +1 -1
  285. package/schematics/migrations/autocomplete-signals/README.md +92 -0
  286. package/schematics/migrations/autocomplete-signals/data.js +149 -0
  287. package/schematics/migrations/autocomplete-signals/index.js +706 -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.js +109 -0
  291. package/schematics/migrations/badge-signals/index.js +693 -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.js +136 -0
  295. package/schematics/migrations/button-state-and-styles/index.js +220 -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.js +106 -0
  299. package/schematics/migrations/button-supported-colors/index.js +260 -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.js +200 -0
  303. package/schematics/migrations/button-toggle-signals-and-aria/index.js +496 -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.js +88 -0
  307. package/schematics/migrations/button-truncation/index.js +269 -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.js +114 -0
  311. package/schematics/migrations/checkbox-signals/index.js +634 -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.js +101 -0
  315. package/schematics/migrations/clamped-text-disclosure/index.js +59 -0
  316. package/schematics/migrations/clamped-text-disclosure/schema.json +15 -0
  317. package/schematics/migrations/code-block-signals/README.md +84 -0
  318. package/schematics/migrations/code-block-signals/data.js +121 -0
  319. package/schematics/migrations/code-block-signals/index.js +700 -0
  320. package/schematics/migrations/code-block-signals/schema.json +20 -0
  321. package/schematics/migrations/color-signals/README.md +46 -0
  322. package/schematics/migrations/color-signals/data.js +131 -0
  323. package/schematics/migrations/color-signals/index.js +19 -0
  324. package/schematics/migrations/color-signals/schema.json +20 -0
  325. package/schematics/migrations/core-mixins-removal/README.md +20 -0
  326. package/schematics/migrations/core-mixins-removal/data.js +27 -0
  327. package/schematics/migrations/core-mixins-removal/index.js +17 -0
  328. package/schematics/migrations/core-mixins-removal/schema.json +15 -0
  329. package/schematics/migrations/css-selectors/README.md +2 -2
  330. package/schematics/migrations/css-selectors/index.js +1 -1
  331. package/schematics/migrations/datepicker-signals/README.md +24 -0
  332. package/schematics/migrations/datepicker-signals/data.js +49 -0
  333. package/schematics/migrations/datepicker-signals/index.js +17 -0
  334. package/schematics/migrations/datepicker-signals/schema.json +15 -0
  335. package/schematics/migrations/deprecated-icons/README.md +2 -2
  336. package/schematics/migrations/deprecated-icons/index.js +1 -1
  337. package/schematics/migrations/design-tokens-v4/README.md +75 -0
  338. package/schematics/migrations/design-tokens-v4/index.js +59 -0
  339. package/schematics/migrations/design-tokens-v4/schema.json +15 -0
  340. package/schematics/migrations/divider-signals-and-aria/README.md +47 -0
  341. package/schematics/migrations/divider-signals-and-aria/data.js +62 -0
  342. package/schematics/migrations/divider-signals-and-aria/index.js +211 -0
  343. package/schematics/migrations/divider-signals-and-aria/schema.json +15 -0
  344. package/schematics/migrations/dl-attribute-coercion/README.md +59 -0
  345. package/schematics/migrations/dl-attribute-coercion/data.js +85 -0
  346. package/schematics/migrations/dl-attribute-coercion/index.js +161 -0
  347. package/schematics/migrations/dl-attribute-coercion/schema.json +15 -0
  348. package/schematics/migrations/dl-standalone-names/README.md +49 -0
  349. package/schematics/migrations/dl-standalone-names/data.js +44 -0
  350. package/schematics/migrations/dl-standalone-names/index.js +321 -0
  351. package/schematics/migrations/dl-standalone-names/schema.json +20 -0
  352. package/schematics/migrations/dropdown-demote-overlay/README.md +137 -0
  353. package/schematics/migrations/dropdown-demote-overlay/data.js +84 -0
  354. package/schematics/migrations/dropdown-demote-overlay/index.js +288 -0
  355. package/schematics/migrations/dropdown-demote-overlay/schema.json +20 -0
  356. package/schematics/migrations/dropdown-signals/README.md +83 -0
  357. package/schematics/migrations/dropdown-signals/data.js +152 -0
  358. package/schematics/migrations/dropdown-signals/index.js +19 -0
  359. package/schematics/migrations/dropdown-signals/schema.json +20 -0
  360. package/schematics/migrations/empty-state-error-color/README.md +84 -0
  361. package/schematics/migrations/empty-state-error-color/data.js +85 -0
  362. package/schematics/migrations/empty-state-error-color/index.js +71 -0
  363. package/schematics/migrations/empty-state-error-color/schema.json +15 -0
  364. package/schematics/migrations/empty-state-size-attr/README.md +2 -2
  365. package/schematics/migrations/empty-state-size-attr/index.js +1 -1
  366. package/schematics/migrations/file-upload-cva-and-primitives/README.md +70 -0
  367. package/schematics/migrations/file-upload-cva-and-primitives/data.js +97 -0
  368. package/schematics/migrations/file-upload-cva-and-primitives/index.js +60 -0
  369. package/schematics/migrations/file-upload-cva-and-primitives/schema.json +15 -0
  370. package/schematics/migrations/file-upload-deprecated-outputs/README.md +90 -0
  371. package/schematics/migrations/file-upload-deprecated-outputs/data.js +20 -0
  372. package/schematics/migrations/file-upload-deprecated-outputs/index.js +70 -0
  373. package/schematics/migrations/file-upload-deprecated-outputs/schema.json +20 -0
  374. package/schematics/migrations/filter-bar-rename-action/README.md +183 -0
  375. package/schematics/migrations/filter-bar-rename-action/data.js +151 -0
  376. package/schematics/migrations/filter-bar-rename-action/index.js +177 -0
  377. package/schematics/migrations/filter-bar-rename-action/schema.json +20 -0
  378. package/schematics/migrations/filter-bar-signals/README.md +27 -16
  379. package/schematics/migrations/filter-bar-signals/data.js +1 -2
  380. package/schematics/migrations/filter-bar-signals/index.js +100 -195
  381. package/schematics/migrations/filter-bar-state-saving-default/README.md +53 -0
  382. package/schematics/migrations/filter-bar-state-saving-default/data.js +87 -0
  383. package/schematics/migrations/filter-bar-state-saving-default/index.js +61 -0
  384. package/schematics/migrations/filter-bar-state-saving-default/schema.json +15 -0
  385. package/schematics/migrations/flag-inner-html/README.md +67 -0
  386. package/schematics/migrations/flag-inner-html/data.js +58 -0
  387. package/schematics/migrations/flag-inner-html/index.js +61 -0
  388. package/schematics/migrations/flag-inner-html/schema.json +15 -0
  389. package/schematics/migrations/form-field-signals/README.md +125 -0
  390. package/schematics/migrations/form-field-signals/data.js +288 -0
  391. package/schematics/migrations/form-field-signals/index.js +382 -0
  392. package/schematics/migrations/form-field-signals/schema.json +20 -0
  393. package/schematics/migrations/icon-semantics-and-api/README.md +65 -0
  394. package/schematics/migrations/icon-semantics-and-api/data.js +97 -0
  395. package/schematics/migrations/icon-semantics-and-api/index.js +64 -0
  396. package/schematics/migrations/icon-semantics-and-api/schema.json +15 -0
  397. package/schematics/migrations/icons-replacement/README.md +5 -5
  398. package/schematics/migrations/icons-replacement/index.js +1 -1
  399. package/schematics/migrations/inline-edit-a11y-and-types/README.md +82 -0
  400. package/schematics/migrations/inline-edit-a11y-and-types/data.js +117 -0
  401. package/schematics/migrations/inline-edit-a11y-and-types/index.js +97 -0
  402. package/schematics/migrations/inline-edit-a11y-and-types/schema.json +20 -0
  403. package/schematics/migrations/input-number-surface/README.md +140 -0
  404. package/schematics/migrations/input-number-surface/data.js +135 -0
  405. package/schematics/migrations/input-number-surface/index.js +292 -0
  406. package/schematics/migrations/input-number-surface/schema.json +20 -0
  407. package/schematics/migrations/input-signals/README.md +20 -0
  408. package/schematics/migrations/input-signals/data.js +30 -0
  409. package/schematics/migrations/input-signals/index.js +17 -0
  410. package/schematics/migrations/input-signals/schema.json +15 -0
  411. package/schematics/migrations/link-deprecated-path/README.md +144 -0
  412. package/schematics/migrations/link-deprecated-path/index.js +19 -0
  413. package/schematics/migrations/link-deprecated-path/schema.json +20 -0
  414. package/schematics/migrations/link-signals/README.md +71 -0
  415. package/schematics/migrations/link-signals/data.js +116 -0
  416. package/schematics/migrations/link-signals/index.js +415 -0
  417. package/schematics/migrations/link-signals/schema.json +20 -0
  418. package/schematics/migrations/list-signals/README.md +22 -0
  419. package/schematics/migrations/list-signals/data.js +35 -0
  420. package/schematics/migrations/list-signals/index.js +17 -0
  421. package/schematics/migrations/list-signals/schema.json +15 -0
  422. package/schematics/migrations/list-tree-multiple-input/README.md +105 -0
  423. package/schematics/migrations/list-tree-multiple-input/data.js +74 -0
  424. package/schematics/migrations/list-tree-multiple-input/index.js +221 -0
  425. package/schematics/migrations/list-tree-multiple-input/schema.json +20 -0
  426. package/schematics/migrations/loader-overlay-signals/README.md +62 -0
  427. package/schematics/migrations/loader-overlay-signals/data.js +101 -0
  428. package/schematics/migrations/loader-overlay-signals/index.js +697 -0
  429. package/schematics/migrations/loader-overlay-signals/schema.json +20 -0
  430. package/schematics/migrations/loader-overlay-size-attr/README.md +2 -2
  431. package/schematics/migrations/loader-overlay-size-attr/index.js +1 -1
  432. package/schematics/migrations/locale-configuration-providers/README.md +163 -0
  433. package/schematics/migrations/locale-configuration-providers/data.js +257 -0
  434. package/schematics/migrations/locale-configuration-providers/index.js +294 -0
  435. package/schematics/migrations/locale-configuration-providers/schema.json +20 -0
  436. package/schematics/migrations/mandatory-peer-dependencies/README.md +70 -0
  437. package/schematics/migrations/mandatory-peer-dependencies/index.js +42 -0
  438. package/schematics/migrations/mandatory-peer-dependencies/schema.json +15 -0
  439. package/schematics/migrations/markdown-signals/README.md +58 -0
  440. package/schematics/migrations/markdown-signals/data.js +79 -0
  441. package/schematics/migrations/markdown-signals/index.js +639 -0
  442. package/schematics/migrations/markdown-signals/schema.json +20 -0
  443. package/schematics/migrations/modal-dialog-semantics/README.md +106 -0
  444. package/schematics/migrations/modal-dialog-semantics/data.js +110 -0
  445. package/schematics/migrations/modal-dialog-semantics/index.js +58 -0
  446. package/schematics/migrations/modal-dialog-semantics/schema.json +15 -0
  447. package/schematics/migrations/modal-signals/README.md +88 -0
  448. package/schematics/migrations/modal-signals/data.js +132 -0
  449. package/schematics/migrations/modal-signals/index.js +19 -0
  450. package/schematics/migrations/modal-signals/schema.json +20 -0
  451. package/schematics/migrations/navbar-signals-and-aria/README.md +111 -0
  452. package/schematics/migrations/navbar-signals-and-aria/data.js +198 -0
  453. package/schematics/migrations/navbar-signals-and-aria/index.js +568 -0
  454. package/schematics/migrations/navbar-signals-and-aria/schema.json +20 -0
  455. package/schematics/migrations/new-icons-pack/README.md +10 -10
  456. package/schematics/migrations/new-icons-pack/index.js +1 -1
  457. package/schematics/migrations/notification-center-signals/README.md +67 -0
  458. package/schematics/migrations/notification-center-signals/data.js +66 -0
  459. package/schematics/migrations/notification-center-signals/index.js +61 -0
  460. package/schematics/migrations/notification-center-signals/schema.json +15 -0
  461. package/schematics/migrations/option-signals/README.md +37 -0
  462. package/schematics/migrations/option-signals/data.js +86 -0
  463. package/schematics/migrations/option-signals/index.js +19 -0
  464. package/schematics/migrations/option-signals/schema.json +20 -0
  465. package/schematics/migrations/popover-leave-delay/README.md +51 -0
  466. package/schematics/migrations/popover-leave-delay/data.js +61 -0
  467. package/schematics/migrations/popover-leave-delay/index.js +54 -0
  468. package/schematics/migrations/popover-leave-delay/schema.json +15 -0
  469. package/schematics/migrations/progress-bar-percentage-and-aria/README.md +54 -0
  470. package/schematics/migrations/progress-bar-percentage-and-aria/data.js +76 -0
  471. package/schematics/migrations/progress-bar-percentage-and-aria/index.js +58 -0
  472. package/schematics/migrations/progress-bar-percentage-and-aria/schema.json +15 -0
  473. package/schematics/migrations/progress-spinner-signals/README.md +72 -0
  474. package/schematics/migrations/progress-spinner-signals/data.js +83 -0
  475. package/schematics/migrations/progress-spinner-signals/index.js +694 -0
  476. package/schematics/migrations/progress-spinner-signals/schema.json +20 -0
  477. package/schematics/migrations/query-list-signals/README.md +32 -0
  478. package/schematics/migrations/query-list-signals/data.js +70 -0
  479. package/schematics/migrations/query-list-signals/index.js +17 -0
  480. package/schematics/migrations/query-list-signals/schema.json +15 -0
  481. package/schematics/migrations/radio-signals-and-aria/README.md +82 -0
  482. package/schematics/migrations/radio-signals-and-aria/data.js +163 -0
  483. package/schematics/migrations/radio-signals-and-aria/index.js +39 -0
  484. package/schematics/migrations/radio-signals-and-aria/schema.json +20 -0
  485. package/schematics/migrations/read-state-dwell-handlers/README.md +125 -0
  486. package/schematics/migrations/read-state-dwell-handlers/data.js +45 -0
  487. package/schematics/migrations/read-state-dwell-handlers/index.js +215 -0
  488. package/schematics/migrations/read-state-dwell-handlers/schema.json +20 -0
  489. package/schematics/migrations/scrollbar-deprecated-path/README.md +128 -0
  490. package/schematics/migrations/scrollbar-deprecated-path/index.js +20 -0
  491. package/schematics/migrations/scrollbar-deprecated-path/schema.json +20 -0
  492. package/schematics/migrations/select-signal-inputs/README.md +61 -0
  493. package/schematics/migrations/select-signal-inputs/data.js +99 -0
  494. package/schematics/migrations/select-signal-inputs/index.js +57 -0
  495. package/schematics/migrations/select-signal-inputs/schema.json +15 -0
  496. package/schematics/migrations/sidepanel-non-modal-behavior/README.md +57 -0
  497. package/schematics/migrations/sidepanel-non-modal-behavior/data.js +111 -0
  498. package/schematics/migrations/sidepanel-non-modal-behavior/index.js +57 -0
  499. package/schematics/migrations/sidepanel-non-modal-behavior/schema.json +15 -0
  500. package/schematics/migrations/signal-inputs-subclasses/README.md +28 -0
  501. package/schematics/migrations/signal-inputs-subclasses/data.js +69 -0
  502. package/schematics/migrations/signal-inputs-subclasses/index.js +17 -0
  503. package/schematics/migrations/signal-inputs-subclasses/schema.json +15 -0
  504. package/schematics/migrations/split-button-optional-disabled/README.md +47 -0
  505. package/schematics/migrations/split-button-optional-disabled/data.js +53 -0
  506. package/schematics/migrations/split-button-optional-disabled/index.js +57 -0
  507. package/schematics/migrations/split-button-optional-disabled/schema.json +15 -0
  508. package/schematics/migrations/splitter-deprecated-path/README.md +136 -0
  509. package/schematics/migrations/splitter-deprecated-path/index.js +20 -0
  510. package/schematics/migrations/splitter-deprecated-path/schema.json +20 -0
  511. package/schematics/migrations/state-saving-default/README.md +67 -0
  512. package/schematics/migrations/state-saving-default/data.js +88 -0
  513. package/schematics/migrations/state-saving-default/index.js +62 -0
  514. package/schematics/migrations/state-saving-default/schema.json +15 -0
  515. package/schematics/migrations/table-cell-content/README.md +55 -0
  516. package/schematics/migrations/table-cell-content/data.js +66 -0
  517. package/schematics/migrations/table-cell-content/index.js +66 -0
  518. package/schematics/migrations/table-cell-content/schema.json +15 -0
  519. package/schematics/migrations/tabs-signals-and-aria/README.md +93 -0
  520. package/schematics/migrations/tabs-signals-and-aria/data.js +139 -0
  521. package/schematics/migrations/tabs-signals-and-aria/index.js +65 -0
  522. package/schematics/migrations/tabs-signals-and-aria/schema.json +15 -0
  523. package/schematics/migrations/tag-list-cleaner/README.md +58 -0
  524. package/schematics/migrations/tag-list-cleaner/data.js +42 -0
  525. package/schematics/migrations/tag-list-cleaner/index.js +196 -0
  526. package/schematics/migrations/tag-list-cleaner/schema.json +20 -0
  527. package/schematics/migrations/tag-slots/README.md +41 -0
  528. package/schematics/migrations/tag-slots/index.js +190 -0
  529. package/schematics/migrations/tag-slots/schema.json +20 -0
  530. package/schematics/migrations/tags-signals/README.md +85 -0
  531. package/schematics/migrations/tags-signals/data.js +103 -0
  532. package/schematics/migrations/tags-signals/index.js +673 -0
  533. package/schematics/migrations/tags-signals/schema.json +20 -0
  534. package/schematics/migrations/textarea-signals/README.md +72 -0
  535. package/schematics/migrations/textarea-signals/data.js +121 -0
  536. package/schematics/migrations/textarea-signals/index.js +379 -0
  537. package/schematics/migrations/textarea-signals/schema.json +20 -0
  538. package/schematics/migrations/time-range-title-for/README.md +164 -0
  539. package/schematics/migrations/time-range-title-for/data.js +139 -0
  540. package/schematics/migrations/time-range-title-for/index.js +163 -0
  541. package/schematics/migrations/time-range-title-for/schema.json +20 -0
  542. package/schematics/migrations/timepicker-signals/README.md +78 -0
  543. package/schematics/migrations/timepicker-signals/data.js +82 -0
  544. package/schematics/migrations/timepicker-signals/index.js +709 -0
  545. package/schematics/migrations/timepicker-signals/schema.json +20 -0
  546. package/schematics/migrations/timezone-grouping-utils/README.md +73 -0
  547. package/schematics/migrations/timezone-grouping-utils/data.js +101 -0
  548. package/schematics/migrations/timezone-grouping-utils/index.js +64 -0
  549. package/schematics/migrations/timezone-grouping-utils/schema.json +15 -0
  550. package/schematics/migrations/title-encapsulation/README.md +49 -0
  551. package/schematics/migrations/title-encapsulation/data.js +69 -0
  552. package/schematics/migrations/title-encapsulation/index.js +57 -0
  553. package/schematics/migrations/title-encapsulation/schema.json +15 -0
  554. package/schematics/migrations/toast-stack-and-defaults/README.md +102 -0
  555. package/schematics/migrations/toast-stack-and-defaults/data.js +79 -0
  556. package/schematics/migrations/toast-stack-and-defaults/index.js +53 -0
  557. package/schematics/migrations/toast-stack-and-defaults/schema.json +15 -0
  558. package/schematics/migrations/tooltip-pointer-events-and-types/README.md +53 -0
  559. package/schematics/migrations/tooltip-pointer-events-and-types/data.js +89 -0
  560. package/schematics/migrations/tooltip-pointer-events-and-types/index.js +60 -0
  561. package/schematics/migrations/tooltip-pointer-events-and-types/schema.json +15 -0
  562. package/schematics/migrations/top-bar-container-selectors/README.md +111 -0
  563. package/schematics/migrations/top-bar-container-selectors/data.js +56 -0
  564. package/schematics/migrations/top-bar-container-selectors/index.js +84 -0
  565. package/schematics/migrations/top-bar-container-selectors/schema.json +20 -0
  566. package/schematics/migrations/tree-select-signals/README.md +61 -0
  567. package/schematics/migrations/tree-select-signals/data.js +106 -0
  568. package/schematics/migrations/tree-select-signals/index.js +58 -0
  569. package/schematics/migrations/tree-select-signals/schema.json +15 -0
  570. package/schematics/migrations/tree-signals/README.md +82 -0
  571. package/schematics/migrations/tree-signals/data.js +123 -0
  572. package/schematics/migrations/tree-signals/index.js +54 -0
  573. package/schematics/migrations/tree-signals/schema.json +15 -0
  574. package/schematics/migrations/tree-state-saving-default/README.md +66 -0
  575. package/schematics/migrations/tree-state-saving-default/data.js +78 -0
  576. package/schematics/migrations/tree-state-saving-default/index.js +60 -0
  577. package/schematics/migrations/tree-state-saving-default/schema.json +15 -0
  578. package/schematics/migrations/username-pipe-injection/README.md +59 -0
  579. package/schematics/migrations/username-pipe-injection/data.js +78 -0
  580. package/schematics/migrations/username-pipe-injection/index.js +58 -0
  581. package/schematics/migrations/username-pipe-injection/schema.json +15 -0
  582. package/schematics/migrations/v20-upgrade/README.md +36 -16
  583. package/schematics/migrations/v20-upgrade/data.js +124 -77
  584. package/schematics/migrations/v20-upgrade/index.js +6 -213
  585. package/schematics/migrations/v21-upgrade/README.md +271 -0
  586. package/schematics/migrations/v21-upgrade/data.js +1371 -0
  587. package/schematics/migrations/v21-upgrade/index.js +94 -0
  588. package/schematics/migrations/v21-upgrade/schema.json +20 -0
  589. package/schematics/migrations/zoneless-change-detection/README.md +30 -0
  590. package/schematics/migrations/zoneless-change-detection/data.js +29 -0
  591. package/schematics/migrations/zoneless-change-detection/index.js +20 -0
  592. package/schematics/migrations/zoneless-change-detection/schema.json +15 -0
  593. package/schematics/migrations.json +392 -2
  594. package/schematics/ng-add/index.js +515 -14
  595. package/schematics/ng-add/schema.json +15 -0
  596. package/schematics/utils/deprecated-path-migration.js +61 -0
  597. package/schematics/utils/package-config.js +9 -105
  598. package/scrollbar/{_scrollbar-component-theme.scss → deprecated/_scrollbar-component-theme.scss} +1 -1
  599. package/scrollbar/{scrollbar.component.scss → deprecated/scrollbar.component.scss} +1 -1
  600. package/scrollbar/native-scrollbar.scss +68 -0
  601. package/scrollbar/scrollbar-tokens.scss +13 -22
  602. package/scrollbar/scrollbar-track.scss +94 -0
  603. package/scrollbar/scrollbar-viewport.scss +33 -0
  604. package/scrollbar/scrollbar.scss +24 -0
  605. package/search-expandable/search-expandable-tokens.scss +4 -0
  606. package/search-expandable/search-expandable.scss +4 -2
  607. package/select/_select-theme.scss +3 -16
  608. package/select/select.scss +0 -6
  609. package/sidebar/sidebar.scss +20 -0
  610. package/sidepanel/_sidepanel-theme.scss +1 -1
  611. package/sidepanel/sidepanel-tokens.scss +7 -1
  612. package/sidepanel/sidepanel.scss +41 -5
  613. package/skeleton/skeleton-presets.scss +350 -0
  614. package/skeleton/skeleton-tokens.scss +127 -0
  615. package/skeleton/skeleton.scss +53 -45
  616. package/split-button/_split-button-theme.scss +4 -4
  617. package/split-button/split-button.scss +2 -6
  618. package/splitter/{_splitter-theme.scss → deprecated/_splitter-theme.scss} +1 -1
  619. package/splitter/deprecated/splitter.scss +51 -0
  620. package/splitter/splitter-tokens.scss +19 -0
  621. package/splitter/splitter.scss +148 -28
  622. package/table/_table-theme.scss +13 -12
  623. package/table/table-tokens.scss +8 -0
  624. package/table/table.scss +47 -22
  625. package/tabs/_tabs-common.scss +14 -14
  626. package/tabs/_tabs-theme.scss +4 -5
  627. package/tabs/tab-body.scss +49 -1
  628. package/tabs/tab-header.scss +2 -1
  629. package/tags/tag-list.scss +4 -0
  630. package/tags/tag.scss +19 -1
  631. package/time-range/time-range.scss +9 -0
  632. package/timezone/timezone-option.component.scss +4 -7
  633. package/timezone/timezone-select.component.scss +3 -0
  634. package/toast/_toast-theme.scss +1 -4
  635. package/toast/toast-container.component.scss +19 -13
  636. package/toast/toast-tokens.scss +12 -6
  637. package/toast/toast.component.scss +42 -19
  638. package/toggle/_toggle-theme.scss +4 -10
  639. package/toggle/toggle.scss +67 -26
  640. package/tooltip/_tooltip-theme.scss +7 -1
  641. package/tooltip/tooltip-tokens.scss +1 -2
  642. package/tooltip/tooltip.scss +55 -9
  643. package/top-bar/top-bar-tokens.scss +13 -2
  644. package/top-bar/top-bar.scss +24 -19
  645. package/tree/_tree-theme.scss +0 -1
  646. package/tree/toggle.scss +5 -9
  647. package/tree/tree-option.scss +2 -4
  648. package/tree/tree-tokens.scss +2 -1
  649. package/tree/tree.scss +3 -5
  650. package/tree-select/_tree-select-theme.scss +4 -15
  651. package/tree-select/tree-select-tokens.scss +16 -0
  652. package/tree-select/tree-select.scss +0 -6
  653. package/{accordion/index.d.ts → types/koobiq-components-accordion.d.ts} +102 -84
  654. package/{actions-panel/index.d.ts → types/koobiq-components-actions-panel.d.ts} +44 -59
  655. package/{alert/index.d.ts → types/koobiq-components-alert.d.ts} +8 -3
  656. package/types/koobiq-components-app-switcher.d.ts +406 -0
  657. package/types/koobiq-components-autocomplete.d.ts +443 -0
  658. package/{badge/index.d.ts → types/koobiq-components-badge.d.ts} +25 -20
  659. package/{breadcrumbs/index.d.ts → types/koobiq-components-breadcrumbs.d.ts} +97 -46
  660. package/types/koobiq-components-button-toggle.d.ts +340 -0
  661. package/types/koobiq-components-button.d.ts +296 -0
  662. package/types/koobiq-components-checkbox.d.ts +172 -0
  663. package/types/koobiq-components-clamped-text.d.ts +184 -0
  664. package/{code-block/index.d.ts → types/koobiq-components-code-block.d.ts} +114 -79
  665. package/{content-panel/index.d.ts → types/koobiq-components-content-panel.d.ts} +81 -25
  666. package/{core/index.d.ts → types/koobiq-components-core.d.ts} +2827 -865
  667. package/{datepicker/index.d.ts → types/koobiq-components-datepicker.d.ts} +161 -116
  668. package/types/koobiq-components-divider.d.ts +43 -0
  669. package/types/koobiq-components-dl.d.ts +235 -0
  670. package/{dropdown/index.d.ts → types/koobiq-components-dropdown.d.ts} +245 -239
  671. package/types/koobiq-components-ellipsis-center.d.ts +85 -0
  672. package/types/koobiq-components-empty-state.d.ts +106 -0
  673. package/{file-upload/index.d.ts → types/koobiq-components-file-upload.d.ts} +214 -107
  674. package/{filter-bar/index.d.ts → types/koobiq-components-filter-bar.d.ts} +410 -495
  675. package/types/koobiq-components-flag.d.ts +68 -0
  676. package/{form-field/index.d.ts → types/koobiq-components-form-field.d.ts} +167 -191
  677. package/types/koobiq-components-icon.d.ts +333 -0
  678. package/{inline-edit/index.d.ts → types/koobiq-components-inline-edit.d.ts} +109 -46
  679. package/types/koobiq-components-input.d.ts +477 -0
  680. package/types/koobiq-components-link-deprecated.d.ts +101 -0
  681. package/types/koobiq-components-link.d.ts +176 -0
  682. package/{list/index.d.ts → types/koobiq-components-list.d.ts} +162 -99
  683. package/types/koobiq-components-loader-overlay.d.ts +101 -0
  684. package/{markdown/index.d.ts → types/koobiq-components-markdown.d.ts} +16 -24
  685. package/types/koobiq-components-modal.d.ts +666 -0
  686. package/types/koobiq-components-navbar.d.ts +569 -0
  687. package/types/koobiq-components-notification-center.d.ts +500 -0
  688. package/{overflow-items/index.d.ts → types/koobiq-components-overflow-items.d.ts} +8 -22
  689. package/types/koobiq-components-popover.d.ts +468 -0
  690. package/types/koobiq-components-progress-bar.d.ts +67 -0
  691. package/{progress-spinner/index.d.ts → types/koobiq-components-progress-spinner.d.ts} +33 -10
  692. package/types/koobiq-components-radio.d.ts +294 -0
  693. package/{resizer/index.d.ts → types/koobiq-components-resizer.d.ts} +37 -2
  694. package/{scrollbar/index.d.ts → types/koobiq-components-scrollbar-deprecated.d.ts} +18 -1
  695. package/types/koobiq-components-scrollbar.d.ts +154 -0
  696. package/types/koobiq-components-search-expandable.d.ts +164 -0
  697. package/{select/index.d.ts → types/koobiq-components-select.d.ts} +360 -167
  698. package/types/koobiq-components-sidebar.d.ts +152 -0
  699. package/types/koobiq-components-sidepanel.d.ts +436 -0
  700. package/types/koobiq-components-skeleton.d.ts +234 -0
  701. package/types/koobiq-components-split-button.d.ts +65 -0
  702. package/{splitter/index.d.ts → types/koobiq-components-splitter-deprecated.d.ts} +44 -1
  703. package/types/koobiq-components-splitter.d.ts +406 -0
  704. package/types/koobiq-components-table.d.ts +44 -0
  705. package/types/koobiq-components-tabs.d.ts +888 -0
  706. package/{tags/index.d.ts → types/koobiq-components-tags.d.ts} +249 -133
  707. package/types/koobiq-components-textarea.d.ts +178 -0
  708. package/{time-range/index.d.ts → types/koobiq-components-time-range.d.ts} +135 -62
  709. package/types/koobiq-components-timepicker.d.ts +223 -0
  710. package/types/koobiq-components-timezone.d.ts +266 -0
  711. package/types/koobiq-components-title.d.ts +184 -0
  712. package/types/koobiq-components-toast.d.ts +289 -0
  713. package/types/koobiq-components-toggle.d.ts +121 -0
  714. package/types/koobiq-components-tooltip.d.ts +610 -0
  715. package/types/koobiq-components-top-bar.d.ts +61 -0
  716. package/types/koobiq-components-tree-select.d.ts +667 -0
  717. package/types/koobiq-components-tree.d.ts +1290 -0
  718. package/types/koobiq-components-username.d.ts +340 -0
  719. package/username/_username-theme.scss +35 -0
  720. package/username/username.scss +10 -34
  721. package/app-switcher/index.d.ts +0 -276
  722. package/autocomplete/index.d.ts +0 -286
  723. package/button/index.d.ts +0 -153
  724. package/button-toggle/index.d.ts +0 -162
  725. package/checkbox/index.d.ts +0 -163
  726. package/clamped-text/index.d.ts +0 -146
  727. package/core/styles/_tokens.scss +0 -7
  728. package/core/styles/common/_clearfix.scss +0 -13
  729. package/core/styles/common/_popup.scss +0 -6
  730. package/core/styles/functions/_index.scss +0 -3
  731. package/core/styles/functions/_number.scss +0 -60
  732. package/core/styles/functions/_string.scss +0 -18
  733. package/core/styles/theming/scrollbar-tokens.scss +0 -25
  734. package/core/styles/typography/_typography-utils.scss +0 -84
  735. package/divider/index.d.ts +0 -20
  736. package/dl/index.d.ts +0 -45
  737. package/ellipsis-center/index.d.ts +0 -71
  738. package/empty-state/index.d.ts +0 -45
  739. package/flag/index.d.ts +0 -44
  740. package/icon/index.d.ts +0 -200
  741. package/input/index.d.ts +0 -354
  742. package/link/index.d.ts +0 -56
  743. package/loader-overlay/index.d.ts +0 -57
  744. package/modal/index.d.ts +0 -339
  745. package/navbar/index.d.ts +0 -372
  746. package/notification-center/index.d.ts +0 -323
  747. package/popover/index.d.ts +0 -182
  748. package/prebuilt-themes/dark-theme.css +0 -1
  749. package/prebuilt-themes/light-theme.css +0 -1
  750. package/progress-bar/index.d.ts +0 -31
  751. package/radio/index.d.ts +0 -203
  752. package/search-expandable/index.d.ts +0 -101
  753. package/sidebar/index.d.ts +0 -94
  754. package/sidepanel/index.d.ts +0 -272
  755. package/skeleton/index.d.ts +0 -26
  756. package/split-button/index.d.ts +0 -46
  757. package/table/index.d.ts +0 -25
  758. package/tabs/index.d.ts +0 -677
  759. package/textarea/index.d.ts +0 -138
  760. package/timepicker/index.d.ts +0 -197
  761. package/timezone/index.d.ts +0 -125
  762. package/title/index.d.ts +0 -139
  763. package/toast/index.d.ts +0 -178
  764. package/toggle/index.d.ts +0 -104
  765. package/tooltip/index.d.ts +0 -335
  766. package/top-bar/index.d.ts +0 -33
  767. package/tree/index.d.ts +0 -802
  768. package/tree-select/index.d.ts +0 -475
  769. package/username/index.d.ts +0 -194
  770. /package/{dynamic-translation/index.d.ts → types/koobiq-components-dynamic-translation.d.ts} +0 -0
  771. /package/{index.d.ts → types/koobiq-components.d.ts} +0 -0
@@ -1,29 +1,24 @@
1
- import { coerceCssPixelValue } from '@angular/cdk/coercion';
2
1
  import { CdkDialogContainer, Dialog } from '@angular/cdk/dialog';
3
- import { SharedResizeObserver } from '@angular/cdk/observers/private';
4
- import { Overlay } from '@angular/cdk/overlay';
2
+ import { OverlayContainer, Overlay, OVERLAY_DEFAULT_CONFIG } from '@angular/cdk/overlay';
5
3
  import * as i0 from '@angular/core';
6
- import { InjectionToken, EventEmitter, inject, Renderer2, ViewEncapsulation, ChangeDetectionStrategy, Component, Injector, Injectable, NgModule } from '@angular/core';
7
- import { map, of, Subject, ReplaySubject, filter, take, takeUntil } from 'rxjs';
8
- import { trigger, state, style, transition, group, animate, query, animateChild } from '@angular/animations';
4
+ import { InjectionToken, signal, inject, Injector, Renderer2, ViewEncapsulation, ChangeDetectionStrategy, Component, Injectable, EnvironmentInjector, createEnvironmentInjector, NgModule } from '@angular/core';
9
5
  import { CdkPortalOutlet } from '@angular/cdk/portal';
10
- import { toSignal } from '@angular/core/rxjs-interop';
11
- import * as i2 from '@koobiq/components/button';
6
+ import * as i3 from '@koobiq/components/button';
12
7
  import { KbqButtonModule } from '@koobiq/components/button';
13
- import { ruRULocaleData, KbqAnimationDurations, KbqAnimationCurves, KBQ_LOCALE_SERVICE } from '@koobiq/components/core';
14
- import * as i1 from '@koobiq/components/divider';
8
+ import * as i1 from '@koobiq/components/core';
9
+ import { ruRULocaleData, kbqLocaleConfigurationOverrideProvider, kbqAnimationsDisabled, KbqLocaleOverridesDirective, kbqAfterAnimations, KBQ_WINDOW } from '@koobiq/components/core';
10
+ import * as i2 from '@koobiq/components/divider';
15
11
  import { KbqDividerModule } from '@koobiq/components/divider';
16
- import * as i3 from '@koobiq/components/icon';
12
+ import * as i4 from '@koobiq/components/icon';
17
13
  import { KbqIconModule } from '@koobiq/components/icon';
18
- import * as i4 from '@koobiq/components/tooltip';
14
+ import * as i5 from '@koobiq/components/tooltip';
19
15
  import { KbqToolTipModule } from '@koobiq/components/tooltip';
16
+ import { Subject, ReplaySubject, filter, take } from 'rxjs';
20
17
 
21
18
  /** Injection token that can be used to specify default actions panel config. */
22
19
  const KBQ_ACTIONS_PANEL_DEFAULT_CONFIG = new InjectionToken('KBQ_ACTIONS_PANEL_DEFAULT_CONFIG', { factory: () => new KbqActionsPanelConfig() });
23
20
  /**
24
- * Utility for providing default actions panel config.
25
- *
26
- * @see `KBQ_ACTIONS_PANEL_DEFAULT_CONFIG`
21
+ * Utility for providing default actions panel config through {@link KBQ_ACTIONS_PANEL_DEFAULT_CONFIG}.
27
22
  */
28
23
  const kbqActionsPanelDefaultConfigProvider = (config) => ({
29
24
  provide: KBQ_ACTIONS_PANEL_DEFAULT_CONFIG,
@@ -32,68 +27,41 @@ const kbqActionsPanelDefaultConfigProvider = (config) => ({
32
27
  /**
33
28
  * Configuration for opened actions panel.
34
29
  * Based on cdk `DialogConfig`.
35
- *
36
- * @see `DialogConfig`
37
- *
38
30
  */
39
31
  class KbqActionsPanelConfig {
40
32
  constructor() {
41
33
  /**
42
- * Data being injected into the child component.
43
- *
44
- * @see `KBQ_ACTIONS_PANEL_DATA`
34
+ * Data being injected into the child component with {@link KBQ_ACTIONS_PANEL_DATA}.
45
35
  */
46
36
  this.data = null;
47
37
  /**
48
38
  * Whether the actions panel should be closed of when the user goes backwards/forwards in history.
39
+ * Defaults to `true`.
49
40
  * NOTE! This does not apply to router navigation.
50
- *
51
- * @default true
52
41
  */
53
42
  this.closeOnNavigation = true;
54
43
  /**
55
- * Direction of the text in the actions panel.
56
- *
57
- * @default 'ltr'
44
+ * Direction of the text in the actions panel. Defaults to `'ltr'`.
58
45
  */
59
46
  this.direction = 'ltr';
60
47
  /**
61
- * Scroll strategy to be used for the actions panel.
62
- *
63
- * @default `RepositionScrollStrategy`
48
+ * Scroll strategy to be used for the actions panel. Defaults to `RepositionScrollStrategy`.
64
49
  */
65
50
  this.scrollStrategy = (overlay) => overlay.scrollStrategies.reposition();
66
51
  /**
67
- * Whether the user can use ESC or click on close button to close the actions panel.
68
- *
69
- * @default false
52
+ * Whether the user can use ESC or click on close button to close the actions panel. Defaults to `false`.
70
53
  */
71
54
  this.disableClose = false;
72
55
  }
73
56
  }
74
57
 
75
58
  /** Localization configuration provider. */
76
- const KBQ_ACTIONS_PANEL_LOCALE_CONFIGURATION = new InjectionToken('KBQ_ACTIONS_PANEL_LOCALE_CONFIGURATION', { factory: () => ruRULocaleData.actionsPanel });
77
- /** Utility provider for `KBQ_ACTIONS_PANEL_LOCALE_CONFIGURATION`. */
78
- const kbqActionsPanelLocaleConfigurationProvider = (configuration) => ({
79
- provide: KBQ_ACTIONS_PANEL_LOCALE_CONFIGURATION,
80
- useValue: configuration
81
- });
59
+ const KBQ_ACTIONS_PANEL_LOCALE_CONFIGURATION = new InjectionToken('KbqActionsPanelLocaleConfiguration', { factory: () => ruRULocaleData.actionsPanel });
82
60
  /**
83
- * Animation that shows and hides the actions panel.
61
+ * Utility provider for `KBQ_ACTIONS_PANEL_LOCALE_CONFIGURATION`. Only the strings you pass are
62
+ * overridden; the rest keep following the active locale.
84
63
  */
85
- const KBQ_ACTIONS_PANEL_CONTAINER_ANIMATION = trigger('state', [
86
- state('void, hidden', style({ transform: 'translateY(100%)' })),
87
- state('visible', style({ transform: 'translateY(0%)' })),
88
- transition('visible => void, visible => hidden', group([
89
- animate(`${KbqAnimationDurations.Entering} ${KbqAnimationCurves.StandardCurve}`),
90
- query('@*', animateChild(), { optional: true })
91
- ])),
92
- transition('void => visible', group([
93
- animate(`${KbqAnimationDurations.Exiting} ${KbqAnimationCurves.StandardCurve}`),
94
- query('@*', animateChild(), { optional: true })
95
- ]))
96
- ]);
64
+ const kbqActionsPanelLocaleConfigurationProvider = (configuration) => kbqLocaleConfigurationOverrideProvider('actionsPanel', configuration);
97
65
  /**
98
66
  * Internal component that wraps user-provided actions panel content.
99
67
  *
@@ -107,13 +75,20 @@ class KbqActionsPanelContainer extends CdkDialogContainer {
107
75
  *
108
76
  * @docs-private
109
77
  */
110
- this.animationState = 'void';
78
+ this.animationState = signal('void', ...(ngDevMode ? [{ debugName: "animationState" }] : /* istanbul ignore next */ []));
111
79
  /**
112
- * Emits whenever the state of the animation changes.
80
+ * Emits the state the actions panel has finished moving to.
113
81
  *
114
82
  * @docs-private
115
83
  */
116
- this.animationStateChanged = new EventEmitter();
84
+ this.animationDone = new Subject();
85
+ /**
86
+ * Whether the actions panel moves without motion.
87
+ *
88
+ * @docs-private
89
+ */
90
+ this.animationsDisabled = kbqAnimationsDisabled();
91
+ this.injector = inject(Injector);
117
92
  /**
118
93
  * Actions panel configuration.
119
94
  *
@@ -122,15 +97,12 @@ class KbqActionsPanelContainer extends CdkDialogContainer {
122
97
  this.config = inject(KbqActionsPanelConfig);
123
98
  this.actionsPanel = inject(KbqActionsPanel);
124
99
  this.renderer = inject(Renderer2);
125
- this.localeService = inject(KBQ_LOCALE_SERVICE, { optional: true });
126
100
  /**
127
101
  * Actions panel locale configuration.
128
102
  *
129
103
  * @docs-private
130
104
  */
131
- this.localeConfiguration = toSignal(this.localeService
132
- ? this.localeService.changes.pipe(map(() => this.localeService.getParams('actionsPanel')))
133
- : of(inject(KBQ_ACTIONS_PANEL_LOCALE_CONFIGURATION)));
105
+ this.localeConfiguration = inject(KbqLocaleOverridesDirective, { self: true }).read('actionsPanel', KBQ_ACTIONS_PANEL_LOCALE_CONFIGURATION);
134
106
  }
135
107
  ngOnDestroy() {
136
108
  super.ngOnDestroy();
@@ -151,11 +123,9 @@ class KbqActionsPanelContainer extends CdkDialogContainer {
151
123
  */
152
124
  startOpenAnimation() {
153
125
  if (!this.destroyed) {
154
- this.animationState = 'visible';
155
- // animationState lives in host bindings and `detectChanges` does not refresh host bindings so we have to
156
- // call `markForCheck` to ensure the host view is refreshed eventually.
157
- this._changeDetectorRef.markForCheck();
126
+ this.animationState.set('visible');
158
127
  this._changeDetectorRef.detectChanges();
128
+ this.waitForAnimation('visible');
159
129
  }
160
130
  }
161
131
  /**
@@ -165,28 +135,9 @@ class KbqActionsPanelContainer extends CdkDialogContainer {
165
135
  */
166
136
  startCloseAnimation() {
167
137
  if (!this.destroyed) {
168
- this.animationState = 'hidden';
169
- this._changeDetectorRef.markForCheck();
170
- }
171
- }
172
- /**
173
- * Handles animation done events.
174
- *
175
- * @docs-private
176
- */
177
- onAnimationDone(event) {
178
- if (event.toState === 'visible') {
179
- this._trapFocus();
138
+ this.animationState.set('hidden');
139
+ this.waitForAnimation('hidden');
180
140
  }
181
- this.animationStateChanged.emit(event);
182
- }
183
- /**
184
- * Handles animation start events.
185
- *
186
- * @docs-private
187
- */
188
- onAnimationStart(event) {
189
- this.animationStateChanged.emit(event);
190
141
  }
191
142
  /**
192
143
  * Handles escape key events.
@@ -194,10 +145,11 @@ class KbqActionsPanelContainer extends CdkDialogContainer {
194
145
  * @docs-private
195
146
  */
196
147
  handleEscape(event) {
197
- if (!this.config.disableClose) {
198
- event.preventDefault();
199
- this.close();
200
- }
148
+ // A control inside the panel spent the key closing a popup of its own, such as a tooltip.
149
+ if (event.defaultPrevented || this.config.disableClose)
150
+ return;
151
+ event.preventDefault();
152
+ this.close();
201
153
  }
202
154
  /**
203
155
  * @docs-private
@@ -205,6 +157,26 @@ class KbqActionsPanelContainer extends CdkDialogContainer {
205
157
  _contentAttached() {
206
158
  this.applyContainerClass();
207
159
  }
160
+ waitForAnimation(state) {
161
+ const pending = this.pendingTransition;
162
+ // An entrance cut short by closing still ends, or the panel would never report having opened.
163
+ if (pending) {
164
+ pending.wait.destroy();
165
+ this.pendingTransition = undefined;
166
+ this.animationDone.next(pending.state);
167
+ }
168
+ // A subscriber may have disposed of the panel by now.
169
+ if (this.destroyed)
170
+ return;
171
+ const wait = kbqAfterAnimations(() => this._elementRef.nativeElement, () => {
172
+ this.pendingTransition = undefined;
173
+ if (state === 'visible') {
174
+ this._trapFocus();
175
+ }
176
+ this.animationDone.next(state);
177
+ }, this.injector);
178
+ this.pendingTransition = { state, wait };
179
+ }
208
180
  applyContainerClass() {
209
181
  const { containerClass } = this.config;
210
182
  if (containerClass) {
@@ -216,8 +188,8 @@ class KbqActionsPanelContainer extends CdkDialogContainer {
216
188
  }
217
189
  }
218
190
  }
219
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.30", ngImport: i0, type: KbqActionsPanelContainer, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
220
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.30", type: KbqActionsPanelContainer, isStandalone: true, selector: "kbq-actions-panel-container", host: { listeners: { "@state.start": "onAnimationStart($event)", "@state.done": "onAnimationDone($event)", "keydown.escape": "handleEscape($event)" }, properties: { "class.kbq-actions-panel-container_rtl": "config.direction === \"rtl\"", "@state": "animationState" }, classAttribute: "kbq-actions-panel-container" }, usesInheritance: true, ngImport: i0, template: `
191
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: KbqActionsPanelContainer, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
192
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.25", type: KbqActionsPanelContainer, isStandalone: true, selector: "kbq-actions-panel-container", host: { listeners: { "keydown.escape": "handleEscape($any($event))" }, properties: { "class.kbq-actions-panel-container_rtl": "config.direction === \"rtl\"", "class.kbq-actions-panel-container_visible": "animationState() === 'visible'", "class.kbq-animations-disabled": "animationsDisabled" }, classAttribute: "kbq-actions-panel-container" }, usesInheritance: true, hostDirectives: [{ directive: i1.KbqLocaleOverridesDirective }], ngImport: i0, template: `
221
193
  <div class="kbq-actions-panel-container__content">
222
194
  <ng-template cdkPortalOutlet />
223
195
  </div>
@@ -227,16 +199,17 @@ class KbqActionsPanelContainer extends CdkDialogContainer {
227
199
  class="kbq-actions-panel-container__close-button"
228
200
  color="contrast"
229
201
  kbq-button
230
- [kbqTooltip]="localeConfiguration()!.closeTooltip"
202
+ [attr.aria-label]="localeConfiguration().closeTooltip"
203
+ [kbqTooltip]="localeConfiguration().closeTooltip"
231
204
  [kbqTooltipOffset]="16"
232
205
  (click)="close()"
233
206
  >
234
207
  <i kbq-icon="kbq-circle-xmark_16"></i>
235
208
  </button>
236
209
  }
237
- `, isInline: true, styles: [".kbq-actions-panel-container,.kbq-actions-panel-overlay{--kbq-actions-panel-background-color: var(--kbq-background-contrast);--kbq-actions-panel-text-color: var(--kbq-foreground-on-contrast);--kbq-actions-panel-padding: var(--kbq-size-s);--kbq-actions-panel-margin: var(--kbq-size-s) var(--kbq-size-s) var(--kbq-size-l);--kbq-actions-panel-border-radius: var(--kbq-size-l);--kbq-actions-panel-box-shadow: var(--kbq-shadow-card);--kbq-actions-panel-height: var(--kbq-size-5xl);--kbq-actions-panel-vertical-divider-background-color: var( --kbq-line-on-contrast-less, var(--kbq-line-contrast-fade) );--kbq-actions-panel-vertical-divider-height: var(--kbq-size-m);--kbq-actions-panel-vertical-divider-margin: 0 var(--kbq-size-s)}\n", ".kbq-actions-panel-container{background:var(--kbq-actions-panel-background-color);color:var(--kbq-actions-panel-text-color);box-shadow:var(--kbq-actions-panel-box-shadow);height:var(--kbq-actions-panel-height);padding:var(--kbq-actions-panel-padding);border-radius:var(--kbq-actions-panel-border-radius);display:flex;flex-grow:1;align-items:center;overflow:hidden;box-sizing:border-box}.kbq-actions-panel-container .kbq-actions-panel-container__content{display:flex;align-items:center;flex-grow:1;overflow:hidden}.kbq-actions-panel-container .kbq-actions-panel-container__vertical-divider{background-color:var(--kbq-actions-panel-vertical-divider-background-color);height:var(--kbq-actions-panel-vertical-divider-height)!important;margin:var(--kbq-actions-panel-vertical-divider-margin)}.kbq-actions-panel-container .kbq-button,.kbq-actions-panel-container .kbq-button-icon{--kbq-button-filled-contrast-fade-off-background: transparent;--kbq-button-filled-contrast-fade-on-background: transparent}.kbq-actions-panel-overlay{margin:var(--kbq-actions-panel-margin)}\n"], dependencies: [{ kind: "directive", type: CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }, { kind: "ngmodule", type: KbqDividerModule }, { kind: "component", type: i1.KbqDivider, selector: "kbq-divider", inputs: ["vertical", "paddings"] }, { kind: "ngmodule", type: KbqButtonModule }, { kind: "component", type: i2.KbqButton, selector: "[kbq-button]", inputs: ["kbqStyle", "disabled", "tabIndex"] }, { kind: "directive", type: i2.KbqButtonCssStyler, selector: "[kbq-button]" }, { kind: "ngmodule", type: KbqIconModule }, { kind: "component", type: i3.KbqIcon, selector: "[kbq-icon]", inputs: ["small", "autoColor", "kbq-icon"] }, { kind: "ngmodule", type: KbqToolTipModule }, { kind: "directive", type: i4.KbqTooltipTrigger, selector: "[kbqTooltip]", inputs: ["kbqTooltipScrollStrategy", "forDisabledComponent", "ignoreTooltipPointerEvents", "kbqTooltipSingleInstance", "hideWithTimeout", "kbqVisible", "kbqPlacement", "kbqRelativeToPointer", "kbqPlacementPriority", "kbqTooltip", "kbqTooltipDisabled", "kbqEnterDelay", "kbqLeaveDelay", "kbqTrigger", "kbqTooltipClass", "kbqTooltipContext", "kbqTooltipColor", "kbqTooltipArrow", "kbqTooltipOffset", "kbqTooltipModifier", "kbqTooltipHeader"], outputs: ["kbqPlacementChange", "kbqVisibleChange"], exportAs: ["kbqTooltip"] }], animations: [KBQ_ACTIONS_PANEL_CONTAINER_ANIMATION], changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None }); }
210
+ `, isInline: true, styles: [".kbq-actions-panel-container,.kbq-actions-panel-overlay{--kbq-actions-panel-background-color: var(--kbq-background-contrast);--kbq-actions-panel-text-color: var(--kbq-foreground-on-contrast);--kbq-actions-panel-padding: var(--kbq-size-s);--kbq-actions-panel-margin: var(--kbq-size-s) var(--kbq-size-s) var(--kbq-size-l);--kbq-actions-panel-border-radius: var(--kbq-size-l);--kbq-actions-panel-box-shadow: var(--kbq-shadow-card);--kbq-actions-panel-height: var(--kbq-size-5xl);--kbq-actions-panel-vertical-divider-background-color: var( --kbq-line-on-contrast-less, var(--kbq-line-contrast-fade) );--kbq-actions-panel-vertical-divider-height: var(--kbq-size-m);--kbq-actions-panel-vertical-divider-margin: 0 var(--kbq-size-s)}\n", "@charset \"UTF-8\";.kbq-actions-panel-container{background:var(--kbq-actions-panel-background-color);color:var(--kbq-actions-panel-text-color);box-shadow:var(--kbq-actions-panel-box-shadow);height:var(--kbq-actions-panel-height);padding:var(--kbq-actions-panel-padding);border-radius:var(--kbq-actions-panel-border-radius)}@supports (corner-shape: squircle){.kbq-actions-panel-container{corner-shape:squircle;border-radius:clamp(var(--kbq-actions-panel-border-radius) * 1.85,var(--kbq-actions-panel-border-radius) * 2.3 - 3.6px,var(--kbq-actions-panel-border-radius) * 2)}}.kbq-actions-panel-container{display:flex;flex-grow:1;align-items:center;overflow:hidden;box-sizing:border-box;transform:translateY(100%);transition:transform .15s cubic-bezier(.4,0,.2,1)}.kbq-actions-panel-container.kbq-animations-disabled{animation:none;transition:none}@media(prefers-reduced-motion:reduce){.kbq-actions-panel-container{animation:none;transition:none}}.kbq-actions-panel-container.kbq-actions-panel-container_visible{transform:none;animation:kbq-actions-panel-enter 125ms cubic-bezier(.4,0,.2,1)}.kbq-actions-panel-container.kbq-actions-panel-container_visible.kbq-animations-disabled{animation:none;transition:none}@media(prefers-reduced-motion:reduce){.kbq-actions-panel-container.kbq-actions-panel-container_visible{animation:none;transition:none}}.kbq-actions-panel-container .kbq-actions-panel-container__content{display:flex;align-items:center;flex-grow:1;overflow:hidden}.kbq-actions-panel-container .kbq-actions-panel-container__vertical-divider{background-color:var(--kbq-actions-panel-vertical-divider-background-color);height:var(--kbq-actions-panel-vertical-divider-height)!important;margin:var(--kbq-actions-panel-vertical-divider-margin)}.kbq-actions-panel-container .kbq-button,.kbq-actions-panel-container .kbq-button-icon{--kbq-button-filled-contrast-fade-off-background: transparent;--kbq-button-filled-contrast-fade-on-background: transparent}.kbq-actions-panel-container .kbq-button.kbq-disabled.kbq-contrast,.kbq-actions-panel-container .kbq-button.kbq-disabled.kbq-contrast-fade,.kbq-actions-panel-container .kbq-button-icon.kbq-disabled.kbq-contrast,.kbq-actions-panel-container .kbq-button-icon.kbq-disabled.kbq-contrast-fade{--kbq-button-filled-contrast-fade-off-states-disabled-background: var(--kbq-button-filled-contrast-fade-off-background);--kbq-button-filled-contrast-fade-off-states-disabled-border: var(--kbq-button-filled-contrast-fade-off-border);--kbq-button-filled-contrast-fade-off-states-disabled-foreground: var(--kbq-button-filled-contrast-fade-off-foreground);--kbq-button-filled-contrast-fade-off-states-disabled-left-icon: var(--kbq-button-filled-contrast-fade-off-left-icon);--kbq-button-filled-contrast-fade-off-states-disabled-right-icon: var(--kbq-button-filled-contrast-fade-off-right-icon);--kbq-button-filled-contrast-fade-on-states-disabled-background: var(--kbq-button-filled-contrast-fade-on-background);--kbq-button-filled-contrast-fade-on-states-disabled-border: var(--kbq-button-filled-contrast-fade-on-border);--kbq-button-filled-contrast-fade-on-states-disabled-foreground: var(--kbq-button-filled-contrast-fade-on-foreground);--kbq-button-filled-contrast-fade-on-states-disabled-left-icon: var(--kbq-button-filled-contrast-fade-on-left-icon);--kbq-button-filled-contrast-fade-on-states-disabled-right-icon: var(--kbq-button-filled-contrast-fade-on-right-icon);--kbq-button-outline-contrast-fade-on-states-disabled-background: var(--kbq-button-outline-contrast-fade-on-background);--kbq-button-outline-contrast-fade-on-states-disabled-border: var(--kbq-button-outline-contrast-fade-on-border);--kbq-button-outline-contrast-fade-on-states-disabled-foreground: var(--kbq-button-outline-contrast-fade-on-foreground);--kbq-button-outline-contrast-fade-on-states-disabled-left-icon: var(--kbq-button-outline-contrast-fade-on-left-icon);--kbq-button-outline-contrast-fade-on-states-disabled-right-icon: var(--kbq-button-outline-contrast-fade-on-right-icon);--kbq-button-transparent-contrast-fade-on-states-disabled-background: var(--kbq-button-transparent-contrast-fade-on-background);--kbq-button-transparent-contrast-fade-on-states-disabled-border: var(--kbq-button-transparent-contrast-fade-on-border);--kbq-button-transparent-contrast-fade-on-states-disabled-foreground: var(--kbq-button-transparent-contrast-fade-on-foreground);--kbq-button-transparent-contrast-fade-on-states-disabled-left-icon: var(--kbq-button-transparent-contrast-fade-on-left-icon);--kbq-button-transparent-contrast-fade-on-states-disabled-right-icon: var(--kbq-button-transparent-contrast-fade-on-right-icon);opacity:var(--kbq-opacity-disabled)}.kbq-actions-panel-overlay{margin:var(--kbq-actions-panel-margin)}@keyframes kbq-actions-panel-enter{0%{transform:translateY(100%)}}\n"], dependencies: [{ kind: "directive", type: CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }, { kind: "ngmodule", type: KbqDividerModule }, { kind: "component", type: i2.KbqDivider, selector: "kbq-divider", inputs: ["vertical", "paddings", "decorative", "length"] }, { kind: "ngmodule", type: KbqButtonModule }, { kind: "component", type: i3.KbqButton, selector: "[kbq-button]", inputs: ["kbqStyle", "disabled", "tabIndex"] }, { kind: "directive", type: i3.KbqButtonCssStyler, selector: "[kbq-button]" }, { kind: "ngmodule", type: KbqIconModule }, { kind: "component", type: i4.KbqIcon, selector: "[kbq-icon]", inputs: ["aria-hidden", "iconSize", "autoColor", "kbq-icon"] }, { kind: "ngmodule", type: KbqToolTipModule }, { kind: "directive", type: i5.KbqTooltipTrigger, selector: "[kbqTooltip]", inputs: ["kbqTooltipScrollStrategy", "forDisabledComponent", "ignoreTooltipPointerEvents", "kbqTooltipSingleInstance", "kbqTrigger", "hideWithTimeout", "kbqEnterDelay", "kbqLeaveDelay", "kbqRelativeToPointer", "kbqRelativeToCaret", "kbqRelativeToCaretVertical", "kbqTooltip", "kbqTooltipHeader", "kbqTooltipModifier", "kbqTooltipContext", "kbqTooltipClass", "kbqTooltipColor", "kbqTooltipArrow", "kbqTooltipOffset", "kbqTooltipDisabled", "kbqPlacementPriority", "kbqPlacement", "kbqVisible"], outputs: ["kbqPlacementChange", "kbqVisibleChange"], exportAs: ["kbqTooltip"] }], changeDetection: i0.ChangeDetectionStrategy.Eager, encapsulation: i0.ViewEncapsulation.None }); }
238
211
  }
239
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.30", ngImport: i0, type: KbqActionsPanelContainer, decorators: [{
212
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: KbqActionsPanelContainer, decorators: [{
240
213
  type: Component,
241
214
  args: [{ selector: 'kbq-actions-panel-container', imports: [
242
215
  CdkPortalOutlet,
@@ -254,21 +227,21 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.30", ngImpo
254
227
  class="kbq-actions-panel-container__close-button"
255
228
  color="contrast"
256
229
  kbq-button
257
- [kbqTooltip]="localeConfiguration()!.closeTooltip"
230
+ [attr.aria-label]="localeConfiguration().closeTooltip"
231
+ [kbqTooltip]="localeConfiguration().closeTooltip"
258
232
  [kbqTooltipOffset]="16"
259
233
  (click)="close()"
260
234
  >
261
235
  <i kbq-icon="kbq-circle-xmark_16"></i>
262
236
  </button>
263
237
  }
264
- `, changeDetection: ChangeDetectionStrategy.Default, encapsulation: ViewEncapsulation.None, host: {
238
+ `, changeDetection: ChangeDetectionStrategy.Eager, encapsulation: ViewEncapsulation.None, host: {
265
239
  class: 'kbq-actions-panel-container',
266
240
  '[class.kbq-actions-panel-container_rtl]': 'config.direction === "rtl"',
267
- '[@state]': 'animationState',
268
- '(@state.start)': 'onAnimationStart($event)',
269
- '(@state.done)': 'onAnimationDone($event)',
270
- '(keydown.escape)': 'handleEscape($event)'
271
- }, animations: [KBQ_ACTIONS_PANEL_CONTAINER_ANIMATION], styles: [".kbq-actions-panel-container,.kbq-actions-panel-overlay{--kbq-actions-panel-background-color: var(--kbq-background-contrast);--kbq-actions-panel-text-color: var(--kbq-foreground-on-contrast);--kbq-actions-panel-padding: var(--kbq-size-s);--kbq-actions-panel-margin: var(--kbq-size-s) var(--kbq-size-s) var(--kbq-size-l);--kbq-actions-panel-border-radius: var(--kbq-size-l);--kbq-actions-panel-box-shadow: var(--kbq-shadow-card);--kbq-actions-panel-height: var(--kbq-size-5xl);--kbq-actions-panel-vertical-divider-background-color: var( --kbq-line-on-contrast-less, var(--kbq-line-contrast-fade) );--kbq-actions-panel-vertical-divider-height: var(--kbq-size-m);--kbq-actions-panel-vertical-divider-margin: 0 var(--kbq-size-s)}\n", ".kbq-actions-panel-container{background:var(--kbq-actions-panel-background-color);color:var(--kbq-actions-panel-text-color);box-shadow:var(--kbq-actions-panel-box-shadow);height:var(--kbq-actions-panel-height);padding:var(--kbq-actions-panel-padding);border-radius:var(--kbq-actions-panel-border-radius);display:flex;flex-grow:1;align-items:center;overflow:hidden;box-sizing:border-box}.kbq-actions-panel-container .kbq-actions-panel-container__content{display:flex;align-items:center;flex-grow:1;overflow:hidden}.kbq-actions-panel-container .kbq-actions-panel-container__vertical-divider{background-color:var(--kbq-actions-panel-vertical-divider-background-color);height:var(--kbq-actions-panel-vertical-divider-height)!important;margin:var(--kbq-actions-panel-vertical-divider-margin)}.kbq-actions-panel-container .kbq-button,.kbq-actions-panel-container .kbq-button-icon{--kbq-button-filled-contrast-fade-off-background: transparent;--kbq-button-filled-contrast-fade-on-background: transparent}.kbq-actions-panel-overlay{margin:var(--kbq-actions-panel-margin)}\n"] }]
241
+ '[class.kbq-actions-panel-container_visible]': "animationState() === 'visible'",
242
+ '[class.kbq-animations-disabled]': 'animationsDisabled',
243
+ '(keydown.escape)': 'handleEscape($any($event))'
244
+ }, hostDirectives: [KbqLocaleOverridesDirective], styles: [".kbq-actions-panel-container,.kbq-actions-panel-overlay{--kbq-actions-panel-background-color: var(--kbq-background-contrast);--kbq-actions-panel-text-color: var(--kbq-foreground-on-contrast);--kbq-actions-panel-padding: var(--kbq-size-s);--kbq-actions-panel-margin: var(--kbq-size-s) var(--kbq-size-s) var(--kbq-size-l);--kbq-actions-panel-border-radius: var(--kbq-size-l);--kbq-actions-panel-box-shadow: var(--kbq-shadow-card);--kbq-actions-panel-height: var(--kbq-size-5xl);--kbq-actions-panel-vertical-divider-background-color: var( --kbq-line-on-contrast-less, var(--kbq-line-contrast-fade) );--kbq-actions-panel-vertical-divider-height: var(--kbq-size-m);--kbq-actions-panel-vertical-divider-margin: 0 var(--kbq-size-s)}\n", "@charset \"UTF-8\";.kbq-actions-panel-container{background:var(--kbq-actions-panel-background-color);color:var(--kbq-actions-panel-text-color);box-shadow:var(--kbq-actions-panel-box-shadow);height:var(--kbq-actions-panel-height);padding:var(--kbq-actions-panel-padding);border-radius:var(--kbq-actions-panel-border-radius)}@supports (corner-shape: squircle){.kbq-actions-panel-container{corner-shape:squircle;border-radius:clamp(var(--kbq-actions-panel-border-radius) * 1.85,var(--kbq-actions-panel-border-radius) * 2.3 - 3.6px,var(--kbq-actions-panel-border-radius) * 2)}}.kbq-actions-panel-container{display:flex;flex-grow:1;align-items:center;overflow:hidden;box-sizing:border-box;transform:translateY(100%);transition:transform .15s cubic-bezier(.4,0,.2,1)}.kbq-actions-panel-container.kbq-animations-disabled{animation:none;transition:none}@media(prefers-reduced-motion:reduce){.kbq-actions-panel-container{animation:none;transition:none}}.kbq-actions-panel-container.kbq-actions-panel-container_visible{transform:none;animation:kbq-actions-panel-enter 125ms cubic-bezier(.4,0,.2,1)}.kbq-actions-panel-container.kbq-actions-panel-container_visible.kbq-animations-disabled{animation:none;transition:none}@media(prefers-reduced-motion:reduce){.kbq-actions-panel-container.kbq-actions-panel-container_visible{animation:none;transition:none}}.kbq-actions-panel-container .kbq-actions-panel-container__content{display:flex;align-items:center;flex-grow:1;overflow:hidden}.kbq-actions-panel-container .kbq-actions-panel-container__vertical-divider{background-color:var(--kbq-actions-panel-vertical-divider-background-color);height:var(--kbq-actions-panel-vertical-divider-height)!important;margin:var(--kbq-actions-panel-vertical-divider-margin)}.kbq-actions-panel-container .kbq-button,.kbq-actions-panel-container .kbq-button-icon{--kbq-button-filled-contrast-fade-off-background: transparent;--kbq-button-filled-contrast-fade-on-background: transparent}.kbq-actions-panel-container .kbq-button.kbq-disabled.kbq-contrast,.kbq-actions-panel-container .kbq-button.kbq-disabled.kbq-contrast-fade,.kbq-actions-panel-container .kbq-button-icon.kbq-disabled.kbq-contrast,.kbq-actions-panel-container .kbq-button-icon.kbq-disabled.kbq-contrast-fade{--kbq-button-filled-contrast-fade-off-states-disabled-background: var(--kbq-button-filled-contrast-fade-off-background);--kbq-button-filled-contrast-fade-off-states-disabled-border: var(--kbq-button-filled-contrast-fade-off-border);--kbq-button-filled-contrast-fade-off-states-disabled-foreground: var(--kbq-button-filled-contrast-fade-off-foreground);--kbq-button-filled-contrast-fade-off-states-disabled-left-icon: var(--kbq-button-filled-contrast-fade-off-left-icon);--kbq-button-filled-contrast-fade-off-states-disabled-right-icon: var(--kbq-button-filled-contrast-fade-off-right-icon);--kbq-button-filled-contrast-fade-on-states-disabled-background: var(--kbq-button-filled-contrast-fade-on-background);--kbq-button-filled-contrast-fade-on-states-disabled-border: var(--kbq-button-filled-contrast-fade-on-border);--kbq-button-filled-contrast-fade-on-states-disabled-foreground: var(--kbq-button-filled-contrast-fade-on-foreground);--kbq-button-filled-contrast-fade-on-states-disabled-left-icon: var(--kbq-button-filled-contrast-fade-on-left-icon);--kbq-button-filled-contrast-fade-on-states-disabled-right-icon: var(--kbq-button-filled-contrast-fade-on-right-icon);--kbq-button-outline-contrast-fade-on-states-disabled-background: var(--kbq-button-outline-contrast-fade-on-background);--kbq-button-outline-contrast-fade-on-states-disabled-border: var(--kbq-button-outline-contrast-fade-on-border);--kbq-button-outline-contrast-fade-on-states-disabled-foreground: var(--kbq-button-outline-contrast-fade-on-foreground);--kbq-button-outline-contrast-fade-on-states-disabled-left-icon: var(--kbq-button-outline-contrast-fade-on-left-icon);--kbq-button-outline-contrast-fade-on-states-disabled-right-icon: var(--kbq-button-outline-contrast-fade-on-right-icon);--kbq-button-transparent-contrast-fade-on-states-disabled-background: var(--kbq-button-transparent-contrast-fade-on-background);--kbq-button-transparent-contrast-fade-on-states-disabled-border: var(--kbq-button-transparent-contrast-fade-on-border);--kbq-button-transparent-contrast-fade-on-states-disabled-foreground: var(--kbq-button-transparent-contrast-fade-on-foreground);--kbq-button-transparent-contrast-fade-on-states-disabled-left-icon: var(--kbq-button-transparent-contrast-fade-on-left-icon);--kbq-button-transparent-contrast-fade-on-states-disabled-right-icon: var(--kbq-button-transparent-contrast-fade-on-right-icon);opacity:var(--kbq-opacity-disabled)}.kbq-actions-panel-overlay{margin:var(--kbq-actions-panel-margin)}@keyframes kbq-actions-panel-enter{0%{transform:translateY(100%)}}\n"] }]
272
245
  }] });
273
246
 
274
247
  /**
@@ -284,7 +257,7 @@ class KbqActionsPanelRef {
284
257
  this.keydownEvents = this.dialogRef.keydownEvents;
285
258
  /** Emits when the actions panel starts opening, before its entrance animation plays. */
286
259
  this.beforeOpened = this.beforeOpenedSubject;
287
- /** Emits when the actions panel has opened and appeared. */
260
+ /** Emits when the actions panel has opened and appeared, or once closing cuts its entrance short. */
288
261
  this.afterOpened = this.afterOpenedSubject;
289
262
  /** Emits when the actions panel starts closing, before its exit animation plays. */
290
263
  this.beforeClosed = this.beforeClosedSubject;
@@ -321,33 +294,28 @@ class KbqActionsPanelRef {
321
294
  }
322
295
  /** Closes the actions panel. */
323
296
  close(result) {
324
- if (!this.containerInstance) {
297
+ const container = this.containerInstance;
298
+ if (!container) {
325
299
  return;
326
300
  }
327
- this.containerInstance.animationStateChanged
328
- .pipe(filter((event) => event.phaseName === 'start'), take(1))
329
- .subscribe(({ totalTime }) => {
330
- this.closeAnimationFallbackTimeout = setTimeout(() => this.dialogRef.close(this.result), totalTime + 100);
331
- });
301
+ // The exit ends an entrance still in progress, so it starts ahead of `beforeClosed` for `afterOpened` to
302
+ // come first — and the container is let go before that, since an `afterOpened` subscriber may close again.
303
+ this.containerInstance = null;
332
304
  this.result = result;
305
+ container.startCloseAnimation();
333
306
  this.beforeClosedSubject.next(result);
334
307
  this.beforeClosedSubject.complete();
335
- this.containerInstance.startCloseAnimation();
336
- this.containerInstance = null;
337
308
  }
338
309
  handleAnimation() {
339
- this.containerInstance.animationStateChanged
340
- .pipe(filter((event) => event.phaseName === 'done' && event.toState === 'visible'), take(1))
310
+ this.containerInstance.animationDone
311
+ .pipe(filter((state) => state === 'visible'), take(1))
341
312
  .subscribe(() => {
342
313
  this.afterOpenedSubject.next();
343
314
  this.afterOpenedSubject.complete();
344
315
  });
345
- this.containerInstance.animationStateChanged
346
- .pipe(filter((event) => event.phaseName === 'done' && event.toState === 'hidden'), take(1))
347
- .subscribe(() => {
348
- clearTimeout(this.closeAnimationFallbackTimeout);
349
- this.dialogRef.close(this.result);
350
- });
316
+ this.containerInstance.animationDone
317
+ .pipe(filter((state) => state === 'hidden'), take(1))
318
+ .subscribe(() => this.dialogRef.close(this.result));
351
319
  }
352
320
  handleOverlayDetachments() {
353
321
  this.dialogRef.overlayRef
@@ -359,24 +327,167 @@ class KbqActionsPanelRef {
359
327
  }
360
328
  }
361
329
 
330
+ /**
331
+ * Element that {@link KbqActionsPanelScopedOverlayContainer} renders overlays into.
332
+ *
333
+ * @docs-private
334
+ */
335
+ const KBQ_ACTIONS_PANEL_SCOPED_OVERLAY_HOST = new InjectionToken('KBQ_ACTIONS_PANEL_SCOPED_OVERLAY_HOST');
336
+ /**
337
+ * Class of the wrapper that {@link KbqActionsPanelScopedOverlayContainer} adds to the host.
338
+ *
339
+ * @docs-private
340
+ */
341
+ const KBQ_ACTIONS_PANEL_SCOPED_OVERLAY_CONTAINER_SELECTOR = 'kbq-actions-panel-scoped-overlay-container';
342
+ /**
343
+ * Hosts currently promoted to a containing block, with the inline `position` to put back and the number of containers
344
+ * relying on the promotion.
345
+ *
346
+ * The promotion belongs to the host rather than to a container: several containers share one host whenever panels
347
+ * overlap — replacing an open panel creates the new overlay before the old one finishes closing — and the first
348
+ * to be destroyed must not restore a `position` the others still need.
349
+ */
350
+ const promotedHosts = new WeakMap();
351
+ /**
352
+ * `OverlayContainer` that renders overlays inside {@link KBQ_ACTIONS_PANEL_SCOPED_OVERLAY_HOST} instead of
353
+ * `document.body`.
354
+ *
355
+ * CDK resolves the overlay host from the `OverlayContainer` available in DI, and there is exactly one of those per
356
+ * application. Providing this container in a child injector — together with a `Dialog` of its own — is what makes a
357
+ * single overlay render inside a specific element while the rest of the application keeps using the global container.
358
+ *
359
+ * The container is scoped to one host and is not reusable: it is expected to be created and destroyed alongside the
360
+ * overlay it hosts.
361
+ *
362
+ * @docs-private
363
+ */
364
+ class KbqActionsPanelScopedOverlayContainer extends OverlayContainer {
365
+ constructor() {
366
+ super(...arguments);
367
+ this.host = inject(KBQ_ACTIONS_PANEL_SCOPED_OVERLAY_HOST).nativeElement;
368
+ this.window = inject(KBQ_WINDOW);
369
+ /** Wrapper that isolates the container from the host's own content. */
370
+ this.wrapperElement = null;
371
+ /** Whether this container holds a share of the host's promotion to a containing block. */
372
+ this.holdsHostPromotion = false;
373
+ }
374
+ ngOnDestroy() {
375
+ super.ngOnDestroy();
376
+ this.wrapperElement?.remove();
377
+ this.wrapperElement = null;
378
+ this.releaseHostPromotion();
379
+ }
380
+ /**
381
+ * Deliberately does not call `super`: CDK's implementation marks the container with a `platform` attribute and
382
+ * removes every other container carrying one, which is bookkeeping for the single application-wide container. A
383
+ * scoped container is not that container, and joining the scheme would make it delete — and be deleted by — the
384
+ * global one as soon as both exist.
385
+ */
386
+ _createContainer() {
387
+ const wrapper = this._document.createElement('div');
388
+ wrapper.classList.add(KBQ_ACTIONS_PANEL_SCOPED_OVERLAY_CONTAINER_SELECTOR);
389
+ wrapper.style.position = 'absolute';
390
+ wrapper.style.inset = '0';
391
+ wrapper.style.pointerEvents = 'none';
392
+ const container = this._document.createElement('div');
393
+ container.classList.add('cdk-overlay-container');
394
+ // CDK styles `.cdk-overlay-container` as a viewport-sized `position: fixed` layer. A scoped container has to
395
+ // cover the host instead; the remaining CDK rules (`top`/`left`/`width`/`height`) already do the right thing
396
+ // once the element is out of the fixed positioning context.
397
+ container.style.position = 'absolute';
398
+ // The container gets a wrapper of its own rather than being appended to the host directly, because CDK's
399
+ // `Dialog` marks every sibling of the overlay container with `aria-hidden` while a dialog is open. Inside the
400
+ // host those siblings are the very content the actions panel acts on, so the container is kept as an only
401
+ // child and there is nothing left for CDK to hide.
402
+ wrapper.appendChild(container);
403
+ this.promoteHostToContainingBlock();
404
+ this.host.appendChild(wrapper);
405
+ this.wrapperElement = wrapper;
406
+ this._containerElement = container;
407
+ }
408
+ /**
409
+ * The wrapper is absolutely positioned, so it resolves against the nearest positioned ancestor. A `static` host
410
+ * would let the overlay land on some outer element instead, so it is promoted to `relative`; a host that is
411
+ * already positioned is left untouched.
412
+ */
413
+ promoteHostToContainingBlock() {
414
+ if (!this._platform.isBrowser) {
415
+ return;
416
+ }
417
+ const promotion = promotedHosts.get(this.host);
418
+ if (promotion) {
419
+ promotion.containers++;
420
+ this.holdsHostPromotion = true;
421
+ return;
422
+ }
423
+ // A host that is not in the document yet reports no position at all (`getComputedStyle` returns an empty
424
+ // declaration), and is treated as `static`: promoting one that turns out to be positioned is harmless,
425
+ // leaving a `static` one alone is not.
426
+ const { position } = this.window.getComputedStyle(this.host);
427
+ if (position && position !== 'static') {
428
+ return;
429
+ }
430
+ promotedHosts.set(this.host, { inlinePosition: this.host.style.position, containers: 1 });
431
+ this.host.style.position = 'relative';
432
+ this.holdsHostPromotion = true;
433
+ }
434
+ /** Gives the host its own `position` back once no scoped container depends on the promotion any more. */
435
+ releaseHostPromotion() {
436
+ if (!this.holdsHostPromotion) {
437
+ return;
438
+ }
439
+ this.holdsHostPromotion = false;
440
+ const promotion = promotedHosts.get(this.host);
441
+ if (--promotion.containers > 0) {
442
+ return;
443
+ }
444
+ promotedHosts.delete(this.host);
445
+ this.host.style.position = promotion.inlinePosition;
446
+ }
447
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: KbqActionsPanelScopedOverlayContainer, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
448
+ /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: KbqActionsPanelScopedOverlayContainer }); }
449
+ }
450
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: KbqActionsPanelScopedOverlayContainer, decorators: [{
451
+ type: Injectable
452
+ }] });
453
+
362
454
  /** Injection token that can be used to access the data that was passed in to actions panel. */
363
455
  const KBQ_ACTIONS_PANEL_DATA = new InjectionToken('KBQ_ACTIONS_PANEL_DATA');
364
456
  /**
365
457
  * Selector for actions panel overlay.
366
458
  *
367
- * @docs-private
459
+ * @internal
368
460
  */
369
461
  const KBQ_ACTIONS_PANEL_OVERLAY_SELECTOR = 'kbq-actions-panel-overlay';
462
+ /**
463
+ * `Dialog` backing a panel that renders into an `overlayContainer`.
464
+ *
465
+ * A child `Dialog` shares `openDialogs` with the root one but keeps an `_ariaHiddenElements` map of its own, and CDK
466
+ * restores the `aria-hidden` marks from whichever instance happens to close the last dialog. Left apart, marks a root
467
+ * dialog put on the application are never taken off again. Adopting the root's map keeps both halves of that
468
+ * bookkeeping on the same object.
469
+ */
470
+ class KbqActionsPanelScopedDialog extends Dialog {
471
+ constructor() {
472
+ super();
473
+ this['_ariaHiddenElements'] = inject(Dialog, { skipSelf: true })['_ariaHiddenElements'];
474
+ }
475
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: KbqActionsPanelScopedDialog, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
476
+ /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: KbqActionsPanelScopedDialog }); }
477
+ }
478
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: KbqActionsPanelScopedDialog, decorators: [{
479
+ type: Injectable
480
+ }], ctorParameters: () => [] });
370
481
  /**
371
482
  * Service for opening actions panel.
372
483
  */
373
484
  class KbqActionsPanel {
374
485
  constructor() {
375
486
  this.injector = inject(Injector);
487
+ this.environmentInjector = inject(EnvironmentInjector);
376
488
  this.overlay = inject(Overlay);
377
489
  this.dialog = inject(Dialog);
378
490
  this.defaultConfig = inject(KBQ_ACTIONS_PANEL_DEFAULT_CONFIG);
379
- this.resizeObserver = inject(SharedResizeObserver);
380
491
  /** The reference to the currently opened actions panel. */
381
492
  this.openedActionsPanelRef = null;
382
493
  }
@@ -413,80 +524,84 @@ class KbqActionsPanel {
413
524
  openDialog(componentOrTemplateRef, config = {}) {
414
525
  let actionsPanelRef;
415
526
  const { overlayContainer, overlayPanelClass } = config;
416
- this.dialog.open(componentOrTemplateRef, {
417
- ...config,
418
- container: KbqActionsPanelContainer,
419
- restoreFocus: false,
420
- autoFocus: null,
421
- hasBackdrop: false,
422
- // Disable closing since we need to sync it up to the animation ourselves
423
- closeOnOverlayDetachments: false,
424
- // Disable closing since we need to sync it up to the animation ourselves
425
- closeOnDestroy: false,
426
- // Disable closing since we need to sync it up to the animation ourselves
427
- disableClose: true,
428
- scrollStrategy: config.scrollStrategy && config.scrollStrategy(this.overlay),
429
- positionStrategy: overlayContainer
430
- ? this.overlay
431
- .position()
432
- .flexibleConnectedTo(overlayContainer)
433
- .withPositions([{ originX: 'center', originY: 'bottom', overlayX: 'center', overlayY: 'bottom' }])
434
- .withFlexibleDimensions()
435
- .withPush(false)
436
- .withLockedPosition()
437
- .withGrowAfterOpen()
438
- : this.overlay.position().global().centerHorizontally().bottom(),
439
- templateContext: () => {
440
- return {
441
- $implicit: config.data,
442
- data: config.data,
443
- actionsPanelRef
444
- };
445
- },
446
- injector: Injector.create({
447
- parent: config.injector || this.injector,
448
- providers: [{ provide: KbqActionsPanelConfig, useValue: config }]
449
- }),
450
- providers: (dialogRef, _dialogConfig, container) => {
451
- actionsPanelRef = new KbqActionsPanelRef(dialogRef, container);
452
- return [
453
- { provide: KbqActionsPanelRef, useValue: actionsPanelRef },
454
- { provide: KBQ_ACTIONS_PANEL_DATA, useValue: config.data }
455
- ];
456
- }
457
- });
527
+ // CDK takes the overlay host from the `OverlayContainer` its `Dialog` was injected with, and there is one of
528
+ // those per application. Rendering the panel inside `overlayContainer` therefore means giving this panel a
529
+ // `Dialog` of its own, backed by a container scoped to that element.
530
+ const scopedInjector = overlayContainer ? this.createScopedInjector(overlayContainer) : null;
531
+ const dialog = scopedInjector ? scopedInjector.get(Dialog) : this.dialog;
532
+ try {
533
+ dialog.open(componentOrTemplateRef, {
534
+ ...config,
535
+ container: KbqActionsPanelContainer,
536
+ restoreFocus: false,
537
+ autoFocus: null,
538
+ hasBackdrop: false,
539
+ // Disable closing since we need to sync it up to the animation ourselves
540
+ closeOnOverlayDetachments: false,
541
+ // Disable closing since we need to sync it up to the animation ourselves
542
+ closeOnDestroy: false,
543
+ // Disable closing since we need to sync it up to the animation ourselves
544
+ disableClose: true,
545
+ scrollStrategy: config.scrollStrategy && config.scrollStrategy(this.overlay),
546
+ // Pinned to the bottom center of the overlay container — the viewport by default, `overlayContainer`
547
+ // when one is given. The panel's width follows from `.cdk-overlay-pane`'s `max-width: 100%` in both
548
+ // cases.
549
+ positionStrategy: this.overlay.position().global().centerHorizontally().bottom(),
550
+ templateContext: () => {
551
+ return {
552
+ $implicit: config.data,
553
+ data: config.data,
554
+ actionsPanelRef
555
+ };
556
+ },
557
+ injector: Injector.create({
558
+ parent: config.injector || this.injector,
559
+ providers: [{ provide: KbqActionsPanelConfig, useValue: config }]
560
+ }),
561
+ providers: (dialogRef, _dialogConfig, container) => {
562
+ actionsPanelRef = new KbqActionsPanelRef(dialogRef, container);
563
+ return [
564
+ { provide: KbqActionsPanelRef, useValue: actionsPanelRef },
565
+ { provide: KBQ_ACTIONS_PANEL_DATA, useValue: config.data }
566
+ ];
567
+ }
568
+ });
569
+ }
570
+ catch (error) {
571
+ // `open()` builds the overlay, and with it the scoped container that has already put a wrapper into the
572
+ // host and promoted it. Nothing else would ever destroy the injector, so unwind it here.
573
+ scopedInjector?.destroy();
574
+ throw error;
575
+ }
458
576
  const { overlayRef } = actionsPanelRef;
459
577
  overlayRef.addPanelClass(KBQ_ACTIONS_PANEL_OVERLAY_SELECTOR);
460
578
  if (overlayPanelClass)
461
579
  overlayRef.addPanelClass(overlayPanelClass);
462
- if (overlayContainer) {
463
- const { afterClosed } = actionsPanelRef;
464
- this.syncOverlayMaxWidth(overlayContainer.nativeElement, overlayRef.overlayElement);
465
- this.resizeObserver
466
- .observe(overlayContainer.nativeElement)
467
- .pipe(takeUntil(afterClosed))
468
- .subscribe(() => {
469
- if (this.syncOverlayMaxWidth(overlayContainer.nativeElement, overlayRef.overlayElement)) {
470
- overlayRef.updatePosition();
471
- }
472
- });
580
+ if (scopedInjector) {
581
+ // The scoped injector owns the panel's `Dialog` and overlay container, so it lives exactly as long as the
582
+ // panel. `afterClosed` emits after the overlay has been disposed of.
583
+ actionsPanelRef.afterClosed.subscribe(() => scopedInjector.destroy());
473
584
  }
474
585
  return actionsPanelRef;
475
586
  }
476
- syncOverlayMaxWidth(container, overlayElement) {
477
- const { width } = container.getBoundingClientRect();
478
- if (!width)
479
- return false;
480
- const maxWidth = coerceCssPixelValue(width);
481
- if (overlayElement.style.maxWidth === maxWidth)
482
- return false;
483
- overlayElement.style.maxWidth = maxWidth;
484
- return true;
587
+ /** Injector that makes CDK render the panel's overlay inside `host` instead of `document.body`. */
588
+ createScopedInjector(host) {
589
+ return createEnvironmentInjector([
590
+ // A `Dialog` of its own is what carries the scoped container into `createOverlayRef` — the root one
591
+ // resolves the application-wide container. It still reaches the root `Dialog` through `skipSelf` and
592
+ // shares its registry of open dialogs, so `closeAll()` and `afterAllClosed` keep seeing this panel.
593
+ { provide: Dialog, useClass: KbqActionsPanelScopedDialog },
594
+ { provide: KBQ_ACTIONS_PANEL_SCOPED_OVERLAY_HOST, useValue: host },
595
+ { provide: OverlayContainer, useClass: KbqActionsPanelScopedOverlayContainer },
596
+ // A popover is shown in the top layer and laid out against the viewport, wherever its host sits in
597
+ // the DOM: the panel would leave `host` and pin itself to the bottom of the page.
598
+ { provide: OVERLAY_DEFAULT_CONFIG, useValue: { usePopover: false } }
599
+ ], this.environmentInjector, KbqActionsPanel.name);
485
600
  }
486
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.30", ngImport: i0, type: KbqActionsPanel, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
487
- /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.30", ngImport: i0, type: KbqActionsPanel, providedIn: 'root' }); }
601
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: KbqActionsPanel, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
602
+ /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: KbqActionsPanel, providedIn: 'root' }); }
488
603
  }
489
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.30", ngImport: i0, type: KbqActionsPanel, decorators: [{
604
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: KbqActionsPanel, decorators: [{
490
605
  type: Injectable,
491
606
  args: [{ providedIn: 'root' }]
492
607
  }] });
@@ -495,11 +610,11 @@ const COMPONENTS = [
495
610
  KbqActionsPanelContainer
496
611
  ];
497
612
  class KbqActionsPanelModule {
498
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.30", ngImport: i0, type: KbqActionsPanelModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
499
- /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.30", ngImport: i0, type: KbqActionsPanelModule, imports: [KbqActionsPanelContainer], exports: [KbqActionsPanelContainer] }); }
500
- /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.30", ngImport: i0, type: KbqActionsPanelModule, providers: [KbqActionsPanel], imports: [COMPONENTS] }); }
613
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: KbqActionsPanelModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
614
+ /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.25", ngImport: i0, type: KbqActionsPanelModule, imports: [KbqActionsPanelContainer], exports: [KbqActionsPanelContainer] }); }
615
+ /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: KbqActionsPanelModule, providers: [KbqActionsPanel], imports: [COMPONENTS] }); }
501
616
  }
502
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.30", ngImport: i0, type: KbqActionsPanelModule, decorators: [{
617
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: KbqActionsPanelModule, decorators: [{
503
618
  type: NgModule,
504
619
  args: [{
505
620
  imports: COMPONENTS,