@koobiq/components 20.4.2 → 21.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (771) hide show
  1. package/accordion/accordion-trigger.scss +3 -10
  2. package/accordion/accordion.scss +4 -6
  3. package/actions-panel/actions-panel-container.scss +45 -1
  4. package/alert/alert.component.scss +3 -2
  5. package/app-switcher/_app-switcher-theme.scss +0 -4
  6. package/app-switcher/app-switcher-dropdown-app.scss +3 -2
  7. package/app-switcher/app-switcher-dropdown-site.scss +2 -1
  8. package/app-switcher/{kbq-app-switcher-list-item.scss → app-switcher-list-item.scss} +18 -4
  9. package/app-switcher/app-switcher-tokens.scss +15 -0
  10. package/app-switcher/app-switcher.scss +14 -4
  11. package/autocomplete/autocomplete.scss +7 -6
  12. package/badge/badge.component.scss +5 -8
  13. package/breadcrumbs/breadcrumbs.scss +25 -10
  14. package/button/_button-base.scss +30 -7
  15. package/button/_button-theme.scss +16 -0
  16. package/button/button-group.scss +7 -0
  17. package/button/button-tokens.scss +0 -2
  18. package/button/button.scss +34 -2
  19. package/button-toggle/_button-toggle-theme.scss +7 -2
  20. package/button-toggle/button-toggle.scss +65 -15
  21. package/checkbox/_checkbox-theme.scss +4 -3
  22. package/checkbox/checkbox.scss +3 -6
  23. package/clamped-text/clamped-text.scss +6 -2
  24. package/code-block/code-block-tokens.scss +0 -224
  25. package/code-block/code-block.scss +20 -9
  26. package/content-panel/content-panel-aside.scss +3 -2
  27. package/content-panel/content-panel-container.scss +37 -0
  28. package/content-panel/content-panel.scss +4 -3
  29. package/core/highlight/_highlight-theme.scss +3 -1
  30. package/core/option/action-container.scss +2 -2
  31. package/core/option/action.scss +2 -1
  32. package/core/option/option.scss +2 -1
  33. package/core/pop-up/_pop-up.scss +0 -37
  34. package/core/selection/pseudo-checkbox/pseudo-checkbox.scss +5 -10
  35. package/core/styles/_core.scss +3 -0
  36. package/core/styles/_koobiq-theme.scss +5 -6
  37. package/core/styles/common/_animation.scss +44 -16
  38. package/core/styles/common/_groups-mixins.scss +21 -19
  39. package/core/styles/common/_groups.scss +4 -32
  40. package/core/styles/common/_index.scss +0 -2
  41. package/core/styles/common/_link.scss +117 -0
  42. package/core/styles/common/_list.scss +0 -26
  43. package/core/styles/common/_overlay.scss +8 -10
  44. package/core/styles/common/_rtl.scss +0 -14
  45. package/core/styles/common/_select.scss +33 -15
  46. package/core/styles/common/_squircle.scss +63 -0
  47. package/core/styles/common/_tokens.scss +0 -11
  48. package/core/styles/common/_vendor-prefixes.scss +0 -20
  49. package/core/styles/functions/_timing.scss +0 -22
  50. package/core/styles/theming/_scrollbar-theme.scss +6 -1
  51. package/core/styles/theming/_theming.scss +13 -65
  52. package/core/styles/typography/_index.scss +0 -1
  53. package/core/styles/typography/_typography.scss +0 -143
  54. package/core/styles/visual/_body.scss +1 -6
  55. package/core/styles/visual/_layout.scss +0 -12
  56. package/datepicker/calendar-body.scss +3 -1
  57. package/datepicker/calendar-header.scss +0 -1
  58. package/datepicker/datepicker-content.scss +33 -1
  59. package/datepicker/datepicker-toggle.scss +0 -38
  60. package/dl/dl-tokens.scss +10 -0
  61. package/dl/dl.scss +113 -13
  62. package/dropdown/_dropdown-theme.scss +4 -16
  63. package/dropdown/dropdown-item.scss +4 -10
  64. package/dropdown/dropdown.scss +2 -1
  65. package/empty-state/_empty-state-theme.scss +10 -4
  66. package/empty-state/empty-state-tokens.scss +4 -4
  67. package/empty-state/empty-state.scss +4 -0
  68. package/fesm2022/koobiq-components-accordion.mjs +347 -229
  69. package/fesm2022/koobiq-components-accordion.mjs.map +1 -1
  70. package/fesm2022/koobiq-components-actions-panel.mjs +302 -187
  71. package/fesm2022/koobiq-components-actions-panel.mjs.map +1 -1
  72. package/fesm2022/koobiq-components-alert.mjs +39 -39
  73. package/fesm2022/koobiq-components-alert.mjs.map +1 -1
  74. package/fesm2022/koobiq-components-app-switcher.mjs +677 -367
  75. package/fesm2022/koobiq-components-app-switcher.mjs.map +1 -1
  76. package/fesm2022/koobiq-components-autocomplete.mjs +620 -253
  77. package/fesm2022/koobiq-components-autocomplete.mjs.map +1 -1
  78. package/fesm2022/koobiq-components-badge.mjs +46 -48
  79. package/fesm2022/koobiq-components-badge.mjs.map +1 -1
  80. package/fesm2022/koobiq-components-breadcrumbs.mjs +221 -169
  81. package/fesm2022/koobiq-components-breadcrumbs.mjs.map +1 -1
  82. package/fesm2022/koobiq-components-button-toggle.mjs +565 -196
  83. package/fesm2022/koobiq-components-button-toggle.mjs.map +1 -1
  84. package/fesm2022/koobiq-components-button.mjs +332 -116
  85. package/fesm2022/koobiq-components-button.mjs.map +1 -1
  86. package/fesm2022/koobiq-components-checkbox.mjs +172 -132
  87. package/fesm2022/koobiq-components-checkbox.mjs.map +1 -1
  88. package/fesm2022/koobiq-components-clamped-text.mjs +165 -158
  89. package/fesm2022/koobiq-components-clamped-text.mjs.map +1 -1
  90. package/fesm2022/koobiq-components-code-block.mjs +755 -601
  91. package/fesm2022/koobiq-components-code-block.mjs.map +1 -1
  92. package/fesm2022/koobiq-components-content-panel.mjs +260 -143
  93. package/fesm2022/koobiq-components-content-panel.mjs.map +1 -1
  94. package/fesm2022/koobiq-components-core.mjs +4342 -1595
  95. package/fesm2022/koobiq-components-core.mjs.map +1 -1
  96. package/fesm2022/koobiq-components-datepicker.mjs +1713 -1606
  97. package/fesm2022/koobiq-components-datepicker.mjs.map +1 -1
  98. package/fesm2022/koobiq-components-divider.mjs +73 -36
  99. package/fesm2022/koobiq-components-divider.mjs.map +1 -1
  100. package/fesm2022/koobiq-components-dl.mjs +447 -89
  101. package/fesm2022/koobiq-components-dl.mjs.map +1 -1
  102. package/fesm2022/koobiq-components-dropdown.mjs +703 -599
  103. package/fesm2022/koobiq-components-dropdown.mjs.map +1 -1
  104. package/fesm2022/koobiq-components-dynamic-translation.mjs +20 -20
  105. package/fesm2022/koobiq-components-dynamic-translation.mjs.map +1 -1
  106. package/fesm2022/koobiq-components-ellipsis-center.mjs +46 -31
  107. package/fesm2022/koobiq-components-ellipsis-center.mjs.map +1 -1
  108. package/fesm2022/koobiq-components-empty-state.mjs +116 -60
  109. package/fesm2022/koobiq-components-empty-state.mjs.map +1 -1
  110. package/fesm2022/koobiq-components-file-upload.mjs +550 -290
  111. package/fesm2022/koobiq-components-file-upload.mjs.map +1 -1
  112. package/fesm2022/koobiq-components-filter-bar.mjs +2810 -2538
  113. package/fesm2022/koobiq-components-filter-bar.mjs.map +1 -1
  114. package/fesm2022/koobiq-components-flag.mjs +79 -24
  115. package/fesm2022/koobiq-components-flag.mjs.map +1 -1
  116. package/fesm2022/koobiq-components-form-field.mjs +389 -525
  117. package/fesm2022/koobiq-components-form-field.mjs.map +1 -1
  118. package/fesm2022/koobiq-components-icon.mjs +366 -136
  119. package/fesm2022/koobiq-components-icon.mjs.map +1 -1
  120. package/fesm2022/koobiq-components-inline-edit.mjs +429 -212
  121. package/fesm2022/koobiq-components-inline-edit.mjs.map +1 -1
  122. package/fesm2022/koobiq-components-input.mjs +601 -459
  123. package/fesm2022/koobiq-components-input.mjs.map +1 -1
  124. package/fesm2022/koobiq-components-link-deprecated.mjs +196 -0
  125. package/fesm2022/koobiq-components-link-deprecated.mjs.map +1 -0
  126. package/fesm2022/koobiq-components-link.mjs +328 -125
  127. package/fesm2022/koobiq-components-link.mjs.map +1 -1
  128. package/fesm2022/koobiq-components-list.mjs +583 -433
  129. package/fesm2022/koobiq-components-list.mjs.map +1 -1
  130. package/fesm2022/koobiq-components-loader-overlay.mjs +167 -68
  131. package/fesm2022/koobiq-components-loader-overlay.mjs.map +1 -1
  132. package/fesm2022/koobiq-components-markdown.mjs +55 -78
  133. package/fesm2022/koobiq-components-markdown.mjs.map +1 -1
  134. package/fesm2022/koobiq-components-modal.mjs +853 -475
  135. package/fesm2022/koobiq-components-modal.mjs.map +1 -1
  136. package/fesm2022/koobiq-components-navbar.mjs +895 -556
  137. package/fesm2022/koobiq-components-navbar.mjs.map +1 -1
  138. package/fesm2022/koobiq-components-notification-center.mjs +680 -310
  139. package/fesm2022/koobiq-components-notification-center.mjs.map +1 -1
  140. package/fesm2022/koobiq-components-overflow-items.mjs +46 -64
  141. package/fesm2022/koobiq-components-overflow-items.mjs.map +1 -1
  142. package/fesm2022/koobiq-components-popover.mjs +684 -285
  143. package/fesm2022/koobiq-components-popover.mjs.map +1 -1
  144. package/fesm2022/koobiq-components-progress-bar.mjs +87 -33
  145. package/fesm2022/koobiq-components-progress-bar.mjs.map +1 -1
  146. package/fesm2022/koobiq-components-progress-spinner.mjs +52 -43
  147. package/fesm2022/koobiq-components-progress-spinner.mjs.map +1 -1
  148. package/fesm2022/koobiq-components-radio.mjs +450 -231
  149. package/fesm2022/koobiq-components-radio.mjs.map +1 -1
  150. package/fesm2022/koobiq-components-resizer.mjs +127 -21
  151. package/fesm2022/koobiq-components-resizer.mjs.map +1 -1
  152. package/fesm2022/koobiq-components-scrollbar-deprecated.mjs +299 -0
  153. package/fesm2022/koobiq-components-scrollbar-deprecated.mjs.map +1 -0
  154. package/fesm2022/koobiq-components-scrollbar.mjs +745 -222
  155. package/fesm2022/koobiq-components-scrollbar.mjs.map +1 -1
  156. package/fesm2022/koobiq-components-search-expandable.mjs +288 -126
  157. package/fesm2022/koobiq-components-search-expandable.mjs.map +1 -1
  158. package/fesm2022/koobiq-components-select.mjs +883 -693
  159. package/fesm2022/koobiq-components-select.mjs.map +1 -1
  160. package/fesm2022/koobiq-components-sidebar.mjs +207 -88
  161. package/fesm2022/koobiq-components-sidebar.mjs.map +1 -1
  162. package/fesm2022/koobiq-components-sidepanel.mjs +689 -296
  163. package/fesm2022/koobiq-components-sidepanel.mjs.map +1 -1
  164. package/fesm2022/koobiq-components-skeleton.mjs +815 -41
  165. package/fesm2022/koobiq-components-skeleton.mjs.map +1 -1
  166. package/fesm2022/koobiq-components-split-button.mjs +109 -88
  167. package/fesm2022/koobiq-components-split-button.mjs.map +1 -1
  168. package/fesm2022/koobiq-components-splitter-deprecated.mjs +591 -0
  169. package/fesm2022/koobiq-components-splitter-deprecated.mjs.map +1 -0
  170. package/fesm2022/koobiq-components-splitter.mjs +890 -501
  171. package/fesm2022/koobiq-components-splitter.mjs.map +1 -1
  172. package/fesm2022/koobiq-components-table.mjs +63 -49
  173. package/fesm2022/koobiq-components-table.mjs.map +1 -1
  174. package/fesm2022/koobiq-components-tabs.mjs +1062 -603
  175. package/fesm2022/koobiq-components-tabs.mjs.map +1 -1
  176. package/fesm2022/koobiq-components-tags.mjs +886 -733
  177. package/fesm2022/koobiq-components-tags.mjs.map +1 -1
  178. package/fesm2022/koobiq-components-textarea.mjs +213 -185
  179. package/fesm2022/koobiq-components-textarea.mjs.map +1 -1
  180. package/fesm2022/koobiq-components-time-range.mjs +299 -147
  181. package/fesm2022/koobiq-components-time-range.mjs.map +1 -1
  182. package/fesm2022/koobiq-components-timepicker.mjs +233 -245
  183. package/fesm2022/koobiq-components-timepicker.mjs.map +1 -1
  184. package/fesm2022/koobiq-components-timezone.mjs +344 -142
  185. package/fesm2022/koobiq-components-timezone.mjs.map +1 -1
  186. package/fesm2022/koobiq-components-title.mjs +229 -145
  187. package/fesm2022/koobiq-components-title.mjs.map +1 -1
  188. package/fesm2022/koobiq-components-toast.mjs +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 +719 -488
  197. package/fesm2022/koobiq-components-tree-select.mjs.map +1 -1
  198. package/fesm2022/koobiq-components-tree.mjs +1506 -558
  199. package/fesm2022/koobiq-components-tree.mjs.map +1 -1
  200. package/fesm2022/koobiq-components-username.mjs +290 -135
  201. package/fesm2022/koobiq-components-username.mjs.map +1 -1
  202. package/file-upload/dropzone.scss +31 -3
  203. package/file-upload/file-upload-tokens.scss +2 -22
  204. package/file-upload/file-upload.scss +6 -0
  205. package/file-upload/multiple-file-upload.component.scss +14 -12
  206. package/file-upload/single-file-upload.component.scss +3 -2
  207. package/filter-bar/filters.scss +7 -0
  208. package/filter-bar/pipes/base-pipe.scss +3 -3
  209. package/filter-bar/pipes/pipe-date.scss +8 -1
  210. package/flag/flag-tokens.scss +22 -0
  211. package/flag/flag.scss +34 -21
  212. package/form-field/{_fiedset-theme.scss → _fieldset-theme.scss} +1 -5
  213. package/form-field/_form-field-theme.scss +4 -9
  214. package/form-field/cleaner.scss +3 -1
  215. package/form-field/fieldset.scss +3 -4
  216. package/form-field/form-field.scss +26 -21
  217. package/form-field/password-toggle.scss +3 -1
  218. package/icon/_icon-button-theme.scss +7 -0
  219. package/icon/_icon-theme.scss +10 -7
  220. package/icon/icon-button.scss +0 -2
  221. package/icon/icon-tokens.scss +12 -9
  222. package/inline-edit/inline-edit.scss +40 -54
  223. package/input/input.scss +4 -0
  224. package/link/{_link-theme.scss → deprecated/_link-theme.scss} +11 -6
  225. package/link/deprecated/link-tokens.scss +27 -0
  226. package/link/link-tokens.scss +6 -25
  227. package/link/link.scss +137 -0
  228. package/list/list.scss +3 -2
  229. package/loader-overlay/_loader-overlay-theme.scss +19 -10
  230. package/loader-overlay/loader-overlay-tokens.scss +0 -2
  231. package/loader-overlay/loader-overlay.scss +7 -1
  232. package/markdown/_markdown-theme.scss +16 -0
  233. package/markdown/markdown-tokens.scss +5 -0
  234. package/markdown/markdown.scss +2 -1
  235. package/modal/_modal-animation.scss +23 -14
  236. package/modal/modal-tokens.scss +2 -1
  237. package/modal/modal.scss +35 -31
  238. package/navbar/_navbar-item_horizontal.scss +8 -6
  239. package/navbar/_navbar-item_vertical.scss +18 -6
  240. package/navbar/_navbar-theme.scss +9 -1
  241. package/navbar/navbar-brand.scss +8 -6
  242. package/navbar/navbar-divider.scss +1 -1
  243. package/navbar/navbar-item.scss +8 -9
  244. package/navbar/navbar-toggle.scss +3 -3
  245. package/navbar/navbar-tokens.scss +14 -0
  246. package/navbar/navbar.scss +1 -2
  247. package/navbar/vertical-navbar.scss +2 -2
  248. package/notification-center/_notification-center-theme.scss +11 -6
  249. package/notification-center/notification-center-tokens.scss +33 -0
  250. package/notification-center/notification-center.scss +58 -20
  251. package/notification-center/notification-item.scss +15 -6
  252. package/package.json +112 -81
  253. package/popover/popover-tokens.scss +0 -2
  254. package/popover/popover.scss +41 -19
  255. package/prebuilt-themes/theme.css +1 -1
  256. package/progress-bar/_progress-bar-theme.scss +20 -3
  257. package/progress-bar/progress-bar-tokens.scss +3 -0
  258. package/progress-bar/progress-bar.scss +36 -8
  259. package/progress-spinner/progress-spinner.scss +4 -3
  260. package/radio/_radio-theme.scss +21 -4
  261. package/radio/radio-tokens.scss +7 -3
  262. package/radio/radio.scss +55 -8
  263. package/schematics/collection.json +399 -7
  264. package/schematics/migrations/accordion-state-saving-default/README.md +60 -0
  265. package/schematics/migrations/accordion-state-saving-default/data.js +75 -0
  266. package/schematics/migrations/accordion-state-saving-default/index.js +60 -0
  267. package/schematics/migrations/accordion-state-saving-default/schema.json +15 -0
  268. package/schematics/migrations/actions-panel-overlay-container/README.md +35 -0
  269. package/schematics/migrations/actions-panel-overlay-container/data.js +47 -0
  270. package/schematics/migrations/actions-panel-overlay-container/index.js +54 -0
  271. package/schematics/migrations/actions-panel-overlay-container/schema.json +15 -0
  272. package/schematics/migrations/alert-signals/README.md +13 -7
  273. package/schematics/migrations/alert-signals/data.js +3 -0
  274. package/schematics/migrations/alert-signals/index.js +70 -203
  275. package/schematics/migrations/angular-animations-removal/README.md +46 -0
  276. package/schematics/migrations/angular-animations-removal/data.js +150 -0
  277. package/schematics/migrations/angular-animations-removal/index.js +20 -0
  278. package/schematics/migrations/angular-animations-removal/schema.json +15 -0
  279. package/schematics/migrations/app-switcher-signals/README.md +88 -0
  280. package/schematics/migrations/app-switcher-signals/data.js +136 -0
  281. package/schematics/migrations/app-switcher-signals/index.js +365 -0
  282. package/schematics/migrations/app-switcher-signals/schema.json +20 -0
  283. package/schematics/migrations/autocomplete-panel-width-auto/README.md +2 -2
  284. package/schematics/migrations/autocomplete-panel-width-auto/index.js +1 -1
  285. package/schematics/migrations/autocomplete-signals/README.md +92 -0
  286. package/schematics/migrations/autocomplete-signals/data.js +149 -0
  287. package/schematics/migrations/autocomplete-signals/index.js +706 -0
  288. package/schematics/migrations/autocomplete-signals/schema.json +20 -0
  289. package/schematics/migrations/badge-signals/README.md +77 -0
  290. package/schematics/migrations/badge-signals/data.js +109 -0
  291. package/schematics/migrations/badge-signals/index.js +693 -0
  292. package/schematics/migrations/badge-signals/schema.json +20 -0
  293. package/schematics/migrations/button-state-and-styles/README.md +129 -0
  294. package/schematics/migrations/button-state-and-styles/data.js +136 -0
  295. package/schematics/migrations/button-state-and-styles/index.js +220 -0
  296. package/schematics/migrations/button-state-and-styles/schema.json +20 -0
  297. package/schematics/migrations/button-supported-colors/README.md +73 -0
  298. package/schematics/migrations/button-supported-colors/data.js +106 -0
  299. package/schematics/migrations/button-supported-colors/index.js +260 -0
  300. package/schematics/migrations/button-supported-colors/schema.json +20 -0
  301. package/schematics/migrations/button-toggle-signals-and-aria/README.md +137 -0
  302. package/schematics/migrations/button-toggle-signals-and-aria/data.js +200 -0
  303. package/schematics/migrations/button-toggle-signals-and-aria/index.js +496 -0
  304. package/schematics/migrations/button-toggle-signals-and-aria/schema.json +20 -0
  305. package/schematics/migrations/button-truncation/README.md +110 -0
  306. package/schematics/migrations/button-truncation/data.js +88 -0
  307. package/schematics/migrations/button-truncation/index.js +269 -0
  308. package/schematics/migrations/button-truncation/schema.json +20 -0
  309. package/schematics/migrations/checkbox-signals/README.md +76 -0
  310. package/schematics/migrations/checkbox-signals/data.js +114 -0
  311. package/schematics/migrations/checkbox-signals/index.js +634 -0
  312. package/schematics/migrations/checkbox-signals/schema.json +20 -0
  313. package/schematics/migrations/clamped-text-disclosure/README.md +62 -0
  314. package/schematics/migrations/clamped-text-disclosure/data.js +101 -0
  315. package/schematics/migrations/clamped-text-disclosure/index.js +59 -0
  316. package/schematics/migrations/clamped-text-disclosure/schema.json +15 -0
  317. package/schematics/migrations/code-block-signals/README.md +84 -0
  318. package/schematics/migrations/code-block-signals/data.js +121 -0
  319. package/schematics/migrations/code-block-signals/index.js +700 -0
  320. package/schematics/migrations/code-block-signals/schema.json +20 -0
  321. package/schematics/migrations/color-signals/README.md +46 -0
  322. package/schematics/migrations/color-signals/data.js +131 -0
  323. package/schematics/migrations/color-signals/index.js +19 -0
  324. package/schematics/migrations/color-signals/schema.json +20 -0
  325. package/schematics/migrations/core-mixins-removal/README.md +20 -0
  326. package/schematics/migrations/core-mixins-removal/data.js +27 -0
  327. package/schematics/migrations/core-mixins-removal/index.js +17 -0
  328. package/schematics/migrations/core-mixins-removal/schema.json +15 -0
  329. package/schematics/migrations/css-selectors/README.md +2 -2
  330. package/schematics/migrations/css-selectors/index.js +1 -1
  331. package/schematics/migrations/datepicker-signals/README.md +24 -0
  332. package/schematics/migrations/datepicker-signals/data.js +49 -0
  333. package/schematics/migrations/datepicker-signals/index.js +17 -0
  334. package/schematics/migrations/datepicker-signals/schema.json +15 -0
  335. package/schematics/migrations/deprecated-icons/README.md +2 -2
  336. package/schematics/migrations/deprecated-icons/index.js +1 -1
  337. package/schematics/migrations/design-tokens-v4/README.md +75 -0
  338. package/schematics/migrations/design-tokens-v4/index.js +59 -0
  339. package/schematics/migrations/design-tokens-v4/schema.json +15 -0
  340. package/schematics/migrations/divider-signals-and-aria/README.md +47 -0
  341. package/schematics/migrations/divider-signals-and-aria/data.js +62 -0
  342. package/schematics/migrations/divider-signals-and-aria/index.js +211 -0
  343. package/schematics/migrations/divider-signals-and-aria/schema.json +15 -0
  344. package/schematics/migrations/dl-attribute-coercion/README.md +59 -0
  345. package/schematics/migrations/dl-attribute-coercion/data.js +85 -0
  346. package/schematics/migrations/dl-attribute-coercion/index.js +161 -0
  347. package/schematics/migrations/dl-attribute-coercion/schema.json +15 -0
  348. package/schematics/migrations/dl-standalone-names/README.md +49 -0
  349. package/schematics/migrations/dl-standalone-names/data.js +44 -0
  350. package/schematics/migrations/dl-standalone-names/index.js +321 -0
  351. package/schematics/migrations/dl-standalone-names/schema.json +20 -0
  352. package/schematics/migrations/dropdown-demote-overlay/README.md +137 -0
  353. package/schematics/migrations/dropdown-demote-overlay/data.js +84 -0
  354. package/schematics/migrations/dropdown-demote-overlay/index.js +288 -0
  355. package/schematics/migrations/dropdown-demote-overlay/schema.json +20 -0
  356. package/schematics/migrations/dropdown-signals/README.md +83 -0
  357. package/schematics/migrations/dropdown-signals/data.js +152 -0
  358. package/schematics/migrations/dropdown-signals/index.js +19 -0
  359. package/schematics/migrations/dropdown-signals/schema.json +20 -0
  360. package/schematics/migrations/empty-state-error-color/README.md +84 -0
  361. package/schematics/migrations/empty-state-error-color/data.js +85 -0
  362. package/schematics/migrations/empty-state-error-color/index.js +71 -0
  363. package/schematics/migrations/empty-state-error-color/schema.json +15 -0
  364. package/schematics/migrations/empty-state-size-attr/README.md +2 -2
  365. package/schematics/migrations/empty-state-size-attr/index.js +1 -1
  366. package/schematics/migrations/file-upload-cva-and-primitives/README.md +70 -0
  367. package/schematics/migrations/file-upload-cva-and-primitives/data.js +97 -0
  368. package/schematics/migrations/file-upload-cva-and-primitives/index.js +60 -0
  369. package/schematics/migrations/file-upload-cva-and-primitives/schema.json +15 -0
  370. package/schematics/migrations/file-upload-deprecated-outputs/README.md +90 -0
  371. package/schematics/migrations/file-upload-deprecated-outputs/data.js +20 -0
  372. package/schematics/migrations/file-upload-deprecated-outputs/index.js +70 -0
  373. package/schematics/migrations/file-upload-deprecated-outputs/schema.json +20 -0
  374. package/schematics/migrations/filter-bar-rename-action/README.md +183 -0
  375. package/schematics/migrations/filter-bar-rename-action/data.js +151 -0
  376. package/schematics/migrations/filter-bar-rename-action/index.js +177 -0
  377. package/schematics/migrations/filter-bar-rename-action/schema.json +20 -0
  378. package/schematics/migrations/filter-bar-signals/README.md +27 -16
  379. package/schematics/migrations/filter-bar-signals/data.js +1 -2
  380. package/schematics/migrations/filter-bar-signals/index.js +100 -195
  381. package/schematics/migrations/filter-bar-state-saving-default/README.md +53 -0
  382. package/schematics/migrations/filter-bar-state-saving-default/data.js +87 -0
  383. package/schematics/migrations/filter-bar-state-saving-default/index.js +61 -0
  384. package/schematics/migrations/filter-bar-state-saving-default/schema.json +15 -0
  385. package/schematics/migrations/flag-inner-html/README.md +67 -0
  386. package/schematics/migrations/flag-inner-html/data.js +58 -0
  387. package/schematics/migrations/flag-inner-html/index.js +61 -0
  388. package/schematics/migrations/flag-inner-html/schema.json +15 -0
  389. package/schematics/migrations/form-field-signals/README.md +125 -0
  390. package/schematics/migrations/form-field-signals/data.js +288 -0
  391. package/schematics/migrations/form-field-signals/index.js +382 -0
  392. package/schematics/migrations/form-field-signals/schema.json +20 -0
  393. package/schematics/migrations/icon-semantics-and-api/README.md +65 -0
  394. package/schematics/migrations/icon-semantics-and-api/data.js +97 -0
  395. package/schematics/migrations/icon-semantics-and-api/index.js +64 -0
  396. package/schematics/migrations/icon-semantics-and-api/schema.json +15 -0
  397. package/schematics/migrations/icons-replacement/README.md +5 -5
  398. package/schematics/migrations/icons-replacement/index.js +1 -1
  399. package/schematics/migrations/inline-edit-a11y-and-types/README.md +82 -0
  400. package/schematics/migrations/inline-edit-a11y-and-types/data.js +117 -0
  401. package/schematics/migrations/inline-edit-a11y-and-types/index.js +97 -0
  402. package/schematics/migrations/inline-edit-a11y-and-types/schema.json +20 -0
  403. package/schematics/migrations/input-number-surface/README.md +140 -0
  404. package/schematics/migrations/input-number-surface/data.js +135 -0
  405. package/schematics/migrations/input-number-surface/index.js +292 -0
  406. package/schematics/migrations/input-number-surface/schema.json +20 -0
  407. package/schematics/migrations/input-signals/README.md +20 -0
  408. package/schematics/migrations/input-signals/data.js +30 -0
  409. package/schematics/migrations/input-signals/index.js +17 -0
  410. package/schematics/migrations/input-signals/schema.json +15 -0
  411. package/schematics/migrations/link-deprecated-path/README.md +144 -0
  412. package/schematics/migrations/link-deprecated-path/index.js +19 -0
  413. package/schematics/migrations/link-deprecated-path/schema.json +20 -0
  414. package/schematics/migrations/link-signals/README.md +71 -0
  415. package/schematics/migrations/link-signals/data.js +116 -0
  416. package/schematics/migrations/link-signals/index.js +415 -0
  417. package/schematics/migrations/link-signals/schema.json +20 -0
  418. package/schematics/migrations/list-signals/README.md +22 -0
  419. package/schematics/migrations/list-signals/data.js +35 -0
  420. package/schematics/migrations/list-signals/index.js +17 -0
  421. package/schematics/migrations/list-signals/schema.json +15 -0
  422. package/schematics/migrations/list-tree-multiple-input/README.md +105 -0
  423. package/schematics/migrations/list-tree-multiple-input/data.js +74 -0
  424. package/schematics/migrations/list-tree-multiple-input/index.js +221 -0
  425. package/schematics/migrations/list-tree-multiple-input/schema.json +20 -0
  426. package/schematics/migrations/loader-overlay-signals/README.md +62 -0
  427. package/schematics/migrations/loader-overlay-signals/data.js +101 -0
  428. package/schematics/migrations/loader-overlay-signals/index.js +697 -0
  429. package/schematics/migrations/loader-overlay-signals/schema.json +20 -0
  430. package/schematics/migrations/loader-overlay-size-attr/README.md +2 -2
  431. package/schematics/migrations/loader-overlay-size-attr/index.js +1 -1
  432. package/schematics/migrations/locale-configuration-providers/README.md +163 -0
  433. package/schematics/migrations/locale-configuration-providers/data.js +257 -0
  434. package/schematics/migrations/locale-configuration-providers/index.js +294 -0
  435. package/schematics/migrations/locale-configuration-providers/schema.json +20 -0
  436. package/schematics/migrations/mandatory-peer-dependencies/README.md +70 -0
  437. package/schematics/migrations/mandatory-peer-dependencies/index.js +42 -0
  438. package/schematics/migrations/mandatory-peer-dependencies/schema.json +15 -0
  439. package/schematics/migrations/markdown-signals/README.md +58 -0
  440. package/schematics/migrations/markdown-signals/data.js +79 -0
  441. package/schematics/migrations/markdown-signals/index.js +639 -0
  442. package/schematics/migrations/markdown-signals/schema.json +20 -0
  443. package/schematics/migrations/modal-dialog-semantics/README.md +106 -0
  444. package/schematics/migrations/modal-dialog-semantics/data.js +110 -0
  445. package/schematics/migrations/modal-dialog-semantics/index.js +58 -0
  446. package/schematics/migrations/modal-dialog-semantics/schema.json +15 -0
  447. package/schematics/migrations/modal-signals/README.md +88 -0
  448. package/schematics/migrations/modal-signals/data.js +132 -0
  449. package/schematics/migrations/modal-signals/index.js +19 -0
  450. package/schematics/migrations/modal-signals/schema.json +20 -0
  451. package/schematics/migrations/navbar-signals-and-aria/README.md +111 -0
  452. package/schematics/migrations/navbar-signals-and-aria/data.js +198 -0
  453. package/schematics/migrations/navbar-signals-and-aria/index.js +568 -0
  454. package/schematics/migrations/navbar-signals-and-aria/schema.json +20 -0
  455. package/schematics/migrations/new-icons-pack/README.md +10 -10
  456. package/schematics/migrations/new-icons-pack/index.js +1 -1
  457. package/schematics/migrations/notification-center-signals/README.md +67 -0
  458. package/schematics/migrations/notification-center-signals/data.js +66 -0
  459. package/schematics/migrations/notification-center-signals/index.js +61 -0
  460. package/schematics/migrations/notification-center-signals/schema.json +15 -0
  461. package/schematics/migrations/option-signals/README.md +37 -0
  462. package/schematics/migrations/option-signals/data.js +86 -0
  463. package/schematics/migrations/option-signals/index.js +19 -0
  464. package/schematics/migrations/option-signals/schema.json +20 -0
  465. package/schematics/migrations/popover-leave-delay/README.md +51 -0
  466. package/schematics/migrations/popover-leave-delay/data.js +61 -0
  467. package/schematics/migrations/popover-leave-delay/index.js +54 -0
  468. package/schematics/migrations/popover-leave-delay/schema.json +15 -0
  469. package/schematics/migrations/progress-bar-percentage-and-aria/README.md +54 -0
  470. package/schematics/migrations/progress-bar-percentage-and-aria/data.js +76 -0
  471. package/schematics/migrations/progress-bar-percentage-and-aria/index.js +58 -0
  472. package/schematics/migrations/progress-bar-percentage-and-aria/schema.json +15 -0
  473. package/schematics/migrations/progress-spinner-signals/README.md +72 -0
  474. package/schematics/migrations/progress-spinner-signals/data.js +83 -0
  475. package/schematics/migrations/progress-spinner-signals/index.js +694 -0
  476. package/schematics/migrations/progress-spinner-signals/schema.json +20 -0
  477. package/schematics/migrations/query-list-signals/README.md +32 -0
  478. package/schematics/migrations/query-list-signals/data.js +70 -0
  479. package/schematics/migrations/query-list-signals/index.js +17 -0
  480. package/schematics/migrations/query-list-signals/schema.json +15 -0
  481. package/schematics/migrations/radio-signals-and-aria/README.md +82 -0
  482. package/schematics/migrations/radio-signals-and-aria/data.js +163 -0
  483. package/schematics/migrations/radio-signals-and-aria/index.js +39 -0
  484. package/schematics/migrations/radio-signals-and-aria/schema.json +20 -0
  485. package/schematics/migrations/read-state-dwell-handlers/README.md +125 -0
  486. package/schematics/migrations/read-state-dwell-handlers/data.js +45 -0
  487. package/schematics/migrations/read-state-dwell-handlers/index.js +215 -0
  488. package/schematics/migrations/read-state-dwell-handlers/schema.json +20 -0
  489. package/schematics/migrations/scrollbar-deprecated-path/README.md +128 -0
  490. package/schematics/migrations/scrollbar-deprecated-path/index.js +20 -0
  491. package/schematics/migrations/scrollbar-deprecated-path/schema.json +20 -0
  492. package/schematics/migrations/select-signal-inputs/README.md +61 -0
  493. package/schematics/migrations/select-signal-inputs/data.js +99 -0
  494. package/schematics/migrations/select-signal-inputs/index.js +57 -0
  495. package/schematics/migrations/select-signal-inputs/schema.json +15 -0
  496. package/schematics/migrations/sidepanel-non-modal-behavior/README.md +57 -0
  497. package/schematics/migrations/sidepanel-non-modal-behavior/data.js +111 -0
  498. package/schematics/migrations/sidepanel-non-modal-behavior/index.js +57 -0
  499. package/schematics/migrations/sidepanel-non-modal-behavior/schema.json +15 -0
  500. package/schematics/migrations/signal-inputs-subclasses/README.md +28 -0
  501. package/schematics/migrations/signal-inputs-subclasses/data.js +69 -0
  502. package/schematics/migrations/signal-inputs-subclasses/index.js +17 -0
  503. package/schematics/migrations/signal-inputs-subclasses/schema.json +15 -0
  504. package/schematics/migrations/split-button-optional-disabled/README.md +47 -0
  505. package/schematics/migrations/split-button-optional-disabled/data.js +53 -0
  506. package/schematics/migrations/split-button-optional-disabled/index.js +57 -0
  507. package/schematics/migrations/split-button-optional-disabled/schema.json +15 -0
  508. package/schematics/migrations/splitter-deprecated-path/README.md +136 -0
  509. package/schematics/migrations/splitter-deprecated-path/index.js +20 -0
  510. package/schematics/migrations/splitter-deprecated-path/schema.json +20 -0
  511. package/schematics/migrations/state-saving-default/README.md +67 -0
  512. package/schematics/migrations/state-saving-default/data.js +88 -0
  513. package/schematics/migrations/state-saving-default/index.js +62 -0
  514. package/schematics/migrations/state-saving-default/schema.json +15 -0
  515. package/schematics/migrations/table-cell-content/README.md +55 -0
  516. package/schematics/migrations/table-cell-content/data.js +66 -0
  517. package/schematics/migrations/table-cell-content/index.js +66 -0
  518. package/schematics/migrations/table-cell-content/schema.json +15 -0
  519. package/schematics/migrations/tabs-signals-and-aria/README.md +93 -0
  520. package/schematics/migrations/tabs-signals-and-aria/data.js +139 -0
  521. package/schematics/migrations/tabs-signals-and-aria/index.js +65 -0
  522. package/schematics/migrations/tabs-signals-and-aria/schema.json +15 -0
  523. package/schematics/migrations/tag-list-cleaner/README.md +58 -0
  524. package/schematics/migrations/tag-list-cleaner/data.js +42 -0
  525. package/schematics/migrations/tag-list-cleaner/index.js +196 -0
  526. package/schematics/migrations/tag-list-cleaner/schema.json +20 -0
  527. package/schematics/migrations/tag-slots/README.md +41 -0
  528. package/schematics/migrations/tag-slots/index.js +190 -0
  529. package/schematics/migrations/tag-slots/schema.json +20 -0
  530. package/schematics/migrations/tags-signals/README.md +85 -0
  531. package/schematics/migrations/tags-signals/data.js +103 -0
  532. package/schematics/migrations/tags-signals/index.js +673 -0
  533. package/schematics/migrations/tags-signals/schema.json +20 -0
  534. package/schematics/migrations/textarea-signals/README.md +72 -0
  535. package/schematics/migrations/textarea-signals/data.js +121 -0
  536. package/schematics/migrations/textarea-signals/index.js +379 -0
  537. package/schematics/migrations/textarea-signals/schema.json +20 -0
  538. package/schematics/migrations/time-range-title-for/README.md +164 -0
  539. package/schematics/migrations/time-range-title-for/data.js +139 -0
  540. package/schematics/migrations/time-range-title-for/index.js +163 -0
  541. package/schematics/migrations/time-range-title-for/schema.json +20 -0
  542. package/schematics/migrations/timepicker-signals/README.md +78 -0
  543. package/schematics/migrations/timepicker-signals/data.js +82 -0
  544. package/schematics/migrations/timepicker-signals/index.js +709 -0
  545. package/schematics/migrations/timepicker-signals/schema.json +20 -0
  546. package/schematics/migrations/timezone-grouping-utils/README.md +73 -0
  547. package/schematics/migrations/timezone-grouping-utils/data.js +101 -0
  548. package/schematics/migrations/timezone-grouping-utils/index.js +64 -0
  549. package/schematics/migrations/timezone-grouping-utils/schema.json +15 -0
  550. package/schematics/migrations/title-encapsulation/README.md +49 -0
  551. package/schematics/migrations/title-encapsulation/data.js +69 -0
  552. package/schematics/migrations/title-encapsulation/index.js +57 -0
  553. package/schematics/migrations/title-encapsulation/schema.json +15 -0
  554. package/schematics/migrations/toast-stack-and-defaults/README.md +102 -0
  555. package/schematics/migrations/toast-stack-and-defaults/data.js +79 -0
  556. package/schematics/migrations/toast-stack-and-defaults/index.js +53 -0
  557. package/schematics/migrations/toast-stack-and-defaults/schema.json +15 -0
  558. package/schematics/migrations/tooltip-pointer-events-and-types/README.md +53 -0
  559. package/schematics/migrations/tooltip-pointer-events-and-types/data.js +89 -0
  560. package/schematics/migrations/tooltip-pointer-events-and-types/index.js +60 -0
  561. package/schematics/migrations/tooltip-pointer-events-and-types/schema.json +15 -0
  562. package/schematics/migrations/top-bar-container-selectors/README.md +111 -0
  563. package/schematics/migrations/top-bar-container-selectors/data.js +56 -0
  564. package/schematics/migrations/top-bar-container-selectors/index.js +84 -0
  565. package/schematics/migrations/top-bar-container-selectors/schema.json +20 -0
  566. package/schematics/migrations/tree-select-signals/README.md +61 -0
  567. package/schematics/migrations/tree-select-signals/data.js +106 -0
  568. package/schematics/migrations/tree-select-signals/index.js +58 -0
  569. package/schematics/migrations/tree-select-signals/schema.json +15 -0
  570. package/schematics/migrations/tree-signals/README.md +82 -0
  571. package/schematics/migrations/tree-signals/data.js +123 -0
  572. package/schematics/migrations/tree-signals/index.js +54 -0
  573. package/schematics/migrations/tree-signals/schema.json +15 -0
  574. package/schematics/migrations/tree-state-saving-default/README.md +66 -0
  575. package/schematics/migrations/tree-state-saving-default/data.js +78 -0
  576. package/schematics/migrations/tree-state-saving-default/index.js +60 -0
  577. package/schematics/migrations/tree-state-saving-default/schema.json +15 -0
  578. package/schematics/migrations/username-pipe-injection/README.md +59 -0
  579. package/schematics/migrations/username-pipe-injection/data.js +78 -0
  580. package/schematics/migrations/username-pipe-injection/index.js +58 -0
  581. package/schematics/migrations/username-pipe-injection/schema.json +15 -0
  582. package/schematics/migrations/v20-upgrade/README.md +36 -16
  583. package/schematics/migrations/v20-upgrade/data.js +124 -77
  584. package/schematics/migrations/v20-upgrade/index.js +6 -213
  585. package/schematics/migrations/v21-upgrade/README.md +271 -0
  586. package/schematics/migrations/v21-upgrade/data.js +1371 -0
  587. package/schematics/migrations/v21-upgrade/index.js +94 -0
  588. package/schematics/migrations/v21-upgrade/schema.json +20 -0
  589. package/schematics/migrations/zoneless-change-detection/README.md +30 -0
  590. package/schematics/migrations/zoneless-change-detection/data.js +29 -0
  591. package/schematics/migrations/zoneless-change-detection/index.js +20 -0
  592. package/schematics/migrations/zoneless-change-detection/schema.json +15 -0
  593. package/schematics/migrations.json +392 -2
  594. package/schematics/ng-add/index.js +515 -14
  595. package/schematics/ng-add/schema.json +15 -0
  596. package/schematics/utils/deprecated-path-migration.js +61 -0
  597. package/schematics/utils/package-config.js +9 -105
  598. package/scrollbar/{_scrollbar-component-theme.scss → deprecated/_scrollbar-component-theme.scss} +1 -1
  599. package/scrollbar/{scrollbar.component.scss → deprecated/scrollbar.component.scss} +1 -1
  600. package/scrollbar/native-scrollbar.scss +68 -0
  601. package/scrollbar/scrollbar-tokens.scss +13 -22
  602. package/scrollbar/scrollbar-track.scss +94 -0
  603. package/scrollbar/scrollbar-viewport.scss +33 -0
  604. package/scrollbar/scrollbar.scss +24 -0
  605. package/search-expandable/search-expandable-tokens.scss +4 -0
  606. package/search-expandable/search-expandable.scss +4 -2
  607. package/select/_select-theme.scss +3 -16
  608. package/select/select.scss +0 -6
  609. package/sidebar/sidebar.scss +20 -0
  610. package/sidepanel/_sidepanel-theme.scss +1 -1
  611. package/sidepanel/sidepanel-tokens.scss +7 -1
  612. package/sidepanel/sidepanel.scss +41 -5
  613. package/skeleton/skeleton-presets.scss +350 -0
  614. package/skeleton/skeleton-tokens.scss +127 -0
  615. package/skeleton/skeleton.scss +53 -45
  616. package/split-button/_split-button-theme.scss +4 -4
  617. package/split-button/split-button.scss +2 -6
  618. package/splitter/{_splitter-theme.scss → deprecated/_splitter-theme.scss} +1 -1
  619. package/splitter/deprecated/splitter.scss +51 -0
  620. package/splitter/splitter-tokens.scss +19 -0
  621. package/splitter/splitter.scss +148 -28
  622. package/table/_table-theme.scss +13 -12
  623. package/table/table-tokens.scss +8 -0
  624. package/table/table.scss +47 -22
  625. package/tabs/_tabs-common.scss +14 -14
  626. package/tabs/_tabs-theme.scss +4 -5
  627. package/tabs/tab-body.scss +49 -1
  628. package/tabs/tab-header.scss +2 -1
  629. package/tags/tag-list.scss +4 -0
  630. package/tags/tag.scss +19 -1
  631. package/time-range/time-range.scss +9 -0
  632. package/timezone/timezone-option.component.scss +4 -7
  633. package/timezone/timezone-select.component.scss +3 -0
  634. package/toast/_toast-theme.scss +1 -4
  635. package/toast/toast-container.component.scss +19 -13
  636. package/toast/toast-tokens.scss +12 -6
  637. package/toast/toast.component.scss +42 -19
  638. package/toggle/_toggle-theme.scss +4 -10
  639. package/toggle/toggle.scss +67 -26
  640. package/tooltip/_tooltip-theme.scss +7 -1
  641. package/tooltip/tooltip-tokens.scss +1 -2
  642. package/tooltip/tooltip.scss +55 -9
  643. package/top-bar/top-bar-tokens.scss +13 -2
  644. package/top-bar/top-bar.scss +24 -19
  645. package/tree/_tree-theme.scss +0 -1
  646. package/tree/toggle.scss +5 -9
  647. package/tree/tree-option.scss +2 -4
  648. package/tree/tree-tokens.scss +2 -1
  649. package/tree/tree.scss +3 -5
  650. package/tree-select/_tree-select-theme.scss +4 -15
  651. package/tree-select/tree-select-tokens.scss +16 -0
  652. package/tree-select/tree-select.scss +0 -6
  653. package/{accordion/index.d.ts → types/koobiq-components-accordion.d.ts} +102 -84
  654. package/{actions-panel/index.d.ts → types/koobiq-components-actions-panel.d.ts} +44 -59
  655. package/{alert/index.d.ts → types/koobiq-components-alert.d.ts} +8 -3
  656. package/types/koobiq-components-app-switcher.d.ts +406 -0
  657. package/types/koobiq-components-autocomplete.d.ts +443 -0
  658. package/{badge/index.d.ts → types/koobiq-components-badge.d.ts} +25 -20
  659. package/{breadcrumbs/index.d.ts → types/koobiq-components-breadcrumbs.d.ts} +97 -46
  660. package/types/koobiq-components-button-toggle.d.ts +340 -0
  661. package/types/koobiq-components-button.d.ts +296 -0
  662. package/types/koobiq-components-checkbox.d.ts +172 -0
  663. package/types/koobiq-components-clamped-text.d.ts +184 -0
  664. package/{code-block/index.d.ts → types/koobiq-components-code-block.d.ts} +114 -79
  665. package/{content-panel/index.d.ts → types/koobiq-components-content-panel.d.ts} +81 -25
  666. package/{core/index.d.ts → types/koobiq-components-core.d.ts} +2827 -865
  667. package/{datepicker/index.d.ts → types/koobiq-components-datepicker.d.ts} +161 -116
  668. package/types/koobiq-components-divider.d.ts +43 -0
  669. package/types/koobiq-components-dl.d.ts +235 -0
  670. package/{dropdown/index.d.ts → types/koobiq-components-dropdown.d.ts} +245 -239
  671. package/types/koobiq-components-ellipsis-center.d.ts +85 -0
  672. package/types/koobiq-components-empty-state.d.ts +106 -0
  673. package/{file-upload/index.d.ts → types/koobiq-components-file-upload.d.ts} +214 -107
  674. package/{filter-bar/index.d.ts → types/koobiq-components-filter-bar.d.ts} +410 -495
  675. package/types/koobiq-components-flag.d.ts +68 -0
  676. package/{form-field/index.d.ts → types/koobiq-components-form-field.d.ts} +167 -191
  677. package/types/koobiq-components-icon.d.ts +333 -0
  678. package/{inline-edit/index.d.ts → types/koobiq-components-inline-edit.d.ts} +109 -46
  679. package/types/koobiq-components-input.d.ts +477 -0
  680. package/types/koobiq-components-link-deprecated.d.ts +101 -0
  681. package/types/koobiq-components-link.d.ts +176 -0
  682. package/{list/index.d.ts → types/koobiq-components-list.d.ts} +162 -99
  683. package/types/koobiq-components-loader-overlay.d.ts +101 -0
  684. package/{markdown/index.d.ts → types/koobiq-components-markdown.d.ts} +16 -24
  685. package/types/koobiq-components-modal.d.ts +666 -0
  686. package/types/koobiq-components-navbar.d.ts +569 -0
  687. package/types/koobiq-components-notification-center.d.ts +500 -0
  688. package/{overflow-items/index.d.ts → types/koobiq-components-overflow-items.d.ts} +8 -22
  689. package/types/koobiq-components-popover.d.ts +468 -0
  690. package/types/koobiq-components-progress-bar.d.ts +67 -0
  691. package/{progress-spinner/index.d.ts → types/koobiq-components-progress-spinner.d.ts} +33 -10
  692. package/types/koobiq-components-radio.d.ts +294 -0
  693. package/{resizer/index.d.ts → types/koobiq-components-resizer.d.ts} +37 -2
  694. package/{scrollbar/index.d.ts → types/koobiq-components-scrollbar-deprecated.d.ts} +18 -1
  695. package/types/koobiq-components-scrollbar.d.ts +154 -0
  696. package/types/koobiq-components-search-expandable.d.ts +164 -0
  697. package/{select/index.d.ts → types/koobiq-components-select.d.ts} +360 -167
  698. package/types/koobiq-components-sidebar.d.ts +152 -0
  699. package/types/koobiq-components-sidepanel.d.ts +436 -0
  700. package/types/koobiq-components-skeleton.d.ts +234 -0
  701. package/types/koobiq-components-split-button.d.ts +65 -0
  702. package/{splitter/index.d.ts → types/koobiq-components-splitter-deprecated.d.ts} +44 -1
  703. package/types/koobiq-components-splitter.d.ts +406 -0
  704. package/types/koobiq-components-table.d.ts +44 -0
  705. package/types/koobiq-components-tabs.d.ts +888 -0
  706. package/{tags/index.d.ts → types/koobiq-components-tags.d.ts} +249 -133
  707. package/types/koobiq-components-textarea.d.ts +178 -0
  708. package/{time-range/index.d.ts → types/koobiq-components-time-range.d.ts} +135 -62
  709. package/types/koobiq-components-timepicker.d.ts +223 -0
  710. package/types/koobiq-components-timezone.d.ts +266 -0
  711. package/types/koobiq-components-title.d.ts +184 -0
  712. package/types/koobiq-components-toast.d.ts +289 -0
  713. package/types/koobiq-components-toggle.d.ts +121 -0
  714. package/types/koobiq-components-tooltip.d.ts +610 -0
  715. package/types/koobiq-components-top-bar.d.ts +61 -0
  716. package/types/koobiq-components-tree-select.d.ts +667 -0
  717. package/types/koobiq-components-tree.d.ts +1290 -0
  718. package/types/koobiq-components-username.d.ts +340 -0
  719. package/username/_username-theme.scss +35 -0
  720. package/username/username.scss +10 -34
  721. package/app-switcher/index.d.ts +0 -276
  722. package/autocomplete/index.d.ts +0 -286
  723. package/button/index.d.ts +0 -153
  724. package/button-toggle/index.d.ts +0 -162
  725. package/checkbox/index.d.ts +0 -163
  726. package/clamped-text/index.d.ts +0 -146
  727. package/core/styles/_tokens.scss +0 -7
  728. package/core/styles/common/_clearfix.scss +0 -13
  729. package/core/styles/common/_popup.scss +0 -6
  730. package/core/styles/functions/_index.scss +0 -3
  731. package/core/styles/functions/_number.scss +0 -60
  732. package/core/styles/functions/_string.scss +0 -18
  733. package/core/styles/theming/scrollbar-tokens.scss +0 -25
  734. package/core/styles/typography/_typography-utils.scss +0 -84
  735. package/divider/index.d.ts +0 -20
  736. package/dl/index.d.ts +0 -45
  737. package/ellipsis-center/index.d.ts +0 -71
  738. package/empty-state/index.d.ts +0 -45
  739. package/flag/index.d.ts +0 -44
  740. package/icon/index.d.ts +0 -200
  741. package/input/index.d.ts +0 -354
  742. package/link/index.d.ts +0 -56
  743. package/loader-overlay/index.d.ts +0 -57
  744. package/modal/index.d.ts +0 -339
  745. package/navbar/index.d.ts +0 -372
  746. package/notification-center/index.d.ts +0 -323
  747. package/popover/index.d.ts +0 -182
  748. package/prebuilt-themes/dark-theme.css +0 -1
  749. package/prebuilt-themes/light-theme.css +0 -1
  750. package/progress-bar/index.d.ts +0 -31
  751. package/radio/index.d.ts +0 -203
  752. package/search-expandable/index.d.ts +0 -101
  753. package/sidebar/index.d.ts +0 -94
  754. package/sidepanel/index.d.ts +0 -272
  755. package/skeleton/index.d.ts +0 -26
  756. package/split-button/index.d.ts +0 -46
  757. package/table/index.d.ts +0 -25
  758. package/tabs/index.d.ts +0 -677
  759. package/textarea/index.d.ts +0 -138
  760. package/timepicker/index.d.ts +0 -197
  761. package/timezone/index.d.ts +0 -125
  762. package/title/index.d.ts +0 -139
  763. package/toast/index.d.ts +0 -178
  764. package/toggle/index.d.ts +0 -104
  765. package/tooltip/index.d.ts +0 -335
  766. package/top-bar/index.d.ts +0 -33
  767. package/tree/index.d.ts +0 -802
  768. package/tree-select/index.d.ts +0 -475
  769. package/username/index.d.ts +0 -194
  770. /package/{dynamic-translation/index.d.ts → types/koobiq-components-dynamic-translation.d.ts} +0 -0
  771. /package/{index.d.ts → types/koobiq-components.d.ts} +0 -0
