@koobiq/components 19.8.0 → 20.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 (685) hide show
  1. package/accordion/index.d.ts +238 -1
  2. package/actions-panel/index.d.ts +303 -5
  3. package/alert/index.d.ts +54 -1
  4. package/app-switcher/index.d.ts +239 -1
  5. package/autocomplete/index.d.ts +265 -1
  6. package/badge/index.d.ts +57 -1
  7. package/breadcrumbs/breadcrumbs.scss +7 -0
  8. package/breadcrumbs/index.d.ts +243 -1
  9. package/button/_button-base.scss +20 -0
  10. package/button/_button-theme.scss +3 -11
  11. package/button/button.scss +0 -11
  12. package/button/index.d.ts +153 -1
  13. package/button-toggle/index.d.ts +155 -1
  14. package/checkbox/index.d.ts +159 -1
  15. package/clamped-text/index.d.ts +144 -4
  16. package/code-block/_code-block-theme.scss +0 -6
  17. package/code-block/code-block-tokens.scss +0 -2
  18. package/code-block/index.d.ts +383 -1
  19. package/content-panel/content-panel.scss +0 -8
  20. package/content-panel/index.d.ts +158 -2
  21. package/core/highlight/_highlight-theme.scss +9 -0
  22. package/core/index.d.ts +4405 -1
  23. package/core/option/_option-theme.scss +5 -14
  24. package/core/styles/_koobiq-theme.scss +1 -0
  25. package/core/styles/theming/_components-theming.scss +0 -62
  26. package/datepicker/index.d.ts +699 -1
  27. package/divider/index.d.ts +20 -1
  28. package/dl/index.d.ts +37 -1
  29. package/dropdown/_dropdown-theme.scss +4 -8
  30. package/dropdown/dropdown.scss +4 -0
  31. package/dropdown/index.d.ts +473 -1
  32. package/dynamic-translation/index.d.ts +81 -2
  33. package/ellipsis-center/index.d.ts +38 -1
  34. package/empty-state/index.d.ts +45 -1
  35. package/fesm2022/koobiq-components-accordion.mjs +103 -114
  36. package/fesm2022/koobiq-components-accordion.mjs.map +1 -1
  37. package/fesm2022/koobiq-components-actions-panel.mjs +16 -16
  38. package/fesm2022/koobiq-components-actions-panel.mjs.map +1 -1
  39. package/fesm2022/koobiq-components-alert.mjs +35 -49
  40. package/fesm2022/koobiq-components-alert.mjs.map +1 -1
  41. package/fesm2022/koobiq-components-app-switcher.mjs +81 -86
  42. package/fesm2022/koobiq-components-app-switcher.mjs.map +1 -1
  43. package/fesm2022/koobiq-components-autocomplete.mjs +294 -304
  44. package/fesm2022/koobiq-components-autocomplete.mjs.map +1 -1
  45. package/fesm2022/koobiq-components-badge.mjs +35 -42
  46. package/fesm2022/koobiq-components-badge.mjs.map +1 -1
  47. package/fesm2022/koobiq-components-breadcrumbs.mjs +154 -163
  48. package/fesm2022/koobiq-components-breadcrumbs.mjs.map +1 -1
  49. package/fesm2022/koobiq-components-button-toggle.mjs +87 -86
  50. package/fesm2022/koobiq-components-button-toggle.mjs.map +1 -1
  51. package/fesm2022/koobiq-components-button.mjs +209 -96
  52. package/fesm2022/koobiq-components-button.mjs.map +1 -1
  53. package/fesm2022/koobiq-components-checkbox.mjs +50 -52
  54. package/fesm2022/koobiq-components-checkbox.mjs.map +1 -1
  55. package/fesm2022/koobiq-components-clamped-text.mjs +42 -49
  56. package/fesm2022/koobiq-components-clamped-text.mjs.map +1 -1
  57. package/fesm2022/koobiq-components-code-block.mjs +125 -125
  58. package/fesm2022/koobiq-components-code-block.mjs.map +1 -1
  59. package/fesm2022/koobiq-components-content-panel.mjs +90 -107
  60. package/fesm2022/koobiq-components-content-panel.mjs.map +1 -1
  61. package/fesm2022/koobiq-components-core.mjs +1630 -618
  62. package/fesm2022/koobiq-components-core.mjs.map +1 -1
  63. package/fesm2022/koobiq-components-datepicker.mjs +285 -349
  64. package/fesm2022/koobiq-components-datepicker.mjs.map +1 -1
  65. package/fesm2022/koobiq-components-divider.mjs +14 -25
  66. package/fesm2022/koobiq-components-divider.mjs.map +1 -1
  67. package/fesm2022/koobiq-components-dl.mjs +27 -29
  68. package/fesm2022/koobiq-components-dl.mjs.map +1 -1
  69. package/fesm2022/koobiq-components-dropdown.mjs +202 -167
  70. package/fesm2022/koobiq-components-dropdown.mjs.map +1 -1
  71. package/fesm2022/koobiq-components-dynamic-translation.mjs +23 -23
  72. package/fesm2022/koobiq-components-dynamic-translation.mjs.map +1 -1
  73. package/fesm2022/koobiq-components-ellipsis-center.mjs +16 -21
  74. package/fesm2022/koobiq-components-ellipsis-center.mjs.map +1 -1
  75. package/fesm2022/koobiq-components-empty-state.mjs +35 -39
  76. package/fesm2022/koobiq-components-empty-state.mjs.map +1 -1
  77. package/fesm2022/koobiq-components-file-upload.mjs +135 -234
  78. package/fesm2022/koobiq-components-file-upload.mjs.map +1 -1
  79. package/fesm2022/koobiq-components-filter-bar.mjs +321 -561
  80. package/fesm2022/koobiq-components-filter-bar.mjs.map +1 -1
  81. package/fesm2022/koobiq-components-form-field.mjs +211 -430
  82. package/fesm2022/koobiq-components-form-field.mjs.map +1 -1
  83. package/fesm2022/koobiq-components-icon.mjs +42 -43
  84. package/fesm2022/koobiq-components-icon.mjs.map +1 -1
  85. package/fesm2022/koobiq-components-inline-edit.mjs +65 -60
  86. package/fesm2022/koobiq-components-inline-edit.mjs.map +1 -1
  87. package/fesm2022/koobiq-components-input.mjs +116 -155
  88. package/fesm2022/koobiq-components-input.mjs.map +1 -1
  89. package/fesm2022/koobiq-components-link.mjs +38 -53
  90. package/fesm2022/koobiq-components-link.mjs.map +1 -1
  91. package/fesm2022/koobiq-components-list.mjs +105 -114
  92. package/fesm2022/koobiq-components-list.mjs.map +1 -1
  93. package/fesm2022/koobiq-components-loader-overlay.mjs +37 -44
  94. package/fesm2022/koobiq-components-loader-overlay.mjs.map +1 -1
  95. package/fesm2022/koobiq-components-markdown.mjs +31 -35
  96. package/fesm2022/koobiq-components-markdown.mjs.map +1 -1
  97. package/fesm2022/koobiq-components-modal.mjs +169 -163
  98. package/fesm2022/koobiq-components-modal.mjs.map +1 -1
  99. package/fesm2022/koobiq-components-navbar.mjs +159 -161
  100. package/fesm2022/koobiq-components-navbar.mjs.map +1 -1
  101. package/fesm2022/koobiq-components-notification-center.mjs +54 -55
  102. package/fesm2022/koobiq-components-notification-center.mjs.map +1 -1
  103. package/fesm2022/koobiq-components-overflow-items.mjs +36 -36
  104. package/fesm2022/koobiq-components-overflow-items.mjs.map +1 -1
  105. package/fesm2022/koobiq-components-popover.mjs +95 -86
  106. package/fesm2022/koobiq-components-popover.mjs.map +1 -1
  107. package/fesm2022/koobiq-components-progress-bar.mjs +24 -30
  108. package/fesm2022/koobiq-components-progress-bar.mjs.map +1 -1
  109. package/fesm2022/koobiq-components-progress-spinner.mjs +25 -32
  110. package/fesm2022/koobiq-components-progress-spinner.mjs.map +1 -1
  111. package/fesm2022/koobiq-components-radio.mjs +94 -80
  112. package/fesm2022/koobiq-components-radio.mjs.map +1 -1
  113. package/fesm2022/koobiq-components-resizer.mjs +17 -17
  114. package/fesm2022/koobiq-components-resizer.mjs.map +1 -1
  115. package/fesm2022/koobiq-components-scrollbar.mjs +69 -60
  116. package/fesm2022/koobiq-components-scrollbar.mjs.map +1 -1
  117. package/fesm2022/koobiq-components-search-expandable.mjs +44 -35
  118. package/fesm2022/koobiq-components-search-expandable.mjs.map +1 -1
  119. package/fesm2022/koobiq-components-select.mjs +249 -234
  120. package/fesm2022/koobiq-components-select.mjs.map +1 -1
  121. package/fesm2022/koobiq-components-sidebar.mjs +59 -55
  122. package/fesm2022/koobiq-components-sidebar.mjs.map +1 -1
  123. package/fesm2022/koobiq-components-sidepanel.mjs +88 -128
  124. package/fesm2022/koobiq-components-sidepanel.mjs.map +1 -1
  125. package/fesm2022/koobiq-components-skeleton.mjs +12 -12
  126. package/fesm2022/koobiq-components-skeleton.mjs.map +1 -1
  127. package/fesm2022/koobiq-components-split-button.mjs +27 -20
  128. package/fesm2022/koobiq-components-split-button.mjs.map +1 -1
  129. package/fesm2022/koobiq-components-splitter.mjs +110 -96
  130. package/fesm2022/koobiq-components-splitter.mjs.map +1 -1
  131. package/fesm2022/koobiq-components-table.mjs +21 -23
  132. package/fesm2022/koobiq-components-table.mjs.map +1 -1
  133. package/fesm2022/koobiq-components-tabs.mjs +269 -275
  134. package/fesm2022/koobiq-components-tabs.mjs.map +1 -1
  135. package/fesm2022/koobiq-components-tags.mjs +177 -267
  136. package/fesm2022/koobiq-components-tags.mjs.map +1 -1
  137. package/fesm2022/koobiq-components-textarea.mjs +37 -56
  138. package/fesm2022/koobiq-components-textarea.mjs.map +1 -1
  139. package/fesm2022/koobiq-components-time-range.mjs +64 -65
  140. package/fesm2022/koobiq-components-time-range.mjs.map +1 -1
  141. package/fesm2022/koobiq-components-timepicker.mjs +46 -38
  142. package/fesm2022/koobiq-components-timepicker.mjs.map +1 -1
  143. package/fesm2022/koobiq-components-timezone.mjs +52 -58
  144. package/fesm2022/koobiq-components-timezone.mjs.map +1 -1
  145. package/fesm2022/koobiq-components-title.mjs +23 -30
  146. package/fesm2022/koobiq-components-title.mjs.map +1 -1
  147. package/fesm2022/koobiq-components-toast.mjs +54 -69
  148. package/fesm2022/koobiq-components-toast.mjs.map +1 -1
  149. package/fesm2022/koobiq-components-toggle.mjs +51 -63
  150. package/fesm2022/koobiq-components-toggle.mjs.map +1 -1
  151. package/fesm2022/koobiq-components-tooltip.mjs +91 -119
  152. package/fesm2022/koobiq-components-tooltip.mjs.map +1 -1
  153. package/fesm2022/koobiq-components-top-bar.mjs +25 -23
  154. package/fesm2022/koobiq-components-top-bar.mjs.map +1 -1
  155. package/fesm2022/koobiq-components-tree-select.mjs +227 -227
  156. package/fesm2022/koobiq-components-tree-select.mjs.map +1 -1
  157. package/fesm2022/koobiq-components-tree.mjs +217 -209
  158. package/fesm2022/koobiq-components-tree.mjs.map +1 -1
  159. package/fesm2022/koobiq-components-username.mjs +48 -48
  160. package/fesm2022/koobiq-components-username.mjs.map +1 -1
  161. package/file-upload/index.d.ts +574 -1
  162. package/filter-bar/_filter-bar-theme.scss +0 -4
  163. package/filter-bar/index.d.ts +796 -1
  164. package/form-field/index.d.ts +569 -1
  165. package/icon/index.d.ts +162 -1
  166. package/index.d.ts +2 -1
  167. package/inline-edit/index.d.ts +171 -2
  168. package/input/index.d.ts +339 -1
  169. package/link/index.d.ts +56 -1
  170. package/list/index.d.ts +220 -1
  171. package/loader-overlay/index.d.ts +57 -1
  172. package/markdown/index.d.ts +68 -1
  173. package/modal/_modal-theme.scss +0 -8
  174. package/modal/index.d.ts +311 -1
  175. package/navbar/index.d.ts +304 -1
  176. package/notification-center/index.d.ts +237 -1
  177. package/notification-center/notification-center.scss +0 -8
  178. package/overflow-items/index.d.ts +161 -2
  179. package/package.json +10 -18
  180. package/popover/index.d.ts +182 -1
  181. package/popover/popover.scss +8 -12
  182. package/prebuilt-themes/dark-theme.css +1 -1
  183. package/prebuilt-themes/light-theme.css +1 -1
  184. package/prebuilt-themes/theme.css +1 -1
  185. package/progress-bar/index.d.ts +31 -1
  186. package/progress-spinner/index.d.ts +37 -1
  187. package/radio/index.d.ts +207 -1
  188. package/resizer/index.d.ts +85 -2
  189. package/schematics/collection.json +5 -0
  190. package/schematics/migrations/css-selectors/index.js +1 -1
  191. package/schematics/migrations/deprecated-icons/index.js +1 -1
  192. package/schematics/migrations/new-icons-pack/index.js +1 -1
  193. package/schematics/migrations/v20-upgrade/README.md +72 -0
  194. package/schematics/migrations/v20-upgrade/data.js +274 -0
  195. package/schematics/migrations/v20-upgrade/index.js +222 -0
  196. package/schematics/migrations/v20-upgrade/schema.json +20 -0
  197. package/schematics/migrations.json +10 -0
  198. package/schematics/ng-add/index.js +3 -4
  199. package/scrollbar/index.d.ts +136 -1
  200. package/search-expandable/index.d.ts +98 -1
  201. package/select/index.d.ts +693 -1
  202. package/sidebar/index.d.ts +92 -1
  203. package/sidepanel/index.d.ts +263 -1
  204. package/sidepanel/sidepanel.scss +0 -8
  205. package/skeleton/index.d.ts +26 -2
  206. package/split-button/index.d.ts +46 -1
  207. package/splitter/index.d.ts +141 -1
  208. package/table/index.d.ts +23 -1
  209. package/tabs/_tabs-common.scss +31 -1
  210. package/tabs/_tabs-theme.scss +2 -2
  211. package/tabs/index.d.ts +645 -1
  212. package/tags/index.d.ts +706 -1
  213. package/textarea/index.d.ts +134 -1
  214. package/time-range/index.d.ts +310 -7
  215. package/timepicker/index.d.ts +193 -1
  216. package/timezone/index.d.ts +122 -1
  217. package/title/index.d.ts +41 -1
  218. package/toast/index.d.ts +164 -1
  219. package/toggle/index.d.ts +84 -1
  220. package/tooltip/index.d.ts +163 -1
  221. package/top-bar/index.d.ts +33 -1
  222. package/tree/_tree-theme.scss +4 -0
  223. package/tree/index.d.ts +718 -1
  224. package/tree/tree-option.scss +20 -7
  225. package/tree-select/_tree-select-theme.scss +39 -0
  226. package/tree-select/index.d.ts +377 -1
  227. package/username/index.d.ts +176 -5
  228. package/accordion/accordion-content.d.ts +0 -6
  229. package/accordion/accordion-content.directive.d.ts +0 -27
  230. package/accordion/accordion-header.d.ts +0 -6
  231. package/accordion/accordion-header.directive.d.ts +0 -7
  232. package/accordion/accordion-item.d.ts +0 -77
  233. package/accordion/accordion-trigger.component.d.ts +0 -24
  234. package/accordion/accordion-trigger.directive.d.ts +0 -21
  235. package/accordion/accordion.component.d.ts +0 -79
  236. package/accordion/accordion.module.d.ts +0 -12
  237. package/accordion/public-api.d.ts +0 -9
  238. package/actions-panel/actions-panel-config.d.ts +0 -82
  239. package/actions-panel/actions-panel-container.d.ts +0 -90
  240. package/actions-panel/actions-panel-ref.d.ts +0 -44
  241. package/actions-panel/actions-panel.d.ts +0 -84
  242. package/actions-panel/module.d.ts +0 -7
  243. package/alert/alert.component.d.ts +0 -43
  244. package/alert/alert.module.d.ts +0 -9
  245. package/alert/public-api.d.ts +0 -2
  246. package/app-switcher/app-switcher-animations.d.ts +0 -5
  247. package/app-switcher/app-switcher-dropdown-app.d.ts +0 -11
  248. package/app-switcher/app-switcher-dropdown-site.d.ts +0 -9
  249. package/app-switcher/app-switcher.d.ts +0 -198
  250. package/app-switcher/app-switcher.module.d.ts +0 -10
  251. package/app-switcher/kbq-app-switcher-list-item.d.ts +0 -16
  252. package/app-switcher/public-api.d.ts +0 -6
  253. package/autocomplete/autocomplete-origin.directive.d.ts +0 -12
  254. package/autocomplete/autocomplete-trigger.directive.d.ts +0 -169
  255. package/autocomplete/autocomplete.component.d.ts +0 -88
  256. package/autocomplete/autocomplete.module.d.ts +0 -12
  257. package/autocomplete/public-api.d.ts +0 -4
  258. package/badge/badge.component.d.ts +0 -46
  259. package/badge/badge.module.d.ts +0 -9
  260. package/badge/public-api.d.ts +0 -2
  261. package/breadcrumbs/breadcrumbs.d.ts +0 -127
  262. package/breadcrumbs/breadcrumbs.module.d.ts +0 -7
  263. package/breadcrumbs/breadcrumbs.types.d.ts +0 -22
  264. package/breadcrumbs/public-api.d.ts +0 -5
  265. package/breadcrumbs/roving-focus-group.directive.d.ts +0 -50
  266. package/breadcrumbs/roving-focus-item.directive.d.ts +0 -50
  267. package/breadcrumbs/utils.d.ts +0 -19
  268. package/button/button-group.d.ts +0 -45
  269. package/button/button.component.d.ts +0 -59
  270. package/button/button.dropdown-trigger.directive.d.ts +0 -14
  271. package/button/button.module.d.ts +0 -12
  272. package/button/public-api.d.ts +0 -4
  273. package/button-toggle/button-toggle.component.d.ts +0 -146
  274. package/button-toggle/button-toggle.module.d.ts +0 -9
  275. package/button-toggle/public-api.d.ts +0 -2
  276. package/checkbox/checkbox-config.d.ts +0 -13
  277. package/checkbox/checkbox-module.d.ts +0 -9
  278. package/checkbox/checkbox-required-validator.d.ts +0 -13
  279. package/checkbox/checkbox.d.ts +0 -128
  280. package/checkbox/public-api.d.ts +0 -4
  281. package/clamped-text/clamped-list.d.ts +0 -41
  282. package/clamped-text/clamped-text.d.ts +0 -65
  283. package/clamped-text/constants.d.ts +0 -34
  284. package/clamped-text/module.d.ts +0 -8
  285. package/code-block/code-block-highlight.d.ts +0 -98
  286. package/code-block/code-block.d.ts +0 -255
  287. package/code-block/code-block.module.d.ts +0 -7
  288. package/code-block/public-api.d.ts +0 -4
  289. package/code-block/types.d.ts +0 -36
  290. package/content-panel/content-panel.d.ts +0 -149
  291. package/content-panel/module.d.ts +0 -7
  292. package/core/animation/animation.d.ts +0 -37
  293. package/core/animation/fade-animations.d.ts +0 -2
  294. package/core/animation/index.d.ts +0 -3
  295. package/core/animation/select-animations.d.ts +0 -12
  296. package/core/common-behaviors/checkbox.d.ts +0 -5
  297. package/core/common-behaviors/clipboard.d.ts +0 -12
  298. package/core/common-behaviors/color.d.ts +0 -50
  299. package/core/common-behaviors/common-module.d.ts +0 -38
  300. package/core/common-behaviors/constructor.d.ts +0 -9
  301. package/core/common-behaviors/disabled.d.ts +0 -8
  302. package/core/common-behaviors/error-state.d.ts +0 -46
  303. package/core/common-behaviors/flex.d.ts +0 -4
  304. package/core/common-behaviors/hover.d.ts +0 -15
  305. package/core/common-behaviors/index.d.ts +0 -14
  306. package/core/common-behaviors/orientation.d.ts +0 -4
  307. package/core/common-behaviors/read-state.d.ts +0 -12
  308. package/core/common-behaviors/size.d.ts +0 -4
  309. package/core/common-behaviors/tabindex.d.ts +0 -8
  310. package/core/datetime/date-adapter.d.ts +0 -12
  311. package/core/datetime/date-formats.d.ts +0 -4
  312. package/core/datetime/index.d.ts +0 -2
  313. package/core/error/error-state-matcher.d.ts +0 -39
  314. package/core/form-field/field-sizing-content.d.ts +0 -21
  315. package/core/form-field/form-field-ref.d.ts +0 -28
  316. package/core/form-field/index.d.ts +0 -2
  317. package/core/formatters/date/formatter.d.ts +0 -11
  318. package/core/formatters/date/formatter.pipe.d.ts +0 -139
  319. package/core/formatters/filesize/config.d.ts +0 -66
  320. package/core/formatters/filesize/formatter.d.ts +0 -17
  321. package/core/formatters/filesize/index.d.ts +0 -3
  322. package/core/formatters/filesize/size.d.ts +0 -52
  323. package/core/formatters/index.d.ts +0 -13
  324. package/core/formatters/number/formatter.d.ts +0 -101
  325. package/core/forms/forms-module.d.ts +0 -7
  326. package/core/forms/forms.directive.d.ts +0 -22
  327. package/core/forms/index.d.ts +0 -3
  328. package/core/forms/validators.d.ts +0 -120
  329. package/core/highlight/highlight.pipe.d.ts +0 -10
  330. package/core/highlight/index.d.ts +0 -9
  331. package/core/line/line.d.ts +0 -23
  332. package/core/locales/en-US.d.ts +0 -175
  333. package/core/locales/es-LA.d.ts +0 -174
  334. package/core/locales/formatters.d.ts +0 -190
  335. package/core/locales/index.d.ts +0 -9
  336. package/core/locales/locale-service.d.ts +0 -1112
  337. package/core/locales/locale-service.module.d.ts +0 -6
  338. package/core/locales/pt-BR.d.ts +0 -174
  339. package/core/locales/ru-RU.d.ts +0 -175
  340. package/core/locales/tk-TM.d.ts +0 -175
  341. package/core/locales/types.d.ts +0 -77
  342. package/core/navbar/index.d.ts +0 -1
  343. package/core/navbar/rectangle-item.d.ts +0 -14
  344. package/core/option/action-container.d.ts +0 -5
  345. package/core/option/action.d.ts +0 -38
  346. package/core/option/index.d.ts +0 -5
  347. package/core/option/optgroup.d.ts +0 -16
  348. package/core/option/option-module.d.ts +0 -10
  349. package/core/option/option.d.ts +0 -170
  350. package/core/overlay/overlay-position-map.d.ts +0 -40
  351. package/core/pop-up/constants.d.ts +0 -56
  352. package/core/pop-up/focus-trap-strategy.d.ts +0 -5
  353. package/core/pop-up/index.d.ts +0 -5
  354. package/core/pop-up/pop-up-styles.d.ts +0 -2
  355. package/core/pop-up/pop-up-trigger.d.ts +0 -104
  356. package/core/pop-up/pop-up.d.ts +0 -57
  357. package/core/public-api.d.ts +0 -23
  358. package/core/select/common.d.ts +0 -59
  359. package/core/select/constants.d.ts +0 -22
  360. package/core/select/errors.d.ts +0 -19
  361. package/core/select/events.d.ts +0 -1
  362. package/core/select/index.d.ts +0 -4
  363. package/core/selection/constants.d.ts +0 -4
  364. package/core/selection/index.d.ts +0 -3
  365. package/core/selection/pseudo-checkbox/pseudo-checkbox.d.ts +0 -23
  366. package/core/selection/pseudo-checkbox/pseudo-checkbox.module.d.ts +0 -8
  367. package/core/services/measure-scrollbar.service.d.ts +0 -11
  368. package/core/services/theme.service.d.ts +0 -41
  369. package/core/title/index.d.ts +0 -1
  370. package/core/title/title-text-ref.d.ts +0 -6
  371. package/core/tokens/index.d.ts +0 -1
  372. package/core/tokens/window.d.ts +0 -5
  373. package/core/utils/dom.d.ts +0 -4
  374. package/core/utils/index.d.ts +0 -2
  375. package/core/utils/public-api.d.ts +0 -1
  376. package/core/utils/utils.d.ts +0 -25
  377. package/core/validation/index.d.ts +0 -1
  378. package/core/validation/validation.d.ts +0 -29
  379. package/core/version.d.ts +0 -2
  380. package/datepicker/calendar-body.component.d.ts +0 -55
  381. package/datepicker/calendar-header.component.d.ts +0 -51
  382. package/datepicker/calendar.component.d.ts +0 -89
  383. package/datepicker/datepicker-animations.d.ts +0 -9
  384. package/datepicker/datepicker-errors.d.ts +0 -2
  385. package/datepicker/datepicker-input.directive.d.ts +0 -221
  386. package/datepicker/datepicker-intl.d.ts +0 -32
  387. package/datepicker/datepicker-module.d.ts +0 -21
  388. package/datepicker/datepicker-toggle.component.d.ts +0 -57
  389. package/datepicker/datepicker.component.d.ts +0 -148
  390. package/datepicker/month-view.component.d.ts +0 -73
  391. package/datepicker/public-api.d.ts +0 -10
  392. package/divider/divider.component.d.ts +0 -18
  393. package/divider/divider.module.d.ts +0 -8
  394. package/divider/public-api.d.ts +0 -2
  395. package/dl/dl.component.d.ts +0 -26
  396. package/dl/dl.module.d.ts +0 -9
  397. package/dl/public-api.d.ts +0 -2
  398. package/dropdown/dropdown-animations.d.ts +0 -11
  399. package/dropdown/dropdown-content.directive.d.ts +0 -32
  400. package/dropdown/dropdown-errors.d.ts +0 -17
  401. package/dropdown/dropdown-item.component.d.ts +0 -52
  402. package/dropdown/dropdown-trigger.directive.d.ts +0 -156
  403. package/dropdown/dropdown.component.d.ts +0 -126
  404. package/dropdown/dropdown.module.d.ts +0 -13
  405. package/dropdown/dropdown.types.d.ts +0 -67
  406. package/dropdown/public-api.d.ts +0 -8
  407. package/dynamic-translation/dynamic-translation.d.ts +0 -72
  408. package/dynamic-translation/module.d.ts +0 -7
  409. package/ellipsis-center/ellipsis-center.directive.d.ts +0 -36
  410. package/ellipsis-center/public-api.d.ts +0 -1
  411. package/empty-state/empty-state.component.d.ts +0 -36
  412. package/empty-state/empty-state.module.d.ts +0 -9
  413. package/empty-state/public-api.d.ts +0 -2
  414. package/fesm2022/koobiq-components-navbar-ic.mjs +0 -863
  415. package/fesm2022/koobiq-components-navbar-ic.mjs.map +0 -1
  416. package/fesm2022/koobiq-components-risk-level.mjs +0 -75
  417. package/fesm2022/koobiq-components-risk-level.mjs.map +0 -1
  418. package/file-upload/dropzone.d.ts +0 -147
  419. package/file-upload/file-upload.d.ts +0 -102
  420. package/file-upload/file-upload.module.d.ts +0 -20
  421. package/file-upload/multiple-file-upload.component.d.ts +0 -138
  422. package/file-upload/primitives/file-drop.d.ts +0 -35
  423. package/file-upload/primitives/file-picker.d.ts +0 -82
  424. package/file-upload/primitives/index.d.ts +0 -2
  425. package/file-upload/public-api.d.ts +0 -7
  426. package/file-upload/single-file-upload.component.d.ts +0 -118
  427. package/filter-bar/filter-bar-button.d.ts +0 -14
  428. package/filter-bar/filter-bar.d.ts +0 -81
  429. package/filter-bar/filter-bar.module.d.ts +0 -17
  430. package/filter-bar/filter-bar.types.d.ts +0 -143
  431. package/filter-bar/filter-refresher.d.ts +0 -5
  432. package/filter-bar/filter-reset.d.ts +0 -15
  433. package/filter-bar/filter-search.d.ts +0 -54
  434. package/filter-bar/filter-search.scss +0 -12
  435. package/filter-bar/filters.d.ts +0 -122
  436. package/filter-bar/pipe-add.d.ts +0 -28
  437. package/filter-bar/pipe.directive.d.ts +0 -13
  438. package/filter-bar/pipes/base-pipe.d.ts +0 -74
  439. package/filter-bar/pipes/pipe-button.d.ts +0 -21
  440. package/filter-bar/pipes/pipe-date.d.ts +0 -65
  441. package/filter-bar/pipes/pipe-datetime.d.ts +0 -66
  442. package/filter-bar/pipes/pipe-multi-select.d.ts +0 -56
  443. package/filter-bar/pipes/pipe-multi-tree-select.d.ts +0 -67
  444. package/filter-bar/pipes/pipe-readonly.d.ts +0 -7
  445. package/filter-bar/pipes/pipe-select.d.ts +0 -30
  446. package/filter-bar/pipes/pipe-state.d.ts +0 -21
  447. package/filter-bar/pipes/pipe-text.d.ts +0 -26
  448. package/filter-bar/pipes/pipe-title.d.ts +0 -27
  449. package/filter-bar/pipes/pipe-tree-select.d.ts +0 -42
  450. package/filter-bar/public-api.d.ts +0 -21
  451. package/form-field/cleaner.d.ts +0 -11
  452. package/form-field/error.d.ts +0 -8
  453. package/form-field/fieldset.d.ts +0 -27
  454. package/form-field/form-field-control.d.ts +0 -40
  455. package/form-field/form-field.d.ts +0 -298
  456. package/form-field/form-field.module.d.ts +0 -19
  457. package/form-field/hint.d.ts +0 -15
  458. package/form-field/label.d.ts +0 -6
  459. package/form-field/password-hint.d.ts +0 -53
  460. package/form-field/password-toggle.d.ts +0 -56
  461. package/form-field/prefix.d.ts +0 -6
  462. package/form-field/public-api.d.ts +0 -15
  463. package/form-field/reactive-password-hint.d.ts +0 -20
  464. package/form-field/stepper.d.ts +0 -59
  465. package/form-field/suffix.d.ts +0 -6
  466. package/form-field/validate.directive.d.ts +0 -53
  467. package/icon/icon-button.component.d.ts +0 -28
  468. package/icon/icon-item.component.d.ts +0 -11
  469. package/icon/icon-registry-providers.d.ts +0 -34
  470. package/icon/icon-registry.d.ts +0 -50
  471. package/icon/icon.component.d.ts +0 -33
  472. package/icon/icon.module.d.ts +0 -9
  473. package/icon/public-api.d.ts +0 -6
  474. package/inline-edit/inline-edit.d.ts +0 -161
  475. package/inline-edit/module.d.ts +0 -7
  476. package/input/input-errors.d.ts +0 -1
  477. package/input/input-number-validators.d.ts +0 -35
  478. package/input/input-number.d.ts +0 -96
  479. package/input/input-password.d.ts +0 -99
  480. package/input/input-value-accessor.d.ts +0 -4
  481. package/input/input.d.ts +0 -109
  482. package/input/input.module.d.ts +0 -14
  483. package/input/public-api.d.ts +0 -6
  484. package/link/link.component.d.ts +0 -53
  485. package/link/link.module.d.ts +0 -8
  486. package/link/public-api.d.ts +0 -2
  487. package/list/list-selection.component.d.ts +0 -196
  488. package/list/list.component.d.ts +0 -18
  489. package/list/list.module.d.ts +0 -11
  490. package/list/public-api.d.ts +0 -3
  491. package/loader-overlay/loader-overlay.component.d.ts +0 -47
  492. package/loader-overlay/loader-overlay.module.d.ts +0 -10
  493. package/loader-overlay/public-api.d.ts +0 -2
  494. package/markdown/markdown.component.d.ts +0 -31
  495. package/markdown/markdown.module.d.ts +0 -7
  496. package/markdown/markdown.service.d.ts +0 -19
  497. package/markdown/markdown.values.d.ts +0 -10
  498. package/markdown/public-api.d.ts +0 -4
  499. package/modal/css-unit.pipe.d.ts +0 -7
  500. package/modal/modal-control.service.d.ts +0 -20
  501. package/modal/modal-ref.class.d.ts +0 -37
  502. package/modal/modal-util.d.ts +0 -15
  503. package/modal/modal.component.d.ts +0 -141
  504. package/modal/modal.directive.d.ts +0 -20
  505. package/modal/modal.module.d.ts +0 -15
  506. package/modal/modal.service.d.ts +0 -42
  507. package/modal/modal.type.d.ts +0 -72
  508. package/modal/public-api.d.ts +0 -6
  509. package/navbar/navbar-brand.component.d.ts +0 -41
  510. package/navbar/navbar-item.component.d.ts +0 -131
  511. package/navbar/navbar-toggle.component.d.ts +0 -23
  512. package/navbar/navbar.component.d.ts +0 -68
  513. package/navbar/navbar.module.d.ts +0 -15
  514. package/navbar/public-api.d.ts +0 -6
  515. package/navbar/vertical-navbar.component.d.ts +0 -47
  516. package/navbar-ic/_navbar-ic-theme.scss +0 -81
  517. package/navbar-ic/index.d.ts +0 -1
  518. package/navbar-ic/navbar-ic-divider.scss +0 -7
  519. package/navbar-ic/navbar-ic-header.d.ts +0 -22
  520. package/navbar-ic/navbar-ic-header.scss +0 -49
  521. package/navbar-ic/navbar-ic-item.d.ts +0 -144
  522. package/navbar-ic/navbar-ic-item.scss +0 -92
  523. package/navbar-ic/navbar-ic-tokens.scss +0 -22
  524. package/navbar-ic/navbar-ic.animation.d.ts +0 -3
  525. package/navbar-ic/navbar-ic.d.ts +0 -118
  526. package/navbar-ic/navbar-ic.module.d.ts +0 -14
  527. package/navbar-ic/navbar-ic.scss +0 -32
  528. package/navbar-ic/public-api.d.ts +0 -4
  529. package/notification-center/notification-center-animations.d.ts +0 -5
  530. package/notification-center/notification-center.d.ts +0 -156
  531. package/notification-center/notification-center.module.d.ts +0 -7
  532. package/notification-center/notification-center.service.d.ts +0 -72
  533. package/notification-center/notification-item.d.ts +0 -27
  534. package/notification-center/public-api.d.ts +0 -4
  535. package/overflow-items/module.d.ts +0 -7
  536. package/overflow-items/overflow-items.d.ts +0 -152
  537. package/popover/popover-animations.d.ts +0 -4
  538. package/popover/popover-confirm.component.d.ts +0 -28
  539. package/popover/popover.component.d.ts +0 -139
  540. package/popover/popover.module.d.ts +0 -14
  541. package/popover/public-api.d.ts +0 -4
  542. package/progress-bar/progress-bar.component.d.ts +0 -20
  543. package/progress-bar/progress-bar.module.d.ts +0 -8
  544. package/progress-bar/public-api.d.ts +0 -2
  545. package/progress-spinner/progress-spinner.component.d.ts +0 -26
  546. package/progress-spinner/progress-spinner.module.d.ts +0 -9
  547. package/progress-spinner/public-api.d.ts +0 -2
  548. package/public-api.d.ts +0 -1
  549. package/radio/public-api.d.ts +0 -2
  550. package/radio/radio.component.d.ts +0 -200
  551. package/radio/radio.module.d.ts +0 -8
  552. package/resizer/module.d.ts +0 -7
  553. package/resizer/resizer.d.ts +0 -75
  554. package/risk-level/_risk-level-theme.scss +0 -74
  555. package/risk-level/index.d.ts +0 -1
  556. package/risk-level/public-api.d.ts +0 -2
  557. package/risk-level/risk-level-tokens.scss +0 -33
  558. package/risk-level/risk-level.component.d.ts +0 -21
  559. package/risk-level/risk-level.component.scss +0 -22
  560. package/risk-level/risk-level.module.d.ts +0 -12
  561. package/scrollbar/public-api.d.ts +0 -4
  562. package/scrollbar/scrollbar.component.d.ts +0 -37
  563. package/scrollbar/scrollbar.directive.d.ts +0 -29
  564. package/scrollbar/scrollbar.module.d.ts +0 -8
  565. package/scrollbar/scrollbar.types.d.ts +0 -33
  566. package/search-expandable/public-api.d.ts +0 -2
  567. package/search-expandable/search-expandable.d.ts +0 -89
  568. package/search-expandable/search-expandable.module.d.ts +0 -7
  569. package/select/public-api.d.ts +0 -4
  570. package/select/select-common.d.ts +0 -30
  571. package/select/select-option.directive.d.ts +0 -21
  572. package/select/select.component.d.ts +0 -627
  573. package/select/select.module.d.ts +0 -17
  574. package/sidebar/public-api.d.ts +0 -2
  575. package/sidebar/sidebar-animations.d.ts +0 -8
  576. package/sidebar/sidebar.component.d.ts +0 -80
  577. package/sidebar/sidebar.module.d.ts +0 -8
  578. package/sidepanel/public-api.d.ts +0 -6
  579. package/sidepanel/sidepanel-animations.d.ts +0 -20
  580. package/sidepanel/sidepanel-config.d.ts +0 -43
  581. package/sidepanel/sidepanel-container.component.d.ts +0 -67
  582. package/sidepanel/sidepanel-directives.d.ts +0 -61
  583. package/sidepanel/sidepanel-ref.d.ts +0 -36
  584. package/sidepanel/sidepanel.module.d.ts +0 -14
  585. package/sidepanel/sidepanel.service.d.ts +0 -58
  586. package/skeleton/module.d.ts +0 -7
  587. package/skeleton/skeleton.d.ts +0 -17
  588. package/split-button/public-api.d.ts +0 -2
  589. package/split-button/split-button.d.ts +0 -37
  590. package/split-button/split-button.module.d.ts +0 -7
  591. package/splitter/public-api.d.ts +0 -2
  592. package/splitter/splitter.component.d.ts +0 -136
  593. package/splitter/splitter.module.d.ts +0 -8
  594. package/table/public-api.d.ts +0 -2
  595. package/table/table.component.d.ts +0 -12
  596. package/table/table.module.d.ts +0 -9
  597. package/tabs/paginated-tab-header.d.ts +0 -182
  598. package/tabs/public-api.d.ts +0 -10
  599. package/tabs/tab-body.component.d.ts +0 -95
  600. package/tabs/tab-content.directive.d.ts +0 -9
  601. package/tabs/tab-group.component.d.ts +0 -137
  602. package/tabs/tab-header.component.d.ts +0 -32
  603. package/tabs/tab-label-wrapper.directive.d.ts +0 -29
  604. package/tabs/tab-label.directive.d.ts +0 -9
  605. package/tabs/tab-nav-bar.d.ts +0 -91
  606. package/tabs/tab.component.d.ts +0 -68
  607. package/tabs/tabs-animations.d.ts +0 -4
  608. package/tabs/tabs.module.d.ts +0 -20
  609. package/tags/public-api.d.ts +0 -5
  610. package/tags/tag-default-options.d.ts +0 -13
  611. package/tags/tag-input.d.ts +0 -110
  612. package/tags/tag-list.component.d.ts +0 -373
  613. package/tags/tag-text-control.d.ts +0 -10
  614. package/tags/tag.component.d.ts +0 -272
  615. package/tags/tag.module.d.ts +0 -10
  616. package/textarea/public-api.d.ts +0 -2
  617. package/textarea/textarea.component.d.ts +0 -123
  618. package/textarea/textarea.module.d.ts +0 -10
  619. package/time-range/constants.d.ts +0 -19
  620. package/time-range/module.d.ts +0 -10
  621. package/time-range/time-range-editor.d.ts +0 -65
  622. package/time-range/time-range-title-as-form-field.d.ts +0 -41
  623. package/time-range/time-range-title.d.ts +0 -18
  624. package/time-range/time-range.d.ts +0 -78
  625. package/time-range/time-range.service.d.ts +0 -25
  626. package/time-range/types.d.ts +0 -69
  627. package/timepicker/public-api.d.ts +0 -3
  628. package/timepicker/timepicker.constants.d.ts +0 -22
  629. package/timepicker/timepicker.directive.d.ts +0 -159
  630. package/timepicker/timepicker.module.d.ts +0 -11
  631. package/timezone/cities-by-filter.pipe.d.ts +0 -7
  632. package/timezone/public-api.d.ts +0 -6
  633. package/timezone/timezone-option.component.d.ts +0 -15
  634. package/timezone/timezone-option.directive.d.ts +0 -22
  635. package/timezone/timezone-select.component.d.ts +0 -16
  636. package/timezone/timezone.models.d.ts +0 -16
  637. package/timezone/timezone.module.d.ts +0 -20
  638. package/timezone/timezone.utils.d.ts +0 -22
  639. package/timezone/utc-offset.pipe.d.ts +0 -9
  640. package/title/public-api.d.ts +0 -2
  641. package/title/title.directive.d.ts +0 -33
  642. package/title/title.module.d.ts +0 -8
  643. package/toast/public-api.d.ts +0 -5
  644. package/toast/toast-animations.d.ts +0 -5
  645. package/toast/toast-container.component.d.ts +0 -19
  646. package/toast/toast.component.d.ts +0 -41
  647. package/toast/toast.module.d.ts +0 -8
  648. package/toast/toast.service.d.ts +0 -61
  649. package/toast/toast.type.d.ts +0 -44
  650. package/toggle/public-api.d.ts +0 -2
  651. package/toggle/toggle.component.d.ts +0 -77
  652. package/toggle/toggle.module.d.ts +0 -8
  653. package/tooltip/public-api.d.ts +0 -2
  654. package/tooltip/tooltip.animations.d.ts +0 -8
  655. package/tooltip/tooltip.component.d.ts +0 -156
  656. package/tooltip/tooltip.module.d.ts +0 -7
  657. package/top-bar/module.d.ts +0 -7
  658. package/top-bar/public-api.d.ts +0 -2
  659. package/top-bar/top-bar.d.ts +0 -25
  660. package/tree/control/base-tree-control.d.ts +0 -40
  661. package/tree/control/flat-tree-control.d.ts +0 -55
  662. package/tree/control/flat-tree-control.filters.d.ts +0 -27
  663. package/tree/control/nested-tree-control.d.ts +0 -19
  664. package/tree/control/tree-control.d.ts +0 -44
  665. package/tree/data-source/flat-data-source.d.ts +0 -80
  666. package/tree/data-source/nested-data-source.d.ts +0 -15
  667. package/tree/node.d.ts +0 -34
  668. package/tree/outlet.d.ts +0 -9
  669. package/tree/padding.directive.d.ts +0 -45
  670. package/tree/public-api.d.ts +0 -16
  671. package/tree/toggle.d.ts +0 -28
  672. package/tree/tree-base.d.ts +0 -96
  673. package/tree/tree-errors.d.ts +0 -25
  674. package/tree/tree-option.component.d.ts +0 -89
  675. package/tree/tree-selection.component.d.ts +0 -156
  676. package/tree/tree.d.ts +0 -6
  677. package/tree/tree.module.d.ts +0 -16
  678. package/tree-select/public-api.d.ts +0 -2
  679. package/tree-select/tree-select.component.d.ts +0 -360
  680. package/tree-select/tree-select.module.d.ts +0 -15
  681. package/username/constants.d.ts +0 -15
  682. package/username/module.d.ts +0 -8
  683. package/username/types.d.ts +0 -62
  684. package/username/username.d.ts +0 -68
  685. package/username/username.pipe.d.ts +0 -23
