@koobiq/components 20.4.2 → 21.0.1

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 (798) 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 +791 -609
  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 +2871 -2595
  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 +400 -149
  119. package/fesm2022/koobiq-components-icon.mjs.map +1 -1
  120. package/fesm2022/koobiq-components-inline-edit.mjs +429 -212
  121. package/fesm2022/koobiq-components-inline-edit.mjs.map +1 -1
  122. package/fesm2022/koobiq-components-input.mjs +601 -459
  123. package/fesm2022/koobiq-components-input.mjs.map +1 -1
  124. package/fesm2022/koobiq-components-link-deprecated.mjs +196 -0
  125. package/fesm2022/koobiq-components-link-deprecated.mjs.map +1 -0
  126. package/fesm2022/koobiq-components-link.mjs +328 -125
  127. package/fesm2022/koobiq-components-link.mjs.map +1 -1
  128. package/fesm2022/koobiq-components-list.mjs +583 -433
  129. package/fesm2022/koobiq-components-list.mjs.map +1 -1
  130. package/fesm2022/koobiq-components-loader-overlay.mjs +167 -68
  131. package/fesm2022/koobiq-components-loader-overlay.mjs.map +1 -1
  132. package/fesm2022/koobiq-components-markdown.mjs +55 -78
  133. package/fesm2022/koobiq-components-markdown.mjs.map +1 -1
  134. package/fesm2022/koobiq-components-modal.mjs +853 -475
  135. package/fesm2022/koobiq-components-modal.mjs.map +1 -1
  136. package/fesm2022/koobiq-components-navbar.mjs +895 -556
  137. package/fesm2022/koobiq-components-navbar.mjs.map +1 -1
  138. package/fesm2022/koobiq-components-notification-center.mjs +680 -310
  139. package/fesm2022/koobiq-components-notification-center.mjs.map +1 -1
  140. package/fesm2022/koobiq-components-overflow-items.mjs +46 -64
  141. package/fesm2022/koobiq-components-overflow-items.mjs.map +1 -1
  142. package/fesm2022/koobiq-components-popover.mjs +684 -285
  143. package/fesm2022/koobiq-components-popover.mjs.map +1 -1
  144. package/fesm2022/koobiq-components-progress-bar.mjs +87 -33
  145. package/fesm2022/koobiq-components-progress-bar.mjs.map +1 -1
  146. package/fesm2022/koobiq-components-progress-spinner.mjs +52 -43
  147. package/fesm2022/koobiq-components-progress-spinner.mjs.map +1 -1
  148. package/fesm2022/koobiq-components-radio.mjs +450 -231
  149. package/fesm2022/koobiq-components-radio.mjs.map +1 -1
  150. package/fesm2022/koobiq-components-resizer.mjs +127 -21
  151. package/fesm2022/koobiq-components-resizer.mjs.map +1 -1
  152. package/fesm2022/koobiq-components-scrollbar-deprecated.mjs +299 -0
  153. package/fesm2022/koobiq-components-scrollbar-deprecated.mjs.map +1 -0
  154. package/fesm2022/koobiq-components-scrollbar.mjs +745 -222
  155. package/fesm2022/koobiq-components-scrollbar.mjs.map +1 -1
  156. package/fesm2022/koobiq-components-search-expandable.mjs +288 -126
  157. package/fesm2022/koobiq-components-search-expandable.mjs.map +1 -1
  158. package/fesm2022/koobiq-components-select.mjs +883 -693
  159. package/fesm2022/koobiq-components-select.mjs.map +1 -1
  160. package/fesm2022/koobiq-components-sidebar.mjs +207 -88
  161. package/fesm2022/koobiq-components-sidebar.mjs.map +1 -1
  162. package/fesm2022/koobiq-components-sidepanel.mjs +689 -296
  163. package/fesm2022/koobiq-components-sidepanel.mjs.map +1 -1
  164. package/fesm2022/koobiq-components-skeleton.mjs +815 -41
  165. package/fesm2022/koobiq-components-skeleton.mjs.map +1 -1
  166. package/fesm2022/koobiq-components-split-button.mjs +109 -88
  167. package/fesm2022/koobiq-components-split-button.mjs.map +1 -1
  168. package/fesm2022/koobiq-components-splitter-deprecated.mjs +591 -0
  169. package/fesm2022/koobiq-components-splitter-deprecated.mjs.map +1 -0
  170. package/fesm2022/koobiq-components-splitter.mjs +890 -501
  171. package/fesm2022/koobiq-components-splitter.mjs.map +1 -1
  172. package/fesm2022/koobiq-components-table.mjs +63 -49
  173. package/fesm2022/koobiq-components-table.mjs.map +1 -1
  174. package/fesm2022/koobiq-components-tabs.mjs +1062 -603
  175. package/fesm2022/koobiq-components-tabs.mjs.map +1 -1
  176. package/fesm2022/koobiq-components-tags.mjs +886 -733
  177. package/fesm2022/koobiq-components-tags.mjs.map +1 -1
  178. package/fesm2022/koobiq-components-textarea.mjs +213 -185
  179. package/fesm2022/koobiq-components-textarea.mjs.map +1 -1
  180. package/fesm2022/koobiq-components-time-range.mjs +299 -147
  181. package/fesm2022/koobiq-components-time-range.mjs.map +1 -1
  182. package/fesm2022/koobiq-components-timepicker.mjs +233 -245
  183. package/fesm2022/koobiq-components-timepicker.mjs.map +1 -1
  184. package/fesm2022/koobiq-components-timezone.mjs +344 -142
  185. package/fesm2022/koobiq-components-timezone.mjs.map +1 -1
  186. package/fesm2022/koobiq-components-title.mjs +229 -145
  187. package/fesm2022/koobiq-components-title.mjs.map +1 -1
  188. package/fesm2022/koobiq-components-toast.mjs +463 -143
  189. package/fesm2022/koobiq-components-toast.mjs.map +1 -1
  190. package/fesm2022/koobiq-components-toggle.mjs +177 -130
  191. package/fesm2022/koobiq-components-toggle.mjs.map +1 -1
  192. package/fesm2022/koobiq-components-tooltip.mjs +657 -214
  193. package/fesm2022/koobiq-components-tooltip.mjs.map +1 -1
  194. package/fesm2022/koobiq-components-top-bar.mjs +61 -32
  195. package/fesm2022/koobiq-components-top-bar.mjs.map +1 -1
  196. package/fesm2022/koobiq-components-tree-select.mjs +734 -488
  197. package/fesm2022/koobiq-components-tree-select.mjs.map +1 -1
  198. package/fesm2022/koobiq-components-tree.mjs +1700 -617
  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 +415 -18
  264. package/schematics/migrations/accordion-state-saving-default/README.md +60 -0
  265. package/schematics/migrations/accordion-state-saving-default/data.cjs +75 -0
  266. package/schematics/migrations/accordion-state-saving-default/index.cjs +61 -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.cjs +47 -0
  270. package/schematics/migrations/actions-panel-overlay-container/index.cjs +55 -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 → data.cjs} +3 -0
  274. package/schematics/migrations/alert-signals/index.cjs +221 -0
  275. package/schematics/migrations/angular-animations-removal/README.md +46 -0
  276. package/schematics/migrations/angular-animations-removal/data.cjs +150 -0
  277. package/schematics/migrations/angular-animations-removal/index.cjs +21 -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.cjs +136 -0
  281. package/schematics/migrations/app-switcher-signals/index.cjs +366 -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 → index.cjs} +6 -5
  285. package/schematics/migrations/autocomplete-signals/README.md +92 -0
  286. package/schematics/migrations/autocomplete-signals/data.cjs +149 -0
  287. package/schematics/migrations/autocomplete-signals/index.cjs +707 -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.cjs +109 -0
  291. package/schematics/migrations/badge-signals/index.cjs +694 -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.cjs +136 -0
  295. package/schematics/migrations/button-state-and-styles/index.cjs +221 -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.cjs +106 -0
  299. package/schematics/migrations/button-supported-colors/index.cjs +261 -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.cjs +200 -0
  303. package/schematics/migrations/button-toggle-signals-and-aria/index.cjs +497 -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.cjs +88 -0
  307. package/schematics/migrations/button-truncation/index.cjs +270 -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.cjs +114 -0
  311. package/schematics/migrations/checkbox-signals/index.cjs +635 -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.cjs +101 -0
  315. package/schematics/migrations/clamped-text-disclosure/index.cjs +60 -0
  316. package/schematics/migrations/clamped-text-disclosure/schema.json +15 -0
  317. package/schematics/migrations/code-block-highlight-js-core/README.md +53 -0
  318. package/schematics/migrations/code-block-highlight-js-core/data.cjs +64 -0
  319. package/schematics/migrations/code-block-highlight-js-core/index.cjs +319 -0
  320. package/schematics/migrations/code-block-highlight-js-core/schema.json +20 -0
  321. package/schematics/migrations/code-block-signals/README.md +84 -0
  322. package/schematics/migrations/code-block-signals/data.cjs +121 -0
  323. package/schematics/migrations/code-block-signals/index.cjs +701 -0
  324. package/schematics/migrations/code-block-signals/schema.json +20 -0
  325. package/schematics/migrations/color-signals/README.md +46 -0
  326. package/schematics/migrations/color-signals/data.cjs +131 -0
  327. package/schematics/migrations/color-signals/index.cjs +20 -0
  328. package/schematics/migrations/color-signals/schema.json +20 -0
  329. package/schematics/migrations/core-mixins-removal/README.md +20 -0
  330. package/schematics/migrations/core-mixins-removal/data.cjs +27 -0
  331. package/schematics/migrations/core-mixins-removal/index.cjs +18 -0
  332. package/schematics/migrations/core-mixins-removal/schema.json +15 -0
  333. package/schematics/migrations/css-selectors/README.md +2 -2
  334. package/schematics/migrations/css-selectors/{index.js → index.cjs} +4 -3
  335. package/schematics/migrations/datepicker-signals/README.md +24 -0
  336. package/schematics/migrations/datepicker-signals/data.cjs +49 -0
  337. package/schematics/migrations/datepicker-signals/index.cjs +18 -0
  338. package/schematics/migrations/datepicker-signals/schema.json +15 -0
  339. package/schematics/migrations/deprecated-icons/README.md +2 -2
  340. package/schematics/migrations/deprecated-icons/{index.js → index.cjs} +8 -7
  341. package/schematics/migrations/design-tokens-v4/README.md +75 -0
  342. package/schematics/migrations/design-tokens-v4/index.cjs +60 -0
  343. package/schematics/migrations/design-tokens-v4/schema.json +15 -0
  344. package/schematics/migrations/divider-signals-and-aria/README.md +47 -0
  345. package/schematics/migrations/divider-signals-and-aria/data.cjs +62 -0
  346. package/schematics/migrations/divider-signals-and-aria/index.cjs +212 -0
  347. package/schematics/migrations/divider-signals-and-aria/schema.json +15 -0
  348. package/schematics/migrations/dl-attribute-coercion/README.md +59 -0
  349. package/schematics/migrations/dl-attribute-coercion/data.cjs +85 -0
  350. package/schematics/migrations/dl-attribute-coercion/index.cjs +162 -0
  351. package/schematics/migrations/dl-attribute-coercion/schema.json +15 -0
  352. package/schematics/migrations/dl-standalone-names/README.md +49 -0
  353. package/schematics/migrations/dl-standalone-names/data.cjs +44 -0
  354. package/schematics/migrations/dl-standalone-names/index.cjs +322 -0
  355. package/schematics/migrations/dl-standalone-names/schema.json +20 -0
  356. package/schematics/migrations/dropdown-demote-overlay/README.md +137 -0
  357. package/schematics/migrations/dropdown-demote-overlay/data.cjs +84 -0
  358. package/schematics/migrations/dropdown-demote-overlay/index.cjs +289 -0
  359. package/schematics/migrations/dropdown-demote-overlay/schema.json +20 -0
  360. package/schematics/migrations/dropdown-signals/README.md +83 -0
  361. package/schematics/migrations/dropdown-signals/data.cjs +152 -0
  362. package/schematics/migrations/dropdown-signals/index.cjs +20 -0
  363. package/schematics/migrations/dropdown-signals/schema.json +20 -0
  364. package/schematics/migrations/empty-state-error-color/README.md +84 -0
  365. package/schematics/migrations/empty-state-error-color/data.cjs +85 -0
  366. package/schematics/migrations/empty-state-error-color/index.cjs +72 -0
  367. package/schematics/migrations/empty-state-error-color/schema.json +15 -0
  368. package/schematics/migrations/empty-state-size-attr/README.md +2 -2
  369. package/schematics/migrations/empty-state-size-attr/{index.js → index.cjs} +6 -5
  370. package/schematics/migrations/file-upload-cva-and-primitives/README.md +70 -0
  371. package/schematics/migrations/file-upload-cva-and-primitives/data.cjs +97 -0
  372. package/schematics/migrations/file-upload-cva-and-primitives/index.cjs +61 -0
  373. package/schematics/migrations/file-upload-cva-and-primitives/schema.json +15 -0
  374. package/schematics/migrations/file-upload-deprecated-outputs/README.md +90 -0
  375. package/schematics/migrations/file-upload-deprecated-outputs/data.cjs +20 -0
  376. package/schematics/migrations/file-upload-deprecated-outputs/index.cjs +71 -0
  377. package/schematics/migrations/file-upload-deprecated-outputs/schema.json +20 -0
  378. package/schematics/migrations/filter-bar-rename-action/README.md +183 -0
  379. package/schematics/migrations/filter-bar-rename-action/data.cjs +151 -0
  380. package/schematics/migrations/filter-bar-rename-action/index.cjs +178 -0
  381. package/schematics/migrations/filter-bar-rename-action/schema.json +20 -0
  382. package/schematics/migrations/filter-bar-signals/README.md +27 -16
  383. package/schematics/migrations/filter-bar-signals/{data.js → data.cjs} +1 -2
  384. package/schematics/migrations/filter-bar-signals/index.cjs +225 -0
  385. package/schematics/migrations/filter-bar-state-saving-default/README.md +53 -0
  386. package/schematics/migrations/filter-bar-state-saving-default/data.cjs +87 -0
  387. package/schematics/migrations/filter-bar-state-saving-default/index.cjs +62 -0
  388. package/schematics/migrations/filter-bar-state-saving-default/schema.json +15 -0
  389. package/schematics/migrations/flag-inner-html/README.md +67 -0
  390. package/schematics/migrations/flag-inner-html/data.cjs +58 -0
  391. package/schematics/migrations/flag-inner-html/index.cjs +62 -0
  392. package/schematics/migrations/flag-inner-html/schema.json +15 -0
  393. package/schematics/migrations/form-field-signals/README.md +125 -0
  394. package/schematics/migrations/form-field-signals/data.cjs +288 -0
  395. package/schematics/migrations/form-field-signals/index.cjs +383 -0
  396. package/schematics/migrations/form-field-signals/schema.json +20 -0
  397. package/schematics/migrations/icon-semantics-and-api/README.md +65 -0
  398. package/schematics/migrations/icon-semantics-and-api/data.cjs +97 -0
  399. package/schematics/migrations/icon-semantics-and-api/index.cjs +65 -0
  400. package/schematics/migrations/icon-semantics-and-api/schema.json +15 -0
  401. package/schematics/migrations/icons-replacement/README.md +5 -5
  402. package/schematics/migrations/icons-replacement/{index.js → index.cjs} +4 -3
  403. package/schematics/migrations/inline-edit-a11y-and-types/README.md +82 -0
  404. package/schematics/migrations/inline-edit-a11y-and-types/data.cjs +117 -0
  405. package/schematics/migrations/inline-edit-a11y-and-types/index.cjs +98 -0
  406. package/schematics/migrations/inline-edit-a11y-and-types/schema.json +20 -0
  407. package/schematics/migrations/input-number-surface/README.md +140 -0
  408. package/schematics/migrations/input-number-surface/data.cjs +135 -0
  409. package/schematics/migrations/input-number-surface/index.cjs +293 -0
  410. package/schematics/migrations/input-number-surface/schema.json +20 -0
  411. package/schematics/migrations/input-signals/README.md +20 -0
  412. package/schematics/migrations/input-signals/data.cjs +30 -0
  413. package/schematics/migrations/input-signals/index.cjs +18 -0
  414. package/schematics/migrations/input-signals/schema.json +15 -0
  415. package/schematics/migrations/link-deprecated-path/README.md +144 -0
  416. package/schematics/migrations/link-deprecated-path/index.cjs +20 -0
  417. package/schematics/migrations/link-deprecated-path/schema.json +20 -0
  418. package/schematics/migrations/link-signals/README.md +71 -0
  419. package/schematics/migrations/link-signals/data.cjs +116 -0
  420. package/schematics/migrations/link-signals/index.cjs +416 -0
  421. package/schematics/migrations/link-signals/schema.json +20 -0
  422. package/schematics/migrations/list-signals/README.md +22 -0
  423. package/schematics/migrations/list-signals/data.cjs +35 -0
  424. package/schematics/migrations/list-signals/index.cjs +18 -0
  425. package/schematics/migrations/list-signals/schema.json +15 -0
  426. package/schematics/migrations/list-tree-multiple-input/README.md +105 -0
  427. package/schematics/migrations/list-tree-multiple-input/data.cjs +74 -0
  428. package/schematics/migrations/list-tree-multiple-input/index.cjs +222 -0
  429. package/schematics/migrations/list-tree-multiple-input/schema.json +20 -0
  430. package/schematics/migrations/loader-overlay-signals/README.md +62 -0
  431. package/schematics/migrations/loader-overlay-signals/data.cjs +101 -0
  432. package/schematics/migrations/loader-overlay-signals/index.cjs +698 -0
  433. package/schematics/migrations/loader-overlay-signals/schema.json +20 -0
  434. package/schematics/migrations/loader-overlay-size-attr/README.md +2 -2
  435. package/schematics/migrations/loader-overlay-size-attr/{index.js → index.cjs} +6 -5
  436. package/schematics/migrations/locale-configuration-providers/README.md +163 -0
  437. package/schematics/migrations/locale-configuration-providers/data.cjs +257 -0
  438. package/schematics/migrations/locale-configuration-providers/index.cjs +295 -0
  439. package/schematics/migrations/locale-configuration-providers/schema.json +20 -0
  440. package/schematics/migrations/mandatory-peer-dependencies/README.md +70 -0
  441. package/schematics/migrations/mandatory-peer-dependencies/index.cjs +43 -0
  442. package/schematics/migrations/mandatory-peer-dependencies/schema.json +15 -0
  443. package/schematics/migrations/markdown-signals/README.md +58 -0
  444. package/schematics/migrations/markdown-signals/data.cjs +79 -0
  445. package/schematics/migrations/markdown-signals/index.cjs +640 -0
  446. package/schematics/migrations/markdown-signals/schema.json +20 -0
  447. package/schematics/migrations/modal-dialog-semantics/README.md +106 -0
  448. package/schematics/migrations/modal-dialog-semantics/data.cjs +110 -0
  449. package/schematics/migrations/modal-dialog-semantics/index.cjs +59 -0
  450. package/schematics/migrations/modal-dialog-semantics/schema.json +15 -0
  451. package/schematics/migrations/modal-signals/README.md +88 -0
  452. package/schematics/migrations/modal-signals/data.cjs +132 -0
  453. package/schematics/migrations/modal-signals/index.cjs +20 -0
  454. package/schematics/migrations/modal-signals/schema.json +20 -0
  455. package/schematics/migrations/navbar-signals-and-aria/README.md +111 -0
  456. package/schematics/migrations/navbar-signals-and-aria/data.cjs +198 -0
  457. package/schematics/migrations/navbar-signals-and-aria/index.cjs +569 -0
  458. package/schematics/migrations/navbar-signals-and-aria/schema.json +20 -0
  459. package/schematics/migrations/new-icons-pack/README.md +10 -10
  460. package/schematics/migrations/new-icons-pack/{index.js → index.cjs} +8 -7
  461. package/schematics/migrations/notification-center-signals/README.md +67 -0
  462. package/schematics/migrations/notification-center-signals/data.cjs +66 -0
  463. package/schematics/migrations/notification-center-signals/index.cjs +62 -0
  464. package/schematics/migrations/notification-center-signals/schema.json +15 -0
  465. package/schematics/migrations/option-signals/README.md +37 -0
  466. package/schematics/migrations/option-signals/data.cjs +86 -0
  467. package/schematics/migrations/option-signals/index.cjs +20 -0
  468. package/schematics/migrations/option-signals/schema.json +20 -0
  469. package/schematics/migrations/popover-leave-delay/README.md +51 -0
  470. package/schematics/migrations/popover-leave-delay/data.cjs +61 -0
  471. package/schematics/migrations/popover-leave-delay/index.cjs +55 -0
  472. package/schematics/migrations/popover-leave-delay/schema.json +15 -0
  473. package/schematics/migrations/progress-bar-percentage-and-aria/README.md +54 -0
  474. package/schematics/migrations/progress-bar-percentage-and-aria/data.cjs +76 -0
  475. package/schematics/migrations/progress-bar-percentage-and-aria/index.cjs +59 -0
  476. package/schematics/migrations/progress-bar-percentage-and-aria/schema.json +15 -0
  477. package/schematics/migrations/progress-spinner-signals/README.md +72 -0
  478. package/schematics/migrations/progress-spinner-signals/data.cjs +83 -0
  479. package/schematics/migrations/progress-spinner-signals/index.cjs +695 -0
  480. package/schematics/migrations/progress-spinner-signals/schema.json +20 -0
  481. package/schematics/migrations/query-list-signals/README.md +32 -0
  482. package/schematics/migrations/query-list-signals/data.cjs +70 -0
  483. package/schematics/migrations/query-list-signals/index.cjs +18 -0
  484. package/schematics/migrations/query-list-signals/schema.json +15 -0
  485. package/schematics/migrations/radio-signals-and-aria/README.md +82 -0
  486. package/schematics/migrations/radio-signals-and-aria/data.cjs +163 -0
  487. package/schematics/migrations/radio-signals-and-aria/index.cjs +40 -0
  488. package/schematics/migrations/radio-signals-and-aria/schema.json +20 -0
  489. package/schematics/migrations/read-state-dwell-handlers/README.md +125 -0
  490. package/schematics/migrations/read-state-dwell-handlers/data.cjs +45 -0
  491. package/schematics/migrations/read-state-dwell-handlers/index.cjs +216 -0
  492. package/schematics/migrations/read-state-dwell-handlers/schema.json +20 -0
  493. package/schematics/migrations/scrollbar-deprecated-path/README.md +128 -0
  494. package/schematics/migrations/scrollbar-deprecated-path/index.cjs +21 -0
  495. package/schematics/migrations/scrollbar-deprecated-path/schema.json +20 -0
  496. package/schematics/migrations/select-signal-inputs/README.md +61 -0
  497. package/schematics/migrations/select-signal-inputs/data.cjs +99 -0
  498. package/schematics/migrations/select-signal-inputs/index.cjs +58 -0
  499. package/schematics/migrations/select-signal-inputs/schema.json +15 -0
  500. package/schematics/migrations/sidepanel-non-modal-behavior/README.md +57 -0
  501. package/schematics/migrations/sidepanel-non-modal-behavior/data.cjs +111 -0
  502. package/schematics/migrations/sidepanel-non-modal-behavior/index.cjs +58 -0
  503. package/schematics/migrations/sidepanel-non-modal-behavior/schema.json +15 -0
  504. package/schematics/migrations/signal-inputs-subclasses/README.md +28 -0
  505. package/schematics/migrations/signal-inputs-subclasses/data.cjs +69 -0
  506. package/schematics/migrations/signal-inputs-subclasses/index.cjs +18 -0
  507. package/schematics/migrations/signal-inputs-subclasses/schema.json +15 -0
  508. package/schematics/migrations/split-button-optional-disabled/README.md +47 -0
  509. package/schematics/migrations/split-button-optional-disabled/data.cjs +53 -0
  510. package/schematics/migrations/split-button-optional-disabled/index.cjs +58 -0
  511. package/schematics/migrations/split-button-optional-disabled/schema.json +15 -0
  512. package/schematics/migrations/splitter-deprecated-path/README.md +136 -0
  513. package/schematics/migrations/splitter-deprecated-path/index.cjs +21 -0
  514. package/schematics/migrations/splitter-deprecated-path/schema.json +20 -0
  515. package/schematics/migrations/state-saving-default/README.md +67 -0
  516. package/schematics/migrations/state-saving-default/data.cjs +88 -0
  517. package/schematics/migrations/state-saving-default/index.cjs +63 -0
  518. package/schematics/migrations/state-saving-default/schema.json +15 -0
  519. package/schematics/migrations/table-cell-content/README.md +55 -0
  520. package/schematics/migrations/table-cell-content/data.cjs +66 -0
  521. package/schematics/migrations/table-cell-content/index.cjs +67 -0
  522. package/schematics/migrations/table-cell-content/schema.json +15 -0
  523. package/schematics/migrations/tabs-signals-and-aria/README.md +93 -0
  524. package/schematics/migrations/tabs-signals-and-aria/data.cjs +139 -0
  525. package/schematics/migrations/tabs-signals-and-aria/index.cjs +66 -0
  526. package/schematics/migrations/tabs-signals-and-aria/schema.json +15 -0
  527. package/schematics/migrations/tag-list-cleaner/README.md +58 -0
  528. package/schematics/migrations/tag-list-cleaner/data.cjs +42 -0
  529. package/schematics/migrations/tag-list-cleaner/index.cjs +197 -0
  530. package/schematics/migrations/tag-list-cleaner/schema.json +20 -0
  531. package/schematics/migrations/tag-slots/README.md +41 -0
  532. package/schematics/migrations/tag-slots/index.cjs +191 -0
  533. package/schematics/migrations/tag-slots/schema.json +20 -0
  534. package/schematics/migrations/tags-signals/README.md +85 -0
  535. package/schematics/migrations/tags-signals/data.cjs +103 -0
  536. package/schematics/migrations/tags-signals/index.cjs +674 -0
  537. package/schematics/migrations/tags-signals/schema.json +20 -0
  538. package/schematics/migrations/textarea-signals/README.md +72 -0
  539. package/schematics/migrations/textarea-signals/data.cjs +121 -0
  540. package/schematics/migrations/textarea-signals/index.cjs +380 -0
  541. package/schematics/migrations/textarea-signals/schema.json +20 -0
  542. package/schematics/migrations/time-range-title-for/README.md +164 -0
  543. package/schematics/migrations/time-range-title-for/data.cjs +139 -0
  544. package/schematics/migrations/time-range-title-for/index.cjs +164 -0
  545. package/schematics/migrations/time-range-title-for/schema.json +20 -0
  546. package/schematics/migrations/timepicker-signals/README.md +78 -0
  547. package/schematics/migrations/timepicker-signals/data.cjs +82 -0
  548. package/schematics/migrations/timepicker-signals/index.cjs +710 -0
  549. package/schematics/migrations/timepicker-signals/schema.json +20 -0
  550. package/schematics/migrations/timezone-grouping-utils/README.md +73 -0
  551. package/schematics/migrations/timezone-grouping-utils/data.cjs +101 -0
  552. package/schematics/migrations/timezone-grouping-utils/index.cjs +65 -0
  553. package/schematics/migrations/timezone-grouping-utils/schema.json +15 -0
  554. package/schematics/migrations/title-encapsulation/README.md +49 -0
  555. package/schematics/migrations/title-encapsulation/data.cjs +69 -0
  556. package/schematics/migrations/title-encapsulation/index.cjs +58 -0
  557. package/schematics/migrations/title-encapsulation/schema.json +15 -0
  558. package/schematics/migrations/toast-stack-and-defaults/README.md +102 -0
  559. package/schematics/migrations/toast-stack-and-defaults/data.cjs +79 -0
  560. package/schematics/migrations/toast-stack-and-defaults/index.cjs +54 -0
  561. package/schematics/migrations/toast-stack-and-defaults/schema.json +15 -0
  562. package/schematics/migrations/tooltip-pointer-events-and-types/README.md +53 -0
  563. package/schematics/migrations/tooltip-pointer-events-and-types/data.cjs +89 -0
  564. package/schematics/migrations/tooltip-pointer-events-and-types/index.cjs +61 -0
  565. package/schematics/migrations/tooltip-pointer-events-and-types/schema.json +15 -0
  566. package/schematics/migrations/top-bar-container-selectors/README.md +111 -0
  567. package/schematics/migrations/top-bar-container-selectors/data.cjs +56 -0
  568. package/schematics/migrations/top-bar-container-selectors/index.cjs +85 -0
  569. package/schematics/migrations/top-bar-container-selectors/schema.json +20 -0
  570. package/schematics/migrations/tree-select-signals/README.md +61 -0
  571. package/schematics/migrations/tree-select-signals/data.cjs +106 -0
  572. package/schematics/migrations/tree-select-signals/index.cjs +59 -0
  573. package/schematics/migrations/tree-select-signals/schema.json +15 -0
  574. package/schematics/migrations/tree-signals/README.md +82 -0
  575. package/schematics/migrations/tree-signals/data.cjs +123 -0
  576. package/schematics/migrations/tree-signals/index.cjs +55 -0
  577. package/schematics/migrations/tree-signals/schema.json +15 -0
  578. package/schematics/migrations/tree-state-saving-default/README.md +66 -0
  579. package/schematics/migrations/tree-state-saving-default/data.cjs +78 -0
  580. package/schematics/migrations/tree-state-saving-default/index.cjs +61 -0
  581. package/schematics/migrations/tree-state-saving-default/schema.json +15 -0
  582. package/schematics/migrations/username-pipe-injection/README.md +59 -0
  583. package/schematics/migrations/username-pipe-injection/data.cjs +78 -0
  584. package/schematics/migrations/username-pipe-injection/index.cjs +59 -0
  585. package/schematics/migrations/username-pipe-injection/schema.json +15 -0
  586. package/schematics/migrations/v20-upgrade/README.md +36 -16
  587. package/schematics/migrations/v20-upgrade/{data.js → data.cjs} +124 -77
  588. package/schematics/migrations/v20-upgrade/index.cjs +19 -0
  589. package/schematics/migrations/v21-upgrade/README.md +271 -0
  590. package/schematics/migrations/v21-upgrade/data.cjs +1371 -0
  591. package/schematics/migrations/v21-upgrade/index.cjs +95 -0
  592. package/schematics/migrations/v21-upgrade/schema.json +20 -0
  593. package/schematics/migrations/zoneless-change-detection/README.md +30 -0
  594. package/schematics/migrations/zoneless-change-detection/data.cjs +29 -0
  595. package/schematics/migrations/zoneless-change-detection/index.cjs +21 -0
  596. package/schematics/migrations/zoneless-change-detection/schema.json +15 -0
  597. package/schematics/migrations.json +401 -6
  598. package/schematics/ng-add/index.cjs +266 -0
  599. package/schematics/ng-add/schema.json +15 -0
  600. package/schematics/utils/{angular-parsing.js → angular-parsing.cjs} +2 -2
  601. package/schematics/utils/deprecated-path-migration.cjs +62 -0
  602. package/schematics/utils/html-config.cjs +148 -0
  603. package/schematics/utils/{icon-migration.js → icon-migration.cjs} +2 -2
  604. package/schematics/utils/list-item-pattern.cjs +16 -0
  605. package/schematics/utils/{package-config.js → package-config.cjs} +3 -32
  606. package/schematics/utils/project-files.cjs +25 -0
  607. package/schematics/utils/replacement-driver.cjs +337 -0
  608. package/schematics/utils/safe-rule.cjs +23 -0
  609. package/schematics/utils/signal-members-migration.cjs +779 -0
  610. package/schematics/utils/tag-patterns.cjs +21 -0
  611. package/schematics/utils/template-ref-access.cjs +155 -0
  612. package/schematics/utils/{typescript.js → typescript.cjs} +1 -1
  613. package/schematics/utils/warn-only-migration.cjs +52 -0
  614. package/schematics/utils/workspace-styles.cjs +123 -0
  615. package/scrollbar/{_scrollbar-component-theme.scss → deprecated/_scrollbar-component-theme.scss} +1 -1
  616. package/scrollbar/{scrollbar.component.scss → deprecated/scrollbar.component.scss} +1 -1
  617. package/scrollbar/native-scrollbar.scss +68 -0
  618. package/scrollbar/scrollbar-tokens.scss +13 -22
  619. package/scrollbar/scrollbar-track.scss +94 -0
  620. package/scrollbar/scrollbar-viewport.scss +33 -0
  621. package/scrollbar/scrollbar.scss +24 -0
  622. package/search-expandable/search-expandable-tokens.scss +4 -0
  623. package/search-expandable/search-expandable.scss +4 -2
  624. package/select/_select-theme.scss +3 -16
  625. package/select/select.scss +0 -6
  626. package/sidebar/sidebar.scss +20 -0
  627. package/sidepanel/_sidepanel-theme.scss +1 -1
  628. package/sidepanel/sidepanel-tokens.scss +7 -1
  629. package/sidepanel/sidepanel.scss +41 -5
  630. package/skeleton/skeleton-presets.scss +350 -0
  631. package/skeleton/skeleton-tokens.scss +127 -0
  632. package/skeleton/skeleton.scss +53 -45
  633. package/split-button/_split-button-theme.scss +4 -4
  634. package/split-button/split-button.scss +2 -6
  635. package/splitter/{_splitter-theme.scss → deprecated/_splitter-theme.scss} +1 -1
  636. package/splitter/deprecated/splitter.scss +51 -0
  637. package/splitter/splitter-tokens.scss +19 -0
  638. package/splitter/splitter.scss +148 -28
  639. package/table/_table-theme.scss +13 -12
  640. package/table/table-tokens.scss +8 -0
  641. package/table/table.scss +47 -22
  642. package/tabs/_tabs-common.scss +14 -14
  643. package/tabs/_tabs-theme.scss +4 -5
  644. package/tabs/tab-body.scss +49 -1
  645. package/tabs/tab-header.scss +2 -1
  646. package/tags/tag-list.scss +4 -0
  647. package/tags/tag.scss +19 -1
  648. package/time-range/time-range.scss +9 -0
  649. package/timezone/timezone-option.component.scss +4 -7
  650. package/timezone/timezone-select.component.scss +3 -0
  651. package/toast/_toast-theme.scss +1 -4
  652. package/toast/toast-container.component.scss +19 -13
  653. package/toast/toast-tokens.scss +12 -6
  654. package/toast/toast.component.scss +42 -19
  655. package/toggle/_toggle-theme.scss +4 -10
  656. package/toggle/toggle.scss +67 -26
  657. package/tooltip/_tooltip-theme.scss +7 -1
  658. package/tooltip/tooltip-tokens.scss +1 -2
  659. package/tooltip/tooltip.scss +55 -9
  660. package/top-bar/top-bar-tokens.scss +13 -2
  661. package/top-bar/top-bar.scss +24 -19
  662. package/tree/_tree-theme.scss +0 -1
  663. package/tree/toggle.scss +5 -9
  664. package/tree/tree-option.scss +2 -4
  665. package/tree/tree-tokens.scss +2 -1
  666. package/tree/tree.scss +3 -5
  667. package/tree-select/_tree-select-theme.scss +4 -15
  668. package/tree-select/tree-select-tokens.scss +16 -0
  669. package/tree-select/tree-select.scss +0 -6
  670. package/{accordion/index.d.ts → types/koobiq-components-accordion.d.ts} +102 -84
  671. package/{actions-panel/index.d.ts → types/koobiq-components-actions-panel.d.ts} +44 -59
  672. package/{alert/index.d.ts → types/koobiq-components-alert.d.ts} +8 -3
  673. package/types/koobiq-components-app-switcher.d.ts +406 -0
  674. package/types/koobiq-components-autocomplete.d.ts +443 -0
  675. package/{badge/index.d.ts → types/koobiq-components-badge.d.ts} +25 -20
  676. package/{breadcrumbs/index.d.ts → types/koobiq-components-breadcrumbs.d.ts} +97 -46
  677. package/types/koobiq-components-button-toggle.d.ts +340 -0
  678. package/types/koobiq-components-button.d.ts +296 -0
  679. package/types/koobiq-components-checkbox.d.ts +172 -0
  680. package/types/koobiq-components-clamped-text.d.ts +184 -0
  681. package/{code-block/index.d.ts → types/koobiq-components-code-block.d.ts} +150 -88
  682. package/{content-panel/index.d.ts → types/koobiq-components-content-panel.d.ts} +81 -25
  683. package/{core/index.d.ts → types/koobiq-components-core.d.ts} +2827 -865
  684. package/{datepicker/index.d.ts → types/koobiq-components-datepicker.d.ts} +161 -116
  685. package/types/koobiq-components-divider.d.ts +43 -0
  686. package/types/koobiq-components-dl.d.ts +235 -0
  687. package/{dropdown/index.d.ts → types/koobiq-components-dropdown.d.ts} +245 -239
  688. package/types/koobiq-components-ellipsis-center.d.ts +85 -0
  689. package/types/koobiq-components-empty-state.d.ts +106 -0
  690. package/{file-upload/index.d.ts → types/koobiq-components-file-upload.d.ts} +214 -107
  691. package/{filter-bar/index.d.ts → types/koobiq-components-filter-bar.d.ts} +410 -495
  692. package/types/koobiq-components-flag.d.ts +68 -0
  693. package/{form-field/index.d.ts → types/koobiq-components-form-field.d.ts} +167 -191
  694. package/types/koobiq-components-icon.d.ts +333 -0
  695. package/{inline-edit/index.d.ts → types/koobiq-components-inline-edit.d.ts} +109 -46
  696. package/types/koobiq-components-input.d.ts +477 -0
  697. package/types/koobiq-components-link-deprecated.d.ts +101 -0
  698. package/types/koobiq-components-link.d.ts +176 -0
  699. package/{list/index.d.ts → types/koobiq-components-list.d.ts} +162 -99
  700. package/types/koobiq-components-loader-overlay.d.ts +101 -0
  701. package/{markdown/index.d.ts → types/koobiq-components-markdown.d.ts} +16 -24
  702. package/types/koobiq-components-modal.d.ts +666 -0
  703. package/types/koobiq-components-navbar.d.ts +569 -0
  704. package/types/koobiq-components-notification-center.d.ts +500 -0
  705. package/{overflow-items/index.d.ts → types/koobiq-components-overflow-items.d.ts} +8 -22
  706. package/types/koobiq-components-popover.d.ts +468 -0
  707. package/types/koobiq-components-progress-bar.d.ts +67 -0
  708. package/{progress-spinner/index.d.ts → types/koobiq-components-progress-spinner.d.ts} +33 -10
  709. package/types/koobiq-components-radio.d.ts +294 -0
  710. package/{resizer/index.d.ts → types/koobiq-components-resizer.d.ts} +37 -2
  711. package/{scrollbar/index.d.ts → types/koobiq-components-scrollbar-deprecated.d.ts} +18 -1
  712. package/types/koobiq-components-scrollbar.d.ts +154 -0
  713. package/types/koobiq-components-search-expandable.d.ts +164 -0
  714. package/{select/index.d.ts → types/koobiq-components-select.d.ts} +360 -167
  715. package/types/koobiq-components-sidebar.d.ts +152 -0
  716. package/types/koobiq-components-sidepanel.d.ts +436 -0
  717. package/types/koobiq-components-skeleton.d.ts +234 -0
  718. package/types/koobiq-components-split-button.d.ts +65 -0
  719. package/{splitter/index.d.ts → types/koobiq-components-splitter-deprecated.d.ts} +44 -1
  720. package/types/koobiq-components-splitter.d.ts +406 -0
  721. package/types/koobiq-components-table.d.ts +44 -0
  722. package/types/koobiq-components-tabs.d.ts +888 -0
  723. package/{tags/index.d.ts → types/koobiq-components-tags.d.ts} +249 -133
  724. package/types/koobiq-components-textarea.d.ts +178 -0
  725. package/{time-range/index.d.ts → types/koobiq-components-time-range.d.ts} +135 -62
  726. package/types/koobiq-components-timepicker.d.ts +223 -0
  727. package/types/koobiq-components-timezone.d.ts +266 -0
  728. package/types/koobiq-components-title.d.ts +184 -0
  729. package/types/koobiq-components-toast.d.ts +289 -0
  730. package/types/koobiq-components-toggle.d.ts +121 -0
  731. package/types/koobiq-components-tooltip.d.ts +610 -0
  732. package/types/koobiq-components-top-bar.d.ts +61 -0
  733. package/types/koobiq-components-tree-select.d.ts +670 -0
  734. package/types/koobiq-components-tree.d.ts +1339 -0
  735. package/types/koobiq-components-username.d.ts +340 -0
  736. package/username/_username-theme.scss +35 -0
  737. package/username/username.scss +10 -34
  738. package/app-switcher/index.d.ts +0 -276
  739. package/autocomplete/index.d.ts +0 -286
  740. package/button/index.d.ts +0 -153
  741. package/button-toggle/index.d.ts +0 -162
  742. package/checkbox/index.d.ts +0 -163
  743. package/clamped-text/index.d.ts +0 -146
  744. package/core/styles/_tokens.scss +0 -7
  745. package/core/styles/common/_clearfix.scss +0 -13
  746. package/core/styles/common/_popup.scss +0 -6
  747. package/core/styles/functions/_index.scss +0 -3
  748. package/core/styles/functions/_number.scss +0 -60
  749. package/core/styles/functions/_string.scss +0 -18
  750. package/core/styles/theming/scrollbar-tokens.scss +0 -25
  751. package/core/styles/typography/_typography-utils.scss +0 -84
  752. package/divider/index.d.ts +0 -20
  753. package/dl/index.d.ts +0 -45
  754. package/ellipsis-center/index.d.ts +0 -71
  755. package/empty-state/index.d.ts +0 -45
  756. package/flag/index.d.ts +0 -44
  757. package/icon/index.d.ts +0 -200
  758. package/input/index.d.ts +0 -354
  759. package/link/index.d.ts +0 -56
  760. package/loader-overlay/index.d.ts +0 -57
  761. package/modal/index.d.ts +0 -339
  762. package/navbar/index.d.ts +0 -372
  763. package/notification-center/index.d.ts +0 -323
  764. package/popover/index.d.ts +0 -182
  765. package/prebuilt-themes/dark-theme.css +0 -1
  766. package/prebuilt-themes/light-theme.css +0 -1
  767. package/progress-bar/index.d.ts +0 -31
  768. package/radio/index.d.ts +0 -203
  769. package/schematics/migrations/alert-signals/index.js +0 -353
  770. package/schematics/migrations/filter-bar-signals/index.js +0 -319
  771. package/schematics/migrations/v20-upgrade/index.js +0 -225
  772. package/schematics/ng-add/index.js +0 -39
  773. package/search-expandable/index.d.ts +0 -101
  774. package/sidebar/index.d.ts +0 -94
  775. package/sidepanel/index.d.ts +0 -272
  776. package/skeleton/index.d.ts +0 -26
  777. package/split-button/index.d.ts +0 -46
  778. package/table/index.d.ts +0 -25
  779. package/tabs/index.d.ts +0 -677
  780. package/textarea/index.d.ts +0 -138
  781. package/timepicker/index.d.ts +0 -197
  782. package/timezone/index.d.ts +0 -125
  783. package/title/index.d.ts +0 -139
  784. package/toast/index.d.ts +0 -178
  785. package/toggle/index.d.ts +0 -104
  786. package/tooltip/index.d.ts +0 -335
  787. package/top-bar/index.d.ts +0 -33
  788. package/tree/index.d.ts +0 -802
  789. package/tree-select/index.d.ts +0 -475
  790. package/username/index.d.ts +0 -194
  791. /package/schematics/migrations/css-selectors/{data.js → data.cjs} +0 -0
  792. /package/schematics/migrations/deprecated-icons/{data.js → data.cjs} +0 -0
  793. /package/schematics/migrations/icons-replacement/{data.js → data.cjs} +0 -0
  794. /package/schematics/migrations/new-icons-pack/{data.js → data.cjs} +0 -0
  795. /package/schematics/utils/{ast.js → ast.cjs} +0 -0
  796. /package/schematics/utils/{messages.js → messages.cjs} +0 -0
  797. /package/{dynamic-translation/index.d.ts → types/koobiq-components-dynamic-translation.d.ts} +0 -0
  798. /package/{index.d.ts → types/koobiq-components.d.ts} +0 -0