@@ -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
  /**
@@ -3,19 +3,18 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var ts = require('typescript');
6
- var utils_ast = require('../../utils/ast.js');
7
6
  var utils_messages = require('../../utils/messages.js');
8
- var utils_packageConfig = require('../../utils/package-config.js');
7
+ var utils_packageConfig = require('../../package-config-BhU2TfC8.js');
8
+ var signalMembersMigration = require('../../signal-members-migration-BoAJKutT.js');
9
+ var templateRefAccess = require('../../template-ref-access-DLNoxmmG.js');
9
10
  var utils_typescript = require('../../utils/typescript.js');
10
11
  var migrations_filterBarSignals_data = require('./data.js');
11
12
  require('@angular-devkit/schematics');
12
13
  require('@schematics/angular/utility');
14
+ require('../../utils/ast.js');
13
15
 
14
16
  const TS_EXT = '.ts';
15
17
  const HTML_EXT = '.html';
16
- function escapeRegExp(value) {
17
- return value.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
18
- }
19
18
  /** Applies text-span edits to `content`, right-to-left, so earlier edits don't shift later offsets. */
20
19
  function applyEdits(content, edits) {
21
20
  const sorted = [...edits].sort((a, b) => b.start - a.start || b.end - a.end);
@@ -25,221 +24,103 @@ function applyEdits(content, edits) {
25
24
  }
26
25
  return result;
27
26
  }