@@ -0,0 +1,274 @@
1
+ 'use strict';
2
+
3
+ /**
4
+ * Replacement data for the v20.0.0 deprecated API removal migration.
5
+ *
6
+ * Each entry uses a RegExp source string in `from` and a literal `to`. The
7
+ * RegExp is compiled with the `g` flag inside the migration driver.
8
+ *
9
+ * Three buckets are emitted so the schematic can apply each to the right
10
+ * file kind (.ts, .html / inline-template strings, .scss).
11
+ */
12
+ /** TypeScript-source replacements (imports + identifiers + method renames). */
13
+ const tsReplacements = [
14
+ // ─── Package moves ─────────────────────────────────────────────────────
15
+ // @koobiq/cdk was merged into @koobiq/components/core in v20.0.0.
16
+ // Order matters: subpath rules must run before any bare-prefix rule.
17
+ {
18
+ from: '@koobiq/cdk/a11y',
19
+ to: '@koobiq/components/core',
20
+ note: '@koobiq/cdk package was merged into @koobiq/components/core in v20.0.0'
21
+ },
22
+ {
23
+ from: '@koobiq/cdk/keycodes',
24
+ to: '@koobiq/components/core',
25
+ note: '@koobiq/cdk package was merged into @koobiq/components/core in v20.0.0'
26
+ },
27
+ {
28
+ from: '@koobiq/cdk/testing',
29
+ to: '@koobiq/components/core',
30
+ note: '@koobiq/cdk package was merged into @koobiq/components/core in v20.0.0'
31
+ },
32
+ {
33
+ from: '@koobiq/components/navbar-ic',
34
+ to: '@koobiq/components/navbar',
35
+ note: 'navbar-ic package was removed in v20.0.0'
36
+ },
37
+ {
38
+ from: '@koobiq/components/risk-level',
39
+ to: '@koobiq/components/badge',
40
+ note: 'risk-level package was removed in v20.0.0; consult Badge API for color/outline mapping'
41
+ },
42
+ {
43
+ from: '@koobiq/components-experimental/form-field',
44
+ to: '@koobiq/components/form-field',
45
+ note: 'experimental form-field merged back into the main package'
46
+ },
47
+ // ─── Identifier renames (TypeScript imports / type references) ────────
48
+ { from: '\\bRdxAccordionItemState\\b', to: 'KbqAccordionItemState' },
49
+ { from: '\\bKbqCodeFile\\b', to: 'KbqCodeBlockFile' },
50
+ { from: '\\bAnimationCurves\\b', to: 'KbqAnimationCurves' },
51
+ { from: '\\bMeasurementSystem\\b', to: 'KbqMeasurementSystem' },
52
+ { from: '\\bSizeUnitsConfig\\b', to: 'KbqSizeUnitsConfig' },
53
+ { from: '\\bKbqNavbarIcModule\\b', to: 'KbqNavbarModule' },
54
+ { from: '\\bKbqNavbarIcItem\\b', to: 'KbqNavbarItem' },
55
+ { from: '\\bKbqNavbarIcHeader\\b', to: 'KbqNavbarHeader' },
56
+ { from: '\\bKbqNavbarIc\\b', to: 'KbqNavbar' },
57
+ { from: '\\bKbqRiskLevelModule\\b', to: 'KbqBadgeModule' },
58
+ { from: '\\bKbqRiskLevel\\b', to: 'KbqBadge' },
59
+ { from: '\\bKbqWarningTooltipTrigger\\b', to: 'KbqTooltipTrigger' },
60
+ { from: '\\bKbqExtendedTooltipTrigger\\b', to: 'KbqTooltipTrigger' },
61
+ { from: '\\bKbqDatepickerToggle\\b(?!Icon)', to: 'KbqDatepickerToggleIconComponent' },
62
+ { from: '\\bKbqFilterBarSearch\\b', to: 'KbqSearchExpandable' },
63
+ {
64
+ from: '\\bKbqInputFileLabel\\b',
65
+ to: '',
66
+ removeImport: { symbol: 'KbqInputFileLabel', from: '@koobiq/components/file-upload' }
67
+ },
68
+ {
69
+ from: '\\bKbqInputFile\\b',
70
+ to: '',
71
+ removeImport: { symbol: 'KbqInputFile', from: '@koobiq/components/file-upload' }
72
+ },
73
+ {
74
+ from: '\\bKbqFileValidatorFn\\b',
75
+ to: '',
76
+ removeImport: { symbol: 'KbqFileValidatorFn', from: '@koobiq/components/file-upload' }
77
+ },
78
+ {
79
+ from: '\\bKbqValidationOptions\\b',
80
+ to: '',
81
+ removeImport: { symbol: 'KbqValidationOptions', from: '@koobiq/components/core' }
82
+ },
83
+ { from: '\\bKbqFormFieldRef\\b', to: 'KbqFormField' },
84
+ // Deprecated dropdown position type aliases → Kbq-prefixed names. The
85
+ // `\b…\b` boundaries make these idempotent: `KbqDropdownPositionX` is not
86
+ // re-matched because the `D` is preceded by a word char (`q`).
87
+ { from: '\\bDropdownPositionX\\b', to: 'KbqDropdownPositionX' },
88
+ { from: '\\bDropdownPositionY\\b', to: 'KbqDropdownPositionY' },
89
+ // ─── Tokens / function renames ────────────────────────────────────────
90
+ {
91
+ from: '\\bKBQ_VALIDATION\\b',
92
+ to: '',
93
+ removeImport: { symbol: 'KBQ_VALIDATION', from: '@koobiq/components/core' }
94
+ },
95
+ {
96
+ from: '\\bKBQ_SANITY_CHECKS\\b',
97
+ to: '',
98
+ removeImport: { symbol: 'KBQ_SANITY_CHECKS', from: '@koobiq/components/core' }
99
+ },
100
+ {
101
+ from: '\\bKBQ_SIDEPANEL_WITH_SHADOW\\b',
102
+ to: '',
103
+ removeImport: { symbol: 'KBQ_SIDEPANEL_WITH_SHADOW', from: '@koobiq/components/sidepanel' }
104
+ },
105
+ {
106
+ from: '\\bmcSanityChecksFactory\\b',
107
+ to: '',
108
+ removeImport: { symbol: 'mcSanityChecksFactory', from: '@koobiq/components/core' }
109
+ },
110
+ {
111
+ from: '\\bKbqCommonModule\\b',
112
+ to: '',
113
+ removeImport: { symbol: 'KbqCommonModule', from: '@koobiq/components/core' }
114
+ },
115
+ {
116
+ // No-op shim kept after the KbqValidateDirective removal in v20.0.0 is
117
+ // gone in this release. Strip the call, its trailing comma, and the
118
+ // import; the array/empty-providers cleanup happens via the extended
119
+ // `[ , … ]` / `[ … , ]` normalize pass in the driver.
120
+ from: '\\bkbqDisableLegacyValidationDirectiveProvider\\(\\s*\\),?\\s*',
121
+ to: '',
122
+ note: 'kbqDisableLegacyValidationDirectiveProvider was a no-op shim kept after the ' +
123
+ 'KbqValidateDirective removal in v20.0.0; it is removed in this release. ' +
124
+ 'You may also need to remove the (now-empty) `providers: []` key from the affected decorator.',
125
+ removeImport: {
126
+ symbol: 'kbqDisableLegacyValidationDirectiveProvider',
127
+ from: '@koobiq/components/core'
128
+ }
129
+ },
130
+ {
131
+ from: '\\btoBoolean\\(',
132
+ to: 'booleanAttribute(',
133
+ ensureImport: { symbol: 'booleanAttribute', from: '@angular/core' },
134
+ removeImport: { symbol: 'toBoolean', from: '@koobiq/components/core' }
135
+ },
136
+ {
137
+ from: '\\bisCorrectExtension\\(',
138
+ to: 'FileValidators.isCorrectExtension(',
139
+ ensureImport: { symbol: 'FileValidators', from: '@koobiq/components/file-upload' },
140
+ removeImport: { symbol: 'isCorrectExtension', from: '@koobiq/components/file-upload' }
141
+ },
142
+ {
143
+ from: '\\bformatDataSize\\(',
144
+ to: 'getFormattedSizeParts(',
145
+ removeImport: { symbol: 'formatDataSize', from: '@koobiq/components/core' }
146
+ },
147
+ // ─── Method renames on instances ──────────────────────────────────────
148
+ { from: '\\.openPanel\\(', to: '.open(' },
149
+ { from: '\\.toggleIsCollapsed\\(', to: '.toggle(' },
150
+ { from: '\\.focusViaKeyboard\\(', to: '.focus(' },
151
+ // ─── Modal options object key ─────────────────────────────────────────
152
+ {
153
+ from: '\\bkbqComponentParams:',
154
+ to: 'data:',
155
+ note: 'kbqComponentParams was renamed to data. The CHILD modal component must read the ' +
156
+ 'payload via inject(KBQ_MODAL_DATA) instead of @Input — this rewrite only changes ' +
157
+ 'the caller side.'
158
+ }
159
+ ];
160
+ /** Template (HTML / inline-template string) replacements — selectors + attributes. */
161
+ const templateReplacements = [
162
+ // ─── Selector renames (component tag names) ───────────────────────────
163
+ { from: '<kbq-filter-search([\\s/>])', to: '<kbq-search-expandable$1' },
164
+ { from: '</kbq-filter-search>', to: '</kbq-search-expandable>' },
165
+ { from: '<kbq-datepicker-toggle(?!-icon)([\\s/>])', to: '<kbq-datepicker-toggle-icon$1' },
166
+ { from: '</kbq-datepicker-toggle>', to: '</kbq-datepicker-toggle-icon>' },
167
+ { from: '<kbq-risk-level([\\s/>])', to: '<kbq-badge$1' },
168
+ { from: '</kbq-risk-level>', to: '</kbq-badge>' },
169
+ { from: '<kbq-navbar-ic-item([\\s/>])', to: '<kbq-navbar-item$1' },
170
+ { from: '</kbq-navbar-ic-item>', to: '</kbq-navbar-item>' },
171
+ { from: '<kbq-navbar-ic-header([\\s/>])', to: '<kbq-navbar-header$1' },
172
+ { from: '</kbq-navbar-ic-header>', to: '</kbq-navbar-header>' },
173
+ { from: '<kbq-navbar-ic([\\s/>])', to: '<kbq-navbar$1' },
174
+ { from: '</kbq-navbar-ic>', to: '</kbq-navbar>' },
175
+ // ─── Static-attribute tooltip form ────────────────────────────────────
176
+ // `<span kbqWarningTooltip="text">` (plain attribute, not a binding) must
177
+ // become `<span kbqTooltipModifier="warning" kbqTooltip="text">`. These
178
+ // rules MUST precede the `="kbqWarningTooltip"` exportAs rule below — the
179
+ // exportAs regex would otherwise rewrite the attribute name's `="..."`
180
+ // suffix and turn `kbqWarningTooltip="text"` into the wrong shape.
181
+ {
182
+ from: '\\bkbqWarningTooltip="([^"]*)"',
183
+ to: 'kbqTooltipModifier="warning" kbqTooltip="$1"'
184
+ },
185
+ {
186
+ from: '\\bkbqExtendedTooltip="([^"]*)"',
187
+ to: 'kbqTooltipModifier="extended" kbqTooltip="$1"'
188
+ },
189
+ // ─── Template-ref exportAs renames ────────────────────────────────────
190
+ { from: '="kbqWarningTooltip"', to: '="kbqTooltip"' },
191
+ { from: '="kbqExtendedTooltip"', to: '="kbqTooltip"' },
192
+ { from: '="kbqDatepickerToggle"', to: '="kbqDatepickerToggleIcon"' },
193
+ // ─── Attribute renames ────────────────────────────────────────────────
194
+ { from: '\\bkbqFormFieldWithoutBorders\\b', to: 'noBorders' },
195
+ // ─── KbqCodeBlock deprecated input renames ────────────────────────────
196
+ // Scoped strictly to the attribute form (`[x]` binding or `x="…"` static)
197
+ // so the common words `canDownload` / `files` elsewhere are never touched.
198
+ { from: '\\[canLoad\\]', to: '[canDownload]' },
199
+ { from: '\\bcanLoad="', to: 'canDownload="' },
200
+ { from: '\\[codeFiles\\]', to: '[files]' },
201
+ { from: '\\bcodeFiles="', to: 'files="' },
202
+ // ─── Tooltip warning trigger → kbqTooltip + modifier ───────────────────
203
+ // Two-step: first add modifier attribute, then rename binding key.
204
+ // The modifier insertion must come before the binding rename otherwise we
205
+ // can't tell the legacy directive from the base one. We approximate this
206
+ // by handling the bracketed binding (most common) and the bare-attribute
207
+ // variant separately, prepending `kbqTooltipModifier="warning"` inline.
208
+ {
209
+ from: '\\[kbqWarningTooltip\\]',
210
+ to: 'kbqTooltipModifier="warning" [kbqTooltip]'
211
+ },
212
+ {
213
+ from: '\\[kbqExtendedTooltip\\]',
214
+ to: 'kbqTooltipModifier="extended" [kbqTooltip]'
215
+ },
216
+ // ─── Divider deprecated inset attribute ───────────────────────────────
217
+ { from: '\\s\\[inset\\]="[^"]*"', to: '' },
218
+ { from: '\\sinset(\\s|>|/)', to: '$1' }
219
+ ];
220
+ /** SCSS replacements (CSS class selectors that were renamed at the runtime level). */
221
+ const scssReplacements = [
222
+ { from: '\\.kbq-risk-level\\b', to: '.kbq-badge' },
223
+ { from: '\\.kbq-navbar-ic\\b', to: '.kbq-navbar' },
224
+ { from: '\\.kbq-filter-search\\b', to: '.kbq-search-expandable' },
225
+ { from: '\\.kbq-datepicker-toggle(?!-icon)\\b', to: '.kbq-datepicker-toggle-icon' },
226
+ { from: '\\.kbq-form-field_without-borders\\b', to: '.kbq-form-field_no-borders' }
227
+ ];
228
+ const warnPatterns = [
229
+ {
230
+ pattern: '\\(onSaveAsNew\\)',
231
+ message: '(onSaveAsNew) was removed from KbqFilters. Listen to (onSave) and branch on ' +
232
+ "$event.status === 'newFilter' instead. Manual migration required."
233
+ },
234
+ {
235
+ pattern: '\\[customValidation\\]',
236
+ message: '[customValidation] / KbqMultipleFileUploadComponent.customValidation was removed. ' +
237
+ 'Use FormControl validators (e.g. FileValidators.isCorrectExtension) bound via [formControl] instead.'
238
+ },
239
+ {
240
+ pattern: '\\[errors\\]="[^"]*"',
241
+ message: 'KbqMultipleFileUploadComponent.errors / KbqSingleFileUploadComponent.errors @Input was removed. ' +
242
+ 'Use FormControl.errors instead.'
243
+ },
244
+ {
245
+ pattern: '\\[apps\\]="[^"]*"',
246
+ message: 'KbqAppSwitcherTrigger.apps @Input was removed. Wrap your apps array in a single ' +
247
+ 'KbqAppSwitcherSite and pass it via [sites]="[{ id, name, apps }]".'
248
+ },
249
+ {
250
+ pattern: '\\bkbqComponentParams:',
251
+ message: 'kbqComponentParams is being rewritten to "data:" — remember the CHILD modal ' +
252
+ "component must read the payload via inject(KBQ_MODAL_DATA) (from '@koobiq/components/modal') " +
253
+ 'instead of @Input.'
254
+ },
255
+ {
256
+ pattern: '\\bscrollableCodeContent\\b',
257
+ message: 'KbqCodeBlock.scrollableCodeContent is deprecated; use the scrollTo() method instead. Manual migration required.'
258
+ },
259
+ {
260
+ pattern: '\\.canLoad\\b|\\.codeFiles\\b',
261
+ message: 'KbqCodeBlock.canLoad → canDownload and .codeFiles → files. Template bindings are auto-migrated; ' +
262
+ 'update any programmatic (TypeScript) access manually.'
263
+ },
264
+ {
265
+ pattern: '\\brequired:\\s*(true|false)',
266
+ message: 'KbqFilter.required is deprecated — use cleanable = false and removable = false instead. ' +
267
+ 'NOTE: this warning is best-effort and may match unrelated `required:` keys; verify it is a KbqFilter config.'
268
+ }
269
+ ];
270
+
271
+ exports.scssReplacements = scssReplacements;
272
+ exports.templateReplacements = templateReplacements;
273
+ exports.tsReplacements = tsReplacements;
274
+ exports.warnPatterns = warnPatterns;
@@ -0,0 +1,222 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var utils_messages = require('../../utils/messages.js');
6
+ var utils_packageConfig = require('../../utils/package-config.js');
7
+ var migrations_v20Upgrade_data = require('./data.js');
8
+ require('@angular-devkit/schematics');
9
+ require('@schematics/angular/utility');
10
+
11
+ const TS_EXT = '.ts';
12
+ const HTML_EXT = '.html';
13
+ const SCSS_EXT = '.scss';
14
+ const CSS_EXT = '.css';
15
+ /**
16
+ * Applies an ordered list of regex replacements to a string, returns the new
17
+ * string, whether anything changed, and any imports the replacements introduced
18
+ * that the file must contain (e.g. `booleanAttribute` from `@angular/core` after
19
+ * a `toBoolean(` → `booleanAttribute(` rewrite).
20
+ */
21
+ function applyReplacements(content, replacements) {
22
+ let result = content;
23
+ const importsToEnsure = [];
24
+ const importsToRemove = [];
25
+ for (const { from, to, ensureImport, removeImport } of replacements) {
26
+ const before = result;
27
+ result = result.replace(new RegExp(from, 'g'), to);
28
+ // Tidy up double commas / empty-element commas left over from identifier
29
+ // deletions like `{ A, KbqValidationOptions, B }` → `{ A, , B }`.
30
+ // Also covers array forms like `providers: [a(), removedCall(), b()]`
31
+ // → `providers: [a(), , b()]` after a call-site rewrite to ''.
32
+ if (to === '' && before !== result) {
33
+ result = result
34
+ .replace(/,\s*,/g, ',')
35
+ .replace(/{\s*,/g, '{')
36
+ .replace(/,\s*}/g, ' }')
37
+ .replace(/\[\s*,/g, '[')
38
+ .replace(/,\s*\]/g, ' ]');
39
+ }
40
+ if (ensureImport && before !== result) {
41
+ importsToEnsure.push(ensureImport);
42
+ }
43
+ if (removeImport && before !== result) {
44
+ importsToRemove.push(removeImport);
45
+ }
46
+ }
47
+ return { content: result, changed: result !== content, importsToEnsure, importsToRemove };
48
+ }
49
+ /**
50
+ * Idempotently add `import { symbol } from 'module'` to a TypeScript source
51
+ * string. If the module is already imported, the symbol is added to the
52
+ * existing import clause. If the symbol is already imported (from any
53
+ * module), this is a no-op. Otherwise a new import line is inserted at the
54
+ * top of the file (after any leading block / leading comments).
55
+ */
56
+ function ensureImport(content, symbol, from) {
57
+ // Already imported (anywhere) — leave alone. The regex looks for the
58
+ // identifier inside an `import { ... }` clause; deliberately permissive
59
+ // so re-exports and renamed imports still skip the injection.
60
+ const alreadyImported = new RegExp(`import\\s*(?:type\\s*)?\\{[^}]*\\b${symbol}\\b[^}]*\\}\\s*from\\s*['"][^'"]+['"]`);
61
+ if (alreadyImported.test(content))
62
+ return content;
63
+ // Existing import line from the same module — extend its clause.
64
+ const sameModule = new RegExp(`(import\\s*(?:type\\s*)?\\{)([^}]*)(\\}\\s*from\\s*['"]${escapeRegExp(from)}['"])`);
65
+ if (sameModule.test(content)) {
66
+ return content.replace(sameModule, (_match, open, body, close) => {
67
+ const trimmed = body.trim().replace(/,$/, '');
68
+ const next = trimmed.length === 0 ? ` ${symbol} ` : `${body.replace(/\s*$/, '')}, ${symbol} `;
69
+ return `${open}${next}${close}`;
70
+ });
71
+ }
72
+ // Otherwise, prepend a new import. Insert after any leading comment block
73
+ // / shebang. The simple heuristic finds the first non-comment, non-blank
74
+ // line and inserts right before it.
75
+ const newImport = `import { ${symbol} } from '${from}';\n`;
76
+ const lines = content.split('\n');
77
+ let insertAt = 0;
78
+ let inBlockComment = false;
79
+ for (let i = 0; i < lines.length; i++) {
80
+ const trimmed = lines[i].trim();
81
+ if (inBlockComment) {
82
+ if (trimmed.endsWith('*/'))
83
+ inBlockComment = false;
84
+ insertAt = i + 1;
85
+ continue;
86
+ }
87
+ if (trimmed.startsWith('/*')) {
88
+ inBlockComment = !trimmed.includes('*/');
89
+ insertAt = i + 1;
90
+ continue;
91
+ }
92
+ if (trimmed.startsWith('//') || trimmed.length === 0) {
93
+ insertAt = i + 1;
94
+ continue;
95
+ }
96
+ break;
97
+ }
98
+ lines.splice(insertAt, 0, newImport.replace(/\n$/, ''));
99
+ return lines.join('\n');
100
+ }
101
+ function escapeRegExp(s) {
102
+ return s.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
103
+ }
104
+ /**
105
+ * Idempotently strip `symbol` from any `import { … } from 'from'` clause.
106
+ * - Multi-symbol clause: drop just that symbol, keep the others.
107
+ * - Single-symbol clause: drop the entire import line (including its trailing newline).
108
+ * Returns content unchanged if no matching clause is found.
109
+ *
110
+ * Used to clean up dangling references after rewrites that delete or rename a
111
+ * symbol (e.g. `toBoolean(` → `booleanAttribute(` must also remove the now-
112
+ * non-existent `toBoolean` import from `@koobiq/components/core`).
113
+ */
114
+ function removeImport(content, symbol, from) {
115
+ const moduleRe = new RegExp(`(import\\s*(?:type\\s*)?\\{)([^}]*)(\\}\\s*from\\s*['"]${escapeRegExp(from)}['"];?\\s*\\n?)`, 'g');
116
+ return content.replace(moduleRe, (full, open, body, close) => {
117
+ const items = body
118
+ .split(',')
119
+ .map((s) => s.trim())
120
+ .filter(Boolean);
121
+ // Empty clause means an earlier regex rewrite already stripped the only
122
+ // specifier (e.g. `KbqValidationOptions` → `''` left `import { } from …`).
123
+ // Since this caller asked us to remove `symbol` from this module, the line
124
+ // is dead either way — drop it.
125
+ if (items.length === 0)
126
+ return '';
127
+ const kept = items.filter((spec) => {
128
+ // Handle `<name> as <alias>` — match on the source name, not the alias.
129
+ const source = spec.split(/\s+as\s+/)[0].trim();
130
+ return source !== symbol;
131
+ });
132
+ if (kept.length === items.length)
133
+ return full; // no change
134
+ if (kept.length === 0)
135
+ return ''; // drop whole line
136
+ return `${open} ${kept.join(', ')} ${close}`;
137
+ });
138
+ }
139
+ function logWarnings(context, filePath, content, patterns) {
140
+ for (const { pattern, message } of patterns) {
141
+ if (new RegExp(pattern).test(content)) {
142
+ utils_messages.logMessage(context.logger, [`[v20-upgrade] ${filePath}`, ` ${message}`]);
143
+ }
144
+ }
145
+ }
146
+ function pickReplacements(filePath) {
147
+ if (filePath.endsWith(TS_EXT)) {
148
+ // .ts files: apply both ts-source and template replacements (covers inline templates)
149
+ return [...migrations_v20Upgrade_data.tsReplacements, ...migrations_v20Upgrade_data.templateReplacements];
150
+ }
151
+ if (filePath.endsWith(HTML_EXT)) {
152
+ return migrations_v20Upgrade_data.templateReplacements;
153
+ }
154
+ if (filePath.endsWith(SCSS_EXT) || filePath.endsWith(CSS_EXT)) {
155
+ return migrations_v20Upgrade_data.scssReplacements;
156
+ }
157
+ return null;
158
+ }
159
+ function v20Upgrade(options) {
160
+ return async (tree, context) => {
161
+ const { project, fix } = options;
162
+ const projectDefinition = await utils_packageConfig.setupOptions(project, tree);
163
+ const root = projectDefinition?.root ?? '';
164
+ const rootDir = root ? tree.getDir(root) : tree.root;
165
+ let touched = 0;
166
+ rootDir.visit((filePath, entry) => {
167
+ if (filePath.includes('node_modules') || filePath.includes('/dist/'))
168
+ return;
169
+ const replacements = pickReplacements(filePath);
170
+ if (!replacements)
171
+ return;
172
+ const originalContent = entry?.content.toString();
173
+ if (!originalContent)
174
+ return;
175
+ // Always surface warn-only patterns regardless of fix mode.
176
+ logWarnings(context, filePath, originalContent, migrations_v20Upgrade_data.warnPatterns);
177
+ const { content: replaced, changed, importsToEnsure, importsToRemove } = applyReplacements(originalContent, replacements);
178
+ if (!changed)
179
+ return;
180
+ let content = replaced;
181
+ if (filePath.endsWith(TS_EXT)) {
182
+ // Deduplicate by symbol+module since one replacement may match
183
+ // many call sites in the same file.
184
+ if (importsToRemove.length > 0) {
185
+ const seenRemove = new Set();
186
+ for (const { symbol, from } of importsToRemove) {
187
+ const key = `${symbol}|${from}`;
188
+ if (seenRemove.has(key))
189
+ continue;
190
+ seenRemove.add(key);
191
+ content = removeImport(content, symbol, from);
192
+ }
193
+ }
194
+ if (importsToEnsure.length > 0) {
195
+ const seenEnsure = new Set();
196
+ for (const { symbol, from } of importsToEnsure) {
197
+ const key = `${symbol}|${from}`;
198
+ if (seenEnsure.has(key))
199
+ continue;
200
+ seenEnsure.add(key);
201
+ content = ensureImport(content, symbol, from);
202
+ }
203
+ }
204
+ }
205
+ touched++;
206
+ if (fix) {
207
+ tree.overwrite(filePath, content);
208
+ }
209
+ else {
210
+ utils_messages.logMessage(context.logger, [
211
+ `[v20-upgrade] would update ${filePath} (run with --fix to apply)`
212
+ ]);
213
+ }
214
+ });
215
+ utils_messages.logMessage(context.logger, [
216
+ `[v20-upgrade] processed tree under "${root || '<workspace root>'}", ` +
217
+ `${fix ? 'updated' : 'would update'} ${touched} file(s).`
218
+ ]);
219
+ };
220
+ }
221
+
222
+ exports.default = v20Upgrade;
@@ -0,0 +1,20 @@
1
+ {
2
+ "$schema": "http://json-schema.org/schema",
3
+ "$id": "koobiq-components-v20-upgrade",
4
+ "title": "Koobiq components v20.0.0 upgrade",
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,10 @@
1
+ {
2
+ "$schema": "../../../node_modules/@angular-devkit/schematics/collection-schema.json",
3
+ "schematics": {
4
+ "v20-upgrade": {
5
+ "version": "20.0.0-0",
6
+ "description": "Migrates code from deprecated APIs removed in @koobiq/components v20.0.0. Handles package moves (@koobiq/cdk/{a11y,keycodes,testing} → @koobiq/components/core, navbar-ic, risk-level, experimental form-field), TypeScript identifier renames, template selector renames (e.g. <kbq-filter-search> → <kbq-search-expandable>, <kbq-datepicker-toggle> → <kbq-datepicker-toggle-icon>), attribute renames (kbqFormFieldWithoutBorders → noBorders), tooltip modifier inputs, and emits warnings for structural changes that need manual migration (onSaveAsNew, file-upload customValidation/errors, app-switcher apps).",
7
+ "factory": "./migrations/v20-upgrade/index"
8
+ }
9
+ }
10
+ }
@@ -26,12 +26,11 @@ function ngAdd(options) {
26
26
  }
27
27
  }
