@koobiq/components 20.4.1 → 21.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (771) hide show
  1. package/accordion/accordion-trigger.scss +3 -10
  2. package/accordion/accordion.scss +4 -6
  3. package/actions-panel/actions-panel-container.scss +45 -1
  4. package/alert/alert.component.scss +3 -2
  5. package/app-switcher/_app-switcher-theme.scss +0 -4
  6. package/app-switcher/app-switcher-dropdown-app.scss +3 -2
  7. package/app-switcher/app-switcher-dropdown-site.scss +2 -1
  8. package/app-switcher/{kbq-app-switcher-list-item.scss → app-switcher-list-item.scss} +18 -4
  9. package/app-switcher/app-switcher-tokens.scss +15 -0
  10. package/app-switcher/app-switcher.scss +14 -4
  11. package/autocomplete/autocomplete.scss +7 -6
  12. package/badge/badge.component.scss +5 -8
  13. package/breadcrumbs/breadcrumbs.scss +25 -10
  14. package/button/_button-base.scss +30 -7
  15. package/button/_button-theme.scss +16 -0
  16. package/button/button-group.scss +7 -0
  17. package/button/button-tokens.scss +0 -2
  18. package/button/button.scss +34 -2
  19. package/button-toggle/_button-toggle-theme.scss +7 -2
  20. package/button-toggle/button-toggle.scss +65 -15
  21. package/checkbox/_checkbox-theme.scss +4 -3
  22. package/checkbox/checkbox.scss +3 -6
  23. package/clamped-text/clamped-text.scss +6 -2
  24. package/code-block/code-block-tokens.scss +0 -224
  25. package/code-block/code-block.scss +20 -9
  26. package/content-panel/content-panel-aside.scss +3 -2
  27. package/content-panel/content-panel-container.scss +37 -0
  28. package/content-panel/content-panel.scss +4 -3
  29. package/core/highlight/_highlight-theme.scss +3 -1
  30. package/core/option/action-container.scss +2 -2
  31. package/core/option/action.scss +2 -1
  32. package/core/option/option.scss +2 -1
  33. package/core/pop-up/_pop-up.scss +0 -37
  34. package/core/selection/pseudo-checkbox/pseudo-checkbox.scss +5 -10
  35. package/core/styles/_core.scss +3 -0
  36. package/core/styles/_koobiq-theme.scss +5 -6
  37. package/core/styles/common/_animation.scss +44 -16
  38. package/core/styles/common/_groups-mixins.scss +21 -19
  39. package/core/styles/common/_groups.scss +4 -32
  40. package/core/styles/common/_index.scss +0 -2
  41. package/core/styles/common/_link.scss +117 -0
  42. package/core/styles/common/_list.scss +0 -26
  43. package/core/styles/common/_overlay.scss +8 -10
  44. package/core/styles/common/_rtl.scss +0 -14
  45. package/core/styles/common/_select.scss +33 -15
  46. package/core/styles/common/_squircle.scss +63 -0
  47. package/core/styles/common/_tokens.scss +0 -11
  48. package/core/styles/common/_vendor-prefixes.scss +0 -20
  49. package/core/styles/functions/_timing.scss +0 -22
  50. package/core/styles/theming/_scrollbar-theme.scss +6 -1
  51. package/core/styles/theming/_theming.scss +13 -65
  52. package/core/styles/typography/_index.scss +0 -1
  53. package/core/styles/typography/_typography.scss +0 -143
  54. package/core/styles/visual/_body.scss +1 -6
  55. package/core/styles/visual/_layout.scss +0 -12
  56. package/datepicker/calendar-body.scss +3 -1
  57. package/datepicker/calendar-header.scss +0 -1
  58. package/datepicker/datepicker-content.scss +33 -1
  59. package/datepicker/datepicker-toggle.scss +0 -38
  60. package/dl/dl-tokens.scss +10 -0
  61. package/dl/dl.scss +113 -13
  62. package/dropdown/_dropdown-theme.scss +4 -16
  63. package/dropdown/dropdown-item.scss +4 -10
  64. package/dropdown/dropdown.scss +2 -1
  65. package/empty-state/_empty-state-theme.scss +10 -4
  66. package/empty-state/empty-state-tokens.scss +4 -4
  67. package/empty-state/empty-state.scss +4 -0
  68. package/fesm2022/koobiq-components-accordion.mjs +347 -229
  69. package/fesm2022/koobiq-components-accordion.mjs.map +1 -1
  70. package/fesm2022/koobiq-components-actions-panel.mjs +302 -187
  71. package/fesm2022/koobiq-components-actions-panel.mjs.map +1 -1
  72. package/fesm2022/koobiq-components-alert.mjs +39 -39
  73. package/fesm2022/koobiq-components-alert.mjs.map +1 -1
  74. package/fesm2022/koobiq-components-app-switcher.mjs +677 -367
  75. package/fesm2022/koobiq-components-app-switcher.mjs.map +1 -1
  76. package/fesm2022/koobiq-components-autocomplete.mjs +620 -253
  77. package/fesm2022/koobiq-components-autocomplete.mjs.map +1 -1
  78. package/fesm2022/koobiq-components-badge.mjs +46 -48
  79. package/fesm2022/koobiq-components-badge.mjs.map +1 -1
  80. package/fesm2022/koobiq-components-breadcrumbs.mjs +221 -169
  81. package/fesm2022/koobiq-components-breadcrumbs.mjs.map +1 -1
  82. package/fesm2022/koobiq-components-button-toggle.mjs +565 -196
  83. package/fesm2022/koobiq-components-button-toggle.mjs.map +1 -1
  84. package/fesm2022/koobiq-components-button.mjs +332 -116
  85. package/fesm2022/koobiq-components-button.mjs.map +1 -1
  86. package/fesm2022/koobiq-components-checkbox.mjs +172 -132
  87. package/fesm2022/koobiq-components-checkbox.mjs.map +1 -1
  88. package/fesm2022/koobiq-components-clamped-text.mjs +165 -158
  89. package/fesm2022/koobiq-components-clamped-text.mjs.map +1 -1
  90. package/fesm2022/koobiq-components-code-block.mjs +755 -601
  91. package/fesm2022/koobiq-components-code-block.mjs.map +1 -1
  92. package/fesm2022/koobiq-components-content-panel.mjs +260 -143
  93. package/fesm2022/koobiq-components-content-panel.mjs.map +1 -1
  94. package/fesm2022/koobiq-components-core.mjs +4342 -1595
  95. package/fesm2022/koobiq-components-core.mjs.map +1 -1
  96. package/fesm2022/koobiq-components-datepicker.mjs +1713 -1606
  97. package/fesm2022/koobiq-components-datepicker.mjs.map +1 -1
  98. package/fesm2022/koobiq-components-divider.mjs +73 -36
  99. package/fesm2022/koobiq-components-divider.mjs.map +1 -1
  100. package/fesm2022/koobiq-components-dl.mjs +447 -89
  101. package/fesm2022/koobiq-components-dl.mjs.map +1 -1
  102. package/fesm2022/koobiq-components-dropdown.mjs +703 -599
  103. package/fesm2022/koobiq-components-dropdown.mjs.map +1 -1
  104. package/fesm2022/koobiq-components-dynamic-translation.mjs +20 -20
  105. package/fesm2022/koobiq-components-dynamic-translation.mjs.map +1 -1
  106. package/fesm2022/koobiq-components-ellipsis-center.mjs +46 -31
  107. package/fesm2022/koobiq-components-ellipsis-center.mjs.map +1 -1
  108. package/fesm2022/koobiq-components-empty-state.mjs +116 -60
  109. package/fesm2022/koobiq-components-empty-state.mjs.map +1 -1
  110. package/fesm2022/koobiq-components-file-upload.mjs +550 -290
  111. package/fesm2022/koobiq-components-file-upload.mjs.map +1 -1
  112. package/fesm2022/koobiq-components-filter-bar.mjs +2810 -2538
  113. package/fesm2022/koobiq-components-filter-bar.mjs.map +1 -1
  114. package/fesm2022/koobiq-components-flag.mjs +79 -24
  115. package/fesm2022/koobiq-components-flag.mjs.map +1 -1
  116. package/fesm2022/koobiq-components-form-field.mjs +389 -525
  117. package/fesm2022/koobiq-components-form-field.mjs.map +1 -1
  118. package/fesm2022/koobiq-components-icon.mjs +366 -136
  119. package/fesm2022/koobiq-components-icon.mjs.map +1 -1
  120. package/fesm2022/koobiq-components-inline-edit.mjs +429 -212
  121. package/fesm2022/koobiq-components-inline-edit.mjs.map +1 -1
  122. package/fesm2022/koobiq-components-input.mjs +601 -459
  123. package/fesm2022/koobiq-components-input.mjs.map +1 -1
  124. package/fesm2022/koobiq-components-link-deprecated.mjs +196 -0
  125. package/fesm2022/koobiq-components-link-deprecated.mjs.map +1 -0
  126. package/fesm2022/koobiq-components-link.mjs +328 -125
  127. package/fesm2022/koobiq-components-link.mjs.map +1 -1
  128. package/fesm2022/koobiq-components-list.mjs +583 -433
  129. package/fesm2022/koobiq-components-list.mjs.map +1 -1
  130. package/fesm2022/koobiq-components-loader-overlay.mjs +167 -68
  131. package/fesm2022/koobiq-components-loader-overlay.mjs.map +1 -1
  132. package/fesm2022/koobiq-components-markdown.mjs +55 -78
  133. package/fesm2022/koobiq-components-markdown.mjs.map +1 -1
  134. package/fesm2022/koobiq-components-modal.mjs +853 -475
  135. package/fesm2022/koobiq-components-modal.mjs.map +1 -1
  136. package/fesm2022/koobiq-components-navbar.mjs +895 -556
  137. package/fesm2022/koobiq-components-navbar.mjs.map +1 -1
  138. package/fesm2022/koobiq-components-notification-center.mjs +680 -310
  139. package/fesm2022/koobiq-components-notification-center.mjs.map +1 -1
  140. package/fesm2022/koobiq-components-overflow-items.mjs +46 -64
  141. package/fesm2022/koobiq-components-overflow-items.mjs.map +1 -1
  142. package/fesm2022/koobiq-components-popover.mjs +684 -285
  143. package/fesm2022/koobiq-components-popover.mjs.map +1 -1
  144. package/fesm2022/koobiq-components-progress-bar.mjs +87 -33
  145. package/fesm2022/koobiq-components-progress-bar.mjs.map +1 -1
  146. package/fesm2022/koobiq-components-progress-spinner.mjs +52 -43
  147. package/fesm2022/koobiq-components-progress-spinner.mjs.map +1 -1
  148. package/fesm2022/koobiq-components-radio.mjs +450 -231
  149. package/fesm2022/koobiq-components-radio.mjs.map +1 -1
  150. package/fesm2022/koobiq-components-resizer.mjs +127 -21
  151. package/fesm2022/koobiq-components-resizer.mjs.map +1 -1
  152. package/fesm2022/koobiq-components-scrollbar-deprecated.mjs +299 -0
  153. package/fesm2022/koobiq-components-scrollbar-deprecated.mjs.map +1 -0
  154. package/fesm2022/koobiq-components-scrollbar.mjs +745 -222
  155. package/fesm2022/koobiq-components-scrollbar.mjs.map +1 -1
  156. package/fesm2022/koobiq-components-search-expandable.mjs +288 -126
  157. package/fesm2022/koobiq-components-search-expandable.mjs.map +1 -1
  158. package/fesm2022/koobiq-components-select.mjs +883 -693
  159. package/fesm2022/koobiq-components-select.mjs.map +1 -1
  160. package/fesm2022/koobiq-components-sidebar.mjs +207 -88
  161. package/fesm2022/koobiq-components-sidebar.mjs.map +1 -1
  162. package/fesm2022/koobiq-components-sidepanel.mjs +689 -296
  163. package/fesm2022/koobiq-components-sidepanel.mjs.map +1 -1
  164. package/fesm2022/koobiq-components-skeleton.mjs +815 -41
  165. package/fesm2022/koobiq-components-skeleton.mjs.map +1 -1
  166. package/fesm2022/koobiq-components-split-button.mjs +109 -88
  167. package/fesm2022/koobiq-components-split-button.mjs.map +1 -1
  168. package/fesm2022/koobiq-components-splitter-deprecated.mjs +591 -0
  169. package/fesm2022/koobiq-components-splitter-deprecated.mjs.map +1 -0
  170. package/fesm2022/koobiq-components-splitter.mjs +890 -501
  171. package/fesm2022/koobiq-components-splitter.mjs.map +1 -1
  172. package/fesm2022/koobiq-components-table.mjs +63 -49
  173. package/fesm2022/koobiq-components-table.mjs.map +1 -1
  174. package/fesm2022/koobiq-components-tabs.mjs +1062 -603
  175. package/fesm2022/koobiq-components-tabs.mjs.map +1 -1
  176. package/fesm2022/koobiq-components-tags.mjs +886 -733
  177. package/fesm2022/koobiq-components-tags.mjs.map +1 -1
  178. package/fesm2022/koobiq-components-textarea.mjs +213 -185
  179. package/fesm2022/koobiq-components-textarea.mjs.map +1 -1
  180. package/fesm2022/koobiq-components-time-range.mjs +299 -147
  181. package/fesm2022/koobiq-components-time-range.mjs.map +1 -1
  182. package/fesm2022/koobiq-components-timepicker.mjs +233 -245
  183. package/fesm2022/koobiq-components-timepicker.mjs.map +1 -1
  184. package/fesm2022/koobiq-components-timezone.mjs +344 -142
  185. package/fesm2022/koobiq-components-timezone.mjs.map +1 -1
  186. package/fesm2022/koobiq-components-title.mjs +229 -145
  187. package/fesm2022/koobiq-components-title.mjs.map +1 -1
  188. package/fesm2022/koobiq-components-toast.mjs +486 -165
  189. package/fesm2022/koobiq-components-toast.mjs.map +1 -1
  190. package/fesm2022/koobiq-components-toggle.mjs +177 -130
  191. package/fesm2022/koobiq-components-toggle.mjs.map +1 -1
  192. package/fesm2022/koobiq-components-tooltip.mjs +657 -214
  193. package/fesm2022/koobiq-components-tooltip.mjs.map +1 -1
  194. package/fesm2022/koobiq-components-top-bar.mjs +61 -32
  195. package/fesm2022/koobiq-components-top-bar.mjs.map +1 -1
  196. package/fesm2022/koobiq-components-tree-select.mjs +719 -488
  197. package/fesm2022/koobiq-components-tree-select.mjs.map +1 -1
  198. package/fesm2022/koobiq-components-tree.mjs +1506 -558
  199. package/fesm2022/koobiq-components-tree.mjs.map +1 -1
  200. package/fesm2022/koobiq-components-username.mjs +290 -135
  201. package/fesm2022/koobiq-components-username.mjs.map +1 -1
  202. package/file-upload/dropzone.scss +31 -3
  203. package/file-upload/file-upload-tokens.scss +2 -22
  204. package/file-upload/file-upload.scss +6 -0
  205. package/file-upload/multiple-file-upload.component.scss +14 -12
  206. package/file-upload/single-file-upload.component.scss +3 -2
  207. package/filter-bar/filters.scss +7 -0
  208. package/filter-bar/pipes/base-pipe.scss +3 -3
  209. package/filter-bar/pipes/pipe-date.scss +8 -1
  210. package/flag/flag-tokens.scss +22 -0
  211. package/flag/flag.scss +34 -21
  212. package/form-field/{_fiedset-theme.scss → _fieldset-theme.scss} +1 -5
  213. package/form-field/_form-field-theme.scss +4 -9
  214. package/form-field/cleaner.scss +3 -1
  215. package/form-field/fieldset.scss +3 -4
  216. package/form-field/form-field.scss +26 -21
  217. package/form-field/password-toggle.scss +3 -1
  218. package/icon/_icon-button-theme.scss +7 -0
  219. package/icon/_icon-theme.scss +10 -7
  220. package/icon/icon-button.scss +0 -2
  221. package/icon/icon-tokens.scss +12 -9
  222. package/inline-edit/inline-edit.scss +40 -54
  223. package/input/input.scss +4 -0
  224. package/link/{_link-theme.scss → deprecated/_link-theme.scss} +11 -6
  225. package/link/deprecated/link-tokens.scss +27 -0
  226. package/link/link-tokens.scss +6 -25
  227. package/link/link.scss +137 -0
  228. package/list/list.scss +3 -2
  229. package/loader-overlay/_loader-overlay-theme.scss +19 -10
  230. package/loader-overlay/loader-overlay-tokens.scss +0 -2
  231. package/loader-overlay/loader-overlay.scss +7 -1
  232. package/markdown/_markdown-theme.scss +16 -0
  233. package/markdown/markdown-tokens.scss +5 -0
  234. package/markdown/markdown.scss +2 -1
  235. package/modal/_modal-animation.scss +23 -14
  236. package/modal/modal-tokens.scss +2 -1
  237. package/modal/modal.scss +35 -31
  238. package/navbar/_navbar-item_horizontal.scss +8 -6
  239. package/navbar/_navbar-item_vertical.scss +18 -6
  240. package/navbar/_navbar-theme.scss +9 -1
  241. package/navbar/navbar-brand.scss +8 -6
  242. package/navbar/navbar-divider.scss +1 -1
  243. package/navbar/navbar-item.scss +8 -9
  244. package/navbar/navbar-toggle.scss +3 -3
  245. package/navbar/navbar-tokens.scss +14 -0
  246. package/navbar/navbar.scss +1 -2
  247. package/navbar/vertical-navbar.scss +2 -2
  248. package/notification-center/_notification-center-theme.scss +11 -6
  249. package/notification-center/notification-center-tokens.scss +33 -0
  250. package/notification-center/notification-center.scss +58 -20
  251. package/notification-center/notification-item.scss +15 -6
  252. package/package.json +112 -81
  253. package/popover/popover-tokens.scss +0 -2
  254. package/popover/popover.scss +41 -19
  255. package/prebuilt-themes/theme.css +1 -1
  256. package/progress-bar/_progress-bar-theme.scss +20 -3
  257. package/progress-bar/progress-bar-tokens.scss +3 -0
  258. package/progress-bar/progress-bar.scss +36 -8
  259. package/progress-spinner/progress-spinner.scss +4 -3
  260. package/radio/_radio-theme.scss +21 -4
  261. package/radio/radio-tokens.scss +7 -3
  262. package/radio/radio.scss +55 -8
  263. package/schematics/collection.json +399 -7
  264. package/schematics/migrations/accordion-state-saving-default/README.md +60 -0
  265. package/schematics/migrations/accordion-state-saving-default/data.js +75 -0
  266. package/schematics/migrations/accordion-state-saving-default/index.js +60 -0
  267. package/schematics/migrations/accordion-state-saving-default/schema.json +15 -0
  268. package/schematics/migrations/actions-panel-overlay-container/README.md +35 -0
  269. package/schematics/migrations/actions-panel-overlay-container/data.js +47 -0
  270. package/schematics/migrations/actions-panel-overlay-container/index.js +54 -0
  271. package/schematics/migrations/actions-panel-overlay-container/schema.json +15 -0
  272. package/schematics/migrations/alert-signals/README.md +13 -7
  273. package/schematics/migrations/alert-signals/data.js +3 -0
  274. package/schematics/migrations/alert-signals/index.js +70 -203
  275. package/schematics/migrations/angular-animations-removal/README.md +46 -0
  276. package/schematics/migrations/angular-animations-removal/data.js +150 -0
  277. package/schematics/migrations/angular-animations-removal/index.js +20 -0
  278. package/schematics/migrations/angular-animations-removal/schema.json +15 -0
  279. package/schematics/migrations/app-switcher-signals/README.md +88 -0
  280. package/schematics/migrations/app-switcher-signals/data.js +136 -0
  281. package/schematics/migrations/app-switcher-signals/index.js +365 -0
  282. package/schematics/migrations/app-switcher-signals/schema.json +20 -0
  283. package/schematics/migrations/autocomplete-panel-width-auto/README.md +2 -2
  284. package/schematics/migrations/autocomplete-panel-width-auto/index.js +1 -1
  285. package/schematics/migrations/autocomplete-signals/README.md +92 -0
  286. package/schematics/migrations/autocomplete-signals/data.js +149 -0
  287. package/schematics/migrations/autocomplete-signals/index.js +706 -0
  288. package/schematics/migrations/autocomplete-signals/schema.json +20 -0
  289. package/schematics/migrations/badge-signals/README.md +77 -0
  290. package/schematics/migrations/badge-signals/data.js +109 -0
  291. package/schematics/migrations/badge-signals/index.js +693 -0
  292. package/schematics/migrations/badge-signals/schema.json +20 -0
  293. package/schematics/migrations/button-state-and-styles/README.md +129 -0
  294. package/schematics/migrations/button-state-and-styles/data.js +136 -0
  295. package/schematics/migrations/button-state-and-styles/index.js +220 -0
  296. package/schematics/migrations/button-state-and-styles/schema.json +20 -0
  297. package/schematics/migrations/button-supported-colors/README.md +73 -0
  298. package/schematics/migrations/button-supported-colors/data.js +106 -0
  299. package/schematics/migrations/button-supported-colors/index.js +260 -0
  300. package/schematics/migrations/button-supported-colors/schema.json +20 -0
  301. package/schematics/migrations/button-toggle-signals-and-aria/README.md +137 -0
  302. package/schematics/migrations/button-toggle-signals-and-aria/data.js +200 -0
  303. package/schematics/migrations/button-toggle-signals-and-aria/index.js +496 -0
  304. package/schematics/migrations/button-toggle-signals-and-aria/schema.json +20 -0
  305. package/schematics/migrations/button-truncation/README.md +110 -0
  306. package/schematics/migrations/button-truncation/data.js +88 -0
  307. package/schematics/migrations/button-truncation/index.js +269 -0
  308. package/schematics/migrations/button-truncation/schema.json +20 -0
  309. package/schematics/migrations/checkbox-signals/README.md +76 -0
  310. package/schematics/migrations/checkbox-signals/data.js +114 -0
  311. package/schematics/migrations/checkbox-signals/index.js +634 -0
  312. package/schematics/migrations/checkbox-signals/schema.json +20 -0
  313. package/schematics/migrations/clamped-text-disclosure/README.md +62 -0
  314. package/schematics/migrations/clamped-text-disclosure/data.js +101 -0
  315. package/schematics/migrations/clamped-text-disclosure/index.js +59 -0
  316. package/schematics/migrations/clamped-text-disclosure/schema.json +15 -0
  317. package/schematics/migrations/code-block-signals/README.md +84 -0
  318. package/schematics/migrations/code-block-signals/data.js +121 -0
  319. package/schematics/migrations/code-block-signals/index.js +700 -0
  320. package/schematics/migrations/code-block-signals/schema.json +20 -0
  321. package/schematics/migrations/color-signals/README.md +46 -0
  322. package/schematics/migrations/color-signals/data.js +131 -0
  323. package/schematics/migrations/color-signals/index.js +19 -0
  324. package/schematics/migrations/color-signals/schema.json +20 -0
  325. package/schematics/migrations/core-mixins-removal/README.md +20 -0
  326. package/schematics/migrations/core-mixins-removal/data.js +27 -0
  327. package/schematics/migrations/core-mixins-removal/index.js +17 -0
  328. package/schematics/migrations/core-mixins-removal/schema.json +15 -0
  329. package/schematics/migrations/css-selectors/README.md +2 -2
  330. package/schematics/migrations/css-selectors/index.js +1 -1
  331. package/schematics/migrations/datepicker-signals/README.md +24 -0
  332. package/schematics/migrations/datepicker-signals/data.js +49 -0
  333. package/schematics/migrations/datepicker-signals/index.js +17 -0
  334. package/schematics/migrations/datepicker-signals/schema.json +15 -0
  335. package/schematics/migrations/deprecated-icons/README.md +2 -2
  336. package/schematics/migrations/deprecated-icons/index.js +1 -1
  337. package/schematics/migrations/design-tokens-v4/README.md +75 -0
  338. package/schematics/migrations/design-tokens-v4/index.js +59 -0
  339. package/schematics/migrations/design-tokens-v4/schema.json +15 -0
  340. package/schematics/migrations/divider-signals-and-aria/README.md +47 -0
  341. package/schematics/migrations/divider-signals-and-aria/data.js +62 -0
  342. package/schematics/migrations/divider-signals-and-aria/index.js +211 -0
  343. package/schematics/migrations/divider-signals-and-aria/schema.json +15 -0
  344. package/schematics/migrations/dl-attribute-coercion/README.md +59 -0
  345. package/schematics/migrations/dl-attribute-coercion/data.js +85 -0
  346. package/schematics/migrations/dl-attribute-coercion/index.js +161 -0
  347. package/schematics/migrations/dl-attribute-coercion/schema.json +15 -0
  348. package/schematics/migrations/dl-standalone-names/README.md +49 -0
  349. package/schematics/migrations/dl-standalone-names/data.js +44 -0
  350. package/schematics/migrations/dl-standalone-names/index.js +321 -0
  351. package/schematics/migrations/dl-standalone-names/schema.json +20 -0
  352. package/schematics/migrations/dropdown-demote-overlay/README.md +137 -0
  353. package/schematics/migrations/dropdown-demote-overlay/data.js +84 -0
  354. package/schematics/migrations/dropdown-demote-overlay/index.js +288 -0
  355. package/schematics/migrations/dropdown-demote-overlay/schema.json +20 -0
  356. package/schematics/migrations/dropdown-signals/README.md +83 -0
  357. package/schematics/migrations/dropdown-signals/data.js +152 -0
  358. package/schematics/migrations/dropdown-signals/index.js +19 -0
  359. package/schematics/migrations/dropdown-signals/schema.json +20 -0
  360. package/schematics/migrations/empty-state-error-color/README.md +84 -0
  361. package/schematics/migrations/empty-state-error-color/data.js +85 -0
  362. package/schematics/migrations/empty-state-error-color/index.js +71 -0
  363. package/schematics/migrations/empty-state-error-color/schema.json +15 -0
  364. package/schematics/migrations/empty-state-size-attr/README.md +2 -2
  365. package/schematics/migrations/empty-state-size-attr/index.js +1 -1
  366. package/schematics/migrations/file-upload-cva-and-primitives/README.md +70 -0
  367. package/schematics/migrations/file-upload-cva-and-primitives/data.js +97 -0
  368. package/schematics/migrations/file-upload-cva-and-primitives/index.js +60 -0
  369. package/schematics/migrations/file-upload-cva-and-primitives/schema.json +15 -0
  370. package/schematics/migrations/file-upload-deprecated-outputs/README.md +90 -0
  371. package/schematics/migrations/file-upload-deprecated-outputs/data.js +20 -0
  372. package/schematics/migrations/file-upload-deprecated-outputs/index.js +70 -0
  373. package/schematics/migrations/file-upload-deprecated-outputs/schema.json +20 -0
  374. package/schematics/migrations/filter-bar-rename-action/README.md +183 -0
  375. package/schematics/migrations/filter-bar-rename-action/data.js +151 -0
  376. package/schematics/migrations/filter-bar-rename-action/index.js +177 -0
  377. package/schematics/migrations/filter-bar-rename-action/schema.json +20 -0
  378. package/schematics/migrations/filter-bar-signals/README.md +27 -16
  379. package/schematics/migrations/filter-bar-signals/data.js +1 -2
  380. package/schematics/migrations/filter-bar-signals/index.js +100 -195
  381. package/schematics/migrations/filter-bar-state-saving-default/README.md +53 -0
  382. package/schematics/migrations/filter-bar-state-saving-default/data.js +87 -0
  383. package/schematics/migrations/filter-bar-state-saving-default/index.js +61 -0
  384. package/schematics/migrations/filter-bar-state-saving-default/schema.json +15 -0
  385. package/schematics/migrations/flag-inner-html/README.md +67 -0
  386. package/schematics/migrations/flag-inner-html/data.js +58 -0
  387. package/schematics/migrations/flag-inner-html/index.js +61 -0
  388. package/schematics/migrations/flag-inner-html/schema.json +15 -0
  389. package/schematics/migrations/form-field-signals/README.md +125 -0
  390. package/schematics/migrations/form-field-signals/data.js +288 -0
  391. package/schematics/migrations/form-field-signals/index.js +382 -0
  392. package/schematics/migrations/form-field-signals/schema.json +20 -0
  393. package/schematics/migrations/icon-semantics-and-api/README.md +65 -0
  394. package/schematics/migrations/icon-semantics-and-api/data.js +97 -0
  395. package/schematics/migrations/icon-semantics-and-api/index.js +64 -0
  396. package/schematics/migrations/icon-semantics-and-api/schema.json +15 -0
  397. package/schematics/migrations/icons-replacement/README.md +5 -5
  398. package/schematics/migrations/icons-replacement/index.js +1 -1
  399. package/schematics/migrations/inline-edit-a11y-and-types/README.md +82 -0
  400. package/schematics/migrations/inline-edit-a11y-and-types/data.js +117 -0
  401. package/schematics/migrations/inline-edit-a11y-and-types/index.js +97 -0
  402. package/schematics/migrations/inline-edit-a11y-and-types/schema.json +20 -0
  403. package/schematics/migrations/input-number-surface/README.md +140 -0
  404. package/schematics/migrations/input-number-surface/data.js +135 -0
  405. package/schematics/migrations/input-number-surface/index.js +292 -0
  406. package/schematics/migrations/input-number-surface/schema.json +20 -0
  407. package/schematics/migrations/input-signals/README.md +20 -0
  408. package/schematics/migrations/input-signals/data.js +30 -0
  409. package/schematics/migrations/input-signals/index.js +17 -0
  410. package/schematics/migrations/input-signals/schema.json +15 -0
  411. package/schematics/migrations/link-deprecated-path/README.md +144 -0
  412. package/schematics/migrations/link-deprecated-path/index.js +19 -0
  413. package/schematics/migrations/link-deprecated-path/schema.json +20 -0
  414. package/schematics/migrations/link-signals/README.md +71 -0
  415. package/schematics/migrations/link-signals/data.js +116 -0
  416. package/schematics/migrations/link-signals/index.js +415 -0
  417. package/schematics/migrations/link-signals/schema.json +20 -0
  418. package/schematics/migrations/list-signals/README.md +22 -0
  419. package/schematics/migrations/list-signals/data.js +35 -0
  420. package/schematics/migrations/list-signals/index.js +17 -0
  421. package/schematics/migrations/list-signals/schema.json +15 -0
  422. package/schematics/migrations/list-tree-multiple-input/README.md +105 -0
  423. package/schematics/migrations/list-tree-multiple-input/data.js +74 -0
  424. package/schematics/migrations/list-tree-multiple-input/index.js +221 -0
  425. package/schematics/migrations/list-tree-multiple-input/schema.json +20 -0
  426. package/schematics/migrations/loader-overlay-signals/README.md +62 -0
  427. package/schematics/migrations/loader-overlay-signals/data.js +101 -0
  428. package/schematics/migrations/loader-overlay-signals/index.js +697 -0
  429. package/schematics/migrations/loader-overlay-signals/schema.json +20 -0
  430. package/schematics/migrations/loader-overlay-size-attr/README.md +2 -2
  431. package/schematics/migrations/loader-overlay-size-attr/index.js +1 -1
  432. package/schematics/migrations/locale-configuration-providers/README.md +163 -0
  433. package/schematics/migrations/locale-configuration-providers/data.js +257 -0
  434. package/schematics/migrations/locale-configuration-providers/index.js +294 -0
  435. package/schematics/migrations/locale-configuration-providers/schema.json +20 -0
  436. package/schematics/migrations/mandatory-peer-dependencies/README.md +70 -0
  437. package/schematics/migrations/mandatory-peer-dependencies/index.js +42 -0
  438. package/schematics/migrations/mandatory-peer-dependencies/schema.json +15 -0
  439. package/schematics/migrations/markdown-signals/README.md +58 -0
  440. package/schematics/migrations/markdown-signals/data.js +79 -0
  441. package/schematics/migrations/markdown-signals/index.js +639 -0
  442. package/schematics/migrations/markdown-signals/schema.json +20 -0
  443. package/schematics/migrations/modal-dialog-semantics/README.md +106 -0
  444. package/schematics/migrations/modal-dialog-semantics/data.js +110 -0
  445. package/schematics/migrations/modal-dialog-semantics/index.js +58 -0
  446. package/schematics/migrations/modal-dialog-semantics/schema.json +15 -0
  447. package/schematics/migrations/modal-signals/README.md +88 -0
  448. package/schematics/migrations/modal-signals/data.js +132 -0
  449. package/schematics/migrations/modal-signals/index.js +19 -0
  450. package/schematics/migrations/modal-signals/schema.json +20 -0
  451. package/schematics/migrations/navbar-signals-and-aria/README.md +111 -0
  452. package/schematics/migrations/navbar-signals-and-aria/data.js +198 -0
  453. package/schematics/migrations/navbar-signals-and-aria/index.js +568 -0
  454. package/schematics/migrations/navbar-signals-and-aria/schema.json +20 -0
  455. package/schematics/migrations/new-icons-pack/README.md +10 -10
  456. package/schematics/migrations/new-icons-pack/index.js +1 -1
  457. package/schematics/migrations/notification-center-signals/README.md +67 -0
  458. package/schematics/migrations/notification-center-signals/data.js +66 -0
  459. package/schematics/migrations/notification-center-signals/index.js +61 -0
  460. package/schematics/migrations/notification-center-signals/schema.json +15 -0
  461. package/schematics/migrations/option-signals/README.md +37 -0
  462. package/schematics/migrations/option-signals/data.js +86 -0
  463. package/schematics/migrations/option-signals/index.js +19 -0
  464. package/schematics/migrations/option-signals/schema.json +20 -0
  465. package/schematics/migrations/popover-leave-delay/README.md +51 -0
  466. package/schematics/migrations/popover-leave-delay/data.js +61 -0
  467. package/schematics/migrations/popover-leave-delay/index.js +54 -0
  468. package/schematics/migrations/popover-leave-delay/schema.json +15 -0
  469. package/schematics/migrations/progress-bar-percentage-and-aria/README.md +54 -0
  470. package/schematics/migrations/progress-bar-percentage-and-aria/data.js +76 -0
  471. package/schematics/migrations/progress-bar-percentage-and-aria/index.js +58 -0
  472. package/schematics/migrations/progress-bar-percentage-and-aria/schema.json +15 -0
  473. package/schematics/migrations/progress-spinner-signals/README.md +72 -0
  474. package/schematics/migrations/progress-spinner-signals/data.js +83 -0
  475. package/schematics/migrations/progress-spinner-signals/index.js +694 -0
  476. package/schematics/migrations/progress-spinner-signals/schema.json +20 -0
  477. package/schematics/migrations/query-list-signals/README.md +32 -0
  478. package/schematics/migrations/query-list-signals/data.js +70 -0
  479. package/schematics/migrations/query-list-signals/index.js +17 -0
  480. package/schematics/migrations/query-list-signals/schema.json +15 -0
  481. package/schematics/migrations/radio-signals-and-aria/README.md +82 -0
  482. package/schematics/migrations/radio-signals-and-aria/data.js +163 -0
  483. package/schematics/migrations/radio-signals-and-aria/index.js +39 -0
  484. package/schematics/migrations/radio-signals-and-aria/schema.json +20 -0
  485. package/schematics/migrations/read-state-dwell-handlers/README.md +125 -0
  486. package/schematics/migrations/read-state-dwell-handlers/data.js +45 -0
  487. package/schematics/migrations/read-state-dwell-handlers/index.js +215 -0
  488. package/schematics/migrations/read-state-dwell-handlers/schema.json +20 -0
  489. package/schematics/migrations/scrollbar-deprecated-path/README.md +128 -0
  490. package/schematics/migrations/scrollbar-deprecated-path/index.js +20 -0
  491. package/schematics/migrations/scrollbar-deprecated-path/schema.json +20 -0
  492. package/schematics/migrations/select-signal-inputs/README.md +61 -0
  493. package/schematics/migrations/select-signal-inputs/data.js +99 -0
  494. package/schematics/migrations/select-signal-inputs/index.js +57 -0
  495. package/schematics/migrations/select-signal-inputs/schema.json +15 -0
  496. package/schematics/migrations/sidepanel-non-modal-behavior/README.md +57 -0
  497. package/schematics/migrations/sidepanel-non-modal-behavior/data.js +111 -0
  498. package/schematics/migrations/sidepanel-non-modal-behavior/index.js +57 -0
  499. package/schematics/migrations/sidepanel-non-modal-behavior/schema.json +15 -0
  500. package/schematics/migrations/signal-inputs-subclasses/README.md +28 -0
  501. package/schematics/migrations/signal-inputs-subclasses/data.js +69 -0
  502. package/schematics/migrations/signal-inputs-subclasses/index.js +17 -0
  503. package/schematics/migrations/signal-inputs-subclasses/schema.json +15 -0
  504. package/schematics/migrations/split-button-optional-disabled/README.md +47 -0
  505. package/schematics/migrations/split-button-optional-disabled/data.js +53 -0
  506. package/schematics/migrations/split-button-optional-disabled/index.js +57 -0
  507. package/schematics/migrations/split-button-optional-disabled/schema.json +15 -0
  508. package/schematics/migrations/splitter-deprecated-path/README.md +136 -0
  509. package/schematics/migrations/splitter-deprecated-path/index.js +20 -0
  510. package/schematics/migrations/splitter-deprecated-path/schema.json +20 -0
  511. package/schematics/migrations/state-saving-default/README.md +67 -0
  512. package/schematics/migrations/state-saving-default/data.js +88 -0
  513. package/schematics/migrations/state-saving-default/index.js +62 -0
  514. package/schematics/migrations/state-saving-default/schema.json +15 -0
  515. package/schematics/migrations/table-cell-content/README.md +55 -0
  516. package/schematics/migrations/table-cell-content/data.js +66 -0
  517. package/schematics/migrations/table-cell-content/index.js +66 -0
  518. package/schematics/migrations/table-cell-content/schema.json +15 -0
  519. package/schematics/migrations/tabs-signals-and-aria/README.md +93 -0
  520. package/schematics/migrations/tabs-signals-and-aria/data.js +139 -0
  521. package/schematics/migrations/tabs-signals-and-aria/index.js +65 -0
  522. package/schematics/migrations/tabs-signals-and-aria/schema.json +15 -0
  523. package/schematics/migrations/tag-list-cleaner/README.md +58 -0
  524. package/schematics/migrations/tag-list-cleaner/data.js +42 -0
  525. package/schematics/migrations/tag-list-cleaner/index.js +196 -0
  526. package/schematics/migrations/tag-list-cleaner/schema.json +20 -0
  527. package/schematics/migrations/tag-slots/README.md +41 -0
  528. package/schematics/migrations/tag-slots/index.js +190 -0
  529. package/schematics/migrations/tag-slots/schema.json +20 -0
  530. package/schematics/migrations/tags-signals/README.md +85 -0
  531. package/schematics/migrations/tags-signals/data.js +103 -0
  532. package/schematics/migrations/tags-signals/index.js +673 -0
  533. package/schematics/migrations/tags-signals/schema.json +20 -0
  534. package/schematics/migrations/textarea-signals/README.md +72 -0
  535. package/schematics/migrations/textarea-signals/data.js +121 -0
  536. package/schematics/migrations/textarea-signals/index.js +379 -0
  537. package/schematics/migrations/textarea-signals/schema.json +20 -0
  538. package/schematics/migrations/time-range-title-for/README.md +164 -0
  539. package/schematics/migrations/time-range-title-for/data.js +139 -0
  540. package/schematics/migrations/time-range-title-for/index.js +163 -0
  541. package/schematics/migrations/time-range-title-for/schema.json +20 -0
  542. package/schematics/migrations/timepicker-signals/README.md +78 -0
  543. package/schematics/migrations/timepicker-signals/data.js +82 -0
  544. package/schematics/migrations/timepicker-signals/index.js +709 -0
  545. package/schematics/migrations/timepicker-signals/schema.json +20 -0
  546. package/schematics/migrations/timezone-grouping-utils/README.md +73 -0
  547. package/schematics/migrations/timezone-grouping-utils/data.js +101 -0
  548. package/schematics/migrations/timezone-grouping-utils/index.js +64 -0
  549. package/schematics/migrations/timezone-grouping-utils/schema.json +15 -0
  550. package/schematics/migrations/title-encapsulation/README.md +49 -0
  551. package/schematics/migrations/title-encapsulation/data.js +69 -0
  552. package/schematics/migrations/title-encapsulation/index.js +57 -0
  553. package/schematics/migrations/title-encapsulation/schema.json +15 -0
  554. package/schematics/migrations/toast-stack-and-defaults/README.md +102 -0
  555. package/schematics/migrations/toast-stack-and-defaults/data.js +79 -0
  556. package/schematics/migrations/toast-stack-and-defaults/index.js +53 -0
  557. package/schematics/migrations/toast-stack-and-defaults/schema.json +15 -0
  558. package/schematics/migrations/tooltip-pointer-events-and-types/README.md +53 -0
  559. package/schematics/migrations/tooltip-pointer-events-and-types/data.js +89 -0
  560. package/schematics/migrations/tooltip-pointer-events-and-types/index.js +60 -0
  561. package/schematics/migrations/tooltip-pointer-events-and-types/schema.json +15 -0
  562. package/schematics/migrations/top-bar-container-selectors/README.md +111 -0
  563. package/schematics/migrations/top-bar-container-selectors/data.js +56 -0
  564. package/schematics/migrations/top-bar-container-selectors/index.js +84 -0
  565. package/schematics/migrations/top-bar-container-selectors/schema.json +20 -0
  566. package/schematics/migrations/tree-select-signals/README.md +61 -0
  567. package/schematics/migrations/tree-select-signals/data.js +106 -0
  568. package/schematics/migrations/tree-select-signals/index.js +58 -0
  569. package/schematics/migrations/tree-select-signals/schema.json +15 -0
  570. package/schematics/migrations/tree-signals/README.md +82 -0
  571. package/schematics/migrations/tree-signals/data.js +123 -0
  572. package/schematics/migrations/tree-signals/index.js +54 -0
  573. package/schematics/migrations/tree-signals/schema.json +15 -0
  574. package/schematics/migrations/tree-state-saving-default/README.md +66 -0
  575. package/schematics/migrations/tree-state-saving-default/data.js +78 -0
  576. package/schematics/migrations/tree-state-saving-default/index.js +60 -0
  577. package/schematics/migrations/tree-state-saving-default/schema.json +15 -0
  578. package/schematics/migrations/username-pipe-injection/README.md +59 -0
  579. package/schematics/migrations/username-pipe-injection/data.js +78 -0
  580. package/schematics/migrations/username-pipe-injection/index.js +58 -0
  581. package/schematics/migrations/username-pipe-injection/schema.json +15 -0
  582. package/schematics/migrations/v20-upgrade/README.md +36 -16
  583. package/schematics/migrations/v20-upgrade/data.js +124 -77
  584. package/schematics/migrations/v20-upgrade/index.js +6 -213
  585. package/schematics/migrations/v21-upgrade/README.md +271 -0
  586. package/schematics/migrations/v21-upgrade/data.js +1371 -0
  587. package/schematics/migrations/v21-upgrade/index.js +94 -0
  588. package/schematics/migrations/v21-upgrade/schema.json +20 -0
  589. package/schematics/migrations/zoneless-change-detection/README.md +30 -0
  590. package/schematics/migrations/zoneless-change-detection/data.js +29 -0
  591. package/schematics/migrations/zoneless-change-detection/index.js +20 -0
  592. package/schematics/migrations/zoneless-change-detection/schema.json +15 -0
  593. package/schematics/migrations.json +392 -2
  594. package/schematics/ng-add/index.js +515 -14
  595. package/schematics/ng-add/schema.json +15 -0
  596. package/schematics/utils/deprecated-path-migration.js +61 -0
  597. package/schematics/utils/package-config.js +9 -105
  598. package/scrollbar/{_scrollbar-component-theme.scss → deprecated/_scrollbar-component-theme.scss} +1 -1
  599. package/scrollbar/{scrollbar.component.scss → deprecated/scrollbar.component.scss} +1 -1
  600. package/scrollbar/native-scrollbar.scss +68 -0
  601. package/scrollbar/scrollbar-tokens.scss +13 -22
  602. package/scrollbar/scrollbar-track.scss +94 -0
  603. package/scrollbar/scrollbar-viewport.scss +33 -0
  604. package/scrollbar/scrollbar.scss +24 -0
  605. package/search-expandable/search-expandable-tokens.scss +4 -0
  606. package/search-expandable/search-expandable.scss +4 -2
  607. package/select/_select-theme.scss +3 -16
  608. package/select/select.scss +0 -6
  609. package/sidebar/sidebar.scss +20 -0
  610. package/sidepanel/_sidepanel-theme.scss +1 -1
  611. package/sidepanel/sidepanel-tokens.scss +7 -1
  612. package/sidepanel/sidepanel.scss +41 -5
  613. package/skeleton/skeleton-presets.scss +350 -0
  614. package/skeleton/skeleton-tokens.scss +127 -0
  615. package/skeleton/skeleton.scss +53 -45
  616. package/split-button/_split-button-theme.scss +4 -4
  617. package/split-button/split-button.scss +2 -6
  618. package/splitter/{_splitter-theme.scss → deprecated/_splitter-theme.scss} +1 -1
  619. package/splitter/deprecated/splitter.scss +51 -0
  620. package/splitter/splitter-tokens.scss +19 -0
  621. package/splitter/splitter.scss +148 -28
  622. package/table/_table-theme.scss +13 -12
  623. package/table/table-tokens.scss +8 -0
  624. package/table/table.scss +47 -22
  625. package/tabs/_tabs-common.scss +14 -14
  626. package/tabs/_tabs-theme.scss +4 -5
  627. package/tabs/tab-body.scss +49 -1
  628. package/tabs/tab-header.scss +2 -1
  629. package/tags/tag-list.scss +4 -0
  630. package/tags/tag.scss +19 -1
  631. package/time-range/time-range.scss +9 -0
  632. package/timezone/timezone-option.component.scss +4 -7
  633. package/timezone/timezone-select.component.scss +3 -0
  634. package/toast/_toast-theme.scss +1 -4
  635. package/toast/toast-container.component.scss +19 -13
  636. package/toast/toast-tokens.scss +12 -6
  637. package/toast/toast.component.scss +42 -19
  638. package/toggle/_toggle-theme.scss +4 -10
  639. package/toggle/toggle.scss +67 -26
  640. package/tooltip/_tooltip-theme.scss +7 -1
  641. package/tooltip/tooltip-tokens.scss +1 -2
  642. package/tooltip/tooltip.scss +55 -9
  643. package/top-bar/top-bar-tokens.scss +13 -2
  644. package/top-bar/top-bar.scss +24 -19
  645. package/tree/_tree-theme.scss +0 -1
  646. package/tree/toggle.scss +5 -9
  647. package/tree/tree-option.scss +2 -4
  648. package/tree/tree-tokens.scss +2 -1
  649. package/tree/tree.scss +3 -5
  650. package/tree-select/_tree-select-theme.scss +4 -15
  651. package/tree-select/tree-select-tokens.scss +16 -0
  652. package/tree-select/tree-select.scss +0 -6
  653. package/{accordion/index.d.ts → types/koobiq-components-accordion.d.ts} +102 -84
  654. package/{actions-panel/index.d.ts → types/koobiq-components-actions-panel.d.ts} +44 -59
  655. package/{alert/index.d.ts → types/koobiq-components-alert.d.ts} +8 -3
  656. package/types/koobiq-components-app-switcher.d.ts +406 -0
  657. package/types/koobiq-components-autocomplete.d.ts +443 -0
  658. package/{badge/index.d.ts → types/koobiq-components-badge.d.ts} +25 -20
  659. package/{breadcrumbs/index.d.ts → types/koobiq-components-breadcrumbs.d.ts} +97 -46
  660. package/types/koobiq-components-button-toggle.d.ts +340 -0
  661. package/types/koobiq-components-button.d.ts +296 -0
  662. package/types/koobiq-components-checkbox.d.ts +172 -0
  663. package/types/koobiq-components-clamped-text.d.ts +184 -0
  664. package/{code-block/index.d.ts → types/koobiq-components-code-block.d.ts} +114 -79
  665. package/{content-panel/index.d.ts → types/koobiq-components-content-panel.d.ts} +81 -25
  666. package/{core/index.d.ts → types/koobiq-components-core.d.ts} +2827 -865
  667. package/{datepicker/index.d.ts → types/koobiq-components-datepicker.d.ts} +161 -116
  668. package/types/koobiq-components-divider.d.ts +43 -0
  669. package/types/koobiq-components-dl.d.ts +235 -0
  670. package/{dropdown/index.d.ts → types/koobiq-components-dropdown.d.ts} +245 -239
  671. package/types/koobiq-components-ellipsis-center.d.ts +85 -0
  672. package/types/koobiq-components-empty-state.d.ts +106 -0
  673. package/{file-upload/index.d.ts → types/koobiq-components-file-upload.d.ts} +214 -107
  674. package/{filter-bar/index.d.ts → types/koobiq-components-filter-bar.d.ts} +410 -495
  675. package/types/koobiq-components-flag.d.ts +68 -0
  676. package/{form-field/index.d.ts → types/koobiq-components-form-field.d.ts} +167 -191
  677. package/types/koobiq-components-icon.d.ts +333 -0
  678. package/{inline-edit/index.d.ts → types/koobiq-components-inline-edit.d.ts} +109 -46
  679. package/types/koobiq-components-input.d.ts +477 -0
  680. package/types/koobiq-components-link-deprecated.d.ts +101 -0
  681. package/types/koobiq-components-link.d.ts +176 -0
  682. package/{list/index.d.ts → types/koobiq-components-list.d.ts} +162 -99
  683. package/types/koobiq-components-loader-overlay.d.ts +101 -0
  684. package/{markdown/index.d.ts → types/koobiq-components-markdown.d.ts} +16 -24
  685. package/types/koobiq-components-modal.d.ts +666 -0
  686. package/types/koobiq-components-navbar.d.ts +569 -0
  687. package/types/koobiq-components-notification-center.d.ts +500 -0
  688. package/{overflow-items/index.d.ts → types/koobiq-components-overflow-items.d.ts} +8 -22
  689. package/types/koobiq-components-popover.d.ts +468 -0
  690. package/types/koobiq-components-progress-bar.d.ts +67 -0
  691. package/{progress-spinner/index.d.ts → types/koobiq-components-progress-spinner.d.ts} +33 -10
  692. package/types/koobiq-components-radio.d.ts +294 -0
  693. package/{resizer/index.d.ts → types/koobiq-components-resizer.d.ts} +37 -2
  694. package/{scrollbar/index.d.ts → types/koobiq-components-scrollbar-deprecated.d.ts} +18 -1
  695. package/types/koobiq-components-scrollbar.d.ts +154 -0
  696. package/types/koobiq-components-search-expandable.d.ts +164 -0
  697. package/{select/index.d.ts → types/koobiq-components-select.d.ts} +360 -167
  698. package/types/koobiq-components-sidebar.d.ts +152 -0
  699. package/types/koobiq-components-sidepanel.d.ts +436 -0
  700. package/types/koobiq-components-skeleton.d.ts +234 -0
  701. package/types/koobiq-components-split-button.d.ts +65 -0
  702. package/{splitter/index.d.ts → types/koobiq-components-splitter-deprecated.d.ts} +44 -1
  703. package/types/koobiq-components-splitter.d.ts +406 -0
  704. package/types/koobiq-components-table.d.ts +44 -0
  705. package/types/koobiq-components-tabs.d.ts +888 -0
  706. package/{tags/index.d.ts → types/koobiq-components-tags.d.ts} +249 -133
  707. package/types/koobiq-components-textarea.d.ts +178 -0
  708. package/{time-range/index.d.ts → types/koobiq-components-time-range.d.ts} +135 -62
  709. package/types/koobiq-components-timepicker.d.ts +223 -0
  710. package/types/koobiq-components-timezone.d.ts +266 -0
  711. package/types/koobiq-components-title.d.ts +184 -0
  712. package/types/koobiq-components-toast.d.ts +289 -0
  713. package/types/koobiq-components-toggle.d.ts +121 -0
  714. package/types/koobiq-components-tooltip.d.ts +610 -0
  715. package/types/koobiq-components-top-bar.d.ts +61 -0
  716. package/types/koobiq-components-tree-select.d.ts +667 -0
  717. package/types/koobiq-components-tree.d.ts +1290 -0
  718. package/types/koobiq-components-username.d.ts +340 -0
  719. package/username/_username-theme.scss +35 -0
  720. package/username/username.scss +10 -34
  721. package/app-switcher/index.d.ts +0 -276
  722. package/autocomplete/index.d.ts +0 -286
  723. package/button/index.d.ts +0 -153
  724. package/button-toggle/index.d.ts +0 -162
  725. package/checkbox/index.d.ts +0 -163
  726. package/clamped-text/index.d.ts +0 -146
  727. package/core/styles/_tokens.scss +0 -7
  728. package/core/styles/common/_clearfix.scss +0 -13
  729. package/core/styles/common/_popup.scss +0 -6
  730. package/core/styles/functions/_index.scss +0 -3
  731. package/core/styles/functions/_number.scss +0 -60
  732. package/core/styles/functions/_string.scss +0 -18
  733. package/core/styles/theming/scrollbar-tokens.scss +0 -25
  734. package/core/styles/typography/_typography-utils.scss +0 -84
  735. package/divider/index.d.ts +0 -20
  736. package/dl/index.d.ts +0 -45
  737. package/ellipsis-center/index.d.ts +0 -71
  738. package/empty-state/index.d.ts +0 -45
  739. package/flag/index.d.ts +0 -44
  740. package/icon/index.d.ts +0 -200
  741. package/input/index.d.ts +0 -354
  742. package/link/index.d.ts +0 -56
  743. package/loader-overlay/index.d.ts +0 -57
  744. package/modal/index.d.ts +0 -339
  745. package/navbar/index.d.ts +0 -372
  746. package/notification-center/index.d.ts +0 -323
  747. package/popover/index.d.ts +0 -182
  748. package/prebuilt-themes/dark-theme.css +0 -1
  749. package/prebuilt-themes/light-theme.css +0 -1
  750. package/progress-bar/index.d.ts +0 -31
  751. package/radio/index.d.ts +0 -203
  752. package/search-expandable/index.d.ts +0 -101
  753. package/sidebar/index.d.ts +0 -94
  754. package/sidepanel/index.d.ts +0 -272
  755. package/skeleton/index.d.ts +0 -26
  756. package/split-button/index.d.ts +0 -46
  757. package/table/index.d.ts +0 -25
  758. package/tabs/index.d.ts +0 -677
  759. package/textarea/index.d.ts +0 -138
  760. package/timepicker/index.d.ts +0 -197
  761. package/timezone/index.d.ts +0 -125
  762. package/title/index.d.ts +0 -139
  763. package/toast/index.d.ts +0 -187
  764. package/toggle/index.d.ts +0 -104
  765. package/tooltip/index.d.ts +0 -335
  766. package/top-bar/index.d.ts +0 -33
  767. package/tree/index.d.ts +0 -802
  768. package/tree-select/index.d.ts +0 -475
  769. package/username/index.d.ts +0 -194
  770. /package/{dynamic-translation/index.d.ts → types/koobiq-components-dynamic-translation.d.ts} +0 -0
  771. /package/{index.d.ts → types/koobiq-components.d.ts} +0 -0