28
- const isFunctionLike = (node) => ts.isFunctionDeclaration(node) ||
29
- ts.isMethodDeclaration(node) ||
30
- ts.isConstructorDeclaration(node) ||
31
- ts.isArrowFunction(node) ||
32
- ts.isFunctionExpression(node) ||
33
- ts.isGetAccessorDeclaration(node) ||
34
- ts.isSetAccessorDeclaration(node);
35
- /** Walks up from `node` to the nearest ancestor matching `predicate`. */
36
- function findAncestor(node, predicate) {
37
- let current = node.parent;
38
- while (current) {
39
- if (predicate(current))
40
- return current;
41
- current = current.parent;
42
- }
43
- return undefined;
44
- }
45
- /** Whether a type annotation refers to the filter bar (`KbqFilterBar` / `KbqFilterBarHost`). */
46
- function isFilterBarType(type) {
47
- return (!!type &&
48
- ts.isTypeReferenceNode(type) &&
49
- ts.isIdentifier(type.typeName) &&
50
- (type.typeName.text === migrations_filterBarSignals_data.FILTER_BAR_TYPE || type.typeName.text === migrations_filterBarSignals_data.FILTER_BAR_HOST_TYPE));
27
+ /** The `KbqFilterBar` / `KbqFilterBarHost` receivers of a file, typed by annotation or `inject()`. */
28
+ function collectFileReceivers(sourceFile) {
29
+ return {
30
+ receivers: signalMembersMigration.collectAllReceivers(sourceFile, [migrations_filterBarSignals_data.FILTER_BAR_TYPE, migrations_filterBarSignals_data.FILTER_BAR_HOST_TYPE]),
31
+ bindings: signalMembersMigration.collectBindings(sourceFile)
32
+ };
51
33
  }
52
- const FIELD_MODIFIERS = new Set([
53
- ts.SyntaxKind.PrivateKeyword,
54
- ts.SyntaxKind.PublicKeyword,
55
- ts.SyntaxKind.ProtectedKeyword,
56
- ts.SyntaxKind.ReadonlyKeyword
57
- ]);
58
34
  /**
59
- * Collects the receivers whose static type is a filter bar, by explicit annotation only (no cross-package
60
- * type resolution): method/function params, class fields (incl. `@ViewChild(KbqFilterBar) x: KbqFilterBar`
61
- * and constructor parameter-properties) and typed locals.
35
+ * Whether `node` accesses a signal member on a filter-bar receiver. The shared engine resolves the receiver at
36
+ * this exact position, so a nested declaration that shadows its name or a `function` that rebinds `this` is
37
+ * not followed. A signal query holds the instance behind a call of its own, which this pass does not reach.
62
38
  */
63
- function collectReceivers(sourceFile) {
64
- const receivers = [];
65
- const add = (text, scope) => receivers.push({ text, start: scope.getStart(sourceFile), end: scope.getEnd() });
39
+ function isSignalMemberAccess(node, sourceFile, scope) {
40
+ if (!ts.isPropertyAccessExpression(node) ||
41
+ !ts.isIdentifier(node.name) ||
42
+ !migrations_filterBarSignals_data.SIGNAL_MEMBERS.includes(node.name.text)) {
43
+ return false;
44
+ }
45
+ const receiver = signalMembersMigration.resolveReceiver(node.expression, node, sourceFile, scope.receivers, scope.bindings);
46
+ return !!receiver && !receiver.signalQuery;
47
+ }
48
+ /** Collects edits for every read/write of a signal member on a known filter-bar receiver. */
49
+ function collectAccessEdits(sourceFile, scope) {
50
+ const edits = [];
66
51
  const visit = (node) => {
67
- if (ts.isParameter(node) && ts.isIdentifier(node.name) && isFilterBarType(node.type)) {
68
- add(node.name.text, findAncestor(node, isFunctionLike) ?? sourceFile);
69
- // A constructor parameter-property is also a class field, reachable as `this.<name>`.
70
- if (node.modifiers?.some((modifier) => FIELD_MODIFIERS.has(modifier.kind))) {
71
- const owner = findAncestor(node, ts.isClassDeclaration);
72
- if (owner)
73
- add(`this.${node.name.text}`, owner);
74
- }
75
- }
76
- else if (ts.isPropertyDeclaration(node) && ts.isIdentifier(node.name) && isFilterBarType(node.type)) {
77
- const owner = findAncestor(node, ts.isClassDeclaration);
78
- if (owner)
79
- add(`this.${node.name.text}`, owner);
80
- }
81
- else if (ts.isVariableDeclaration(node) && ts.isIdentifier(node.name) && isFilterBarType(node.type)) {
82
- add(node.name.text, findAncestor(node, isFunctionLike) ?? sourceFile);
83
- }
52
+ if (isSignalMemberAccess(node, sourceFile, scope))
53
+ signalMembersMigration.classifyAccess(node, sourceFile, migrations_filterBarSignals_data.WRITABLE_MEMBERS, edits);
84
54
  node.forEachChild(visit);
85
55
  };
86
56
  visit(sourceFile);
87
- return receivers;
88
- }
89
- /** Classifies a matched property access and appends the resulting edit(s). */
90
- function classifyAccess(node, sourceFile, edits) {
91
- const parent = node.parent;
92
- // Already migrated: `x.filter()` (call) or `x.filter.set(...)` — leave alone (idempotent).
93
- if (ts.isCallExpression(parent) && parent.expression === node)
94
- return;
95
- if (ts.isPropertyAccessExpression(parent) && parent.expression === node && parent.name.text === 'set')
96
- return;
97
- // Write target: `x.filter = RHS` → `x.filter.set(RHS)` (writable members only).
98
- if (ts.isBinaryExpression(parent) &&
99
- parent.left === node &&
100
- parent.operatorToken.kind === ts.SyntaxKind.EqualsToken) {
101
- if (migrations_filterBarSignals_data.WRITABLE_MEMBERS.has(node.name.text)) {
102
- const rhs = parent.right;
103
- // Replace ` = ` with `.set(` and close after the right-hand side; keeping the RHS span intact
104
- // lets any nested read edits inside it still apply.
105
- edits.push({ start: node.getEnd(), end: rhs.getStart(sourceFile), text: '.set(' });
106
- edits.push({ start: rhs.getEnd(), end: rhs.getEnd(), text: ')' });
107
- }
108
- return;
109
- }
110
- // Read (incl. optional chain `x?.filter`): append `()`.
111
- edits.push({ start: node.getEnd(), end: node.getEnd(), text: '()' });
57
+ return edits;
112
58
  }
113
- /** Collects edits for every read/write of a signal member on a known filter-bar receiver. */
114
- function collectAccessEdits(sourceFile, receivers) {
115
- const edits = [];
59
+ /** Signal members written on a filter-bar receiver in a form the rewrite leaves for the consumer. */
60
+ function collectWrites(sourceFile, scope) {
61
+ const writes = { readOnlyWrites: new Set(), compoundWrites: new Set() };
116
62
  const visit = (node) => {
117
- if (ts.isPropertyAccessExpression(node) &&
118
- ts.isIdentifier(node.name) &&
119
- migrations_filterBarSignals_data.SIGNAL_MEMBERS.includes(node.name.text)) {
120
- const receiverText = node.expression.getText(sourceFile);
121
- const start = node.getStart(sourceFile);
122
- const end = node.getEnd();
123
- const inScope = receivers.some((r) => r.text === receiverText && start >= r.start && end <= r.end);
124
- if (inScope)
125
- classifyAccess(node, sourceFile, edits);
63
+ if (isSignalMemberAccess(node, sourceFile, scope) && signalMembersMigration.isWriteTarget(node)) {
64
+ const name = node.name.text;
65
+ if (!migrations_filterBarSignals_data.WRITABLE_MEMBERS.has(name))
66
+ writes.readOnlyWrites.add(name);
67
+ else if (!signalMembersMigration.isPlainAssignment(node))
68
+ writes.compoundWrites.add(name);
126
69
  }
127
70
  node.forEachChild(visit);
128
71
  };
129
72
  visit(sourceFile);
130
- return edits;
73
+ return writes;
131
74
  }
132
75
  /** Pass A — rewrite programmatic reads/writes of filter-bar signal members in TypeScript code. */
133
76
  function migrateTsExpressions(content, fileName) {
134
77
  const sourceFile = ts.createSourceFile(fileName, content, ts.ScriptTarget.Latest, true, ts.ScriptKind.TS);
135
- const receivers = collectReceivers(sourceFile);
136
- if (receivers.length === 0)
78
+ const scope = collectFileReceivers(sourceFile);
79
+ if (scope.receivers.length === 0)
137
80
  return content;
138
- const edits = collectAccessEdits(sourceFile, receivers);
81
+ const edits = collectAccessEdits(sourceFile, scope);
139
82
  return edits.length > 0 ? applyEdits(content, edits) : content;
140
83
  }
141
- /** Collects template reference variable names bound to a `<kbq-filter-bar>` element. */
142
- class FilterBarRefCollector {
143
- constructor() {
144
- this.refs = new Set();
145
- }
146
- visitElement(element) {
147
- if (element.name === migrations_filterBarSignals_data.FILTER_BAR_ELEMENT) {
148
- for (const attr of element.attrs ?? []) {
149
- if (typeof attr.name !== 'string')
150
- continue;
151
- if (attr.name.startsWith('#'))
152
- this.refs.add(attr.name.slice(1));
153
- else if (attr.name.startsWith('ref-'))
154
- this.refs.add(attr.name.slice(4));
155
- }
156
- }
157
- this.visitChildren(element);
158
- }
159
- visitBlock(block) {
160
- this.visitChildren(block);
161
- }
162
- visitChildren(node) {
163
- for (const child of node.children ?? []) {
164
- child.visit(this);
165
- }
166
- }
167
- visitAttribute() { }
168
- visitText() { }
169
- visitComment() { }
170
- visitExpansion() { }
171
- visitExpansionCase() { }
172
- visitBlockParameter() { }
173
- visitLetDeclaration() { }
174
- }
175
- /** Rewrites `ref.member` reads to `ref.member()` for the given refs, scoped to those exact identifiers. */
176
- function rewriteRefReads(template, refs) {
177
- const members = migrations_filterBarSignals_data.SIGNAL_MEMBERS.join('|');
178
- let content = template;
179
- let changed = false;
180
- for (const ref of refs) {
181
- // `\bref\.(member)\b(?!\s*\()` — skip anything already invoked, so the rewrite is idempotent.
182
- const pattern = new RegExp(`\\b(${escapeRegExp(ref)})\\.(${members})\\b(?!\\s*\\()`, 'g');
183
- const next = content.replace(pattern, '$1.$2()');
184
- if (next !== content) {
185
- content = next;
186
- changed = true;
187
- }
188
- }
189
- return { content, changed };
84
+ /** Merges the writes in `from` into `into`. */
85
+ function mergeWrites(into, from) {
86
+ from.readOnlyWrites.forEach((member) => into.readOnlyWrites.add(member));
87
+ from.compoundWrites.forEach((member) => into.compoundWrites.add(member));
190
88
  }
191
- /** Pass B (core) — parse a template, discover filter-bar refs, rewrite their signal reads. */
89
+ /** What a reference variable on `<kbq-filter-bar>` reaches. */
90
+ const REF_POLICY = { members: migrations_filterBarSignals_data.SIGNAL_MEMBERS, writable: migrations_filterBarSignals_data.WRITABLE_MEMBERS };
91
+ /** Pass B (core) — parse a template, discover filter-bar refs, rewrite their signal reads and `filter` writes. */
192
92
  async function migrateTemplate(template) {
93
+ const untouched = {
94
+ content: template,
95
+ changed: false,
96
+ readOnlyWrites: new Set(),
97
+ compoundWrites: new Set()
98
+ };
193
99
  if (!template.includes(migrations_filterBarSignals_data.FILTER_BAR_ELEMENT))
194
- return { content: template, changed: false };
100
+ return untouched;
195
101
  const parsed = await utils_typescript.parseTemplate(template);
196
102
  if (!parsed.tree)
197
- return { content: template, changed: false };
198
- const collector = new FilterBarRefCollector();
199
- utils_ast.visitAll(collector, parsed.tree.rootNodes);
200
- if (collector.refs.size === 0)
201
- return { content: template, changed: false };
202
- return rewriteRefReads(template, [...collector.refs]);
203
- }
204
- /** Interior `[start, end]` ranges of inline `@Component({ template: '…' })` string literals. */
205
- function collectInlineTemplateRanges(sourceFile) {
206
- const ranges = [];
207
- utils_typescript.forEachClass(sourceFile, (node) => {
208
- const decorator = ts
209
- .getDecorators(node)
210
- ?.find((dec) => ts.isCallExpression(dec.expression) &&
211
- ts.isIdentifier(dec.expression.expression) &&
212
- dec.expression.expression.text === 'Component');
213
- if (!decorator || !ts.isCallExpression(decorator.expression))
214
- return;
215
- const [arg] = decorator.expression.arguments;
216
- if (!arg || !ts.isObjectLiteralExpression(arg))
217
- return;
218
- for (const prop of arg.properties) {
219
- if (ts.isPropertyAssignment(prop) &&
220
- (ts.isIdentifier(prop.name) || ts.isStringLiteralLike(prop.name)) &&
221
- prop.name.text === 'template' &&
222
- ts.isStringLiteralLike(prop.initializer) &&
223
- prop.initializer.text) {
224
- // +1 / -1 to exclude the opening/closing quote characters.
225
- ranges.push({ start: prop.initializer.getStart(sourceFile) + 1, end: prop.initializer.getEnd() - 1 });
226
- }
227
- }
228
- });
229
- return ranges;
103
+ return untouched;
104
+ const { rootNodes } = parsed.tree;
105
+ // `KbqFilterBar` has no `exportAs`, so only a bare `#ref` is the filter bar; `#ref="ngModel"` names another
106
+ // directive.
107
+ const { content, readOnlyWrites, compoundWrites } = templateRefAccess.rewriteRefAccesses(template, rootNodes, (element, value) => element.name === migrations_filterBarSignals_data.FILTER_BAR_ELEMENT && !value ? REF_POLICY : undefined);
108
+ return { content, changed: content !== template, readOnlyWrites, compoundWrites };
230
109
  }
231
110
  /** Pass B (inline) — rewrite filter-bar ref reads inside inline component templates. */
232
111
  async function migrateInlineTemplates(content, fileName) {
233
112
  const sourceFile = ts.createSourceFile(fileName, content, ts.ScriptTarget.Latest, true, ts.ScriptKind.TS);
234
- const ranges = collectInlineTemplateRanges(sourceFile).sort((a, b) => b.start - a.start);
113
+ const ranges = utils_typescript.collectInlineTemplateRanges(sourceFile).sort((a, b) => b.start - a.start);
114
+ const writes = { readOnlyWrites: new Set(), compoundWrites: new Set() };
235
115
  let result = content;
236
116
  for (const { start, end } of ranges) {
237
- const { content: rewritten, changed } = await migrateTemplate(result.slice(start, end));
238
- if (changed) {
239
- result = result.slice(0, start) + rewritten + result.slice(end);
117
+ const outcome = await migrateTemplate(result.slice(start, end));
118
+ mergeWrites(writes, outcome);
119
+ if (outcome.changed) {
120
+ result = result.slice(0, start) + outcome.content + result.slice(end);
240
121
  }
241
122
  }
242
- return result;
123
+ return { content: result, ...writes };
243
124
  }
244
125
  /** Pass C — safe identifier renames. */
245
126
  function applyRenames(content) {
@@ -256,6 +137,27 @@ function logWarnings(context, filePath, content) {
256
137
  }
257
138
  }
258
139
  }
140
+ /** Reports writes to signal members that are read-only now, made in code or through a template reference. */
141
+ function warnReadOnlyWrites(context, filePath, members) {
142
+ if (members.size === 0)
143
+ return;
144
+ utils_messages.logMessage(context.logger, [
145
+ `[filter-bar-signals] ${filePath}`,
146
+ ` \`${[...members].join('`, `')}\` can no longer be assigned: they are read-only signals now. Bind`,
147
+ ` \`[pipeTemplates]\` in the template instead; the \`is*\` state follows \`filter\`.`
148
+ ]);
149
+ }
150
+ /** Reports writes to `filter` that have no `.set()` form, made in code or through a template reference. */
151
+ function warnCompoundWrites(context, filePath, members) {
152
+ if (members.size === 0)
153
+ return;
154
+ utils_messages.logMessage(context.logger, [
155
+ `[filter-bar-signals] ${filePath}`,
156
+ ` \`${[...members].join('`, `')}\` is a writable signal now, but only a plain \`=\` is rewritten to`,
157
+ ` \`.set()\`: a compound assignment, an increment, \`delete\` or a destructuring target was left as it`,
158
+ ` is. Write it with \`.set()\` or \`.update()\`.`
159
+ ]);
160
+ }
259
161
  /** A `.ts` file is a filter-bar consumer if it names the type or imports the package. */
260
162
  function referencesFilterBar(content) {
261
163
  return /\bKbqFilterBar\b/.test(content) || content.includes('@koobiq/components/filter-bar');
@@ -271,9 +173,7 @@ function filterBarSignals(options) {
271
173
  const rootDir = root ? tree.getDir(root) : tree.root;
272
174
  const tsPaths = [];
273
175
  const htmlPaths = [];
274
- rootDir.visit((filePath) => {
275
- if (filePath.includes('node_modules') || filePath.includes('/dist/'))
276
- return;
176
+ utils_packageConfig.visitProjectFiles(rootDir, (filePath) => {
277
177
  if (filePath.endsWith(TS_EXT))
278
178
  tsPaths.push(filePath);
279
179
  else if (filePath.endsWith(HTML_EXT))
@@ -296,16 +196,21 @@ function filterBarSignals(options) {
296
196
  if (!original || !referencesFilterBar(original))
297
197
  continue;
298
198
  logWarnings(context, filePath, original);
299
- let content = migrateTsExpressions(original, filePath);
300
- content = await migrateInlineTemplates(content, filePath);
301
- content = applyRenames(content);
302
- commit(filePath, original, content);
199
+ const sourceFile = ts.createSourceFile(filePath, original, ts.ScriptTarget.Latest, true, ts.ScriptKind.TS);
200
+ const writes = collectWrites(sourceFile, collectFileReceivers(sourceFile));
201
+ const inline = await migrateInlineTemplates(migrateTsExpressions(original, filePath), filePath);
202
+ mergeWrites(writes, inline);
203
+ warnReadOnlyWrites(context, filePath, writes.readOnlyWrites);
204
+ warnCompoundWrites(context, filePath, writes.compoundWrites);
205
+ commit(filePath, original, applyRenames(inline.content));
303
206
  }
304
207
  for (const filePath of htmlPaths) {
305
208
  const original = tree.read(filePath)?.toString();
306
209
  if (!original)
307
210
  continue;
308
- const { content, changed } = await migrateTemplate(original);
211
+ const { content, changed, readOnlyWrites, compoundWrites } = await migrateTemplate(original);
212
+ warnReadOnlyWrites(context, filePath, readOnlyWrites);
213
+ warnCompoundWrites(context, filePath, compoundWrites);
309
214
  if (changed)
310
215
  commit(filePath, original, content);
311
216
  }
@@ -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;