@koobiq/components 20.4.2 → 21.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (771) hide show
  1. package/accordion/accordion-trigger.scss +3 -10
  2. package/accordion/accordion.scss +4 -6
  3. package/actions-panel/actions-panel-container.scss +45 -1
  4. package/alert/alert.component.scss +3 -2
  5. package/app-switcher/_app-switcher-theme.scss +0 -4
  6. package/app-switcher/app-switcher-dropdown-app.scss +3 -2
  7. package/app-switcher/app-switcher-dropdown-site.scss +2 -1
  8. package/app-switcher/{kbq-app-switcher-list-item.scss → app-switcher-list-item.scss} +18 -4
  9. package/app-switcher/app-switcher-tokens.scss +15 -0
  10. package/app-switcher/app-switcher.scss +14 -4
  11. package/autocomplete/autocomplete.scss +7 -6
  12. package/badge/badge.component.scss +5 -8
  13. package/breadcrumbs/breadcrumbs.scss +25 -10
  14. package/button/_button-base.scss +30 -7
  15. package/button/_button-theme.scss +16 -0
  16. package/button/button-group.scss +7 -0
  17. package/button/button-tokens.scss +0 -2
  18. package/button/button.scss +34 -2
  19. package/button-toggle/_button-toggle-theme.scss +7 -2
  20. package/button-toggle/button-toggle.scss +65 -15
  21. package/checkbox/_checkbox-theme.scss +4 -3
  22. package/checkbox/checkbox.scss +3 -6
  23. package/clamped-text/clamped-text.scss +6 -2
  24. package/code-block/code-block-tokens.scss +0 -224
  25. package/code-block/code-block.scss +20 -9
  26. package/content-panel/content-panel-aside.scss +3 -2
  27. package/content-panel/content-panel-container.scss +37 -0
  28. package/content-panel/content-panel.scss +4 -3
  29. package/core/highlight/_highlight-theme.scss +3 -1
  30. package/core/option/action-container.scss +2 -2
  31. package/core/option/action.scss +2 -1
  32. package/core/option/option.scss +2 -1
  33. package/core/pop-up/_pop-up.scss +0 -37
  34. package/core/selection/pseudo-checkbox/pseudo-checkbox.scss +5 -10
  35. package/core/styles/_core.scss +3 -0
  36. package/core/styles/_koobiq-theme.scss +5 -6
  37. package/core/styles/common/_animation.scss +44 -16
  38. package/core/styles/common/_groups-mixins.scss +21 -19
  39. package/core/styles/common/_groups.scss +4 -32
  40. package/core/styles/common/_index.scss +0 -2
  41. package/core/styles/common/_link.scss +117 -0
  42. package/core/styles/common/_list.scss +0 -26
  43. package/core/styles/common/_overlay.scss +8 -10
  44. package/core/styles/common/_rtl.scss +0 -14
  45. package/core/styles/common/_select.scss +33 -15
  46. package/core/styles/common/_squircle.scss +63 -0
  47. package/core/styles/common/_tokens.scss +0 -11
  48. package/core/styles/common/_vendor-prefixes.scss +0 -20
  49. package/core/styles/functions/_timing.scss +0 -22
  50. package/core/styles/theming/_scrollbar-theme.scss +6 -1
  51. package/core/styles/theming/_theming.scss +13 -65
  52. package/core/styles/typography/_index.scss +0 -1
  53. package/core/styles/typography/_typography.scss +0 -143
  54. package/core/styles/visual/_body.scss +1 -6
  55. package/core/styles/visual/_layout.scss +0 -12
  56. package/datepicker/calendar-body.scss +3 -1
  57. package/datepicker/calendar-header.scss +0 -1
  58. package/datepicker/datepicker-content.scss +33 -1
  59. package/datepicker/datepicker-toggle.scss +0 -38
  60. package/dl/dl-tokens.scss +10 -0
  61. package/dl/dl.scss +113 -13
  62. package/dropdown/_dropdown-theme.scss +4 -16
  63. package/dropdown/dropdown-item.scss +4 -10
  64. package/dropdown/dropdown.scss +2 -1
  65. package/empty-state/_empty-state-theme.scss +10 -4
  66. package/empty-state/empty-state-tokens.scss +4 -4
  67. package/empty-state/empty-state.scss +4 -0
  68. package/fesm2022/koobiq-components-accordion.mjs +347 -229
  69. package/fesm2022/koobiq-components-accordion.mjs.map +1 -1
  70. package/fesm2022/koobiq-components-actions-panel.mjs +302 -187
  71. package/fesm2022/koobiq-components-actions-panel.mjs.map +1 -1
  72. package/fesm2022/koobiq-components-alert.mjs +39 -39
  73. package/fesm2022/koobiq-components-alert.mjs.map +1 -1
  74. package/fesm2022/koobiq-components-app-switcher.mjs +677 -367
  75. package/fesm2022/koobiq-components-app-switcher.mjs.map +1 -1
  76. package/fesm2022/koobiq-components-autocomplete.mjs +620 -253
  77. package/fesm2022/koobiq-components-autocomplete.mjs.map +1 -1
  78. package/fesm2022/koobiq-components-badge.mjs +46 -48
  79. package/fesm2022/koobiq-components-badge.mjs.map +1 -1
  80. package/fesm2022/koobiq-components-breadcrumbs.mjs +221 -169
  81. package/fesm2022/koobiq-components-breadcrumbs.mjs.map +1 -1
  82. package/fesm2022/koobiq-components-button-toggle.mjs +565 -196
  83. package/fesm2022/koobiq-components-button-toggle.mjs.map +1 -1
  84. package/fesm2022/koobiq-components-button.mjs +332 -116
  85. package/fesm2022/koobiq-components-button.mjs.map +1 -1
  86. package/fesm2022/koobiq-components-checkbox.mjs +172 -132
  87. package/fesm2022/koobiq-components-checkbox.mjs.map +1 -1
  88. package/fesm2022/koobiq-components-clamped-text.mjs +165 -158
  89. package/fesm2022/koobiq-components-clamped-text.mjs.map +1 -1
  90. package/fesm2022/koobiq-components-code-block.mjs +755 -601
  91. package/fesm2022/koobiq-components-code-block.mjs.map +1 -1
  92. package/fesm2022/koobiq-components-content-panel.mjs +260 -143
  93. package/fesm2022/koobiq-components-content-panel.mjs.map +1 -1
  94. package/fesm2022/koobiq-components-core.mjs +4342 -1595
  95. package/fesm2022/koobiq-components-core.mjs.map +1 -1
  96. package/fesm2022/koobiq-components-datepicker.mjs +1713 -1606
  97. package/fesm2022/koobiq-components-datepicker.mjs.map +1 -1
  98. package/fesm2022/koobiq-components-divider.mjs +73 -36
  99. package/fesm2022/koobiq-components-divider.mjs.map +1 -1
  100. package/fesm2022/koobiq-components-dl.mjs +447 -89
  101. package/fesm2022/koobiq-components-dl.mjs.map +1 -1
  102. package/fesm2022/koobiq-components-dropdown.mjs +703 -599
  103. package/fesm2022/koobiq-components-dropdown.mjs.map +1 -1
  104. package/fesm2022/koobiq-components-dynamic-translation.mjs +20 -20
  105. package/fesm2022/koobiq-components-dynamic-translation.mjs.map +1 -1
  106. package/fesm2022/koobiq-components-ellipsis-center.mjs +46 -31
  107. package/fesm2022/koobiq-components-ellipsis-center.mjs.map +1 -1
  108. package/fesm2022/koobiq-components-empty-state.mjs +116 -60
  109. package/fesm2022/koobiq-components-empty-state.mjs.map +1 -1
  110. package/fesm2022/koobiq-components-file-upload.mjs +550 -290
  111. package/fesm2022/koobiq-components-file-upload.mjs.map +1 -1
  112. package/fesm2022/koobiq-components-filter-bar.mjs +2810 -2538
  113. package/fesm2022/koobiq-components-filter-bar.mjs.map +1 -1
  114. package/fesm2022/koobiq-components-flag.mjs +79 -24
  115. package/fesm2022/koobiq-components-flag.mjs.map +1 -1
  116. package/fesm2022/koobiq-components-form-field.mjs +389 -525
  117. package/fesm2022/koobiq-components-form-field.mjs.map +1 -1
  118. package/fesm2022/koobiq-components-icon.mjs +366 -136
  119. package/fesm2022/koobiq-components-icon.mjs.map +1 -1
  120. package/fesm2022/koobiq-components-inline-edit.mjs +429 -212
  121. package/fesm2022/koobiq-components-inline-edit.mjs.map +1 -1
  122. package/fesm2022/koobiq-components-input.mjs +601 -459
  123. package/fesm2022/koobiq-components-input.mjs.map +1 -1
  124. package/fesm2022/koobiq-components-link-deprecated.mjs +196 -0
  125. package/fesm2022/koobiq-components-link-deprecated.mjs.map +1 -0
  126. package/fesm2022/koobiq-components-link.mjs +328 -125
  127. package/fesm2022/koobiq-components-link.mjs.map +1 -1
  128. package/fesm2022/koobiq-components-list.mjs +583 -433
  129. package/fesm2022/koobiq-components-list.mjs.map +1 -1
  130. package/fesm2022/koobiq-components-loader-overlay.mjs +167 -68
  131. package/fesm2022/koobiq-components-loader-overlay.mjs.map +1 -1
  132. package/fesm2022/koobiq-components-markdown.mjs +55 -78
  133. package/fesm2022/koobiq-components-markdown.mjs.map +1 -1
  134. package/fesm2022/koobiq-components-modal.mjs +853 -475
  135. package/fesm2022/koobiq-components-modal.mjs.map +1 -1
  136. package/fesm2022/koobiq-components-navbar.mjs +895 -556
  137. package/fesm2022/koobiq-components-navbar.mjs.map +1 -1
  138. package/fesm2022/koobiq-components-notification-center.mjs +680 -310
  139. package/fesm2022/koobiq-components-notification-center.mjs.map +1 -1
  140. package/fesm2022/koobiq-components-overflow-items.mjs +46 -64
  141. package/fesm2022/koobiq-components-overflow-items.mjs.map +1 -1
  142. package/fesm2022/koobiq-components-popover.mjs +684 -285
  143. package/fesm2022/koobiq-components-popover.mjs.map +1 -1
  144. package/fesm2022/koobiq-components-progress-bar.mjs +87 -33
  145. package/fesm2022/koobiq-components-progress-bar.mjs.map +1 -1
  146. package/fesm2022/koobiq-components-progress-spinner.mjs +52 -43
  147. package/fesm2022/koobiq-components-progress-spinner.mjs.map +1 -1
  148. package/fesm2022/koobiq-components-radio.mjs +450 -231
  149. package/fesm2022/koobiq-components-radio.mjs.map +1 -1
  150. package/fesm2022/koobiq-components-resizer.mjs +127 -21
  151. package/fesm2022/koobiq-components-resizer.mjs.map +1 -1
  152. package/fesm2022/koobiq-components-scrollbar-deprecated.mjs +299 -0
  153. package/fesm2022/koobiq-components-scrollbar-deprecated.mjs.map +1 -0
  154. package/fesm2022/koobiq-components-scrollbar.mjs +745 -222
  155. package/fesm2022/koobiq-components-scrollbar.mjs.map +1 -1
  156. package/fesm2022/koobiq-components-search-expandable.mjs +288 -126
  157. package/fesm2022/koobiq-components-search-expandable.mjs.map +1 -1
  158. package/fesm2022/koobiq-components-select.mjs +883 -693
  159. package/fesm2022/koobiq-components-select.mjs.map +1 -1
  160. package/fesm2022/koobiq-components-sidebar.mjs +207 -88
  161. package/fesm2022/koobiq-components-sidebar.mjs.map +1 -1
  162. package/fesm2022/koobiq-components-sidepanel.mjs +689 -296
  163. package/fesm2022/koobiq-components-sidepanel.mjs.map +1 -1
  164. package/fesm2022/koobiq-components-skeleton.mjs +815 -41
  165. package/fesm2022/koobiq-components-skeleton.mjs.map +1 -1
  166. package/fesm2022/koobiq-components-split-button.mjs +109 -88
  167. package/fesm2022/koobiq-components-split-button.mjs.map +1 -1
  168. package/fesm2022/koobiq-components-splitter-deprecated.mjs +591 -0
  169. package/fesm2022/koobiq-components-splitter-deprecated.mjs.map +1 -0
  170. package/fesm2022/koobiq-components-splitter.mjs +890 -501
  171. package/fesm2022/koobiq-components-splitter.mjs.map +1 -1
  172. package/fesm2022/koobiq-components-table.mjs +63 -49
  173. package/fesm2022/koobiq-components-table.mjs.map +1 -1
  174. package/fesm2022/koobiq-components-tabs.mjs +1062 -603
  175. package/fesm2022/koobiq-components-tabs.mjs.map +1 -1
  176. package/fesm2022/koobiq-components-tags.mjs +886 -733
  177. package/fesm2022/koobiq-components-tags.mjs.map +1 -1
  178. package/fesm2022/koobiq-components-textarea.mjs +213 -185
  179. package/fesm2022/koobiq-components-textarea.mjs.map +1 -1
  180. package/fesm2022/koobiq-components-time-range.mjs +299 -147
  181. package/fesm2022/koobiq-components-time-range.mjs.map +1 -1
  182. package/fesm2022/koobiq-components-timepicker.mjs +233 -245
  183. package/fesm2022/koobiq-components-timepicker.mjs.map +1 -1
  184. package/fesm2022/koobiq-components-timezone.mjs +344 -142
  185. package/fesm2022/koobiq-components-timezone.mjs.map +1 -1
  186. package/fesm2022/koobiq-components-title.mjs +229 -145
  187. package/fesm2022/koobiq-components-title.mjs.map +1 -1
  188. package/fesm2022/koobiq-components-toast.mjs +463 -143
  189. package/fesm2022/koobiq-components-toast.mjs.map +1 -1
  190. package/fesm2022/koobiq-components-toggle.mjs +177 -130
  191. package/fesm2022/koobiq-components-toggle.mjs.map +1 -1
  192. package/fesm2022/koobiq-components-tooltip.mjs +657 -214
  193. package/fesm2022/koobiq-components-tooltip.mjs.map +1 -1
  194. package/fesm2022/koobiq-components-top-bar.mjs +61 -32
  195. package/fesm2022/koobiq-components-top-bar.mjs.map +1 -1
  196. package/fesm2022/koobiq-components-tree-select.mjs +719 -488
  197. package/fesm2022/koobiq-components-tree-select.mjs.map +1 -1
  198. package/fesm2022/koobiq-components-tree.mjs +1506 -558
  199. package/fesm2022/koobiq-components-tree.mjs.map +1 -1
  200. package/fesm2022/koobiq-components-username.mjs +290 -135
  201. package/fesm2022/koobiq-components-username.mjs.map +1 -1
  202. package/file-upload/dropzone.scss +31 -3
  203. package/file-upload/file-upload-tokens.scss +2 -22
  204. package/file-upload/file-upload.scss +6 -0
  205. package/file-upload/multiple-file-upload.component.scss +14 -12
  206. package/file-upload/single-file-upload.component.scss +3 -2
  207. package/filter-bar/filters.scss +7 -0
  208. package/filter-bar/pipes/base-pipe.scss +3 -3
  209. package/filter-bar/pipes/pipe-date.scss +8 -1
  210. package/flag/flag-tokens.scss +22 -0
  211. package/flag/flag.scss +34 -21
  212. package/form-field/{_fiedset-theme.scss → _fieldset-theme.scss} +1 -5
  213. package/form-field/_form-field-theme.scss +4 -9
  214. package/form-field/cleaner.scss +3 -1
  215. package/form-field/fieldset.scss +3 -4
  216. package/form-field/form-field.scss +26 -21
  217. package/form-field/password-toggle.scss +3 -1
  218. package/icon/_icon-button-theme.scss +7 -0
  219. package/icon/_icon-theme.scss +10 -7
  220. package/icon/icon-button.scss +0 -2
  221. package/icon/icon-tokens.scss +12 -9
  222. package/inline-edit/inline-edit.scss +40 -54
  223. package/input/input.scss +4 -0
  224. package/link/{_link-theme.scss → deprecated/_link-theme.scss} +11 -6
  225. package/link/deprecated/link-tokens.scss +27 -0
  226. package/link/link-tokens.scss +6 -25
  227. package/link/link.scss +137 -0
  228. package/list/list.scss +3 -2
  229. package/loader-overlay/_loader-overlay-theme.scss +19 -10
  230. package/loader-overlay/loader-overlay-tokens.scss +0 -2
  231. package/loader-overlay/loader-overlay.scss +7 -1
  232. package/markdown/_markdown-theme.scss +16 -0
  233. package/markdown/markdown-tokens.scss +5 -0
  234. package/markdown/markdown.scss +2 -1
  235. package/modal/_modal-animation.scss +23 -14
  236. package/modal/modal-tokens.scss +2 -1
  237. package/modal/modal.scss +35 -31
  238. package/navbar/_navbar-item_horizontal.scss +8 -6
  239. package/navbar/_navbar-item_vertical.scss +18 -6
  240. package/navbar/_navbar-theme.scss +9 -1
  241. package/navbar/navbar-brand.scss +8 -6
  242. package/navbar/navbar-divider.scss +1 -1
  243. package/navbar/navbar-item.scss +8 -9
  244. package/navbar/navbar-toggle.scss +3 -3
  245. package/navbar/navbar-tokens.scss +14 -0
  246. package/navbar/navbar.scss +1 -2
  247. package/navbar/vertical-navbar.scss +2 -2
  248. package/notification-center/_notification-center-theme.scss +11 -6
  249. package/notification-center/notification-center-tokens.scss +33 -0
  250. package/notification-center/notification-center.scss +58 -20
  251. package/notification-center/notification-item.scss +15 -6
  252. package/package.json +112 -81
  253. package/popover/popover-tokens.scss +0 -2
  254. package/popover/popover.scss +41 -19
  255. package/prebuilt-themes/theme.css +1 -1
  256. package/progress-bar/_progress-bar-theme.scss +20 -3
  257. package/progress-bar/progress-bar-tokens.scss +3 -0
  258. package/progress-bar/progress-bar.scss +36 -8
  259. package/progress-spinner/progress-spinner.scss +4 -3
  260. package/radio/_radio-theme.scss +21 -4
  261. package/radio/radio-tokens.scss +7 -3
  262. package/radio/radio.scss +55 -8
  263. package/schematics/collection.json +399 -7
  264. package/schematics/migrations/accordion-state-saving-default/README.md +60 -0
  265. package/schematics/migrations/accordion-state-saving-default/data.js +75 -0
  266. package/schematics/migrations/accordion-state-saving-default/index.js +60 -0
  267. package/schematics/migrations/accordion-state-saving-default/schema.json +15 -0
  268. package/schematics/migrations/actions-panel-overlay-container/README.md +35 -0
  269. package/schematics/migrations/actions-panel-overlay-container/data.js +47 -0
  270. package/schematics/migrations/actions-panel-overlay-container/index.js +54 -0
  271. package/schematics/migrations/actions-panel-overlay-container/schema.json +15 -0
  272. package/schematics/migrations/alert-signals/README.md +13 -7
  273. package/schematics/migrations/alert-signals/data.js +3 -0
  274. package/schematics/migrations/alert-signals/index.js +70 -203
  275. package/schematics/migrations/angular-animations-removal/README.md +46 -0
  276. package/schematics/migrations/angular-animations-removal/data.js +150 -0
  277. package/schematics/migrations/angular-animations-removal/index.js +20 -0
  278. package/schematics/migrations/angular-animations-removal/schema.json +15 -0
  279. package/schematics/migrations/app-switcher-signals/README.md +88 -0
  280. package/schematics/migrations/app-switcher-signals/data.js +136 -0
  281. package/schematics/migrations/app-switcher-signals/index.js +365 -0
  282. package/schematics/migrations/app-switcher-signals/schema.json +20 -0
  283. package/schematics/migrations/autocomplete-panel-width-auto/README.md +2 -2
  284. package/schematics/migrations/autocomplete-panel-width-auto/index.js +1 -1
  285. package/schematics/migrations/autocomplete-signals/README.md +92 -0
  286. package/schematics/migrations/autocomplete-signals/data.js +149 -0
  287. package/schematics/migrations/autocomplete-signals/index.js +706 -0
  288. package/schematics/migrations/autocomplete-signals/schema.json +20 -0
  289. package/schematics/migrations/badge-signals/README.md +77 -0
  290. package/schematics/migrations/badge-signals/data.js +109 -0
  291. package/schematics/migrations/badge-signals/index.js +693 -0
  292. package/schematics/migrations/badge-signals/schema.json +20 -0
  293. package/schematics/migrations/button-state-and-styles/README.md +129 -0
  294. package/schematics/migrations/button-state-and-styles/data.js +136 -0
  295. package/schematics/migrations/button-state-and-styles/index.js +220 -0
  296. package/schematics/migrations/button-state-and-styles/schema.json +20 -0
  297. package/schematics/migrations/button-supported-colors/README.md +73 -0
  298. package/schematics/migrations/button-supported-colors/data.js +106 -0
  299. package/schematics/migrations/button-supported-colors/index.js +260 -0
  300. package/schematics/migrations/button-supported-colors/schema.json +20 -0
  301. package/schematics/migrations/button-toggle-signals-and-aria/README.md +137 -0
  302. package/schematics/migrations/button-toggle-signals-and-aria/data.js +200 -0
  303. package/schematics/migrations/button-toggle-signals-and-aria/index.js +496 -0
  304. package/schematics/migrations/button-toggle-signals-and-aria/schema.json +20 -0
  305. package/schematics/migrations/button-truncation/README.md +110 -0
  306. package/schematics/migrations/button-truncation/data.js +88 -0
  307. package/schematics/migrations/button-truncation/index.js +269 -0
  308. package/schematics/migrations/button-truncation/schema.json +20 -0
  309. package/schematics/migrations/checkbox-signals/README.md +76 -0
  310. package/schematics/migrations/checkbox-signals/data.js +114 -0
  311. package/schematics/migrations/checkbox-signals/index.js +634 -0
  312. package/schematics/migrations/checkbox-signals/schema.json +20 -0
  313. package/schematics/migrations/clamped-text-disclosure/README.md +62 -0
  314. package/schematics/migrations/clamped-text-disclosure/data.js +101 -0
  315. package/schematics/migrations/clamped-text-disclosure/index.js +59 -0
  316. package/schematics/migrations/clamped-text-disclosure/schema.json +15 -0
  317. package/schematics/migrations/code-block-signals/README.md +84 -0
  318. package/schematics/migrations/code-block-signals/data.js +121 -0
  319. package/schematics/migrations/code-block-signals/index.js +700 -0
  320. package/schematics/migrations/code-block-signals/schema.json +20 -0
  321. package/schematics/migrations/color-signals/README.md +46 -0
  322. package/schematics/migrations/color-signals/data.js +131 -0
  323. package/schematics/migrations/color-signals/index.js +19 -0
  324. package/schematics/migrations/color-signals/schema.json +20 -0
  325. package/schematics/migrations/core-mixins-removal/README.md +20 -0
  326. package/schematics/migrations/core-mixins-removal/data.js +27 -0
  327. package/schematics/migrations/core-mixins-removal/index.js +17 -0
  328. package/schematics/migrations/core-mixins-removal/schema.json +15 -0
  329. package/schematics/migrations/css-selectors/README.md +2 -2
  330. package/schematics/migrations/css-selectors/index.js +1 -1
  331. package/schematics/migrations/datepicker-signals/README.md +24 -0
  332. package/schematics/migrations/datepicker-signals/data.js +49 -0
  333. package/schematics/migrations/datepicker-signals/index.js +17 -0
  334. package/schematics/migrations/datepicker-signals/schema.json +15 -0
  335. package/schematics/migrations/deprecated-icons/README.md +2 -2
  336. package/schematics/migrations/deprecated-icons/index.js +1 -1
  337. package/schematics/migrations/design-tokens-v4/README.md +75 -0
  338. package/schematics/migrations/design-tokens-v4/index.js +59 -0
  339. package/schematics/migrations/design-tokens-v4/schema.json +15 -0
  340. package/schematics/migrations/divider-signals-and-aria/README.md +47 -0
  341. package/schematics/migrations/divider-signals-and-aria/data.js +62 -0
  342. package/schematics/migrations/divider-signals-and-aria/index.js +211 -0
  343. package/schematics/migrations/divider-signals-and-aria/schema.json +15 -0
  344. package/schematics/migrations/dl-attribute-coercion/README.md +59 -0
  345. package/schematics/migrations/dl-attribute-coercion/data.js +85 -0
  346. package/schematics/migrations/dl-attribute-coercion/index.js +161 -0
  347. package/schematics/migrations/dl-attribute-coercion/schema.json +15 -0
  348. package/schematics/migrations/dl-standalone-names/README.md +49 -0
  349. package/schematics/migrations/dl-standalone-names/data.js +44 -0
  350. package/schematics/migrations/dl-standalone-names/index.js +321 -0
  351. package/schematics/migrations/dl-standalone-names/schema.json +20 -0
  352. package/schematics/migrations/dropdown-demote-overlay/README.md +137 -0
  353. package/schematics/migrations/dropdown-demote-overlay/data.js +84 -0
  354. package/schematics/migrations/dropdown-demote-overlay/index.js +288 -0
  355. package/schematics/migrations/dropdown-demote-overlay/schema.json +20 -0
  356. package/schematics/migrations/dropdown-signals/README.md +83 -0
  357. package/schematics/migrations/dropdown-signals/data.js +152 -0
  358. package/schematics/migrations/dropdown-signals/index.js +19 -0
  359. package/schematics/migrations/dropdown-signals/schema.json +20 -0
  360. package/schematics/migrations/empty-state-error-color/README.md +84 -0
  361. package/schematics/migrations/empty-state-error-color/data.js +85 -0
  362. package/schematics/migrations/empty-state-error-color/index.js +71 -0
  363. package/schematics/migrations/empty-state-error-color/schema.json +15 -0
  364. package/schematics/migrations/empty-state-size-attr/README.md +2 -2
  365. package/schematics/migrations/empty-state-size-attr/index.js +1 -1
  366. package/schematics/migrations/file-upload-cva-and-primitives/README.md +70 -0
  367. package/schematics/migrations/file-upload-cva-and-primitives/data.js +97 -0
  368. package/schematics/migrations/file-upload-cva-and-primitives/index.js +60 -0
  369. package/schematics/migrations/file-upload-cva-and-primitives/schema.json +15 -0
  370. package/schematics/migrations/file-upload-deprecated-outputs/README.md +90 -0
  371. package/schematics/migrations/file-upload-deprecated-outputs/data.js +20 -0
  372. package/schematics/migrations/file-upload-deprecated-outputs/index.js +70 -0
  373. package/schematics/migrations/file-upload-deprecated-outputs/schema.json +20 -0
  374. package/schematics/migrations/filter-bar-rename-action/README.md +183 -0
  375. package/schematics/migrations/filter-bar-rename-action/data.js +151 -0
  376. package/schematics/migrations/filter-bar-rename-action/index.js +177 -0
  377. package/schematics/migrations/filter-bar-rename-action/schema.json +20 -0
  378. package/schematics/migrations/filter-bar-signals/README.md +27 -16
  379. package/schematics/migrations/filter-bar-signals/data.js +1 -2
  380. package/schematics/migrations/filter-bar-signals/index.js +100 -195
  381. package/schematics/migrations/filter-bar-state-saving-default/README.md +53 -0
  382. package/schematics/migrations/filter-bar-state-saving-default/data.js +87 -0
  383. package/schematics/migrations/filter-bar-state-saving-default/index.js +61 -0
  384. package/schematics/migrations/filter-bar-state-saving-default/schema.json +15 -0
  385. package/schematics/migrations/flag-inner-html/README.md +67 -0
  386. package/schematics/migrations/flag-inner-html/data.js +58 -0
  387. package/schematics/migrations/flag-inner-html/index.js +61 -0
  388. package/schematics/migrations/flag-inner-html/schema.json +15 -0
  389. package/schematics/migrations/form-field-signals/README.md +125 -0
  390. package/schematics/migrations/form-field-signals/data.js +288 -0
  391. package/schematics/migrations/form-field-signals/index.js +382 -0
  392. package/schematics/migrations/form-field-signals/schema.json +20 -0
  393. package/schematics/migrations/icon-semantics-and-api/README.md +65 -0
  394. package/schematics/migrations/icon-semantics-and-api/data.js +97 -0
  395. package/schematics/migrations/icon-semantics-and-api/index.js +64 -0
  396. package/schematics/migrations/icon-semantics-and-api/schema.json +15 -0
  397. package/schematics/migrations/icons-replacement/README.md +5 -5
  398. package/schematics/migrations/icons-replacement/index.js +1 -1
  399. package/schematics/migrations/inline-edit-a11y-and-types/README.md +82 -0
  400. package/schematics/migrations/inline-edit-a11y-and-types/data.js +117 -0
  401. package/schematics/migrations/inline-edit-a11y-and-types/index.js +97 -0
  402. package/schematics/migrations/inline-edit-a11y-and-types/schema.json +20 -0
  403. package/schematics/migrations/input-number-surface/README.md +140 -0
  404. package/schematics/migrations/input-number-surface/data.js +135 -0
  405. package/schematics/migrations/input-number-surface/index.js +292 -0
  406. package/schematics/migrations/input-number-surface/schema.json +20 -0
  407. package/schematics/migrations/input-signals/README.md +20 -0
  408. package/schematics/migrations/input-signals/data.js +30 -0
  409. package/schematics/migrations/input-signals/index.js +17 -0
  410. package/schematics/migrations/input-signals/schema.json +15 -0
  411. package/schematics/migrations/link-deprecated-path/README.md +144 -0
  412. package/schematics/migrations/link-deprecated-path/index.js +19 -0
  413. package/schematics/migrations/link-deprecated-path/schema.json +20 -0
  414. package/schematics/migrations/link-signals/README.md +71 -0
  415. package/schematics/migrations/link-signals/data.js +116 -0
  416. package/schematics/migrations/link-signals/index.js +415 -0
  417. package/schematics/migrations/link-signals/schema.json +20 -0
  418. package/schematics/migrations/list-signals/README.md +22 -0
  419. package/schematics/migrations/list-signals/data.js +35 -0
  420. package/schematics/migrations/list-signals/index.js +17 -0
  421. package/schematics/migrations/list-signals/schema.json +15 -0
  422. package/schematics/migrations/list-tree-multiple-input/README.md +105 -0
  423. package/schematics/migrations/list-tree-multiple-input/data.js +74 -0
  424. package/schematics/migrations/list-tree-multiple-input/index.js +221 -0
  425. package/schematics/migrations/list-tree-multiple-input/schema.json +20 -0
  426. package/schematics/migrations/loader-overlay-signals/README.md +62 -0
  427. package/schematics/migrations/loader-overlay-signals/data.js +101 -0
  428. package/schematics/migrations/loader-overlay-signals/index.js +697 -0
  429. package/schematics/migrations/loader-overlay-signals/schema.json +20 -0
  430. package/schematics/migrations/loader-overlay-size-attr/README.md +2 -2
  431. package/schematics/migrations/loader-overlay-size-attr/index.js +1 -1
  432. package/schematics/migrations/locale-configuration-providers/README.md +163 -0
  433. package/schematics/migrations/locale-configuration-providers/data.js +257 -0
  434. package/schematics/migrations/locale-configuration-providers/index.js +294 -0
  435. package/schematics/migrations/locale-configuration-providers/schema.json +20 -0
  436. package/schematics/migrations/mandatory-peer-dependencies/README.md +70 -0
  437. package/schematics/migrations/mandatory-peer-dependencies/index.js +42 -0
  438. package/schematics/migrations/mandatory-peer-dependencies/schema.json +15 -0
  439. package/schematics/migrations/markdown-signals/README.md +58 -0
  440. package/schematics/migrations/markdown-signals/data.js +79 -0
  441. package/schematics/migrations/markdown-signals/index.js +639 -0
  442. package/schematics/migrations/markdown-signals/schema.json +20 -0
  443. package/schematics/migrations/modal-dialog-semantics/README.md +106 -0
  444. package/schematics/migrations/modal-dialog-semantics/data.js +110 -0
  445. package/schematics/migrations/modal-dialog-semantics/index.js +58 -0
  446. package/schematics/migrations/modal-dialog-semantics/schema.json +15 -0
  447. package/schematics/migrations/modal-signals/README.md +88 -0
  448. package/schematics/migrations/modal-signals/data.js +132 -0
  449. package/schematics/migrations/modal-signals/index.js +19 -0
  450. package/schematics/migrations/modal-signals/schema.json +20 -0
  451. package/schematics/migrations/navbar-signals-and-aria/README.md +111 -0
  452. package/schematics/migrations/navbar-signals-and-aria/data.js +198 -0
  453. package/schematics/migrations/navbar-signals-and-aria/index.js +568 -0
  454. package/schematics/migrations/navbar-signals-and-aria/schema.json +20 -0
  455. package/schematics/migrations/new-icons-pack/README.md +10 -10
  456. package/schematics/migrations/new-icons-pack/index.js +1 -1
  457. package/schematics/migrations/notification-center-signals/README.md +67 -0
  458. package/schematics/migrations/notification-center-signals/data.js +66 -0
  459. package/schematics/migrations/notification-center-signals/index.js +61 -0
  460. package/schematics/migrations/notification-center-signals/schema.json +15 -0
  461. package/schematics/migrations/option-signals/README.md +37 -0
  462. package/schematics/migrations/option-signals/data.js +86 -0
  463. package/schematics/migrations/option-signals/index.js +19 -0
  464. package/schematics/migrations/option-signals/schema.json +20 -0
  465. package/schematics/migrations/popover-leave-delay/README.md +51 -0
  466. package/schematics/migrations/popover-leave-delay/data.js +61 -0
  467. package/schematics/migrations/popover-leave-delay/index.js +54 -0
  468. package/schematics/migrations/popover-leave-delay/schema.json +15 -0
  469. package/schematics/migrations/progress-bar-percentage-and-aria/README.md +54 -0
  470. package/schematics/migrations/progress-bar-percentage-and-aria/data.js +76 -0
  471. package/schematics/migrations/progress-bar-percentage-and-aria/index.js +58 -0
  472. package/schematics/migrations/progress-bar-percentage-and-aria/schema.json +15 -0
  473. package/schematics/migrations/progress-spinner-signals/README.md +72 -0
  474. package/schematics/migrations/progress-spinner-signals/data.js +83 -0
  475. package/schematics/migrations/progress-spinner-signals/index.js +694 -0
  476. package/schematics/migrations/progress-spinner-signals/schema.json +20 -0
  477. package/schematics/migrations/query-list-signals/README.md +32 -0
  478. package/schematics/migrations/query-list-signals/data.js +70 -0
  479. package/schematics/migrations/query-list-signals/index.js +17 -0
  480. package/schematics/migrations/query-list-signals/schema.json +15 -0
  481. package/schematics/migrations/radio-signals-and-aria/README.md +82 -0
  482. package/schematics/migrations/radio-signals-and-aria/data.js +163 -0
  483. package/schematics/migrations/radio-signals-and-aria/index.js +39 -0
  484. package/schematics/migrations/radio-signals-and-aria/schema.json +20 -0
  485. package/schematics/migrations/read-state-dwell-handlers/README.md +125 -0
  486. package/schematics/migrations/read-state-dwell-handlers/data.js +45 -0
  487. package/schematics/migrations/read-state-dwell-handlers/index.js +215 -0
  488. package/schematics/migrations/read-state-dwell-handlers/schema.json +20 -0
  489. package/schematics/migrations/scrollbar-deprecated-path/README.md +128 -0
  490. package/schematics/migrations/scrollbar-deprecated-path/index.js +20 -0
  491. package/schematics/migrations/scrollbar-deprecated-path/schema.json +20 -0
  492. package/schematics/migrations/select-signal-inputs/README.md +61 -0
  493. package/schematics/migrations/select-signal-inputs/data.js +99 -0
  494. package/schematics/migrations/select-signal-inputs/index.js +57 -0
  495. package/schematics/migrations/select-signal-inputs/schema.json +15 -0
  496. package/schematics/migrations/sidepanel-non-modal-behavior/README.md +57 -0
  497. package/schematics/migrations/sidepanel-non-modal-behavior/data.js +111 -0
  498. package/schematics/migrations/sidepanel-non-modal-behavior/index.js +57 -0
  499. package/schematics/migrations/sidepanel-non-modal-behavior/schema.json +15 -0
  500. package/schematics/migrations/signal-inputs-subclasses/README.md +28 -0
  501. package/schematics/migrations/signal-inputs-subclasses/data.js +69 -0
  502. package/schematics/migrations/signal-inputs-subclasses/index.js +17 -0
  503. package/schematics/migrations/signal-inputs-subclasses/schema.json +15 -0
  504. package/schematics/migrations/split-button-optional-disabled/README.md +47 -0
  505. package/schematics/migrations/split-button-optional-disabled/data.js +53 -0
  506. package/schematics/migrations/split-button-optional-disabled/index.js +57 -0
  507. package/schematics/migrations/split-button-optional-disabled/schema.json +15 -0
  508. package/schematics/migrations/splitter-deprecated-path/README.md +136 -0
  509. package/schematics/migrations/splitter-deprecated-path/index.js +20 -0
  510. package/schematics/migrations/splitter-deprecated-path/schema.json +20 -0
  511. package/schematics/migrations/state-saving-default/README.md +67 -0
  512. package/schematics/migrations/state-saving-default/data.js +88 -0
  513. package/schematics/migrations/state-saving-default/index.js +62 -0
  514. package/schematics/migrations/state-saving-default/schema.json +15 -0
  515. package/schematics/migrations/table-cell-content/README.md +55 -0
  516. package/schematics/migrations/table-cell-content/data.js +66 -0
  517. package/schematics/migrations/table-cell-content/index.js +66 -0
  518. package/schematics/migrations/table-cell-content/schema.json +15 -0
  519. package/schematics/migrations/tabs-signals-and-aria/README.md +93 -0
  520. package/schematics/migrations/tabs-signals-and-aria/data.js +139 -0
  521. package/schematics/migrations/tabs-signals-and-aria/index.js +65 -0
  522. package/schematics/migrations/tabs-signals-and-aria/schema.json +15 -0
  523. package/schematics/migrations/tag-list-cleaner/README.md +58 -0
  524. package/schematics/migrations/tag-list-cleaner/data.js +42 -0
  525. package/schematics/migrations/tag-list-cleaner/index.js +196 -0
  526. package/schematics/migrations/tag-list-cleaner/schema.json +20 -0
  527. package/schematics/migrations/tag-slots/README.md +41 -0
  528. package/schematics/migrations/tag-slots/index.js +190 -0
  529. package/schematics/migrations/tag-slots/schema.json +20 -0
  530. package/schematics/migrations/tags-signals/README.md +85 -0
  531. package/schematics/migrations/tags-signals/data.js +103 -0
  532. package/schematics/migrations/tags-signals/index.js +673 -0
  533. package/schematics/migrations/tags-signals/schema.json +20 -0
  534. package/schematics/migrations/textarea-signals/README.md +72 -0
  535. package/schematics/migrations/textarea-signals/data.js +121 -0
  536. package/schematics/migrations/textarea-signals/index.js +379 -0
  537. package/schematics/migrations/textarea-signals/schema.json +20 -0
  538. package/schematics/migrations/time-range-title-for/README.md +164 -0
  539. package/schematics/migrations/time-range-title-for/data.js +139 -0
  540. package/schematics/migrations/time-range-title-for/index.js +163 -0
  541. package/schematics/migrations/time-range-title-for/schema.json +20 -0
  542. package/schematics/migrations/timepicker-signals/README.md +78 -0
  543. package/schematics/migrations/timepicker-signals/data.js +82 -0
  544. package/schematics/migrations/timepicker-signals/index.js +709 -0
  545. package/schematics/migrations/timepicker-signals/schema.json +20 -0
  546. package/schematics/migrations/timezone-grouping-utils/README.md +73 -0
  547. package/schematics/migrations/timezone-grouping-utils/data.js +101 -0
  548. package/schematics/migrations/timezone-grouping-utils/index.js +64 -0
  549. package/schematics/migrations/timezone-grouping-utils/schema.json +15 -0
  550. package/schematics/migrations/title-encapsulation/README.md +49 -0
  551. package/schematics/migrations/title-encapsulation/data.js +69 -0
  552. package/schematics/migrations/title-encapsulation/index.js +57 -0
  553. package/schematics/migrations/title-encapsulation/schema.json +15 -0
  554. package/schematics/migrations/toast-stack-and-defaults/README.md +102 -0
  555. package/schematics/migrations/toast-stack-and-defaults/data.js +79 -0
  556. package/schematics/migrations/toast-stack-and-defaults/index.js +53 -0
  557. package/schematics/migrations/toast-stack-and-defaults/schema.json +15 -0
  558. package/schematics/migrations/tooltip-pointer-events-and-types/README.md +53 -0
  559. package/schematics/migrations/tooltip-pointer-events-and-types/data.js +89 -0
  560. package/schematics/migrations/tooltip-pointer-events-and-types/index.js +60 -0
  561. package/schematics/migrations/tooltip-pointer-events-and-types/schema.json +15 -0
  562. package/schematics/migrations/top-bar-container-selectors/README.md +111 -0
  563. package/schematics/migrations/top-bar-container-selectors/data.js +56 -0
  564. package/schematics/migrations/top-bar-container-selectors/index.js +84 -0
  565. package/schematics/migrations/top-bar-container-selectors/schema.json +20 -0
  566. package/schematics/migrations/tree-select-signals/README.md +61 -0
  567. package/schematics/migrations/tree-select-signals/data.js +106 -0
  568. package/schematics/migrations/tree-select-signals/index.js +58 -0
  569. package/schematics/migrations/tree-select-signals/schema.json +15 -0
  570. package/schematics/migrations/tree-signals/README.md +82 -0
  571. package/schematics/migrations/tree-signals/data.js +123 -0
  572. package/schematics/migrations/tree-signals/index.js +54 -0
  573. package/schematics/migrations/tree-signals/schema.json +15 -0
  574. package/schematics/migrations/tree-state-saving-default/README.md +66 -0
  575. package/schematics/migrations/tree-state-saving-default/data.js +78 -0
  576. package/schematics/migrations/tree-state-saving-default/index.js +60 -0
  577. package/schematics/migrations/tree-state-saving-default/schema.json +15 -0
  578. package/schematics/migrations/username-pipe-injection/README.md +59 -0
  579. package/schematics/migrations/username-pipe-injection/data.js +78 -0
  580. package/schematics/migrations/username-pipe-injection/index.js +58 -0
  581. package/schematics/migrations/username-pipe-injection/schema.json +15 -0
  582. package/schematics/migrations/v20-upgrade/README.md +36 -16
  583. package/schematics/migrations/v20-upgrade/data.js +124 -77
  584. package/schematics/migrations/v20-upgrade/index.js +6 -213
  585. package/schematics/migrations/v21-upgrade/README.md +271 -0
  586. package/schematics/migrations/v21-upgrade/data.js +1371 -0
  587. package/schematics/migrations/v21-upgrade/index.js +94 -0
  588. package/schematics/migrations/v21-upgrade/schema.json +20 -0
  589. package/schematics/migrations/zoneless-change-detection/README.md +30 -0
  590. package/schematics/migrations/zoneless-change-detection/data.js +29 -0
  591. package/schematics/migrations/zoneless-change-detection/index.js +20 -0
  592. package/schematics/migrations/zoneless-change-detection/schema.json +15 -0
  593. package/schematics/migrations.json +392 -2
  594. package/schematics/ng-add/index.js +515 -14
  595. package/schematics/ng-add/schema.json +15 -0
  596. package/schematics/utils/deprecated-path-migration.js +61 -0
  597. package/schematics/utils/package-config.js +9 -105
  598. package/scrollbar/{_scrollbar-component-theme.scss → deprecated/_scrollbar-component-theme.scss} +1 -1
  599. package/scrollbar/{scrollbar.component.scss → deprecated/scrollbar.component.scss} +1 -1
  600. package/scrollbar/native-scrollbar.scss +68 -0
  601. package/scrollbar/scrollbar-tokens.scss +13 -22
  602. package/scrollbar/scrollbar-track.scss +94 -0
  603. package/scrollbar/scrollbar-viewport.scss +33 -0
  604. package/scrollbar/scrollbar.scss +24 -0
  605. package/search-expandable/search-expandable-tokens.scss +4 -0
  606. package/search-expandable/search-expandable.scss +4 -2
  607. package/select/_select-theme.scss +3 -16
  608. package/select/select.scss +0 -6
  609. package/sidebar/sidebar.scss +20 -0
  610. package/sidepanel/_sidepanel-theme.scss +1 -1
  611. package/sidepanel/sidepanel-tokens.scss +7 -1
  612. package/sidepanel/sidepanel.scss +41 -5
  613. package/skeleton/skeleton-presets.scss +350 -0
  614. package/skeleton/skeleton-tokens.scss +127 -0
  615. package/skeleton/skeleton.scss +53 -45
  616. package/split-button/_split-button-theme.scss +4 -4
  617. package/split-button/split-button.scss +2 -6
  618. package/splitter/{_splitter-theme.scss → deprecated/_splitter-theme.scss} +1 -1
  619. package/splitter/deprecated/splitter.scss +51 -0
  620. package/splitter/splitter-tokens.scss +19 -0
  621. package/splitter/splitter.scss +148 -28
  622. package/table/_table-theme.scss +13 -12
  623. package/table/table-tokens.scss +8 -0
  624. package/table/table.scss +47 -22
  625. package/tabs/_tabs-common.scss +14 -14
  626. package/tabs/_tabs-theme.scss +4 -5
  627. package/tabs/tab-body.scss +49 -1
  628. package/tabs/tab-header.scss +2 -1
  629. package/tags/tag-list.scss +4 -0
  630. package/tags/tag.scss +19 -1
  631. package/time-range/time-range.scss +9 -0
  632. package/timezone/timezone-option.component.scss +4 -7
  633. package/timezone/timezone-select.component.scss +3 -0
  634. package/toast/_toast-theme.scss +1 -4
  635. package/toast/toast-container.component.scss +19 -13
  636. package/toast/toast-tokens.scss +12 -6
  637. package/toast/toast.component.scss +42 -19
  638. package/toggle/_toggle-theme.scss +4 -10
  639. package/toggle/toggle.scss +67 -26
  640. package/tooltip/_tooltip-theme.scss +7 -1
  641. package/tooltip/tooltip-tokens.scss +1 -2
  642. package/tooltip/tooltip.scss +55 -9
  643. package/top-bar/top-bar-tokens.scss +13 -2
  644. package/top-bar/top-bar.scss +24 -19
  645. package/tree/_tree-theme.scss +0 -1
  646. package/tree/toggle.scss +5 -9
  647. package/tree/tree-option.scss +2 -4
  648. package/tree/tree-tokens.scss +2 -1
  649. package/tree/tree.scss +3 -5
  650. package/tree-select/_tree-select-theme.scss +4 -15
  651. package/tree-select/tree-select-tokens.scss +16 -0
  652. package/tree-select/tree-select.scss +0 -6
  653. package/{accordion/index.d.ts → types/koobiq-components-accordion.d.ts} +102 -84
  654. package/{actions-panel/index.d.ts → types/koobiq-components-actions-panel.d.ts} +44 -59
  655. package/{alert/index.d.ts → types/koobiq-components-alert.d.ts} +8 -3
  656. package/types/koobiq-components-app-switcher.d.ts +406 -0
  657. package/types/koobiq-components-autocomplete.d.ts +443 -0
  658. package/{badge/index.d.ts → types/koobiq-components-badge.d.ts} +25 -20
  659. package/{breadcrumbs/index.d.ts → types/koobiq-components-breadcrumbs.d.ts} +97 -46
  660. package/types/koobiq-components-button-toggle.d.ts +340 -0
  661. package/types/koobiq-components-button.d.ts +296 -0
  662. package/types/koobiq-components-checkbox.d.ts +172 -0
  663. package/types/koobiq-components-clamped-text.d.ts +184 -0
  664. package/{code-block/index.d.ts → types/koobiq-components-code-block.d.ts} +114 -79
  665. package/{content-panel/index.d.ts → types/koobiq-components-content-panel.d.ts} +81 -25
  666. package/{core/index.d.ts → types/koobiq-components-core.d.ts} +2827 -865
  667. package/{datepicker/index.d.ts → types/koobiq-components-datepicker.d.ts} +161 -116
  668. package/types/koobiq-components-divider.d.ts +43 -0
  669. package/types/koobiq-components-dl.d.ts +235 -0
  670. package/{dropdown/index.d.ts → types/koobiq-components-dropdown.d.ts} +245 -239
  671. package/types/koobiq-components-ellipsis-center.d.ts +85 -0
  672. package/types/koobiq-components-empty-state.d.ts +106 -0
  673. package/{file-upload/index.d.ts → types/koobiq-components-file-upload.d.ts} +214 -107
  674. package/{filter-bar/index.d.ts → types/koobiq-components-filter-bar.d.ts} +410 -495
  675. package/types/koobiq-components-flag.d.ts +68 -0
  676. package/{form-field/index.d.ts → types/koobiq-components-form-field.d.ts} +167 -191
  677. package/types/koobiq-components-icon.d.ts +333 -0
  678. package/{inline-edit/index.d.ts → types/koobiq-components-inline-edit.d.ts} +109 -46
  679. package/types/koobiq-components-input.d.ts +477 -0
  680. package/types/koobiq-components-link-deprecated.d.ts +101 -0
  681. package/types/koobiq-components-link.d.ts +176 -0
  682. package/{list/index.d.ts → types/koobiq-components-list.d.ts} +162 -99
  683. package/types/koobiq-components-loader-overlay.d.ts +101 -0
  684. package/{markdown/index.d.ts → types/koobiq-components-markdown.d.ts} +16 -24
  685. package/types/koobiq-components-modal.d.ts +666 -0
  686. package/types/koobiq-components-navbar.d.ts +569 -0
  687. package/types/koobiq-components-notification-center.d.ts +500 -0
  688. package/{overflow-items/index.d.ts → types/koobiq-components-overflow-items.d.ts} +8 -22
  689. package/types/koobiq-components-popover.d.ts +468 -0
  690. package/types/koobiq-components-progress-bar.d.ts +67 -0
  691. package/{progress-spinner/index.d.ts → types/koobiq-components-progress-spinner.d.ts} +33 -10
  692. package/types/koobiq-components-radio.d.ts +294 -0
  693. package/{resizer/index.d.ts → types/koobiq-components-resizer.d.ts} +37 -2
  694. package/{scrollbar/index.d.ts → types/koobiq-components-scrollbar-deprecated.d.ts} +18 -1
  695. package/types/koobiq-components-scrollbar.d.ts +154 -0
  696. package/types/koobiq-components-search-expandable.d.ts +164 -0
  697. package/{select/index.d.ts → types/koobiq-components-select.d.ts} +360 -167
  698. package/types/koobiq-components-sidebar.d.ts +152 -0
  699. package/types/koobiq-components-sidepanel.d.ts +436 -0
  700. package/types/koobiq-components-skeleton.d.ts +234 -0
  701. package/types/koobiq-components-split-button.d.ts +65 -0
  702. package/{splitter/index.d.ts → types/koobiq-components-splitter-deprecated.d.ts} +44 -1
  703. package/types/koobiq-components-splitter.d.ts +406 -0
  704. package/types/koobiq-components-table.d.ts +44 -0
  705. package/types/koobiq-components-tabs.d.ts +888 -0
  706. package/{tags/index.d.ts → types/koobiq-components-tags.d.ts} +249 -133
  707. package/types/koobiq-components-textarea.d.ts +178 -0
  708. package/{time-range/index.d.ts → types/koobiq-components-time-range.d.ts} +135 -62
  709. package/types/koobiq-components-timepicker.d.ts +223 -0
  710. package/types/koobiq-components-timezone.d.ts +266 -0
  711. package/types/koobiq-components-title.d.ts +184 -0
  712. package/types/koobiq-components-toast.d.ts +289 -0
  713. package/types/koobiq-components-toggle.d.ts +121 -0
  714. package/types/koobiq-components-tooltip.d.ts +610 -0
  715. package/types/koobiq-components-top-bar.d.ts +61 -0
  716. package/types/koobiq-components-tree-select.d.ts +667 -0
  717. package/types/koobiq-components-tree.d.ts +1290 -0
  718. package/types/koobiq-components-username.d.ts +340 -0
  719. package/username/_username-theme.scss +35 -0
  720. package/username/username.scss +10 -34
  721. package/app-switcher/index.d.ts +0 -276
  722. package/autocomplete/index.d.ts +0 -286
  723. package/button/index.d.ts +0 -153
  724. package/button-toggle/index.d.ts +0 -162
  725. package/checkbox/index.d.ts +0 -163
  726. package/clamped-text/index.d.ts +0 -146
  727. package/core/styles/_tokens.scss +0 -7
  728. package/core/styles/common/_clearfix.scss +0 -13
  729. package/core/styles/common/_popup.scss +0 -6
  730. package/core/styles/functions/_index.scss +0 -3
  731. package/core/styles/functions/_number.scss +0 -60
  732. package/core/styles/functions/_string.scss +0 -18
  733. package/core/styles/theming/scrollbar-tokens.scss +0 -25
  734. package/core/styles/typography/_typography-utils.scss +0 -84
  735. package/divider/index.d.ts +0 -20
  736. package/dl/index.d.ts +0 -45
  737. package/ellipsis-center/index.d.ts +0 -71
  738. package/empty-state/index.d.ts +0 -45
  739. package/flag/index.d.ts +0 -44
  740. package/icon/index.d.ts +0 -200
  741. package/input/index.d.ts +0 -354
  742. package/link/index.d.ts +0 -56
  743. package/loader-overlay/index.d.ts +0 -57
  744. package/modal/index.d.ts +0 -339
  745. package/navbar/index.d.ts +0 -372
  746. package/notification-center/index.d.ts +0 -323
  747. package/popover/index.d.ts +0 -182
  748. package/prebuilt-themes/dark-theme.css +0 -1
  749. package/prebuilt-themes/light-theme.css +0 -1
  750. package/progress-bar/index.d.ts +0 -31
  751. package/radio/index.d.ts +0 -203
  752. package/search-expandable/index.d.ts +0 -101
  753. package/sidebar/index.d.ts +0 -94
  754. package/sidepanel/index.d.ts +0 -272
  755. package/skeleton/index.d.ts +0 -26
  756. package/split-button/index.d.ts +0 -46
  757. package/table/index.d.ts +0 -25
  758. package/tabs/index.d.ts +0 -677
  759. package/textarea/index.d.ts +0 -138
  760. package/timepicker/index.d.ts +0 -197
  761. package/timezone/index.d.ts +0 -125
  762. package/title/index.d.ts +0 -139
  763. package/toast/index.d.ts +0 -178
  764. package/toggle/index.d.ts +0 -104
  765. package/tooltip/index.d.ts +0 -335
  766. package/top-bar/index.d.ts +0 -33
  767. package/tree/index.d.ts +0 -802
  768. package/tree-select/index.d.ts +0 -475
  769. package/username/index.d.ts +0 -194
  770. /package/{dynamic-translation/index.d.ts → types/koobiq-components-dynamic-translation.d.ts} +0 -0
  771. /package/{index.d.ts → types/koobiq-components.d.ts} +0 -0
