@koobiq/components 20.4.1 → 21.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (771) hide show
  1. package/accordion/accordion-trigger.scss +3 -10
  2. package/accordion/accordion.scss +4 -6
  3. package/actions-panel/actions-panel-container.scss +45 -1
  4. package/alert/alert.component.scss +3 -2
  5. package/app-switcher/_app-switcher-theme.scss +0 -4
  6. package/app-switcher/app-switcher-dropdown-app.scss +3 -2
  7. package/app-switcher/app-switcher-dropdown-site.scss +2 -1
  8. package/app-switcher/{kbq-app-switcher-list-item.scss → app-switcher-list-item.scss} +18 -4
  9. package/app-switcher/app-switcher-tokens.scss +15 -0
  10. package/app-switcher/app-switcher.scss +14 -4
  11. package/autocomplete/autocomplete.scss +7 -6
  12. package/badge/badge.component.scss +5 -8
  13. package/breadcrumbs/breadcrumbs.scss +25 -10
  14. package/button/_button-base.scss +30 -7
  15. package/button/_button-theme.scss +16 -0
  16. package/button/button-group.scss +7 -0
  17. package/button/button-tokens.scss +0 -2
  18. package/button/button.scss +34 -2
  19. package/button-toggle/_button-toggle-theme.scss +7 -2
  20. package/button-toggle/button-toggle.scss +65 -15
  21. package/checkbox/_checkbox-theme.scss +4 -3
  22. package/checkbox/checkbox.scss +3 -6
  23. package/clamped-text/clamped-text.scss +6 -2
  24. package/code-block/code-block-tokens.scss +0 -224
  25. package/code-block/code-block.scss +20 -9
  26. package/content-panel/content-panel-aside.scss +3 -2
  27. package/content-panel/content-panel-container.scss +37 -0
  28. package/content-panel/content-panel.scss +4 -3
  29. package/core/highlight/_highlight-theme.scss +3 -1
  30. package/core/option/action-container.scss +2 -2
  31. package/core/option/action.scss +2 -1
  32. package/core/option/option.scss +2 -1
  33. package/core/pop-up/_pop-up.scss +0 -37
  34. package/core/selection/pseudo-checkbox/pseudo-checkbox.scss +5 -10
  35. package/core/styles/_core.scss +3 -0
  36. package/core/styles/_koobiq-theme.scss +5 -6
  37. package/core/styles/common/_animation.scss +44 -16
  38. package/core/styles/common/_groups-mixins.scss +21 -19
  39. package/core/styles/common/_groups.scss +4 -32
  40. package/core/styles/common/_index.scss +0 -2
  41. package/core/styles/common/_link.scss +117 -0
  42. package/core/styles/common/_list.scss +0 -26
  43. package/core/styles/common/_overlay.scss +8 -10
  44. package/core/styles/common/_rtl.scss +0 -14
  45. package/core/styles/common/_select.scss +33 -15
  46. package/core/styles/common/_squircle.scss +63 -0
  47. package/core/styles/common/_tokens.scss +0 -11
  48. package/core/styles/common/_vendor-prefixes.scss +0 -20
  49. package/core/styles/functions/_timing.scss +0 -22
  50. package/core/styles/theming/_scrollbar-theme.scss +6 -1
  51. package/core/styles/theming/_theming.scss +13 -65
  52. package/core/styles/typography/_index.scss +0 -1
  53. package/core/styles/typography/_typography.scss +0 -143
  54. package/core/styles/visual/_body.scss +1 -6
  55. package/core/styles/visual/_layout.scss +0 -12
  56. package/datepicker/calendar-body.scss +3 -1
  57. package/datepicker/calendar-header.scss +0 -1
  58. package/datepicker/datepicker-content.scss +33 -1
  59. package/datepicker/datepicker-toggle.scss +0 -38
  60. package/dl/dl-tokens.scss +10 -0
  61. package/dl/dl.scss +113 -13
  62. package/dropdown/_dropdown-theme.scss +4 -16
  63. package/dropdown/dropdown-item.scss +4 -10
  64. package/dropdown/dropdown.scss +2 -1
  65. package/empty-state/_empty-state-theme.scss +10 -4
  66. package/empty-state/empty-state-tokens.scss +4 -4
  67. package/empty-state/empty-state.scss +4 -0
  68. package/fesm2022/koobiq-components-accordion.mjs +347 -229
  69. package/fesm2022/koobiq-components-accordion.mjs.map +1 -1
  70. package/fesm2022/koobiq-components-actions-panel.mjs +302 -187
  71. package/fesm2022/koobiq-components-actions-panel.mjs.map +1 -1
  72. package/fesm2022/koobiq-components-alert.mjs +39 -39
  73. package/fesm2022/koobiq-components-alert.mjs.map +1 -1
  74. package/fesm2022/koobiq-components-app-switcher.mjs +677 -367
  75. package/fesm2022/koobiq-components-app-switcher.mjs.map +1 -1
  76. package/fesm2022/koobiq-components-autocomplete.mjs +620 -253
  77. package/fesm2022/koobiq-components-autocomplete.mjs.map +1 -1
  78. package/fesm2022/koobiq-components-badge.mjs +46 -48
  79. package/fesm2022/koobiq-components-badge.mjs.map +1 -1
  80. package/fesm2022/koobiq-components-breadcrumbs.mjs +221 -169
  81. package/fesm2022/koobiq-components-breadcrumbs.mjs.map +1 -1
  82. package/fesm2022/koobiq-components-button-toggle.mjs +565 -196
  83. package/fesm2022/koobiq-components-button-toggle.mjs.map +1 -1
  84. package/fesm2022/koobiq-components-button.mjs +332 -116
  85. package/fesm2022/koobiq-components-button.mjs.map +1 -1
  86. package/fesm2022/koobiq-components-checkbox.mjs +172 -132
  87. package/fesm2022/koobiq-components-checkbox.mjs.map +1 -1
  88. package/fesm2022/koobiq-components-clamped-text.mjs +165 -158
  89. package/fesm2022/koobiq-components-clamped-text.mjs.map +1 -1
  90. package/fesm2022/koobiq-components-code-block.mjs +755 -601
  91. package/fesm2022/koobiq-components-code-block.mjs.map +1 -1
  92. package/fesm2022/koobiq-components-content-panel.mjs +260 -143
  93. package/fesm2022/koobiq-components-content-panel.mjs.map +1 -1
  94. package/fesm2022/koobiq-components-core.mjs +4342 -1595
  95. package/fesm2022/koobiq-components-core.mjs.map +1 -1
  96. package/fesm2022/koobiq-components-datepicker.mjs +1713 -1606
  97. package/fesm2022/koobiq-components-datepicker.mjs.map +1 -1
  98. package/fesm2022/koobiq-components-divider.mjs +73 -36
  99. package/fesm2022/koobiq-components-divider.mjs.map +1 -1
  100. package/fesm2022/koobiq-components-dl.mjs +447 -89
  101. package/fesm2022/koobiq-components-dl.mjs.map +1 -1
  102. package/fesm2022/koobiq-components-dropdown.mjs +703 -599
  103. package/fesm2022/koobiq-components-dropdown.mjs.map +1 -1
  104. package/fesm2022/koobiq-components-dynamic-translation.mjs +20 -20
  105. package/fesm2022/koobiq-components-dynamic-translation.mjs.map +1 -1
  106. package/fesm2022/koobiq-components-ellipsis-center.mjs +46 -31
  107. package/fesm2022/koobiq-components-ellipsis-center.mjs.map +1 -1
  108. package/fesm2022/koobiq-components-empty-state.mjs +116 -60
  109. package/fesm2022/koobiq-components-empty-state.mjs.map +1 -1
  110. package/fesm2022/koobiq-components-file-upload.mjs +550 -290
  111. package/fesm2022/koobiq-components-file-upload.mjs.map +1 -1
  112. package/fesm2022/koobiq-components-filter-bar.mjs +2810 -2538
  113. package/fesm2022/koobiq-components-filter-bar.mjs.map +1 -1
  114. package/fesm2022/koobiq-components-flag.mjs +79 -24
  115. package/fesm2022/koobiq-components-flag.mjs.map +1 -1
  116. package/fesm2022/koobiq-components-form-field.mjs +389 -525
  117. package/fesm2022/koobiq-components-form-field.mjs.map +1 -1
  118. package/fesm2022/koobiq-components-icon.mjs +366 -136
  119. package/fesm2022/koobiq-components-icon.mjs.map +1 -1
  120. package/fesm2022/koobiq-components-inline-edit.mjs +429 -212
  121. package/fesm2022/koobiq-components-inline-edit.mjs.map +1 -1
  122. package/fesm2022/koobiq-components-input.mjs +601 -459
  123. package/fesm2022/koobiq-components-input.mjs.map +1 -1
  124. package/fesm2022/koobiq-components-link-deprecated.mjs +196 -0
  125. package/fesm2022/koobiq-components-link-deprecated.mjs.map +1 -0
  126. package/fesm2022/koobiq-components-link.mjs +328 -125
  127. package/fesm2022/koobiq-components-link.mjs.map +1 -1
  128. package/fesm2022/koobiq-components-list.mjs +583 -433
  129. package/fesm2022/koobiq-components-list.mjs.map +1 -1
  130. package/fesm2022/koobiq-components-loader-overlay.mjs +167 -68
  131. package/fesm2022/koobiq-components-loader-overlay.mjs.map +1 -1
  132. package/fesm2022/koobiq-components-markdown.mjs +55 -78
  133. package/fesm2022/koobiq-components-markdown.mjs.map +1 -1
  134. package/fesm2022/koobiq-components-modal.mjs +853 -475
  135. package/fesm2022/koobiq-components-modal.mjs.map +1 -1
  136. package/fesm2022/koobiq-components-navbar.mjs +895 -556
  137. package/fesm2022/koobiq-components-navbar.mjs.map +1 -1
  138. package/fesm2022/koobiq-components-notification-center.mjs +680 -310
  139. package/fesm2022/koobiq-components-notification-center.mjs.map +1 -1
  140. package/fesm2022/koobiq-components-overflow-items.mjs +46 -64
  141. package/fesm2022/koobiq-components-overflow-items.mjs.map +1 -1
  142. package/fesm2022/koobiq-components-popover.mjs +684 -285
  143. package/fesm2022/koobiq-components-popover.mjs.map +1 -1
  144. package/fesm2022/koobiq-components-progress-bar.mjs +87 -33
  145. package/fesm2022/koobiq-components-progress-bar.mjs.map +1 -1
  146. package/fesm2022/koobiq-components-progress-spinner.mjs +52 -43
  147. package/fesm2022/koobiq-components-progress-spinner.mjs.map +1 -1
  148. package/fesm2022/koobiq-components-radio.mjs +450 -231
  149. package/fesm2022/koobiq-components-radio.mjs.map +1 -1
  150. package/fesm2022/koobiq-components-resizer.mjs +127 -21
  151. package/fesm2022/koobiq-components-resizer.mjs.map +1 -1
  152. package/fesm2022/koobiq-components-scrollbar-deprecated.mjs +299 -0
  153. package/fesm2022/koobiq-components-scrollbar-deprecated.mjs.map +1 -0
  154. package/fesm2022/koobiq-components-scrollbar.mjs +745 -222
  155. package/fesm2022/koobiq-components-scrollbar.mjs.map +1 -1
  156. package/fesm2022/koobiq-components-search-expandable.mjs +288 -126
  157. package/fesm2022/koobiq-components-search-expandable.mjs.map +1 -1
  158. package/fesm2022/koobiq-components-select.mjs +883 -693
  159. package/fesm2022/koobiq-components-select.mjs.map +1 -1
  160. package/fesm2022/koobiq-components-sidebar.mjs +207 -88
  161. package/fesm2022/koobiq-components-sidebar.mjs.map +1 -1
  162. package/fesm2022/koobiq-components-sidepanel.mjs +689 -296
  163. package/fesm2022/koobiq-components-sidepanel.mjs.map +1 -1
  164. package/fesm2022/koobiq-components-skeleton.mjs +815 -41
  165. package/fesm2022/koobiq-components-skeleton.mjs.map +1 -1
  166. package/fesm2022/koobiq-components-split-button.mjs +109 -88
  167. package/fesm2022/koobiq-components-split-button.mjs.map +1 -1
  168. package/fesm2022/koobiq-components-splitter-deprecated.mjs +591 -0
  169. package/fesm2022/koobiq-components-splitter-deprecated.mjs.map +1 -0
  170. package/fesm2022/koobiq-components-splitter.mjs +890 -501
  171. package/fesm2022/koobiq-components-splitter.mjs.map +1 -1
  172. package/fesm2022/koobiq-components-table.mjs +63 -49
  173. package/fesm2022/koobiq-components-table.mjs.map +1 -1
  174. package/fesm2022/koobiq-components-tabs.mjs +1062 -603
  175. package/fesm2022/koobiq-components-tabs.mjs.map +1 -1
  176. package/fesm2022/koobiq-components-tags.mjs +886 -733
  177. package/fesm2022/koobiq-components-tags.mjs.map +1 -1
  178. package/fesm2022/koobiq-components-textarea.mjs +213 -185
  179. package/fesm2022/koobiq-components-textarea.mjs.map +1 -1
  180. package/fesm2022/koobiq-components-time-range.mjs +299 -147
  181. package/fesm2022/koobiq-components-time-range.mjs.map +1 -1
  182. package/fesm2022/koobiq-components-timepicker.mjs +233 -245
  183. package/fesm2022/koobiq-components-timepicker.mjs.map +1 -1
  184. package/fesm2022/koobiq-components-timezone.mjs +344 -142
  185. package/fesm2022/koobiq-components-timezone.mjs.map +1 -1
  186. package/fesm2022/koobiq-components-title.mjs +229 -145
  187. package/fesm2022/koobiq-components-title.mjs.map +1 -1
  188. package/fesm2022/koobiq-components-toast.mjs +486 -165
  189. package/fesm2022/koobiq-components-toast.mjs.map +1 -1
  190. package/fesm2022/koobiq-components-toggle.mjs +177 -130
  191. package/fesm2022/koobiq-components-toggle.mjs.map +1 -1
  192. package/fesm2022/koobiq-components-tooltip.mjs +657 -214
  193. package/fesm2022/koobiq-components-tooltip.mjs.map +1 -1
  194. package/fesm2022/koobiq-components-top-bar.mjs +61 -32
  195. package/fesm2022/koobiq-components-top-bar.mjs.map +1 -1
  196. package/fesm2022/koobiq-components-tree-select.mjs +719 -488
  197. package/fesm2022/koobiq-components-tree-select.mjs.map +1 -1
  198. package/fesm2022/koobiq-components-tree.mjs +1506 -558
  199. package/fesm2022/koobiq-components-tree.mjs.map +1 -1
  200. package/fesm2022/koobiq-components-username.mjs +290 -135
  201. package/fesm2022/koobiq-components-username.mjs.map +1 -1
  202. package/file-upload/dropzone.scss +31 -3
  203. package/file-upload/file-upload-tokens.scss +2 -22
  204. package/file-upload/file-upload.scss +6 -0
  205. package/file-upload/multiple-file-upload.component.scss +14 -12
  206. package/file-upload/single-file-upload.component.scss +3 -2
  207. package/filter-bar/filters.scss +7 -0
  208. package/filter-bar/pipes/base-pipe.scss +3 -3
  209. package/filter-bar/pipes/pipe-date.scss +8 -1
  210. package/flag/flag-tokens.scss +22 -0
  211. package/flag/flag.scss +34 -21
  212. package/form-field/{_fiedset-theme.scss → _fieldset-theme.scss} +1 -5
  213. package/form-field/_form-field-theme.scss +4 -9
  214. package/form-field/cleaner.scss +3 -1
  215. package/form-field/fieldset.scss +3 -4
  216. package/form-field/form-field.scss +26 -21
  217. package/form-field/password-toggle.scss +3 -1
  218. package/icon/_icon-button-theme.scss +7 -0
  219. package/icon/_icon-theme.scss +10 -7
  220. package/icon/icon-button.scss +0 -2
  221. package/icon/icon-tokens.scss +12 -9
  222. package/inline-edit/inline-edit.scss +40 -54
  223. package/input/input.scss +4 -0
  224. package/link/{_link-theme.scss → deprecated/_link-theme.scss} +11 -6
  225. package/link/deprecated/link-tokens.scss +27 -0
  226. package/link/link-tokens.scss +6 -25
  227. package/link/link.scss +137 -0
  228. package/list/list.scss +3 -2
  229. package/loader-overlay/_loader-overlay-theme.scss +19 -10
  230. package/loader-overlay/loader-overlay-tokens.scss +0 -2
  231. package/loader-overlay/loader-overlay.scss +7 -1
  232. package/markdown/_markdown-theme.scss +16 -0
  233. package/markdown/markdown-tokens.scss +5 -0
  234. package/markdown/markdown.scss +2 -1
  235. package/modal/_modal-animation.scss +23 -14
  236. package/modal/modal-tokens.scss +2 -1
  237. package/modal/modal.scss +35 -31
  238. package/navbar/_navbar-item_horizontal.scss +8 -6
  239. package/navbar/_navbar-item_vertical.scss +18 -6
  240. package/navbar/_navbar-theme.scss +9 -1
  241. package/navbar/navbar-brand.scss +8 -6
  242. package/navbar/navbar-divider.scss +1 -1
  243. package/navbar/navbar-item.scss +8 -9
  244. package/navbar/navbar-toggle.scss +3 -3
  245. package/navbar/navbar-tokens.scss +14 -0
  246. package/navbar/navbar.scss +1 -2
  247. package/navbar/vertical-navbar.scss +2 -2
  248. package/notification-center/_notification-center-theme.scss +11 -6
  249. package/notification-center/notification-center-tokens.scss +33 -0
  250. package/notification-center/notification-center.scss +58 -20
  251. package/notification-center/notification-item.scss +15 -6
  252. package/package.json +112 -81
  253. package/popover/popover-tokens.scss +0 -2
  254. package/popover/popover.scss +41 -19
  255. package/prebuilt-themes/theme.css +1 -1
  256. package/progress-bar/_progress-bar-theme.scss +20 -3
  257. package/progress-bar/progress-bar-tokens.scss +3 -0
  258. package/progress-bar/progress-bar.scss +36 -8
  259. package/progress-spinner/progress-spinner.scss +4 -3
  260. package/radio/_radio-theme.scss +21 -4
  261. package/radio/radio-tokens.scss +7 -3
  262. package/radio/radio.scss +55 -8
  263. package/schematics/collection.json +399 -7
  264. package/schematics/migrations/accordion-state-saving-default/README.md +60 -0
  265. package/schematics/migrations/accordion-state-saving-default/data.js +75 -0
  266. package/schematics/migrations/accordion-state-saving-default/index.js +60 -0
  267. package/schematics/migrations/accordion-state-saving-default/schema.json +15 -0
  268. package/schematics/migrations/actions-panel-overlay-container/README.md +35 -0
  269. package/schematics/migrations/actions-panel-overlay-container/data.js +47 -0
  270. package/schematics/migrations/actions-panel-overlay-container/index.js +54 -0
  271. package/schematics/migrations/actions-panel-overlay-container/schema.json +15 -0
  272. package/schematics/migrations/alert-signals/README.md +13 -7
  273. package/schematics/migrations/alert-signals/data.js +3 -0
  274. package/schematics/migrations/alert-signals/index.js +70 -203
  275. package/schematics/migrations/angular-animations-removal/README.md +46 -0
  276. package/schematics/migrations/angular-animations-removal/data.js +150 -0
  277. package/schematics/migrations/angular-animations-removal/index.js +20 -0
  278. package/schematics/migrations/angular-animations-removal/schema.json +15 -0
  279. package/schematics/migrations/app-switcher-signals/README.md +88 -0
  280. package/schematics/migrations/app-switcher-signals/data.js +136 -0
  281. package/schematics/migrations/app-switcher-signals/index.js +365 -0
  282. package/schematics/migrations/app-switcher-signals/schema.json +20 -0
  283. package/schematics/migrations/autocomplete-panel-width-auto/README.md +2 -2
  284. package/schematics/migrations/autocomplete-panel-width-auto/index.js +1 -1
  285. package/schematics/migrations/autocomplete-signals/README.md +92 -0
  286. package/schematics/migrations/autocomplete-signals/data.js +149 -0
  287. package/schematics/migrations/autocomplete-signals/index.js +706 -0
  288. package/schematics/migrations/autocomplete-signals/schema.json +20 -0
  289. package/schematics/migrations/badge-signals/README.md +77 -0
  290. package/schematics/migrations/badge-signals/data.js +109 -0
  291. package/schematics/migrations/badge-signals/index.js +693 -0
  292. package/schematics/migrations/badge-signals/schema.json +20 -0
  293. package/schematics/migrations/button-state-and-styles/README.md +129 -0
  294. package/schematics/migrations/button-state-and-styles/data.js +136 -0
  295. package/schematics/migrations/button-state-and-styles/index.js +220 -0
  296. package/schematics/migrations/button-state-and-styles/schema.json +20 -0
  297. package/schematics/migrations/button-supported-colors/README.md +73 -0
  298. package/schematics/migrations/button-supported-colors/data.js +106 -0
  299. package/schematics/migrations/button-supported-colors/index.js +260 -0
  300. package/schematics/migrations/button-supported-colors/schema.json +20 -0
  301. package/schematics/migrations/button-toggle-signals-and-aria/README.md +137 -0
  302. package/schematics/migrations/button-toggle-signals-and-aria/data.js +200 -0
  303. package/schematics/migrations/button-toggle-signals-and-aria/index.js +496 -0
  304. package/schematics/migrations/button-toggle-signals-and-aria/schema.json +20 -0
  305. package/schematics/migrations/button-truncation/README.md +110 -0
  306. package/schematics/migrations/button-truncation/data.js +88 -0
  307. package/schematics/migrations/button-truncation/index.js +269 -0
  308. package/schematics/migrations/button-truncation/schema.json +20 -0
  309. package/schematics/migrations/checkbox-signals/README.md +76 -0
  310. package/schematics/migrations/checkbox-signals/data.js +114 -0
  311. package/schematics/migrations/checkbox-signals/index.js +634 -0
  312. package/schematics/migrations/checkbox-signals/schema.json +20 -0
  313. package/schematics/migrations/clamped-text-disclosure/README.md +62 -0
  314. package/schematics/migrations/clamped-text-disclosure/data.js +101 -0
  315. package/schematics/migrations/clamped-text-disclosure/index.js +59 -0
  316. package/schematics/migrations/clamped-text-disclosure/schema.json +15 -0
  317. package/schematics/migrations/code-block-signals/README.md +84 -0
  318. package/schematics/migrations/code-block-signals/data.js +121 -0
  319. package/schematics/migrations/code-block-signals/index.js +700 -0
  320. package/schematics/migrations/code-block-signals/schema.json +20 -0
  321. package/schematics/migrations/color-signals/README.md +46 -0
  322. package/schematics/migrations/color-signals/data.js +131 -0
  323. package/schematics/migrations/color-signals/index.js +19 -0
  324. package/schematics/migrations/color-signals/schema.json +20 -0
  325. package/schematics/migrations/core-mixins-removal/README.md +20 -0
  326. package/schematics/migrations/core-mixins-removal/data.js +27 -0
  327. package/schematics/migrations/core-mixins-removal/index.js +17 -0
  328. package/schematics/migrations/core-mixins-removal/schema.json +15 -0
  329. package/schematics/migrations/css-selectors/README.md +2 -2
  330. package/schematics/migrations/css-selectors/index.js +1 -1
  331. package/schematics/migrations/datepicker-signals/README.md +24 -0
  332. package/schematics/migrations/datepicker-signals/data.js +49 -0
  333. package/schematics/migrations/datepicker-signals/index.js +17 -0
  334. package/schematics/migrations/datepicker-signals/schema.json +15 -0
  335. package/schematics/migrations/deprecated-icons/README.md +2 -2
  336. package/schematics/migrations/deprecated-icons/index.js +1 -1
  337. package/schematics/migrations/design-tokens-v4/README.md +75 -0
  338. package/schematics/migrations/design-tokens-v4/index.js +59 -0
  339. package/schematics/migrations/design-tokens-v4/schema.json +15 -0
  340. package/schematics/migrations/divider-signals-and-aria/README.md +47 -0
  341. package/schematics/migrations/divider-signals-and-aria/data.js +62 -0
  342. package/schematics/migrations/divider-signals-and-aria/index.js +211 -0
  343. package/schematics/migrations/divider-signals-and-aria/schema.json +15 -0
  344. package/schematics/migrations/dl-attribute-coercion/README.md +59 -0
  345. package/schematics/migrations/dl-attribute-coercion/data.js +85 -0
  346. package/schematics/migrations/dl-attribute-coercion/index.js +161 -0
  347. package/schematics/migrations/dl-attribute-coercion/schema.json +15 -0
  348. package/schematics/migrations/dl-standalone-names/README.md +49 -0
  349. package/schematics/migrations/dl-standalone-names/data.js +44 -0
  350. package/schematics/migrations/dl-standalone-names/index.js +321 -0
  351. package/schematics/migrations/dl-standalone-names/schema.json +20 -0
  352. package/schematics/migrations/dropdown-demote-overlay/README.md +137 -0
  353. package/schematics/migrations/dropdown-demote-overlay/data.js +84 -0
  354. package/schematics/migrations/dropdown-demote-overlay/index.js +288 -0
  355. package/schematics/migrations/dropdown-demote-overlay/schema.json +20 -0
  356. package/schematics/migrations/dropdown-signals/README.md +83 -0
  357. package/schematics/migrations/dropdown-signals/data.js +152 -0
  358. package/schematics/migrations/dropdown-signals/index.js +19 -0
  359. package/schematics/migrations/dropdown-signals/schema.json +20 -0
  360. package/schematics/migrations/empty-state-error-color/README.md +84 -0
  361. package/schematics/migrations/empty-state-error-color/data.js +85 -0
  362. package/schematics/migrations/empty-state-error-color/index.js +71 -0
  363. package/schematics/migrations/empty-state-error-color/schema.json +15 -0
  364. package/schematics/migrations/empty-state-size-attr/README.md +2 -2
  365. package/schematics/migrations/empty-state-size-attr/index.js +1 -1
  366. package/schematics/migrations/file-upload-cva-and-primitives/README.md +70 -0
  367. package/schematics/migrations/file-upload-cva-and-primitives/data.js +97 -0
  368. package/schematics/migrations/file-upload-cva-and-primitives/index.js +60 -0
  369. package/schematics/migrations/file-upload-cva-and-primitives/schema.json +15 -0
  370. package/schematics/migrations/file-upload-deprecated-outputs/README.md +90 -0
  371. package/schematics/migrations/file-upload-deprecated-outputs/data.js +20 -0
  372. package/schematics/migrations/file-upload-deprecated-outputs/index.js +70 -0
  373. package/schematics/migrations/file-upload-deprecated-outputs/schema.json +20 -0
  374. package/schematics/migrations/filter-bar-rename-action/README.md +183 -0
  375. package/schematics/migrations/filter-bar-rename-action/data.js +151 -0
  376. package/schematics/migrations/filter-bar-rename-action/index.js +177 -0
  377. package/schematics/migrations/filter-bar-rename-action/schema.json +20 -0
  378. package/schematics/migrations/filter-bar-signals/README.md +27 -16
  379. package/schematics/migrations/filter-bar-signals/data.js +1 -2
  380. package/schematics/migrations/filter-bar-signals/index.js +100 -195
  381. package/schematics/migrations/filter-bar-state-saving-default/README.md +53 -0
  382. package/schematics/migrations/filter-bar-state-saving-default/data.js +87 -0
  383. package/schematics/migrations/filter-bar-state-saving-default/index.js +61 -0
  384. package/schematics/migrations/filter-bar-state-saving-default/schema.json +15 -0
  385. package/schematics/migrations/flag-inner-html/README.md +67 -0
  386. package/schematics/migrations/flag-inner-html/data.js +58 -0
  387. package/schematics/migrations/flag-inner-html/index.js +61 -0
  388. package/schematics/migrations/flag-inner-html/schema.json +15 -0
  389. package/schematics/migrations/form-field-signals/README.md +125 -0
  390. package/schematics/migrations/form-field-signals/data.js +288 -0
  391. package/schematics/migrations/form-field-signals/index.js +382 -0
  392. package/schematics/migrations/form-field-signals/schema.json +20 -0
  393. package/schematics/migrations/icon-semantics-and-api/README.md +65 -0
  394. package/schematics/migrations/icon-semantics-and-api/data.js +97 -0
  395. package/schematics/migrations/icon-semantics-and-api/index.js +64 -0
  396. package/schematics/migrations/icon-semantics-and-api/schema.json +15 -0
  397. package/schematics/migrations/icons-replacement/README.md +5 -5
  398. package/schematics/migrations/icons-replacement/index.js +1 -1
  399. package/schematics/migrations/inline-edit-a11y-and-types/README.md +82 -0
  400. package/schematics/migrations/inline-edit-a11y-and-types/data.js +117 -0
  401. package/schematics/migrations/inline-edit-a11y-and-types/index.js +97 -0
  402. package/schematics/migrations/inline-edit-a11y-and-types/schema.json +20 -0
  403. package/schematics/migrations/input-number-surface/README.md +140 -0
  404. package/schematics/migrations/input-number-surface/data.js +135 -0
  405. package/schematics/migrations/input-number-surface/index.js +292 -0
  406. package/schematics/migrations/input-number-surface/schema.json +20 -0
  407. package/schematics/migrations/input-signals/README.md +20 -0
  408. package/schematics/migrations/input-signals/data.js +30 -0
  409. package/schematics/migrations/input-signals/index.js +17 -0
  410. package/schematics/migrations/input-signals/schema.json +15 -0
  411. package/schematics/migrations/link-deprecated-path/README.md +144 -0
  412. package/schematics/migrations/link-deprecated-path/index.js +19 -0
  413. package/schematics/migrations/link-deprecated-path/schema.json +20 -0
  414. package/schematics/migrations/link-signals/README.md +71 -0
  415. package/schematics/migrations/link-signals/data.js +116 -0
  416. package/schematics/migrations/link-signals/index.js +415 -0
  417. package/schematics/migrations/link-signals/schema.json +20 -0
  418. package/schematics/migrations/list-signals/README.md +22 -0
  419. package/schematics/migrations/list-signals/data.js +35 -0
  420. package/schematics/migrations/list-signals/index.js +17 -0
  421. package/schematics/migrations/list-signals/schema.json +15 -0
  422. package/schematics/migrations/list-tree-multiple-input/README.md +105 -0
  423. package/schematics/migrations/list-tree-multiple-input/data.js +74 -0
  424. package/schematics/migrations/list-tree-multiple-input/index.js +221 -0
  425. package/schematics/migrations/list-tree-multiple-input/schema.json +20 -0
  426. package/schematics/migrations/loader-overlay-signals/README.md +62 -0
  427. package/schematics/migrations/loader-overlay-signals/data.js +101 -0
  428. package/schematics/migrations/loader-overlay-signals/index.js +697 -0
  429. package/schematics/migrations/loader-overlay-signals/schema.json +20 -0
  430. package/schematics/migrations/loader-overlay-size-attr/README.md +2 -2
  431. package/schematics/migrations/loader-overlay-size-attr/index.js +1 -1
  432. package/schematics/migrations/locale-configuration-providers/README.md +163 -0
  433. package/schematics/migrations/locale-configuration-providers/data.js +257 -0
  434. package/schematics/migrations/locale-configuration-providers/index.js +294 -0
  435. package/schematics/migrations/locale-configuration-providers/schema.json +20 -0
  436. package/schematics/migrations/mandatory-peer-dependencies/README.md +70 -0
  437. package/schematics/migrations/mandatory-peer-dependencies/index.js +42 -0
  438. package/schematics/migrations/mandatory-peer-dependencies/schema.json +15 -0
  439. package/schematics/migrations/markdown-signals/README.md +58 -0
  440. package/schematics/migrations/markdown-signals/data.js +79 -0
  441. package/schematics/migrations/markdown-signals/index.js +639 -0
  442. package/schematics/migrations/markdown-signals/schema.json +20 -0
  443. package/schematics/migrations/modal-dialog-semantics/README.md +106 -0
  444. package/schematics/migrations/modal-dialog-semantics/data.js +110 -0
  445. package/schematics/migrations/modal-dialog-semantics/index.js +58 -0
  446. package/schematics/migrations/modal-dialog-semantics/schema.json +15 -0
  447. package/schematics/migrations/modal-signals/README.md +88 -0
  448. package/schematics/migrations/modal-signals/data.js +132 -0
  449. package/schematics/migrations/modal-signals/index.js +19 -0
  450. package/schematics/migrations/modal-signals/schema.json +20 -0
  451. package/schematics/migrations/navbar-signals-and-aria/README.md +111 -0
  452. package/schematics/migrations/navbar-signals-and-aria/data.js +198 -0
  453. package/schematics/migrations/navbar-signals-and-aria/index.js +568 -0
  454. package/schematics/migrations/navbar-signals-and-aria/schema.json +20 -0
  455. package/schematics/migrations/new-icons-pack/README.md +10 -10
  456. package/schematics/migrations/new-icons-pack/index.js +1 -1
  457. package/schematics/migrations/notification-center-signals/README.md +67 -0
  458. package/schematics/migrations/notification-center-signals/data.js +66 -0
  459. package/schematics/migrations/notification-center-signals/index.js +61 -0
  460. package/schematics/migrations/notification-center-signals/schema.json +15 -0
  461. package/schematics/migrations/option-signals/README.md +37 -0
  462. package/schematics/migrations/option-signals/data.js +86 -0
  463. package/schematics/migrations/option-signals/index.js +19 -0
  464. package/schematics/migrations/option-signals/schema.json +20 -0
  465. package/schematics/migrations/popover-leave-delay/README.md +51 -0
  466. package/schematics/migrations/popover-leave-delay/data.js +61 -0
  467. package/schematics/migrations/popover-leave-delay/index.js +54 -0
  468. package/schematics/migrations/popover-leave-delay/schema.json +15 -0
  469. package/schematics/migrations/progress-bar-percentage-and-aria/README.md +54 -0
  470. package/schematics/migrations/progress-bar-percentage-and-aria/data.js +76 -0
  471. package/schematics/migrations/progress-bar-percentage-and-aria/index.js +58 -0
  472. package/schematics/migrations/progress-bar-percentage-and-aria/schema.json +15 -0
  473. package/schematics/migrations/progress-spinner-signals/README.md +72 -0
  474. package/schematics/migrations/progress-spinner-signals/data.js +83 -0
  475. package/schematics/migrations/progress-spinner-signals/index.js +694 -0
  476. package/schematics/migrations/progress-spinner-signals/schema.json +20 -0
  477. package/schematics/migrations/query-list-signals/README.md +32 -0
  478. package/schematics/migrations/query-list-signals/data.js +70 -0
  479. package/schematics/migrations/query-list-signals/index.js +17 -0
  480. package/schematics/migrations/query-list-signals/schema.json +15 -0
  481. package/schematics/migrations/radio-signals-and-aria/README.md +82 -0
  482. package/schematics/migrations/radio-signals-and-aria/data.js +163 -0
  483. package/schematics/migrations/radio-signals-and-aria/index.js +39 -0
  484. package/schematics/migrations/radio-signals-and-aria/schema.json +20 -0
  485. package/schematics/migrations/read-state-dwell-handlers/README.md +125 -0
  486. package/schematics/migrations/read-state-dwell-handlers/data.js +45 -0
  487. package/schematics/migrations/read-state-dwell-handlers/index.js +215 -0
  488. package/schematics/migrations/read-state-dwell-handlers/schema.json +20 -0
  489. package/schematics/migrations/scrollbar-deprecated-path/README.md +128 -0
  490. package/schematics/migrations/scrollbar-deprecated-path/index.js +20 -0
  491. package/schematics/migrations/scrollbar-deprecated-path/schema.json +20 -0
  492. package/schematics/migrations/select-signal-inputs/README.md +61 -0
  493. package/schematics/migrations/select-signal-inputs/data.js +99 -0
  494. package/schematics/migrations/select-signal-inputs/index.js +57 -0
  495. package/schematics/migrations/select-signal-inputs/schema.json +15 -0
  496. package/schematics/migrations/sidepanel-non-modal-behavior/README.md +57 -0
  497. package/schematics/migrations/sidepanel-non-modal-behavior/data.js +111 -0
  498. package/schematics/migrations/sidepanel-non-modal-behavior/index.js +57 -0
  499. package/schematics/migrations/sidepanel-non-modal-behavior/schema.json +15 -0
  500. package/schematics/migrations/signal-inputs-subclasses/README.md +28 -0
  501. package/schematics/migrations/signal-inputs-subclasses/data.js +69 -0
  502. package/schematics/migrations/signal-inputs-subclasses/index.js +17 -0
  503. package/schematics/migrations/signal-inputs-subclasses/schema.json +15 -0
  504. package/schematics/migrations/split-button-optional-disabled/README.md +47 -0
  505. package/schematics/migrations/split-button-optional-disabled/data.js +53 -0
  506. package/schematics/migrations/split-button-optional-disabled/index.js +57 -0
  507. package/schematics/migrations/split-button-optional-disabled/schema.json +15 -0
  508. package/schematics/migrations/splitter-deprecated-path/README.md +136 -0
  509. package/schematics/migrations/splitter-deprecated-path/index.js +20 -0
  510. package/schematics/migrations/splitter-deprecated-path/schema.json +20 -0
  511. package/schematics/migrations/state-saving-default/README.md +67 -0
  512. package/schematics/migrations/state-saving-default/data.js +88 -0
  513. package/schematics/migrations/state-saving-default/index.js +62 -0
  514. package/schematics/migrations/state-saving-default/schema.json +15 -0
  515. package/schematics/migrations/table-cell-content/README.md +55 -0
  516. package/schematics/migrations/table-cell-content/data.js +66 -0
  517. package/schematics/migrations/table-cell-content/index.js +66 -0
  518. package/schematics/migrations/table-cell-content/schema.json +15 -0
  519. package/schematics/migrations/tabs-signals-and-aria/README.md +93 -0
  520. package/schematics/migrations/tabs-signals-and-aria/data.js +139 -0
  521. package/schematics/migrations/tabs-signals-and-aria/index.js +65 -0
  522. package/schematics/migrations/tabs-signals-and-aria/schema.json +15 -0
  523. package/schematics/migrations/tag-list-cleaner/README.md +58 -0
  524. package/schematics/migrations/tag-list-cleaner/data.js +42 -0
  525. package/schematics/migrations/tag-list-cleaner/index.js +196 -0
  526. package/schematics/migrations/tag-list-cleaner/schema.json +20 -0
  527. package/schematics/migrations/tag-slots/README.md +41 -0
  528. package/schematics/migrations/tag-slots/index.js +190 -0
  529. package/schematics/migrations/tag-slots/schema.json +20 -0
  530. package/schematics/migrations/tags-signals/README.md +85 -0
  531. package/schematics/migrations/tags-signals/data.js +103 -0
  532. package/schematics/migrations/tags-signals/index.js +673 -0
  533. package/schematics/migrations/tags-signals/schema.json +20 -0
  534. package/schematics/migrations/textarea-signals/README.md +72 -0
  535. package/schematics/migrations/textarea-signals/data.js +121 -0
  536. package/schematics/migrations/textarea-signals/index.js +379 -0
  537. package/schematics/migrations/textarea-signals/schema.json +20 -0
  538. package/schematics/migrations/time-range-title-for/README.md +164 -0
  539. package/schematics/migrations/time-range-title-for/data.js +139 -0
  540. package/schematics/migrations/time-range-title-for/index.js +163 -0
  541. package/schematics/migrations/time-range-title-for/schema.json +20 -0
  542. package/schematics/migrations/timepicker-signals/README.md +78 -0
  543. package/schematics/migrations/timepicker-signals/data.js +82 -0
  544. package/schematics/migrations/timepicker-signals/index.js +709 -0
  545. package/schematics/migrations/timepicker-signals/schema.json +20 -0
  546. package/schematics/migrations/timezone-grouping-utils/README.md +73 -0
  547. package/schematics/migrations/timezone-grouping-utils/data.js +101 -0
  548. package/schematics/migrations/timezone-grouping-utils/index.js +64 -0
  549. package/schematics/migrations/timezone-grouping-utils/schema.json +15 -0
  550. package/schematics/migrations/title-encapsulation/README.md +49 -0
  551. package/schematics/migrations/title-encapsulation/data.js +69 -0
  552. package/schematics/migrations/title-encapsulation/index.js +57 -0
  553. package/schematics/migrations/title-encapsulation/schema.json +15 -0
  554. package/schematics/migrations/toast-stack-and-defaults/README.md +102 -0
  555. package/schematics/migrations/toast-stack-and-defaults/data.js +79 -0
  556. package/schematics/migrations/toast-stack-and-defaults/index.js +53 -0
  557. package/schematics/migrations/toast-stack-and-defaults/schema.json +15 -0
  558. package/schematics/migrations/tooltip-pointer-events-and-types/README.md +53 -0
  559. package/schematics/migrations/tooltip-pointer-events-and-types/data.js +89 -0
  560. package/schematics/migrations/tooltip-pointer-events-and-types/index.js +60 -0
  561. package/schematics/migrations/tooltip-pointer-events-and-types/schema.json +15 -0
  562. package/schematics/migrations/top-bar-container-selectors/README.md +111 -0
  563. package/schematics/migrations/top-bar-container-selectors/data.js +56 -0
  564. package/schematics/migrations/top-bar-container-selectors/index.js +84 -0
  565. package/schematics/migrations/top-bar-container-selectors/schema.json +20 -0
  566. package/schematics/migrations/tree-select-signals/README.md +61 -0
  567. package/schematics/migrations/tree-select-signals/data.js +106 -0
  568. package/schematics/migrations/tree-select-signals/index.js +58 -0
  569. package/schematics/migrations/tree-select-signals/schema.json +15 -0
  570. package/schematics/migrations/tree-signals/README.md +82 -0
  571. package/schematics/migrations/tree-signals/data.js +123 -0
  572. package/schematics/migrations/tree-signals/index.js +54 -0
  573. package/schematics/migrations/tree-signals/schema.json +15 -0
  574. package/schematics/migrations/tree-state-saving-default/README.md +66 -0
  575. package/schematics/migrations/tree-state-saving-default/data.js +78 -0
  576. package/schematics/migrations/tree-state-saving-default/index.js +60 -0
  577. package/schematics/migrations/tree-state-saving-default/schema.json +15 -0
  578. package/schematics/migrations/username-pipe-injection/README.md +59 -0
  579. package/schematics/migrations/username-pipe-injection/data.js +78 -0
  580. package/schematics/migrations/username-pipe-injection/index.js +58 -0
  581. package/schematics/migrations/username-pipe-injection/schema.json +15 -0
  582. package/schematics/migrations/v20-upgrade/README.md +36 -16
  583. package/schematics/migrations/v20-upgrade/data.js +124 -77
  584. package/schematics/migrations/v20-upgrade/index.js +6 -213
  585. package/schematics/migrations/v21-upgrade/README.md +271 -0
  586. package/schematics/migrations/v21-upgrade/data.js +1371 -0
  587. package/schematics/migrations/v21-upgrade/index.js +94 -0
  588. package/schematics/migrations/v21-upgrade/schema.json +20 -0
  589. package/schematics/migrations/zoneless-change-detection/README.md +30 -0
  590. package/schematics/migrations/zoneless-change-detection/data.js +29 -0
  591. package/schematics/migrations/zoneless-change-detection/index.js +20 -0
  592. package/schematics/migrations/zoneless-change-detection/schema.json +15 -0
  593. package/schematics/migrations.json +392 -2
  594. package/schematics/ng-add/index.js +515 -14
  595. package/schematics/ng-add/schema.json +15 -0
  596. package/schematics/utils/deprecated-path-migration.js +61 -0
  597. package/schematics/utils/package-config.js +9 -105
  598. package/scrollbar/{_scrollbar-component-theme.scss → deprecated/_scrollbar-component-theme.scss} +1 -1
  599. package/scrollbar/{scrollbar.component.scss → deprecated/scrollbar.component.scss} +1 -1
  600. package/scrollbar/native-scrollbar.scss +68 -0
  601. package/scrollbar/scrollbar-tokens.scss +13 -22
  602. package/scrollbar/scrollbar-track.scss +94 -0
  603. package/scrollbar/scrollbar-viewport.scss +33 -0
  604. package/scrollbar/scrollbar.scss +24 -0
  605. package/search-expandable/search-expandable-tokens.scss +4 -0
  606. package/search-expandable/search-expandable.scss +4 -2
  607. package/select/_select-theme.scss +3 -16
  608. package/select/select.scss +0 -6
  609. package/sidebar/sidebar.scss +20 -0
  610. package/sidepanel/_sidepanel-theme.scss +1 -1
  611. package/sidepanel/sidepanel-tokens.scss +7 -1
  612. package/sidepanel/sidepanel.scss +41 -5
  613. package/skeleton/skeleton-presets.scss +350 -0
  614. package/skeleton/skeleton-tokens.scss +127 -0
  615. package/skeleton/skeleton.scss +53 -45
  616. package/split-button/_split-button-theme.scss +4 -4
  617. package/split-button/split-button.scss +2 -6
  618. package/splitter/{_splitter-theme.scss → deprecated/_splitter-theme.scss} +1 -1
  619. package/splitter/deprecated/splitter.scss +51 -0
  620. package/splitter/splitter-tokens.scss +19 -0
  621. package/splitter/splitter.scss +148 -28
  622. package/table/_table-theme.scss +13 -12
  623. package/table/table-tokens.scss +8 -0
  624. package/table/table.scss +47 -22
  625. package/tabs/_tabs-common.scss +14 -14
  626. package/tabs/_tabs-theme.scss +4 -5
  627. package/tabs/tab-body.scss +49 -1
  628. package/tabs/tab-header.scss +2 -1
  629. package/tags/tag-list.scss +4 -0
  630. package/tags/tag.scss +19 -1
  631. package/time-range/time-range.scss +9 -0
  632. package/timezone/timezone-option.component.scss +4 -7
  633. package/timezone/timezone-select.component.scss +3 -0
  634. package/toast/_toast-theme.scss +1 -4
  635. package/toast/toast-container.component.scss +19 -13
  636. package/toast/toast-tokens.scss +12 -6
  637. package/toast/toast.component.scss +42 -19
  638. package/toggle/_toggle-theme.scss +4 -10
  639. package/toggle/toggle.scss +67 -26
  640. package/tooltip/_tooltip-theme.scss +7 -1
  641. package/tooltip/tooltip-tokens.scss +1 -2
  642. package/tooltip/tooltip.scss +55 -9
  643. package/top-bar/top-bar-tokens.scss +13 -2
  644. package/top-bar/top-bar.scss +24 -19
  645. package/tree/_tree-theme.scss +0 -1
  646. package/tree/toggle.scss +5 -9
  647. package/tree/tree-option.scss +2 -4
  648. package/tree/tree-tokens.scss +2 -1
  649. package/tree/tree.scss +3 -5
  650. package/tree-select/_tree-select-theme.scss +4 -15
  651. package/tree-select/tree-select-tokens.scss +16 -0
  652. package/tree-select/tree-select.scss +0 -6
  653. package/{accordion/index.d.ts → types/koobiq-components-accordion.d.ts} +102 -84
  654. package/{actions-panel/index.d.ts → types/koobiq-components-actions-panel.d.ts} +44 -59
  655. package/{alert/index.d.ts → types/koobiq-components-alert.d.ts} +8 -3
  656. package/types/koobiq-components-app-switcher.d.ts +406 -0
  657. package/types/koobiq-components-autocomplete.d.ts +443 -0
  658. package/{badge/index.d.ts → types/koobiq-components-badge.d.ts} +25 -20
  659. package/{breadcrumbs/index.d.ts → types/koobiq-components-breadcrumbs.d.ts} +97 -46
  660. package/types/koobiq-components-button-toggle.d.ts +340 -0
  661. package/types/koobiq-components-button.d.ts +296 -0
  662. package/types/koobiq-components-checkbox.d.ts +172 -0
  663. package/types/koobiq-components-clamped-text.d.ts +184 -0
  664. package/{code-block/index.d.ts → types/koobiq-components-code-block.d.ts} +114 -79
  665. package/{content-panel/index.d.ts → types/koobiq-components-content-panel.d.ts} +81 -25
  666. package/{core/index.d.ts → types/koobiq-components-core.d.ts} +2827 -865
  667. package/{datepicker/index.d.ts → types/koobiq-components-datepicker.d.ts} +161 -116
  668. package/types/koobiq-components-divider.d.ts +43 -0
  669. package/types/koobiq-components-dl.d.ts +235 -0
  670. package/{dropdown/index.d.ts → types/koobiq-components-dropdown.d.ts} +245 -239
  671. package/types/koobiq-components-ellipsis-center.d.ts +85 -0
  672. package/types/koobiq-components-empty-state.d.ts +106 -0
  673. package/{file-upload/index.d.ts → types/koobiq-components-file-upload.d.ts} +214 -107
  674. package/{filter-bar/index.d.ts → types/koobiq-components-filter-bar.d.ts} +410 -495
  675. package/types/koobiq-components-flag.d.ts +68 -0
  676. package/{form-field/index.d.ts → types/koobiq-components-form-field.d.ts} +167 -191
  677. package/types/koobiq-components-icon.d.ts +333 -0
  678. package/{inline-edit/index.d.ts → types/koobiq-components-inline-edit.d.ts} +109 -46
  679. package/types/koobiq-components-input.d.ts +477 -0
  680. package/types/koobiq-components-link-deprecated.d.ts +101 -0
  681. package/types/koobiq-components-link.d.ts +176 -0
  682. package/{list/index.d.ts → types/koobiq-components-list.d.ts} +162 -99
  683. package/types/koobiq-components-loader-overlay.d.ts +101 -0
  684. package/{markdown/index.d.ts → types/koobiq-components-markdown.d.ts} +16 -24
  685. package/types/koobiq-components-modal.d.ts +666 -0
  686. package/types/koobiq-components-navbar.d.ts +569 -0
  687. package/types/koobiq-components-notification-center.d.ts +500 -0
  688. package/{overflow-items/index.d.ts → types/koobiq-components-overflow-items.d.ts} +8 -22
  689. package/types/koobiq-components-popover.d.ts +468 -0
  690. package/types/koobiq-components-progress-bar.d.ts +67 -0
  691. package/{progress-spinner/index.d.ts → types/koobiq-components-progress-spinner.d.ts} +33 -10
  692. package/types/koobiq-components-radio.d.ts +294 -0
  693. package/{resizer/index.d.ts → types/koobiq-components-resizer.d.ts} +37 -2
  694. package/{scrollbar/index.d.ts → types/koobiq-components-scrollbar-deprecated.d.ts} +18 -1
  695. package/types/koobiq-components-scrollbar.d.ts +154 -0
  696. package/types/koobiq-components-search-expandable.d.ts +164 -0
  697. package/{select/index.d.ts → types/koobiq-components-select.d.ts} +360 -167
  698. package/types/koobiq-components-sidebar.d.ts +152 -0
  699. package/types/koobiq-components-sidepanel.d.ts +436 -0
  700. package/types/koobiq-components-skeleton.d.ts +234 -0
  701. package/types/koobiq-components-split-button.d.ts +65 -0
  702. package/{splitter/index.d.ts → types/koobiq-components-splitter-deprecated.d.ts} +44 -1
  703. package/types/koobiq-components-splitter.d.ts +406 -0
  704. package/types/koobiq-components-table.d.ts +44 -0
  705. package/types/koobiq-components-tabs.d.ts +888 -0
  706. package/{tags/index.d.ts → types/koobiq-components-tags.d.ts} +249 -133
  707. package/types/koobiq-components-textarea.d.ts +178 -0
  708. package/{time-range/index.d.ts → types/koobiq-components-time-range.d.ts} +135 -62
  709. package/types/koobiq-components-timepicker.d.ts +223 -0
  710. package/types/koobiq-components-timezone.d.ts +266 -0
  711. package/types/koobiq-components-title.d.ts +184 -0
  712. package/types/koobiq-components-toast.d.ts +289 -0
  713. package/types/koobiq-components-toggle.d.ts +121 -0
  714. package/types/koobiq-components-tooltip.d.ts +610 -0
  715. package/types/koobiq-components-top-bar.d.ts +61 -0
  716. package/types/koobiq-components-tree-select.d.ts +667 -0
  717. package/types/koobiq-components-tree.d.ts +1290 -0
  718. package/types/koobiq-components-username.d.ts +340 -0
  719. package/username/_username-theme.scss +35 -0
  720. package/username/username.scss +10 -34
  721. package/app-switcher/index.d.ts +0 -276
  722. package/autocomplete/index.d.ts +0 -286
  723. package/button/index.d.ts +0 -153
  724. package/button-toggle/index.d.ts +0 -162
  725. package/checkbox/index.d.ts +0 -163
  726. package/clamped-text/index.d.ts +0 -146
  727. package/core/styles/_tokens.scss +0 -7
  728. package/core/styles/common/_clearfix.scss +0 -13
  729. package/core/styles/common/_popup.scss +0 -6
  730. package/core/styles/functions/_index.scss +0 -3
  731. package/core/styles/functions/_number.scss +0 -60
  732. package/core/styles/functions/_string.scss +0 -18
  733. package/core/styles/theming/scrollbar-tokens.scss +0 -25
  734. package/core/styles/typography/_typography-utils.scss +0 -84
  735. package/divider/index.d.ts +0 -20
  736. package/dl/index.d.ts +0 -45
  737. package/ellipsis-center/index.d.ts +0 -71
  738. package/empty-state/index.d.ts +0 -45
  739. package/flag/index.d.ts +0 -44
  740. package/icon/index.d.ts +0 -200
  741. package/input/index.d.ts +0 -354
  742. package/link/index.d.ts +0 -56
  743. package/loader-overlay/index.d.ts +0 -57
  744. package/modal/index.d.ts +0 -339
  745. package/navbar/index.d.ts +0 -372
  746. package/notification-center/index.d.ts +0 -323
  747. package/popover/index.d.ts +0 -182
  748. package/prebuilt-themes/dark-theme.css +0 -1
  749. package/prebuilt-themes/light-theme.css +0 -1
  750. package/progress-bar/index.d.ts +0 -31
  751. package/radio/index.d.ts +0 -203
  752. package/search-expandable/index.d.ts +0 -101
  753. package/sidebar/index.d.ts +0 -94
  754. package/sidepanel/index.d.ts +0 -272
  755. package/skeleton/index.d.ts +0 -26
  756. package/split-button/index.d.ts +0 -46
  757. package/table/index.d.ts +0 -25
  758. package/tabs/index.d.ts +0 -677
  759. package/textarea/index.d.ts +0 -138
  760. package/timepicker/index.d.ts +0 -197
  761. package/timezone/index.d.ts +0 -125
  762. package/title/index.d.ts +0 -139
  763. package/toast/index.d.ts +0 -187
  764. package/toggle/index.d.ts +0 -104
  765. package/tooltip/index.d.ts +0 -335
  766. package/top-bar/index.d.ts +0 -33
  767. package/tree/index.d.ts +0 -802
  768. package/tree-select/index.d.ts +0 -475
  769. package/username/index.d.ts +0 -194
  770. /package/{dynamic-translation/index.d.ts → types/koobiq-components-dynamic-translation.d.ts} +0 -0
  771. /package/{index.d.ts → types/koobiq-components.d.ts} +0 -0
