@koobiq/components 20.4.1 → 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 +486 -165
  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 -187
  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
@@ -8,18 +8,408 @@
8
8
  },
9
9
  "filter-bar-signals": {
10
10
  "version": "20.2.0-0",
11
- "description": "Migrates KbqFilterBar consumers to the signal-based API. Rewrites programmatic reads of the now-signal members (filter, pipeTemplates, isChanged, isDisabled, isReadOnly, isSaved, isSavedAndChanged) to calls and `filter = v` writes to `filter.set(v)` on receivers typed KbqFilterBar, including reads via template reference variables on <kbq-filter-bar>. Renames KbqFilterBarRefresher → KbqFilterRefresher and warns on changes/preparePopover/view-query cases that need manual migration.",
11
+ "description": "Migrates KbqFilterBar consumers to the signal-based API. Rewrites programmatic reads of the now-signal members (filter, pipeTemplates, isChanged, isDisabled, isReadOnly, isSaved, isSavedAndChanged) to calls and `filter = v` writes to `filter.set(v)` on receivers typed KbqFilterBar or KbqFilterBarHost, by annotation or inject(), including reads and writes via a bare template reference variable on <kbq-filter-bar>. Renames KbqFilterBarRefresher → KbqFilterRefresher and warns on writes to the read-only members, on compound writes to filter, on KBQ_FILTER_BAR_PIPES now typed as a Map, and on changes/preparePopover/view-query cases that need manual migration.",
12
12
  "factory": "./migrations/filter-bar-signals/index"
13
13
  },
14
14
  "alert-signals": {
15
15
  "version": "20.2.0-0",
16
- "description": "Migrates KbqAlert consumers to its finished signal-based API. Rewrites value-safe programmatic reads of the now-signal members (compact, alertStyle) to calls on receivers typed KbqAlert, including reads via template reference variables on <kbq-alert> (external and inline templates). Warns — without auto-fixing — on alertColor (now a read-only InputSignal whose getter returns the raw color instead of the `kbq-alert_<color>` class), the content-query members that became protected (icon/iconItem/button/title/control/closeButton/isColored), narrowed alertColor/alertStyle inputs, the compact booleanAttribute behavior change, descendants:false content projection, view/content queries returning the instance, and KbqAlertModule no longer re-exporting A11yModule/PlatformModule.",
16
+ "description": "Migrates KbqAlert consumers to its finished signal-based API. Rewrites value-safe programmatic reads of the now-signal members (compact, alertStyle) to calls on receivers typed KbqAlert, including reads via template reference variables on <kbq-alert> (external and inline templates). Warns — without auto-fixing — on alertColor (now a read-only InputSignal whose getter returns the raw color instead of the `kbq-alert_<color>` class), the content-query members that became protected (icon/iconItem/button/title/control/closeButton/isColored), writes to the read-only compact/alertStyle, narrowed alertColor/alertStyle inputs, the compact booleanAttribute behavior change, descendants:false content projection, view/content queries returning the instance, and KbqAlertModule no longer re-exporting A11yModule/PlatformModule.",
17
17
  "factory": "./migrations/alert-signals/index"
18
18
  },
