@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
@@ -23,18 +23,26 @@ The schematic walks every `.ts` and `.html` file in the project (skipping
23
23
 
24
24
  - **TypeScript reads/writes.** For a receiver whose static type is annotated
25
25
  `KbqFilterBar` / `KbqFilterBarHost` (method/function params, class fields —
26
- including `@ViewChild(KbqFilterBar) x: KbqFilterBar` and constructor
27
- parameter-properties — and typed locals), a read of a signal member becomes a
28
- call and a `filter` write becomes `.set(...)`:
26
+ including `@ViewChild(KbqFilterBar) x: KbqFilterBar`, constructor
27
+ parameter-properties and `inject(KbqFilterBar)` — and typed locals), a read of
28
+ a signal member becomes a call and a plain `filter = …` write becomes
29
+ `.set(...)`:
29
30
  - `filterBar.filter` → `filterBar.filter()` (incl. optional chain `filterBar.filter?.name` → `filterBar.filter()?.name`)
30
31
  - `filterBar.filter = next` → `filterBar.filter.set(next)`
31
32
  - `this.filterBar.isChanged` → `this.filterBar.isChanged()`
32
- - **Template reference reads.** For a `#ref` bound to `<kbq-filter-bar>`, reads
33
+ - **Template references.** For a bare `#ref` on `<kbq-filter-bar>`, reads
33
34
  of signal members through that ref are rewritten in the same template
34
35
  (external `.html` and inline `template:` strings): `ref.isChanged` →
35
- `ref.isChanged()`.
36
- - **Rename.** `KbqFilterBarRefresher` → `KbqFilterRefresher` (the old name is
37
- still re-exported as an alias, so this is optional cleanup).
36
+ `ref.isChanged()`, and in an event binding `ref.filter = saved` →
37
+ `ref.filter.set(saved)`. `KbqFilterBar` has no `exportAs`, so a ref with a
38
+ value (`#ref="ngModel"`) names another directive and is left alone, and so
39
+ is a property chain that only ends in the ref's name
40
+ (`page.filterBar.filter`). Only the expressions of the view that declares
41
+ the ref are looked at — prose, comments and plain attributes are not — and a
42
+ ref whose name a `@for`, `let-`, `*ngFor` or `@let` variable or another
43
+ `#ref` shares is left alone.
44
+ - **Rename.** `KbqFilterBarRefresher` → `KbqFilterRefresher` (the old name
45
+ stayed an alias until 21.0.0).
38
46
 
39
47
  All rewrites are idempotent — running twice does not double the call.
40
48
 
@@ -43,12 +51,14 @@ All rewrites are idempotent — running twice does not double the call.
43
51
  Some changes require code restructuring and are surfaced as warnings without
44
52
  auto-fixing:
45
53
 
46
- | Pattern | Manual migration |
47
- | -------------------------------- | -------------------------------------------------------------------------------------------------- |
48
- | `.changes` (KbqFilterBar) | Deprecated no-op; read `filterBar.filter()` inside an `effect(...)`, or listen to `(filterChange)` |
49
- | `.preparePopover()` (KbqFilters) | Removed; use `openSaveAsNewFilterPopover()` / `openChangeFilterNamePopover()` |
50
- | `viewChild(KbqFilterBar)` query | Returns the instance, so reads are a double call: `this.filterBar().filter()` — verify manually |
51
- | `KBQ_FILTER_BAR_PIPES` | Now typed `Map<KbqPipeType, Type<KbqBasePipe>>`; wrap direct providers in `new Map([...])` |
54
+ | Pattern | Manual migration |
55
+ | -------------------------------- | ---------------------------------------------------------------------------------------------------------------- |
56
+ | `.changes` (KbqFilterBar) | Deprecated no-op; read `filterBar.filter()` inside an `effect(...)`, or listen to `(filterChange)` |
57
+ | `.preparePopover()` (KbqFilters) | Removed; use `openSaveAsNewFilterPopover()` / `openChangeFilterNamePopover()` |
58
+ | `viewChild(KbqFilterBar)` query | Returns the instance, so reads are a double call: `this.filterBar().filter()` — verify manually |
59
+ | `KBQ_FILTER_BAR_PIPES` | Now typed `Map<KbqPipeType, Type<KbqBasePipe>>`; wrap direct providers in `new Map([...])` |
60
+ | `filterBar.pipeTemplates = …` | Read-only input, also when written through a template ref; bind `[pipeTemplates]` instead |
61
+ | `filterBar.filter ??= …` | Only a plain `=` becomes `.set()`, in code or through a template ref; write the rest with `.set()` / `.update()` |
52
62
 
53
63
  ## Running it manually
54
64
 
@@ -60,7 +70,8 @@ Pass `--fix=false` to see what would change without writing files.
60
70
 
61
71
  ## Limitations
62
72
 