@@ -0,0 +1,164 @@
1
+ # time-range-title-for
2
+
3
+ Migration schematic invoked automatically by `ng update @koobiq/components@21`
4
+ (registered for `21.0.0-0`). Carries a time-range consumer across the two
5
+ changes of this release: the removal of `title.for` from the locale
6
+ configuration, and the component review that made `kbq-time-range` tell
7
+ Angular's forms layer the truth about itself. They ship in the same version, so
8
+ they ship as one schematic.
9
+
10
+ ## Background
11
+
12
+ The title of `kbq-time-range` used to prepend `title.for` ("за" / "for") to the
13
+ selected period: "за последний час". The period now stands alone ("последний
14
+ час" / "Last hour"), and the duration templates of each locale carry whatever
15
+ word the period needs, so the key was removed.
16
+
17
+ The same release closed the gap between what the component claimed to the forms
18
+ layer and what it did. The published form-field adapter turned from a set of
19
+ declarations into a real implementation, and the manual `errorState` plumbing
20
+ went away with it.
21
+
22
+ | Member | Before | After |
23
+ | ------------------------------------------------------------------------------------- | --------------------- | ------------------------------------------- |
24
+ | `KbqTimeRangeEditor.timepickerList` | view query | removed |
25
+ | `KbqTimeRangeTitleAsControl.value` / `empty` / `required` / `disabled` / `errorState` | writable, never set | read-only signals over the host and control |
26
+ | `KbqTimeRangeTitleAsControl.id` / `placeholder` / `focused` | writable, `undefined` | read-only signals, `id` generated |
27
+ | `KbqTimeRangeTitleAsControl.controlType` | writable | readonly |
28
+ | `KbqTimeRangeTitleAsControl.stateChanges` | never emitted | removed |
29
+ | `KbqTimeRange.value` / `KbqTimeRange.disabled` | absent | read-only signals |
30
+ | `KbqTimeRange.setDisabledState` / `KbqTimeRangeEditor.setDisabledState` | absent | implemented |
31
+ | `KbqTimeRangeTitle.disabled` | absent | signal input |
32
+
33
+ The one-line defect behind the review is worth naming. `mapTimeRange` assembled
34
+ its argument as `toDate: this.form.controls.toTime.value` — the _time_ control
35
+ feeding the _date_ slot — and `combineDateAndTime` takes the calendar date from
36
+ its first argument. A user who picked "to: 20 September" got a range ending on
37
+ whatever day the timepicker held. The form's own validator read `toDate`
38
+ correctly, so validation and emission disagreed about what the range was.
39
+
40
+ ## Breaking change
41
+
42
+ **`title.for` was removed from `KbqTimeRangeLocaleConfiguration`.** A literal
43
+ typed against the configuration — a `kbqTimeRangeLocaleConfigurationProvider()`
44
+ argument, for one — fails to compile on the key with an excess-property error;
45
+ an untyped one silently loses the override.
46
+
47
+ ## Behaviour change
48
+
49
+ **The title shows the period alone.** A custom title template receives the
50
+ period without a prefix in `formattedDate`. A word you prefixed through
51
+ `title.for` belongs in your `durationTemplate.title` overrides now.
52
+
53
+ ## What it does
54
+
55
+ The schematic walks every `.ts`, `.html`, `.scss` and `.css` file in the project
56
+ (skipping `node_modules` and `dist`). Stylesheets are visited because the markup
57
+ change is what a descendant selector keyed on the radiogroup notices.
58
+
59
+ | Auto-fix | Where |
60
+ | --------------------------------------------------------------------- | ----- |
61
+ | Removes `for` from the `title` section of a time-range locale literal | `.ts` |
62
+
63
+ A `title` literal is treated as the time-range one when it belongs to a
64
+ `timeRange` section, to a `kbqTimeRangeLocaleConfigurationProvider()` argument,
65
+ or to a literal that also carries `editor` or `durationTemplate`. No type
66
+ resolution is involved — the schematic's virtual tree has no `@koobiq` types to
67
+ resolve against — so an unrelated `title: { for: … }` is never touched. The
68
+ property is deleted together with exactly one adjacent separator, so the literal
69
+ keeps its shape and nothing else in the file is reformatted.
70
+
71
+ ## What it does _not_ do (warn-only)
72
+
73
+ | Pattern | Manual migration |
74
+ | --------------------------------------------------------- | -------------------------------------------------------------------------------- |
75
+ | A read of `title.for` | Drop it — the title shows the period alone |
76
+ | A `for` key left in a `title` literal or template binding | Remove it, or ignore the report for an unrelated object |
77
+ | `.timepickerList` | Provide an `ErrorStateMatcher`; the editor no longer writes `errorState` by hand |
78
+ | `.errorState = …` and friends on the adapter | Drive the state through the bound form control; read it with a call |
79
+ | `.stateChanges` on the adapter | Read its signals in a `computed()` or an `effect()` |
80
+ | `(valueCorrected)` | Still emits, but only for values it actually corrected |
81
+ | `.kbq-radio-group .kbq-time-range-editor__range` | The from/to block is a sibling of the radiogroup now, not a descendant |
82
+
83
+ Warnings are checked against the **post-fix** content, so an auto-fixed literal
84
+ does not also report as needing manual work. In dry-run mode (`--fix false`)
85
+ they are reported against the original content instead.
86
+
87
+ A pattern that names a component member is only evaluated for a file that also
88
+ mentions `kbq-time-range`, so an unrelated `.timepickerList` of your own is not
89
+ reported. The gate is per file rather than per receiver: where a member name is
90
+ common (`.value`, `.disabled`), a report can point at an assignment to an
91
+ unrelated object in a file that happens to use the control. Read the report
92
+ before changing anything — it is a pointer, not a diagnosis. A
93
+ `control().stateChanges` read off a form field is left to `form-field-signals`.
94
+
95
+ ### Notes with no call site to point at
96
+
97
+ - Ranges emitted before this release ended on the wrong calendar day. Persisted
98
+ values may need correcting.
99
+ - A disabled control is inert: the trigger leaves the tab order, the popover
100
+ refuses to open, and the host takes a `kbq-disabled` class.
101
+ - The control becomes `touched` when the popover closes, so a `required` time
102
+ range shows its error message at the moment the matcher intends instead of
103
+ never.
104
+ - The popover footer dropped its unnamed `role="group"`, and the from/to
105
+ prefixes are associated with their four inputs through `aria-labelledby`
106
+ instead of an inert `aria-label` on a bare `<span>`.
107
+
108
+ `fix` defaults to `true`. `ng update` invokes migrations with no options at all,
109
+ so the rule applies that default itself rather than relying on the schema.
110
+
111
+ [Params](schema.ts)
112
+
113
+ Usage for Angular Cli:
114
+
115
+ ```shell
116
+ ng g @koobiq/components:time-range-title-for --project "<your project>"
117
+ ```
118
+
119
+ Usage for Nx:
120
+
121
+ ```shell
122
+ nx g @koobiq/components:time-range-title-for --project "<your project>"
123
+ ```
124
+
125
+ ### Run locally
126
+
127
+ Build package
128
+
129
+ ```shell
130
+ yarn run build:schematics
131
+ ```
132
+
133
+ Run command (for example, for `koobiq-docs` project)
134
+
135
+ ```shell
136
+ ng g ./dist/components/schematics/collection.json:time-range-title-for --project koobiq-docs
137
+ ```
138
+
139
+ ### Result
140
+
141
+ #### Before
142
+
143
+ ```ts
144
+ import { kbqTimeRangeLocaleConfigurationProvider } from '@koobiq/components/time-range';
145
+
146
+ export const timeRangeConfiguration = kbqTimeRangeLocaleConfigurationProvider({
147
+ title: {
148
+ for: 'за',
149
+ placeholder: 'Период'
150
+ }
151
+ });
152
+ ```
153
+
154
+ #### After
155
+
156
+ ```ts
157
+ import { kbqTimeRangeLocaleConfigurationProvider } from '@koobiq/components/time-range';
158
+
159
+ export const timeRangeConfiguration = kbqTimeRangeLocaleConfigurationProvider({
160
+ title: {
161
+ placeholder: 'Период'
162
+ }
163
+ });
164
+ ```
@@ -0,0 +1,139 @@
1
+ 'use strict';
2
+
3
+ /**
4
+ * Data for the time-range migration.
5
+ *
6
+ * Two changes to the same component land in the same release and ship as one schematic:
7
+ *
8
+ * - The `title` of `kbq-time-range` used to prepend `title.for` ("за" / "for") to the selected period.
9
+ * The period stands alone now ("последний час" / "Last hour") and the duration templates of each
10
+ * locale carry whatever word it needs, so the key was removed.
11
+ * - The component was made to tell Angular's forms layer the truth about itself: the end of a custom
12
+ * range was assembled from the *time* control instead of the *date* control, `setDisabledState` was
13
+ * implemented on both `KbqTimeRange` and `KbqTimeRangeEditor`, `onTouched` is called when the popover
14
+ * closes, `valueCorrected` compares the outcome instead of the shape of the input, the from/to block
15
+ * moved out of the radiogroup, and `KbqTimeRangeTitleAsControl` became a real `KbqFormFieldControl`
16
+ * instead of a set of declarations nothing ever assigned.
17
+ *
18
+ * Only the `for` removal has a mechanical translation. Everything else is reported: what replaces a
19
+ * write to a member that became a read-only signal is a binding on the host, or nothing at all, and
20
+ * neither can be derived from the assignment.
21
+ */
22
+ /** The key removed from the `title` section of the time-range locale configuration. */
23
+ const REMOVED_KEY = 'for';
24
+ /** The section that held the removed key. */
25
+ const TITLE_KEY = 'title';
26
+ /** The time-range section of the locale data (`addLocale()`, `KBQ_LOCALE_DATA`, `[localeOverrides]`). */
27
+ const TIME_RANGE_KEY = 'timeRange';
28
+ /** The provider whose argument is a time-range locale configuration. */
29
+ const PROVIDER_NAME = 'kbqTimeRangeLocaleConfigurationProvider';
30
+ /** Siblings of `title` that only a time-range locale configuration has. */
31
+ const SIBLING_KEYS = ['editor', 'durationTemplate'];
32
+ /** Import specifier that marks a file as a time-range consumer. */
33
+ const TIME_RANGE_PACKAGE = '@koobiq/components/time-range';
34
+ /** Identifier and element shapes that mark a consumer without an import. */
35
+ const TIME_RANGE_TYPE = '\\bKbqTimeRange\\w*\\b|\\bkbq-time-range\\b';
36
+ /** The form-field adapter, whose members became read-only signals. */
37
+ const TITLE_AS_CONTROL_TYPE = '\\bKbqTimeRangeTitleAsControl\\b|\\bkbq-time-range-title-as-control\\b';
38
+ /**
39
+ * Cheap pre-check gating the AST parse: a `for` member of an object literal (`for:` or `'for':`). A
40
+ * preceding word character or dot rules out longer identifiers and property reads, which are warn-only.
41
+ */
42
+ const FOR_MEMBER_PATTERN = /(?:^|[^.\w$])(['"]?)for\1\s*:/;
43
+ /** Whether a file is a time-range consumer at all, by import or by name. */
44
+ const referencesTimeRange = (content) => content.includes(TIME_RANGE_PACKAGE) || new RegExp(TIME_RANGE_TYPE).test(content);
45
+ /**
46
+ * Warnings for `.ts`, `.html`, `.scss` and `.css` files, inline templates included. Checked against the
47
+ * post-fix content, so the `for` ones only fire on what the fix left behind. An anchored pattern names a
48
+ * member of the component, so the file has to be a consumer before a match means anything.
49
+ */
50
+ const warnPatterns = [
51
+ {
52
+ pattern: '\\btitle\\.for\\b',
53
+ message: 'The `for` key was removed from the title section of the time-range locale configuration: the ' +
54
+ 'title shows the period alone. Drop this read. Manual migration required.'
55
+ },
56
+ {
57
+ pattern: '\\btitle\\s*:\\s*\\{[^{}]*\\bfor\\s*:',
58
+ message: 'A `for` key in a `title` section the fix did not rewrite: a time-range locale override it could not ' +
59
+ 'recognise, or one bound in a template. Remove the key, or ignore this if the object is not a ' +
60
+ 'time-range locale override.'
61
+ },
62
+ {
63
+ anchor: TIME_RANGE_TYPE,
64
+ pattern: '\\.\\s*timepickerList\\b',
65
+ message: 'KbqTimeRangeEditor.timepickerList was removed together with the statusChanges subscription ' +
66
+ 'that wrote errorState onto the first timepicker by hand. It only ever marked the `from` ' +
67
+ 'field, leaving the `to` field - the one an inverted range usually needs - looking valid. ' +
68
+ 'Both pairs take their error state from ErrorStateMatcher now; provide your own matcher ' +
69
+ 'through the ErrorStateMatcher token if you need different timing.'
70
+ },
71
+ {
72
+ anchor: TITLE_AS_CONTROL_TYPE,
73
+ // `control().stateChanges` read off a form field is reported by `form-field-signals`.
74
+ pattern: '\\.\\s*(?:errorState|empty|required|disabled|focused|id|placeholder|value|controlType)\\s*=(?!=)|' +
75
+ '(?<!control\\(\\)\\??)\\.\\s*stateChanges\\b',
76
+ message: 'A write to a member of a KbqTimeRangeTitleAsControl, or a read of its stateChanges - ignore this ' +
77
+ 'if the receiver is another object, the anchor is the file, not the expression: value, id, ' +
78
+ 'placeholder, focused, empty, required, disabled and errorState are no longer assignable, and ' +
79
+ 'stateChanges was removed. They were declared and never written, so a form field around the ' +
80
+ 'control rendered once against undefined state; they are read-only signals derived from the host ' +
81
+ 'and the bound NgControl now, and controlType is readonly. Drive them through the form control ' +
82
+ 'instead of assigning them, read them with a call - errorState() - and read the signals in a ' +
83
+ 'computed() or an effect() where you subscribed to stateChanges.'
84
+ },
85
+ {
86
+ anchor: TIME_RANGE_TYPE,
87
+ pattern: '\\bvalueCorrected\\b',
88
+ message: 'valueCorrected now fires only when the correction produced a different range. It used to ' +
89
+ 'fire on every write of a value with no startDateTime, which the allTime preset legitimately ' +
90
+ 'produces - a host that wrote the payload back looped on it. A handler that counted emissions ' +
91
+ 'or relied on one arriving for allTime sees fewer of them.'
92
+ },
93
+ {
94
+ anchor: TIME_RANGE_TYPE,
95
+ pattern: '\\bkbq-time-range-editor__(?:range|container)(?![\\w-])',
96
+ message: 'The editor markup changed: the from/to block is a sibling of the radiogroup rather than a ' +
97
+ 'child of it, because a role="radiogroup" must not own two datepickers and two timepickers. ' +
98
+ '.kbq-time-range-editor__container is the flex column that holds both, the range radio ' +
99
+ 'carries .kbq-time-range-editor__range-option, and .kbq-time-range-editor__range holds only ' +
100
+ 'the two date/time rows. A selector that descends from the radiogroup no longer matches.'
101
+ }
102
+ ];
103
+ /** Behaviour note printed once per run — the parts no call site can point at. */
104
+ const BEHAVIOUR_NOTE = [
105
+ 'Time-range title behaviour changed:',
106
+ ' - The title no longer prepends `title.for` to the selected period: it reads "последний час" /',
107
+ ' "Last hour" rather than "за последний час" / "for last hour". A custom title template receives',
108
+ ' the period alone in `formattedDate`.',
109
+ ' - If you prefixed a word through `title.for`, move it into your `durationTemplate.title` overrides.',
110
+ '',
111
+ 'Time-range forms contract changed:',
112
+ ' - The end of a custom range is built from the `to` date control instead of the `to` time control.',
113
+ ' Ranges emitted before this fix ended on whatever calendar day the timepicker held - today, or the',
114
+ ' day of the previously applied value - rather than the day the user picked. Persisted ranges may',
115
+ ' need correcting; the form validated the range the user saw while the component emitted a different',
116
+ ' one, so an inverted range could pass validation and a valid one fail it.',
117
+ ' - setDisabledState is implemented on KbqTimeRange and KbqTimeRangeEditor. A disabled control drops',
118
+ ' the trigger out of the tab order, refuses to open the popover and takes a kbq-disabled host class;',
119
+ ' it used to look and behave enabled while Angular silently discarded the value.',
120
+ ' - onTouched is called when the popover closes, so the control becomes `touched` after the first',
121
+ ' interaction. Every ErrorStateMatcher in the library keys error display off that, so a required',
122
+ ' time range that never showed its message now shows it at the right moment.',
123
+ ' - The popover footer no longer wraps Apply and Cancel in an unnamed role="group", and the from/to',
124
+ ' prefixes carry an id that the four inputs point at with aria-labelledby instead of an inert',
125
+ ' aria-label on a bare <span>.'
126
+ ];
127
+
128
+ exports.BEHAVIOUR_NOTE = BEHAVIOUR_NOTE;
129
+ exports.FOR_MEMBER_PATTERN = FOR_MEMBER_PATTERN;
130
+ exports.PROVIDER_NAME = PROVIDER_NAME;
131
+ exports.REMOVED_KEY = REMOVED_KEY;
132
+ exports.SIBLING_KEYS = SIBLING_KEYS;
133
+ exports.TIME_RANGE_KEY = TIME_RANGE_KEY;
134
+ exports.TIME_RANGE_PACKAGE = TIME_RANGE_PACKAGE;
135
+ exports.TIME_RANGE_TYPE = TIME_RANGE_TYPE;
136
+ exports.TITLE_AS_CONTROL_TYPE = TITLE_AS_CONTROL_TYPE;
137
+ exports.TITLE_KEY = TITLE_KEY;
138
+ exports.referencesTimeRange = referencesTimeRange;
139
+ exports.warnPatterns = warnPatterns;
@@ -0,0 +1,163 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var ts = require('typescript');
6
+ var utils_messages = require('../../utils/messages.js');
7
+ var utils_packageConfig = require('../../package-config-BhU2TfC8.js');
8
+ var migrations_timeRangeTitleFor_data = require('./data.js');
9
+ require('@angular-devkit/schematics');
10
+ require('@schematics/angular/utility');
11
+
12
+ const TS_EXT = '.ts';
13
+ const HTML_EXT = '.html';
14
+ const STYLE_EXTENSIONS = ['.scss', '.css'];
15
+ const LABEL = '[time-range-title-for]';
16
+ const createSourceFile = (fileName, content) => ts.createSourceFile(fileName, content, ts.ScriptTarget.Latest, true, ts.ScriptKind.TS);
17
+ /** Property name of an object-literal member, for the forms a locale literal can use. */
18
+ function propertyName(property) {
19
+ if (!ts.isPropertyAssignment(property))
20
+ return null;
21
+ if (!ts.isIdentifier(property.name) && !ts.isStringLiteralLike(property.name))
22
+ return null;
23
+ return property.name.text;
24
+ }
25
+ function calleeName(call) {
26
+ const callee = call.expression;
27
+ if (ts.isIdentifier(callee))
28
+ return callee.text;
29
+ if (ts.isPropertyAccessExpression(callee))
30
+ return callee.name.text;
31
+ return null;
32
+ }
33
+ /**
34
+ * Whether an object literal is the `title` section of a time-range locale configuration: the `title` of
35
+ * a `timeRange` section, of a `kbqTimeRangeLocaleConfigurationProvider()` argument, or of a literal that
36
+ * also carries a time-range-only sibling ({@link SIBLING_KEYS}). No type resolution is involved: the
37
+ * schematic's virtual tree has no `@koobiq` types to resolve against.
38
+ */
39
+ function isTimeRangeTitle(node) {
40
+ const assignment = node.parent;
41
+ if (propertyName(assignment) !== migrations_timeRangeTitleFor_data.TITLE_KEY)
42
+ return false;
43
+ const section = assignment.parent;
44
+ if (!ts.isObjectLiteralExpression(section))
45
+ return false;
46
+ const owner = section.parent;
47
+ if (propertyName(owner) === migrations_timeRangeTitleFor_data.TIME_RANGE_KEY)
48
+ return true;
49
+ if (ts.isCallExpression(owner) && calleeName(owner) === migrations_timeRangeTitleFor_data.PROVIDER_NAME)
50
+ return true;
51
+ return section.properties.some((property) => migrations_timeRangeTitleFor_data.SIBLING_KEYS.includes(propertyName(property) ?? ''));
52
+ }
53
+ /** Spans of every removable `for` property across the file. */
54
+ function collectSpans(sourceFile) {
55
+ const spans = [];
56
+ const visit = (node) => {
57
+ if (ts.isObjectLiteralExpression(node) && isTimeRangeTitle(node)) {
58
+ for (const property of node.properties) {
59
+ if (propertyName(property) === migrations_timeRangeTitleFor_data.REMOVED_KEY) {
60
+ spans.push({ start: property.getStart(sourceFile), end: property.getEnd() });
61
+ }
62
+ }
63
+ }
64
+ ts.forEachChild(node, visit);
65
+ };
66
+ ts.forEachChild(sourceFile, visit);
67
+ return spans;
68
+ }
69
+ /** A comma and the whitespace — at most one line break — that separates two members. */
70
+ const SEPARATOR_BEFORE = /,[ \t]*\r?\n?[ \t]*$/;
71
+ const SEPARATOR_AFTER = /^,[ \t]*\r?\n?[ \t]*/;
72
+ /**
73
+ * Deletes the given properties right-to-left, so earlier offsets stay valid, each together with exactly
74
+ * one adjacent separator — the preceding one when the property has one — so the literal keeps its shape
75
+ * and nothing around it is reformatted. A sole property leaves an empty literal rather than a stray comma.
76
+ */
77
+ function removeProperties(content, spans) {
78
+ let result = content;
79
+ for (const { start, end } of [...spans].sort((a, b) => b.start - a.start)) {
80
+ const before = SEPARATOR_BEFORE.exec(result.slice(0, start));
81
+ const after = before ? null : SEPARATOR_AFTER.exec(result.slice(end));
82
+ result = result.slice(0, before ? before.index : start) + result.slice(end + (after ? after[0].length : 0));
83
+ }
84
+ return result;
85
+ }
86
+ function logWarnings(context, filePath, content) {
87
+ const consumer = migrations_timeRangeTitleFor_data.referencesTimeRange(content);
88
+ for (const { anchor, pattern, message } of migrations_timeRangeTitleFor_data.warnPatterns) {
89
+ // An anchored pattern names a member of the component, so a file that never mentions the
90
+ // component cannot hold a call site it is about.
91
+ if (anchor && (!consumer || !new RegExp(anchor).test(content)))
92
+ continue;
93
+ if (new RegExp(pattern).test(content)) {
94
+ utils_messages.logMessage(context.logger, [`${LABEL} ${filePath}`, ` ${message}`]);
95
+ }
96
+ }
97
+ }
98
+ function isMigratableFile(filePath) {
99
+ return (filePath.endsWith(TS_EXT) ||
100
+ filePath.endsWith(HTML_EXT) ||
101
+ STYLE_EXTENSIONS.some((extension) => filePath.endsWith(extension)));
102
+ }
103
+ /**
104
+ * Removes `title.for` from time-range locale configuration literals and reports everything else the
105
+ * component review breaks: the removed `timepickerList`, the `KbqTimeRangeTitleAsControl` members that
106
+ * became read-only signals, the narrowed `valueCorrected` and the editor markup that moved the
107
+ * from/to block out of the radiogroup. Only the `for` removal is written back — what replaces a write
108
+ * to a derived member is a binding on the host, or nothing at all.
109
+ *
110
+ * Stylesheets are visited as well, because the markup change is what a descendant selector keyed on the
111
+ * radiogroup notices. The two changes ship in one release, so they ship as one schematic.
112
+ */
113
+ function timeRangeTitleFor(options) {
114
+ return async (tree, context) => {
115
+ const { project } = options;
116
+ // ng update invokes migrations with no options at all, and migrations.json declares no
117
+ // schema, so the schema default never reaches us — applying the fix is the intended
118
+ // behaviour there.
119
+ const fix = options.fix ?? true;
120
+ const projectDefinition = await utils_packageConfig.setupOptions(project, tree);
121
+ const root = projectDefinition?.root ?? '';
122
+ const rootDir = root ? tree.getDir(root) : tree.root;
123
+ const filePaths = [];
124
+ utils_packageConfig.visitProjectFiles(rootDir, (filePath) => {
125
+ if (!isMigratableFile(filePath))
126
+ return;
127
+ filePaths.push(filePath);
128
+ });
129
+ let touched = 0;
130
+ for (const filePath of filePaths) {
131
+ const originalContent = tree.read(filePath)?.toString();
132
+ if (!originalContent)
133
+ continue;
134
+ let content = originalContent;
135
+ // Parsing every .ts of the project is not free, and a file with no `for` member at all
136
+ // cannot hold a literal to fix.
137
+ if (filePath.endsWith(TS_EXT) && migrations_timeRangeTitleFor_data.FOR_MEMBER_PATTERN.test(content)) {
138
+ content = removeProperties(content, collectSpans(createSourceFile(filePath, content)));
139
+ }
140
+ // Warn on what is left over, so an auto-fixed literal does not also produce a "manual
141
+ // migration required" note. In dry-run mode the fix is not written, so report against the
142
+ // original content.
143
+ logWarnings(context, filePath, fix ? content : originalContent);
144
+ if (content === originalContent)
145
+ continue;
146
+ touched++;
147
+ if (fix) {
148
+ tree.overwrite(filePath, content);
149
+ }
150
+ else {
151
+ utils_messages.logMessage(context.logger, [`${LABEL} would update ${filePath} (run with --fix to apply)`]);
152
+ }
153
+ }
154
+ utils_messages.logMessage(context.logger, [
155
+ `${LABEL} processed tree under "${root || '<workspace root>'}", ` +
156
+ `${fix ? 'updated' : 'would update'} ${touched} file(s).`,
157
+ '',
158
+ ...migrations_timeRangeTitleFor_data.BEHAVIOUR_NOTE
159
+ ]);
160
+ };
161
+ }
162
+
163
+ exports.default = timeRangeTitleFor;
@@ -0,0 +1,20 @@
1
+ {
2
+ "$schema": "http://json-schema.org/schema",
3
+ "$id": "koobiq-components-time-range-title-for",
4
+ "title": "Koobiq components time-range title.for removal",
5
+ "type": "object",
6
+ "properties": {
7
+ "project": {
8
+ "type": "string",
9
+ "description": "Name of the project to migrate. If omitted, the migration runs over the whole tree.",
10
+ "$default": {
11
+ "$source": "projectName"
12
+ }
13
+ },
14
+ "fix": {
15
+ "type": "boolean",
16
+ "default": true,
17
+ "description": "When true, applies all auto-fix replacements. When false, prints what would change without writing."
18
+ }
19
+ }
20
+ }
@@ -0,0 +1,78 @@
1
+ # timepicker-signals
2
+
3
+ Migration schematic invoked automatically by `ng update @koobiq/components@21` (registered for
4
+ `21.0.0-0`). Migrates `KbqTimepicker` consumers to its signal-based inputs.
5
+
6
+ ## Background
7
+
8
+ The `KbqFormFieldControl` members of `KbqTimepicker` - `value`, `id`, `placeholder`, `required`,
9
+ `disabled`, `focused`, `empty` and `errorState` - are signals, migrated by `form-field-signals`: reads
10
+ become calls, a write to `disabled` becomes `.set()`, a write to the rest is reported. This schematic
11
+ covers the four inputs the timepicker owns.
12
+
13
+ `min` and `max` parsed in their setters and reported the parsed result:
14
+
15
+ ```ts
16
+ set min(value: D | null) {
17
+ this._min = this.getValidDateOrNull(this.dateAdapter.deserialize(value));
18
+ this.validatorOnChange();
19
+ }
20
+ ```
21
+
22
+ So an unparseable bound value read back as `null`. They report what was bound now; the parsed values
23
+ stay internal and still drive the validators, re-run from `ngOnChanges` when either input changes -
24
+ synchronously with the binding, the way the setters did.
25
+
26
+ `kbqValidationTooltip` was a setter-only input that subscribed to `incorrectInput` every time it ran, so
27
+ re-binding it stacked another subscription.
28
+
29
+ ## What it rewrites
30
+
31
+ | Before | After |
32
+ | --------------------------- | ----------------------------- |
33
+ | `timepicker.format` | `timepicker.format()` |
34
+ | `this.timepicker()?.format` | `this.timepicker()?.format()` |
35
+ | `{{ tp.format }}` in a view | `{{ tp.format() }}` |
36
+
37
+ On receivers typed `KbqTimepicker` - by annotation, including an aliased import, or by `inject()`,
38
+ `viewChild()` and `contentChild()` - and through `!`, parentheses and `as`. Each name is resolved in its
39
+ own scope, so a nested binding that shadows the receiver, `this` inside a `function` that rebinds it, and
40
+ a parameter that only exists in a type position are left alone. Already-migrated reads are left alone too,
41
+ so the schematic is idempotent.
42
+
43
+ The template pass follows reference variables bound through the directive's `exportAs`,
44
+ `#tp="kbqTimepicker"`, in external and inline templates. A bare `#tp` on the native `<input>` is the
45
+ element itself, so it is not touched.
46
+
47
+ ## What it does _not_ do
48
+
49
+ | Pattern | Manual migration |
50
+ | ------------------------------------------------------ | ------------------------------------------------------------------------------------- |
51
+ | `.min` / `.max` | `min()` / `max()` - a read without the call is always truthy; expect the bound value |
52
+ | Any write, incl. `??=`, `+=`, `++`, `delete` | Bind `[format]`, `[min]`, `[max]` or `[kbqValidationTooltip]`; every form is reported |
53
+ | `query.format` on an uncalled `viewChild()` | Read it as `query()?.format()` |
54
+ | `KbqTimepicker` named in a union, array or `QueryList` | Reported with its line; resolve the receiver by hand |
55
+
56
+ A `@ViewChild(KbqTimepicker)` field holds the instance itself, so its reads are rewritten with a single
57
+ `()` and no double call is suggested.
58
+
59
+ ## Notes with no call site to point at
60
+
61
+ - **A re-bound `kbqValidationTooltip` no longer stacks subscriptions.** After several re-binds one rejected
62
+ keystroke used to open every tooltip ever bound. It is an effect with a teardown now, which also gives an
63
+ unbound tooltip its own trigger and delay back.
64
+ - **A locale change reformats the rendered time even when the placeholder was set by the consumer.**
65
+ The effect used to return early on a consumer-provided placeholder, which skipped the reformat with
66
+ it; the two are separate concerns now.
67
+ - **Generated ids come from the CDK `_IdGenerator`** instead of a module-level counter. The shape is
68
+ unchanged for a default `APP_ID`: the CDK omits the app id when it is `ng`, and the counter still starts
69
+ at 0, so a real app keeps getting `kbq-timepicker-0`. Only an app that sets `APP_ID` explicitly sees it
70
+ in the id, right before the counter and with no separator.
71
+
72
+ ## Running it manually
73
+
74
+ ```
75
+ ng generate @koobiq/components:timepicker-signals --project my-app
76
+ ```
77
+
78
+ Pass `--fix=false` to see what it would change without writing.
@@ -0,0 +1,82 @@
1
+ 'use strict';
2
+
3
+ /**
4
+ * Data for the `timepicker-signals` migration.
5
+ *
6
+ * The `KbqFormFieldControl` members of `KbqTimepicker` (`value`, `id`, `placeholder`, `required`, `disabled`,
7
+ * `focused`, `empty`, `errorState`) are signals too, but `form-field-signals` migrates them. This migration
8
+ * covers the four inputs the timepicker owns.
9
+ *
10
+ * - `timepicker.format` → `timepicker.format()` (value unchanged — auto-fixed)
11
+ * - `timepicker.min` / `max` → signals whose value changed: the getters returned the parsed date (reported)
12
+ * - `kbqValidationTooltip` → a read-only input driven by an effect (writes reported)
13
+ */
14
+ const TARGETS = [
15
+ {
16
+ type: 'KbqTimepicker',
17
+ signalMembers: ['format'],
18
+ reportedMembers: ['min', 'max'],
19
+ readOnlyMembers: ['format', 'min', 'max', 'kbqValidationTooltip'],
20
+ exportAs: ['kbqTimepicker'],
21
+ elements: [],
22
+ writeAdvice: 'Bind `[format]`, `[min]`, `[max]` and `[kbqValidationTooltip]` in the template instead.'
23
+ }
24
+ ];
25
+ /** Methods on a signal, whose presence after the member means the read is already migrated. */
26
+ const SIGNAL_API_METHODS = new Set(['set', 'update', 'asReadonly', 'subscribe']);
27
+ /** Import specifier that marks a file as a timepicker consumer. */
28
+ const TIMEPICKER_PACKAGE = '@koobiq/components/timepicker';
29
+ /** Reported for writes to members that are read-only now, whatever form the write takes. */
30
+ const writeMessage = (type, members, advice) => `These ${type} members are read-only signals now, so these writes no longer compile: ` +
31
+ `${[...members].join(', ')}. That covers compound assignments (\`??=\`, \`+=\`), increments, \`delete\` ` +
32
+ `and destructuring targets as well as a plain \`=\`. ${advice}`;
33
+ /** Reported for reads of `min` / `max`, which have to become calls and changed what they return. */
34
+ const reportedMessage = (members) => `These KbqTimepicker reads were left untouched: ${[...members].join(', ')}. Add \`()\` - a read ` +
35
+ 'without the call is the signal itself, a function, so `if (timepicker.min)` always passes - and ' +
36
+ 'expect the value that was bound rather than the parsed date: the getters returned ' +
37
+ '`getValidDateOrNull(dateAdapter.deserialize(bound))`, so an unparseable bound value used to read as ' +
38
+ '`null` and reads as itself now.';
39
+ /**
40
+ * Reported for a read through a signal query, which is a signal holding the instance: the read needs two
41
+ * calls rather than one. Emitted from the AST pass rather than a regex, so a `@ViewChild` field - which holds
42
+ * the instance itself - is never mistaken for one.
43
+ */
44
+ const signalQueryMessage = (member, required) => `A signal query holds the instance behind a call of its own, so reading \`${member}\` through it needs ` +
45
+ `two calls: \`this.query()${required ? '' : '?'}.${member}()\`.` +
46
+ (required ? '' : ' The query is optional, so keep the `?.`.') +
47
+ ' Those reads are left untouched - migrate them by hand.';
48
+ /** Reported when a template references the timepicker but cannot be parsed, so nothing in it was inspected. */
49
+ const UNPARSEABLE_TEMPLATE_MESSAGE = 'This template references the timepicker but could not be parsed, so it was left untouched. Migrate ' +
50
+ 'reads through its `#ref="kbqTimepicker"` reference variables by hand. If every template is reported ' +
51
+ 'this way, `@angular/compiler` could not be loaded from this install.';
52
+ /**
53
+ * Reported when a file names `KbqTimepicker` in a type position the receiver pass cannot scope to a single
54
+ * identifier - a union, an array, a `QueryList<…>`, a return type - or reads a member in a shape the access
55
+ * pass cannot reach.
56
+ */
57
+ const UNRESOLVED_RECEIVER_MESSAGE = 'KbqTimepicker is used here in a way this migration cannot resolve to a single receiver, so any signal ' +
58
+ 'read through it was left untouched. Check these lines by hand:';
59
+ /** Printed once per project, after the per-file reports. */
60
+ const SUMMARY = [
61
+ ' A re-bound `kbqValidationTooltip` no longer stacks subscriptions. The setter subscribed to ' +
62
+ '`incorrectInput` every time it ran, so after several re-binds one rejected keystroke opened every ' +
63
+ 'tooltip ever bound. It is an effect with a teardown now, which also gives an unbound tooltip its own ' +
64
+ 'trigger and delay back.',
65
+ ' A locale change reformats the rendered time even when the placeholder was set by the consumer. The ' +
66
+ 'effect used to return early on a consumer-provided placeholder, which skipped the reformat with ' +
67
+ 'it — the two are separate concerns now.',
68
+ ' Generated ids come from the CDK `_IdGenerator` instead of a module-level counter. The shape is ' +
69
+ 'unchanged for a default `APP_ID`: the CDK omits the app id when it is `ng`, and the counter still ' +
70
+ 'starts at 0, so a real app keeps getting `kbq-timepicker-0`. Only an app that sets `APP_ID` ' +
71
+ 'explicitly sees it in the id, right before the counter and with no separator.'
72
+ ];
73
+
74
+ exports.SIGNAL_API_METHODS = SIGNAL_API_METHODS;
75
+ exports.SUMMARY = SUMMARY;
76
+ exports.TARGETS = TARGETS;
77
+ exports.TIMEPICKER_PACKAGE = TIMEPICKER_PACKAGE;
78
+ exports.UNPARSEABLE_TEMPLATE_MESSAGE = UNPARSEABLE_TEMPLATE_MESSAGE;
79
+ exports.UNRESOLVED_RECEIVER_MESSAGE = UNRESOLVED_RECEIVER_MESSAGE;
80
+ exports.reportedMessage = reportedMessage;
81
+ exports.signalQueryMessage = signalQueryMessage;
82
+ exports.writeMessage = writeMessage;