@@ -0,0 +1,84 @@
1
+ # empty-state-error-color
2
+
3
+ Migration schematic invoked automatically by `ng update @koobiq/components@20`
4
+ (registered for `21.0.0-0`). Reports the members the empty-state review removed or turned into
5
+ signals, and the four theme custom properties it renamed. It never writes to the tree.
6
+
7
+ ## Background
8
+
9
+ `errorColor` used to reach the illustration imperatively. `KbqEmptyState.ngAfterContentInit()` read
10
+ the input once and called `KbqEmptyStateIcon.setErrorColor()`, which assigned `color = 'error'` on the
11
+ injected `kbq-icon-item`. Three things followed from that one call:
12
+
13
+ - it never came back — flipping `[errorColor]` to `false` left a red icon above black text;
14
+ - it never arrived late — flipping to `true` after init did nothing;
15
+ - it only happened for one of the two supported markup shapes, because the directive resolved the
16
+ icon through `inject(KbqIconItem)`, which sees an icon on its own host element and not one wrapped
17
+ by it.
18
+
19
+ The tint is driven by the input now, in both shapes, so `setErrorColor()` has no caller and is gone.
20
+
21
+ | Member | Before | After |
22
+ | ------------------------------------ | ------------------------ | ------------------------------------- |
23
+ | `KbqEmptyStateIcon.setErrorColor()` | public, called at init | removed |
24
+ | `KbqEmptyState.icon` | public `@ContentChild` | `protected` `contentChild()` |
25
+ | `KbqEmptyState.ngAfterContentInit()` | public lifecycle hook | removed |
26
+ | `KbqEmptyState.size` | `@Input()`, writable | `input()`, read as `size()` |
27
+ | `--kbq-empty-state-title` | theme token | `--kbq-empty-state-title-color` |
28
+ | `--kbq-empty-state-color` | theme token (text color) | `--kbq-empty-state-text-color` |
29
+ | `--kbq-empty-state-error-title` | theme token | `--kbq-empty-state-error-title-color` |
30
+ | `--kbq-empty-state-error-color` | theme token (text color) | `--kbq-empty-state-error-text-color` |
31
+
32
+ The old names are removed, not deprecated. Nothing chains to them, so an override of one is ignored
33
+ and a `var()` read of one resolves to nothing — in both cases without an error.
34
+
35
+ ## `size` and the file-upload subclass
36
+
37
+ `size` was the last decorator left on the component. It stayed one because
38
+ `KbqFileUploadEmptyState` — a public class in `@koobiq/components/file-upload` — extends
39
+ `KbqEmptyState` and assigned `this.size = 'big'` straight after `super()`, which an `input()` cannot
40
+ take.
41
+
42
+ That subclass redeclares the input with its own default instead:
43
+
44
+ ```ts
45
+ override readonly size = input<KbqDefaultSizes>('big');
46
+ ```
47
+
48
+ So `<kbq-file-upload-empty-state>` still renders at `big` without a binding, and a `[size]` binding
49
+ still overrides it. Nothing changes for anyone rendering that component.
50
+
51
+ ## What it does _not_ do
52
+
53
+ Nothing is rewritten. A call to a removed method has no replacement expression, renaming a token
54
+ override is a theming decision, and `size` is far too common a property name to rewrite blind —
55
+ `file.size`, `blob.size` and `map.size` all appear in files that also render an empty state.
56
+
57
+ The `size` report is therefore matched on the receiver, not the member: only a read like
58
+ `emptyState.size` or `myEmptyState?.size` is flagged. A read through a variable named something else
59
+ is not reported at all, and the summary says so rather than letting you assume it was covered.
60
+
61
+ | Pattern | Manual migration |
62
+ | ------------------------------------------------- | -------------------------------------------------------- |
63
+ | `.setErrorColor()` | Bind `[errorColor]` on `<kbq-empty-state>` and delete it |
64
+ | `--kbq-empty-state-title` / `-color` / `-error-*` | Rename to the `-color`-suffixed names |
65
+ | `emptyState.size` | `emptyState.size()` |
66
+ | `emptyState.size = 'big'` | Bind `[size]="'big'"` — an `input()` has no setter |
67
+
68
+ ## Notes with no call site to point at
69
+
70
+ - The title is rendered with heading typography — `subheading` at `size="normal"`, `headline` at
71
+ `size="big"` — but every usage in the library wrote it as a `div`. Write a real heading of the level
72
+ the page calls for, `<h2 kbq-empty-state-title>`; the component zeroes the user-agent margin, so
73
+ nothing moves.
74
+ - An empty state inserted into a page that has already been read needs `role="status"` on
75
+ `<kbq-empty-state>`, or `role="alert"` for the error variant. The component adds no `role` of its own.
76
+ - `empty-state.scss` loads its own token layer instead of relying on a second `styleUrls` entry, so
77
+ anything reusing the stylesheet across a package boundary now gets the custom properties together
78
+ with the rules that read them.
79
+
80
+ ## Running it manually
81
+
82
+ ```
83
+ ng generate @koobiq/components:empty-state-error-color --project my-app
84
+ ```
@@ -0,0 +1,85 @@
1
+ 'use strict';
2
+
3
+ /**
4
+ * Data for the `empty-state-error-color` migration.
5
+ *
6
+ * The empty-state review closed the one imperative hook the component had and renamed its four theme
7
+ * custom properties:
8
+ *
9
+ * - `KbqEmptyStateIcon.setErrorColor()` — removed. It existed so that `KbqEmptyState` could tint the
10
+ * icon once from `ngAfterContentInit`, which made the tint irreversible, late for anything toggled
11
+ * after init, and silently absent whenever the icon was wrapped rather than carrying the slot
12
+ * attribute. The illustration follows `[errorColor]` on its own now.
13
+ * - `--kbq-empty-state-title`, `--kbq-empty-state-color`, `--kbq-empty-state-error-title`,
14
+ * `--kbq-empty-state-error-color` — renamed to `-title-color`, `-text-color`, `-error-title-color`
15
+ * and `-error-text-color`. The old names are removed outright — nothing chains to them, so an
16
+ * override or a `var()` read of one stops having any effect.
17
+ * - `KbqEmptyState.size` — `@Input()` to `input()`. It was the last decorator on the component, held
18
+ * back because `KbqFileUploadEmptyState` assigned it from its constructor; that subclass redeclares
19
+ * the input with its own `big` default now, so nothing writes to it.
20
+ *
21
+ * Warn-only. A call to a removed method has no replacement expression, a token override is a theming
22
+ * decision the schematic cannot make, and `size` is too common a property name to rewrite blind.
23
+ */
24
+ /** Import specifier that marks a file as an empty-state consumer. */
25
+ const EMPTY_STATE_PACKAGE = '@koobiq/components/empty-state';
26
+ /**
27
+ * Identifier, element and custom-property shapes that mark a consumer without an import.
28
+ *
29
+ * Every `warnPatterns` entry below only applies to a file that also matches this, so it is checked
30
+ * once, ahead of the per-pattern checks, rather than repeated as a per-pattern anchor.
31
+ */
32
+ const EMPTY_STATE_TYPE = '\\bKbqEmptyState\\w*\\b|\\bkbq-empty-state\\b';
33
+ const warnPatterns = [
34
+ {
35
+ pattern: '\\bsetErrorColor\\b',
36
+ message: 'KbqEmptyStateIcon.setErrorColor() was removed. It tinted the icon once from ' +
37
+ 'ngAfterContentInit, so the tint never went away, never arrived for an [errorColor] flipped ' +
38
+ 'after init, and never happened at all when the icon was wrapped by the slot instead of ' +
39
+ 'carrying it. The illustration follows [errorColor] on <kbq-empty-state> now, in both markup ' +
40
+ 'shapes — bind the input and delete the call.'
41
+ },
42
+ {
43
+ // Matches either shape the old name can appear in: a declaration (an override) or a
44
+ // `var(--kbq-empty-state-...)` read.
45
+ pattern: '--kbq-empty-state-(?:title|color|error-title|error-color)\\s*:' +
46
+ '|\\bvar\\(\\s*--kbq-empty-state-(?:title|color|error-title|error-color)\\s*[,)]',
47
+ message: 'The four empty-state theme tokens were renamed: --kbq-empty-state-title becomes ' +
48
+ '--kbq-empty-state-title-color, --kbq-empty-state-color becomes --kbq-empty-state-text-color ' +
49
+ '(it is the text color, not the component color), --kbq-empty-state-error-title becomes ' +
50
+ '--kbq-empty-state-error-title-color and --kbq-empty-state-error-color becomes ' +
51
+ '--kbq-empty-state-error-text-color. The old names are gone, not deprecated: an override of one ' +
52
+ 'is ignored and a var() read of one resolves to nothing, in both cases silently. Rename it.'
53
+ },
54
+ {
55
+ // `size` is far too common a property name to match bare, or to rewrite: `file.size`,
56
+ // `blob.size`, `map.size` and `event.size` all live in files that also render an empty
57
+ // state. Matched only on a receiver that names one, which covers the @ViewChild, viewChild()
58
+ // and `#ref="kbqEmptyState"` shapes; `(?!\s*\()` keeps an already-migrated call quiet. Reads
59
+ // through a differently named variable are left to the summary.
60
+ pattern: '\\b\\w*[eE]mptyState\\w*\\s*(?:\\?\\.|\\.)\\s*size\\b(?!\\s*\\()',
61
+ message: 'KbqEmptyState.size is an input() now, so reading it is a call: emptyState.size(). Writing ' +
62
+ 'to it is gone — bind [size] instead. KbqFileUploadEmptyState redeclares the same input to ' +
63
+ 'keep defaulting to "big", so its rendered size is unchanged. A template binding [size]="..." ' +
64
+ 'needs no edit.'
65
+ }
66
+ ];
67
+ /** Printed once per project, after the per-file reports. */
68
+ const SUMMARY = [
69
+ ' The title is rendered with heading typography but was written as a <div> in every usage in the ' +
70
+ 'library. Write it as a real heading of the level the page calls for — <h2 kbq-empty-state-title> ' +
71
+ '— the component zeroes the browser margin, so nothing moves.',
72
+ ' An empty state inserted into a page that has already been read needs role="status" (role="alert" ' +
73
+ 'for the error variant) on <kbq-empty-state>; the component adds no role of its own.',
74
+ ' empty-state.scss loads its own token layer now instead of relying on a second styleUrls entry, ' +
75
+ 'so anything reusing the stylesheet gets the custom properties with the rules. A workaround that ' +
76
+ 're-declared --kbq-empty-state-size-* tokens to compensate can be dropped.',
77
+ ' KbqEmptyState.size is an input(). Reads through a variable this schematic cannot recognise as an ' +
78
+ 'empty state are not reported, because "size" is too common a property to match on its own — ' +
79
+ 'check any code that reads .size off a KbqEmptyState or a subclass of it.'
80
+ ];
81
+
82
+ exports.EMPTY_STATE_PACKAGE = EMPTY_STATE_PACKAGE;
83
+ exports.EMPTY_STATE_TYPE = EMPTY_STATE_TYPE;
84
+ exports.SUMMARY = SUMMARY;
85
+ exports.warnPatterns = warnPatterns;
@@ -0,0 +1,71 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var utils_messages = require('../../utils/messages.js');
6
+ var utils_packageConfig = require('../../package-config-BhU2TfC8.js');
7
+ var migrations_emptyStateErrorColor_data = require('./data.js');
8
+ require('@angular-devkit/schematics');
9
+ require('@schematics/angular/utility');
10
+
11
+ const LABEL = '[empty-state-error-color]';
12
+ const EXTENSIONS = ['.ts', '.html', '.scss', '.css'];
13
+ const anchorRegExp = new RegExp(migrations_emptyStateErrorColor_data.EMPTY_STATE_TYPE);
14
+ const compiledWarnPatterns = migrations_emptyStateErrorColor_data.warnPatterns.map(({ pattern, message }) => ({ regExp: new RegExp(pattern), message }));
15
+ /**
16
+ * Decodes a file's content, but only once it is known to be an empty-state consumer — importing the
17
+ * package, naming the component, or theming it. Every `warnPatterns` entry only applies to a file
18
+ * that passes this check, so it is the single gate for all of them.
19
+ *
20
+ * Checks the raw buffer for the import specifier first, since that is the common case for `.ts` and
21
+ * `.html` consumers and needs no decoding to test; only the fallback name/selector check requires the
22
+ * decoded string, and once decoded it is reused rather than decoded again for the patterns below.
23
+ */
24
+ function readIfEmptyStateConsumer(buffer) {
25
+ if (buffer.includes(migrations_emptyStateErrorColor_data.EMPTY_STATE_PACKAGE))
26
+ return buffer.toString();
27
+ const content = buffer.toString();
28
+ return anchorRegExp.test(content) ? content : undefined;
29
+ }
30
+ /**
31
+ * Reports the removed `KbqEmptyStateIcon.setErrorColor()` and the four renamed theme custom
32
+ * properties. Never writes: a removed method has no replacement expression, and the old token names
33
+ * are still read as fallbacks, so renaming them is a decision rather than a fix.
34
+ *
35
+ * Stylesheets are visited as well as `.ts` and `.html`, because the tokens are a theming contract
36
+ * consumers override from their own SCSS.
37
+ */
38
+ function emptyStateErrorColor(options) {
39
+ return async (tree, context) => {
40
+ const { project } = options;
41
+ const projectDefinition = await utils_packageConfig.setupOptions(project, tree);
42
+ const root = projectDefinition?.root ?? '';
43
+ const rootDir = root ? tree.getDir(root) : tree.root;
44
+ let consumers = 0;
45
+ let reported = 0;
46
+ utils_packageConfig.visitProjectFiles(rootDir, (filePath, entry) => {
47
+ if (!EXTENSIONS.some((extension) => filePath.endsWith(extension)))
48
+ return;
49
+ const content = entry?.content.length ? readIfEmptyStateConsumer(entry.content) : undefined;
50
+ if (!content)
51
+ return;
52
+ consumers++;
53
+ for (const { regExp, message } of compiledWarnPatterns) {
54
+ if (!regExp.test(content))
55
+ continue;
56
+ reported++;
57
+ utils_messages.logMessage(context.logger, [`${LABEL} ${filePath}`, ` ${message}`]);
58
+ }
59
+ });
60
+ // Nothing here renders an empty state, so the summary would only be noise.
61
+ if (consumers === 0)
62
+ return;
63
+ utils_messages.logMessage(context.logger, [
64
+ `${LABEL} processed kbq-empty-state under "${root || '<workspace root>'}", ` +
65
+ `${consumers} file(s) reference the component, ${reported} call site(s) reported.`,
66
+ ...migrations_emptyStateErrorColor_data.SUMMARY
67
+ ]);
68
+ };
69
+ }
70
+
71
+ exports.default = emptyStateErrorColor;
@@ -0,0 +1,15 @@
1
+ {
2
+ "$schema": "http://json-schema.org/schema",
3
+ "$id": "koobiq-components-empty-state-error-color",
4
+ "title": "Koobiq components empty-state review migration",
5
+ "type": "object",
6
+ "properties": {
7
+ "project": {
8
+ "type": "string",
9
+ "description": "Name of the project to inspect. If omitted, the migration runs over the whole tree.",
10
+ "$default": {
11
+ "$source": "projectName"
12
+ }
13
+ }
14
+ }
15
+ }
@@ -10,13 +10,13 @@ This schematic provides migration for `KbqEmptyState` new `size` attribute. It i
10
10
  Usage for Angular Cli:
11
11
 
12
12
  ```shell
13
- ng g @koobiq/components:empty-state-size-attr --project <your project>
13
+ ng g @koobiq/components:empty-state-size-attr --project "<your project>"
14
14
  ```
15
15
 
16
16
  Usage for Nx:
17
17
 
18
18
  ```shell
19
- nx g @koobiq/components:empty-state-size-attr --project <your project>
19
+ nx g @koobiq/components:empty-state-size-attr --project "<your project>"
20
20
  ```
21
21
 
22
22
  ### Run locally
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var utils_angularParsing = require('../../utils/angular-parsing.js');
6
- var utils_packageConfig = require('../../utils/package-config.js');
6
+ var utils_packageConfig = require('../../package-config-BhU2TfC8.js');
7
7
  var utils_typescript = require('../../utils/typescript.js');
8
8
  require('typescript');
9
9
  require('../../utils/ast.js');
@@ -0,0 +1,70 @@
1
+ # file-upload-cva-and-primitives
2
+
3
+ Migration schematic invoked automatically by `ng update @koobiq/components@20`
4
+ (registered for `21.0.0-0`). Reports the file-upload behavior the component review changed. It never
5
+ writes to the tree.
6
+
7
+ ## Background
8
+
9
+ The review repaired the two contracts the component is judged on — the form contract and the file-list
10
+ primitive.
11
+
12
+ | Member | Before | After |
13
+ | ----------------------------------- | ------------------------------------------- | ------------------------------------------------ |
14
+ | `writeValue()` | wrote through the `file` / `files` setter | writes the list directly |
15
+ | `KbqFileList.remove(item)` | returned the kept items, removed every copy | returns the removed item, removes the first copy |
16
+ | `KbqFileList.removeAt(index)` | rewrote the list and emitted for any index | ignores an index outside the list |
17
+ | `hasFocus` | public, always `false` | removed |
18
+ | single uploader's hidden input | `multiple` | single-selection |
19
+ | `[multiple]` on the single uploader | forwarded to that input | not an input at all |
20
+ | `[file]` / `[files]` setter | wrote the list and notified the form | writes the list only |
21
+ | `KbqInputFileMultipleLabel` | exported interface | removed |
22
+
23
+ `writeValue()` deserves a note. It assigned through the `file`/`files` setters, and those setters call
24
+ `cvaOnChange` — the view→model half of the `ControlValueAccessor`. Angular's model→view callback
25
+ therefore re-entered the view→model pipeline: every `setValue`/`patchValue` marked the control
26
+ **dirty** and emitted `valueChanges` twice, and because `FormControl.reset()` calls `markAsPristine()`
27
+ _before_ `setValue()`, a reset uploader came back dirty. The same method also emitted the public
28
+ `(fileChange)`/`(filesChange)` output, so a background `patchValue` was indistinguishable from a user
29
+ picking a file.
30
+
31
+ ## What it does _not_ do
32
+
33
+ Nothing is rewritten. `remove()` keeps its signature while returning the opposite array, and whether an
34
+ output handler was meant to run for a programmatic write is a decision, not a rename.
35
+
36
+ | Pattern | Manual migration |
37
+ | ----------------------------------- | ------------------------------------------------------------------------------ |
38
+ | `.remove(item)` | The return value is the removed item now; use `removeAt(index)` for a position |
39
+ | `.hasFocus` | Track focus with `cdkMonitorSubtreeFocus` or `(focusin)`/`(focusout)` |
40
+ | `(fileChange)` / `(filesChange)` | Subscribe to the control if the handler was meant to see programmatic writes |
41
+ | `KbqInputFileMultipleLabel` | Use `KbqMultipleFileUploadLocaleConfiguration` from `@koobiq/components/core` |
42
+ | `[file]` / `[files]` beside a form | Drop the binding — the form owns the value; without a form nothing changes |
43
+ | `<kbq-single-file-upload multiple>` | Drop the attribute, or switch to `<kbq-multiple-file-upload>` |
44
+
45
+ ## Notes with no call site to point at
46
+
47
+ - A programmatic value no longer marks the control dirty, and `valueChanges` fires once instead of
48
+ twice. Error display keyed off `dirty` shows fewer errors than before, not more.
49
+ - The control is marked touched when focus leaves the uploader, so the default `ErrorStateMatcher`
50
+ shows a `required` error to a user who tabbed through without attaching anything.
51
+ - The single uploader renders a single-selection file input, so the system dialog no longer offers a
52
+ multi-selection the component would throw away. Files a drop hands over past the first are reported
53
+ through the new `(rejected)` output, as are duplicates the multiple uploader skips.
54
+ - `accept` is documented as what it is: the native attribute, which only filters the system dialog.
55
+ Rejection still needs a validator — `FileValidators.isCorrectExtension` takes the same array.
56
+ - The locale gains a `fileUpload.a11y` section holding the live-region announcements. A hand-written
57
+ `KbqLocaleData` registered through `KBQ_LOCALE_DATA` has to add those three keys.
58
+ - 22 `--kbq-file-upload-*` custom properties that no rule read were removed, including both
59
+ `*-states-focused-focus-outline-color` tokens. Setting one never had an effect.
60
+ - `removeAt()` ignores an index outside the list. It used to rewrite `list` with a fresh array for a
61
+ `splice` that removed nothing — waking every `list()` consumer for a no-op — and emit `itemRemoved`
62
+ carrying `undefined` in a tuple typed `[T, number]`.
63
+ - A drop that hands over no files no longer reaches the list. An empty directory unwraps to zero
64
+ files, and under `addStrategy="replace"` that used to clear a selection the user had already built.
65
+
66
+ ## Running it manually
67
+
68
+ ```
69
+ ng generate @koobiq/components:file-upload-cva-and-primitives --project my-app
70
+ ```
@@ -0,0 +1,97 @@
1
+ 'use strict';
2
+
3
+ /**
4
+ * Data for the `file-upload-cva-and-primitives` migration.
5
+ *
6
+ * The file-upload review repaired the two contracts the component is judged on — the form contract
7
+ * and the file-list primitive — and both changes are behavioral, so nothing here is rewritten:
8
+ *
9
+ * - `writeValue()` no longer routes through the `file`/`files` setters, so a programmatic value stops
10
+ * marking the control dirty, stops emitting `valueChanges` twice, and no longer fires
11
+ * `(fileChange)`/`(filesChange)`.
12
+ * - `KbqFileList.remove()` now does what its JSDoc always said: removes the first occurrence, returns
13
+ * the removed item, and emits `itemRemoved`. It used to return the items it kept and remove every
14
+ * occurrence silently.
15
+ * - The single uploader's hidden input is no longer `multiple`, so the system dialog cannot select
16
+ * files the component would discard; whatever a drop hands over past the first file is reported
17
+ * through the new `(rejected)` output.
18
+ * - `KbqMultipleFileUploadComponent.hasFocus` is removed — it was public and read by nothing.
19
+ * - `KbqInputFileMultipleLabel` is removed. Its replacement lives in another entry point, so the
20
+ * rename cannot be applied without also moving the import.
21
+ *
22
+ * Warn-only: which value a call site wanted from `remove()` and whether a consumer relied on the
23
+ * output firing for a programmatic write are decisions, not renames.
24
+ */
25
+ /** Import specifier that marks a file as a file-upload consumer. */
26
+ const FILE_UPLOAD_PACKAGE = '@koobiq/components/file-upload';
27
+ /** Identifier and element shapes that mark a consumer without an import. */
28
+ const FILE_UPLOAD_TYPE = '\\bKbq\\w*File(?:Upload|List|Loader|Multiple)\\w*\\b|\\bkbq-(?:single-|multiple-)?file-upload\\b';
29
+ const warnPatterns = [
30
+ {
31
+ pattern: '\\.\\s*remove\\s*\\(',
32
+ message: 'KbqFileList.remove() follows its documented contract now: it removes the first occurrence, ' +
33
+ 'returns the removed item and emits itemRemoved. It used to return the items it kept, drop ' +
34
+ 'every occurrence and emit nothing, so a call site reading the return value gets the ' +
35
+ 'opposite array from before. Use removeAt(index) when you mean a position.'
36
+ },
37
+ {
38
+ pattern: '\\.\\s*hasFocus\\b',
39
+ message: 'KbqMultipleFileUploadComponent.hasFocus was removed. It was public, always false and read ' +
40
+ 'by nothing; track focus with cdkMonitorSubtreeFocus or a (focusin)/(focusout) pair.'
41
+ },
42
+ {
43
+ pattern: '\\((?:fileChange|filesChange)\\)|\\.\\s*(?:fileChange|filesChange)\\s*\\.\\s*subscribe',
44
+ message: 'writeValue() no longer emits (fileChange)/(filesChange). The outputs report a user picking ' +
45
+ 'or removing a file; a setValue/patchValue/reset from the host no longer looks like one. A ' +
46
+ 'handler that started an upload from there also ran on every programmatic write — subscribe ' +
47
+ 'to the control instead if that was the intent.'
48
+ },
49
+ {
50
+ pattern: '\\bKbqInputFileMultipleLabel\\b',
51
+ message: 'KbqInputFileMultipleLabel was removed. Use KbqMultipleFileUploadLocaleConfiguration from ' +
52
+ '@koobiq/components/core — note the entry point, the import moves with the rename. The index ' +
53
+ 'signature only widened the config so an unknown key could be passed along with the labels, ' +
54
+ 'and nothing reads one.'
55
+ },
56
+ {
57
+ pattern: '\\[\\s*(?:file|files)\\s*\\]|\\[\\(\\s*(?:file|files)\\s*\\)\\]',
58
+ message: 'Writing [file]/[files] no longer notifies the form. The setter is the model→view half, like ' +
59
+ 'writeValue(): it fills the list and stops there. This only matters when the same component ' +
60
+ 'also carries formControl, formControlName or ngModel — two sources of truth for one value; ' +
61
+ 'drop the binding and let the form own it. Without a form the binding is unchanged, and ' +
62
+ '[(file)]/[(files)] still report what the user does.'
63
+ },
64
+ {
65
+ pattern: '<\\s*kbq-single-file-upload\\b[^>]*\\bmultiple\\b',
66
+ message: 'kbq-single-file-upload no longer forwards `multiple` to its hidden input. It used to put the ' +
67
+ 'system dialog back into multi-select on a component that keeps one file and discarded the ' +
68
+ 'rest; remove the attribute, or use kbq-multiple-file-upload if several files were intended.'
69
+ }
70
+ ];
71
+ /** Printed once per project, after the per-file reports. */
72
+ const SUMMARY = [
73
+ ' A programmatic value no longer marks the control dirty. `control.setValue(...)` emits valueChanges ' +
74
+ 'once instead of twice, and a control reset right after `markAsPristine()` stays pristine — error ' +
75
+ 'display keyed off `dirty` shows fewer errors than before, not more.',
76
+ ' The control is marked touched when focus leaves the uploader, so the default ErrorStateMatcher ' +
77
+ 'shows a `required` error to a user who tabbed through without attaching anything.',
78
+ ' The single uploader renders a single-selection file input. The system dialog no longer offers a ' +
79
+ 'multi-selection the component would throw away; files a drop hands over past the first are ' +
80
+ 'reported through the new (rejected) output, as are duplicates skipped by the multiple uploader.',
81
+ ' `accept` is documented as what it is — the native attribute, which only filters the system dialog. ' +
82
+ 'Rejection still needs a validator; FileValidators.isCorrectExtension takes the same array.',
83
+ ' The locale gains a `fileUpload.a11y` section with the live-region announcements. A hand-written ' +
84
+ 'KbqLocaleData registered through KBQ_LOCALE_DATA has to add those three keys.',
85
+ ' 22 --kbq-file-upload-* custom properties that no rule read were removed, including both ' +
86
+ '*-states-focused-focus-outline-color tokens. Setting one never had an effect.',
87
+ ' KbqFileList.removeAt(index) ignores an index outside the list. It used to rewrite the list with a ' +
88
+ 'fresh array anyway — waking every list() consumer for a no-op — and emit itemRemoved carrying ' +
89
+ 'undefined in a tuple typed [T, number].',
90
+ ' A drop that hands over no files (an empty directory unwraps to zero) no longer reaches the list. ' +
91
+ 'Under addStrategy="replace" it used to clear a selection the user had already built.'
92
+ ];
93
+
94
+ exports.FILE_UPLOAD_PACKAGE = FILE_UPLOAD_PACKAGE;
95
+ exports.FILE_UPLOAD_TYPE = FILE_UPLOAD_TYPE;
96
+ exports.SUMMARY = SUMMARY;
97
+ exports.warnPatterns = warnPatterns;
@@ -0,0 +1,60 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var utils_messages = require('../../utils/messages.js');
6
+ var utils_packageConfig = require('../../package-config-BhU2TfC8.js');
7
+ var migrations_fileUploadCvaAndPrimitives_data = require('./data.js');
8
+ require('@angular-devkit/schematics');
9
+ require('@schematics/angular/utility');
10
+
11
+ const LABEL = '[file-upload-cva-and-primitives]';
12
+ const EXTENSIONS = ['.ts', '.html'];
13
+ /** A file is a file-upload consumer if it imports the package, names a type, or renders an uploader. */
14
+ function referencesFileUpload(content) {
15
+ return content.includes(migrations_fileUploadCvaAndPrimitives_data.FILE_UPLOAD_PACKAGE) || new RegExp(migrations_fileUploadCvaAndPrimitives_data.FILE_UPLOAD_TYPE).test(content);
16
+ }
17
+ /**
18
+ * Reports the file-upload behavior the review changed. Never writes: `remove()` keeps its signature
19
+ * while returning the opposite array, and whether an output handler wanted to run for a programmatic
20
+ * write is a decision rather than a rename.
21
+ *
22
+ * `.html` is visited as well as `.ts`, because `(fileChange)`/`(filesChange)` are template bindings.
23
+ */
24
+ function fileUploadCvaAndPrimitives(options) {
25
+ return async (tree, context) => {
26
+ const { project } = options;
27
+ const projectDefinition = await utils_packageConfig.setupOptions(project, tree);
28
+ const root = projectDefinition?.root ?? '';
29
+ const rootDir = root ? tree.getDir(root) : tree.root;
30
+ let consumers = 0;
31
+ let reported = 0;
32
+ utils_packageConfig.visitProjectFiles(rootDir, (filePath, entry) => {
33
+ if (!EXTENSIONS.some((extension) => filePath.endsWith(extension)))
34
+ return;
35
+ const content = entry?.content.toString();
36
+ if (!content || !referencesFileUpload(content))
37
+ return;
38
+ consumers++;
39
+ // `referencesFileUpload` above is the only scoping rule. A per-pattern anchor used to
40
+ // re-test the type regex here, which silently skipped a file that reaches the component
41
+ // through the import path alone — `KbqDropzoneData` names no type the regex matches.
42
+ for (const { pattern, message } of migrations_fileUploadCvaAndPrimitives_data.warnPatterns) {
43
+ if (!new RegExp(pattern).test(content))
44
+ continue;
45
+ reported++;
46
+ utils_messages.logMessage(context.logger, [`${LABEL} ${filePath}`, ` ${message}`]);
47
+ }
48
+ });
49
+ // Nothing here renders a file-upload, so the summary would only be noise.
50
+ if (consumers === 0)
51
+ return;
52
+ utils_messages.logMessage(context.logger, [
53
+ `${LABEL} processed kbq-file-upload under "${root || '<workspace root>'}", ` +
54
+ `${consumers} file(s) reference the component, ${reported} call site(s) reported.`,
55
+ ...migrations_fileUploadCvaAndPrimitives_data.SUMMARY
56
+ ]);
57
+ };
58
+ }
59
+
60
+ exports.default = fileUploadCvaAndPrimitives;
@@ -0,0 +1,15 @@
1
+ {
2
+ "$schema": "http://json-schema.org/schema",
3
+ "$id": "koobiq-components-file-upload-cva-and-primitives",
4
+ "title": "Koobiq components file-upload review migration",
5
+ "type": "object",
6
+ "properties": {
7
+ "project": {
8
+ "type": "string",
9
+ "description": "Name of the project to inspect. If omitted, the migration runs over the whole tree.",
10
+ "$default": {
11
+ "$source": "projectName"
12
+ }
13
+ }
14
+ }
15
+ }
@@ -0,0 +1,90 @@
1
+ # file-upload-deprecated-outputs
2
+
3
+ Migration schematic invoked automatically by `ng update @koobiq/components@21`
4
+ (registered for `21.0.0-0`). Renames the deprecated file-upload outputs to
5
+ their replacements.
6
+
7
+ ## Background
8
+
9
+ `KbqMultipleFileUploadComponent.fileQueueChanged` and
10
+ `KbqSingleFileUploadComponent.fileQueueChange` (#DS-5229) were deprecated in
11
+ favor of `filesChange` / `fileChange`. Removal was originally planned for the
12
+ next major release, but was moved up to 21.0.0. Both outputs fired at exactly
13
+ the same call sites, with the same payload, as their replacement — this is a
14
+ pure rename, not a behaviour change.
15
+
16
+ ## What it does
17
+
18
+ The schematic walks every `.ts` and `.html` file in the project (skipping
19
+ `node_modules`, `dist`, `coverage`, `.angular` and `out-tsc`) and renames the
20
+ identifier wherever it appears:
21
+
22
+ | Before | After |
23
+ | ------------------ | ------------- |
24
+ | `fileQueueChanged` | `filesChange` |
25
+ | `fileQueueChange` | `fileChange` |
26
+
27
+ Both names are unambiguous — they don't collide with any other Angular or
28
+ TypeScript identifier — so the rename applies everywhere the text occurs:
29
+
30
+ - A template binding, in an external `.html` file or an inline
31
+ `@Component({ template })` string: `(fileQueueChanged)="…"` →
32
+ `(filesChange)="…"`.
33
+ - Programmatic TypeScript access: `comp.fileQueueChanged.subscribe(...)` →
34
+ `comp.filesChange.subscribe(...)`.
35
+
36
+ The rewrite is idempotent — running it twice does not change an
37
+ already-migrated file.
38
+
39
+ ## Running it
40
+
41
+ ```shell
42
+ ng g @koobiq/components:file-upload-deprecated-outputs --project "<your project>"
43
+ ```
44
+
45
+ Pass `--fix=false` to see what would change without writing files. `fix`
46
+ defaults to `true`.
47
+
48
+ [Params](schema.ts)
49
+
50
+ ### Run locally
51
+
52
+ Build package
53
+
54
+ ```shell
55
+ yarn run build:schematics
56
+ ```
57
+
58
+ Run command (for example, for `koobiq-docs` project)
59
+
60
+ ```shell
61
+ ng g ./dist/components/schematics/collection.json:file-upload-deprecated-outputs --project koobiq-docs
62
+ ```
63
+
64
+ ### Result
65
+
66
+ #### Before
67
+
68
+ ```ts
69
+ @Component({
70
+ selector: 'my-uploads',
71
+ template: `
72
+ <kbq-file-upload (fileQueueChange)="onFileChange($event)"></kbq-file-upload>
73
+ <kbq-file-upload multiple (fileQueueChanged)="onFilesChange($event)"></kbq-file-upload>
74
+ `
75
+ })
76
+ export class MyUploads {}
77
+ ```
78
+
79
+ #### After
80
+
81
+ ```ts
82
+ @Component({
83
+ selector: 'my-uploads',
84
+ template: `
85
+ <kbq-file-upload (fileChange)="onFileChange($event)"></kbq-file-upload>
86
+ <kbq-file-upload multiple (filesChange)="onFilesChange($event)"></kbq-file-upload>
87
+ `
88
+ })
89
+ export class MyUploads {}
90
+ ```
@@ -0,0 +1,20 @@
1
+ 'use strict';
2
+
3
+ /**
4
+ * Replacement data for the removal of the deprecated file-upload outputs
5
+ *
6
+ * `KbqMultipleFileUploadComponent.fileQueueChanged` and
7
+ * `KbqSingleFileUploadComponent.fileQueueChange` were deprecated in favor of
8
+ * `filesChange` / `fileChange` and are removed in this release. Both names
9
+ * are unambiguous — they don't collide with any other Angular or TypeScript
10
+ * identifier — so a plain `\b…\b` word-boundary rename is safe everywhere
11
+ * the identifier can appear: an `(fileQueueChanged)="…"` template binding
12
+ * (external `.html` or inline `template:` string), or a programmatic
13
+ * `.fileQueueChanged` property access / `.subscribe(...)` call in `.ts`.
14
+ */
15
+ const replacements = [
16
+ { from: '\\bfileQueueChanged\\b', to: 'filesChange' },
17
+ { from: '\\bfileQueueChange\\b', to: 'fileChange' }
18
+ ];
19
+
20
+ exports.replacements = replacements;