63
- Receivers are matched by explicit `KbqFilterBar` type annotation only (no
64
- cross-package type inference), so aliased/inferred receivers
73
+ Receivers are matched by an explicit `KbqFilterBar` type annotation or an
74
+ `inject()` initializer (no type inference), so inferred receivers
65
75
  (`const fb = this.filterBar; fb.filter`) are left untouched and covered by the
66
- warnings above. After running, **always inspect the diff** before committing.
76
+ warnings above. A nested declaration that reuses the receiver's name, and
77
+ `this.<field>` inside a `function` that rebinds `this`, are left alone too. After running, **always inspect the diff** before committing.
@@ -31,8 +31,7 @@ const FILTER_BAR_HOST_TYPE = 'KbqFilterBarHost';
31
31
  const FILTER_BAR_ELEMENT = 'kbq-filter-bar';
32
32
  /**
33
33
  * Safe, idempotent identifier renames applied to `.ts` files. The `\b…\b` boundaries make each rule
34
- * idempotent. `KbqFilterBarRefresher` is still re-exported as an alias of `KbqFilterRefresher`, so this
35
- * is optional cleanup that can never break a consumer build.
34
+ * idempotent. The `KbqFilterBarRefresher` alias was removed in 21.0.0.
36
35
  */
37
36
  const tsRenameReplacements = [{ from: '\\bKbqFilterBarRefresher\\b', to: 'KbqFilterRefresher' }];