@@ -0,0 +1,701 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var ts = require('typescript');
6
+ var utils_ast = require('../../utils/ast.cjs');
7
+ var utils_messages = require('../../utils/messages.cjs');
8
+ var utils_packageConfig = require('../../utils/package-config.cjs');
9
+ var utils_projectFiles = require('../../utils/project-files.cjs');
10
+ var utils_typescript = require('../../utils/typescript.cjs');
11
+ var migrations_codeBlockSignals_data = require('./data.cjs');
12
+ require('@angular-devkit/schematics');
13
+ require('@schematics/angular/utility');
14
+
15
+ const LABEL = '[code-block-signals]';
16
+ const TS_EXT = '.ts';
17
+ const HTML_EXT = '.html';
18
+ /** Factories whose single argument gives the type of the declaration they set up. */
19
+ const TYPING_FACTORIES = new Set(['inject', 'viewChild', 'contentChild']);
20
+ function escapeRegExp(value) {
21
+ return value.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
22
+ }
23
+ /** Applies text-span edits to `content`, right-to-left, so earlier edits don't shift later offsets. */
24
+ function applyEdits(content, edits) {
25
+ const sorted = [...edits].sort((a, b) => b.start - a.start || b.end - a.end);
26
+ let result = content;
27
+ for (const { start, end, text } of sorted) {
28
+ result = result.slice(0, start) + text + result.slice(end);
29
+ }
30
+ return result;
31
+ }
32
+ /** Walks up from `node` to the nearest ancestor matching `predicate`. */
33
+ function findAncestor(node, predicate) {
34
+ let current = node.parent;
35
+ while (current) {
36
+ if (predicate(current))
37
+ return current;
38
+ current = current.parent;
39
+ }
40
+ return undefined;
41
+ }
42
+ /**
43
+ * Nodes that open a new binding scope. `ts.isFunctionLike` rather than a hand-rolled list of declarations,
44
+ * so a parameter of a `FunctionTypeNode` or a `MethodSignature` is bounded by its type instead of falling
45
+ * back to the whole file. Blocks and loops are included because `let`/`const` are block-scoped.
46
+ */
47
+ const opensScope = (node) => ts.isFunctionLike(node) ||
48
+ ts.isBlock(node) ||
49
+ ts.isCaseBlock(node) ||
50
+ ts.isModuleBlock(node) ||
51
+ ts.isForStatement(node) ||
52
+ ts.isForInStatement(node) ||
53
+ ts.isForOfStatement(node) ||
54
+ ts.isCatchClause(node) ||
55
+ ts.isClassLike(node) ||
56
+ ts.isSourceFile(node);
57
+ /** Nodes that rebind `this`, so `this.code block` inside them is a different object. Arrows don't. */
58
+ const rebindsThis = (node) => ts.isFunctionDeclaration(node) || ts.isFunctionExpression(node) || ts.isClassLike(node);
59
+ /** Whether `node` sits inside `scope` without crossing a `barrier` node on the way up. */
60
+ function reachesScope(node, scope, barrier) {
61
+ let current = node.parent;
62
+ while (current && current !== scope) {
63
+ if (barrier(current))
64
+ return false;
65
+ current = current.parent;
66
+ }
67
+ return current === scope;
68
+ }
69
+ /** Whether a type annotation names one of `typeNames` directly (not through a union or type argument). */
70
+ function isTypeReference(type, typeNames) {
71
+ return (!!type &&
72
+ ts.isTypeReferenceNode(type) &&
73
+ ts.isIdentifier(type.typeName) &&
74
+ typeNames.includes(type.typeName.text));
75
+ }
76
+ const FIELD_MODIFIERS = new Set([
77
+ ts.SyntaxKind.PrivateKeyword,
78
+ ts.SyntaxKind.PublicKeyword,
79
+ ts.SyntaxKind.ProtectedKeyword,
80
+ ts.SyntaxKind.ReadonlyKeyword
81
+ ]);
82
+ /** Every value declaration that introduces a plain identifier, with the scope it is visible in. */
83
+ function collectBindings(sourceFile) {
84
+ const bindings = [];
85
+ const add = (name, declaration, scope) => bindings.push({ name, declaration, scope: scope ?? sourceFile });
86
+ const visit = (node) => {
87
+ if (ts.isParameter(node) && ts.isIdentifier(node.name)) {
88
+ add(node.name.text, node, findAncestor(node, ts.isFunctionLike));
89
+ }
90
+ else if ((ts.isVariableDeclaration(node) || ts.isBindingElement(node)) && ts.isIdentifier(node.name)) {
91
+ add(node.name.text, node, findAncestor(node, opensScope));
92
+ }
93
+ else if ((ts.isFunctionDeclaration(node) || ts.isClassDeclaration(node)) && node.name) {
94
+ add(node.name.text, node, findAncestor(node, opensScope));
95
+ }
96
+ else if ((ts.isImportSpecifier(node) || ts.isImportClause(node)) && node.name) {
97
+ add(node.name.text, node, sourceFile);
98
+ }
99
+ node.forEachChild(visit);
100
+ };
101
+ visit(sourceFile);
102
+ return bindings;
103
+ }
104
+ /** The declaration `name` binds to at `pos`: the innermost enclosing scope that declares it. */
105
+ function resolveBinding(bindings, name, pos) {
106
+ let best;
107
+ let bestWidth = Number.POSITIVE_INFINITY;
108
+ for (const binding of bindings) {
109
+ if (binding.name !== name)
110
+ continue;
111
+ const start = binding.scope.getStart();
112
+ const end = binding.scope.getEnd();
113
+ if (pos < start || pos > end)
114
+ continue;
115
+ const width = end - start;
116
+ if (width < bestWidth) {
117
+ best = binding;
118
+ bestWidth = width;
119
+ }
120
+ }
121
+ return best?.declaration;
122
+ }
123
+ /** Local names `KbqCodeBlock` is bound to in this file, including aliased imports. */
124
+ function localTypeNames(sourceFile) {
125
+ const names = new Set([migrations_codeBlockSignals_data.CODE_BLOCK_TYPE, migrations_codeBlockSignals_data.HIGHLIGHT_TYPE]);
126
+ const visit = (node) => {
127
+ if (ts.isImportSpecifier(node)) {
128
+ const imported = node.propertyName?.text ?? node.name.text;
129
+ if (imported === migrations_codeBlockSignals_data.CODE_BLOCK_TYPE || imported === migrations_codeBlockSignals_data.HIGHLIGHT_TYPE)
130
+ names.add(node.name.text);
131
+ }
132
+ node.forEachChild(visit);
133
+ };
134
+ visit(sourceFile);
135
+ return [...names];
136
+ }
137
+ /**
138
+ * The code block-ness of an initializer, for the shapes a modern Angular consumer writes:
139
+ * `inject(KbqCodeBlock)`, `viewChild(KbqCodeBlock)`, `viewChild.required(…)`, `contentChild(…)`.
140
+ */
141
+ function initializerTypeOf(initializer, typeNames) {
142
+ const none = { codeBlock: false, signalQuery: false, required: false };
143
+ if (!initializer || !ts.isCallExpression(initializer))
144
+ return none;
145
+ const callee = initializer.expression;
146
+ const qualified = ts.isPropertyAccessExpression(callee) && ts.isIdentifier(callee.expression);
147
+ const name = ts.isIdentifier(callee) ? callee.text : qualified ? callee.expression.text : undefined;
148
+ if (!name || !TYPING_FACTORIES.has(name))
149
+ return none;
150
+ const [arg] = initializer.arguments;
151
+ if (!arg || !ts.isIdentifier(arg) || !typeNames.includes(arg.text))
152
+ return none;
153
+ // `viewChild.required(...)` is `Signal<KbqCodeBlock>`; the bare form adds `| undefined`.
154
+ const required = qualified && callee.name.text === 'required';
155
+ return { codeBlock: true, signalQuery: name !== 'inject', required };
156
+ }
157
+ /**
158
+ * Collects the code block receivers: method/function params, class fields (incl.
159
+ * `@ViewChild(KbqCodeBlock) x: KbqCodeBlock`, constructor parameter-properties and the `inject()` /
160
+ * `viewChild()` initializer forms) and typed locals. Annotations that resolve are recorded in `resolved`,
161
+ * so the caller can report the mentions this pass could not turn into a receiver.
162
+ */
163
+ function collectReceivers(sourceFile, typeNames, resolved) {
164
+ const receivers = [];
165
+ const add = (text, declaration, scope, signalQuery = false, required = false) => receivers.push({ text, declaration, scope: scope ?? sourceFile, signalQuery, required });
166
+ const visit = (node) => {
167
+ if (ts.isParameter(node) && ts.isIdentifier(node.name) && isTypeReference(node.type, typeNames)) {
168
+ resolved?.add(node.type);
169
+ add(node.name.text, node, findAncestor(node, ts.isFunctionLike));
170
+ // A constructor parameter-property is also a class field, reachable as `this.<name>`.
171
+ if (node.modifiers?.some((modifier) => FIELD_MODIFIERS.has(modifier.kind))) {
172
+ const owner = findAncestor(node, ts.isClassDeclaration);
173
+ if (owner)
174
+ add(`this.${node.name.text}`, node, owner);
175
+ }
176
+ }
177
+ else if (ts.isPropertyDeclaration(node) && ts.isIdentifier(node.name)) {
178
+ const owner = findAncestor(node, ts.isClassDeclaration);
179
+ const annotated = isTypeReference(node.type, typeNames);
180
+ const { codeBlock, signalQuery, required } = initializerTypeOf(node.initializer, typeNames);
181
+ if (owner && (annotated || codeBlock)) {
182
+ if (annotated)
183
+ resolved?.add(node.type);
184
+ add(`this.${node.name.text}`, node, owner, signalQuery, required);
185
+ }
186
+ }
187
+ else if (ts.isVariableDeclaration(node) && ts.isIdentifier(node.name)) {
188
+ const annotated = isTypeReference(node.type, typeNames);
189
+ const { codeBlock, signalQuery, required } = initializerTypeOf(node.initializer, typeNames);
190
+ if (annotated || codeBlock) {
191
+ if (annotated)
192
+ resolved?.add(node.type);
193
+ add(node.name.text, node, findAncestor(node, opensScope), signalQuery, required);
194
+ }
195
+ }
196
+ node.forEachChild(visit);
197
+ };
198
+ visit(sourceFile);
199
+ return receivers;
200
+ }
201
+ /** Strips the wrappers that do not change which object an access reads from. */
202
+ function unwrapReceiver(node) {
203
+ let current = node;
204
+ while (ts.isNonNullExpression(current) || ts.isParenthesizedExpression(current)) {
205
+ current = current.expression;
206
+ }
207
+ return current;
208
+ }
209
+ /** The receiver a property access resolves to at this exact position, if any. */
210
+ function resolveReceiver(expression, at, sourceFile, receivers, bindings) {
211
+ const inner = unwrapReceiver(expression);
212
+ // `this . code block` and `this /* x */ . code block` spell the same receiver as `this.code block`.
213
+ const text = ts.isPropertyAccessExpression(inner)
214
+ ? `${inner.expression.getText(sourceFile).replace(/\s+/g, '')}.${inner.name.text}`
215
+ : inner.getText(sourceFile);
216
+ return receivers.find((receiver) => {
217
+ if (receiver.text !== text)
218
+ return false;
219
+ // For `this.code block`, a nested `function` or class changes what `this` is; an arrow does not.
220
+ // For a bare `code block`, a nested redeclaration of the same name shadows the receiver.
221
+ if (receiver.text.startsWith('this.'))
222
+ return reachesScope(at, receiver.scope, rebindsThis);
223
+ return (reachesScope(at, receiver.scope, () => false) &&
224
+ resolveBinding(bindings, receiver.text, at.getStart(sourceFile)) === receiver.declaration);
225
+ });
226
+ }
227
+ /** Binary operators that make their left operand a write target rather than a read. */
228
+ const ASSIGNMENT_OPERATORS = new Set([
229
+ ts.SyntaxKind.EqualsToken,
230
+ ts.SyntaxKind.PlusEqualsToken,
231
+ ts.SyntaxKind.MinusEqualsToken,
232
+ ts.SyntaxKind.AsteriskEqualsToken,
233
+ ts.SyntaxKind.AsteriskAsteriskEqualsToken,
234
+ ts.SyntaxKind.SlashEqualsToken,
235
+ ts.SyntaxKind.PercentEqualsToken,
236
+ ts.SyntaxKind.LessThanLessThanEqualsToken,
237
+ ts.SyntaxKind.GreaterThanGreaterThanEqualsToken,
238
+ ts.SyntaxKind.GreaterThanGreaterThanGreaterThanEqualsToken,
239
+ ts.SyntaxKind.AmpersandEqualsToken,
240
+ ts.SyntaxKind.BarEqualsToken,
241
+ ts.SyntaxKind.CaretEqualsToken,
242
+ ts.SyntaxKind.BarBarEqualsToken,
243
+ ts.SyntaxKind.AmpersandAmpersandEqualsToken,
244
+ ts.SyntaxKind.QuestionQuestionEqualsToken
245
+ ]);
246
+ /** Whether `node` sits on the left of a destructuring assignment, where it is written rather than read. */
247
+ function isDestructuringTarget(node) {
248
+ let current = node;
249
+ while (ts.isPropertyAssignment(current.parent) ||
250
+ ts.isShorthandPropertyAssignment(current.parent) ||
251
+ ts.isSpreadAssignment(current.parent) ||
252
+ ts.isSpreadElement(current.parent) ||
253
+ ts.isObjectLiteralExpression(current.parent) ||
254
+ ts.isArrayLiteralExpression(current.parent)) {
255
+ current = current.parent;
256
+ }
257
+ return (ts.isBinaryExpression(current.parent) &&
258
+ current.parent.left === current &&
259
+ ASSIGNMENT_OPERATORS.has(current.parent.operatorToken.kind));
260
+ }
261
+ /** Unary operators that write their operand back. Every other prefix operator is a plain read. */
262
+ const INCREMENT_OPERATORS = new Set([ts.SyntaxKind.PlusPlusToken, ts.SyntaxKind.MinusMinusToken]);
263
+ /** Classifies a matched property access and appends the resulting edit, if any. */
264
+ function classifyAccess(node, edits) {
265
+ const parent = node.parent;
266
+ // Already migrated: `x.id()` (call) or the signal API on it.
267
+ if (ts.isCallExpression(parent) && parent.expression === node)
268
+ return 'migrated';
269
+ if (ts.isPropertyAccessExpression(parent) && parent.expression === node && migrations_codeBlockSignals_data.SIGNAL_API_METHODS.has(parent.name.text))
270
+ return 'migrated';
271
+ // Write target. The plain form has a mechanical translation for a `WritableSignal`; a compound form
272
+ // (`||=`, `+=`) would need the receiver spelled twice, so it is reported rather than rewritten - and a
273
+ // member that stayed a read-only `input()` is reported whichever form it is written in.
274
+ if (ts.isBinaryExpression(parent) && parent.left === node && ASSIGNMENT_OPERATORS.has(parent.operatorToken.kind)) {
275
+ if (parent.operatorToken.kind !== ts.SyntaxKind.EqualsToken)
276
+ return 'write';
277
+ const rhs = parent.right;
278
+ edits.push({ start: node.getEnd(), end: rhs.getStart(), text: '.set(' });
279
+ edits.push({ start: rhs.getEnd(), end: rhs.getEnd(), text: ')' });
280
+ return 'migrated';
281
+ }
282
+ // `x.id++` / `--x.id` and `delete x.id` are writes too. Only the increment operators count: a
283
+ // `PrefixUnaryExpression` is also how `!x.id` is spelled, and that is a read.
284
+ if (ts.isPostfixUnaryExpression(parent) && parent.operand === node)
285
+ return 'write';
286
+ if (ts.isPrefixUnaryExpression(parent) && parent.operand === node && INCREMENT_OPERATORS.has(parent.operator))
287
+ return 'write';
288
+ if (ts.isDeleteExpression(parent))
289
+ return 'write';
290
+ if (isDestructuringTarget(node))
291
+ return 'write';
292
+ // Read (incl. optional chain `x?.id`): append `()`.
293
+ edits.push({ start: node.getEnd(), end: node.getEnd(), text: '()' });
294
+ return 'read';
295
+ }
296
+ /** Collects the edits and the findings for every access on a known code block receiver. */
297
+ function collectAccesses(sourceFile, receivers, bindings) {
298
+ const edits = [];
299
+ const writes = new Set();
300
+ const hidden = new Set();
301
+ const reported = new Set();
302
+ const signalQueryReads = [];
303
+ const visit = (node) => {
304
+ if (ts.isPropertyAccessExpression(node) && ts.isIdentifier(node.name)) {
305
+ const member = node.name.text;
306
+ const known = migrations_codeBlockSignals_data.SIGNAL_MEMBERS.includes(member) ||
307
+ migrations_codeBlockSignals_data.PLUMBING_MEMBERS.includes(member) ||
308
+ migrations_codeBlockSignals_data.REPORTED_MEMBERS.includes(member);
309
+ const receiver = known
310
+ ? resolveReceiver(node.expression, node, sourceFile, receivers, bindings)
311
+ : undefined;
312
+ if (receiver) {
313
+ if (migrations_codeBlockSignals_data.PLUMBING_MEMBERS.includes(member)) {
314
+ hidden.add(member);
315
+ }
316
+ else if (migrations_codeBlockSignals_data.REPORTED_MEMBERS.includes(member)) {
317
+ reported.add(member);
318
+ }
319
+ else if (receiver.signalQuery) {
320
+ // A signal query holds the component behind a call of its own, so the read is
321
+ // `query().id()`. Appending one `()` would be wrong in both halves.
322
+ signalQueryReads.push({ member, required: receiver.required });
323
+ }
324
+ else if (classifyAccess(node, edits) === 'write') {
325
+ writes.add(member);
326
+ }
327
+ }
328
+ }
329
+ node.forEachChild(visit);
330
+ };
331
+ visit(sourceFile);
332
+ return { edits, writes, hidden, reported, signalQueryReads };
333
+ }
334
+ /**
335
+ * 1-based lines where `KbqCodeBlock` is named in a position `collectReceivers` cannot resolve, plus the
336
+ * reads the access pass structurally cannot reach: `code block['id']` and `const { id } = code block`.
337
+ */
338
+ function collectUnresolvedMentions(sourceFile, resolved, typeNames, receivers, bindings) {
339
+ const lines = new Set();
340
+ const members = [...migrations_codeBlockSignals_data.SIGNAL_MEMBERS, ...migrations_codeBlockSignals_data.PLUMBING_MEMBERS];
341
+ const report = (node) => lines.add(sourceFile.getLineAndCharacterOfPosition(node.getStart(sourceFile)).line + 1);
342
+ const isReceiver = (expression, at) => !!resolveReceiver(expression, at, sourceFile, receivers, bindings);
343
+ const visit = (node) => {
344
+ if (ts.isTypeReferenceNode(node) && ts.isIdentifier(node.typeName) && typeNames.includes(node.typeName.text)) {
345
+ if (!resolved.has(node))
346
+ report(node);
347
+ }
348
+ else if (ts.isElementAccessExpression(node) &&
349
+ ts.isStringLiteralLike(node.argumentExpression) &&
350
+ members.includes(node.argumentExpression.text) &&
351
+ isReceiver(node.expression, node)) {
352
+ report(node);
353
+ }
354
+ else if (ts.isVariableDeclaration(node) &&
355
+ ts.isObjectBindingPattern(node.name) &&
356
+ node.initializer &&
357
+ isReceiver(node.initializer, node) &&
358
+ node.name.elements.some((element) => members.includes((element.propertyName ?? element.name).getText(sourceFile)))) {
359
+ report(node);
360
+ }
361
+ node.forEachChild(visit);
362
+ };
363
+ visit(sourceFile);
364
+ return [...lines].sort((a, b) => a - b);
365
+ }
366
+ /**
367
+ * Pass A — rewrite programmatic reads of code block signal members in TypeScript code. One `createSourceFile`
368
+ * and one `collectReceivers` walk per file: the rewrite and every report come out of the same traversal.
369
+ */
370
+ function migrateTsExpressions(content, fileName) {
371
+ const sourceFile = ts.createSourceFile(fileName, content, ts.ScriptTarget.Latest, true, ts.ScriptKind.TS);
372
+ const typeNames = localTypeNames(sourceFile);
373
+ const resolved = new Set();
374
+ const receivers = collectReceivers(sourceFile, typeNames, resolved);
375
+ const bindings = collectBindings(sourceFile);
376
+ const unresolved = collectUnresolvedMentions(sourceFile, resolved, typeNames, receivers, bindings);
377
+ const empty = {
378
+ edits: [],
379
+ writes: new Set(),
380
+ hidden: new Set(),
381
+ reported: new Set(),
382
+ signalQueryReads: []
383
+ };
384
+ if (receivers.length === 0)
385
+ return { ...empty, content, unresolved };
386
+ const findings = collectAccesses(sourceFile, receivers, bindings);
387
+ return {
388
+ ...findings,
389
+ content: findings.edits.length > 0 ? applyEdits(content, findings.edits) : content,
390
+ unresolved
391
+ };
392
+ }
393
+ /** Attribute-name prefixes that mark the value as an Angular expression rather than a literal. */
394
+ const BINDING_PREFIX = /^(?:\[|\(|\*|bind-|bind(?:on)?-|on-)/;
395
+ /**
396
+ * Walks a template's HTML AST, collecting what the rewrite needs: the reference variables bound to a
397
+ * `<kbq-code-block>`, the source ranges that actually hold Angular expressions, and every other name the
398
+ * template introduces.
399
+ */
400
+ class TemplateScanner {
401
+ constructor(template) {
402
+ this.template = template;
403
+ this.codeBlockRefs = [];
404
+ this.otherNames = new Set();
405
+ this.expressions = [];
406
+ this.view = { start: 0, end: template.length };
407
+ }
408
+ visitElement(element) {
409
+ const isCodeBlock = element.name === migrations_codeBlockSignals_data.CODE_BLOCK_ELEMENT;
410
+ for (const attr of element.attrs ?? []) {
411
+ if (typeof attr.name !== 'string')
412
+ continue;
413
+ const reference = this.referenceName(attr.name);
414
+ if (reference !== undefined) {
415
+ // `#ctrl="ngModel"` names a directive on the element, not the code block: `NgModel` really
416
+ // has `name` and `value`, so treating it as the component corrupts a standard idiom.
417
+ const exportsCodeBlock = !attr.value || attr.value === migrations_codeBlockSignals_data.CODE_BLOCK_EXPORT_AS;
418
+ if (isCodeBlock && exportsCodeBlock)
419
+ this.codeBlockRefs.push({ name: reference, ...this.view });
420
+ else
421
+ this.otherNames.add(reference);
422
+ continue;
423
+ }
424
+ // `let-item` on an <ng-template> introduces a name the refs must not collide with.
425
+ if (attr.name.startsWith('let-')) {
426
+ this.otherNames.add(attr.name.slice(4));
427
+ continue;
428
+ }
429
+ this.collectAttributeExpression(attr);
430
+ }
431
+ this.inView(element.name === 'ng-template' ? element.sourceSpan : undefined, () => this.visitChildren(element));
432
+ }
433
+ visitBlock(block) {
434
+ for (const parameter of block.parameters ?? []) {
435
+ const span = parameter.sourceSpan;
436
+ if (!span)
437
+ continue;
438
+ this.expressions.push({ start: span.start.offset, end: span.end.offset });
439
+ // `@for (code block of boxes; track code block)` and `@if (x; as y)` introduce names of their own.
440
+ for (const match of String(parameter.expression ?? '').matchAll(/(?:^\s*|\b(?:as|let)\s+)([A-Za-z_$][\w$]*)\s*(?:\bof\b|\bin\b|=|$)/g)) {
441
+ this.otherNames.add(match[1]);
442
+ }
443
+ }
444
+ this.inView(block.sourceSpan, () => this.visitChildren(block));
445
+ }
446
+ visitText(text) {
447
+ const span = text.sourceSpan;
448
+ if (span)
449
+ this.collectInterpolations(span.start.offset, span.end.offset);
450
+ }
451
+ visitLetDeclaration(decl) {
452
+ if (decl.name)
453
+ this.otherNames.add(decl.name);
454
+ const span = decl.valueSpan ?? decl.sourceSpan;
455
+ if (span)
456
+ this.expressions.push({ start: span.start.offset, end: span.end.offset });
457
+ }
458
+ /** Runs `walk` with the embedded view narrowed to `span`, if the node opens one. */
459
+ inView(span, walk) {
460
+ if (!span) {
461
+ walk();
462
+ return;
463
+ }
464
+ const outer = this.view;
465
+ this.view = { start: span.start.offset, end: span.end.offset };
466
+ walk();
467
+ this.view = outer;
468
+ }
469
+ /** `#ref` / `ref-ref`, or `undefined` when the attribute is not a reference variable. */
470
+ referenceName(name) {
471
+ if (name.startsWith('#'))
472
+ return name.slice(1);
473
+ if (name.startsWith('ref-'))
474
+ return name.slice(4);
475
+ return undefined;
476
+ }
477
+ collectAttributeExpression(attr) {
478
+ const span = attr.valueSpan;
479
+ if (!span)
480
+ return;
481
+ const start = span.start.offset;
482
+ const end = span.end.offset;
483
+ // A binding's whole value is an expression; a plain attribute only holds interpolations.
484
+ if (BINDING_PREFIX.test(attr.name))
485
+ this.expressions.push({ start, end });
486
+ else
487
+ this.collectInterpolations(start, end);
488
+ }
489
+ collectInterpolations(start, end) {
490
+ for (const match of this.template.slice(start, end).matchAll(/\{\{([\s\S]*?)\}\}/g)) {
491
+ const from = start + match.index + 2;
492
+ this.expressions.push({ start: from, end: from + match[1].length });
493
+ }
494
+ }
495
+ visitChildren(node) {
496
+ for (const child of node.children ?? []) {
497
+ child.visit(this);
498
+ }
499
+ }
500
+ visitAttribute() { }
501
+ visitComment() { }
502
+ visitExpansion() { }
503
+ visitExpansionCase() { }
504
+ visitBlockParameter() { }
505
+ }
506
+ /**
507
+ * Matches `<ref>.<member>` inside a template expression. The lookbehind rejects `form.code block.value`,
508
+ * where `\b` alone matches after the dot, and admits a `$`-prefixed ref that `\b` never could. `\??\.`
509
+ * accepts the optional chain, and Angular's grammar allows whitespace around the dot. The three groups skip
510
+ * an already-migrated read, a signal-API call, and an assignment target.
511
+ */
512
+ function memberAccessPattern(ref, members) {
513
+ const methods = [...migrations_codeBlockSignals_data.SIGNAL_API_METHODS].join('|');
514
+ const names = members.map(escapeRegExp).join('|');
515
+ return new RegExp(`(?<![\\w$.])(${escapeRegExp(ref)})\\s*\\??\\.\\s*(${names})\\b` +
516
+ `(?!\\s*\\()(?!\\s*\\.\\s*(?:${methods})\\b)(?!\\s*=(?!=))`, 'g');
517
+ }
518
+ /**
519
+ * Rewrites `ref.id` reads to calls, only inside the given expression ranges. Restricting the rewrite to
520
+ * expressions is what keeps prose, comments and static attribute values out of it - `id`, `name` and
521
+ * `value` are common enough words that a raw-text pass would hit all of them.
522
+ */
523
+ function rewriteRefReads(template, refs, expressions) {
524
+ const edits = [];
525
+ for (const { start, end } of expressions) {
526
+ const source = template.slice(start, end);
527
+ for (const ref of refs) {
528
+ if (start < ref.start || end > ref.end)
529
+ continue;
530
+ for (const match of source.matchAll(memberAccessPattern(ref.name, migrations_codeBlockSignals_data.SIGNAL_MEMBERS))) {
531
+ const at = start + match.index + match[0].length;
532
+ edits.push({ start: at, end: at, text: '()' });
533
+ }
534
+ }
535
+ }
536
+ return edits.length > 0
537
+ ? { content: applyEdits(template, edits), changed: true }
538
+ : { content: template, changed: false };
539
+ }
540
+ /** Protected members read through a code block reference variable, which no template can keep reading. */
541
+ function collectRefHiddenMembers(template, refs, expressions) {
542
+ const found = new Set();
543
+ for (const { start, end } of expressions) {
544
+ const source = template.slice(start, end);
545
+ for (const ref of refs) {
546
+ if (start < ref.start || end > ref.end)
547
+ continue;
548
+ const pattern = new RegExp(`(?<![\\w$.])${escapeRegExp(ref.name)}\\s*\\??\\.\\s*(${migrations_codeBlockSignals_data.PLUMBING_MEMBERS.map(escapeRegExp).join('|')})\\b`, 'g');
549
+ for (const match of source.matchAll(pattern)) {
550
+ found.add(match[1]);
551
+ }
552
+ }
553
+ }
554
+ return found;
555
+ }
556
+ const untouched = (template) => ({
557
+ content: template,
558
+ changed: false,
559
+ hidden: new Set(),
560
+ unparseable: false
561
+ });
562
+ /** Pass B (core) — parse a template, discover code block refs, rewrite their signal reads. */
563
+ async function migrateTemplate(template) {
564
+ if (!template.includes(migrations_codeBlockSignals_data.CODE_BLOCK_ELEMENT))
565
+ return untouched(template);
566
+ const parsed = await utils_typescript.parseTemplate(template);
567
+ if (!parsed.tree)
568
+ return { ...untouched(template), unparseable: true };
569
+ const scanner = new TemplateScanner(template);
570
+ utils_ast.visitAll(scanner, parsed.tree.rootNodes);
571
+ // A ref whose name is also introduced by a `@for`, an `@let` or a foreign `#ref` is ambiguous: the
572
+ // reads could belong to either, so neither is rewritten.
573
+ const refs = scanner.codeBlockRefs.filter((ref) => !scanner.otherNames.has(ref.name));
574
+ if (refs.length === 0)
575
+ return untouched(template);
576
+ return {
577
+ ...rewriteRefReads(template, refs, scanner.expressions),
578
+ hidden: collectRefHiddenMembers(template, refs, scanner.expressions),
579
+ unparseable: false
580
+ };
581
+ }
582
+ /** Pass B (inline) — rewrite code block ref reads inside inline component templates. */
583
+ async function migrateInlineTemplates(content, fileName) {
584
+ const hidden = new Set();
585
+ // Parsing the file to find inline templates is the expensive half, and most consumers have none.
586
+ if (!content.includes(migrations_codeBlockSignals_data.CODE_BLOCK_ELEMENT))
587
+ return { content, hidden, unparseable: false };
588
+ const sourceFile = ts.createSourceFile(fileName, content, ts.ScriptTarget.Latest, true, ts.ScriptKind.TS);
589
+ const ranges = utils_typescript.collectInlineTemplateRanges(sourceFile).sort((a, b) => b.start - a.start);
590
+ let result = content;
591
+ let unparseable = false;
592
+ for (const { start, end } of ranges) {
593
+ const outcome = await migrateTemplate(result.slice(start, end));
594
+ for (const member of outcome.hidden)
595
+ hidden.add(member);
596
+ unparseable ||= outcome.unparseable;
597
+ if (outcome.changed) {
598
+ result = result.slice(0, start) + outcome.content + result.slice(end);
599
+ }
600
+ }
601
+ return { content: result, hidden, unparseable };
602
+ }
603
+ /** One report per distinct member and query kind, however many reads a file holds. */
604
+ function dedupe(reads) {
605
+ const seen = new Map();
606
+ for (const read of reads) {
607
+ seen.set(`${read.member}:${read.required}`, read);
608
+ }
609
+ return [...seen.values()];
610
+ }
611
+ /**
612
+ * A `.ts` file is a code block consumer if it names the exported symbol, imports the package, or renders the
613
+ * element in an inline template — a component that only imports `KbqCodeBlockModule` names no type.
614
+ */
615
+ function referencesCodeBlock(content) {
616
+ return (/\bKbqCodeBlock\w*\b/.test(content) ||
617
+ content.includes(migrations_codeBlockSignals_data.CODE_BLOCK_PACKAGE) ||
618
+ content.includes(`<${migrations_codeBlockSignals_data.CODE_BLOCK_ELEMENT}`));
619
+ }
620
+ function codeBlockSignals(options) {
621
+ return async (tree, context) => {
622
+ const { project } = options;
623
+ // `ng update` invokes migrations with no options at all, and migrations.json declares no schema, so
624
+ // the schema default never reaches us — applying the fix is the intended behaviour there.
625
+ const fix = options.fix ?? true;
626
+ const projectDefinition = await utils_packageConfig.setupOptions(project, tree);
627
+ const root = projectDefinition?.root ?? '';
628
+ const rootDir = root ? tree.getDir(root) : tree.root;
629
+ const tsPaths = [];
630
+ const htmlPaths = [];
631
+ utils_projectFiles.visitProjectFiles(rootDir, (filePath) => {
632
+ if (filePath.endsWith(TS_EXT))
633
+ tsPaths.push(filePath);
634
+ else if (filePath.endsWith(HTML_EXT))
635
+ htmlPaths.push(filePath);
636
+ });
637
+ let touched = 0;
638
+ let consumers = 0;
639
+ const commit = (filePath, original, updated) => {
640
+ if (updated === original)
641
+ return;
642
+ touched++;
643
+ if (fix) {
644
+ tree.overwrite(filePath, updated);
645
+ }
646
+ else {
647
+ utils_messages.logMessage(context.logger, [`${LABEL} would update ${filePath} (run with --fix to apply)`]);
648
+ }
649
+ };
650
+ const report = (filePath, message) => utils_messages.logMessage(context.logger, [`${LABEL} ${filePath}`, ` ${message}`]);
651
+ for (const filePath of tsPaths) {
652
+ const original = tree.read(filePath)?.toString();
653
+ if (!original || !referencesCodeBlock(original))
654
+ continue;
655
+ consumers++;
656
+ const pass = migrateTsExpressions(original, filePath);
657
+ if (pass.hidden.size > 0)
658
+ report(filePath, migrations_codeBlockSignals_data.plumbingMessage(pass.hidden));
659
+ if (pass.reported.size > 0)
660
+ report(filePath, migrations_codeBlockSignals_data.reportedMessage(pass.reported));
661
+ if (pass.writes.size > 0)
662
+ report(filePath, migrations_codeBlockSignals_data.writeMessage(pass.writes));
663
+ for (const { member, required } of dedupe(pass.signalQueryReads)) {
664
+ report(filePath, migrations_codeBlockSignals_data.signalQueryMessage(member, required));
665
+ }
666
+ if (pass.unresolved.length > 0) {
667
+ report(filePath, `${migrations_codeBlockSignals_data.UNRESOLVED_RECEIVER_MESSAGE} ${pass.unresolved.join(', ')}.`);
668
+ }
669
+ const inline = await migrateInlineTemplates(pass.content, filePath);
670
+ if (inline.hidden.size > 0)
671
+ report(filePath, migrations_codeBlockSignals_data.plumbingMessage(inline.hidden));
672
+ if (inline.unparseable)
673
+ report(filePath, migrations_codeBlockSignals_data.UNPARSEABLE_TEMPLATE_MESSAGE);
674
+ commit(filePath, original, inline.content);
675
+ }
676
+ for (const filePath of htmlPaths) {
677
+ const original = tree.read(filePath)?.toString();
678
+ // Counted on "renders the code block", matching the `.ts` loop: a project whose only usage is a
679
+ // valueless attribute in an external template still needs the summary.
680
+ if (!original || !original.includes(`<${migrations_codeBlockSignals_data.CODE_BLOCK_ELEMENT}`))
681
+ continue;
682
+ consumers++;
683
+ const outcome = await migrateTemplate(original);
684
+ if (outcome.hidden.size > 0)
685
+ report(filePath, migrations_codeBlockSignals_data.plumbingMessage(outcome.hidden));
686
+ if (outcome.unparseable)
687
+ report(filePath, migrations_codeBlockSignals_data.UNPARSEABLE_TEMPLATE_MESSAGE);
688
+ commit(filePath, original, outcome.content);
689
+ }
690
+ // Nothing here uses the code block, so the summary would only be noise.
691
+ if (consumers === 0)
692
+ return;
693
+ utils_messages.logMessage(context.logger, [
694
+ `${LABEL} processed tree under "${root || '<workspace root>'}", ` +
695
+ `${fix ? 'updated' : 'would update'} ${touched} file(s).`,
696
+ ...migrations_codeBlockSignals_data.SUMMARY
697
+ ]);
698
+ };
699
+ }
700
+
701
+ exports.default = codeBlockSignals;