28
28
  // Installing dependencies
29
- utils_packageConfig.addPackageToPackageJson(tree, '@angular/cdk', "^19.2.19");
30
- utils_packageConfig.addPackageToPackageJson(tree, '@koobiq/cdk', "^19.8.0");
31
- utils_packageConfig.addPackageToPackageJson(tree, '@koobiq/angular-luxon-adapter', "^19.8.0");
29
+ utils_packageConfig.addPackageToPackageJson(tree, '@angular/cdk', "^20.2.14");
30
+ utils_packageConfig.addPackageToPackageJson(tree, '@koobiq/angular-luxon-adapter', "^20.0.0");
32
31
  utils_packageConfig.addPackageToPackageJson(tree, '@koobiq/date-formatter', "^3.5.1");
33
32
  utils_packageConfig.addPackageToPackageJson(tree, '@koobiq/date-adapter', "^3.5.1");
34
- utils_packageConfig.addPackageToPackageJson(tree, '@koobiq/icons', "^11.5.0");
33
+ utils_packageConfig.addPackageToPackageJson(tree, '@koobiq/icons', "^11.7.1");
35
34
  utils_packageConfig.addPackageToPackageJson(tree, '@koobiq/design-tokens', "^3.17.2");
36
35
  utils_packageConfig.addPackageToPackageJson(tree, 'luxon', "^3.7.2");
37
36
  };