@@ -0,0 +1,415 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var ts = require('typescript');
6
+ var utils_messages = require('../../utils/messages.js');
7
+ var utils_packageConfig = require('../../package-config-BhU2TfC8.js');
8
+ var migrations_linkSignals_data = require('./data.js');
9
+ require('@angular-devkit/schematics');
10
+ require('@schematics/angular/utility');
11
+
12
+ const LABEL = '[link-signals]';
13
+ const TS_EXT = '.ts';
14
+ /** Factories whose single argument gives the type of the declaration they set up. */
15
+ const TYPING_FACTORIES = new Set(['inject', 'viewChild', 'contentChild']);
16
+ /** Applies text-span edits to `content`, right-to-left, so earlier edits don't shift later offsets. */
17
+ function applyEdits(content, edits) {
18
+ const sorted = [...edits].sort((a, b) => b.start - a.start || b.end - a.end);
19
+ let result = content;
20
+ for (const { start, end, text } of sorted) {
21
+ result = result.slice(0, start) + text + result.slice(end);
22
+ }
23
+ return result;
24
+ }
25
+ /** Walks up from `node` to the nearest ancestor matching `predicate`. */
26
+ function findAncestor(node, predicate) {
27
+ let current = node.parent;
28
+ while (current) {
29
+ if (predicate(current))
30
+ return current;
31
+ current = current.parent;
32
+ }
33
+ return undefined;
34
+ }
35
+ /**
36
+ * Nodes that open a new binding scope. `ts.isFunctionLike` rather than a hand-rolled list of declarations,
37
+ * so a parameter of a `FunctionTypeNode` or a `MethodSignature` is bounded by its type instead of falling
38
+ * back to the whole file. Blocks and loops are included because `let`/`const` are block-scoped.
39
+ */
40
+ const opensScope = (node) => ts.isFunctionLike(node) ||
41
+ ts.isBlock(node) ||
42
+ ts.isCaseBlock(node) ||
43
+ ts.isModuleBlock(node) ||
44
+ ts.isForStatement(node) ||
45
+ ts.isForInStatement(node) ||
46
+ ts.isForOfStatement(node) ||
47
+ ts.isCatchClause(node) ||
48
+ ts.isClassLike(node) ||
49
+ ts.isSourceFile(node);
50
+ /** Nodes that rebind `this`, so `this.link` inside them is a different object. Arrows don't. */
51
+ const rebindsThis = (node) => ts.isFunctionDeclaration(node) || ts.isFunctionExpression(node) || ts.isClassLike(node);
52
+ /** Whether `node` sits inside `scope` without crossing a `barrier` node on the way up. */
53
+ function reachesScope(node, scope, barrier) {
54
+ let current = node.parent;
55
+ while (current && current !== scope) {
56
+ if (barrier(current))
57
+ return false;
58
+ current = current.parent;
59
+ }
60
+ return current === scope;
61
+ }
62
+ /** Whether a type annotation names one of `typeNames` directly (not through a union or type argument). */
63
+ function isTypeReference(type, typeNames) {
64
+ return (!!type &&
65
+ ts.isTypeReferenceNode(type) &&
66
+ ts.isIdentifier(type.typeName) &&
67
+ typeNames.includes(type.typeName.text));
68
+ }
69
+ const FIELD_MODIFIERS = new Set([
70
+ ts.SyntaxKind.PrivateKeyword,
71
+ ts.SyntaxKind.PublicKeyword,
72
+ ts.SyntaxKind.ProtectedKeyword,
73
+ ts.SyntaxKind.ReadonlyKeyword
74
+ ]);
75
+ /** Every value declaration that introduces a plain identifier, with the scope it is visible in. */
76
+ function collectBindings(sourceFile) {
77
+ const bindings = [];
78
+ const add = (name, declaration, scope) => bindings.push({ name, declaration, scope: scope ?? sourceFile });
79
+ const visit = (node) => {
80
+ if (ts.isParameter(node) && ts.isIdentifier(node.name)) {
81
+ add(node.name.text, node, findAncestor(node, ts.isFunctionLike));
82
+ }
83
+ else if ((ts.isVariableDeclaration(node) || ts.isBindingElement(node)) && ts.isIdentifier(node.name)) {
84
+ add(node.name.text, node, findAncestor(node, opensScope));
85
+ }
86
+ else if ((ts.isFunctionDeclaration(node) || ts.isClassDeclaration(node)) && node.name) {
87
+ add(node.name.text, node, findAncestor(node, opensScope));
88
+ }
89
+ else if ((ts.isImportSpecifier(node) || ts.isImportClause(node)) && node.name) {
90
+ add(node.name.text, node, sourceFile);
91
+ }
92
+ node.forEachChild(visit);
93
+ };
94
+ visit(sourceFile);
95
+ return bindings;
96
+ }
97
+ /** The declaration `name` binds to at `pos`: the innermost enclosing scope that declares it. */
98
+ function resolveBinding(bindings, name, pos) {
99
+ let best;
100
+ let bestWidth = Number.POSITIVE_INFINITY;
101
+ for (const binding of bindings) {
102
+ if (binding.name !== name)
103
+ continue;
104
+ const start = binding.scope.getStart();
105
+ const end = binding.scope.getEnd();
106
+ if (pos < start || pos > end)
107
+ continue;
108
+ const width = end - start;
109
+ if (width < bestWidth) {
110
+ best = binding;
111
+ bestWidth = width;
112
+ }
113
+ }
114
+ return best?.declaration;
115
+ }
116
+ /** Local names `KbqLink` is bound to in this file, including aliased imports. */
117
+ function localTypeNames(sourceFile) {
118
+ const names = new Set([migrations_linkSignals_data.LINK_TYPE]);
119
+ const visit = (node) => {
120
+ if (ts.isImportSpecifier(node) && (node.propertyName?.text ?? node.name.text) === migrations_linkSignals_data.LINK_TYPE) {
121
+ names.add(node.name.text);
122
+ }
123
+ node.forEachChild(visit);
124
+ };
125
+ visit(sourceFile);
126
+ return [...names];
127
+ }
128
+ /**
129
+ * The link-ness of an initializer, for the shapes a modern Angular consumer writes: `inject(KbqLink)`,
130
+ * `viewChild(KbqLink)`, `viewChild.required(…)`, `contentChild(…)`.
131
+ */
132
+ function initializerTypeOf(initializer, typeNames) {
133
+ const none = { link: false, signalQuery: false, required: false };
134
+ if (!initializer || !ts.isCallExpression(initializer))
135
+ return none;
136
+ const callee = initializer.expression;
137
+ const qualified = ts.isPropertyAccessExpression(callee) && ts.isIdentifier(callee.expression);
138
+ const name = ts.isIdentifier(callee) ? callee.text : qualified ? callee.expression.text : undefined;
139
+ if (!name || !TYPING_FACTORIES.has(name))
140
+ return none;
141
+ const [arg] = initializer.arguments;
142
+ if (!arg || !ts.isIdentifier(arg) || !typeNames.includes(arg.text))
143
+ return none;
144
+ // `viewChild.required(...)` is `Signal<KbqLink>`; the bare form adds `| undefined`.
145
+ const required = qualified && callee.name.text === 'required';
146
+ return { link: true, signalQuery: name !== 'inject', required };
147
+ }
148
+ /**
149
+ * Collects the link receivers: method/function params, class fields (incl. `@ViewChild(KbqLink) x: KbqLink`,
150
+ * constructor parameter-properties and the `inject()` / `viewChild()` initializer forms) and typed locals.
151
+ */
152
+ function collectReceivers(sourceFile, typeNames) {
153
+ const receivers = [];
154
+ const add = (text, declaration, scope, signalQuery = false, required = false) => receivers.push({ text, declaration, scope: scope ?? sourceFile, signalQuery, required });
155
+ const visit = (node) => {
156
+ if (ts.isParameter(node) && ts.isIdentifier(node.name) && isTypeReference(node.type, typeNames)) {
157
+ add(node.name.text, node, findAncestor(node, ts.isFunctionLike));
158
+ // A constructor parameter-property is also a class field, reachable as `this.<name>`.
159
+ if (node.modifiers?.some((modifier) => FIELD_MODIFIERS.has(modifier.kind))) {
160
+ const owner = findAncestor(node, ts.isClassDeclaration);
161
+ if (owner)
162
+ add(`this.${node.name.text}`, node, owner);
163
+ }
164
+ }
165
+ else if (ts.isPropertyDeclaration(node) && ts.isIdentifier(node.name)) {
166
+ const owner = findAncestor(node, ts.isClassDeclaration);
167
+ const { link, signalQuery, required } = initializerTypeOf(node.initializer, typeNames);
168
+ if (owner && (isTypeReference(node.type, typeNames) || link)) {
169
+ add(`this.${node.name.text}`, node, owner, signalQuery, required);
170
+ }
171
+ }
172
+ else if (ts.isVariableDeclaration(node) && ts.isIdentifier(node.name)) {
173
+ const { link, signalQuery, required } = initializerTypeOf(node.initializer, typeNames);
174
+ if (isTypeReference(node.type, typeNames) || link) {
175
+ add(node.name.text, node, findAncestor(node, opensScope), signalQuery, required);
176
+ }
177
+ }
178
+ node.forEachChild(visit);
179
+ };
180
+ visit(sourceFile);
181
+ return receivers;
182
+ }
183
+ /** Strips the wrappers that do not change which object an access reads from. */
184
+ function unwrapReceiver(node) {
185
+ let current = node;
186
+ while (ts.isNonNullExpression(current) ||
187
+ ts.isParenthesizedExpression(current) ||
188
+ ts.isAsExpression(current) ||
189
+ ts.isTypeAssertionExpression(current)) {
190
+ current = current.expression;
191
+ }
192
+ return current;
193
+ }
194
+ /** The receiver a property access resolves to at this exact position, if any. */
195
+ function resolveReceiver(expression, at, sourceFile, receivers, bindings) {
196
+ const inner = unwrapReceiver(expression);
197
+ // A receiver is `this.<name>` or a bare identifier, so its own text is a single token: `this . link`
198
+ // and `this /* x */ . link` already spell `this.link`, because the trivia between the token and the
199
+ // member lies outside both of their spans.
200
+ const text = ts.isPropertyAccessExpression(inner)
201
+ ? `${unwrapReceiver(inner.expression).getText(sourceFile)}.${inner.name.text}`
202
+ : inner.getText(sourceFile);
203
+ return receivers.find((receiver) => {
204
+ if (receiver.text !== text)
205
+ return false;
206
+ // For `this.link`, a nested `function` or class changes what `this` is; an arrow does not.
207
+ // For a bare `link`, a nested redeclaration of the same name shadows the receiver.
208
+ if (receiver.text.startsWith('this.'))
209
+ return reachesScope(at, receiver.scope, rebindsThis);
210
+ return (reachesScope(at, receiver.scope, () => false) &&
211
+ resolveBinding(bindings, receiver.text, at.getStart(sourceFile)) === receiver.declaration);
212
+ });
213
+ }
214
+ /** Binary operators that make their left operand a write target rather than a read. */
215
+ const ASSIGNMENT_OPERATORS = new Set([
216
+ ts.SyntaxKind.EqualsToken,
217
+ ts.SyntaxKind.PlusEqualsToken,
218
+ ts.SyntaxKind.MinusEqualsToken,
219
+ ts.SyntaxKind.AsteriskEqualsToken,
220
+ ts.SyntaxKind.AsteriskAsteriskEqualsToken,
221
+ ts.SyntaxKind.SlashEqualsToken,
222
+ ts.SyntaxKind.PercentEqualsToken,
223
+ ts.SyntaxKind.LessThanLessThanEqualsToken,
224
+ ts.SyntaxKind.GreaterThanGreaterThanEqualsToken,
225
+ ts.SyntaxKind.GreaterThanGreaterThanGreaterThanEqualsToken,
226
+ ts.SyntaxKind.AmpersandEqualsToken,
227
+ ts.SyntaxKind.BarEqualsToken,
228
+ ts.SyntaxKind.CaretEqualsToken,
229
+ ts.SyntaxKind.BarBarEqualsToken,
230
+ ts.SyntaxKind.AmpersandAmpersandEqualsToken,
231
+ ts.SyntaxKind.QuestionQuestionEqualsToken
232
+ ]);
233
+ /** Unary operators that write their operand back. Every other prefix operator is a plain read. */
234
+ const INCREMENT_OPERATORS = new Set([ts.SyntaxKind.PlusPlusToken, ts.SyntaxKind.MinusMinusToken]);
235
+ /** Whether `node` sits on the left of a destructuring assignment, where it is written rather than read. */
236
+ function isDestructuringTarget(node) {
237
+ let current = node;
238
+ while (ts.isPropertyAssignment(current.parent) ||
239
+ ts.isShorthandPropertyAssignment(current.parent) ||
240
+ ts.isSpreadAssignment(current.parent) ||
241
+ ts.isSpreadElement(current.parent) ||
242
+ ts.isObjectLiteralExpression(current.parent) ||
243
+ ts.isArrayLiteralExpression(current.parent)) {
244
+ current = current.parent;
245
+ }
246
+ return (ts.isBinaryExpression(current.parent) &&
247
+ current.parent.left === current &&
248
+ ASSIGNMENT_OPERATORS.has(current.parent.operatorToken.kind));
249
+ }
250
+ /**
251
+ * Classifies a matched property access and appends the resulting edit, if any. Only a plain read is
252
+ * rewritten: every `KbqLink` signal member is an `input()`, so a write has no mechanical translation, and
253
+ * appending `()` to it would produce unparseable TypeScript instead of the read-only error to fix by hand.
254
+ */
255
+ function classifyAccess(node, edits, rewritable) {
256
+ const parent = node.parent;
257
+ // Already migrated: `x.disabled()` (call) or the signal API on it.
258
+ if (ts.isCallExpression(parent) && parent.expression === node)
259
+ return 'migrated';
260
+ if (ts.isPropertyAccessExpression(parent) && parent.expression === node && migrations_linkSignals_data.SIGNAL_API_METHODS.has(parent.name.text))
261
+ return 'migrated';
262
+ // Write target: `x.disabled = RHS` and every compound form (`+=`, `??=`, `||=`, …).
263
+ if (ts.isBinaryExpression(parent) && parent.left === node && ASSIGNMENT_OPERATORS.has(parent.operatorToken.kind))
264
+ return 'write';
265
+ // `x.disabled++` / `--x.disabled` and `delete x.disabled` are writes too. Only the increment operators
266
+ // count: a `PrefixUnaryExpression` is also how `!x.disabled` and `-x.tabIndex` are spelled, and those
267
+ // are reads.
268
+ if (ts.isPostfixUnaryExpression(parent) && parent.operand === node)
269
+ return 'write';
270
+ if (ts.isPrefixUnaryExpression(parent) && parent.operand === node && INCREMENT_OPERATORS.has(parent.operator))
271
+ return 'write';
272
+ if (ts.isDeleteExpression(parent))
273
+ return 'write';
274
+ if (isDestructuringTarget(node))
275
+ return 'write';
276
+ // Read (incl. optional chain `x?.disabled`): append `()`.
277
+ if (rewritable)
278
+ edits.push({ start: node.getEnd(), end: node.getEnd(), text: '()' });
279
+ return 'read';
280
+ }
281
+ /** Collects the edits and the findings for every access on a known link receiver. */
282
+ function collectAccesses(sourceFile, receivers, bindings) {
283
+ const edits = [];
284
+ const writes = new Set();
285
+ const hidden = new Set();
286
+ const valueChanged = new Set();
287
+ const signalQueryReads = [];
288
+ const visit = (node) => {
289
+ if (ts.isPropertyAccessExpression(node) && ts.isIdentifier(node.name)) {
290
+ const member = node.name.text;
291
+ const receiver = migrations_linkSignals_data.KNOWN_MEMBERS.includes(member)
292
+ ? resolveReceiver(node.expression, node, sourceFile, receivers, bindings)
293
+ : undefined;
294
+ if (receiver) {
295
+ // A hidden member has no reachable spelling left, so classification would have nothing to
296
+ // offer: report it whether it is read or written.
297
+ if (migrations_linkSignals_data.HIDDEN_MEMBERS.includes(member)) {
298
+ hidden.add(member);
299
+ }
300
+ else if (receiver.signalQuery) {
301
+ // A signal query holds the directive behind a call of its own, so the read is
302
+ // `query().disabled()`. Appending one `()` would be wrong in both halves.
303
+ signalQueryReads.push({ member, required: receiver.required });
304
+ }
305
+ else if (classifyAccess(node, edits, migrations_linkSignals_data.SIGNAL_MEMBERS.includes(member)) === 'write') {
306
+ writes.add(member);
307
+ }
308
+ else if (migrations_linkSignals_data.VALUE_CHANGED_MEMBERS.includes(member)) {
309
+ valueChanged.add(member);
310
+ }
311
+ }
312
+ }
313
+ node.forEachChild(visit);
314
+ };
315
+ visit(sourceFile);
316
+ return { edits, writes, hidden, valueChanged, signalQueryReads };
317
+ }
318
+ /** Rewrites the value-safe programmatic reads in one TypeScript file and reports the rest. */
319
+ function migrateTsExpressions(content, fileName) {
320
+ const sourceFile = ts.createSourceFile(fileName, content, ts.ScriptTarget.Latest, true, ts.ScriptKind.TS);
321
+ const typeNames = localTypeNames(sourceFile);
322
+ const receivers = collectReceivers(sourceFile, typeNames);
323
+ const empty = {
324
+ edits: [],
325
+ writes: new Set(),
326
+ hidden: new Set(),
327
+ valueChanged: new Set(),
328
+ signalQueryReads: []
329
+ };
330
+ if (receivers.length === 0)
331
+ return { ...empty, content };
332
+ const bindings = collectBindings(sourceFile);
333
+ const findings = collectAccesses(sourceFile, receivers, bindings);
334
+ return { ...findings, content: findings.edits.length > 0 ? applyEdits(content, findings.edits) : content };
335
+ }
336
+ /** Emits the per-file report for everything the rewrite could not do on its own. */
337
+ function report(context, filePath, findings) {
338
+ const lines = [];
339
+ const subset = (members) => members.filter((member) => findings.hidden.has(member));
340
+ const protectedMembers = subset(migrations_linkSignals_data.PROTECTED_MEMBERS);
341
+ const privateMembers = subset(migrations_linkSignals_data.PRIVATE_MEMBERS);
342
+ const removedMembers = subset(migrations_linkSignals_data.REMOVED_MEMBERS);
343
+ if (protectedMembers.length > 0)
344
+ lines.push(` ${migrations_linkSignals_data.protectedMessage(protectedMembers)}`);
345
+ if (privateMembers.length > 0)
346
+ lines.push(` ${migrations_linkSignals_data.privateMessage(privateMembers)}`);
347
+ if (removedMembers.length > 0)
348
+ lines.push(` ${migrations_linkSignals_data.removedMessage(removedMembers)}`);
349
+ if (findings.valueChanged.size > 0)
350
+ lines.push(` ${migrations_linkSignals_data.valueChangedMessage(findings.valueChanged)}`);
351
+ if (findings.writes.size > 0)
352
+ lines.push(` ${migrations_linkSignals_data.writeMessage(findings.writes)}`);
353
+ // The rewrite this file just got is correct but not value-identical, so the caveat belongs next to the
354
+ // file it was applied to rather than in a summary printed once, after every edit has landed.
355
+ if (findings.edits.length > 0)
356
+ lines.push(migrations_linkSignals_data.DISABLED_CAVEAT);
357
+ for (const { member, required } of findings.signalQueryReads) {
358
+ lines.push(` ${migrations_linkSignals_data.signalQueryMessage(member, required)}`);
359
+ }
360
+ if (lines.length === 0)
361
+ return;
362
+ utils_messages.logMessage(context.logger, [`${LABEL} ${filePath}`, ...lines]);
363
+ }
364
+ /**
365
+ * A `.ts` file is a link consumer if it names any of the exported symbols or imports the package. There is
366
+ * no element to look for: `kbq-link` is an attribute on an anchor.
367
+ */
368
+ function referencesLink(content) {
369
+ return /\bKbqLink\w*\b/.test(content) || content.includes(migrations_linkSignals_data.LINK_PACKAGE);
370
+ }
371
+ function linkSignals(options) {
372
+ return async (tree, context) => {
373
+ const { project } = options;
374
+ // `ng update` runs a migration with no options at all, and `migrations.json` declares no schema, so
375
+ // the schema default never reaches the rule: without this the migration would only ever report.
376
+ const fix = options.fix ?? true;
377
+ const projectDefinition = await utils_packageConfig.setupOptions(project, tree);
378
+ const root = projectDefinition?.root ?? '';
379
+ const rootDir = root ? tree.getDir(root) : tree.root;
380
+ const tsPaths = [];
381
+ utils_packageConfig.visitProjectFiles(rootDir, (filePath) => {
382
+ if (filePath.endsWith(TS_EXT))
383
+ tsPaths.push(filePath);
384
+ });
385
+ let touched = 0;
386
+ let consumers = 0;
387
+ for (const filePath of tsPaths) {
388
+ const original = tree.read(filePath)?.toString();
389
+ if (!original || !referencesLink(original))
390
+ continue;
391
+ consumers++;
392
+ const findings = migrateTsExpressions(original, filePath);
393
+ report(context, filePath, findings);
394
+ if (findings.content === original)
395
+ continue;
396
+ touched++;
397
+ if (fix) {
398
+ tree.overwrite(filePath, findings.content);
399
+ }
400
+ else {
401
+ utils_messages.logMessage(context.logger, [`${LABEL} would update ${filePath}`]);
402
+ }
403
+ }
404
+ // Nothing here uses the link, so the summary would only be noise.
405
+ if (consumers === 0)
406
+ return;
407
+ utils_messages.logMessage(context.logger, [
408
+ `${LABEL} processed tree under "${root || '<workspace root>'}", ` +
409
+ `${fix ? 'updated' : 'would update'} ${touched} file(s).`,
410
+ ...migrations_linkSignals_data.SUMMARY
411
+ ]);
412
+ };
413
+ }
414
+
415
+ exports.default = linkSignals;
@@ -0,0 +1,20 @@
1
+ {
2
+ "$schema": "http://json-schema.org/schema",
3
+ "$id": "koobiq-components-link-signals",
4
+ "title": "Koobiq components link signals 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, applies all auto-fix replacements. When false, prints what would change without writing."
18
+ }
19
+ }
20
+ }
@@ -0,0 +1,22 @@
1
+ # list-signals
2
+
3
+ Migration schematic invoked automatically by `ng update @koobiq/components@21` (registered for `21.0.0-0`).
4
+ Reports programmatic writes to the signal inputs of `KbqListSelection` and `KbqListOption`. It never writes to the
5
+ tree.
6
+
7
+ ## Background
8
+
9
+ The inputs of the list are signal inputs read through a getter. A read is unchanged; a write no longer compiles.
10
+
11
+ | Member | Write |
12
+ | ---------------------------------------------------------------------------------------------- | -------------------------------- |
13
+ | `KbqListSelection`: `autoSelect`, `noUnselectLast`, `multiple`, `tabIndex`, `selectAllHandler` | Bind it |
14
+ | `KbqListSelection.disabled` | Bind it, or use the form control |
15
+ | `KbqListOption`: `value`, `disabled`, `draggable`, `showCheckbox` | Bind it |
16
+ | `KbqListOption.selected`, `KbqListSelection.multipleMode` | Still writable |
17
+
18
+ ## Running it manually
19
+
20
+ ```bash
21
+ ng g @koobiq/components:list-signals --project "<your project>"
22
+ ```
@@ -0,0 +1,35 @@
1
+ 'use strict';
2
+
3
+ /**
4
+ * Data for the `list-signals` migration.
5
+ *
6
+ * The inputs of `KbqListSelection` and `KbqListOption` are signal inputs read through a getter now. Reads are
7
+ * unchanged; a programmatic write no longer compiles, except `KbqListOption.selected`, which stays writable.
8
+ * Warn-only: the write belongs in a binding or a form control.
9
+ */
10
+ const LIST_ANCHOR = '\\bKbqList(?:Selection|Option)\\b';
11
+ const warnPatterns = [
12
+ {
13
+ anchor: LIST_ANCHOR,
14
+ pattern: '\\.\\s*(?:autoSelect|noUnselectLast|multiple|tabIndex|selectAllHandler)\\s*=[^=]',
15
+ message: 'KbqListSelection.autoSelect, .noUnselectLast, .multiple, .tabIndex and .selectAllHandler are signal ' +
16
+ 'inputs read through a getter now, so a programmatic write no longer compiles. Bind them in the ' +
17
+ 'template; multipleMode stays writable. This pattern also matches a write to an unrelated object in ' +
18
+ 'the same file — check before changing it.'
19
+ },
20
+ {
21
+ anchor: LIST_ANCHOR,
22
+ pattern: '\\.\\s*(?:value|disabled|draggable|showCheckbox)\\s*=[^=]',
23
+ message: 'The value, disabled, draggable and showCheckbox of KbqListOption, and the disabled and draggable of ' +
24
+ 'KbqListSelection, are signal inputs read through a getter now, so a programmatic write no longer ' +
25
+ 'compiles. Bind them in the template, or disable the list through its form control. ' +
26
+ 'KbqListOption.selected stays writable. This pattern also matches a write to an unrelated object in ' +
27
+ 'the same file — check before changing it.'
28
+ }
29
+ ];
30
+ const SUMMARY = [
31
+ 'KbqListSelection and KbqListOption are read as before; only programmatic writes to their inputs are gone.'
32
+ ];
33
+
34
+ exports.SUMMARY = SUMMARY;
35
+ exports.warnPatterns = warnPatterns;
@@ -0,0 +1,17 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var warnOnlyMigration = require('../../warn-only-migration-BISJBODk.js');
6
+ var migrations_listSignals_data = require('./data.js');
7
+ require('../../utils/messages.js');
8
+ require('../../package-config-BhU2TfC8.js');
9
+ require('@angular-devkit/schematics');
10
+ require('@schematics/angular/utility');
11
+
12
+ /** Reports programmatic writes to the signal inputs of `KbqListSelection` and `KbqListOption`. Never writes. */
13
+ function listSignals(options) {
14
+ return warnOnlyMigration.warnOnlyRule({ label: '[list-signals]', warnPatterns: migrations_listSignals_data.warnPatterns, summary: migrations_listSignals_data.SUMMARY }, options);
15
+ }
16
+
17
+ exports.default = listSignals;
@@ -0,0 +1,15 @@
1
+ {
2
+ "$schema": "http://json-schema.org/schema",
3
+ "$id": "koobiq-components-list-signals",
4
+ "title": "Koobiq components list signals 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,105 @@
1
+ # list-tree-multiple-input
2
+
3
+ Migration schematic invoked automatically by `ng update @koobiq/components@21` (registered for `21.0.0-0`).
4
+
5
+ ## Background
6
+
7
+ `multiple` on `kbq-list-selection` and `kbq-tree-selection` used to be a static host attribute read once in
8
+ the constructor:
9
+
10
+ ```ts
11
+ const multiple = inject(new HostAttributeToken('multiple'), { optional: true });
12
+
13
+ if (multiple === MultipleMode.CHECKBOX || multiple === MultipleMode.KEYBOARD) {
14
+ this.multipleMode = multiple;
15
+ } else if (multiple !== null) {
16
+ this.multipleMode = MultipleMode.CHECKBOX; // every other value
17
+ }
18
+ ```
19
+
20
+ So the attribute could not be bound, the mode was frozen for the lifetime of the component, and **every**
21
+ value other than `checkbox` and `keyboard` fell through to multiple selection with checkboxes —
22
+ `multiple="false"` meant _multiple_.
23
+
24
+ It is now a real input with a closed set of values, resolved by `resolveMultipleMode` in
25
+ `@koobiq/components/core`, and the mode can be changed at any time.
26
+
27
+ ## Behaviour change
28
+
29
+ | value | before | after |
30
+ | ------------------------------------------------------ | ------------ | ---------------- |
31
+ | `multiple="checkbox"`, `multiple="keyboard"` | that mode | unchanged |
32
+ | `multiple`, `multiple=""`, `multiple="true"` | checkbox | unchanged |
33
+ | no attribute | single | unchanged |
34
+ | `multiple="false"`, `multiple="single"`, anything else | **checkbox** | single selection |
35
+
36
+ Single selection is the default, so the way to ask for it is to leave the attribute off entirely.
37
+ `multiple="single"` is not an accepted spelling.
38
+
39
+ ## What it does
40
+
41
+ | case | rewrite | preserves behaviour? |
42
+ | -------------------------------------------------------------- | --------------------------- | ------------------------- |
43
+ | `multiple="false"`, `multiple="single"` | attribute removed | **no** — reported as such |
44
+ | any other unrecognized value (`"multiple"`, `"yes"`, `"1"`, …) | → `multiple="checkbox"` | yes |
45
+ | `[multiple]="'yes'"` (quoted literal) | → `[multiple]="'checkbox'"` | yes |
46
+
47
+ Both external `.html` files and inline `@Component({ template })` literals are covered. The two spellings
48
+ that are deleted are the ones whose author meant single selection but got multiple; every rewrite is logged
49
+ with the value it replaced, and the deletions are called out as a behaviour change so they can be reviewed
50
+ in the diff.
51
+
52
+ ## What it does _not_ do (warn-only)
53
+
54
+ | case | why |
55
+ | ------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------ |
56
+ | `[multiple]="expr"` | a runtime expression cannot be resolved at migration time |
57
+ | `[multiple]="true \| false \| null \| undefined"` | unambiguous under the new API and impossible before it, so it is left alone silently |
58
+ | `multipleMode = …` | now an accessor: it rebuilds the `SelectionModel`, and inside a `kbq-tree-select` it throws, because the select owns the model |
59
+ | `selectionModel.changed.subscribe(…)` | a mode change replaces the model instance, stranding the subscription; use the `(selectionChange)` output |
60
+
61
+ [Params](schema.ts)
62
+
63
+ Usage for Angular Cli:
64
+
65
+ ```shell
66
+ ng g @koobiq/components:list-tree-multiple-input --project "<your project>"
67
+ ```
68
+
69
+ Usage for Nx:
70
+
71
+ ```shell
72
+ nx g @koobiq/components:list-tree-multiple-input --project "<your project>"
73
+ ```
74
+
75
+ ### Run locally
76
+
77
+ Build package
78
+
79
+ ```shell
80
+ yarn run build:schematics
81
+ ```
82
+
83
+ Run command (for example, for `koobiq-docs` project)
84
+
85
+ ```shell
86
+ ng g ./dist/components/schematics/collection.json:list-tree-multiple-input --project koobiq-docs
87
+ ```
88
+
89
+ ### Result
90
+
91
+ #### Before
92
+
93
+ ```html
94
+ <kbq-list-selection multiple="false">…</kbq-list-selection>
95
+ <kbq-list-selection multiple="single">…</kbq-list-selection>
96
+ <kbq-tree-selection multiple="multiple">…</kbq-tree-selection>
97
+ ```
98
+
99
+ #### After
100
+
101
+ ```html
102
+ <kbq-list-selection>…</kbq-list-selection>
103
+ <kbq-list-selection>…</kbq-list-selection>
104
+ <kbq-tree-selection multiple="checkbox">…</kbq-tree-selection>
105
+ ```