19
19
  "autocomplete-panel-width-auto": {
20
20
  "version": "20.2.0-0",
21
21
  "description": "Replaces `panelWidth=\"auto\"` with `panelWidth=\"fit-content\"` on `<kbq-autocomplete>`. `auto` used to be passed to CSS verbatim, so the panel shrank to fit its content; it now means \"match the host width\", matching `kbq-select` and `kbq-tree-select`. The change is silent — `auto` still type-checks and still renders — so unmigrated templates only lay out differently.",
22
22
  "factory": "./migrations/autocomplete-panel-width-auto/index"
23
+ },
24
+ "dropdown-demote-overlay": {
25
+ "version": "21.0.0-0",
26
+ "description": "Cleans up after the removal of the overlay demotion mechanism. Deletes the `demoteOverlay` attribute and property binding from templates, removes `{ provide: KBQ_DROPDOWN_HOST, … }` providers together with the now-invalid `KBQ_DROPDOWN_HOST` import, and warns about programmatic `demoteOverlay` access and dead `.cdk-overlay-container_dropdown` style overrides. Note the behaviour change: dropdown/select/popover panels now render above `kbq-navbar` / `kbq-top-bar` instead of sliding under them.",
27
+ "factory": "./migrations/dropdown-demote-overlay/index"
28
+ },
29
+ "app-switcher-signals": {
30
+ "version": "21.0.0-0",
31
+ "description": "Migrates KbqAppSwitcherTrigger consumers to its model()-based API. Rewrites programmatic reads of `selectedApp` to calls and `selectedApp = v` writes to `selectedApp.set(v)` on receivers typed KbqAppSwitcherTrigger, including reads through a #ref=\"kbqAppSwitcher\" template reference variable (external and inline templates), and renames `selectedAppChange.subscribe` to `selectedApp.subscribe`. Warns — without auto-fixing — on `selectedSite`/`selectedSiteChange` (now a model whose value is the raw site instead of the grouped one; `parsedSelectedSite()` returns the grouped one), on the removed `header`/`footer`/`isTrapFocus`/`updateTrapFocus`/`getIcon` members and the removed protected `activeSite`/`activeApp`, on the required `app`/`site` inputs and the signal-based `collapsed` of the internal row components, and on inline `icon` markup now being sanitized against a strict SVG allow-list.",
32
+ "factory": "./migrations/app-switcher-signals/index"
33
+ },
34
+ "button-state-and-styles": {
35
+ "version": "21.0.0-0",
36
+ "description": "Migrates consumers of the v21.0.0 button review. Rewrites the removed physical border-radius mixins (border-right/left/top/bottom-radius) to their logical counterparts (border-inline-end/start-radius, border-block-start/end-radius) in SCSS, and warns about the changes that need review: `<a kbq-button>` no longer renders the `disabled` attribute (aria-disabled + tabindex=\"-1\" + .kbq-disabled instead) while `<button kbq-button>` no longer renders `aria-disabled`; a native button no longer renders tabindex=\"0\"; an href-less anchor is announced as role=\"button\"; KbqButtonGroupRoot no longer overwrites a kbqStyle/color the button sets itself and its `disabled` became additive and `boolean | undefined`; the `.kbq-progress` utility moved from button.css/toggle.css into kbq-core(); two dead --kbq-button-icon-size-* custom properties were dropped; and locale data gained an `a11y` section for the accessible names of built-in icon-only buttons.",
37
+ "factory": "./migrations/button-state-and-styles/index"
38
+ },
39
+ "button-toggle-signals-and-aria": {
40
+ "version": "21.0.0-0",
41
+ "description": "Migrates consumers of the v21.0.0 button-toggle review. Rewrites programmatic reads of the now-signal group inputs (vertical, multiple) to calls on receivers typed KbqButtonToggleGroup, including reads through a #ref=\"kbqButtonToggleGroup\" template reference variable (external and inline templates). Reports — without rewriting — assignments to those inputs (an input() has no .set(), so the binding has to take over), the members that were removed or narrowed (mcButton, icons, the now-protected buttonToggleGroup, the read-only type/iconType, the typed selected), and every icon-only <kbq-button-toggle> left without an accessible name, which now also logs a dev-mode warning. Notes the changes no call site can point at: role=\"radiogroup\"/\"radio\"+aria-checked in single selection and role=\"group\"+aria-pressed with multiple, one tab stop instead of N, arrow keys moving focus and selection together, and disabled on a standalone toggle finally returning a boolean.",
42
+ "factory": "./migrations/button-toggle-signals-and-aria/index"
43
+ },
44
+ "form-field-signals": {
45
+ "version": "21.0.0-0",
46
+ "description": "Migrates consumers of the v21.0.0 form-field review. Rewrites programmatic and template-reference reads of the now-signal members of KbqFormField (cleaner, passwordToggle, hint, prefix, suffix, hasCleaner/hasHint/hasPasswordToggle/hasPrefix/hasStepper/hasSuffix) and of the hint family (fillTextOff, compact) to calls, moves `[attr.aria-label]` on <kbq-cleaner> to the new `[aria-label]` input now that the component owns that host binding, and renames the misspelled `fiedset-theme` stylesheet import. Warns — without auto-fixing — on the QueryList API lost by the content queries, on cleaner/passwordToggle returning `undefined` instead of `null`, on assignments to the now read-only fillTextOff/compact and to the content queries (cleaner, passwordToggle, hint, prefix, suffix), on the removed mixinColor/CanColorCtor, on KBQ_FORM_FIELD_REF.control no longer being `any`, on KbqTrim.trim typed `unknown` instead of `any`, on the three new required keys of KbqA11yLocaleConfiguration, on hand-rolled live-region/role attributes made redundant by kbq-error and kbq-cleaner, and on the removed KbqFormField.hovered/onHoverChanged(), whose pointer listeners ran change detection on every hover, in code and through template references. Also migrates the signal-based KbqFormFieldControl: reads of value/id/placeholder/focused/empty/required/disabled/errorState on the built-in controls, of id/placeholder/focused/empty on KbqTagInput, and of elementType on KbqInputPassword, become calls and writes to the members that stay writable become .set() - in code, and through template reference variables, where a two-way binding to a writable member is kept; warns on custom KbqFormFieldControl implementations, on control().stateChanges, on writes to the now read-only members, KbqInputPassword.elementType among them (toggleType() changes it now), and compound writes to the writable ones, and on the changed KbqErrorStateTracker, CanUpdateErrorState and KbqIconErrorStateContext and the removed mixinErrorState.",
47
+ "factory": "./migrations/form-field-signals/index"
48
+ },
49
+ "button-truncation": {
50
+ "version": "21.0.0-0",
51
+ "description": "Migrates KbqButton and KbqButtonToggle consumers to labels that truncate with an ellipsis by default. Moves an icon sitting at either edge of the default slot into the kbqButtonPrefix/kbqButtonSuffix slot, which is what keeps it beside the truncating label box instead of inside it (icon-only buttons are left alone, and an icon rendered by a single-element @if block is still marked). Reports — without rewriting — stylesheets that override .kbq-button-text (was a flex row, now inline-block), .kbq-button-wrapper (hand-rolled truncation now stacks on the built-in one) and .kbq-button-toggle-wrapper (the label moved into the new .kbq-button-toggle-text box), and notes the silent part: .kbq-button/.kbq-light-button gained max-width: 100%, so a button that used to overflow its container now clamps and clips its label.",
52
+ "factory": "./migrations/button-truncation/index"
53
+ },
54
+ "mandatory-peer-dependencies": {
55
+ "version": "21.0.0-0",
56
+ "description": "Adds the packages that became mandatory peerDependencies of @koobiq/components — overlayscrollbars and @koobiq/date-adapter — and schedules an install. npm adds a newly mandatory peer on upgrade by itself, but Yarn does not and pnpm only does with auto-install-peers, so those projects would otherwise upgrade into 'Cannot find module' at build time. Warns when @koobiq/date-adapter is already present, since an existing entry is left untouched and anything below 3.4.0 lacks the addCalendarUnits()/startOf() the date components call.",
57
+ "factory": "./migrations/mandatory-peer-dependencies/index"
58
+ },
59
+ "tag-slots": {
60
+ "version": "21.0.0-0",
61
+ "description": "Migrates KbqTag consumers from the legacy implicit icon placement to explicit content slots. Adds kbqTagPrefix to every directly projected kbq-icon that is not already a prefix/suffix, remove control, or edit-submit control. The migration preserves current rendering even when the icon is written after the label, because the old component always projected such icons before the label; kbq-icon-button and kbq-icon-item without kbq-icon remain unchanged because they were not part of the legacy slot.",
62
+ "factory": "./migrations/tag-slots/index"
63
+ },
64
+ "button-supported-colors": {
65
+ "version": "21.0.0-0",
66
+ "description": "Migrates consumers to the narrowed button color set. `color` on KbqButton, KbqButtonGroupRoot and KbqSplitButton (and `kbqOkType` on KbqModalComponent / ModalOptions) now accepts theme, theme-fade, contrast and contrast-fade only — every other value matched no rule in kbq-button-theme() and rendered the button as a native one. Removes such a color written as a literal from templates, which is appearance-preserving now that each style falls back to its own default color, and warns about the ones it cannot resolve (enum members, programmatic assignment, members still typed KbqComponentColors / ThemePalette). Also flags the silent part: a transparent button with no explicit color now defaults to contrast instead of contrast-fade, so a `.kbq-button_transparent.kbq-contrast-fade` override stops matching.",
67
+ "factory": "./migrations/button-supported-colors/index"
68
+ },
69
+ "scrollbar-deprecated-path": {
70
+ "version": "21.0.0-0",
71
+ "description": "Rewrites `@koobiq/components/scrollbar` imports to `@koobiq/components/scrollbar/deprecated`. `@koobiq/components/scrollbar` now resolves to a new, dependency-free scrollbar directive; the previous `overlayscrollbars`-based component/directive (`options`/`events`/`defer`/`scrollbarInstance`, the `kbq-scrollbar` element selector) moved to `@koobiq/components/scrollbar/deprecated` unchanged and will be removed in 22.0.0.",
72
+ "factory": "./migrations/scrollbar-deprecated-path/index"
73
+ },
74
+ "splitter-deprecated-path": {
75
+ "version": "21.0.0-0",
76
+ "description": "Rewrites `@koobiq/components/splitter` imports to `@koobiq/components/splitter/deprecated`. `@koobiq/components/splitter` now resolves to the rewritten splitter, which lays panels out with CSS grid and adds panel constraints, collapsing, snapping, keyboard support and the `separator` accessibility pattern; the previous `flex-basis` based implementation (`KbqSplitterComponent`, `KbqSplitterAreaDirective`, `KbqGutterDirective`, `KbqGutterGhostDirective`, `KbqSplitterModule`, `Direction`) moved to `@koobiq/components/splitter/deprecated` unchanged and will be removed in 22.0.0.",
77
+ "factory": "./migrations/splitter-deprecated-path/index"
78
+ },
79
+ "link-deprecated-path": {
80
+ "version": "21.0.0-0",
81
+ "description": "Rewrites `@koobiq/components/link` imports to `@koobiq/components/link/deprecated`. `@koobiq/components/link` now resolves to the `KbqLink` component with the `[kbqLink]` selector, which renders the underlined text itself between the `kbqLinkPrefix` and `kbqLinkSuffix` slots, adds the external icon through the `external` input, takes a `size` instead of `big` and `compact` and an `underline` instead of `noUnderline`, covers the gaps between the lines of a wrapped link without `multiline` and makes a link on any element but an `<a>` a pseudo link with the button role and keyboard activation; the previous directive (`KbqLink`, `KbqLinkModule`, the `[kbq-link]` selector), whose markup needed the `kbq-link__text` wrapper and the `kbq-link_external` and `kbq-text-with-dot` classes, moved to `@koobiq/components/link/deprecated` unchanged and will be removed in a future major version.",
82
+ "factory": "./migrations/link-deprecated-path/index"
83
+ },
84
+ "filter-bar-rename-action": {
85
+ "version": "21.0.0-0",
86
+ "description": "Cleans up after the filter-bar rename rework. Removes the `name` and `error` keys from filter-bar locale configuration literals — the save/rename popover no longer renders a caption above its name field, because its header now carries it, nor a message under the field, because the alert above it (`errorHint`) alone reports a taken name — and splits `saveChanges` / `saveAsNew`, which each served as both a popover header and a dropdown item label, into `saveChangesHeader` / `saveChangesButton` and `saveAsNewHeader` / `saveAsNewButton` carrying the old value, matching a literal by the sibling keys of the `filters` section rather than by type. Reports reads of the removed and split keys and the overrides too partial to recognise. Warns about the behaviour change no call site can point at: a NewName save now inherits the filter's own `saved` / `changed` flags instead of forcing saved: true / changed: false, so renaming a dirty filter keeps it dirty and a host must persist the name only; `filters.change` was reworded to \"Переименовать\" / \"Rename\"; and the popover headers now caption the name field (\"Новое название\" / \"Новый фильтр\").",
87
+ "factory": "./migrations/filter-bar-rename-action/index"
88
+ },
89
+ "navbar-signals-and-aria": {
90
+ "version": "21.0.0-0",
91
+ "description": "Migrates consumers of the navbar review. Rewrites programmatic and template-reference reads of the now-signal members (KbqVerticalNavbar.expanded/configuration/openOver, KbqFocusableComponent.tabIndex, KbqNavbarItem.isCollapsed/collapsable/collapsedText, KbqNavbarBrand.collapsed/collapsedText) to calls, writes of the model-backed expanded/tabIndex to .set(), and the removed KbqNavbarRectangleElement.horizontal/vertical booleans to isHorizontal()/isVertical() and orientation, and renames kbqTooltip on navbar items and brands to tooltipText in templates. Warns - without auto-fixing - on the removed KbqNavbarItem.disabled/KbqNavbarBrand.disabled tooltip-suppression getters, on the tooltip members no longer inherited now that item and brand compose a KbqTooltipTrigger instead of extending one, on the removed hovered Subjects, KbqVerticalNavbar.animationDone and KbqNavbarContainerPositionType, and on stylesheets matching the disabled content attribute that a navbar item no longer renders. Notes the changes no call site can point at: Ctrl+/ scoped to a single navbar, role=navigation/button/separator plus aria-label and aria-disabled, and the navbar leaving the CDK overlay z-index layer for its own tokens.",
92
+ "factory": "./migrations/navbar-signals-and-aria/index"
93
+ },
94
+ "locale-configuration-providers": {
95
+ "version": "21.0.0-0",
96
+ "description": "Migrates consumers of the components whose locale resolution was inverted — kbq-vertical-navbar, kbq-notification-center, kbq-app-switcher, kbq-search-expandable, the datepicker input, kbq-filter-bar, the file upload components and the kbqDataSize pipe. A value provided for KBQ_<X>_CONFIGURATION used to beat KBQ_LOCALE_SERVICE outright; the token now supplies the defaults only, the active locale wins, and consumer overrides are merged on top from a separate multi token, so such a provider silently stops taking effect. Rewrites `{ provide: KBQ_<X>_CONFIGURATION, useValue: <expr> }` entries of a provider array to `kbq<X>LocaleConfigurationProvider(<expr>)`, adding the helper to the module's existing import clause and dropping the token from it once nothing else refers to it. KBQ_FILE_UPLOAD_CONFIGURATION is reported rather than rewritten, because the section it moved to is keyed by `single` and `multiple` and only the author knows which arm a flat value belonged to. Warns — without rewriting — on the same provider written with useFactory/useClass/useExisting (the helper takes a value), on a provider object that is not an array element (replacing it would change what the name it is bound to means), on every token reference left after the rewrite pass, and on reads of the removed externalConfiguration, externalConfig and configuration members and assignments to the now read-only configuration getter, and on KBQ_INPUT_NUMBER_DEFAULT_CONFIGURATION, deprecated for removal in 22.0.0 and not renamed because it is only the `number` slice of KBQ_INPUT_DEFAULT_LOCALE_CONFIGURATION. Also reports that every localized component now accepts its strings as a `[localeOverrides]` template binding.",
97
+ "factory": "./migrations/locale-configuration-providers/index"
98
+ },
99
+ "list-tree-multiple-input": {
100
+ "version": "21.0.0-0",
101
+ "description": "Migrates consumers of the reworked `multiple` input of kbq-list-selection and kbq-tree-selection. The attribute used to be read once in the constructor, where every value other than \"checkbox\" and \"keyboard\" fell through to multiple selection with checkboxes — so multiple=\"false\" meant multiple. It is now a real input with a closed set of values, and an unrecognized one means single selection. Deletes multiple=\"false\" and multiple=\"single\" (single selection is what an absent attribute already means, and \"single\" is no longer an accepted spelling), which is the one rewrite that changes behaviour and is reported as such, and rewrites every other unrecognized value to multiple=\"checkbox\", which preserves it. Both external .html and inline templates are covered; a dynamic [multiple] binding is skipped with a warning. Warns — without auto-fixing — on assignments to multipleMode, which is now an accessor that rebuilds the SelectionModel and throws inside a kbq-tree-select, and on selectionModel.changed subscriptions, which a mode change strands on the discarded model instance.",
102
+ "factory": "./migrations/list-tree-multiple-input/index"
103
+ },
104
+ "angular-animations-removal": {
105
+ "version": "21.0.0-0",
106
+ "description": "Reports the uses of the animation triggers @koobiq/components exported (fadeAnimation, kbqSelectAnimations, kbqDropdownAnimations with fadeInItems/transformDropdown, kbqTabsAnimations, kbqPopoverAnimations, kbqDatepickerAnimations, KbqNotificationCenterAnimations, kbqAppSwitcherAnimations, KbqSidepanelAnimationState), of MODAL_ANIMATE_DURATION and of the members that carried an AnimationEvent (KbqPopUp.animationStart/animationDone, the animation members of KbqDropdown, the animation callbacks and state of KbqSidebar, KbqTabBody, KbqToastComponent and the sidepanel and actions panel containers, KbqToastService.animation, KbqContentPanelContainer.contentAnimationState), and the providers of @angular/animations the components no longer need, with KBQ_ANIMATIONS_CONFIG in place of NoopAnimationsModule/provideNoopAnimations(). A pattern that does not name Koobiq itself is reported only in a file that also names the component it is about; the providers are reported wherever they appear. Warn-only: what replaces a member depends on what the code did with the event.",
107
+ "factory": "./migrations/angular-animations-removal/index"
108
+ },
109
+ "color-signals": {
110
+ "version": "21.0.0-0",
111
+ "description": "Migrates the signal-based color of KbqColorDirective. On every component built on it (button, button group, split button, checkbox, pseudo checkbox, toggle, radio, icon, form field, hint, error, reactive password hint, cleaner, progress bar and spinner, tag), a read of color becomes a call and a write becomes .set(), in code and through template references. Warns on subclasses, which can no longer override the color accessor, and on the removed CanColor.",
112
+ "factory": "./migrations/color-signals/index"
113
+ },
114
+ "core-mixins-removal": {
115
+ "version": "21.0.0-0",
116
+ "description": "Reports the uses of mixinDisabled, CanDisable, CanDisableCtor, mixinTabIndex, HasTabIndex and HasTabIndexCtor, removed from @koobiq/components/core: they were deprecated, unused inside the library, and logged a dev-mode warning on every instance. Warn-only: a class built on them declares the members itself.",
117
+ "factory": "./migrations/core-mixins-removal/index"
118
+ },
119
+ "option-signals": {
120
+ "version": "21.0.0-0",
121
+ "description": "Migrates the signal inputs of KbqOption, KbqOptgroup, KbqOptionActionComponent and KbqTimezoneOption. The option state consumers read through events and models (value, viewValue, disabled, showCheckbox, timezone) stays a property read, so only programmatic writes are reported. A read of disabled on KbqOptgroup and KbqOptionActionComponent becomes a call. Also reports KbqOption.stateChanges, which no longer emits for disabled, the now optional textElement and the changed KbqOptionBase.",
122
+ "factory": "./migrations/option-signals/index"
123
+ },
124
+ "input-signals": {
125
+ "version": "21.0.0-0",
126
+ "description": "Reports programmatic writes to KbqNumberInput.value, KbqNumberInput.disabled and KbqInput.type, which are signal inputs read through a getter now: a read is unchanged, a write no longer compiles. Warn-only: the write belongs in a template binding or a form control.",
127
+ "factory": "./migrations/input-signals/index"
128
+ },
129
+ "list-signals": {
130
+ "version": "21.0.0-0",
131
+ "description": "Reports programmatic writes to the signal inputs of KbqListSelection (autoSelect, noUnselectLast, multiple, tabIndex, selectAllHandler, disabled, draggable) and KbqListOption (value, disabled, draggable, showCheckbox): a read is unchanged, a write no longer compiles. KbqListOption.selected and KbqListSelection.multipleMode stay writable. Warn-only.",
132
+ "factory": "./migrations/list-signals/index"
133
+ },
134
+ "datepicker-signals": {
135
+ "version": "21.0.0-0",
136
+ "description": "Reports subclasses of KbqDatepicker, KbqDatepickerInput, KbqDatepickerToggleIconComponent, KbqCalendar, KbqCalendarHeader and KbqMonthView, and direct calls of their ngOnChanges: their decorator inputs are signal inputs named <member>Input now, handed to the unchanged member from ngOnChanges, so a subclass has to call super.ngOnChanges and override <member>Input instead of redeclaring an @Input, and a hand-made SimpleChanges is keyed by the <member>Input names. Reads and writes of the members are unchanged. Warn-only.",
137
+ "factory": "./migrations/datepicker-signals/index"
138
+ },
139
+ "query-list-signals": {
140
+ "version": "21.0.0-0",
141
+ "description": "Reports subclasses that redeclare, and code that writes, the query members of KbqSelect, KbqTreeSelect, KbqAutocomplete, KbqListSelection, the navbars, KbqRadioGroup, KbqTagList, KbqTag, KbqDropdownItem, KbqTreeSelection and KbqAppSwitcherComponent: they are getters over signal queries now that keep their types, a QueryList whose changes emit as before or an ElementRef, so a read is unchanged while a redeclaration as a field or a write no longer compiles. Also reports a KbqCodeBlock subclass reading tabLinkTemplate, a protected signal now. Warn-only.",
142
+ "factory": "./migrations/query-list-signals/index"
143
+ },
144
+ "v21-upgrade": {
145
+ "version": "21.0.0-0",
146
+ "description": "Removes the uses of the APIs deprecated before 21.0.0 and removed in it. Rewrites the renamed inputs and aliases: KbqCodeBlock canLoad/codeFiles, KbqIconButton small and its kbq-icon-button_small class, the unprefixed KbqPopoverTrigger inputs, kbq-dl minWidth, KbqFilterBarRefresher, KbqThemeSelector/KbqThemeNames.Default, KbqDefaultThemes and KbqTheme, ThemePalette.Error/Warning/Success (to KbqComponentColors), DropdownPositionX/Y, KbqSelectPanelWidth/KbqTreeSelectPanelWidth (to KbqPanelWidth from core), the TransitionCheckState import from the checkbox (to core), the mcLine and mcListIcon aliases (to kbq-line and kbq-list-icon, stylesheet selectors included), the toast stack margin properties -margin-top/-right (to -vertical/-horizontal), the prebuilt light-theme.css/dark-theme.css (to theme.css, angular.json included) and the md-* typography classes (to kbq-md-*), and the (onSelectAll)/(onCopy) listeners of kbq-tree-selection and (onSelectionChange) of kbq-tree-option, deprecated for removal in 22.0.0 (to selectAllChange/copyChange/selectionChange); drops kbqPipeMinWidth, the longTitle of kbq-navbar-brand and the arguments of koobiq-theme(), koobiq-typography() and kbq-core-theme(). Reports the rest with the replacement to use: a kbq-code-block that binds an alias next to its replacement, or canDownload/files twice as the 20.0.0 migration left such a pair, KbqCodeBlock.scrollableCodeContent, the legacy ThemeService, the old password hint engine (KbqPasswordHint, PasswordRules, regExpPasswordValidator, hasPasswordStrengthError, KbqInputPassword.checkRules), the unused members of KbqFormField, the ControlValueAccessor members of KbqCheckbox and KbqToggleComponent with KBQ_CHECKBOX_CONTROL_VALUE_ACCESSOR, the validation members of the tag input, KbqDropdown triggerWidth, KbqSelect/KbqTreeSelect offsetY, AUTOCOMPLETE_PANEL_HEIGHT, KbqFilterBar.changes, the navbar title measurement, a renamed kbq-dl minWidth whose value is not a number literal, which verticalBreakpoint reads as NaN, the ellipsis center resizeStream, getOptionScrollPosition, getKbqPopoverInvalidPositionError, KbqTreeOptionChange.isUserInput, those deprecated tree outputs read in code and the deprecated KbqTreeNode.mostRecentTreeNode, KbqSelect/KbqTreeSelect clearValue(), the kbq-dropdown__group-header_small class, KbqPipe.required, KbqStepper.connectTo(), KbqToastContainerComponent.dispatchScrollEvent, the kbq-accordion-trigger__action class, the kbq-contrast()/kbq-palette()/kbq-color() and kbq-typography-config() Sass functions and core/styles/tokens, the other uses of ThemePalette and a re-export of it, which is left as is, the undocumented core exports, members and Sass modules nothing in the library used, KbqPopUp.markForCheck()/warning/closeOnInteraction in a subclass of a pop-up or its trigger, elementRef re-declared as a field in a subclass of a pop-up, where KbqPopUp.elementRef is a protected getter now, KbqFormElement.isRow, KbqToggleComponent.currentCheckState read as a value in a subclass (a signal now), the kbq-2-line/kbq-3-line/kbq-multi-line classes of a list item (removed in 21.0.0 without a deprecation), KbqLine with KbqListItem.lines and KbqSelectSearch.hasPlaceholder(), the component exports, members and template context fields nothing in the library used (among them the input-number helpers, KbqDatepickerIntl, KbqDropdown.onPanelReached(), and the protected members read in a subclass), the classes of the removed validate directive and kbq-no-select, and, deprecated for removal in 22.0.0, the kbq-light-theme()/kbq-dark-theme() functions, the kbq-scrollbar class with kbq-scrollbar-theme() and its --kbq-scrollbar-* variables the new scrollbar does not share, the unprefixed and ImpurePipe date pipes, the mcHighlight pipe, isDigit, isBoolean, KbqMeasureScrollbarService, FocusKeyManager.getFocusOrigin(), dateInput of the datepicker locale configuration, KbqToggleComponent.onLabelTextChange() and transparent/card of kbq-loader-overlay. Also reports the uses of the state 21.0.0 turned into signals: the flags, unreadItemsCounter, groupedItems and changes of the notification center, hovered and focused of the toast, hovered of the pop-ups and their triggers, filteredOptions and the date pipe flags of the filter bar, KbqSelect.hiddenItems and KbqSearchExpandable.value read as a subject, an observable or a field, and the removed hooks of KbqPipeSelectComponent and KbqDatepickerToggleIconComponent called through super.",
147
+ "factory": "./migrations/v21-upgrade/index"
148
+ },
149
+ "signal-inputs-subclasses": {
150
+ "version": "21.0.0-0",
151
+ "description": "Reports subclasses of KbqCheckbox, KbqToggleComponent, KbqRadioGroup, KbqRadioButton, KbqButtonToggleGroup, KbqButtonToggle, KbqButton, KbqButtonGroupRoot, KbqSplitButton, KbqIcon, KbqIconButton, KbqIconItem and KbqSearchExpandable, of the pop-up triggers (tooltip, popover, popover confirm, app switcher, notification center, password toggle, ellipsis center), and of the tags, file uploads, accordion item, navbar item, notification item and sidebar: their decorator inputs are signal inputs named <member>Input now, handed to the unchanged member from ngOnChanges, so a subclass has to call super.ngOnChanges and override <member>Input instead of redeclaring an @Input. Reads and writes of the members are unchanged. Also reports a pop-up panel that re-declares elementRef with @ViewChild: KbqPopUp.elementRef is a protected getter now. Warn-only.",
152
+ "factory": "./migrations/signal-inputs-subclasses/index"
153
+ },
154
+ "zoneless-change-detection": {
155
+ "version": "21.0.0-0",
156
+ "description": "Reports the uses of MockNgZone and its simulateZoneExit(), removed from @koobiq/components/core: the library no longer depends on zone.js and nothing in it waits for NgZone.onStable, so a spec renders with fixture.detectChanges() or waits with fixture.whenStable() instead. Warn-only: which of the two depends on what the spec waited for.",
157
+ "factory": "./migrations/zoneless-change-detection/index"
158
+ },
159
+ "title-encapsulation": {
160
+ "version": "21.0.0-0",
161
+ "description": "Reports the members of KbqTitleDirective that stopped being public in the title review — the removed resizeStream Subject (the directive now injects the CDK SharedResizeObserver and re-measures container resizes on its own, so a manual push has no counterpart), the now-private hasOnlyText, the removed ngOnDestroy declaration that a subclass calling super.ngOnDestroy() depended on, and the child/parent/isHorizontalOverflown/isVerticalOverflown/handleElementEnter/hideTooltip measurement members that became protected. Warn-only: each member is gone or hidden outright, so there is no expression to rewrite a call site to.",
162
+ "factory": "./migrations/title-encapsulation/index"
163
+ },
164
+ "file-upload-deprecated-outputs": {
165
+ "version": "21.0.0-0",
166
+ "description": "Renames the deprecated KbqMultipleFileUploadComponent.fileQueueChanged / KbqSingleFileUploadComponent.fileQueueChange outputs to filesChange / fileChange in templates (external .html and inline) and in programmatic TypeScript access, e.g. comp.fileQueueChanged.subscribe(...) becomes comp.filesChange.subscribe(...). Both outputs fired at the same call sites with the same payload as their replacement, so this is a pure rename with no behaviour change.",
167
+ "factory": "./migrations/file-upload-deprecated-outputs/index"
168
+ },
169
+ "split-button-optional-disabled": {
170
+ "version": "21.0.0-0",
171
+ "description": "Reports the KbqSplitButton members whose type changed in the split-button review. disabled reports boolean | undefined instead of boolean: the backing field has no initializer, so a control with no [disabled] binding always returned undefined behind a non-nullable type, and the call sites that assigned it to a boolean or compared it against false were quietly wrong. The protected buttons content query moved from QueryList<KbqButton> to a signal query, so a subclass reading buttons.changes or buttons.length has to read buttons() instead. Warn-only: narrowing boolean | undefined back to boolean is a decision the call site owns. Notes the silent part too — an empty <kbq-split-button> no longer throws outside dev mode.",
172
+ "factory": "./migrations/split-button-optional-disabled/index"
173
+ },
174
+ "popover-leave-delay": {
175
+ "version": "21.0.0-0",
176
+ "description": "Reports the popover call sites whose meaning changed in the popover review. A dead this.leaveDelay ?? 500 — the base initialises the field to 0, and 0 ?? 500 is 0 — made hover mode close the panel before the pointer could cross the gap to it. The delay is derived from the trigger now, and kbqLeaveDelay is a write-only input that records having been bound, so a programmatic leaveDelay assignment no longer sticks: the next write to trigger overwrites it. Also reports the now-readonly onConfirm and placementChange emitting KbqPopUpPlacementValues instead of string. Warn-only. Notes the parts with no call site: the confirm popover takes its defaults from the locale instead of hardcoded Russian, the untorn-down global ScrollDispatcher subscription is bounded, and the trigger can be imported standalone.",
177
+ "factory": "./migrations/popover-leave-delay/index"
178
+ },
179
+ "tooltip-pointer-events-and-types": {
180
+ "version": "21.0.0-0",
181
+ "description": "Reports the tooltip review changes a consumer has to act on. The headline is silent: ignoreTooltipPointerEvents defaults to false instead of true, so every pane is hoverable (WCAG 1.4.13) and also captures clicks meant for whatever it floats over — markup that never mentioned the input compiles unchanged and behaves differently, so the migration reports the absence of the input rather than its presence. Also reports the removed KbqPopUpTrigger.scheduler, the delay argument getMouseLeaveListener() no longer takes, placementChange emitting KbqPopUpPlacementValues instead of string, the any that left content/header/context/modifier, and KBQ_TOOLTIP_OPEN_TIME / KBQ_TOOLTIP_OPEN_TIME_PROVIDER, deprecated no-ops removed in 22.0.0 (KBQ_TOOLTIP_INSTANT_SHOW_WINDOW and KbqTooltipDelayTracker replace them). Warn-only: the markup whose behaviour changed is the markup that says nothing about the input, and a narrowed type is fixed by giving the call site the right type.",
182
+ "factory": "./migrations/tooltip-pointer-events-and-types/index"
183
+ },
184
+ "accordion-state-saving-default": {
185
+ "version": "21.0.0-0",
186
+ "description": "Reports the consequences of KbqAccordion.useStateSaving defaulting to true. An accordion nobody configured now remembers which sections the user left open, so the migration reports the absence of the input rather than its presence: defaultValue applies to the first visit only, the storage key is derived from where the accordion sits in the document when no stateSavingKey is given, and an item with no value persists its position instead of the id it used to report. Warn-only: the markup whose behaviour changed is exactly the markup that says nothing about the input, and rewriting it to opt out would withhold the feature the release is shipping. Notes the storage format too — entries move under a kbq.state. prefix and carry a timestamp so a key stranded by a markup change is collected once it outlives KBQ_STATE_SAVING_TTL, while a 20.2.0 entry under the bare key is still read but never rewritten or removed. Also reports the inputs moving onto the KbqStateSaving host directive: the markup is unchanged, but useStateSaving and stateSavingKey are no longer members of KbqAccordion, so reading them off the component no longer compiles.",
187
+ "factory": "./migrations/accordion-state-saving-default/index"
188
+ },
189
+ "tree-state-saving-default": {
190
+ "version": "21.0.0-0",
191
+ "description": "Reports the consequences of the tree persisting its expanded nodes, with useStateSaving defaulting to true. A tree nobody configured now remembers which branches the user left open, so the migration reports the absence of the input rather than its presence. It also reports the tree control that decides how a node is identified: expansion is persisted by the value FlatTreeControl.getValue returns, which must be a string that is stable across reloads and unique within the tree, because a node object is re-created whenever the data is replaced. Expansion the application performs itself — expandAll, collapseAll, direct writes to expansionModel — is not persisted until saveState is called, and a tree on a NestedTreeControl persists nothing at all because that control has no getValue. Selection is never persisted; it stays with the form control the tree is bound to. Warn-only: the markup whose behaviour changed is exactly the markup that says nothing about the input, and rewriting it to opt out would withhold the feature the release is shipping.",
192
+ "factory": "./migrations/tree-state-saving-default/index"
193
+ },
194
+ "state-saving-default": {
195
+ "version": "21.0.0-0",
196
+ "description": "Reports the consequences of KbqTabGroup, KbqSidebar and KbqContentPanelContainer persisting the state a user changes, with useStateSaving defaulting to true on all three. A tab group remembers the selected tab (by tabId and by position), a sidebar remembers whether it was open and the width it was last closed at, and a content panel remembers whether it was open and the width it was dragged to. Each of them keeps out of the store while the application drives that state — a bound selectedIndex or activeTab on the group, a bound opened on the sidebar and on the panel — so the migration reports the absence of those bindings rather than their presence. It also reports tabs left without a tabId, where the selection falls back to a position that survives a reload but not a reordering, and reads of KbqContentPanelContainer.opened, which is openedInput now and reads undefined while nothing binds it. kbq-tab-nav-bar deliberately never persists: the router owns which link is active there. Warn-only: the markup whose behaviour changed is exactly the markup that says nothing about the input, and rewriting it to opt out would withhold the feature the release is shipping.",
197
+ "factory": "./migrations/state-saving-default/index"
198
+ },
199
+ "filter-bar-state-saving-default": {
200
+ "version": "21.0.0-0",
201
+ "description": "Reports the consequences of KbqFilterBar remembering which filter is selected and the edits made to it, with useStateSaving defaulting to true. A bar nobody configured now restores the filter the user left, so the migration reports the absence of the input rather than its presence. Unlike the components that shipped before it, the bar restores over the value a [filter] binding supplied at initialization: filter is a model(), so the restore writes through it, filterChange fires, and the application loads data for the restored filter exactly as it would for one the user had picked — only a later change wins. A filter is identified by its name, the only identity KbqFilter has, so renaming a saved filter loses what was stored for it and a name no longer in the filters list restores nothing; a list loaded from a server is waited for. What is stored is the name, the changed flag, and one entry per pipe — its id (or name) and its value — because a pipe built from a template keeps that template compareWith and date bounds, which do not survive being written to storage, so the rest of each pipe is rebuilt from filters and pipeTemplates while restoring. saveFilterState()/restoreFilterState() are unchanged and unrelated: they snapshot the filter in memory within one session. Warn-only: the markup whose behaviour changed is exactly the markup that says nothing about the input, and rewriting it to opt out would withhold the feature the release is shipping.",
202
+ "factory": "./migrations/filter-bar-state-saving-default/index"
203
+ },
204
+ "toast-stack-and-defaults": {
205
+ "version": "21.0.0-0",
206
+ "description": "Reports the breaking parts of the toast review. KbqToastComponent resolves its stack through the new KBQ_TOAST_STACK token instead of KbqToastService, so `service` is gone together with `elementRef`, `ttl`, `delay`, `isTemplateRef()`, `themePalette` and `toastStyle`, and everything the template renders became protected; KbqToastService.animation was removed with @angular/animations, so `.getValue()` / `.value` no longer compile; showTemplate() and `templates` return EmbeddedViewRef<KbqToastTemplateContext>. Nothing is rewritten — a subclass has to be rewired by hand. Also notes the changes no call site can point at: the data passed to show() is no longer written to (the `style` and `icon` defaults are resolved inside the toast, so anything rendering the same object needs its own), hover and focus pause the shared countdown while a showTemplate() toast is not paused, every toast is a role=\"alert\"/\"status\" live region inside a labelled role=\"region\" stack named by the new `toastRegion` a11y locale key, and focus is handed on only for a keyboard dismissal.",
207
+ "factory": "./migrations/toast-stack-and-defaults/index"
208
+ },
209
+ "select-signal-inputs": {
210
+ "version": "21.0.0-0",
211
+ "description": "Reports the KbqSelect members that became signal inputs or stopped being public in the select review, also in a file that names only KbqTimezoneSelect, which extends KbqSelect: hiddenItemsText (accessor pair to InputSignal<string | undefined>, so a write has to become the binding and a read a call), hiddenItemsTextFormatter (an overridable method to an input holding the function), the now-protected overlayDir and triggerRect, the Event instead of any on onRemoveMatcherItem, and the removed selectEvents constant together with the core/select/events module it lived in. Every input kept its alias, so no template needs migrating. Warn-only. Notes the parts with no call site: multiple mode orders the selection by the panel instead of by a default comparator that subtracted the values and never produced that order, the untorn-down locale subscription that retained every destroyed select is gone, and the select carries combobox/listbox/option ARIA. Also reports reads of the now-signal hasBackdrop, compareWith and searchMinOptionsThreshold, and assignments to them and to multiple, tabIndex and selectAllHandler, which are signal inputs now.",
212
+ "factory": "./migrations/select-signal-inputs/index"
213
+ },
214
+ "actions-panel-overlay-container": {
215
+ "version": "21.0.0-0",
216
+ "description": "Reports the call sites affected by KbqActionsPanelConfig.overlayContainer becoming the element the panel is rendered into rather than an anchor for its positioning. Warns — without auto-fixing — that such a panel is now clipped by an `overflow: hidden` element and scrolls away inside one that scrolls its own content, that the element gains a child node and a `position: relative` promotion while the panel is open, and that `maxWidth` is no longer ignored when `overlayContainer` is set. Also notes that a panel opened with the option bypasses a globally provided OverlayContainer.",
217
+ "factory": "./migrations/actions-panel-overlay-container/index"
218
+ },
219
+ "tree-select-signals": {
220
+ "version": "21.0.0-0",
221
+ "description": "Reports the KbqTreeSelect members that became signal-backed, protected or disappeared in the tree-select review: the removed valueChange output (declared as the other half of a two-way binding on a value input that does not exist, and never emitted, so a (valueChange) binding never fired), the removed getPanelClasses/getPanelTheme/isRtl/transformOrigin template helpers, hiddenItemsText and hiddenItemsTextFormatter as signal inputs, hiddenItems as a WritableSignal and colorForState as a computed, and the options/tags/overlayDir/triggerRect/panelDoneAnimatingStream/changeDetectorRef plumbing that became protected. Warn-only. Notes the parts with no call site: KbqTreeSelectChange is generic with a typed value, the embedded tree is initialised through KbqTreeSelection.initializeForEmbedding() instead of a second manual ngAfterContentInit() that left duplicate subscriptions on the search-filtering hot path, the dead { provide: KbqTree, useExisting: KbqTreeSelect } provider is gone, and the component renders a host id so the form field label no longer dangles. Also reports reads of the now-signal hasBackdrop and searchMinOptionsThreshold, and assignments to them and to multiple, autoSelect, tabIndex and selectAllHandler, which are signal inputs now. Reports a sortComparator too: its third argument is every data node of the tree in panel order instead of the rendered options, and without a comparator a multiple value is ordered by the panel.",
222
+ "factory": "./migrations/tree-select-signals/index"
223
+ },
224
+ "tree-signals": {
225
+ "version": "21.0.0-0",
226
+ "description": "Reports the members of @koobiq/components/tree that became read-only in the tree review: KbqTreeNodeToggle.disabled (accessor pair → getter over a computed; the input is declared as disabledInput and still aliased `disabled`, so templates are unaffected), KbqTreeBase.nodeDefs (QueryList → Signal<readonly KbqTreeNodeDef<T>[]>, so an external subclass reading nodeDefs.length silently gets 0 — a Signal is a function — and nodeDefs.changes.subscribe throws), KbqTreeNodePadding.indent (accessor pair → InputSignal) and indentUnits (writable field → getter), KbqTreeNodeToggleBaseDirective.recursive (accessor pair → InputSignalWithTransform) and KbqTreeOption.onFocus/onBlur (Subject → Observable via asObservable, so .next is gone at runtime as well as in the types). Assigning any of them throws a TypeError in an ES module rather than only failing to compile. Also reports programmatic writes to the members that became signal inputs read through a getter: treeControl and dataSource of KbqTree and KbqTreeSelection, disabled, tabIndex and selectAllHandler of KbqTreeSelection, and disabled and showCheckbox of KbqTreeOption; KbqTreeSelection.multiple never had a setter and multipleMode stays writable, so neither is reported. Each pattern is checked only in a file that also names the member's owner, and a project that renders a tree gets a summary of every member. Warn-only: what replaces a write is a template binding or a different member, and neither can be derived from the assignment.",
227
+ "factory": "./migrations/tree-signals/index"
228
+ },
229
+ "read-state-dwell-handlers": {
230
+ "version": "21.0.0-0",
231
+ "description": "Renames the KbqReadStateDirective dwell handlers, which no longer measure the pointer alone: mouseenterHandler() → startDwell() and mouseleaveHandler() → endDwell(), on receivers typed as the directive or injected with inject(KbqReadStateDirective, …). Both new names keep working with no argument, so a renamed call means exactly what it did. Reports — without rewriting — reads of `timestamp`, now a read-only getter returning `number | undefined` (the start of the earliest dwell still in progress), and the behaviour change no call site can point at: the pointer and the keyboard (focusin/focusout) channels are tracked independently and the dwell ends only once both have left, so a host focused for longer than `timeToRead` is marked read without a pointer, and a pointer leaving no longer cancels a dwell that focus is still holding open.",
232
+ "factory": "./migrations/read-state-dwell-handlers/index"
233
+ },
234
+ "notification-center-signals": {
235
+ "version": "21.0.0-0",
236
+ "description": "Reports the notification-center API changes a consumer's code can point at, without rewriting any of them: KBQ_NOTIFICATION_CENTER_SCROLL_STRATEGY_FACTORY_PROVIDER is gone from the entry point (the token and kbqNotificationCenterScrollStrategyFactory are still exported, so the provider has to be written out by hand), onReload/onNextPage/onDelete are Subjects so `.emit()` became `.next()`, backdropClass/panelClass/offset/scrolledToBottomOffset on KbqNotificationCenterTrigger are input() signals so a read is a call and a write has to become a template binding, and KbqNotificationCenterService.changes is an Observable<void> whose subscribers always receive undefined.",
237
+ "factory": "./migrations/notification-center-signals/index"
238
+ },
239
+ "autocomplete-signals": {
240
+ "version": "21.0.0-0",
241
+ "description": "Migrates KbqAutocomplete and KbqAutocompleteTrigger consumers to the finished signal-based API. Rewrites programmatic reads of displayWith, autoActiveFirstOption, openOnFocus, showPanel and isOpen on receivers typed KbqAutocomplete, and of autocompleteDisabled on receivers typed KbqAutocompleteTrigger, including reads via template reference variables on <kbq-autocomplete> (external and inline templates). Warns on classList, which was a write-only accumulator behind the class input and is an internal computed now, on writes to isOpen, which is a read-only computed over the new attached signal, and on view/content queries that return the instance. Rewrites a showPanel write to .set(), and a displayWith invocation to displayWith()(value), since displayWith is the one member whose value is itself a function. Reports the booleanAttribute transforms, of which only openOnFocus actually changes behaviour, the fact that binding autoActiveFirstOption overrides KBQ_AUTOCOMPLETE_DEFAULT_OPTIONS as it did before, and the panel id shape, which the CDK _IdGenerator leaves unchanged under the default APP_ID.",
242
+ "factory": "./migrations/autocomplete-signals/index"
243
+ },
244
+ "badge-signals": {
245
+ "version": "21.0.0-0",
246
+ "description": "Migrates KbqBadge consumers to its finished signal-based API. Rewrites value-safe programmatic reads of the now-signal members (compact, outline) to calls on receivers typed KbqBadge, including reads via template reference variables on <kbq-badge> (external and inline templates). Warns - without auto-fixing - on badgeColor (now a read-only InputSignal that reports the raw color instead of the kbq-badge_<color> class), on iconItem which became protected, and on the KbqBadgeCssStyler members that became private (icons, nativeElement, updateClassModifierForIcons) or were removed (isIconButton). Reports the compact/outline booleanAttribute behavior change, which has no call site to point at.",
247
+ "factory": "./migrations/badge-signals/index"
248
+ },
249
+ "markdown-signals": {
250
+ "version": "21.0.0-0",
251
+ "description": "Migrates KbqMarkdown consumers to its finished signal-based API. markdownText was the last accessor input in the package - its setter did the rendering, which is why the automated signal migration skipped it. Rewrites programmatic reads of markdownText to calls on receivers typed KbqMarkdown and on the inject()/viewChild() forms, including reads via template reference variables on <kbq-markdown> (external and inline templates). Warns on a subclass write to resultHtml, which was already protected and is a read-only computed now, and on signal queries, which hold the instance behind a call of their own. Reports the two behavior fixes the review made: clearing markdownText now clears the output instead of leaving the last render on screen, and a component that both projects content and binds the input falls back to the projected content once the input goes empty.",
252
+ "factory": "./migrations/markdown-signals/index"
253
+ },
254
+ "progress-spinner-signals": {
255
+ "version": "21.0.0-0",
256
+ "description": "Migrates KbqProgressSpinner consumers to its finished signal-based API. size was the last accessor input on the spinner - its setter also computed the SVG circle radius, which is why the automated signal migration skipped it. Rewrites programmatic reads of size, id, value and mode to calls on receivers typed KbqProgressSpinner and on the inject()/viewChild() forms, including reads via template reference variables on <kbq-progress-spinner> (external and inline templates). id, value and mode became signal inputs in 20.0.0 and no migration has covered them until now. Warns on the derived members that became protected (svgCircleRadius, percentage, dashOffsetPercent) and on view/content queries that return the instance. Reports the two changes with no call site to point at: size is typed ProgressSpinnerSize instead of an arbitrary string, and value is a numberAttribute input.",
257
+ "factory": "./migrations/progress-spinner-signals/index"
258
+ },
259
+ "dropdown-signals": {
260
+ "version": "21.0.0-0",
261
+ "description": "Migrates KbqDropdown, KbqDropdownTrigger and KbqDropdownItem consumers to the signal-based API the component review landed. The dropdown was the only component in the review campaign whose decorators were left in place; twenty of its twenty-one input/output/query members are signals now. Rewrites programmatic reads to calls on receivers typed by one of the three classes and on the inject()/viewChild() forms, including reads via template reference variables on <kbq-dropdown>, <kbq-dropdown-item> and the kbqDropdownTrigger exportAs (external and inline templates). Turns a write to one of the seven model() members (xPosition, yPosition, overlapTriggerX, overlapTriggerY, offsetX, openByArrowDown, restoreFocus) into .set(...), and leaves a write to a read-only input to become a compile error. Warns on QueryList usage of items, which is a Signal of a plain array now, on operator chains over closed, which is an output(), on classList becoming protected, and on a custom KbqDropdownPanel, whose every member changed shape.",
262
+ "factory": "./migrations/dropdown-signals/index"
263
+ },
264
+ "loader-overlay-signals": {
265
+ "version": "21.0.0-0",
266
+ "description": "Migrates KbqLoaderOverlay consumers to its finished signal-based API. text and caption were the inputs the automated signal migration skipped, because they are read inside @if blocks. Rewrites programmatic reads of both to calls on receivers typed KbqLoaderOverlay and on the inject()/viewChild() forms, including reads via template reference variables on <kbq-loader-overlay> (external and inline templates). Warns on the template helpers that became protected (isExternalIndicator, isExternalText, isExternalCaption, isEmpty, spinnerSize), on the content queries that became private (externalIndicator, externalText, externalCaption), on programmatic writes, which no longer compile, and on reads through a signal query, which need two calls. Reports every file carrying a valueless transparent attribute, the one change with no compile error behind it. Reports that text and caption now report string | undefined, and that transparent is a booleanAttribute input, so a valueless attribute means true where it used to render the filled background.",
267
+ "factory": "./migrations/loader-overlay-signals/index"
268
+ },
269
+ "checkbox-signals": {
270
+ "version": "21.0.0-0",
271
+ "description": "Migrates KbqCheckbox consumers to its finished signal-based API. Rewrites programmatic reads of the now-signal one-way inputs (id, clickAction, big, required, value, name, labelPosition) to calls on receivers typed KbqCheckbox, including reads via template reference variables on <kbq-checkbox> (external and inline templates). Warns on programmatic writes, on the template plumbing that became protected (inputId, inputElement, getAriaChecked, onInputClick, onInteractionEvent, onLabelTextChange) whether it is read from TypeScript or through a template reference, and on reads through a signal query, which need two calls. Reports the 0-based counter the CDK _IdGenerator brings - the id shape itself is unchanged for a default APP_ID - the [id]=null fallback on the host, the booleanAttribute transforms on checked/big/indeterminate, which coerce a bound 0 or empty string to true as well, the required default, value reporting string | undefined, and an enabled checkbox no longer rendering disabled=\"false\" on its host. checked, disabled, indeterminate and tabIndex stay accessor inputs over the KbqCheckable signals and are not touched.",
272
+ "factory": "./migrations/checkbox-signals/index"
273
+ },
274
+ "link-signals": {
275
+ "version": "21.0.0-0",
276
+ "description": "Migrates KbqLink consumers to its finished signal-based API. The three inputs the automated signal migration skipped were all accessors that did more than store a value. Rewrites programmatic reads of disabled to calls on receivers typed KbqLink, resolving the receiver per scope so a shadowing binding of another type is left alone. Warns - without auto-fixing - on tabIndex, which is now a read-only InputSignal reporting what was bound instead of folding in the disabled state, on programmatic writes of every shape (=, ||=, ++), which no longer compile, on the icon and print bookkeeping that left the public surface (hasIcon, printMode and printUrl are protected, icons and nativeElement are private, and icon, destroyRef and ngAfterContentInit are gone), and on reads through a signal query, which need two calls. Reports next to every rewritten file that disabled() is the bound input while disabledSignal() is the effective state kbqTooltip writes through forDisabledComponent. Reports that [print]=\"undefined\" no longer marks the link as printable - an unbound link behaves exactly as before - and that a disabled link carries aria-disabled instead of the disabled attribute, which is not valid HTML on an anchor.",
277
+ "factory": "./migrations/link-signals/index"
278
+ },
279
+ "code-block-signals": {
280
+ "version": "21.0.0-0",
281
+ "description": "Migrates KbqCodeBlock consumers to its finished signal-based API: nothing on the component is a decorator input any more. Rewrites reads of softWrap, viewAll, canDownload, files, activeFileIndex and hideTabs to calls on receivers typed KbqCodeBlock, including reads through template reference variables on <kbq-code-block> (external and inline templates), and rewrites a plain write of any of them to .set(...) - all six are WritableSignals over a backing input, because ModelOptions carries no transform and every one of them needs booleanAttribute or numberAttribute to keep a valueless attribute working. Warns - without auto-fixing - on compound assignments and increments, which would need the receiver spelled twice, on the backing inputs, which can no longer be written, and on reads through a signal query, which need two calls. Reports that maxHeight now reports number | undefined and never NaN, that KbqCodeBlockHighlight.file is a readable required input instead of a write-only setter, that hideTabs reports what was bound while tabsHidden() is what the header does, and that an out-of-range activeFileIndex renders the first file while an empty files renders no code instead of throwing.",
282
+ "factory": "./migrations/code-block-signals/index"
283
+ },
284
+ "dl-attribute-coercion": {
285
+ "version": "21.0.0-0",
286
+ "description": "Reports the <kbq-dl> attributes whose coercion changed in the description list review. KbqDlComponent was already fully signal-based; five inputs never got a transform, so a static attribute reached them as a string. A valueless wide or vertical attribute passed the empty string, which is falsy, so it did nothing - both are coerced now and mean true. minWidth, dtMinWidth and ddMinWidth are numeric inputs reporting number | undefined. vertical keeps null as its default, the state that lets the list decide from verticalBreakpoint, so it uses a transform that preserves null rather than booleanAttribute. Warn-only: every one of these is a template change the call site owns.",
287
+ "factory": "./migrations/dl-attribute-coercion/index"
288
+ },
289
+ "dl-standalone-names": {
290
+ "version": "21.0.0-0",
291
+ "description": "Moves description list consumers to the standalone component names. Renames KbqDlComponent, KbqDtComponent and KbqDdComponent to KbqDl, KbqDt and KbqDd wherever they are imported from @koobiq/components/dl - named, aliased, type-only and namespace imports, and re-exports, which keep the name they export - and replaces KbqDlModule with KbqDl, KbqDt and KbqDd where it is an element of an array (imports, exports, a TestBed configuration), adding the imports it needs. Reports a KbqDlModule anywhere else and leaves it in place: it still works, but is no longer documented. The old class names stay deprecated aliases of the same classes until 22.0.0.",
292
+ "factory": "./migrations/dl-standalone-names/index"
293
+ },
294
+ "textarea-signals": {
295
+ "version": "21.0.0-0",
296
+ "description": "Migrates KbqTextarea consumers to its signal-based inputs. KbqTextarea implements KbqFormFieldControl, which declares value, id, placeholder, required, disabled, focused, empty and errorState as plain members, so those stay plain accessors; what moved are the inputs the textarea owns. Rewrites programmatic reads of maxRows and maxRowLimitReached to calls on receivers typed KbqTextarea. Warns - without auto-fixing - on canGrow, which is now a read-only InputSignal reporting what was bound instead of folding in the row limit, on reads of freeRowsHeight, whose value changed so that appending () would compile while changing behavior, on writes to the read-only inputs, and on view/content queries that return the instance. Reports that maxRows and freeRowsHeight report number | undefined, that freeRowsHeight no longer overwrites its own input on init, that the max-row-limit class follows the row count directly, and that generated ids come from the CDK _IdGenerator.",
297
+ "factory": "./migrations/textarea-signals/index"
298
+ },
299
+ "tags-signals": {
300
+ "version": "21.0.0-0",
301
+ "description": "Migrates KbqTag, KbqTagList and KbqTagInput consumers to their signal-based members. What stays an accessor stays for a reason the code enforces: KbqFormFieldControl and KbqTagTextControl declare value, id, placeholder, required and disabled as plain properties; the focus key manager reads KbqTag.disabled as a value; and disabled, tabindex and value on the tag and draggable, tabIndex on the tag list fold in the tag list's form control or the projected text, which a signal cannot track. Rewrites reads of addOnBlur and separators on KbqTagInput, of selected, editable, selectable and removable on KbqTag, and of removable on KbqTagList to calls - with the member sets kept per class, so KbqTagList.selected, an array that did not move, is left alone. Receivers are typed by annotation (including an aliased import) or by inject(), viewChild() and contentChild(), seen through !, parentheses and as, and resolved in their own scope; an already-called signal query and a @ViewChild field hold the instance, so their reads take a single call. Reads through template reference variables are rewritten in external and inline templates, by exportAs or by a bare ref on the component's element. Reports - without auto-fixing - every write to a member that is read-only now (compound assignments, increments, delete and destructuring included), pointing a write to KbqTag.selected at select(), deselect() and toggleSelected(), which emit selectionChange; a read straight off an uncalled signal query; and a mention it cannot resolve to one receiver. Also reports that a change of the [selected] binding still emits selectionChange, that distinct is a booleanAttribute input, and that generated ids come from the CDK _IdGenerator.",
302
+ "factory": "./migrations/tags-signals/index"
303
+ },
304
+ "timepicker-signals": {
305
+ "version": "21.0.0-0",
306
+ "description": "Migrates KbqTimepicker consumers to its signal-based inputs. KbqTimepicker implements KbqFormFieldControl, which declares value, id, placeholder, required, disabled, focused, empty and errorState as plain members, so those stay plain accessors; the four inputs the timepicker owns are signals now. Rewrites reads of format to calls on receivers typed KbqTimepicker - by annotation (including an aliased import) or by inject(), viewChild() and contentChild(), seen through !, parentheses and as, and resolved in their own scope - and through #ref=\"kbqTimepicker\" reference variables in external and inline templates; an already-called signal query and a @ViewChild field hold the instance, so their reads take a single call. Reports - without auto-fixing - reads of min and max, which need the call added and now return the bound value rather than the parsed date, so a read without the call is always truthy; every write to format, min, max and kbqValidationTooltip, compound assignments, increments, delete and destructuring included; a read straight off an uncalled signal query; and a mention it cannot resolve to one receiver. Also reports that a re-bound validation tooltip no longer stacks subscriptions, that a locale change reformats the rendered time even with a consumer-provided placeholder, and that generated ids come from the CDK _IdGenerator.",
307
+ "factory": "./migrations/timepicker-signals/index"
308
+ },
309
+ "tag-list-cleaner": {
310
+ "version": "21.0.0-0",
311
+ "description": "Removes the (click) handler from every <kbq-cleaner> projected into a <kbq-tag-list>. The reset control now removes the tags itself, through the same removed output as the remove control inside a tag, and leaves the disabled ones in place, so a handler that cleared the collection is no longer needed. A handler left in place runs in addition to the built-in clearing and cannot suppress it. The removed expression is reported for each file, because a handler may have done more than clear the tags. A handler is kept and reported instead of removed where the built-in clearing would not take its place: when no tag in the list reports removed, and when the list is removable=\"false\", which now hides the reset control outright.",
312
+ "factory": "./migrations/tag-list-cleaner/index"
313
+ },
314
+ "top-bar-container-selectors": {
315
+ "version": "21.0.0-0",
316
+ "description": "Renames the two placement classes of [kbqTopBarContainer] and the flex-basis token of its start container, after the top-bar review. kbq-top-bar-container__start / __end are modifiers of .kbq-top-bar-container written with the __ element separator; they become kbq-top-bar-container_start / _end, which is how the library spells modifiers everywhere else, including one line away in kbq-top-bar_with-shadow. --kbq-top-bar-container-start-basis fed flex: 1 0 <basis>, and with flex-shrink: 0 that basis was never a basis but the width the container could not fall below, which is why five of the seven docs examples had to invent a value for it; the container is flex: 1 1 auto now and the floor is --kbq-top-bar-container-start-min-width. Both renames are rewritten in .ts, .html, .scss and .css. Warns on .kbq-top-bar-container[placement='…'] rules, which match only the static attribute form and silently stop applying when the binding is normalised to [placement]. Notes the changes with no call site: the start container shrinks toward its floor instead of being pinned at it, kbq-top-bar dropped from the CDK overlay layer (1000) to --kbq-top-bar-z-index (990) so a dropdown, select or popover panel paints above it by design rather than by DOM order, and --kbq-top-bar-position still does nothing until --kbq-top-bar-inset-block-start is set.",
317
+ "factory": "./migrations/top-bar-container-selectors/index"
318
+ },
319
+ "inline-edit-a11y-and-types": {
320
+ "version": "21.0.0-0",
321
+ "description": "Migrates KbqInlineEdit consumers to the finished component. `mode` is a model() now — public, writable and two-way bindable via [(mode)] — so the `modeAsReadonly` alias that only exposed the hidden signal for reading was removed; reads of it are rewritten to `mode` in .ts and .html, with an index read or a destructuring reported instead. The `modeChange` output is generated by the model under the same name and type, so template bindings are unaffected, but it is no longer a class member and emits synchronously on the write — a programmatic subscription goes through toObservable(inlineEdit.mode). The rest is warn-only. The edit overlay's two `aria-hidden=\"true\" tabindex=\"0\"` sentinels are gone together with the KbqFocusRegionItem directive that marked them — an axe aria-hidden-focus failure and two dead-end tab stops — and the Tab boundary is resolved against the panel's own first and last tabbable control. role=\"button\", aria-expanded, aria-disabled and the accessible name moved off the host onto .kbq-inline-edit__view-content (and onto .kbq-inline-edit__focus-anchor while the view content is interactive), so a selector that matched the host by tabindex or :focus has to be retargeted; the focus ring still lands on the host through cdk-keyboard-focused. setValueHandler takes (value: unknown) => void and validationTooltip a TemplateRef<unknown>, and KbqA11yLocaleConfiguration gained a required `edit` key. Notes the parts with no call site: saved/canceled are public, save() marks the controls touched itself and gates on the control validity rather than on the ErrorStateMatcher verdict (so typing no longer flips a pristine required field into its error look and commit() no longer writes a never-touched invalid value through), the panel finally reads --kbq-inline-edit-panel-shadow, and the private .kbq-mask* classes were renamed to .kbq-inline-edit__menu-mask*.",
322
+ "factory": "./migrations/inline-edit-a11y-and-types/index"
323
+ },
324
+ "empty-state-error-color": {
325
+ "version": "21.0.0-0",
326
+ "description": "Reports the empty-state review's one removed member and its renamed theme tokens: KbqEmptyStateIcon.setErrorColor() is gone — it tinted the icon once from ngAfterContentInit, so the tint was irreversible, never arrived for an [errorColor] flipped after init, and was silently skipped whenever the icon was wrapped by the illustration slot instead of carrying it, and the illustration follows [errorColor] on its own now in both markup shapes — and the four theme custom properties became --kbq-empty-state-title-color, --kbq-empty-state-text-color, --kbq-empty-state-error-title-color and --kbq-empty-state-error-text-color, with the old names removed outright — nothing chains to them, so an override of one is ignored and a var() read of one resolves to nothing, in both cases silently. KbqEmptyState.size became an input() as well, so reading it is a call — emptyState.size() — and assigning to it is gone; bind [size] instead. KbqFileUploadEmptyState redeclares that input to keep defaulting to \"big\", so its rendered size does not change. Warn-only; size is too common a property name to rewrite, so only a receiver that names an empty state is reported. Notes the parts with no call site: the title carries heading typography and should be written as a real heading (<h2 kbq-empty-state-title>), an empty state inserted into an already-read page needs role=\"status\" (role=\"alert\" for the error variant) because the component adds none, and empty-state.scss loads its own token layer instead of relying on a second styleUrls entry, so anything reusing the stylesheet gets the custom properties together with the rules that read them.",
327
+ "factory": "./migrations/empty-state-error-color/index"
328
+ },
329
+ "sidepanel-non-modal-behavior": {
330
+ "version": "21.0.0-0",
331
+ "description": "Reports what the sidepanel review changed about the panel's effect on the page around it: a sidepanel opened with hasBackdrop: false no longer gets CDK's BlockScrollStrategy, which pinned the document with position: fixed and contradicted the non-modal mode it is named after (KbqSidepanelConfig gained scrollStrategy for the panels that want the page frozen); trapFocusAutoCapture defaults to true in both modalities instead of following hasBackdrop, so a non-modal panel captures focus on open and returns it to the trigger on close; the container renders role=\"dialog\", aria-modal and an aria-labelledby pointing at the kbq-sidepanel-header title, and a modal sidepanel marks the rest of the page aria-hidden; KbqSidepanelModule no longer swaps FocusTrapFactory for ConfigurableFocusTrapFactory application-wide; and the unstyled kbq-sidepanel-overlay class is no longer stamped on the overlay host. Warn-only. Notes the parts with no call site: a component-provided KbqSidepanelService closes the panels it opened when destroyed, closeAll() no longer reverses the live stack, a second close() no longer overwrites the first result, an outside click only closes the same-position stack, and KbqSidepanelService is providedIn root.",
332
+ "factory": "./migrations/sidepanel-non-modal-behavior/index"
333
+ },
334
+ "table-cell-content": {
335
+ "version": "21.0.0-0",
336
+ "description": "Reports the removal of KbqTableCellContent and the style-surface changes of the table review. The directive was declared selector: 'kbq-table td'; Angular's directive selector grammar has no combinators, so the second tag overwrote the first and the effective selector was plain td — every template importing KbqTableModule got a directive instance and a live content query on every cell it rendered, and the kbq-table element the selector named has never existed. The one rule it fed is CSS now (.kbq-table > :is(tbody, tfoot) > tr > :is(td, th):has(.kbq-button, .kbq-button-icon)), which also drops the @koobiq/components/button dependency from the table entry point. Warn-only; also reports a stylesheet keyed on kbq-table-cell_has-button. Summarises the :is(td, th) widening of row hover and the pill radii, the new --kbq-table-* token block, the logical padding and radii behind --kbq-table-cell-text-align, tfoot theming, and the measured --kbq-table-size-sticky-header-height used as scroll-margin-block-start for WCAG 2.2 SC 2.4.11.",
337
+ "factory": "./migrations/table-cell-content/index"
338
+ },
339
+ "divider-signals-and-aria": {
340
+ "version": "21.0.0-0",
341
+ "description": "Reports what the divider review changed for a consumer: vertical and paddings became signal inputs (a read is a call, a write is a template binding; both kept their names, so no template needs migrating), and the host renders role=\"separator\" plus aria-orientation=\"vertical\" when vertical, with a new decorative input that swaps to role=\"presentation\", which makes a hand-rolled role or aria-orientation on the element a duplicate. Warn-only. Reads .ts and .html: a member access is only reported when the receiver is annotated KbqDivider, so a vertical on something else is left alone.",
342
+ "factory": "./migrations/divider-signals-and-aria/index"
343
+ },
344
+ "flag-inner-html": {
345
+ "version": "21.0.0-0",
346
+ "description": "Moves [innerHTML] bindings off the <kbq-flag> host element onto the svg input added by the flag review, and reports the behavior changes with no call site. KbqFlag renders <ng-content />, so the host element is where projected nodes land and an innerHTML write from the parent targets the same element; the two only coexisted because the component's own view contributed no DOM. Rewrites [innerHTML] to [svg] inside <kbq-flag> opening tags in .ts and .html, and leaves a binding on any other element alone, including one on a wrapper projected into a flag. Reports the rest: a flag with no label is now aria-hidden so it is never announced as a nameless graphic (which also hides a name coming from the projected image's alt or an SVG <title>), an inline <svg> is cropped instead of letterboxed because object-fit is inert on an element that is not replaced, --kbq-flag-empty-background resolves to an opaque neutral instead of the translucent disabled state, and the flag tokens are declared at zero specificity so an override that used to lose to .kbq-flag on source order now wins.",
347
+ "factory": "./migrations/flag-inner-html/index"
348
+ },
349
+ "username-pipe-injection": {
350
+ "version": "21.0.0-0",
351
+ "description": "Reports the call sites that obtained KbqUsernamePipe or KbqUsernameCustomPipe through dependency injection, which stopped resolving when the username review dropped @Injectable({ providedIn: 'root' }) from both pipes: the root singleton resolved KBQ_PROFILE_MAPPING at the root injector, so the documented inject(KbqUsernamePipe) pattern silently ignored the component- or route-level mapping the token exists for and formatted a profile differently from the kbq-username next to it. Replace it with kbqInjectUsernameFormatter(), or kbqFormatUsername / kbqFormatUsernameCustom with a mapping resolved from your own injection context. Also reports the removed KbqMappingMissingError, which could never be thrown. Warn-only. Notes the parts with no call site: the shipped KBQ_PROFILE_MAPPING now maps the uppercase keys F / M / L so kbqUsernameCustom stops rendering a literal L, kbq-username renders the name of a profile that carries only some of the name fields, KbqUsernameSecondaryHint is exported by KbqUsernameModule, the secondary colour no longer depends on an adjacent primary sibling, initials are taken by code point, kbq-title is not attached in mode=\"text\", and the site hint carries a visually hidden label from the new username.siteLabel locale key.",
352
+ "factory": "./migrations/username-pipe-injection/index"
353
+ },
354
+ "clamped-text-disclosure": {
355
+ "version": "21.0.0-0",
356
+ "description": "Reports the call sites the clamped-text review breaks: aria-expanded moved off the role-less <kbq-clamped-text> and [kbqClampedList] hosts onto the [kbqClampedListTrigger] element, which now supplies role=\"button\", tabindex, aria-expanded and aria-controls itself; the trigger stopped carrying kbq-clamped-text__toggle, so a kbqClampedList trigger no longer borrows a margin that only applied when an unrelated kbq-clamped-text happened to be on the page; KbqClampedText.isCollapsed became a model() and isCollapsedChange reports user intent only, no longer firing for the component's own first measurement nor echoing a parent write; hasToggle became a read-only Signal and text/textContainer became protected. Warn-only. Notes the parts with no call site: collapsing scrolls with block and inline 'nearest' and can be turned off with [scrollOnCollapse]=\"false\", Space and Enter on the trigger call preventDefault(), rows takes a string attribute, [debounceTime] is re-read on every resize, and nothing renders unclamped before the first measurement.",
357
+ "factory": "./migrations/clamped-text-disclosure/index"
358
+ },
359
+ "radio-signals-and-aria": {
360
+ "version": "21.0.0-0",
361
+ "description": "Migrates the radio to the signal API and reports what cannot be rewritten. KbqRadioGroup.name, .labelPosition and .required are signal inputs now, and so are KbqRadioButton.id and .inputId, so a read of one becomes a call. The rewrite is scoped by receiver type on purpose: name, labelPosition and required exist on both classes, and only the group's are signals — the button's fold in the group's value and stay accessors. KbqRadioGroup.value, .selected and .disabled are unchanged, because ControlValueAccessor writes them and writeValue has to resolve the checked button before the first render. Also reports the removed isFocused input, the now-nullable radioGroup, a programmatic write to the read-only id, and the removed --kbq-radio-size-big-top / --kbq-radio-size-normal-top custom properties. Separately, name is the load-bearing contract in the component: the app-global UniqueSelectionDispatcher isolates its listeners by name alone, so a <kbq-radio-button> written without a group resolved to undefined and shared one selection group with every other unnamed radio in the application; it falls back to an id unique to itself now, and an explicitly bound [name] inside a group is honoured rather than overwritten in ngOnInit. KbqRadioGroup also became a component that renders a kbq-error put inside it under the options while the group is in the error state; a component can be neither applied through hostDirectives nor extended by a @Directive (NG0903), so both are reported.",
362
+ "factory": "./migrations/radio-signals-and-aria/index"
363
+ },
364
+ "input-number-surface": {
365
+ "version": "21.0.0-0",
366
+ "description": "Rewrites reads of the KbqNumberInput members that became input() signals — min, max, step and bigStep — to calls, scoped to a receiver the file annotates as KbqNumberInput and to template references bound through the directive's exportAs (#ref=\"kbqNumberInput\"); template bindings such as [min] are unchanged. Reports the rest. The KbqNumberInput members that disappeared with the KbqFormFieldControl surface it declared and never populated — ngControl, id, placeholder, empty, required and errorState, every one of them undefined for the lifetime of the directive because the private control field behind ngControl had no writer. The validator classes that gained a Kbq prefix (MinValidator/MaxValidator/MIN_VALIDATOR/MAX_VALIDATOR to KbqMinValidator/KbqMaxValidator/KBQ_MIN_VALIDATOR/KBQ_MAX_VALIDATOR, whose unprefixed names are the exact names @angular/forms exports). valueChange and disabledChange are RxJS Subjects rather than EventEmitters, so .emit() becomes .next(). KbqInputPassword mints its ids in a kbq-input-password- namespace instead of sharing the kbq-input- counter with KbqInput, which produced two elements with the same id on any page holding both controls and made the form field's <label for> resolve to the wrong one; a hand-written reference to a generated id is reported. And the two behaviors that changed with no call site: type=\"number\" on a kbqNumberInput is reset to type=\"text\" with a warning, because a native number field rejects every formatted value and blanked the field, and HTMLInputElement.prototype.valueAsNumber is no longer redefined for the whole application. Notes the parts with nothing to migrate: the validators no longer parseInt their bounds so a fractional [min]=\"0.5\" and a bound [min]=\"0\" both work, stepping runs in integer space so 1.005 + 0.001 renders 1,006, and the number input carries spinbutton ARIA. The legacy kebab-case big-step attribute is dropped in favour of the single bigStep input and renamed in templates, scoped to the <input> tag carrying the directive.",
367
+ "factory": "./migrations/input-number-surface/index"
368
+ },
369
+ "file-upload-cva-and-primitives": {
370
+ "version": "21.0.0-0",
371
+ "description": "Reports the file-upload behavior the component review changed. writeValue() no longer routes through the file/files setters, so a programmatic value stops marking the control dirty, stops emitting valueChanges twice and no longer fires (fileChange)/(filesChange) — a background patchValue used to be indistinguishable from a user picking a file, and because FormControl.reset() calls markAsPristine() before setValue(), a reset uploader came back dirty. KbqFileList.remove() follows its JSDoc now: it removes the first occurrence, returns the removed item and emits itemRemoved, where it used to return the items it kept, drop every occurrence and emit nothing. hasFocus and KbqInputFileMultipleLabel are removed, and the single uploader renders a single-selection file input whose discarded files reach the new (rejected) output. removeAt(index) ignores an index outside the list, where it used to rewrite the list and emit itemRemoved carrying undefined. A drop that hands over no files (an empty directory unwraps to zero) no longer reaches the list — under addStrategy=\"replace\" it used to clear the whole selection. [multiple] is no longer an input on kbq-single-file-upload, and writing [file]/[files] no longer notifies the form — the setter is the model→view half like writeValue(), which only matters beside formControl, formControlName or ngModel. Warn-only: which value a call site wanted from remove() and whether an output handler was meant to run for a programmatic write are decisions, not renames. Notes the parts with no call site: the control is marked touched on focus leaving the uploader, accept is documented as the native dialog filter it always was, the locale gains a fileUpload.a11y section, and 22 --kbq-file-upload-* custom properties that no rule read were removed.",
372
+ "factory": "./migrations/file-upload-cva-and-primitives/index"
373
+ },
374
+ "modal-signals": {
375
+ "version": "21.0.0-0",
376
+ "description": "Migrates KbqModalComponent consumers to its signal members. Every option is an input() now and kbqVisible is a model(), so template bindings are unchanged - including [(kbqVisible)], whose kbqVisibleChange output the model generates under the same name - and what breaks is programmatic access: a read takes a call and a write takes a binding. Rewrites reads to calls on receivers typed KbqModalComponent, by annotation, inject(), viewChild() or contentChild(), and through a #ref on a <kbq-modal> element in external and inline templates; a write to kbqVisible becomes kbqVisible.set(). KbqModalService stopped applying the options with Object.assign, which would overwrite an InputSignal rather than write through it - they are provided as KBQ_MODAL_OPTIONS and become the initial values of the inputs, so a dialog created by the service keeps them for life. Reports what it cannot rewrite: the kbqOnOk/kbqOnCancel key, whose decision handler moved to kbqOkClick/kbqCancelClick while the old names survive as outputs, so an options object and an [kbqOnOk] input binding move but a (kbqOnOk) listener does not; reads behind KbqModalRef.getInstance(), whose static type carries none of these members; and the removed okText/cancelText getters and the four template type guards. Notes the parts with no call site: kbqOkLoading, kbqCancelLoading and kbqMask keep a private writable shadow because a pending promise and a covering dialog drive them, the predefined buttons finally render the progress state those two always described, kbqFooter is no longer overwritten with its own formatted copy on init, and KbqModalComponent no longer declares implements ModalOptions.",
377
+ "factory": "./migrations/modal-signals/index"
378
+ },
379
+ "modal-dialog-semantics": {
380
+ "version": "21.0.0-0",
381
+ "description": "Reports what the modal review changed for consumers: the EventEmitter form of kbqOnOk/kbqOnCancel now closes the dialog, so the close button, the dim layer and the predefined buttons stopped being inert on a declarative <kbq-modal [(kbqVisible)]>; Escape has one implementation for both entry paths that honours kbqCloseByESC and routes through kbqOnCancel, veto included; a service-created dialog is destroyed with the injector that opened it; transformOrigin, getKbqFooter(), getContainerClasses(), autoFocusedButtons and the ModalUtil click-position machinery were removed, and the template-only helpers (handleCloseResult, getButtonCallableProp, the is* tests, onClickMask, onClickOkCancel, onButtonClick and the animation class maps) became protected. Warn-only. Notes the parts with no call site: the dialog carries role=\"dialog\", aria-modal and an accessible name from kbqTitle or the new kbqAriaLabel, the page behind an open dialog is inert, initial focus follows the new kbqAutoFocus option, and the dialog is a flex column capped at the viewport minus --kbq-modal-size-viewport-inset instead of the old max-height: calc(100vh - 260px) on the body, so a kbqBodyStyle override that lifted that cap to let the dialog outgrow the viewport belongs on kbqStyle now. A manually composed dialog is named and described by its own kbq-modal-title and kbq-modal-caption, and kbq-modal-title projects a [kbqModalTitleActions] slot beside the heading. The inputs of KbqModalComponent stay decorators, so no consumer read needs an added ().",
382
+ "factory": "./migrations/modal-dialog-semantics/index"
383
+ },
384
+ "time-range-title-for": {
385
+ "version": "21.0.0-0",
386
+ "description": "Removes `for` from the `title` section of time-range locale configuration literals — the `title` of a `timeRange` section, of a kbqTimeRangeLocaleConfigurationProvider() argument, or of a literal that also carries `editor` or `durationTemplate` — matching by context rather than by type, and reports the rest of the time-range review: reads of `title.for` and the overrides it could not recognise; the removed KbqTimeRangeEditor.timepickerList together with the statusChanges subscription that wrote errorState onto the first timepicker by hand (both pairs route through ErrorStateMatcher now); writes to the KbqTimeRangeTitleAsControl members that became read-only signals derived from the host and the bound NgControl (value, id, placeholder, focused, empty, required, disabled, errorState; controlType is readonly) and reads of its removed stateChanges; valueCorrected handlers whose emission count changed now that it compares the outcome rather than the shape of the input; and stylesheets keyed on the editor markup that moved the from/to block out of the radiogroup. Warn-only apart from the `for` removal. Notes the parts with no call site: the time-range title no longer prepends `title.for` (\"за\" / \"for\") to the selected period, so it reads \"последний час\" / \"Last hour\" and a custom title template receives the period alone in `formattedDate`; the end of a custom range was assembled from the to-time control instead of the to-date control, so persisted ranges may need correcting; setDisabledState is implemented, so a disabled control is inert instead of merely having its value discarded; onTouched is called when the popover closes, so ErrorStateMatcher finally sees touched; and the popover footer dropped its unnamed role=group while the from/to prefixes moved from an inert aria-label to aria-labelledby.",
387
+ "factory": "./migrations/time-range-title-for/index"
388
+ },
389
+ "progress-bar-percentage-and-aria": {
390
+ "version": "21.0.0-0",
391
+ "description": "Reports the progress-bar review changes a consumer has to act on. KbqProgressBar.percentage moved from a public getter to a protected computed with a finite-value guard: it only ever fed the template, and the clamp it performs stays observable as the fill width and as aria-valuenow. The bar also renders role=\"progressbar\" with mode-aware aria-valuenow/valuemin/valuemax (all three omitted in indeterminate mode, which is how an unknown duration is expressed), aria-label became an input aliased to the attribute, and the projection directives render ids the bar references through aria-labelledby / aria-describedby, so hand-rolled role or aria-* on the same element are duplicates now. Warn-only: percentage has no drop-in replacement expression and which of two competing aria-* attributes survives is a decision. Notes the silent parts too - under prefers-reduced-motion: reduce an indeterminate bar used to render as a full, finished determinate one because the fill was sized only inside the keyframes; [color] covers theme, contrast, contrast-fade and error where every other value used to leave both surfaces transparent, so bars already bound to 'error' or 'contrast' become visible; the a11y locale gained a progressBar key; and the inner track no longer repeats the host id.",
392
+ "factory": "./migrations/progress-bar-percentage-and-aria/index"
393
+ },
394
+ "timezone-grouping-utils": {
395
+ "version": "21.0.0-0",
396
+ "description": "Reports the timezone call sites the review changed. getZonesGroupedByCountry(data, label?, priority?) never grouped by country: it read Intl.DateTimeFormat().resolvedOptions().timeZone at call time and produced at most two groups — the host machine’s country and one bucket holding every other zone with its countryName overwritten — so the same input rendered differently on a laptop, on CI and on an SSR server versus the browser that hydrated it. It takes one argument now and returns one group per country; promoteCountry, collapseOtherCountries and kbqResolveHostCountry compose the old behaviour explicitly. timezonesSortComparator returned parseOffset(first.offset) instead of a difference, so cmp(a, b) and cmp(b, a) were both positive and the resulting order was whatever the engine’s sort made of it; a zone at 00:00:00 compared equal to everything and an unparsable offset was NaN, read as 0. KbqTimezoneGroup.countryCode is nullable, KbqTimezoneZone.offset is optional and resolved from the IANA id when absent, and kbq-timezone-select now throws on multiple or multiline instead of half-rendering. Warn-only: which composition a call site meant — promote the country, collapse the rest, or both — cannot be read off the call. Notes the parts with no call site: the option tooltip carries the same filtered city list the option renders, UtcOffsetPipe and CitiesByFilterPipe are exported, KbqTimezoneModule re-exports KbqOptionModule so the documented kbq-optgroup usage works from the module alone, the search placeholder follows the active locale instead of latching to the first one applied, typeahead matches the city instead of a line that opens with UTC, and the overlay pane carries kbq-select-overlay as it does for kbq-select.",
397
+ "factory": "./migrations/timezone-grouping-utils/index"
398
+ },
399
+ "tabs-signals-and-aria": {
400
+ "version": "21.0.0-0",
401
+ "description": "Reports subclasses of KbqTabGroup, KbqTab, KbqTabHeader, KbqTabNavBar, KbqTabLink, KbqTabLabelWrapper and KbqTabBody, and direct calls of their ngOnChanges: their decorator inputs are signal inputs named <member>Input now, handed to the unchanged member from ngOnChanges, so a subclass has to call super.ngOnChanges and override <member>Input instead of redeclaring an @Input, and a hand-made SimpleChanges is keyed by the <member>Input names; their decorator queries are signal queries behind getters (KbqTabGroup.tabs and the items of the header and nav bar stay QueryLists), so a subclass overrides the getter instead of redeclaring the query. Reads and writes of the members are unchanged. Also reports the members removed or changed in the tabs review: KbqTabGroup.resizeStream and the (window:resize) host listener (the header is observed with the CDK SharedResizeObserver now), the removed KbqTabGroup.disabled input that was published and read by nothing, the getTabIndex(tab, tabHeader, index) signature that returns -1 rather than null for a disabled tab, KbqVerticalTabsCssStyler as a deprecated no-op now that the vertical layout class follows the [vertical] binding, and the label's aria-disabled in place of a bare disabled attribute. Warn-only. Notes the parts with no call site: KbqTabGroup renders the full ARIA tabs pattern, KbqTabNavBar only becomes a tablist with [tabNavPanel] and its links carry aria-disabled without a disabled attribute, KbqTabHeader is OnPush, KbqTabBody.afterLeavingCenter is an EventEmitter<void>, KbqPaginatedTabHeader is exported and the duplicate ScrollDirection is gone, and the four on-surface theme branches read the on-surface tokens.",
402
+ "factory": "./migrations/tabs-signals-and-aria/index"
403
+ },
404
+ "icon-semantics-and-api": {
405
+ "version": "21.0.0-0",
406
+ "description": "Reports the icon call sites the icon review reaches: the removed KbqIcon.small input (published but read by nothing) on a [kbq-icon] or [kbq-icon-item] (small on an icon button is v21-upgrade's), the icon buttons on a host that is not a native <button> that handle (click) but no key, the tabindex retyped from any to number | null, and the protected name marker replaced by appliesMaxHeight. Warn-only. Notes the parts with no call site: <i kbq-icon> is aria-hidden by default and a meaningful icon has to opt out with role=\"img\" and an aria-label, kbq-icon-button warns in dev mode when it has no accessible name and gets role=\"button\" and aria-disabled but no keyboard activation, the --kbq-icon-*-color tokens are consumed with a var() fallback instead of being declared on .kbq-icon so a container can re-theme the icons inside it, the SVG resolution no longer dies on the first unresolved name, and KbqIconRegistry looks sprite symbols up by id.",
407
+ "factory": "./migrations/icon-semantics-and-api/index"
408
+ },
409
+ "design-tokens-v4": {
410
+ "version": "21.0.0-0",
411
+ "description": "Moves the project to @koobiq/design-tokens 4, which @koobiq/components now requires: v4 removed the component tokens, and the three sets it still ships — code-block, scrollbar and skeleton — are already carried by `@koobiq/components`' own `prebuilt-themes/theme.css`. The entry is rewritten wherever the project declared it and added to `dependencies` when it declared it nowhere, since a project can reach the tokens through the library's peer dependency alone. Warns about the two steps left by hand: running `npx koobiq-tokens-codemod src` over the project's own styles and templates for the moved import paths and the renamed tokens, and looking at the code blocks and scrollbars — the only two places v4 changes pixels without being asked.",
412
+ "factory": "./migrations/design-tokens-v4/index"
23
413
  }
24
414
  }
25
415
  }