@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,93 @@
1
+ # tabs-signals-and-aria
2
+
3
+ Migration schematic invoked automatically by `ng update @koobiq/components@21` (registered for `21.0.0-0`).
4
+ Reports the subclasses of the tabs classes and the direct calls of their `ngOnChanges`, the members the tabs review
5
+ removed or changed, and states the ARIA and theming changes that have no call site to point at. It never writes to the
6
+ tree.
7
+
8
+ ## Signal inputs and queries
9
+
10
+ The decorator inputs of `KbqTabGroup`, `KbqTab`, `KbqTabHeader`, `KbqTabNavBar`, `KbqTabLink`, `KbqTabLabelWrapper`
11
+ and `KbqTabBody` are signal inputs named `<member>Input`, handed to the unchanged member from `ngOnChanges`. Their
12
+ decorator queries are signal queries behind getters: `KbqTabGroup.tabs` and the `items` of the header and the nav bar
13
+ stay `QueryList`s. Reading and writing the members works as before — `tab.disabled`, `tabLink.active` and the selection
14
+ of a group stay plain properties.
15
+
16
+ | Use | What to do |
17
+ | ------------------------------------------- | --------------------------------------------------------------------- |
18
+ | A subclass with its own `ngOnChanges` | Mark it `override` and call `super.ngOnChanges(changes)` |
19
+ | A subclass that redeclared an `@Input()` | Override the `<member>Input` signal input, e.g. `headerPositionInput` |
20
+ | A subclass that redeclared a query | Override the getter (`tabs`, `items`, `labelContent`, …) |
21
+ | `ngOnChanges` called with a `SimpleChanges` | Key it by `<member>Input` (`disabledInput`), or bind the input |
22
+
23
+ A boolean input accepts `boolean | string | null | undefined` in a template now, rather than anything.
24
+
25
+ ## Review
26
+
27
+ The review closed the members that were wired to nothing and gave `KbqTabGroup` the ARIA tabs pattern that
28
+ `KbqTabNavBar`, in the same package, already had.
29
+
30
+ | Member | Before | After |
31
+ | ------------------------------- | ----------------------- | --------------------------------------- |
32
+ | `KbqTabGroup.resizeStream` | public `Subject` | removed |
33
+ | `(window:resize)` on the group | host listener | removed |
34
+ | `KbqTabGroup.disabled` | published input | removed |
35
+ | `KbqTabGroup.getTabIndex()` | `(tab, index)` | `(tab, tabHeader, index)`, never `null` |
36
+ | `KbqVerticalTabsCssStyler` | applies a host class | deprecated no-op |
37
+ | `KbqTabLabelWrapper` host | `[attr.disabled]` | `[attr.aria-disabled]` |
38
+ | `KbqTabLink` host | `[attr.disabled]` | `[attr.aria-disabled]` only |
39
+ | `KbqTabBody.afterLeavingCenter` | `EventEmitter<boolean>` | `EventEmitter<void>` |
40
+
41
+ The header is observed with the CDK `SharedResizeObserver` now, which also catches container resizes that no window
42
+ event reports, so a manual `resizeStream.next(event)` has no counterpart. `KbqTabGroup.disabled` was published,
43
+ documented and appeared in the API table, and no template bound it and no style targeted it: disable the individual
44
+ tabs instead.
45
+
46
+ | Pattern | Manual migration |
47
+ | -------------------------- | --------------------------------------------------------------- |
48
+ | `.resizeStream` | Nothing to call; the header observes itself |
49
+ | `<kbq-tab-group disabled>` | Disable the tabs: `<kbq-tab [disabled]="true">` |
50
+ | `.getTabIndex(tab, index)` | Pass the header: `getTabIndex(tab, tabHeader, index)` |
51
+ | `KbqVerticalTabsCssStyler` | Stop importing it; the class follows the `vertical` binding now |
52
+ | `.kbq-tab-label[disabled]` | Target `.kbq-disabled`, or `[aria-disabled="true"]` in a test |
53
+
54
+ ## What it cannot reach
55
+
56
+ `KbqTabGroup.disabled` is matched only where the type name and the property access sit on one line —
57
+ `<kbq-tab-group disabled>`, or a single-statement access. The two-step form, where the reference is typed once and read
58
+ later,
59
+
60
+ ```ts
61
+ @ViewChild(KbqTabGroup) group: KbqTabGroup;
62
+ // ...
63
+ if (this.group.disabled) { … }
64
+ ```
65
+
66
+ is **not** reported: widening it to the whole file would fire on every `.disabled` of a tab in any file that mentions a
67
+ tab group. The removed input did nothing, so a missed call site is dead code rather than a behaviour change.
68
+
69
+ A stylesheet matching `a[disabled]` inside a nav bar has to move to `.kbq-disabled`; stylesheets are not visited.
70
+
71
+ ## Notes with no call site to point at
72
+
73
+ - `KbqTabGroup` renders the ARIA tabs pattern: the label strip is a `role="tablist"` (carrying
74
+ `aria-orientation="vertical"` when `vertical` is set), each label a `role="tab"` with `aria-selected` and
75
+ `aria-controls`, and each body a `role="tabpanel"` with `aria-labelledby` and a tab stop while it is the active one.
76
+ Hand-rolled `role` or `aria-*` attributes on those elements are duplicates now.
77
+ - The roving `tabindex` follows the header's focus position rather than the selection, and a disabled tab gets `-1`
78
+ rather than no attribute at all. A group whose selected tab was disabled had no element with `tabindex="0"`.
79
+ - `KbqTabNavBar` emits `aria-orientation="vertical"` when it is both vertical and a real tablist — that is, when
80
+ `[tabNavPanel]` is supplied. Without `[tabNavPanel]` the nav bar stays plain navigation.
81
+ - `[vertical]` works as a binding, and `disablePagination` is derived rather than latched, so a header that stops being
82
+ vertical gets its paginator arrows back.
83
+ - `KbqTabHeader` is `OnPush` like every other component in the package.
84
+ - `KbqPaginatedTabHeader` is exported from the entry point, and the duplicate `ScrollDirection` in
85
+ `tab-header.component` was deleted in favour of the base one.
86
+ - The four `on-surface` theme branches read the `--kbq-tabs-tab-item-*-on-surface-*` tokens instead of the
87
+ `on-background` family.
88
+
89
+ ## Running it manually
90
+
91
+ ```bash
92
+ ng g @koobiq/components:tabs-signals-and-aria --project "<your project>"
93
+ ```
@@ -0,0 +1,139 @@
1
+ 'use strict';
2
+
3
+ /**
4
+ * Data for the `tabs-signals-and-aria` migration.
5
+ *
6
+ * The decorator inputs of the tabs are signal inputs named `<member>Input`, handed to the unchanged member from
7
+ * `ngOnChanges`, and their decorator queries are signal queries behind getters. Reads and writes of the members are
8
+ * unchanged; a subclass and a hand-made `SimpleChanges` are not.
9
+ *
10
+ * The tabs review closed the members that were wired to nothing and gave `KbqTabGroup` the ARIA tabs pattern its
11
+ * sibling in the same package already had:
12
+ *
13
+ * - `KbqTabGroup.resizeStream` and the `(window:resize)` host listener — removed. The header is observed with the
14
+ * CDK `SharedResizeObserver` now, which also catches container resizes no window event reports.
15
+ * - `KbqTabGroup.disabled` — removed. It was published, documented and read by nothing at all.
16
+ * - `KbqTabGroup.getTabIndex()` — takes the header as its second argument, and returns `-1` instead of `null` for a
17
+ * disabled tab so the strip keeps exactly one tab stop.
18
+ * - `KbqVerticalTabsCssStyler` — deprecated no-op. The vertical layout class is bound from the components
19
+ * themselves, so `[vertical]="false"` now removes it.
20
+ * - `KbqTabLabelWrapper` and `KbqTabLink` emit `aria-disabled` instead of a bare `disabled` attribute.
21
+ *
22
+ * Warn-only. A removed member has no replacement expression, and an attribute selector has to be rewritten by hand.
23
+ */
24
+ /** Import specifier that marks a file as a tabs consumer. */
25
+ const TABS_PACKAGE = '@koobiq/components/tabs';
26
+ /**
27
+ * Identifier and element shapes that mark a consumer without an import.
28
+ *
29
+ * `KbqTabs?(?![a-z])` rather than `KbqTab\w*`: the greedy form also swallows `KbqTable`, a different component in
30
+ * the same library. Requiring a non-lowercase character after the optional `s` keeps every real export (`KbqTab`,
31
+ * `KbqTabGroup`, `KbqTabNavBar`, `KbqTabsModule`) and drops `KbqTable*`.
32
+ */
33
+ const TABS_TYPE = '\\bKbqTabs?(?![a-z])\\w*\\b|\\bkbq-tab(?:-group|-nav-bar)?\\b|\\bkbqTab(?:NavBar|Link|Label)\\b';
34
+ const CLASSES = [
35
+ 'KbqTabGroup',
36
+ 'KbqTab',
37
+ 'KbqTabHeader',
38
+ 'KbqTabNavBar',
39
+ 'KbqTabLink',
40
+ 'KbqTabLabelWrapper',
41
+ 'KbqTabBody'
42
+ ].join('|');
43
+ const SUBCLASS = `\\bextends\\s+(?:${CLASSES})\\b`;
44
+ /** Patterns evaluated for every `.ts` and `.html` file that references the tabs. */
45
+ const warnPatterns = [
46
+ {
47
+ anchor: SUBCLASS,
48
+ pattern: SUBCLASS,
49
+ message: 'A subclass of a Koobiq tabs class whose inputs became signal inputs. The bound value reaches the member ' +
50
+ 'from ngOnChanges now, which every one of them but KbqTab declares for the first time: an ngOnChanges of ' +
51
+ 'the subclass is marked override and calls super.ngOnChanges(changes). An input the subclass redeclared ' +
52
+ 'with @Input() is overridden through the `<member>Input` signal input instead, e.g. ' +
53
+ '`override readonly headerPositionInput = input<KbqTabHeaderPosition | undefined>(undefined, ' +
54
+ "{ alias: 'headerPosition' })`."
55
+ },
56
+ {
57
+ anchor: SUBCLASS,
58
+ pattern: '@(?:ViewChild|ViewChildren|ContentChild|ContentChildren)\\s*\\(',
59
+ message: 'A subclass of a Koobiq tabs class that declares a decorator query. KbqTabGroup.tabs, the items, ' +
60
+ 'tabListContainer, tabList, nextPaginator and previousPaginator of KbqTabHeader and KbqTabNavBar, ' +
61
+ 'KbqTabLabelWrapper.labelContent and KbqTab.templateLabel are getters over signal queries now, so a ' +
62
+ 'subclass can no longer redeclare them as fields: override the getter instead. tabs and items stay ' +
63
+ 'QueryLists whose changes emit as before.'
64
+ },
65
+ {
66
+ anchor: `\\b(?:${CLASSES})\\b`,
67
+ pattern: '(?<!\\bsuper)\\.ngOnChanges\\s*\\(',
68
+ message: 'A direct call of ngOnChanges in a file that uses a Koobiq tabs class. Their SimpleChanges are keyed by ' +
69
+ 'the `<member>Input` names now (disabledInput, not disabled), and a bound value reaches its member only ' +
70
+ 'through them: set the input with a template binding or ComponentRef.setInput instead. This pattern also ' +
71
+ 'matches ngOnChanges of an unrelated class in the same file — check before changing it.'
72
+ },
73
+ {
74
+ anchor: TABS_TYPE,
75
+ pattern: '\\bresizeStream\\b',
76
+ message: 'KbqTabGroup.resizeStream and the (window:resize) host listener were removed. The header is observed with ' +
77
+ 'the CDK SharedResizeObserver now, which also catches container resizes, so a manual ' +
78
+ 'resizeStream.next(event) has no counterpart.'
79
+ },
80
+ {
81
+ anchor: '\\bKbqTabGroup\\b|\\bkbq-tab-group\\b',
82
+ pattern: '<kbq-tab-group[^>]*\\bdisabled\\b|\\bKbqTabGroup\\b[^\\n]*\\.\\s*disabled\\b',
83
+ message: 'KbqTabGroup.disabled was removed. It was published and documented but read by nothing — no template ' +
84
+ 'bound it and no style targeted it, so <kbq-tab-group disabled> never did anything. Disable the ' +
85
+ 'individual tabs instead: <kbq-tab [disabled]="true">.'
86
+ },
87
+ {
88
+ anchor: '\\bKbqTabGroup\\b',
89
+ pattern: '\\.\\s*getTabIndex\\s*\\(',
90
+ message: 'KbqTabGroup.getTabIndex(tab, index) is getTabIndex(tab, tabHeader, index) and returns -1 rather than ' +
91
+ 'null for a disabled tab. The roving tabindex follows the header focus position now, so a disabled ' +
92
+ 'selected tab can no longer take the whole strip out of the tab order.'
93
+ },
94
+ {
95
+ anchor: '\\bKbqVerticalTabsCssStyler\\b',
96
+ pattern: '\\bKbqVerticalTabsCssStyler\\b',
97
+ message: 'KbqVerticalTabsCssStyler is a deprecated no-op and will be removed. The kbq-tab-group_vertical class is ' +
98
+ 'bound from KbqTabGroup and KbqTabNavBar themselves, so [vertical]="false" removes it instead of ' +
99
+ 'leaving it latched on by the attribute selector. Stop importing the directive.'
100
+ },
101
+ {
102
+ anchor: '\\bkbq-tab-label\\b|\\bkbqTabLabelWrapper\\b',
103
+ pattern: '\\.kbq-tab-label\\[disabled\\]|kbq-tab-label[^\\n]*\\[disabled\\]',
104
+ message: 'A tab label no longer carries a bare `disabled` attribute — that attribute is defined for form controls ' +
105
+ 'only and no assistive technology reads it off a div. Target .kbq-disabled for styling or ' +
106
+ '[aria-disabled="true"] in a test.'
107
+ }
108
+ ];
109
+ /** Printed once per project that references the tabs, after the per-file reports. */
110
+ const SUMMARY = [
111
+ ' Apart from the removals above, reads and writes of the tabs members are unchanged — tab.disabled, ' +
112
+ 'tabLink.active and the selection of a group stay plain properties — and tabs and items are still ' +
113
+ 'QueryLists. A boolean input (disabled, active, vertical, disablePagination) accepts ' +
114
+ 'boolean | string | null | undefined in a template now.',
115
+ ' KbqTabGroup renders the ARIA tabs pattern now: the label strip is a role="tablist" (with ' +
116
+ 'aria-orientation="vertical" when vertical), each label a role="tab" with aria-selected and ' +
117
+ 'aria-controls, and each body a role="tabpanel" with aria-labelledby and a tab stop while active. ' +
118
+ 'Hand-rolled role or aria-* attributes on those elements are duplicates now.',
119
+ ' KbqTabNavBar emits aria-orientation="vertical" when it is both vertical and a real tablist, i.e. ' +
120
+ 'when [tabNavPanel] is supplied. Without [tabNavPanel] the nav bar stays plain navigation and ' +
121
+ 'emits no tab semantics at all — supply it whenever the bar switches a region on the same page. ' +
122
+ 'A tab link carries aria-disabled and no longer a bare disabled attribute: a selector such as ' +
123
+ 'a[kbqTabLink][disabled] moves to .kbq-disabled.',
124
+ ' KbqTabHeader is OnPush like every other component in the package. A host that mutated it outside ' +
125
+ 'Angular and relied on the Default strategy to pick the change up has to mark it for check.',
126
+ ' KbqTabBody.afterLeavingCenter is an EventEmitter<void>: it never carried a value, so a handler that ' +
127
+ 'declared a boolean parameter drops it.',
128
+ ' KbqPaginatedTabHeader is exported from the entry point, so `extends KbqPaginatedTabHeader` in the ' +
129
+ 'public signatures is nameable, and the duplicate ScrollDirection in tab-header.component was ' +
130
+ 'deleted in favour of the base one — both resolve through @koobiq/components/tabs.',
131
+ ' The four on-surface theme branches read the --kbq-tabs-tab-item-*-on-surface-* tokens they always ' +
132
+ 'declared instead of the on-background family. Values that were only overridden on the ' +
133
+ 'on-background tokens no longer reach a group or nav bar with [onSurface].'
134
+ ];
135
+
136
+ exports.SUMMARY = SUMMARY;
137
+ exports.TABS_PACKAGE = TABS_PACKAGE;
138
+ exports.TABS_TYPE = TABS_TYPE;
139
+ exports.warnPatterns = warnPatterns;
@@ -0,0 +1,65 @@
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_tabsSignalsAndAria_data = require('./data.js');
8
+ require('@angular-devkit/schematics');
9
+ require('@schematics/angular/utility');
10
+
11
+ const LABEL = '[tabs-signals-and-aria]';
12
+ const EXTENSIONS = ['.ts', '.html'];
13
+ // Compiled once rather than for every file of the project. None carries the `g` flag, so a shared instance holds no
14
+ // `lastIndex`.
15
+ const TABS_TYPE_REGEX = new RegExp(migrations_tabsSignalsAndAria_data.TABS_TYPE);
16
+ const COMPILED_WARN_PATTERNS = migrations_tabsSignalsAndAria_data.warnPatterns.map(({ anchor, pattern, message }) => ({
17
+ anchor: anchor ? new RegExp(anchor) : null,
18
+ pattern: new RegExp(pattern),
19
+ message
20
+ }));
21
+ /** A file is a tabs consumer if it imports the package, names a component, or renders one. */
22
+ function referencesTabs(content) {
23
+ return content.includes(migrations_tabsSignalsAndAria_data.TABS_PACKAGE) || TABS_TYPE_REGEX.test(content);
24
+ }
25
+ /**
26
+ * Reports the subclasses of the tabs classes and the direct calls of their `ngOnChanges`, the members the review
27
+ * removed or changed, and the ARIA and theming changes that have no call site to point at. Never writes.
28
+ *
29
+ * `.html` is visited as well as `.ts`, because the removed `disabled` input of the group and the removed
30
+ * `[attr.disabled]` of a label are both template-side.
31
+ */
32
+ function tabsSignalsAndAria(options) {
33
+ return async (tree, context) => {
34
+ const projectDefinition = await utils_packageConfig.setupOptions(options.project, tree);
35
+ const root = projectDefinition?.root ?? '';
36
+ let consumers = 0;
37
+ let reported = 0;
38
+ utils_packageConfig.visitProjectFiles(root ? tree.getDir(root) : tree.root, (filePath, entry) => {
39
+ if (!EXTENSIONS.some((extension) => filePath.endsWith(extension)))
40
+ return;
41
+ const content = entry.content.toString();
42
+ if (!content || !referencesTabs(content))
43
+ return;
44
+ consumers++;
45
+ for (const { anchor, pattern, message } of COMPILED_WARN_PATTERNS) {
46
+ if (anchor && !anchor.test(content))
47
+ continue;
48
+ if (!pattern.test(content))
49
+ continue;
50
+ reported++;
51
+ utils_messages.logMessage(context.logger, [`${LABEL} ${filePath}`, ` ${message}`]);
52
+ }
53
+ });
54
+ // Nothing here renders tabs, so the summary would only be noise.
55
+ if (consumers === 0)
56
+ return;
57
+ utils_messages.logMessage(context.logger, [
58
+ `${LABEL} processed tabs under "${root || '<workspace root>'}", ` +
59
+ `${consumers} file(s) reference the component, ${reported} call site(s) reported.`,
60
+ ...migrations_tabsSignalsAndAria_data.SUMMARY
61
+ ]);
62
+ };
63
+ }
64
+
65
+ exports.default = tabsSignalsAndAria;
@@ -0,0 +1,15 @@
1
+ {
2
+ "$schema": "http://json-schema.org/schema",
3
+ "$id": "koobiq-components-tabs-signals-and-aria",
4
+ "title": "Koobiq components tabs signals and ARIA 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,58 @@
1
+ ### Tag list cleaner schematic
2
+
3
+ This schematic removes the `(click)` handler from every `<kbq-cleaner>` projected into a `<kbq-tag-list>`.
4
+
5
+ The reset control of a tag list now removes the tags itself and leaves the disabled ones in place. It
6
+ removes them through the same `removed` output as the remove control inside a tag, so the wiring that
7
+ control already needs is all it takes — a handler that cleared the collection is no longer needed.
8
+
9
+ A handler left in place runs **in addition** to the built-in clearing and cannot suppress it: the host
10
+ listener of `KbqCleaner` runs first. That is why the binding is removed rather than left to the developer.
11
+
12
+ The expression that was removed is printed for every file, because a handler may have done more than clear
13
+ the tags. Put anything else it did back in another binding. Cleaners outside a tag list are untouched.
14
+
15
+ A handler is kept, and reported rather than removed, where the built-in clearing would not take its place:
16
+ when no tag in the list reports `removed`, so the clearing reaches nothing, and when the list is written
17
+ `removable="false"`, which now hides the reset control outright. Fix the list first, then drop the handler.
18
+
19
+ To keep clearing the disabled tags as well, set the predicate on the list instead:
20
+
21
+ ```html
22
+ <!-- clearEverything = () => true; on the class -->
23
+ <kbq-tag-list [clearPredicate]="clearEverything"></kbq-tag-list>
24
+ ```
25
+
26
+ Usage for Angular CLI:
27
+
28
+ ```shell
29
+ ng g @koobiq/components:tag-list-cleaner --project "<your project>"
30
+ ```
31
+
32
+ Run without writing first:
33
+
34
+ ```shell
35
+ ng g @koobiq/components:tag-list-cleaner --project "<your project>" --fix=false
36
+ ```
37
+
38
+ #### Before
39
+
40
+ <!-- prettier-ignore -->
41
+ ```html
42
+ <kbq-tag-list>
43
+ <kbq-tag [value]="tag" (removed)="removed($event)">{{ tag }}</kbq-tag>
44
+
45
+ <kbq-cleaner (click)="clear()" />
46
+ </kbq-tag-list>
47
+ ```
48
+
49
+ #### After
50
+
51
+ <!-- prettier-ignore -->
52
+ ```html
53
+ <kbq-tag-list>
54
+ <kbq-tag [value]="tag" (removed)="removed($event)">{{ tag }}</kbq-tag>
55
+
56
+ <kbq-cleaner />
57
+ </kbq-tag-list>
58
+ ```
@@ -0,0 +1,42 @@
1
+ 'use strict';
2
+
3
+ /** The control whose handler this migration removes. */
4
+ const CLEANER_ELEMENT = 'kbq-cleaner';
5
+ /** Only a cleaner projected into a tag list is affected — elsewhere `(click)` still means what it did. */
6
+ const TAG_LIST_ELEMENT = 'kbq-tag-list';
7
+ /** Every spelling of the click binding the Angular parser keeps verbatim in the attribute name. */
8
+ const CLICK_ATTRIBUTES = ['(click)', 'on-click'];
9
+ /** The output the built-in clearing goes through; without it there is nothing to take the handler's place. */
10
+ const REMOVED_ATTRIBUTES = ['(removed)', 'on-removed'];
11
+ /** A list that refuses removal no longer shows a reset control at all. */
12
+ const REMOVABLE_ATTRIBUTES = ['removable', '[removable]', 'bind-removable'];
13
+ const removedHandlerMessage = (filePath, attribute, expression, fix) => [
14
+ ` ${fix ? 'removed' : 'would remove'} ${attribute}="${expression}" from <${CLEANER_ELEMENT}> — the tag list clears itself now.`,
15
+ ` If the handler did anything besides clearing the tags, put that part back. File: ${filePath}`
16
+ ];
17
+ const keptHandlerMessage = (filePath, attribute, expression, reason) => [
18
+ ` kept ${attribute}="${expression}" on <${CLEANER_ELEMENT}>: ${reason}`,
19
+ ` Removing it would leave the control with nothing behind it. Fix the list, then drop the handler by hand. File: ${filePath}`
20
+ ];
21
+ const NO_REMOVED_BINDING_REASON = 'no tag in the list reports `removed`, so the built-in clearing reaches nothing';
22
+ const REFUSES_REMOVAL_REASON = `the list is removable="false", so it no longer shows a reset control at all`;
23
+ const UNPARSEABLE_TEMPLATE_MESSAGE = `Template could not be parsed, so it was left untouched. Check its <${CLEANER_ELEMENT}> handlers by hand.`;
24
+ const BEHAVIOUR_NOTE = [
25
+ `Note: the reset control of a ${TAG_LIST_ELEMENT} now removes the tags itself and leaves the disabled`,
26
+ 'ones in place. It removes them through the same `removed` output as the remove control inside a tag, so',
27
+ 'the wiring that control already needs is all it takes. A handler left on the cleaner runs in addition to',
28
+ 'that, and cannot suppress it. To clear the disabled tags too, bind a predicate that accepts them:',
29
+ 'clearEverything = () => true; on the class, [clearPredicate]="clearEverything" on the list.'
30
+ ];
31
+
32
+ exports.BEHAVIOUR_NOTE = BEHAVIOUR_NOTE;
33
+ exports.CLEANER_ELEMENT = CLEANER_ELEMENT;
34
+ exports.CLICK_ATTRIBUTES = CLICK_ATTRIBUTES;
35
+ exports.NO_REMOVED_BINDING_REASON = NO_REMOVED_BINDING_REASON;
36
+ exports.REFUSES_REMOVAL_REASON = REFUSES_REMOVAL_REASON;
37
+ exports.REMOVABLE_ATTRIBUTES = REMOVABLE_ATTRIBUTES;
38
+ exports.REMOVED_ATTRIBUTES = REMOVED_ATTRIBUTES;
39
+ exports.TAG_LIST_ELEMENT = TAG_LIST_ELEMENT;
40
+ exports.UNPARSEABLE_TEMPLATE_MESSAGE = UNPARSEABLE_TEMPLATE_MESSAGE;
41
+ exports.keptHandlerMessage = keptHandlerMessage;
42
+ exports.removedHandlerMessage = removedHandlerMessage;
@@ -0,0 +1,196 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var ts = require('typescript');
6
+ var utils_ast = require('../../utils/ast.js');
7
+ var utils_messages = require('../../utils/messages.js');
8
+ var utils_packageConfig = require('../../package-config-BhU2TfC8.js');
9
+ var utils_typescript = require('../../utils/typescript.js');
10
+ var migrations_tagListCleaner_data = require('./data.js');
11
+ require('@angular-devkit/schematics');
12
+ require('@schematics/angular/utility');
13
+
14
+ const TS_EXT = '.ts';
15
+ const HTML_EXT = '.html';
16
+ const LABEL = '[tag-list-cleaner]';
17
+ /** Whether any element in the subtree reports `removed`, the output the built-in clearing goes through. */
18
+ function hasRemovedBinding(node) {
19
+ for (const attr of node.attrs ?? []) {
20
+ if (typeof attr.name === 'string' && migrations_tagListCleaner_data.REMOVED_ATTRIBUTES.includes(attr.name))
21
+ return true;
22
+ }
23
+ return (node.children ?? []).some((child) => hasRemovedBinding(child));
24
+ }
25
+ /** Whether the list is written as `removable="false"`, which now hides the cleaner outright. */
26
+ function refusesRemoval(element) {
27
+ return (element.attrs ?? []).some((attr) => typeof attr.name === 'string' &&
28
+ migrations_tagListCleaner_data.REMOVABLE_ATTRIBUTES.includes(attr.name) &&
29
+ String(attr.value).trim() === 'false');
30
+ }
31
+ /** Collects the click handler of every cleaner projected into a tag list. */
32
+ class CleanerHandlerCollector {
33
+ constructor() {
34
+ this.findings = [];
35
+ /** One entry per enclosing tag list, carrying why its cleaner's handler may or may not go. */
36
+ this.tagLists = [];
37
+ }
38
+ visitElement(element) {
39
+ const isTagList = element.name === migrations_tagListCleaner_data.TAG_LIST_ELEMENT;
40
+ if (isTagList) {
41
+ this.tagLists.push({
42
+ keptReason: refusesRemoval(element)
43
+ ? migrations_tagListCleaner_data.REFUSES_REMOVAL_REASON
44
+ : hasRemovedBinding(element)
45
+ ? undefined
46
+ : migrations_tagListCleaner_data.NO_REMOVED_BINDING_REASON
47
+ });
48
+ }
49
+ const tagList = this.tagLists.at(-1);
50
+ if (tagList && element.name === migrations_tagListCleaner_data.CLEANER_ELEMENT) {
51
+ for (const attr of element.attrs ?? []) {
52
+ if (typeof attr.name !== 'string' || !migrations_tagListCleaner_data.CLICK_ATTRIBUTES.includes(attr.name))
53
+ continue;
54
+ this.findings.push({
55
+ edit: { start: attr.sourceSpan.start.offset, end: attr.sourceSpan.end.offset },
56
+ attribute: attr.name,
57
+ expression: String(attr.value).trim(),
58
+ keptReason: tagList.keptReason
59
+ });
60
+ }
61
+ }
62
+ this.visitChildren(element);
63
+ if (isTagList)
64
+ this.tagLists.pop();
65
+ }
66
+ visitBlock(block) {
67
+ this.visitChildren(block);
68
+ }
69
+ visitChildren(node) {
70
+ for (const child of node.children ?? []) {
71
+ child.visit(this);
72
+ }
73
+ }
74
+ visitAttribute() { }
75
+ visitText() { }
76
+ visitComment() { }
77
+ visitExpansion() { }
78
+ visitExpansionCase() { }
79
+ visitBlockParameter() { }
80
+ visitLetDeclaration() { }
81
+ }
82
+ /**
83
+ * Deletes the ranges. A deletion also takes the whitespace that separated the attribute from the previous
84
+ * one: an inline attribute takes its leading spaces, one written on its own line takes the line break and
85
+ * the indent as well, so the tag is not left with a blank line.
86
+ */
87
+ function applyEdits(content, edits) {
88
+ let result = content;
89
+ // Right-to-left, so earlier offsets stay valid.
90
+ for (const { start, end } of [...edits].sort((a, b) => b.start - a.start)) {
91
+ let from = start;
92
+ while (from > 0 && (result[from - 1] === ' ' || result[from - 1] === '\t'))
93
+ from--;
94
+ if (result[from - 1] === '\n') {
95
+ from--;
96
+ if (result[from - 1] === '\r')
97
+ from--;
98
+ }
99
+ result = result.slice(0, from) + result.slice(end);
100
+ }
101
+ return result;
102
+ }
103
+ /**
104
+ * Migrates one template. Returns `null` when it could not be parsed — editing it blind is how a
105
+ * regex-based migration corrupts binding expressions, so the caller warns instead.
106
+ */
107
+ async function migrateTemplate(template, onFinding) {
108
+ if (!template.includes(migrations_tagListCleaner_data.CLEANER_ELEMENT))
109
+ return template;
110
+ const parsed = await utils_typescript.parseTemplate(template);
111
+ if (!parsed.tree)
112
+ return null;
113
+ const collector = new CleanerHandlerCollector();
114
+ utils_ast.visitAll(collector, parsed.tree.rootNodes);
115
+ collector.findings.forEach(onFinding);
116
+ return applyEdits(template, collector.findings.filter(({ keptReason }) => !keptReason).map(({ edit }) => edit));
117
+ }
118
+ /** Applies the template migration to every inline `@Component({ template })` literal of a `.ts` source. */
119
+ async function migrateInlineTemplates(content, sourceFile, onFinding, onParseError) {
120
+ let result = content;
121
+ // Splice right-to-left so earlier offsets stay valid.
122
+ for (const { start, end } of utils_typescript.collectInlineTemplateRanges(sourceFile).sort((a, b) => b.start - a.start)) {
123
+ const migrated = await migrateTemplate(result.slice(start, end), onFinding);
124
+ if (migrated === null) {
125
+ onParseError();
126
+ continue;
127
+ }
128
+ result = result.slice(0, start) + migrated + result.slice(end);
129
+ }
130
+ return result;
131
+ }
132
+ function tagListCleaner(options) {
133
+ return async (tree, context) => {
134
+ const { project } = options;
135
+ // `ng update` invokes migrations with no options at all, and migrations.json declares no schema,
136
+ // so the schema default never reaches us — applying the fix is the intended behaviour there.
137
+ const fix = options.fix ?? true;
138
+ const projectDefinition = await utils_packageConfig.setupOptions(project, tree);
139
+ const root = projectDefinition?.root ?? '';
140
+ const rootDir = root ? tree.getDir(root) : tree.root;
141
+ const filePaths = [];
142
+ utils_packageConfig.visitProjectFiles(rootDir, (filePath) => {
143
+ if (!filePath.endsWith(TS_EXT) && !filePath.endsWith(HTML_EXT))
144
+ return;
145
+ filePaths.push(filePath);
146
+ });
147
+ let touched = 0;
148
+ for (const filePath of filePaths) {
149
+ const originalContent = tree.read(filePath)?.toString();
150
+ // Parsing every `.ts` of the project is not free, and nothing can change in a file that holds
151
+ // no cleaner at all.
152
+ if (!originalContent || !originalContent.includes(migrations_tagListCleaner_data.CLEANER_ELEMENT))
153
+ continue;
154
+ let content = originalContent;
155
+ let unparseable = false;
156
+ const reports = [];
157
+ const onFinding = ({ attribute, expression, keptReason }) => reports.push(keptReason
158
+ ? migrations_tagListCleaner_data.keptHandlerMessage(filePath, attribute, expression, keptReason)
159
+ : migrations_tagListCleaner_data.removedHandlerMessage(filePath, attribute, expression, fix));
160
+ if (filePath.endsWith(TS_EXT)) {
161
+ const sourceFile = ts.createSourceFile(filePath, content, ts.ScriptTarget.Latest, true, ts.ScriptKind.TS);
162
+ content = await migrateInlineTemplates(content, sourceFile, onFinding, () => (unparseable = true));
163
+ }
164
+ else {
165
+ const migrated = await migrateTemplate(content, onFinding);
166
+ if (migrated === null)
167
+ unparseable = true;
168
+ else
169
+ content = migrated;
170
+ }
171
+ for (const report of reports) {
172
+ utils_messages.logMessage(context.logger, [`${LABEL} ${filePath}`, ...report]);
173
+ }
174
+ if (unparseable) {
175
+ utils_messages.logMessage(context.logger, [`${LABEL} ${filePath}`, ` ${migrations_tagListCleaner_data.UNPARSEABLE_TEMPLATE_MESSAGE}`]);
176
+ }
177
+ if (content === originalContent)
178
+ continue;
179
+ touched++;
180
+ if (fix) {
181
+ tree.overwrite(filePath, content);
182
+ }
183
+ else {
184
+ utils_messages.logMessage(context.logger, [`${LABEL} would update ${filePath} (run with --fix to apply)`]);
185
+ }
186
+ }
187
+ utils_messages.logMessage(context.logger, [
188
+ `${LABEL} processed tree under "${root || '<workspace root>'}", ` +
189
+ `${fix ? 'updated' : 'would update'} ${touched} file(s).`,
190
+ '',
191
+ ...migrations_tagListCleaner_data.BEHAVIOUR_NOTE
192
+ ]);
193
+ };
194
+ }
195
+
196
+ exports.default = tagListCleaner;
@@ -0,0 +1,20 @@
1
+ {
2
+ "$schema": "http://json-schema.org/schema",
3
+ "$id": "koobiq-components-tag-list-cleaner",
4
+ "title": "Koobiq components tag list cleaner migration",
5
+ "type": "object",
6
+ "properties": {
7
+ "project": {
8
+ "type": "string",
9
+ "description": "Name of the project to migrate. If omitted, the migration runs over the whole tree.",
10
+ "$default": {
11
+ "$source": "projectName"
12
+ }
13
+ },
14
+ "fix": {
15
+ "type": "boolean",
16
+ "default": true,
17
+ "description": "When true, removes the click handler from every kbq-cleaner inside a kbq-tag-list. When false, prints what would change without writing."
18
+ }
19
+ }
20
+ }