@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,383 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var ts = require('typescript');
6
+ var utils_messages = require('../../utils/messages.cjs');
7
+ var utils_packageConfig = require('../../utils/package-config.cjs');
8
+ var utils_projectFiles = require('../../utils/project-files.cjs');
9
+ var utils_signalMembersMigration = require('../../utils/signal-members-migration.cjs');
10
+ var utils_templateRefAccess = require('../../utils/template-ref-access.cjs');
11
+ var utils_typescript = require('../../utils/typescript.cjs');
12
+ var migrations_formFieldSignals_data = require('./data.cjs');
13
+ require('@angular-devkit/schematics');
14
+ require('@schematics/angular/utility');
15
+ require('../../utils/ast.cjs');
16
+
17
+ const MIGRATION = 'form-field-signals';
18
+ const TS_EXT = '.ts';
19
+ const HTML_EXT = '.html';
20
+ const STYLE_EXTS = ['.scss', '.css'];
21
+ function escapeRegExp(value) {
22
+ return value.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
23
+ }
24
+ /** Applies text-span edits to `content`, right-to-left, so earlier edits don't shift later offsets. */
25
+ function applyEdits(content, edits) {
26
+ const sorted = [...edits].sort((a, b) => b.start - a.start || b.end - a.end);
27
+ let result = content;
28
+ for (const { start, end, text } of sorted) {
29
+ result = result.slice(0, start) + text + result.slice(end);
30
+ }
31
+ return result;
32
+ }
33
+ /**
34
+ * Whether a property access reads from a receiver of the target. The shared engine resolves the receiver at
35
+ * this exact position, so a nested declaration that shadows its name or a `function` that rebinds `this` is
36
+ * not followed. A signal query (`viewChild(KbqSelect)`) holds the instance behind a call of its own, which
37
+ * this pass does not reach.
38
+ */
39
+ function onReceiver(node, sourceFile, scope) {
40
+ const receiver = utils_signalMembersMigration.resolveReceiver(node.expression, node, sourceFile, scope.receivers, scope.bindings);
41
+ return !!receiver && !receiver.signalQuery;
42
+ }
43
+ /** Collects edits for every read/write of a migrated member on a known receiver of `target`. */
44
+ function collectAccessEdits(sourceFile, target, scope) {
45
+ const edits = [];
46
+ const visit = (node) => {
47
+ if (ts.isPropertyAccessExpression(node) &&
48
+ ts.isIdentifier(node.name) &&
49
+ target.signalMembers.includes(node.name.text) &&
50
+ onReceiver(node, sourceFile, scope)) {
51
+ utils_signalMembersMigration.classifyAccess(node, sourceFile, target.writableMembers, edits);
52
+ }
53
+ node.forEachChild(visit);
54
+ };
55
+ visit(sourceFile);
56
+ return edits;
57
+ }
58
+ const emptyWarnings = () => ({
59
+ queryListApi: new Set(),
60
+ nullability: new Set(),
61
+ readOnlyInputWrites: new Set(),
62
+ readOnlyQueryWrites: new Set(),
63
+ readOnlyStateWrites: new Set(),
64
+ writableWrites: new Set(),
65
+ removed: new Set()
66
+ });
67
+ /** Collects the members that the auto-fix can't fully migrate for one target. */
68
+ function collectReceiverWarnings(sourceFile, target, scope) {
69
+ const warnings = emptyWarnings();
70
+ const visit = (node) => {
71
+ if (ts.isPropertyAccessExpression(node) && ts.isIdentifier(node.name)) {
72
+ const name = node.name.text;
73
+ const reachesReceiver = onReceiver(node, sourceFile, scope);
74
+ if (reachesReceiver && migrations_formFieldSignals_data.NULLABILITY_CHANGED_MEMBERS.includes(name)) {
75
+ warnings.nullability.add(name);
76
+ }
77
+ if (reachesReceiver && target.removedMembers?.includes(name)) {
78
+ warnings.removed.add(name);
79
+ }
80
+ // `target.signalMembers` scopes the flat name lists to the members this receiver actually owns.
81
+ if (reachesReceiver && target.signalMembers.includes(name) && utils_signalMembersMigration.isWriteTarget(node)) {
82
+ if (target.writableMembers.has(name)) {
83
+ if (!utils_signalMembersMigration.isPlainAssignment(node))
84
+ warnings.writableWrites.add(name);
85
+ }
86
+ else if (migrations_formFieldSignals_data.READ_ONLY_INPUT_MEMBERS.includes(name)) {
87
+ warnings.readOnlyInputWrites.add(name);
88
+ }
89
+ else if (migrations_formFieldSignals_data.READ_ONLY_QUERY_MEMBERS.includes(name)) {
90
+ warnings.readOnlyQueryWrites.add(name);
91
+ }
92
+ else if (migrations_formFieldSignals_data.READ_ONLY_STATE_MEMBERS.includes(name)) {
93
+ warnings.readOnlyStateWrites.add(name);
94
+ }
95
+ }
96
+ // `formField.hint.changes` — the query member is migrated, the QueryList API below it is not.
97
+ if (migrations_formFieldSignals_data.QUERY_LIST_ONLY_API.includes(name) &&
98
+ ts.isPropertyAccessExpression(node.expression) &&
99
+ ts.isIdentifier(node.expression.name) &&
100
+ migrations_formFieldSignals_data.QUERY_LIST_MEMBERS.includes(node.expression.name.text) &&
101
+ onReceiver(node.expression, sourceFile, scope)) {
102
+ warnings.queryListApi.add(`${node.expression.name.text}.${name}`);
103
+ }
104
+ }
105
+ node.forEachChild(visit);
106
+ };
107
+ visit(sourceFile);
108
+ return warnings;
109
+ }
110
+ /** The members of a file's receivers that can't be auto-fixed, across every target. */
111
+ function collectFileWarnings(filePath, content) {
112
+ const sourceFile = ts.createSourceFile(filePath, content, ts.ScriptTarget.Latest, true, ts.ScriptKind.TS);
113
+ const bindings = utils_signalMembersMigration.collectBindings(sourceFile);
114
+ const merged = emptyWarnings();
115
+ for (const target of migrations_formFieldSignals_data.TARGETS) {
116
+ const receivers = utils_signalMembersMigration.collectAllReceivers(sourceFile, target.types);
117
+ if (receivers.length === 0)
118
+ continue;
119
+ const warnings = collectReceiverWarnings(sourceFile, target, { receivers, bindings });
120
+ warnings.queryListApi.forEach((value) => merged.queryListApi.add(value));
121
+ warnings.nullability.forEach((value) => merged.nullability.add(value));
122
+ warnings.readOnlyInputWrites.forEach((value) => merged.readOnlyInputWrites.add(value));
123
+ warnings.readOnlyQueryWrites.forEach((value) => merged.readOnlyQueryWrites.add(value));
124
+ warnings.readOnlyStateWrites.forEach((value) => merged.readOnlyStateWrites.add(value));
125
+ warnings.writableWrites.forEach((value) => merged.writableWrites.add(value));
126
+ warnings.removed.forEach((value) => merged.removed.add(value));
127
+ }
128
+ return merged;
129
+ }
130
+ const emptyTemplateFindings = () => ({
131
+ readOnlyWrites: new Set(),
132
+ compoundWrites: new Set(),
133
+ removed: new Set()
134
+ });
135
+ /** Merges the findings of one template into `into`. */
136
+ function mergeTemplateFindings(into, from) {
137
+ from.readOnlyWrites.forEach((member) => into.readOnlyWrites.add(member));
138
+ from.compoundWrites.forEach((member) => into.compoundWrites.add(member));
139
+ from.removed.forEach((member) => into.removed.add(member));
140
+ }
141
+ /** Adds the members a template reaches through a reference variable to the warnings. */
142
+ function addTemplateFindings(warnings, findings) {
143
+ for (const name of findings.readOnlyWrites) {
144
+ if (migrations_formFieldSignals_data.READ_ONLY_INPUT_MEMBERS.includes(name))
145
+ warnings.readOnlyInputWrites.add(name);
146
+ else if (migrations_formFieldSignals_data.READ_ONLY_QUERY_MEMBERS.includes(name))
147
+ warnings.readOnlyQueryWrites.add(name);
148
+ else if (migrations_formFieldSignals_data.READ_ONLY_STATE_MEMBERS.includes(name))
149
+ warnings.readOnlyStateWrites.add(name);
150
+ }
151
+ findings.compoundWrites.forEach((member) => warnings.writableWrites.add(member));
152
+ findings.removed.forEach((member) => warnings.removed.add(member));
153
+ return warnings;
154
+ }
155
+ /** Emits precise, receiver-scoped warnings for the members that can't be auto-fixed. */
156
+ function logReceiverWarnings(context, filePath, merged) {
157
+ if (merged.queryListApi.size > 0) {
158
+ utils_messages.logMessage(context.logger, [
159
+ `[${MIGRATION}] ${filePath}`,
160
+ ` These KbqFormField members are now a readonly array instead of a QueryList, so the QueryList API is`,
161
+ ` gone: ${[...merged.queryListApi].join(', ')}. The queries are signals — react to them with`,
162
+ ` \`computed()\`/\`effect()\` instead of \`.changes\`, and use \`[0]\`/\`.at(-1)\`/the array itself instead`,
163
+ ` of \`.first\`/\`.last\`/\`.toArray()\`.`
164
+ ]);
165
+ }
166
+ if (merged.nullability.size > 0) {
167
+ utils_messages.logMessage(context.logger, [
168
+ `[${MIGRATION}] ${filePath}`,
169
+ ` \`${[...merged.nullability].join('`, `')}\` now returns \`undefined\` instead of \`null\` when absent.`,
170
+ ` Strict comparisons against \`null\` no longer match — use a truthiness check or \`== null\`.`
171
+ ]);
172
+ }
173
+ if (merged.readOnlyInputWrites.size > 0) {
174
+ utils_messages.logMessage(context.logger, [
175
+ `[${MIGRATION}] ${filePath}`,
176
+ ` \`${[...merged.readOnlyInputWrites].join('`, `')}\` can no longer be assigned: they are read-only`,
177
+ ` signal inputs now. Drive them with a template binding (e.g. \`[fillTextOff]="…"\`) instead of an`,
178
+ ` assignment.`
179
+ ]);
180
+ }
181
+ if (merged.readOnlyQueryWrites.size > 0) {
182
+ utils_messages.logMessage(context.logger, [
183
+ `[${MIGRATION}] ${filePath}`,
184
+ ` \`${[...merged.readOnlyQueryWrites].join('`, `')}\` can no longer be assigned: they are read-only`,
185
+ ` signal content queries now. Project the content into the form field instead — code that assigned a`,
186
+ ` query result (usually a test faking the projected content) has to render the real component.`
187
+ ]);
188
+ }
189
+ if (merged.readOnlyStateWrites.size > 0) {
190
+ utils_messages.logMessage(context.logger, [`[${MIGRATION}] ${filePath}`, ` ${migrations_formFieldSignals_data.READ_ONLY_STATE_MESSAGE}`]);
191
+ }
192
+ if (merged.removed.size > 0) {
193
+ utils_messages.logMessage(context.logger, [`[${MIGRATION}] ${filePath}`, ` ${migrations_formFieldSignals_data.REMOVED_MEMBERS_MESSAGE}`]);
194
+ }
195
+ if (merged.writableWrites.size > 0) {
196
+ utils_messages.logMessage(context.logger, [
197
+ `[${MIGRATION}] ${filePath}`,
198
+ ` \`${[...merged.writableWrites].join('`, `')}\` are writable signals now, but only a plain \`=\` is`,
199
+ ` rewritten to \`.set()\`: a compound assignment, an increment, \`delete\` or a destructuring target`,
200
+ ` was left as it is. Write it with \`.set()\` or \`.update()\`.`
201
+ ]);
202
+ }
203
+ }
204
+ /** Pass A — rewrite value-safe programmatic reads of migrated members in TypeScript code. */
205
+ function migrateTsExpressions(content, fileName) {
206
+ let result = content;
207
+ // One target at a time, re-parsing in between, so the edit offsets of each pass stay valid.
208
+ for (const target of migrations_formFieldSignals_data.TARGETS) {
209
+ const sourceFile = ts.createSourceFile(fileName, result, ts.ScriptTarget.Latest, true, ts.ScriptKind.TS);
210
+ const receivers = utils_signalMembersMigration.collectAllReceivers(sourceFile, target.types);
211
+ if (receivers.length === 0)
212
+ continue;
213
+ const edits = collectAccessEdits(sourceFile, target, { receivers, bindings: utils_signalMembersMigration.collectBindings(sourceFile) });
214
+ if (edits.length > 0)
215
+ result = applyEdits(result, edits);
216
+ }
217
+ return result;
218
+ }
219
+ /** Rewrites renamed attributes inside the opening tag of the elements that own them. */
220
+ function rewriteAttributes(template) {
221
+ let content = template;
222
+ for (const { element, from, to } of migrations_formFieldSignals_data.attributeRewrites) {
223
+ const tagPattern = new RegExp(`<${escapeRegExp(element)}\\b[^>]*>`, 'g');
224
+ content = content.replace(tagPattern, (tag) => {
225
+ const attrPattern = new RegExp(`(\\s)${escapeRegExp(from)}(\\s*=)`, 'g');
226
+ return tag.replace(attrPattern, `$1${to}$2`);
227
+ });
228
+ }
229
+ return content;
230
+ }
231
+ /**
232
+ * Whether a `#ref` with `value` on an `element` names `target`: bare or naming the `exportAs` on one of its elements,
233
+ * or naming one of its directive `exportAs` names on any element.
234
+ */
235
+ function refersTo({ elements, exportAs = [] }, element, value) {
236
+ if (Object.hasOwn(elements, element) && (!value || value === elements[element]))
237
+ return true;
238
+ return !!value && exportAs.includes(value);
239
+ }
240
+ /**
241
+ * Pass B (core) — parse a template, discover target refs, rewrite their reads, writes and renamed attributes, and
242
+ * find the removed members they reach.
243
+ */
244
+ async function migrateTemplate(template) {
245
+ let content = rewriteAttributes(template);
246
+ const findings = emptyTemplateFindings();
247
+ const relevant = migrations_formFieldSignals_data.TARGETS.filter((target) => Object.keys(target.elements).some((element) => template.includes(element)) ||
248
+ target.exportAs?.some((exportAs) => template.includes(exportAs)));
249
+ if (relevant.length > 0) {
250
+ const parsed = await utils_typescript.parseTemplate(content);
251
+ if (parsed.tree) {
252
+ const { rootNodes } = parsed.tree;
253
+ const policies = new Map(relevant.map((target) => [
254
+ target,
255
+ {
256
+ members: target.signalMembers,
257
+ writable: target.writableMembers,
258
+ reported: target.removedMembers
259
+ }
260
+ ]));
261
+ const result = utils_templateRefAccess.rewriteRefAccesses(content, rootNodes, (element, value) => {
262
+ const target = relevant.find((candidate) => refersTo(candidate, element.name, value));
263
+ return target && policies.get(target);
264
+ });
265
+ content = result.content;
266
+ result.readOnlyWrites.forEach((member) => findings.readOnlyWrites.add(member));
267
+ result.compoundWrites.forEach((member) => findings.compoundWrites.add(member));
268
+ result.reported.forEach((member) => findings.removed.add(member));
269
+ }
270
+ }
271
+ return { content, changed: content !== template, ...findings };
272
+ }
273
+ /** Pass B (inline) — rewrite target ref reads and writes inside inline component templates. */
274
+ async function migrateInlineTemplates(content, fileName) {
275
+ const sourceFile = ts.createSourceFile(fileName, content, ts.ScriptTarget.Latest, true, ts.ScriptKind.TS);
276
+ const ranges = utils_typescript.collectInlineTemplateRanges(sourceFile).sort((a, b) => b.start - a.start);
277
+ const findings = emptyTemplateFindings();
278
+ let result = content;
279
+ for (const { start, end } of ranges) {
280
+ const outcome = await migrateTemplate(result.slice(start, end));
281
+ mergeTemplateFindings(findings, outcome);
282
+ if (outcome.changed) {
283
+ result = result.slice(0, start) + outcome.content + result.slice(end);
284
+ }
285
+ }
286
+ return { content: result, ...findings };
287
+ }
288
+ /** Pass C — the misspelled `_fiedset-theme.scss` was renamed. */
289
+ function migrateStyles(content) {
290
+ let result = content;
291
+ for (const { from, to } of migrations_formFieldSignals_data.styleRewrites) {
292
+ result = result.split(from).join(to);
293
+ }
294
+ return result;
295
+ }
296
+ function logWarnings(context, filePath, content) {
297
+ for (const { pattern, message } of migrations_formFieldSignals_data.warnPatterns) {
298
+ if (new RegExp(pattern).test(content)) {
299
+ utils_messages.logMessage(context.logger, [`[${MIGRATION}] ${filePath}`, ` ${message}`]);
300
+ }
301
+ }
302
+ }
303
+ /**
304
+ * A file is a form-field consumer if it names one of the migrated symbols, imports the package, renders a
305
+ * control or names the `exportAs` of a directive one: a component that imports only `KbqInputModule` names no type.
306
+ */
307
+ function referencesFormField(content) {
308
+ return (migrations_formFieldSignals_data.TARGETS.some((target) => target.exportAs?.some((name) => content.includes(name))) ||
309
+ /\bKbq(FormField|Hint|Error|ReactivePasswordHint|Cleaner|PasswordToggle|Stepper|Trim|A11yLocaleConfiguration)\b/.test(content) ||
310
+ /\b(mixinColor|CanColorCtor|KBQ_FORM_FIELD_REF|kbqA11yLocaleConfigurationProvider)\b/.test(content) ||
311
+ /\bKbq(Select|TreeSelect|TimezoneSelect|TagList|TagInput|Input|InputPassword|Textarea|Timepicker|DatepickerInput|FormFieldControl|ErrorStateTracker|IconErrorStateContext)\b/.test(content) ||
312
+ /\b(mixinErrorState|CanUpdateErrorState|CanUpdateErrorStateCtor|kbqIconErrorStateContextFactoryProvider)\b/.test(content) ||
313
+ content.includes('@koobiq/components/form-field') ||
314
+ content.includes('kbq-form-field') ||
315
+ content.includes('kbq-cleaner') ||
316
+ /<kbq-(select|tree-select|timezone-select|tag-list)\b/.test(content));
317
+ }
318
+ function formFieldSignals(options) {
319
+ return async (tree, context) => {
320
+ const { project } = options;
321
+ // `ng update` invokes migrations with no options at all, and migrations.json declares no schema, so the
322
+ // schema default never reaches us — applying the fix is the intended behaviour there.
323
+ const fix = options.fix ?? true;
324
+ const projectDefinition = await utils_packageConfig.setupOptions(project, tree);
325
+ const root = projectDefinition?.root ?? '';
326
+ const rootDir = root ? tree.getDir(root) : tree.root;
327
+ const tsPaths = [];
328
+ const htmlPaths = [];
329
+ const stylePaths = [];
330
+ utils_projectFiles.visitProjectFiles(rootDir, (filePath) => {
331
+ if (filePath.endsWith(TS_EXT))
332
+ tsPaths.push(filePath);
333
+ else if (filePath.endsWith(HTML_EXT))
334
+ htmlPaths.push(filePath);
335
+ else if (STYLE_EXTS.some((ext) => filePath.endsWith(ext)))
336
+ stylePaths.push(filePath);
337
+ });
338
+ let touched = 0;
339
+ const commit = (filePath, original, updated) => {
340
+ if (updated === original)
341
+ return;
342
+ touched++;
343
+ if (fix) {
344
+ tree.overwrite(filePath, updated);
345
+ }
346
+ else {
347
+ utils_messages.logMessage(context.logger, [`[${MIGRATION}] would update ${filePath} (run with --fix to apply)`]);
348
+ }
349
+ };
350
+ for (const filePath of tsPaths) {
351
+ const original = tree.read(filePath)?.toString();
352
+ if (!original || !referencesFormField(original))
353
+ continue;
354
+ logWarnings(context, filePath, original);
355
+ const warnings = collectFileWarnings(filePath, original);
356
+ const inline = await migrateInlineTemplates(migrateTsExpressions(original, filePath), filePath);
357
+ logReceiverWarnings(context, filePath, addTemplateFindings(warnings, inline));
358
+ commit(filePath, original, inline.content);
359
+ }
360
+ for (const filePath of htmlPaths) {
361
+ const original = tree.read(filePath)?.toString();
362
+ if (!original)
363
+ continue;
364
+ logWarnings(context, filePath, original);
365
+ const outcome = await migrateTemplate(original);
366
+ logReceiverWarnings(context, filePath, addTemplateFindings(emptyWarnings(), outcome));
367
+ if (outcome.changed)
368
+ commit(filePath, original, outcome.content);
369
+ }
370
+ for (const filePath of stylePaths) {
371
+ const original = tree.read(filePath)?.toString();
372
+ if (!original)
373
+ continue;
374
+ commit(filePath, original, migrateStyles(original));
375
+ }
376
+ utils_messages.logMessage(context.logger, [
377
+ `[${MIGRATION}] processed tree under "${root || '<workspace root>'}", ` +
378
+ `${fix ? 'updated' : 'would update'} ${touched} file(s).`
379
+ ]);
380
+ };
381
+ }
382
+
383
+ exports.default = formFieldSignals;
@@ -0,0 +1,20 @@
1
+ {
2
+ "$schema": "http://json-schema.org/schema",
3
+ "$id": "koobiq-components-form-field-signals",
4
+ "title": "Koobiq components form field signals migration",
5
+ "type": "object",
6
+ "properties": {
7
+ "project": {
8
+ "type": "string",
9
+ "description": "Name of the project to migrate. If omitted, the migration runs over the whole tree.",
10
+ "$default": {
11
+ "$source": "projectName"
12
+ }
13
+ },
14
+ "fix": {
15
+ "type": "boolean",
16
+ "default": true,
17
+ "description": "When true, applies all auto-fix replacements. When false, prints what would change without writing."
18
+ }
19
+ }
20
+ }
@@ -0,0 +1,65 @@
1
+ # icon-semantics-and-api
2
+
3
+ Migration schematic invoked automatically by `ng update @koobiq/components@21`
4
+ (registered for `21.0.0-0`). Reports the icon call sites the review reaches. It never writes to the
5
+ tree.
6
+
7
+ ## Background
8
+
9
+ The review gave the three components the semantics they never had, and closed the members that only
10
+ recorded an internal decision.
11
+
12
+ | Change | Before | After |
13
+ | ------------------------------------- | ------------------------- | -------------------------------------------------------- |
14
+ | `<i kbq-icon>`, `<i kbq-icon-item>` | in the accessibility tree | `aria-hidden="true"` by default |
15
+ | `kbq-icon-button` on a non-`<button>` | focusable, no semantics | `role="button"`, `aria-disabled`; no keyboard activation |
16
+ | `KbqIcon.small` | published input | removed |
17
+ | `KbqIcon.name` | `'KbqIcon'` string | `appliesMaxHeight` boolean |
18
+ | `KbqIconButton.tabindex` | `any` | `number \| null` |
19
+ | `iconName` | `string` | `string \| undefined` |
20
+
21
+ `aria-hidden` deserves a note. An icon carries no text, and in nearly every place the library and its
22
+ consumers use one it repeats a label that is already in the button, the link or the row beside it —
23
+ so hidden is the right default and the hand-written `aria-hidden="true"` attributes on icons became
24
+ redundant. An icon that is the only carrier of its meaning has to say so:
25
+
26
+ ```html
27
+ <i kbq-icon="kbq-triangle-exclamation_16" role="img" aria-hidden="false" aria-label="Error"></i>
28
+ ```
29
+
30
+ ## What it does _not_ do
31
+
32
+ Nothing is rewritten. Whether an icon is decorative and what an icon button should be called are both
33
+ decisions the schematic cannot make. `small` on an icon button is rewritten to `size` by `v21-upgrade`,
34
+ which also reports the uses it leaves, so this migration does not report it.
35
+
36
+ | Pattern | Manual migration |
37
+ | -------------------------------------------------- | ------------------------------------------------------------------- |
38
+ | `small` on a `[kbq-icon]` or a `[kbq-icon-item]` | Drop it — nothing ever read it |
39
+ | `(click)` and no `(keydown…)` on a non-button host | Bind `(keydown.enter)` and `(keydown.space)`, or use a `<button>` |
40
+ | `tabindex` on an icon button, or written in code | Pass a number (a numeric string is still transformed in a template) |
41
+ | `override name` in a `KbqIcon` subclass | Override the protected `appliesMaxHeight` instead |
42
+
43
+ ## Notes with no call site to point at
44
+
45
+ - The SVG resolution no longer stops on the first name that does not resolve — which the documented
46
+ font-icon default guarantees on the very first frame. A stale `<svg>` is removed on the fallback
47
+ path and the inline `max-height` is cleared as well as set, so an element whose `[kbq-icon]` changes
48
+ renders the icon it was asked for at the size it was asked for.
49
+ - `autoColor` takes effect when it is turned on after init and lets go of the error color when it is
50
+ turned off.
51
+ - The `--kbq-icon-*-color` tokens are no longer declared on `.kbq-icon`; they are consumed with their
52
+ design token as the `var()` fallback, so a container can re-theme the icons inside it. A declaration
53
+ on `.kbq-icon` sat on the element the value is used on and beat everything inherited. Reading one
54
+ back with `getComputedStyle` now returns an empty string.
55
+ - `KbqIconRegistry` looks sprite symbols up by id rather than through a `'#' + name` selector that a
56
+ name starting with a digit made invalid.
57
+ - `kbqIconsDictProvider` maps names to URLs. Its `<`-prefixed inline branch is passed through
58
+ Angular's HTML sanitizer, which drops `<svg>` wholesale; register inline icons through
59
+ `KbqIconRegistry.addSvgIconLiteral()` with `bypassSecurityTrustHtml` instead.
60
+
61
+ ## Running it manually
62
+
63
+ ```bash
64
+ ng g @koobiq/components:icon-semantics-and-api --project "<your project>"
65
+ ```
@@ -0,0 +1,97 @@
1
+ 'use strict';
2
+
3
+ var utils_tagPatterns = require('../../utils/tag-patterns.cjs');
4
+
5
+ /**
6
+ * Data for the `icon-semantics-and-api` migration.
7
+ *
8
+ * The icon review gave the three components the semantics they never had and closed the members that
9
+ * only documented an internal decision:
10
+ *
11
+ * - `<i kbq-icon>` renders `aria-hidden="true"` by default. A meaningful icon opts out with
12
+ * `aria-hidden="false"` and then supplies its own `role="img"` and `aria-label`.
13
+ * - `kbq-icon-button` on anything but a native `<button>` gets `role="button"` and `aria-disabled`, and
14
+ * warns in dev mode when it has no accessible name. It does not activate itself from the keyboard.
15
+ * - `KbqIcon.small` is removed — it was published but read by nothing.
16
+ * - `KbqIcon.name`, the string that stood in for an `instanceof`, is replaced by the protected
17
+ * `appliesMaxHeight` flag.
18
+ * - `KbqIconButton.tabindex` is `number | null` instead of `any`, and `iconName` is `string | undefined`.
19
+ *
20
+ * Warn-only. Whether an icon is decorative and what an icon button should be called are both decisions
21
+ * the schematic cannot make. `small` on an icon button is `v21-upgrade`'s: it rewrites it to `size`.
22
+ */
23
+ /** Import specifier that marks a file as an icon consumer. */
24
+ const ICON_PACKAGE = '@koobiq/components/icon';
25
+ /** Identifier and attribute shapes that mark a consumer without an import. */
26
+ const ICON_TYPE = String.raw `\bKbqIcon\w*\b|\bkbq-icon(?:-button|-item)?\b`;
27
+ const ICON_OR_ITEM_ATTRIBUTE = String.raw `[\s\[]kbq-icon(?:-item)?(?![\w-])`;
28
+ const ICON_BUTTON_ATTRIBUTE = String.raw `[\s\[]kbq-icon-button(?![\w-])`;
29
+ /** An opening tag that carries `attribute`, read up to the point the rest of the pattern continues from. */
30
+ const tagWith = (attribute) => String.raw `<[a-zA-Z][\w-]*(?=${utils_tagPatterns.TAG_BODY}*${attribute})${utils_tagPatterns.TAG_BODY}*`;
31
+ const warnPatterns = [
32
+ {
33
+ // A plain icon or an icon item only: `small` on an icon button is rewritten by `v21-upgrade`.
34
+ anchor: ICON_OR_ITEM_ATTRIBUTE,
35
+ pattern: String.raw `${tagWith(ICON_OR_ITEM_ATTRIBUTE)}[\s\[]small[\]\s=/>]`,
36
+ message: 'KbqIcon.small was removed, and with it the input KbqIconItem inherited. It was published but read ' +
37
+ 'by nothing — not by the host block, not by icon.scss, not by _icon-theme.scss — so dropping the ' +
38
+ 'binding from a [kbq-icon] or a [kbq-icon-item] changes nothing.'
39
+ },
40
+ {
41
+ // A host the browser does not activate from the keyboard on its own: not a <button>, an <input> or an <a>.
42
+ anchor: ICON_BUTTON_ATTRIBUTE,
43
+ pattern: String.raw `<(?!(?:button|input|a)(?![\w-]))[a-zA-Z][\w-]*(?=${utils_tagPatterns.TAG_BODY}*${ICON_BUTTON_ATTRIBUTE})` +
44
+ String.raw `(?=${utils_tagPatterns.TAG_BODY}*\s\(click\))(?!${utils_tagPatterns.TAG_BODY}*\s\(keydown)`,
45
+ message: 'kbq-icon-button on a host that is not a native <button> is announced as a button now — ' +
46
+ 'role="button" and aria-disabled — but it does not activate itself from Enter or Space, and this ' +
47
+ 'one handles (click) only. Bind (keydown.enter) and (keydown.space) to the same handler, calling ' +
48
+ 'preventDefault() on Space so the page does not scroll, or put the icon button on a <button>.'
49
+ },
50
+ {
51
+ anchor: ICON_BUTTON_ATTRIBUTE,
52
+ pattern: String.raw `${tagWith(ICON_BUTTON_ATTRIBUTE)}[\s\[]tabindex[\]\s=/>]`,
53
+ message: 'KbqIconButton.tabindex is number | null instead of any. A template binding still takes a number ' +
54
+ 'or a numeric string, but a value that does not parse as a number renders no tabindex instead of ' +
55
+ 'tabindex="NaN".'
56
+ },
57
+ {
58
+ anchor: String.raw `\bKbqIconButton\b`,
59
+ pattern: String.raw `\.tabindex\s*=(?!=)`,
60
+ message: 'KbqIconButton.tabindex is number | null instead of any: code that writes anything else to it no ' +
61
+ 'longer type-checks.'
62
+ },
63
+ {
64
+ anchor: String.raw `\bKbqIcon\w*\b`,
65
+ // Only the `override` form. `.name` is far too common a property — `file.name`, `error.name`,
66
+ // `control.name` — and the anchor is any KbqIcon identifier in the file, so matching a bare
67
+ // member access reported the marker for code that never had anything to do with it.
68
+ pattern: String.raw `\boverride\s+name\s*(?:=(?!=)|[:;])`,
69
+ message: 'KbqIcon.name — the protected string that stood in for an instanceof and decided whether the ' +
70
+ 'inline max-height is written — is replaced by the protected `appliesMaxHeight` boolean, which ' +
71
+ 'a subclass overrides. Nothing outside the hierarchy could read it.'
72
+ }
73
+ ];
74
+ /** Printed once per project, after the per-file reports. */
75
+ const SUMMARY = [
76
+ ' <i kbq-icon> and <i kbq-icon-item> are aria-hidden="true" by default. That is right where the icon ' +
77
+ 'repeats a label that is already there; an icon that carries meaning on its own needs ' +
78
+ 'aria-hidden="false" plus role="img" and an aria-label. kbq-icon-button is not hidden by default.',
79
+ ' kbq-icon-button warns in dev mode when it has neither aria-label nor aria-labelledby: it renders ' +
80
+ 'a glyph and has no accessible name at all without one (AXE button-name). On a host that is not a ' +
81
+ 'native <button> it adds role="button" and aria-disabled, and leaves Enter and Space to the consumer.',
82
+ ' The --kbq-icon-*-color tokens are no longer declared on .kbq-icon. They are consumed with their ' +
83
+ 'design token as the var() fallback instead, so a container can finally re-theme the icons inside ' +
84
+ 'it — a declaration on .kbq-icon sat on the element the value is used on and beat everything ' +
85
+ 'inherited. Reading one back with getComputedStyle now returns an empty string.',
86
+ ' The SVG resolution no longer dies on the first name that does not resolve, which the default ' +
87
+ 'font-icon setup guarantees. A stale <svg> is removed on the fallback path and the inline ' +
88
+ 'max-height is cleared as well as set, so an element whose [kbq-icon] changes renders the icon it ' +
89
+ 'was asked for.',
90
+ ' KbqIconRegistry looks sprite symbols up by id rather than through a "#" + name selector that a ' +
91
+ 'name starting with a digit made invalid.'
92
+ ];
93
+
94
+ exports.ICON_PACKAGE = ICON_PACKAGE;
95
+ exports.ICON_TYPE = ICON_TYPE;
96
+ exports.SUMMARY = SUMMARY;
97
+ exports.warnPatterns = warnPatterns;
@@ -0,0 +1,65 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var utils_messages = require('../../utils/messages.cjs');
6
+ var utils_packageConfig = require('../../utils/package-config.cjs');
7
+ var utils_projectFiles = require('../../utils/project-files.cjs');
8
+ var migrations_iconSemanticsAndApi_data = require('./data.cjs');
9
+ require('@angular-devkit/schematics');
10
+ require('@schematics/angular/utility');
11
+ require('../../utils/tag-patterns.cjs');
12
+
13
+ const LABEL = '[icon-semantics-and-api]';
14
+ const EXTENSIONS = ['.ts', '.html'];
15
+ // Compiled once rather than per file. None carries the `g` flag, so a shared instance holds no `lastIndex`.
16
+ const ICON_TYPE_REGEX = new RegExp(migrations_iconSemanticsAndApi_data.ICON_TYPE);
17
+ const COMPILED_WARN_PATTERNS = migrations_iconSemanticsAndApi_data.warnPatterns.map(({ anchor, pattern, message }) => ({
18
+ anchor: new RegExp(anchor),
19
+ pattern: new RegExp(pattern),
20
+ message
21
+ }));
22
+ /** A file is an icon consumer if it imports the package, names a component, or renders one. */
23
+ function referencesIcon(content) {
24
+ return content.includes(migrations_iconSemanticsAndApi_data.ICON_PACKAGE) || ICON_TYPE_REGEX.test(content);
25
+ }
26
+ /**
27
+ * Reports the icon call sites the review reaches: the removed `KbqIcon.small`, the icon buttons on a host
28
+ * that is not a native `<button>` that handle a click but no key, the retyped `tabindex` and the replaced
29
+ * `name` marker. Never writes: whether an icon is decorative and what an icon button is called are both
30
+ * decisions.
31
+ */
32
+ function iconSemanticsAndApi(options) {
33
+ return async (tree, context) => {
34
+ const { project } = options;
35
+ const projectDefinition = await utils_packageConfig.setupOptions(project, tree);
36
+ const root = projectDefinition?.root ?? '';
37
+ const rootDir = root ? tree.getDir(root) : tree.root;
38
+ let consumers = 0;
39
+ let reported = 0;
40
+ utils_projectFiles.visitProjectFiles(rootDir, (filePath, entry) => {
41
+ if (!EXTENSIONS.some((extension) => filePath.endsWith(extension)))
42
+ return;
43
+ const content = entry.content.toString();
44
+ if (!content || !referencesIcon(content))
45
+ return;
46
+ consumers++;
47
+ for (const { anchor, pattern, message } of COMPILED_WARN_PATTERNS) {
48
+ if (!anchor.test(content) || !pattern.test(content))
49
+ continue;
50
+ reported++;
51
+ utils_messages.logMessage(context.logger, [`${LABEL} ${filePath}`, ` ${message}`]);
52
+ }
53
+ });
54
+ // Nothing here renders an icon, so the summary would only be noise.
55
+ if (consumers === 0)
56
+ return;
57
+ utils_messages.logMessage(context.logger, [
58
+ `${LABEL} processed icons under "${root || '<workspace root>'}", ` +
59
+ `${consumers} file(s) reference the component, ${reported} call site(s) reported.`,
60
+ ...migrations_iconSemanticsAndApi_data.SUMMARY
61
+ ]);
62
+ };
63
+ }
64
+
65
+ exports.default = iconSemanticsAndApi;
@@ -0,0 +1,15 @@
1
+ {
2
+ "$schema": "http://json-schema.org/schema",
3
+ "$id": "koobiq-components-icon-semantics-and-api",
4
+ "title": "Koobiq components icon review migration",
5
+ "type": "object",
6
+ "properties": {
7
+ "project": {
8
+ "type": "string",
9
+ "description": "Name of the project to inspect. If omitted, the migration runs over the whole tree.",
10
+ "$default": {
11
+ "$source": "projectName"
12
+ }
13
+ }
14
+ }
15
+ }