@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,706 @@
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_autocompleteSignals_data = require('./data.js');
11
+ require('@angular-devkit/schematics');
12
+ require('@schematics/angular/utility');
13
+
14
+ const LABEL = '[autocomplete-signals]';
15
+ const TS_EXT = '.ts';
16
+ const HTML_EXT = '.html';
17
+ function escapeRegExp(value) {
18
+ return value.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
19
+ }
20
+ /** Applies text-span edits to `content`, right-to-left, so earlier edits don't shift later offsets. */
21
+ function applyEdits(content, edits) {
22
+ const sorted = [...edits].sort((a, b) => b.start - a.start || b.end - a.end);
23
+ let result = content;
24
+ for (const { start, end, text } of sorted) {
25
+ result = result.slice(0, start) + text + result.slice(end);
26
+ }
27
+ return result;
28
+ }
29
+ /** Walks up from `node` to the nearest ancestor matching `predicate`. */
30
+ function findAncestor(node, predicate) {
31
+ let current = node.parent;
32
+ while (current) {
33
+ if (predicate(current))
34
+ return current;
35
+ current = current.parent;
36
+ }
37
+ return undefined;
38
+ }
39
+ /**
40
+ * Nodes that open a new binding scope. `ts.isFunctionLike` rather than a hand-rolled list, so a
41
+ * `MethodSignature` or a `FunctionTypeNode` bounds a parameter's scope too instead of leaking it to the
42
+ * whole file. Blocks and loops are included because `let`/`const` are block-scoped.
43
+ */
44
+ const opensScope = (node) => ts.isFunctionLike(node) ||
45
+ ts.isBlock(node) ||
46
+ ts.isCaseBlock(node) ||
47
+ ts.isModuleBlock(node) ||
48
+ ts.isForStatement(node) ||
49
+ ts.isForInStatement(node) ||
50
+ ts.isForOfStatement(node) ||
51
+ ts.isCatchClause(node) ||
52
+ ts.isClassLike(node) ||
53
+ ts.isSourceFile(node);
54
+ /** Nodes that rebind `this`, so `this.autocomplete` inside them is a different object. Arrows don't. */
55
+ const rebindsThis = (node) => ts.isFunctionDeclaration(node) || ts.isFunctionExpression(node) || ts.isClassLike(node);
56
+ /** Whether `node` sits inside `scope` without crossing a `barrier` node on the way up. */
57
+ function reachesScope(node, scope, barrier) {
58
+ let current = node.parent;
59
+ while (current && current !== scope) {
60
+ if (barrier(current))
61
+ return false;
62
+ current = current.parent;
63
+ }
64
+ return current === scope;
65
+ }
66
+ /** Whether a type annotation refers to `typeName` directly (not through a union, array or type argument). */
67
+ function isTypeReference(type, typeName) {
68
+ if (!type || !ts.isTypeReferenceNode(type))
69
+ return false;
70
+ const name = type.typeName;
71
+ return ((ts.isIdentifier(name) && name.text === typeName) ||
72
+ (ts.isQualifiedName(name) && ts.isIdentifier(name.right) && name.right.text === typeName));
73
+ }
74
+ const FIELD_MODIFIERS = new Set([
75
+ ts.SyntaxKind.PrivateKeyword,
76
+ ts.SyntaxKind.PublicKeyword,
77
+ ts.SyntaxKind.ProtectedKeyword,
78
+ ts.SyntaxKind.ReadonlyKeyword
79
+ ]);
80
+ /** Every value declaration that introduces a plain identifier, with the scope it is visible in. */
81
+ function collectBindings(sourceFile) {
82
+ const bindings = [];
83
+ const add = (name, declaration, scope) => bindings.push({ name, declaration, scope: scope ?? sourceFile });
84
+ const visit = (node) => {
85
+ if (ts.isParameter(node) && ts.isIdentifier(node.name)) {
86
+ add(node.name.text, node, findAncestor(node, ts.isFunctionLike));
87
+ }
88
+ else if ((ts.isVariableDeclaration(node) || ts.isBindingElement(node)) && ts.isIdentifier(node.name)) {
89
+ add(node.name.text, node, findAncestor(node, opensScope));
90
+ }
91
+ else if ((ts.isFunctionDeclaration(node) || ts.isClassDeclaration(node)) && node.name) {
92
+ add(node.name.text, node, findAncestor(node, opensScope));
93
+ }
94
+ else if ((ts.isImportSpecifier(node) || ts.isImportClause(node)) && node.name) {
95
+ add(node.name.text, node, sourceFile);
96
+ }
97
+ node.forEachChild(visit);
98
+ };
99
+ visit(sourceFile);
100
+ return bindings;
101
+ }
102
+ /** The declaration `name` binds to at `pos`: the innermost enclosing scope that declares it. */
103
+ function resolveBinding(bindings, name, pos) {
104
+ let best;
105
+ let bestWidth = Number.POSITIVE_INFINITY;
106
+ for (const binding of bindings) {
107
+ if (binding.name !== name)
108
+ continue;
109
+ const start = binding.scope.getStart();
110
+ const end = binding.scope.getEnd();
111
+ if (pos < start || pos > end)
112
+ continue;
113
+ const width = end - start;
114
+ if (width < bestWidth) {
115
+ best = binding;
116
+ bestWidth = width;
117
+ }
118
+ }
119
+ return best?.declaration;
120
+ }
121
+ /** Local names `exported` is bound to in this file, including aliased imports. */
122
+ function localTypeNames(sourceFile, exported) {
123
+ const names = new Set([exported]);
124
+ const visit = (node) => {
125
+ if (ts.isImportSpecifier(node) && (node.propertyName?.text ?? node.name.text) === exported) {
126
+ names.add(node.name.text);
127
+ }
128
+ node.forEachChild(visit);
129
+ };
130
+ visit(sourceFile);
131
+ return [...names];
132
+ }
133
+ /**
134
+ * Collects the receivers annotated with `typeName`, by explicit annotation only (no cross-package type
135
+ * resolution): method/function params, class fields (incl. `@ViewChild(KbqAutocomplete) x: KbqAutocomplete`
136
+ * and constructor parameter-properties) and typed locals. Annotations that resolve are recorded in
137
+ * `resolved`, so the caller can report the mentions this pass could not turn into a receiver.
138
+ */
139
+ function collectReceivers(sourceFile, typeName, ownerType, resolved) {
140
+ const receivers = [];
141
+ const add = (text, declaration, scope) => receivers.push({ text, declaration, scope: scope ?? sourceFile, type: ownerType });
142
+ const visit = (node) => {
143
+ if (ts.isParameter(node) && ts.isIdentifier(node.name) && isTypeReference(node.type, typeName)) {
144
+ resolved?.add(node.type);
145
+ add(node.name.text, node, findAncestor(node, ts.isFunctionLike));
146
+ // A constructor parameter-property is also a class field, reachable as `this.<name>`.
147
+ if (node.modifiers?.some((modifier) => FIELD_MODIFIERS.has(modifier.kind))) {
148
+ const owner = findAncestor(node, ts.isClassDeclaration);
149
+ if (owner)
150
+ add(`this.${node.name.text}`, node, owner);
151
+ }
152
+ }
153
+ else if (ts.isPropertyDeclaration(node) &&
154
+ ts.isIdentifier(node.name) &&
155
+ isTypeReference(node.type, typeName)) {
156
+ const owner = findAncestor(node, ts.isClassDeclaration);
157
+ if (owner) {
158
+ resolved?.add(node.type);
159
+ add(`this.${node.name.text}`, node, owner);
160
+ }
161
+ }
162
+ else if (ts.isVariableDeclaration(node) &&
163
+ ts.isIdentifier(node.name) &&
164
+ isTypeReference(node.type, typeName)) {
165
+ resolved?.add(node.type);
166
+ add(node.name.text, node, findAncestor(node, opensScope));
167
+ }
168
+ node.forEachChild(visit);
169
+ };
170
+ visit(sourceFile);
171
+ return receivers;
172
+ }
173
+ /** Every receiver in the file, across both migrated types and their aliased imports. */
174
+ function collectAllReceivers(sourceFile, resolved) {
175
+ return migrations_autocompleteSignals_data.RECEIVER_TYPES.flatMap((type) => localTypeNames(sourceFile, type).flatMap((name) => collectReceivers(sourceFile, name, type, resolved)));
176
+ }
177
+ /** Strips the wrappers that do not change which object an access reads from. */
178
+ function unwrapReceiver(node) {
179
+ let current = node;
180
+ while (ts.isNonNullExpression(current) || ts.isParenthesizedExpression(current)) {
181
+ current = current.expression;
182
+ }
183
+ return current;
184
+ }
185
+ /** The receiver a property access resolves to at this exact position, if any. */
186
+ function resolveReceiver(expression, at, sourceFile, receivers, bindings) {
187
+ const text = unwrapReceiver(expression).getText(sourceFile);
188
+ return receivers.find((receiver) => {
189
+ if (receiver.text !== text)
190
+ return false;
191
+ // For `this.autocomplete`, a nested `function` or class changes what `this` is; an arrow does not.
192
+ // For a bare `autocomplete`, a nested redeclaration of the same name shadows the receiver.
193
+ if (receiver.text.startsWith('this.'))
194
+ return reachesScope(at, receiver.scope, rebindsThis);
195
+ return (reachesScope(at, receiver.scope, () => false) &&
196
+ resolveBinding(bindings, receiver.text, at.getStart(sourceFile)) === receiver.declaration);
197
+ });
198
+ }
199
+ /** Binary operators that make their left operand a write target rather than a read. */
200
+ const ASSIGNMENT_OPERATORS = new Set([
201
+ ts.SyntaxKind.EqualsToken,
202
+ ts.SyntaxKind.PlusEqualsToken,
203
+ ts.SyntaxKind.MinusEqualsToken,
204
+ ts.SyntaxKind.AsteriskEqualsToken,
205
+ ts.SyntaxKind.AsteriskAsteriskEqualsToken,
206
+ ts.SyntaxKind.SlashEqualsToken,
207
+ ts.SyntaxKind.PercentEqualsToken,
208
+ ts.SyntaxKind.LessThanLessThanEqualsToken,
209
+ ts.SyntaxKind.GreaterThanGreaterThanEqualsToken,
210
+ ts.SyntaxKind.GreaterThanGreaterThanGreaterThanEqualsToken,
211
+ ts.SyntaxKind.AmpersandEqualsToken,
212
+ ts.SyntaxKind.BarEqualsToken,
213
+ ts.SyntaxKind.CaretEqualsToken,
214
+ ts.SyntaxKind.BarBarEqualsToken,
215
+ ts.SyntaxKind.AmpersandAmpersandEqualsToken,
216
+ ts.SyntaxKind.QuestionQuestionEqualsToken
217
+ ]);
218
+ /** Unary operators that write their operand back. Every other prefix operator is a plain read. */
219
+ const INCREMENT_OPERATORS = new Set([ts.SyntaxKind.PlusPlusToken, ts.SyntaxKind.MinusMinusToken]);
220
+ /** Whether `node` sits on the left of a destructuring assignment, where it is written rather than read. */
221
+ function isDestructuringTarget(node) {
222
+ let current = node;
223
+ while (ts.isPropertyAssignment(current.parent) ||
224
+ ts.isShorthandPropertyAssignment(current.parent) ||
225
+ ts.isSpreadAssignment(current.parent) ||
226
+ ts.isSpreadElement(current.parent) ||
227
+ ts.isObjectLiteralExpression(current.parent) ||
228
+ ts.isArrayLiteralExpression(current.parent)) {
229
+ current = current.parent;
230
+ }
231
+ return (ts.isBinaryExpression(current.parent) &&
232
+ current.parent.left === current &&
233
+ ASSIGNMENT_OPERATORS.has(current.parent.operatorToken.kind));
234
+ }
235
+ /** Classifies a matched property access and appends the resulting edit(s). */
236
+ function classifyAccess(node, sourceFile, edits) {
237
+ const parent = node.parent;
238
+ const member = node.name.text;
239
+ const functionValued = migrations_autocompleteSignals_data.FUNCTION_VALUED_MEMBERS.includes(member);
240
+ if (ts.isCallExpression(parent) && parent.expression === node) {
241
+ // `a.displayWith(value)` is an invocation of the function the input holds, not a migrated signal
242
+ // read: the value is a function, so the two calls are separate. Insert the read call.
243
+ if (functionValued)
244
+ edits.push({ start: node.getEnd(), end: node.getEnd(), text: '()' });
245
+ // Anything else already reads as a call — leave it alone, so the rewrite stays idempotent.
246
+ return;
247
+ }
248
+ // Already migrated: `a.showPanel.set(...)` and the rest of the signal API.
249
+ if (ts.isPropertyAccessExpression(parent) && parent.expression === node && migrations_autocompleteSignals_data.SIGNAL_API_METHODS.has(parent.name.text))
250
+ return;
251
+ // Write target: `a.member = RHS` and every compound form (`+=`, `||=`, …). Only `showPanel` has a
252
+ // writable half; the others become a compile error the consumer fixes by binding in the template.
253
+ // Appending `()` to any of them would produce unparseable TypeScript.
254
+ if (ts.isBinaryExpression(parent) && parent.left === node && ASSIGNMENT_OPERATORS.has(parent.operatorToken.kind)) {
255
+ if (parent.operatorToken.kind === ts.SyntaxKind.EqualsToken && migrations_autocompleteSignals_data.WRITABLE_MEMBERS.has(member)) {
256
+ const rhs = parent.right;
257
+ edits.push({ start: node.getEnd(), end: rhs.getStart(sourceFile), text: '.set(' });
258
+ edits.push({ start: rhs.getEnd(), end: rhs.getEnd(), text: ')' });
259
+ }
260
+ return;
261
+ }
262
+ // `a.showPanel++` / `--a.showPanel` and `delete a.showPanel` are writes too. Only the increment operators
263
+ // count: a `PrefixUnaryExpression` is also how `!a.showPanel` is spelled, and that is a read.
264
+ if (ts.isPostfixUnaryExpression(parent) && parent.operand === node)
265
+ return;
266
+ if (ts.isPrefixUnaryExpression(parent) && parent.operand === node && INCREMENT_OPERATORS.has(parent.operator))
267
+ return;
268
+ if (ts.isDeleteExpression(parent))
269
+ return;
270
+ if (isDestructuringTarget(node))
271
+ return;
272
+ // Read (incl. optional chain `a?.isOpen`): append `()`.
273
+ edits.push({ start: node.getEnd(), end: node.getEnd(), text: '()' });
274
+ }
275
+ /** Collects edits for every read/write of a signal member on a known receiver. */
276
+ function collectAccessEdits(sourceFile, receivers, bindings) {
277
+ const edits = [];
278
+ const visit = (node) => {
279
+ if (ts.isPropertyAccessExpression(node) &&
280
+ ts.isIdentifier(node.name) &&
281
+ migrations_autocompleteSignals_data.SIGNAL_MEMBERS.includes(node.name.text)) {
282
+ const receiver = resolveReceiver(node.expression, node, sourceFile, receivers, bindings);
283
+ // Each type owns its own members: `autocompleteDisabled` on the trigger, the rest on the panel.
284
+ if (receiver && migrations_autocompleteSignals_data.MEMBERS_BY_TYPE[receiver.type]?.includes(node.name.text)) {
285
+ classifyAccess(node, sourceFile, edits);
286
+ }
287
+ }
288
+ node.forEachChild(visit);
289
+ };
290
+ visit(sourceFile);
291
+ return edits;
292
+ }
293
+ /**
294
+ * 1-based lines where a migrated type is named in a position `collectReceivers` cannot resolve - a union,
295
+ * an array, a `QueryList<…>`, a cast, a return type - plus the reads the access pass structurally cannot
296
+ * reach: `a['isOpen']` and `const { isOpen } = a`.
297
+ */
298
+ function collectUnresolvedMentions(sourceFile, resolved, typeNames, receivers, bindings) {
299
+ const lines = new Set();
300
+ const members = [...migrations_autocompleteSignals_data.SIGNAL_MEMBERS, ...migrations_autocompleteSignals_data.PROTECTED_MEMBERS];
301
+ const report = (node) => lines.add(sourceFile.getLineAndCharacterOfPosition(node.getStart(sourceFile)).line + 1);
302
+ const isReceiver = (expression, at) => !!resolveReceiver(expression, at, sourceFile, receivers, bindings);
303
+ const visit = (node) => {
304
+ if (ts.isTypeReferenceNode(node) && ts.isIdentifier(node.typeName) && typeNames.includes(node.typeName.text)) {
305
+ if (!resolved.has(node))
306
+ report(node);
307
+ }
308
+ else if (ts.isElementAccessExpression(node) &&
309
+ ts.isStringLiteralLike(node.argumentExpression) &&
310
+ members.includes(node.argumentExpression.text) &&
311
+ isReceiver(node.expression, node)) {
312
+ report(node);
313
+ }
314
+ else if (ts.isVariableDeclaration(node) &&
315
+ ts.isObjectBindingPattern(node.name) &&
316
+ node.initializer &&
317
+ isReceiver(node.initializer, node) &&
318
+ node.name.elements.some((element) => members.includes((element.propertyName ?? element.name).getText(sourceFile)))) {
319
+ report(node);
320
+ }
321
+ node.forEachChild(visit);
322
+ };
323
+ visit(sourceFile);
324
+ return [...lines].sort((a, b) => a - b);
325
+ }
326
+ /** Collects the members read on a receiver that no consumer can keep reading as-is. */
327
+ function collectReceiverWarnings(sourceFile) {
328
+ const protectedAccess = new Set();
329
+ const resolved = new Set();
330
+ const bindings = collectBindings(sourceFile);
331
+ const receivers = collectAllReceivers(sourceFile, resolved);
332
+ const typeNames = migrations_autocompleteSignals_data.RECEIVER_TYPES.flatMap((type) => localTypeNames(sourceFile, type));
333
+ const visit = (node) => {
334
+ if (ts.isPropertyAccessExpression(node) &&
335
+ ts.isIdentifier(node.name) &&
336
+ migrations_autocompleteSignals_data.PROTECTED_MEMBERS.includes(node.name.text) &&
337
+ resolveReceiver(node.expression, node, sourceFile, receivers, bindings)) {
338
+ protectedAccess.add(node.name.text);
339
+ }
340
+ node.forEachChild(visit);
341
+ };
342
+ visit(sourceFile);
343
+ return {
344
+ protectedAccess,
345
+ unresolved: collectUnresolvedMentions(sourceFile, resolved, typeNames, receivers, bindings)
346
+ };
347
+ }
348
+ /** Pass A — rewrite programmatic reads of autocomplete signal members in TypeScript code. */
349
+ function migrateTsExpressions(content, fileName) {
350
+ const sourceFile = ts.createSourceFile(fileName, content, ts.ScriptTarget.Latest, true, ts.ScriptKind.TS);
351
+ const receivers = collectAllReceivers(sourceFile);
352
+ if (receivers.length === 0)
353
+ return content;
354
+ const edits = collectAccessEdits(sourceFile, receivers, collectBindings(sourceFile));
355
+ return edits.length > 0 ? applyEdits(content, edits) : content;
356
+ }
357
+ /** Emits precise, receiver-scoped warnings for the members that can't be auto-fixed. */
358
+ function warnReceiverMembers(context, filePath, content) {
359
+ const sourceFile = ts.createSourceFile(filePath, content, ts.ScriptTarget.Latest, true, ts.ScriptKind.TS);
360
+ const { protectedAccess, unresolved } = collectReceiverWarnings(sourceFile);
361
+ if (protectedAccess.size > 0) {
362
+ utils_messages.logMessage(context.logger, [
363
+ `${LABEL} ${filePath}`,
364
+ ` These KbqAutocomplete members are now \`protected\` and can't be read from outside the ` +
365
+ `component: ${[...protectedAccess].join(', ')}. ${migrations_autocompleteSignals_data.PROTECTED_HINT}`
366
+ ]);
367
+ }
368
+ if (unresolved.length > 0) {
369
+ utils_messages.logMessage(context.logger, [
370
+ `${LABEL} ${filePath}`,
371
+ ` ${migrations_autocompleteSignals_data.UNRESOLVED_RECEIVER_MESSAGE} ${unresolved.join(', ')}.`
372
+ ]);
373
+ }
374
+ }
375
+ /** Attribute-name prefixes that mark the value as an Angular expression rather than a literal. */
376
+ const BINDING_PREFIX = /^(?:\[|\(|\*|bind-|bind(?:on)?-|on-)/;
377
+ /**
378
+ * Walks a template's HTML AST, collecting what the rewrite needs: the reference variables bound to a
379
+ * panel or a trigger, the source ranges that actually hold Angular expressions, and every other name the
380
+ * template introduces (so a `@for` variable sharing a ref's name is not rewritten).
381
+ */
382
+ class TemplateScanner {
383
+ constructor(template) {
384
+ this.template = template;
385
+ this.refs = [];
386
+ this.otherNames = new Set();
387
+ this.expressions = [];
388
+ this.view = { start: 0, end: template.length };
389
+ }
390
+ visitElement(element) {
391
+ const attrs = element.attrs ?? [];
392
+ const references = [];
393
+ for (const attr of attrs) {
394
+ if (typeof attr.name !== 'string')
395
+ continue;
396
+ const reference = this.referenceName(attr.name);
397
+ if (reference !== undefined) {
398
+ references.push({ name: reference, value: String(attr.value ?? '') });
399
+ continue;
400
+ }
401
+ // `let-item` on an <ng-template> introduces a name the refs must not collide with.
402
+ if (attr.name.startsWith('let-')) {
403
+ this.otherNames.add(attr.name.slice(4));
404
+ continue;
405
+ }
406
+ this.collectAttributeExpression(attr);
407
+ }
408
+ for (const { name, value } of references) {
409
+ // `#t="kbqAutocompleteTrigger"` names the directive; a bare `#auto` on the element is the panel.
410
+ const type = value
411
+ ? migrations_autocompleteSignals_data.EXPORT_AS_TO_TYPE[value]
412
+ : element.name === migrations_autocompleteSignals_data.AUTOCOMPLETE_ELEMENT
413
+ ? 'KbqAutocomplete'
414
+ : undefined;
415
+ if (type)
416
+ this.refs.push({ name, type, ...this.view });
417
+ else
418
+ this.otherNames.add(name);
419
+ }
420
+ this.inView(element.name === 'ng-template' ? element.sourceSpan : undefined, () => this.visitChildren(element));
421
+ }
422
+ visitBlock(block) {
423
+ for (const parameter of block.parameters ?? []) {
424
+ const span = parameter.sourceSpan;
425
+ if (!span)
426
+ continue;
427
+ this.expressions.push({ start: span.start.offset, end: span.end.offset });
428
+ // `@for (auto of items; track auto)` and `@if (x; as y)` introduce names of their own.
429
+ for (const match of String(parameter.expression ?? '').matchAll(/(?:^\s*|\b(?:as|let)\s+)([A-Za-z_$][\w$]*)\s*(?:\bof\b|\bin\b|=|$)/g)) {
430
+ this.otherNames.add(match[1]);
431
+ }
432
+ }
433
+ this.inView(block.sourceSpan, () => this.visitChildren(block));
434
+ }
435
+ visitText(text) {
436
+ const span = text.sourceSpan;
437
+ if (span)
438
+ this.collectInterpolations(span.start.offset, span.end.offset);
439
+ }
440
+ visitLetDeclaration(decl) {
441
+ if (decl.name)
442
+ this.otherNames.add(decl.name);
443
+ const span = decl.valueSpan ?? decl.sourceSpan;
444
+ if (span)
445
+ this.expressions.push({ start: span.start.offset, end: span.end.offset });
446
+ }
447
+ /** Runs `walk` with the embedded view narrowed to `span`, if the node opens one. */
448
+ inView(span, walk) {
449
+ if (!span) {
450
+ walk();
451
+ return;
452
+ }
453
+ const outer = this.view;
454
+ this.view = { start: span.start.offset, end: span.end.offset };
455
+ walk();
456
+ this.view = outer;
457
+ }
458
+ /** `#ref` / `ref-ref`, or `undefined` when the attribute is not a reference variable. */
459
+ referenceName(name) {
460
+ if (name.startsWith('#'))
461
+ return name.slice(1);
462
+ if (name.startsWith('ref-'))
463
+ return name.slice(4);
464
+ return undefined;
465
+ }
466
+ collectAttributeExpression(attr) {
467
+ const span = attr.valueSpan;
468
+ if (!span)
469
+ return;
470
+ const start = span.start.offset;
471
+ const end = span.end.offset;
472
+ // A binding's whole value is an expression; a plain attribute only holds interpolations.
473
+ if (BINDING_PREFIX.test(attr.name))
474
+ this.expressions.push({ start, end });
475
+ else
476
+ this.collectInterpolations(start, end);
477
+ }
478
+ collectInterpolations(start, end) {
479
+ for (const match of this.template.slice(start, end).matchAll(/\{\{([\s\S]*?)\}\}/g)) {
480
+ const from = start + match.index + 2;
481
+ this.expressions.push({ start: from, end: from + match[1].length });
482
+ }
483
+ }
484
+ visitChildren(node) {
485
+ for (const child of node.children ?? []) {
486
+ child.visit(this);
487
+ }
488
+ }
489
+ visitAttribute() { }
490
+ visitComment() { }
491
+ visitExpansion() { }
492
+ visitExpansionCase() { }
493
+ visitBlockParameter() { }
494
+ }
495
+ /**
496
+ * Matches `<ref>.<member>` inside a template expression. The lookbehind rejects `item.auto.isOpen`, where
497
+ * `\b` alone matches after the dot, and admits a `$`-prefixed ref that `\b` never could. Angular's grammar
498
+ * allows whitespace around the dot, so a binding wrapped over two lines is matched too. The three groups
499
+ * skip an already-migrated read, a signal-API call on a writable member, and an assignment target.
500
+ */
501
+ function memberAccessPattern(ref, members) {
502
+ const methods = [...migrations_autocompleteSignals_data.SIGNAL_API_METHODS].join('|');
503
+ return new RegExp(`(?<![\\w$.])(${escapeRegExp(ref)})\\s*\\??\\.\\s*(${members.join('|')})\\b` +
504
+ `(?!\\s*\\()(?!\\s*\\.\\s*(?:${methods})\\b)(?!\\s*=(?!=))`, 'g');
505
+ }
506
+ /**
507
+ * Rewrites `ref.member` reads to `ref.member()`, only inside the given expression ranges. Restricting the
508
+ * rewrite to expressions is what keeps prose, comments and attribute names out of it.
509
+ */
510
+ function rewriteRefReads(template, refs, expressions) {
511
+ const edits = [];
512
+ for (const { start, end } of expressions) {
513
+ const source = template.slice(start, end);
514
+ for (const ref of refs) {
515
+ if (start < ref.start || end > ref.end)
516
+ continue;
517
+ const members = migrations_autocompleteSignals_data.MEMBERS_BY_TYPE[ref.type] ?? [];
518
+ for (const match of source.matchAll(memberAccessPattern(ref.name, members))) {
519
+ const at = start + match.index + match[0].length;
520
+ edits.push({ start: at, end: at, text: '()' });
521
+ }
522
+ }
523
+ }
524
+ return edits.length > 0
525
+ ? { content: applyEdits(template, edits), changed: true }
526
+ : { content: template, changed: false };
527
+ }
528
+ /** Members read through a reference variable that the rewrite deliberately left alone. */
529
+ function collectRefManualMembers(template, refs, expressions) {
530
+ const found = new Set();
531
+ for (const { start, end } of expressions) {
532
+ const source = template.slice(start, end);
533
+ for (const ref of refs) {
534
+ if (start < ref.start || end > ref.end)
535
+ continue;
536
+ const owned = migrations_autocompleteSignals_data.MEMBERS_BY_TYPE[ref.type] ?? [];
537
+ const manual = [...migrations_autocompleteSignals_data.PROTECTED_MEMBERS, ...migrations_autocompleteSignals_data.FUNCTION_VALUED_MEMBERS.filter((m) => owned.includes(m))];
538
+ if (manual.length === 0)
539
+ continue;
540
+ const pattern = new RegExp(`(?<![\\w$.])${escapeRegExp(ref.name)}\\s*\\??\\.\\s*(${manual.join('|')})\\b`, 'g');
541
+ for (const match of source.matchAll(pattern)) {
542
+ found.add(match[1]);
543
+ }
544
+ }
545
+ }
546
+ return found;
547
+ }
548
+ const untouched = (template) => ({
549
+ content: template,
550
+ changed: false,
551
+ manual: new Set(),
552
+ unparseable: false
553
+ });
554
+ /** Pass B (core) — parse a template, discover refs, rewrite their signal reads. */
555
+ async function migrateTemplate(template) {
556
+ if (!referencesAutocompleteTemplate(template))
557
+ return untouched(template);
558
+ const parsed = await utils_typescript.parseTemplate(template);
559
+ if (!parsed.tree)
560
+ return { ...untouched(template), unparseable: true };
561
+ const scanner = new TemplateScanner(template);
562
+ utils_ast.visitAll(scanner, parsed.tree.rootNodes);
563
+ // A ref whose name is also introduced by a `@for`, an `@let` or a foreign `#ref` is ambiguous: the
564
+ // reads could belong to either, so neither is rewritten.
565
+ const refs = scanner.refs.filter((ref) => !scanner.otherNames.has(ref.name));
566
+ if (refs.length === 0)
567
+ return untouched(template);
568
+ return {
569
+ ...rewriteRefReads(template, refs, scanner.expressions),
570
+ manual: collectRefManualMembers(template, refs, scanner.expressions),
571
+ unparseable: false
572
+ };
573
+ }
574
+ /** Whether a template can hold a panel or a trigger reference at all — the guard before any parsing. */
575
+ function referencesAutocompleteTemplate(template) {
576
+ return (template.includes(migrations_autocompleteSignals_data.AUTOCOMPLETE_ELEMENT) ||
577
+ Object.keys(migrations_autocompleteSignals_data.EXPORT_AS_TO_TYPE).some((name) => template.includes(name)));
578
+ }
579
+ /** Pass B (inline) — rewrite ref reads inside inline component templates. */
580
+ async function migrateInlineTemplates(content, fileName) {
581
+ const manual = new Set();
582
+ // Parsing the file to find inline templates is the expensive half, and most consumers have none.
583
+ if (!referencesAutocompleteTemplate(content))
584
+ return { content, manual, unparseable: false };
585
+ const sourceFile = ts.createSourceFile(fileName, content, ts.ScriptTarget.Latest, true, ts.ScriptKind.TS);
586
+ const ranges = utils_typescript.collectInlineTemplateRanges(sourceFile).sort((a, b) => b.start - a.start);
587
+ let result = content;
588
+ let unparseable = false;
589
+ for (const { start, end } of ranges) {
590
+ const outcome = await migrateTemplate(result.slice(start, end));
591
+ for (const member of outcome.manual)
592
+ manual.add(member);
593
+ unparseable ||= outcome.unparseable;
594
+ if (outcome.changed) {
595
+ result = result.slice(0, start) + outcome.content + result.slice(end);
596
+ }
597
+ }
598
+ return { content: result, manual, unparseable };
599
+ }
600
+ function logWarnings(context, filePath, content) {
601
+ for (const { anchor, pattern, message } of migrations_autocompleteSignals_data.warnPatterns) {
602
+ if (!new RegExp(anchor).test(content) || !new RegExp(pattern).test(content))
603
+ continue;
604
+ utils_messages.logMessage(context.logger, [`${LABEL} ${filePath}`, ` ${message}`]);
605
+ }
606
+ }
607
+ /** Reports the members a template reads through a ref that the rewrite deliberately left alone. */
608
+ function warnTemplateMembers(context, filePath, manual) {
609
+ if (manual.size === 0)
610
+ return;
611
+ const messages = [`${LABEL} ${filePath}`];
612
+ const gone = migrations_autocompleteSignals_data.PROTECTED_MEMBERS.filter((member) => manual.has(member));
613
+ if (gone.length > 0) {
614
+ messages.push(` These KbqAutocomplete members are now \`protected\` and can't be read from a template: ` +
615
+ `${gone.join(', ')}. ${migrations_autocompleteSignals_data.PROTECTED_HINT}`);
616
+ }
617
+ for (const member of migrations_autocompleteSignals_data.FUNCTION_VALUED_MEMBERS) {
618
+ if (!manual.has(member))
619
+ continue;
620
+ messages.push(` \`${member}\` is an \`input()\` holding a function, so the read and the invocation are ` +
621
+ `separate calls now: \`ref.${member}()(value)\`. Left untouched here.`);
622
+ }
623
+ if (messages.length > 1)
624
+ utils_messages.logMessage(context.logger, messages);
625
+ }
626
+ /**
627
+ * A `.ts` file is an autocomplete consumer if it names any of the exported symbols, imports the package,
628
+ * or renders the element in an inline template — a component that only imports `KbqAutocompleteModule`
629
+ * names no type.
630
+ */
631
+ function referencesAutocomplete(content) {
632
+ return (/\bKbqAutocomplete\w*\b/.test(content) ||
633
+ content.includes(migrations_autocompleteSignals_data.AUTOCOMPLETE_PACKAGE) ||
634
+ content.includes(`<${migrations_autocompleteSignals_data.AUTOCOMPLETE_ELEMENT}`));
635
+ }
636
+ function autocompleteSignals(options) {
637
+ return async (tree, context) => {
638
+ const { project } = options;
639
+ // `ng update` runs the migration without a schema, so `fix` arrives undefined: default it to on,
640
+ // otherwise the update would report what it would change and write nothing.
641
+ const fix = options.fix ?? true;
642
+ const projectDefinition = await utils_packageConfig.setupOptions(project, tree);
643
+ const root = projectDefinition?.root ?? '';
644
+ const rootDir = root ? tree.getDir(root) : tree.root;
645
+ const tsPaths = [];
646
+ const htmlPaths = [];
647
+ utils_packageConfig.visitProjectFiles(rootDir, (filePath) => {
648
+ if (filePath.endsWith(TS_EXT))
649
+ tsPaths.push(filePath);
650
+ else if (filePath.endsWith(HTML_EXT))
651
+ htmlPaths.push(filePath);
652
+ });
653
+ let touched = 0;
654
+ let consumers = 0;
655
+ const commit = (filePath, original, updated) => {
656
+ if (updated === original)
657
+ return;
658
+ touched++;
659
+ if (fix) {
660
+ tree.overwrite(filePath, updated);
661
+ }
662
+ else {
663
+ utils_messages.logMessage(context.logger, [`${LABEL} would update ${filePath} (run with --fix to apply)`]);
664
+ }
665
+ };
666
+ const reportUnparseable = (filePath) => utils_messages.logMessage(context.logger, [`${LABEL} ${filePath}`, ` ${migrations_autocompleteSignals_data.UNPARSEABLE_TEMPLATE_MESSAGE}`]);
667
+ for (const filePath of tsPaths) {
668
+ const original = tree.read(filePath)?.toString();
669
+ if (!original || !referencesAutocomplete(original))
670
+ continue;
671
+ consumers++;
672
+ logWarnings(context, filePath, original);
673
+ warnReceiverMembers(context, filePath, original);
674
+ const content = migrateTsExpressions(original, filePath);
675
+ const inline = await migrateInlineTemplates(content, filePath);
676
+ warnTemplateMembers(context, filePath, inline.manual);
677
+ if (inline.unparseable)
678
+ reportUnparseable(filePath);
679
+ commit(filePath, original, inline.content);
680
+ }
681
+ for (const filePath of htmlPaths) {
682
+ const original = tree.read(filePath)?.toString();
683
+ if (!original || !referencesAutocompleteTemplate(original))
684
+ continue;
685
+ consumers++;
686
+ // The `.html` half gets the file-scoped warnings too: a template is where an `isOpen =` write
687
+ // most plausibly lives, and it used to get no report at all.
688
+ logWarnings(context, filePath, original);
689
+ const outcome = await migrateTemplate(original);
690
+ warnTemplateMembers(context, filePath, outcome.manual);
691
+ if (outcome.unparseable)
692
+ reportUnparseable(filePath);
693
+ commit(filePath, original, outcome.content);
694
+ }
695
+ // Nothing here uses the autocomplete, so the summary would only be noise.
696
+ if (consumers === 0)
697
+ return;
698
+ utils_messages.logMessage(context.logger, [
699
+ `${LABEL} processed tree under "${root || '<workspace root>'}", ` +
700
+ `${fix ? 'updated' : 'would update'} ${touched} file(s).`,
701
+ ...migrations_autocompleteSignals_data.SUMMARY
702
+ ]);
703
+ };
704
+ }
705
+
706
+ exports.default = autocompleteSignals;