38
37
  /**
@@ -0,0 +1,225 @@
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_filterBarSignals_data = require('./data.cjs');
13
+ require('@angular-devkit/schematics');
14
+ require('@schematics/angular/utility');
15
+ require('../../utils/ast.cjs');
16
+
17
+ const TS_EXT = '.ts';
18
+ const HTML_EXT = '.html';
19
+ /** Applies text-span edits to `content`, right-to-left, so earlier edits don't shift later offsets. */
20
+ function applyEdits(content, edits) {
21
+ const sorted = [...edits].sort((a, b) => b.start - a.start || b.end - a.end);
22
+ let result = content;
23
+ for (const { start, end, text } of sorted) {
24
+ result = result.slice(0, start) + text + result.slice(end);
25
+ }
26
+ return result;
27
+ }
28
+ /** The `KbqFilterBar` / `KbqFilterBarHost` receivers of a file, typed by annotation or `inject()`. */
29
+ function collectFileReceivers(sourceFile) {
30
+ return {
31
+ receivers: utils_signalMembersMigration.collectAllReceivers(sourceFile, [migrations_filterBarSignals_data.FILTER_BAR_TYPE, migrations_filterBarSignals_data.FILTER_BAR_HOST_TYPE]),
32
+ bindings: utils_signalMembersMigration.collectBindings(sourceFile)
33
+ };
34
+ }
35
+ /**
36
+ * Whether `node` accesses a signal member on a filter-bar receiver. The shared engine resolves the receiver at
37
+ * this exact position, so a nested declaration that shadows its name or a `function` that rebinds `this` is
38
+ * not followed. A signal query holds the instance behind a call of its own, which this pass does not reach.
39
+ */
40
+ function isSignalMemberAccess(node, sourceFile, scope) {
41
+ if (!ts.isPropertyAccessExpression(node) ||
42
+ !ts.isIdentifier(node.name) ||
43
+ !migrations_filterBarSignals_data.SIGNAL_MEMBERS.includes(node.name.text)) {
44
+ return false;
45
+ }
46
+ const receiver = utils_signalMembersMigration.resolveReceiver(node.expression, node, sourceFile, scope.receivers, scope.bindings);
47
+ return !!receiver && !receiver.signalQuery;
48
+ }
49
+ /** Collects edits for every read/write of a signal member on a known filter-bar receiver. */
50
+ function collectAccessEdits(sourceFile, scope) {
51
+ const edits = [];
52
+ const visit = (node) => {
53
+ if (isSignalMemberAccess(node, sourceFile, scope))
54
+ utils_signalMembersMigration.classifyAccess(node, sourceFile, migrations_filterBarSignals_data.WRITABLE_MEMBERS, edits);
55
+ node.forEachChild(visit);
56
+ };
57
+ visit(sourceFile);
58
+ return edits;
59
+ }
60
+ /** Signal members written on a filter-bar receiver in a form the rewrite leaves for the consumer. */
61
+ function collectWrites(sourceFile, scope) {
62
+ const writes = { readOnlyWrites: new Set(), compoundWrites: new Set() };
63
+ const visit = (node) => {
64
+ if (isSignalMemberAccess(node, sourceFile, scope) && utils_signalMembersMigration.isWriteTarget(node)) {
65
+ const name = node.name.text;
66
+ if (!migrations_filterBarSignals_data.WRITABLE_MEMBERS.has(name))
67
+ writes.readOnlyWrites.add(name);
68
+ else if (!utils_signalMembersMigration.isPlainAssignment(node))
69
+ writes.compoundWrites.add(name);
70
+ }
71
+ node.forEachChild(visit);
72
+ };
73
+ visit(sourceFile);
74
+ return writes;
75
+ }
76
+ /** Pass A — rewrite programmatic reads/writes of filter-bar signal members in TypeScript code. */
77
+ function migrateTsExpressions(content, fileName) {
78
+ const sourceFile = ts.createSourceFile(fileName, content, ts.ScriptTarget.Latest, true, ts.ScriptKind.TS);
79
+ const scope = collectFileReceivers(sourceFile);
80
+ if (scope.receivers.length === 0)
81
+ return content;
82
+ const edits = collectAccessEdits(sourceFile, scope);
83
+ return edits.length > 0 ? applyEdits(content, edits) : content;
84
+ }
85
+ /** Merges the writes in `from` into `into`. */
86
+ function mergeWrites(into, from) {
87
+ from.readOnlyWrites.forEach((member) => into.readOnlyWrites.add(member));
88
+ from.compoundWrites.forEach((member) => into.compoundWrites.add(member));
89
+ }
90
+ /** What a reference variable on `<kbq-filter-bar>` reaches. */
91
+ const REF_POLICY = { members: migrations_filterBarSignals_data.SIGNAL_MEMBERS, writable: migrations_filterBarSignals_data.WRITABLE_MEMBERS };
92
+ /** Pass B (core) — parse a template, discover filter-bar refs, rewrite their signal reads and `filter` writes. */
93
+ async function migrateTemplate(template) {
94
+ const untouched = {
95
+ content: template,
96
+ changed: false,
97
+ readOnlyWrites: new Set(),
98
+ compoundWrites: new Set()
99
+ };
100
+ if (!template.includes(migrations_filterBarSignals_data.FILTER_BAR_ELEMENT))
101
+ return untouched;
102
+ const parsed = await utils_typescript.parseTemplate(template);
103
+ if (!parsed.tree)
104
+ return untouched;
105
+ const { rootNodes } = parsed.tree;
106
+ // `KbqFilterBar` has no `exportAs`, so only a bare `#ref` is the filter bar; `#ref="ngModel"` names another
107
+ // directive.
108
+ const { content, readOnlyWrites, compoundWrites } = utils_templateRefAccess.rewriteRefAccesses(template, rootNodes, (element, value) => element.name === migrations_filterBarSignals_data.FILTER_BAR_ELEMENT && !value ? REF_POLICY : undefined);
109
+ return { content, changed: content !== template, readOnlyWrites, compoundWrites };
110
+ }
111
+ /** Pass B (inline) — rewrite filter-bar ref reads inside inline component templates. */
112
+ async function migrateInlineTemplates(content, fileName) {
113
+ const sourceFile = ts.createSourceFile(fileName, content, ts.ScriptTarget.Latest, true, ts.ScriptKind.TS);
114
+ const ranges = utils_typescript.collectInlineTemplateRanges(sourceFile).sort((a, b) => b.start - a.start);
115
+ const writes = { readOnlyWrites: new Set(), compoundWrites: new Set() };
116
+ let result = content;
117
+ for (const { start, end } of ranges) {
118
+ const outcome = await migrateTemplate(result.slice(start, end));
119
+ mergeWrites(writes, outcome);
120
+ if (outcome.changed) {
121
+ result = result.slice(0, start) + outcome.content + result.slice(end);
122
+ }
123
+ }
124
+ return { content: result, ...writes };
125
+ }
126
+ /** Pass C — safe identifier renames. */
127
+ function applyRenames(content) {
128
+ let result = content;
129
+ for (const { from, to } of migrations_filterBarSignals_data.tsRenameReplacements) {
130
+ result = result.replace(new RegExp(from, 'g'), to);
131
+ }
132
+ return result;
133
+ }
134
+ function logWarnings(context, filePath, content) {
135
+ for (const { pattern, message } of migrations_filterBarSignals_data.warnPatterns) {
136
+ if (new RegExp(pattern).test(content)) {
137
+ utils_messages.logMessage(context.logger, [`[filter-bar-signals] ${filePath}`, ` ${message}`]);
138
+ }
139
+ }
140
+ }
141
+ /** Reports writes to signal members that are read-only now, made in code or through a template reference. */
142
+ function warnReadOnlyWrites(context, filePath, members) {
143
+ if (members.size === 0)
144
+ return;
145
+ utils_messages.logMessage(context.logger, [
146
+ `[filter-bar-signals] ${filePath}`,
147
+ ` \`${[...members].join('`, `')}\` can no longer be assigned: they are read-only signals now. Bind`,
148
+ ` \`[pipeTemplates]\` in the template instead; the \`is*\` state follows \`filter\`.`
149
+ ]);
150
+ }
151
+ /** Reports writes to `filter` that have no `.set()` form, made in code or through a template reference. */
152
+ function warnCompoundWrites(context, filePath, members) {
153
+ if (members.size === 0)
154
+ return;
155
+ utils_messages.logMessage(context.logger, [
156
+ `[filter-bar-signals] ${filePath}`,
157
+ ` \`${[...members].join('`, `')}\` is a writable signal now, but only a plain \`=\` is rewritten to`,
158
+ ` \`.set()\`: a compound assignment, an increment, \`delete\` or a destructuring target was left as it`,
159
+ ` is. Write it with \`.set()\` or \`.update()\`.`
160
+ ]);
161
+ }
162
+ /** A `.ts` file is a filter-bar consumer if it names the type or imports the package. */
163
+ function referencesFilterBar(content) {
164
+ return /\bKbqFilterBar\b/.test(content) || content.includes('@koobiq/components/filter-bar');
165
+ }
166
+ function filterBarSignals(options) {
167
+ return async (tree, context) => {
168
+ const { project } = options;
169
+ // `ng update` invokes migrations with no options at all, and migrations.json declares no schema, so the
170
+ // schema default never reaches us — applying the fix is the intended behaviour there.
171
+ const fix = options.fix ?? true;
172
+ const projectDefinition = await utils_packageConfig.setupOptions(project, tree);
173
+ const root = projectDefinition?.root ?? '';
174
+ const rootDir = root ? tree.getDir(root) : tree.root;
175
+ const tsPaths = [];
176
+ const htmlPaths = [];
177
+ utils_projectFiles.visitProjectFiles(rootDir, (filePath) => {
178
+ if (filePath.endsWith(TS_EXT))
179
+ tsPaths.push(filePath);
180
+ else if (filePath.endsWith(HTML_EXT))
181
+ htmlPaths.push(filePath);
182
+ });
183
+ let touched = 0;
184
+ const commit = (filePath, original, updated) => {
185
+ if (updated === original)
186
+ return;
187
+ touched++;
188
+ if (fix) {
189
+ tree.overwrite(filePath, updated);
190
+ }
191
+ else {
192
+ utils_messages.logMessage(context.logger, [`[filter-bar-signals] would update ${filePath} (run with --fix to apply)`]);
193
+ }
194
+ };
195
+ for (const filePath of tsPaths) {
196
+ const original = tree.read(filePath)?.toString();
197
+ if (!original || !referencesFilterBar(original))
198
+ continue;
199
+ logWarnings(context, filePath, original);
200
+ const sourceFile = ts.createSourceFile(filePath, original, ts.ScriptTarget.Latest, true, ts.ScriptKind.TS);
201
+ const writes = collectWrites(sourceFile, collectFileReceivers(sourceFile));
202
+ const inline = await migrateInlineTemplates(migrateTsExpressions(original, filePath), filePath);
203
+ mergeWrites(writes, inline);
204
+ warnReadOnlyWrites(context, filePath, writes.readOnlyWrites);
205
+ warnCompoundWrites(context, filePath, writes.compoundWrites);
206
+ commit(filePath, original, applyRenames(inline.content));
207
+ }
208
+ for (const filePath of htmlPaths) {
209
+ const original = tree.read(filePath)?.toString();
210
+ if (!original)
211
+ continue;
212
+ const { content, changed, readOnlyWrites, compoundWrites } = await migrateTemplate(original);
213
+ warnReadOnlyWrites(context, filePath, readOnlyWrites);
214
+ warnCompoundWrites(context, filePath, compoundWrites);
215
+ if (changed)
216
+ commit(filePath, original, content);
217
+ }
218
+ utils_messages.logMessage(context.logger, [
219
+ `[filter-bar-signals] processed tree under "${root || '<workspace root>'}", ` +
220
+ `${fix ? 'updated' : 'would update'} ${touched} file(s).`
221
+ ]);
222
+ };
223
+ }
224
+
225
+ exports.default = filterBarSignals;
@@ -0,0 +1,53 @@
1
+ # filter-bar-state-saving-default
2
+
3
+ Migration schematic invoked automatically by `ng update @koobiq/components@20`
4
+ (registered for `21.0.0-0`). Reports the consequences of `kbq-filter-bar` remembering which filter is
5
+ selected and the edits made to it, with `useStateSaving` defaulting to `true`. It never writes to the
6
+ tree.
7
+
8
+ ## Background
9
+
10
+ The filter bar gained the same state saving the accordion, the tree, the tab group, the sidebar and the
11
+ content panel already have, applied through the `KbqStateSaving` host directive, and it is on by default.
12
+ With no `stateSavingKey` the key is derived from where the bar sits in the document — the chain of tag
13
+ names up to `<body>`, cut short by the first author-written `id`, which becomes the anchor.
14
+
15
+ One thing is different here. The components that shipped before it leave a controlled input alone: a
16
+ sidebar with a bound `opened` persists nothing at all. The filter bar restores over the value a
17
+ `[filter]` binding supplied at initialization, because `filter` is a `model()` — the restore writes
18
+ through it, `filterChange` fires, and the application loads data for the restored filter exactly as it
19
+ would for one the user had just picked. Only a change made after that wins.
20
+
21
+ ## What is stored
22
+
23
+ The filter's `name`, whether it carried unsaved changes, and one entry per pipe: its `id` (or its `name`
24
+ when it has none) and its value. Nothing else. A pipe built from a template keeps that template's
25
+ `compareWith` and date bounds, and those do not survive being written to storage — so the rest of each
26
+ pipe is rebuilt from `filters` and `pipeTemplates` while restoring, and a pipe whose template is gone is
27
+ left out.
28
+
29
+ `KbqFilter` has no id, so a filter is identified by its `name`: renaming a saved filter loses what was
30
+ stored for it, and a name no longer in the list restores nothing. A list that arrives from a server is
31
+ waited for — the restore applies as soon as the named filter appears, and is abandoned as soon as
32
+ anything else changes the filter.
33
+
34
+ ## What it reports
35
+
36
+ | Pattern | Reported unless |
37
+ | -------------------------------------------- | ----------------------------- |
38
+ | `<kbq-filter-bar>` / `[kbq-filter-bar]` | `useStateSaving` is mentioned |
39
+ | `[filter]` / `[(filter)]` on the bar | `useStateSaving` is mentioned |
40
+ | `<kbq-filters>` inside the bar | `useStateSaving` is mentioned |
41
+ | `compareWith` in a consumer file | always |
42
+ | `saveFilterState()` / `restoreFilterState()` | always |
43
+
44
+ The last one is a reassurance rather than a warning: those two are unchanged, and are unrelated to
45
+ `clearSavedState()` / `hasSavedState`.
46
+
47
+ ## Running it manually
48
+
49
+ ```bash
50
+ ng generate @koobiq/components:filter-bar-state-saving-default --project my-app
51
+ ```
52
+
53
+ Omit `--project` to inspect the whole workspace.
@@ -0,0 +1,87 @@
1
+ 'use strict';
2
+
3
+ /**
4
+ * Data for the `filter-bar-state-saving-default` migration.
5
+ *
6
+ * `KbqFilterBar` remembers which filter is selected and the edits made to it now, and `useStateSaving`
7
+ * defaults to `true`. Unlike the components that shipped before it, the bar restores over the value a
8
+ * `[filter]` binding supplied at initialization — it writes through the `filter` model, so `filterChange`
9
+ * fires and the application loads data for the restored filter. That is the part a consumer has to act
10
+ * on, and it is exactly the markup that says nothing about the input.
11
+ *
12
+ * Warn-only. Rewriting the markup to `[useStateSaving]="false"` would withhold the feature this release
13
+ * is shipping.
14
+ */
15
+ /** Import specifiers that mark a file as a consumer of the filter bar. */
16
+ const PACKAGES = ['@koobiq/components/filter-bar'];
17
+ /** Identifier and element shapes that mark a consumer without an import. */
18
+ const CONSUMER_TYPE = '\\bKbqFilterBar\\b|\\bkbq-filter-bar\\b';
19
+ const FILTER_BAR = '<kbq-filter-bar\\b|\\[kbq-filter-bar\\]';
20
+ /**
21
+ * Anything that makes a file a consumer, for the reports that key off a call site rather than off the
22
+ * rendered element — pipe templates are routinely declared in a `.ts` whose markup lives elsewhere.
23
+ */
24
+ const CONSUMER = `${CONSUMER_TYPE}|\\bKbqPipeTemplate\\b|@koobiq/components/filter-bar`;
25
+ const warnPatterns = [
26
+ {
27
+ anchor: FILTER_BAR,
28
+ pattern: FILTER_BAR,
29
+ unless: '\\buseStateSaving\\b',
30
+ message: 'Filter bars remember the selected filter and the edits made to it by default now: ' +
31
+ 'useStateSaving defaults to true. Pass [useStateSaving]="false" to keep the previous ' +
32
+ 'behaviour. What is stored is the filter name, whether it carried unsaved changes, and one ' +
33
+ 'entry per pipe — its id (or name) and its value.'
34
+ },
35
+ {
36
+ anchor: FILTER_BAR,
37
+ pattern: '\\[\\(?filter\\)?\\]',
38
+ unless: '\\buseStateSaving\\b',
39
+ message: 'A restored filter overrides the value this [filter] binding supplies at initialization, and ' +
40
+ 'writes through the model, so filterChange fires and the application fetches for it as it ' +
41
+ 'would for one the user had picked. Only a later change wins — this is the one place the bar ' +
42
+ 'differs from the components that persist a controlled input by leaving it alone.'
43
+ },
44
+ {
45
+ anchor: FILTER_BAR,
46
+ pattern: '<kbq-filters\\b',
47
+ unless: '\\buseStateSaving\\b',
48
+ message: 'A filter is identified by its name, the only identity KbqFilter has. Renaming a saved filter ' +
49
+ 'therefore loses what was stored for it, and a name that is no longer in the filters list ' +
50
+ 'restores nothing. Applications that load their filters from a server are waited for: the ' +
51
+ 'restore applies as soon as the named filter appears.'
52
+ },
53
+ {
54
+ anchor: CONSUMER,
55
+ pattern: '\\bcompareWith\\b',
56
+ message: 'Restored pipe values come back as new objects, never the option instances in the templates. ' +
57
+ 'This compareWith is what matches them again — keep it in step with what is stored, which is ' +
58
+ 'the value alone.'
59
+ },
60
+ {
61
+ // Programmatic access names the class, which the markup-only anchor does not cover.
62
+ anchor: CONSUMER,
63
+ pattern: '\\.\\s*(saveFilterState|restoreFilterState)\\s*\\(',
64
+ message: 'saveFilterState()/restoreFilterState() are unchanged: they snapshot the filter in memory ' +
65
+ 'within one session. Persistence is separate — clearSavedState() and hasSavedState are the ' +
66
+ 'members that reach it, and the bar writes on every change by itself.'
67
+ }
68
+ ];
69
+ /** Printed once, after the per-file reports. */
70
+ const SUMMARY = [
71
+ ' A filter bar rendered inside an overlay does not persist: it is not in the document when it',
72
+ ' initializes and so has no stable key. The key otherwise comes from stateSavingKey, or is derived',
73
+ ' from the position in the document when none is given.',
74
+ ' Pipes are stored as a projection — id and value — and everything else is rebuilt from filters and',
75
+ ' pipeTemplates, because a pipe built from a template keeps that template compareWith and date',
76
+ ' bounds, which do not survive being written to storage. A pipe whose template is gone is left out.',
77
+ ' Storage format: entries are written under a "kbq.state." prefix and carry a timestamp, so an',
78
+ ' entry stranded by a markup change is collected once it outlives KBQ_STATE_SAVING_TTL (90 days by',
79
+ ' default).',
80
+ ' Provide KBQ_STATE_STORE to persist somewhere else (KbqSessionStorageStateStore is bundled), and',
81
+ ' KBQ_STATE_SAVING_KEY_RESOLVER to derive the key from something other than the document position.'
82
+ ];
83
+
84
+ exports.CONSUMER_TYPE = CONSUMER_TYPE;
85
+ exports.PACKAGES = PACKAGES;
86
+ exports.SUMMARY = SUMMARY;
87
+ exports.warnPatterns = warnPatterns;
@@ -0,0 +1,62 @@
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_filterBarStateSavingDefault_data = require('./data.cjs');
9
+ require('@angular-devkit/schematics');
10
+ require('@schematics/angular/utility');
11
+
12
+ const LABEL = '[filter-bar-state-saving-default]';
13
+ const EXTENSIONS = ['.ts', '.html'];
14
+ /** A file is a consumer if it imports the package, names the component, or renders one. */
15
+ function referencesConsumer(content) {
16
+ return migrations_filterBarStateSavingDefault_data.PACKAGES.some((name) => content.includes(name)) || new RegExp(migrations_filterBarStateSavingDefault_data.CONSUMER_TYPE).test(content);
17
+ }
18
+ /**
19
+ * Reports the consequences of the filter bar persisting the selected filter and the edits made to it,
20
+ * with `useStateSaving` defaulting to `true`. Never writes: the markup whose behaviour changed is exactly
21
+ * the markup that does not mention the input, and rewriting it to opt out would withhold the feature the
22
+ * release is shipping.
23
+ *
24
+ * `.html` is visited as well as `.ts`, because most reports key off the rendered element rather than off
25
+ * an import.
26
+ */
27
+ function filterBarStateSavingDefault(options) {
28
+ return async (tree, context) => {
29
+ const { project } = options;
30
+ const projectDefinition = await utils_packageConfig.setupOptions(project, tree);
31
+ const root = projectDefinition?.root ?? '';
32
+ const rootDir = root ? tree.getDir(root) : tree.root;
33
+ let consumers = 0;
34
+ let reported = 0;
35
+ utils_projectFiles.visitProjectFiles(rootDir, (filePath, entry) => {
36
+ if (!EXTENSIONS.some((extension) => filePath.endsWith(extension)))
37
+ return;
38
+ const content = entry?.content.toString();
39
+ if (!content || !referencesConsumer(content))
40
+ return;
41
+ consumers++;
42
+ for (const { anchor, pattern, unless, message } of migrations_filterBarStateSavingDefault_data.warnPatterns) {
43
+ if (!new RegExp(anchor).test(content) || !new RegExp(pattern).test(content))
44
+ continue;
45
+ if (unless && new RegExp(unless).test(content))
46
+ continue;
47
+ reported++;
48
+ utils_messages.logMessage(context.logger, [`${LABEL} ${filePath}`, ` ${message}`]);
49
+ }
50
+ });
51
+ // Nothing here renders a filter bar, so the summary would only be noise.
52
+ if (consumers === 0)
53
+ return;
54
+ utils_messages.logMessage(context.logger, [
55
+ `${LABEL} processed kbq-filter-bar under "${root || '<workspace root>'}", ` +
56
+ `${consumers} file(s) reference it, ${reported} report(s) raised.`,
57
+ ...migrations_filterBarStateSavingDefault_data.SUMMARY
58
+ ]);
59
+ };
60
+ }
61
+
62
+ exports.default = filterBarStateSavingDefault;
@@ -0,0 +1,15 @@
1
+ {
2
+ "$schema": "http://json-schema.org/schema",
3
+ "$id": "koobiq-components-filter-bar-state-saving-default",
4
+ "title": "Koobiq filter-bar state saving default migration",
5
+ "type": "object",
6
+ "properties": {
7
+ "project": {
8
+ "type": "string",
9
+ "description": "Name of the project to inspect. If omitted, the migration runs over the whole tree.",
10
+ "$default": {
11
+ "$source": "projectName"
12
+ }
13
+ }
14
+ }
15
+ }
@@ -0,0 +1,67 @@
1
+ # flag-inner-html
2
+
3
+ Migration schematic invoked automatically by `ng update @koobiq/components@20`
4
+ (registered for `21.0.0-0`). Moves `[innerHTML]` bindings off the `<kbq-flag>` host element onto the
5
+ `svg` input the flag review added, and reports the behavior changes that have no call site to point
6
+ at.
7
+
8
+ ## Background
9
+
10
+ `KbqFlag` renders `<ng-content />`, so the host element is where projected nodes land. A parent
11
+ binding `[innerHTML]` on `<kbq-flag>` compiles to a write of `hostElement.innerHTML` during the
12
+ parent's update pass — the same element. The two only coexisted because the component's own view
13
+ contributed no DOM: with nothing projected there was nothing for the write to destroy, which is why
14
+ every published example got away with it.
15
+
16
+ The review gave the string form a slot of its own:
17
+
18
+ ```html
19
+ <!-- before -->
20
+ <kbq-flag decorative [innerHTML]="flag" />
21
+
22
+ <!-- after -->
23
+ <kbq-flag decorative [svg]="flag" />
24
+ ```
25
+
26
+ The `svg` input renders into a `<span>` inside the component's view, so projected content and string
27
+ content no longer compete for the host element. The value is unchanged — Angular's sanitizer still
28
+ strips an `<svg>` that has not been bypassed, so a flag coming from a package as a string still has to go through
29
+ `DomSanitizer.bypassSecurityTrustHtml`, and only ever for markup known at build time.
30
+
31
+ ## What it rewrites
32
+
33
+ `[innerHTML]` → `[svg]`, inside `<kbq-flag …>` opening tags only, in `.ts` and `.html` files that
34
+ reference the flag. A binding on any other element — including one on a wrapper projected _into_ a
35
+ flag — is left alone, because there the write targets an element the component does not own.
36
+
37
+ ## What it does not reach
38
+
39
+ The rewrite is textual, so it only sees a literal `[innerHTML]=` inside a literal `<kbq-flag …>`
40
+ opening tag. Two forms are invisible to it and have to be moved by hand:
41
+
42
+ - an `innerHTML` write made from TypeScript against a flag element, through `Renderer2.setProperty`
43
+ or an assignment to a queried element's `innerHTML`;
44
+ - a wrapper component of your own that publishes an `innerHTML`-named input and forwards it. The
45
+ `<kbq-flag [innerHTML]="…">` inside its template is rewritten, but the input it exposes to its own
46
+ callers keeps the old name.
47
+
48
+ ## Notes with no call site to point at
49
+
50
+ - **A flag with no `label` is now `aria-hidden`.** The unlabelled, non-decorative flag reached the
51
+ accessibility tree as a nameless graphic, which the guide already called out as the one case that
52
+ must not happen. Give a meaningful flag a `label` — including one whose only name came from the
53
+ projected image (`alt`, an SVG `<title>`), which the default now hides.
54
+ - **An inline `<svg>` is cropped instead of letterboxed.** `object-fit: cover` is inert on an inline
55
+ `<svg>` — it is not a replaced element — so a source whose ratio differed from the shape rendered
56
+ with transparent bands; `square` and `circle` were the visible cases. The same flag passed as an
57
+ `<img>` always cropped, and the two now match.
58
+ - **`--kbq-flag-empty-background` resolves to an opaque neutral** instead of the translucent disabled
59
+ state, so the `empty` placeholder no longer takes on the hue of the surface behind it.
60
+ - **The flag tokens are declared at zero specificity.** An override that used to lose to `.kbq-flag`
61
+ on source order now wins, so a redundant `!important` or an extra selector can be dropped.
62
+
63
+ ## Running it on its own
64
+
65
+ ```bash
66
+ ng g @koobiq/components:flag-inner-html --project <your project>
67
+ ```
@@ -0,0 +1,58 @@
1
+ 'use strict';
2
+
3
+ /**
4
+ * Data for the `flag-inner-html` migration.
5
+ *
6
+ * `KbqFlag` renders `<ng-content />`, so the host element is where projected nodes land. A parent
7
+ * binding `[innerHTML]` on `<kbq-flag>` writes that same element, and the two only coexisted because
8
+ * the component's own view contributed no DOM. The review gave the string form a slot of its own —
9
+ * the `svg` input — and the template now creates a node inside the host, so a host-level
10
+ * `[innerHTML]` write removes it along with anything projected.
11
+ *
12
+ * The rename is mechanical, so this migration rewrites it. Everything else in the review is a
13
+ * behavior change with no call site to point at, and is reported once per project.
14
+ */
15
+ /** Import specifier that marks a file as a flag consumer. */
16
+ const FLAG_PACKAGE = '@koobiq/components/flag';
17
+ /** Identifier and element shapes that mark a consumer without an import. */
18
+ const FLAG_TYPE = '\\bKbqFlag\\w*\\b|\\bkbq-flag\\b';
19
+ /**
20
+ * Opening `<kbq-flag …>` tag, including the self-closing form. Closing tags do not match.
21
+ *
22
+ * Attribute values are matched as opaque quoted strings, so a `>` inside an attribute expression
23
+ * (e.g. `[class.a]="x > y"`) does not end the match early and strand a later `[innerHTML]` binding
24
+ * on the same tag outside it. The third alternative excludes both quote characters so that only one
25
+ * branch can consume a quote: an unterminated tag would otherwise backtrack exponentially.
26
+ */
27
+ const FLAG_OPEN_TAG = /<kbq-flag\b(?:"[^"]*"|'[^']*'|[^>"'])*>/g;
28
+ /** The binding this migration moves off the host element. */
29
+ const INNER_HTML_BINDING = /\[innerHTML\]\s*=/g;
30
+ const REWRITE_MESSAGE = '[innerHTML] on <kbq-flag> was rewritten to [svg]. The host element is where projected content ' +
31
+ 'lands, so an innerHTML write replaces it; the svg input renders into a slot of its own. Pass it ' +
32
+ 'the same SafeHtml — Angular still strips an <svg> that has not been bypassed.';
33
+ /** Printed once per project, after the per-file reports. */
34
+ const SUMMARY = [
35
+ ' The rewrite is textual and only sees a literal [innerHTML]= inside a literal <kbq-flag …> ' +
36
+ 'opening tag. An innerHTML write made from TypeScript against a flag element, and an ' +
37
+ 'innerHTML-named input that a wrapper component of yours forwards to a flag, are both ' +
38
+ 'invisible to it and have to be moved by hand.',
39
+ ' A flag with no `label` is now aria-hidden. The unlabelled, non-decorative flag reached the ' +
40
+ 'accessibility tree as a nameless graphic, which the guide already called out as the one case ' +
41
+ 'that must not happen. Give a meaningful flag a `label` — including one whose only name came ' +
42
+ 'from the projected image (`alt`, an SVG `<title>`), which the default now hides.',
43
+ ' An inline <svg> is cropped instead of letterboxed. `object-fit: cover` is inert on an inline ' +
44
+ '<svg> — it is not a replaced element — so a source whose ratio differed from the shape used to ' +
45
+ 'render with transparent bands; `square` and `circle` are the visible cases. The same flag ' +
46
+ 'passed as an <img> always cropped, and the two now match.',
47
+ ' --kbq-flag-empty-background resolves to an opaque neutral instead of the translucent disabled ' +
48
+ 'state, so the `empty` placeholder no longer takes on the hue of the surface behind it.',
49
+ ' The flag tokens are declared at zero specificity. An override that used to lose to .kbq-flag ' +
50
+ 'on source order now wins, so a redundant `!important` or an extra selector can be dropped.'
51
+ ];
52
+
53
+ exports.FLAG_OPEN_TAG = FLAG_OPEN_TAG;
54
+ exports.FLAG_PACKAGE = FLAG_PACKAGE;
55
+ exports.FLAG_TYPE = FLAG_TYPE;
56
+ exports.INNER_HTML_BINDING = INNER_HTML_BINDING;
57
+ exports.REWRITE_MESSAGE = REWRITE_MESSAGE;
58
+ exports.SUMMARY = SUMMARY;