@koobiq/components 20.4.2 → 21.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (771) hide show
  1. package/accordion/accordion-trigger.scss +3 -10
  2. package/accordion/accordion.scss +4 -6
  3. package/actions-panel/actions-panel-container.scss +45 -1
  4. package/alert/alert.component.scss +3 -2
  5. package/app-switcher/_app-switcher-theme.scss +0 -4
  6. package/app-switcher/app-switcher-dropdown-app.scss +3 -2
  7. package/app-switcher/app-switcher-dropdown-site.scss +2 -1
  8. package/app-switcher/{kbq-app-switcher-list-item.scss → app-switcher-list-item.scss} +18 -4
  9. package/app-switcher/app-switcher-tokens.scss +15 -0
  10. package/app-switcher/app-switcher.scss +14 -4
  11. package/autocomplete/autocomplete.scss +7 -6
  12. package/badge/badge.component.scss +5 -8
  13. package/breadcrumbs/breadcrumbs.scss +25 -10
  14. package/button/_button-base.scss +30 -7
  15. package/button/_button-theme.scss +16 -0
  16. package/button/button-group.scss +7 -0
  17. package/button/button-tokens.scss +0 -2
  18. package/button/button.scss +34 -2
  19. package/button-toggle/_button-toggle-theme.scss +7 -2
  20. package/button-toggle/button-toggle.scss +65 -15
  21. package/checkbox/_checkbox-theme.scss +4 -3
  22. package/checkbox/checkbox.scss +3 -6
  23. package/clamped-text/clamped-text.scss +6 -2
  24. package/code-block/code-block-tokens.scss +0 -224
  25. package/code-block/code-block.scss +20 -9
  26. package/content-panel/content-panel-aside.scss +3 -2
  27. package/content-panel/content-panel-container.scss +37 -0
  28. package/content-panel/content-panel.scss +4 -3
  29. package/core/highlight/_highlight-theme.scss +3 -1
  30. package/core/option/action-container.scss +2 -2
  31. package/core/option/action.scss +2 -1
  32. package/core/option/option.scss +2 -1
  33. package/core/pop-up/_pop-up.scss +0 -37
  34. package/core/selection/pseudo-checkbox/pseudo-checkbox.scss +5 -10
  35. package/core/styles/_core.scss +3 -0
  36. package/core/styles/_koobiq-theme.scss +5 -6
  37. package/core/styles/common/_animation.scss +44 -16
  38. package/core/styles/common/_groups-mixins.scss +21 -19
  39. package/core/styles/common/_groups.scss +4 -32
  40. package/core/styles/common/_index.scss +0 -2
  41. package/core/styles/common/_link.scss +117 -0
  42. package/core/styles/common/_list.scss +0 -26
  43. package/core/styles/common/_overlay.scss +8 -10
  44. package/core/styles/common/_rtl.scss +0 -14
  45. package/core/styles/common/_select.scss +33 -15
  46. package/core/styles/common/_squircle.scss +63 -0
  47. package/core/styles/common/_tokens.scss +0 -11
  48. package/core/styles/common/_vendor-prefixes.scss +0 -20
  49. package/core/styles/functions/_timing.scss +0 -22
  50. package/core/styles/theming/_scrollbar-theme.scss +6 -1
  51. package/core/styles/theming/_theming.scss +13 -65
  52. package/core/styles/typography/_index.scss +0 -1
  53. package/core/styles/typography/_typography.scss +0 -143
  54. package/core/styles/visual/_body.scss +1 -6
  55. package/core/styles/visual/_layout.scss +0 -12
  56. package/datepicker/calendar-body.scss +3 -1
  57. package/datepicker/calendar-header.scss +0 -1
  58. package/datepicker/datepicker-content.scss +33 -1
  59. package/datepicker/datepicker-toggle.scss +0 -38
  60. package/dl/dl-tokens.scss +10 -0
  61. package/dl/dl.scss +113 -13
  62. package/dropdown/_dropdown-theme.scss +4 -16
  63. package/dropdown/dropdown-item.scss +4 -10
  64. package/dropdown/dropdown.scss +2 -1
  65. package/empty-state/_empty-state-theme.scss +10 -4
  66. package/empty-state/empty-state-tokens.scss +4 -4
  67. package/empty-state/empty-state.scss +4 -0
  68. package/fesm2022/koobiq-components-accordion.mjs +347 -229
  69. package/fesm2022/koobiq-components-accordion.mjs.map +1 -1
  70. package/fesm2022/koobiq-components-actions-panel.mjs +302 -187
  71. package/fesm2022/koobiq-components-actions-panel.mjs.map +1 -1
  72. package/fesm2022/koobiq-components-alert.mjs +39 -39
  73. package/fesm2022/koobiq-components-alert.mjs.map +1 -1
  74. package/fesm2022/koobiq-components-app-switcher.mjs +677 -367
  75. package/fesm2022/koobiq-components-app-switcher.mjs.map +1 -1
  76. package/fesm2022/koobiq-components-autocomplete.mjs +620 -253
  77. package/fesm2022/koobiq-components-autocomplete.mjs.map +1 -1
  78. package/fesm2022/koobiq-components-badge.mjs +46 -48
  79. package/fesm2022/koobiq-components-badge.mjs.map +1 -1
  80. package/fesm2022/koobiq-components-breadcrumbs.mjs +221 -169
  81. package/fesm2022/koobiq-components-breadcrumbs.mjs.map +1 -1
  82. package/fesm2022/koobiq-components-button-toggle.mjs +565 -196
  83. package/fesm2022/koobiq-components-button-toggle.mjs.map +1 -1
  84. package/fesm2022/koobiq-components-button.mjs +332 -116
  85. package/fesm2022/koobiq-components-button.mjs.map +1 -1
  86. package/fesm2022/koobiq-components-checkbox.mjs +172 -132
  87. package/fesm2022/koobiq-components-checkbox.mjs.map +1 -1
  88. package/fesm2022/koobiq-components-clamped-text.mjs +165 -158
  89. package/fesm2022/koobiq-components-clamped-text.mjs.map +1 -1
  90. package/fesm2022/koobiq-components-code-block.mjs +755 -601
  91. package/fesm2022/koobiq-components-code-block.mjs.map +1 -1
  92. package/fesm2022/koobiq-components-content-panel.mjs +260 -143
  93. package/fesm2022/koobiq-components-content-panel.mjs.map +1 -1
  94. package/fesm2022/koobiq-components-core.mjs +4342 -1595
  95. package/fesm2022/koobiq-components-core.mjs.map +1 -1
  96. package/fesm2022/koobiq-components-datepicker.mjs +1713 -1606
  97. package/fesm2022/koobiq-components-datepicker.mjs.map +1 -1
  98. package/fesm2022/koobiq-components-divider.mjs +73 -36
  99. package/fesm2022/koobiq-components-divider.mjs.map +1 -1
  100. package/fesm2022/koobiq-components-dl.mjs +447 -89
  101. package/fesm2022/koobiq-components-dl.mjs.map +1 -1
  102. package/fesm2022/koobiq-components-dropdown.mjs +703 -599
  103. package/fesm2022/koobiq-components-dropdown.mjs.map +1 -1
  104. package/fesm2022/koobiq-components-dynamic-translation.mjs +20 -20
  105. package/fesm2022/koobiq-components-dynamic-translation.mjs.map +1 -1
  106. package/fesm2022/koobiq-components-ellipsis-center.mjs +46 -31
  107. package/fesm2022/koobiq-components-ellipsis-center.mjs.map +1 -1
  108. package/fesm2022/koobiq-components-empty-state.mjs +116 -60
  109. package/fesm2022/koobiq-components-empty-state.mjs.map +1 -1
  110. package/fesm2022/koobiq-components-file-upload.mjs +550 -290
  111. package/fesm2022/koobiq-components-file-upload.mjs.map +1 -1
  112. package/fesm2022/koobiq-components-filter-bar.mjs +2810 -2538
  113. package/fesm2022/koobiq-components-filter-bar.mjs.map +1 -1
  114. package/fesm2022/koobiq-components-flag.mjs +79 -24
  115. package/fesm2022/koobiq-components-flag.mjs.map +1 -1
  116. package/fesm2022/koobiq-components-form-field.mjs +389 -525
  117. package/fesm2022/koobiq-components-form-field.mjs.map +1 -1
  118. package/fesm2022/koobiq-components-icon.mjs +366 -136
  119. package/fesm2022/koobiq-components-icon.mjs.map +1 -1
  120. package/fesm2022/koobiq-components-inline-edit.mjs +429 -212
  121. package/fesm2022/koobiq-components-inline-edit.mjs.map +1 -1
  122. package/fesm2022/koobiq-components-input.mjs +601 -459
  123. package/fesm2022/koobiq-components-input.mjs.map +1 -1
  124. package/fesm2022/koobiq-components-link-deprecated.mjs +196 -0
  125. package/fesm2022/koobiq-components-link-deprecated.mjs.map +1 -0
  126. package/fesm2022/koobiq-components-link.mjs +328 -125
  127. package/fesm2022/koobiq-components-link.mjs.map +1 -1
  128. package/fesm2022/koobiq-components-list.mjs +583 -433
  129. package/fesm2022/koobiq-components-list.mjs.map +1 -1
  130. package/fesm2022/koobiq-components-loader-overlay.mjs +167 -68
  131. package/fesm2022/koobiq-components-loader-overlay.mjs.map +1 -1
  132. package/fesm2022/koobiq-components-markdown.mjs +55 -78
  133. package/fesm2022/koobiq-components-markdown.mjs.map +1 -1
  134. package/fesm2022/koobiq-components-modal.mjs +853 -475
  135. package/fesm2022/koobiq-components-modal.mjs.map +1 -1
  136. package/fesm2022/koobiq-components-navbar.mjs +895 -556
  137. package/fesm2022/koobiq-components-navbar.mjs.map +1 -1
  138. package/fesm2022/koobiq-components-notification-center.mjs +680 -310
  139. package/fesm2022/koobiq-components-notification-center.mjs.map +1 -1
  140. package/fesm2022/koobiq-components-overflow-items.mjs +46 -64
  141. package/fesm2022/koobiq-components-overflow-items.mjs.map +1 -1
  142. package/fesm2022/koobiq-components-popover.mjs +684 -285
  143. package/fesm2022/koobiq-components-popover.mjs.map +1 -1
  144. package/fesm2022/koobiq-components-progress-bar.mjs +87 -33
  145. package/fesm2022/koobiq-components-progress-bar.mjs.map +1 -1
  146. package/fesm2022/koobiq-components-progress-spinner.mjs +52 -43
  147. package/fesm2022/koobiq-components-progress-spinner.mjs.map +1 -1
  148. package/fesm2022/koobiq-components-radio.mjs +450 -231
  149. package/fesm2022/koobiq-components-radio.mjs.map +1 -1
  150. package/fesm2022/koobiq-components-resizer.mjs +127 -21
  151. package/fesm2022/koobiq-components-resizer.mjs.map +1 -1
  152. package/fesm2022/koobiq-components-scrollbar-deprecated.mjs +299 -0
  153. package/fesm2022/koobiq-components-scrollbar-deprecated.mjs.map +1 -0
  154. package/fesm2022/koobiq-components-scrollbar.mjs +745 -222
  155. package/fesm2022/koobiq-components-scrollbar.mjs.map +1 -1
  156. package/fesm2022/koobiq-components-search-expandable.mjs +288 -126
  157. package/fesm2022/koobiq-components-search-expandable.mjs.map +1 -1
  158. package/fesm2022/koobiq-components-select.mjs +883 -693
  159. package/fesm2022/koobiq-components-select.mjs.map +1 -1
  160. package/fesm2022/koobiq-components-sidebar.mjs +207 -88
  161. package/fesm2022/koobiq-components-sidebar.mjs.map +1 -1
  162. package/fesm2022/koobiq-components-sidepanel.mjs +689 -296
  163. package/fesm2022/koobiq-components-sidepanel.mjs.map +1 -1
  164. package/fesm2022/koobiq-components-skeleton.mjs +815 -41
  165. package/fesm2022/koobiq-components-skeleton.mjs.map +1 -1
  166. package/fesm2022/koobiq-components-split-button.mjs +109 -88
  167. package/fesm2022/koobiq-components-split-button.mjs.map +1 -1
  168. package/fesm2022/koobiq-components-splitter-deprecated.mjs +591 -0
  169. package/fesm2022/koobiq-components-splitter-deprecated.mjs.map +1 -0
  170. package/fesm2022/koobiq-components-splitter.mjs +890 -501
  171. package/fesm2022/koobiq-components-splitter.mjs.map +1 -1
  172. package/fesm2022/koobiq-components-table.mjs +63 -49
  173. package/fesm2022/koobiq-components-table.mjs.map +1 -1
  174. package/fesm2022/koobiq-components-tabs.mjs +1062 -603
  175. package/fesm2022/koobiq-components-tabs.mjs.map +1 -1
  176. package/fesm2022/koobiq-components-tags.mjs +886 -733
  177. package/fesm2022/koobiq-components-tags.mjs.map +1 -1
  178. package/fesm2022/koobiq-components-textarea.mjs +213 -185
  179. package/fesm2022/koobiq-components-textarea.mjs.map +1 -1
  180. package/fesm2022/koobiq-components-time-range.mjs +299 -147
  181. package/fesm2022/koobiq-components-time-range.mjs.map +1 -1
  182. package/fesm2022/koobiq-components-timepicker.mjs +233 -245
  183. package/fesm2022/koobiq-components-timepicker.mjs.map +1 -1
  184. package/fesm2022/koobiq-components-timezone.mjs +344 -142
  185. package/fesm2022/koobiq-components-timezone.mjs.map +1 -1
  186. package/fesm2022/koobiq-components-title.mjs +229 -145
  187. package/fesm2022/koobiq-components-title.mjs.map +1 -1
  188. package/fesm2022/koobiq-components-toast.mjs +463 -143
  189. package/fesm2022/koobiq-components-toast.mjs.map +1 -1
  190. package/fesm2022/koobiq-components-toggle.mjs +177 -130
  191. package/fesm2022/koobiq-components-toggle.mjs.map +1 -1
  192. package/fesm2022/koobiq-components-tooltip.mjs +657 -214
  193. package/fesm2022/koobiq-components-tooltip.mjs.map +1 -1
  194. package/fesm2022/koobiq-components-top-bar.mjs +61 -32
  195. package/fesm2022/koobiq-components-top-bar.mjs.map +1 -1
  196. package/fesm2022/koobiq-components-tree-select.mjs +719 -488
  197. package/fesm2022/koobiq-components-tree-select.mjs.map +1 -1
  198. package/fesm2022/koobiq-components-tree.mjs +1506 -558
  199. package/fesm2022/koobiq-components-tree.mjs.map +1 -1
  200. package/fesm2022/koobiq-components-username.mjs +290 -135
  201. package/fesm2022/koobiq-components-username.mjs.map +1 -1
  202. package/file-upload/dropzone.scss +31 -3
  203. package/file-upload/file-upload-tokens.scss +2 -22
  204. package/file-upload/file-upload.scss +6 -0
  205. package/file-upload/multiple-file-upload.component.scss +14 -12
  206. package/file-upload/single-file-upload.component.scss +3 -2
  207. package/filter-bar/filters.scss +7 -0
  208. package/filter-bar/pipes/base-pipe.scss +3 -3
  209. package/filter-bar/pipes/pipe-date.scss +8 -1
  210. package/flag/flag-tokens.scss +22 -0
  211. package/flag/flag.scss +34 -21
  212. package/form-field/{_fiedset-theme.scss → _fieldset-theme.scss} +1 -5
  213. package/form-field/_form-field-theme.scss +4 -9
  214. package/form-field/cleaner.scss +3 -1
  215. package/form-field/fieldset.scss +3 -4
  216. package/form-field/form-field.scss +26 -21
  217. package/form-field/password-toggle.scss +3 -1
  218. package/icon/_icon-button-theme.scss +7 -0
  219. package/icon/_icon-theme.scss +10 -7
  220. package/icon/icon-button.scss +0 -2
  221. package/icon/icon-tokens.scss +12 -9
  222. package/inline-edit/inline-edit.scss +40 -54
  223. package/input/input.scss +4 -0
  224. package/link/{_link-theme.scss → deprecated/_link-theme.scss} +11 -6
  225. package/link/deprecated/link-tokens.scss +27 -0
  226. package/link/link-tokens.scss +6 -25
  227. package/link/link.scss +137 -0
  228. package/list/list.scss +3 -2
  229. package/loader-overlay/_loader-overlay-theme.scss +19 -10
  230. package/loader-overlay/loader-overlay-tokens.scss +0 -2
  231. package/loader-overlay/loader-overlay.scss +7 -1
  232. package/markdown/_markdown-theme.scss +16 -0
  233. package/markdown/markdown-tokens.scss +5 -0
  234. package/markdown/markdown.scss +2 -1
  235. package/modal/_modal-animation.scss +23 -14
  236. package/modal/modal-tokens.scss +2 -1
  237. package/modal/modal.scss +35 -31
  238. package/navbar/_navbar-item_horizontal.scss +8 -6
  239. package/navbar/_navbar-item_vertical.scss +18 -6
  240. package/navbar/_navbar-theme.scss +9 -1
  241. package/navbar/navbar-brand.scss +8 -6
  242. package/navbar/navbar-divider.scss +1 -1
  243. package/navbar/navbar-item.scss +8 -9
  244. package/navbar/navbar-toggle.scss +3 -3
  245. package/navbar/navbar-tokens.scss +14 -0
  246. package/navbar/navbar.scss +1 -2
  247. package/navbar/vertical-navbar.scss +2 -2
  248. package/notification-center/_notification-center-theme.scss +11 -6
  249. package/notification-center/notification-center-tokens.scss +33 -0
  250. package/notification-center/notification-center.scss +58 -20
  251. package/notification-center/notification-item.scss +15 -6
  252. package/package.json +112 -81
  253. package/popover/popover-tokens.scss +0 -2
  254. package/popover/popover.scss +41 -19
  255. package/prebuilt-themes/theme.css +1 -1
  256. package/progress-bar/_progress-bar-theme.scss +20 -3
  257. package/progress-bar/progress-bar-tokens.scss +3 -0
  258. package/progress-bar/progress-bar.scss +36 -8
  259. package/progress-spinner/progress-spinner.scss +4 -3
  260. package/radio/_radio-theme.scss +21 -4
  261. package/radio/radio-tokens.scss +7 -3
  262. package/radio/radio.scss +55 -8
  263. package/schematics/collection.json +399 -7
  264. package/schematics/migrations/accordion-state-saving-default/README.md +60 -0
  265. package/schematics/migrations/accordion-state-saving-default/data.js +75 -0
  266. package/schematics/migrations/accordion-state-saving-default/index.js +60 -0
  267. package/schematics/migrations/accordion-state-saving-default/schema.json +15 -0
  268. package/schematics/migrations/actions-panel-overlay-container/README.md +35 -0
  269. package/schematics/migrations/actions-panel-overlay-container/data.js +47 -0
  270. package/schematics/migrations/actions-panel-overlay-container/index.js +54 -0
  271. package/schematics/migrations/actions-panel-overlay-container/schema.json +15 -0
  272. package/schematics/migrations/alert-signals/README.md +13 -7
  273. package/schematics/migrations/alert-signals/data.js +3 -0
  274. package/schematics/migrations/alert-signals/index.js +70 -203
  275. package/schematics/migrations/angular-animations-removal/README.md +46 -0
  276. package/schematics/migrations/angular-animations-removal/data.js +150 -0
  277. package/schematics/migrations/angular-animations-removal/index.js +20 -0
  278. package/schematics/migrations/angular-animations-removal/schema.json +15 -0
  279. package/schematics/migrations/app-switcher-signals/README.md +88 -0
  280. package/schematics/migrations/app-switcher-signals/data.js +136 -0
  281. package/schematics/migrations/app-switcher-signals/index.js +365 -0
  282. package/schematics/migrations/app-switcher-signals/schema.json +20 -0
  283. package/schematics/migrations/autocomplete-panel-width-auto/README.md +2 -2
  284. package/schematics/migrations/autocomplete-panel-width-auto/index.js +1 -1
  285. package/schematics/migrations/autocomplete-signals/README.md +92 -0
  286. package/schematics/migrations/autocomplete-signals/data.js +149 -0
  287. package/schematics/migrations/autocomplete-signals/index.js +706 -0
  288. package/schematics/migrations/autocomplete-signals/schema.json +20 -0
  289. package/schematics/migrations/badge-signals/README.md +77 -0
  290. package/schematics/migrations/badge-signals/data.js +109 -0
  291. package/schematics/migrations/badge-signals/index.js +693 -0
  292. package/schematics/migrations/badge-signals/schema.json +20 -0
  293. package/schematics/migrations/button-state-and-styles/README.md +129 -0
  294. package/schematics/migrations/button-state-and-styles/data.js +136 -0
  295. package/schematics/migrations/button-state-and-styles/index.js +220 -0
  296. package/schematics/migrations/button-state-and-styles/schema.json +20 -0
  297. package/schematics/migrations/button-supported-colors/README.md +73 -0
  298. package/schematics/migrations/button-supported-colors/data.js +106 -0
  299. package/schematics/migrations/button-supported-colors/index.js +260 -0
  300. package/schematics/migrations/button-supported-colors/schema.json +20 -0
  301. package/schematics/migrations/button-toggle-signals-and-aria/README.md +137 -0
  302. package/schematics/migrations/button-toggle-signals-and-aria/data.js +200 -0
  303. package/schematics/migrations/button-toggle-signals-and-aria/index.js +496 -0
  304. package/schematics/migrations/button-toggle-signals-and-aria/schema.json +20 -0
  305. package/schematics/migrations/button-truncation/README.md +110 -0
  306. package/schematics/migrations/button-truncation/data.js +88 -0
  307. package/schematics/migrations/button-truncation/index.js +269 -0
  308. package/schematics/migrations/button-truncation/schema.json +20 -0
  309. package/schematics/migrations/checkbox-signals/README.md +76 -0
  310. package/schematics/migrations/checkbox-signals/data.js +114 -0
  311. package/schematics/migrations/checkbox-signals/index.js +634 -0
  312. package/schematics/migrations/checkbox-signals/schema.json +20 -0
  313. package/schematics/migrations/clamped-text-disclosure/README.md +62 -0
  314. package/schematics/migrations/clamped-text-disclosure/data.js +101 -0
  315. package/schematics/migrations/clamped-text-disclosure/index.js +59 -0
  316. package/schematics/migrations/clamped-text-disclosure/schema.json +15 -0
  317. package/schematics/migrations/code-block-signals/README.md +84 -0
  318. package/schematics/migrations/code-block-signals/data.js +121 -0
  319. package/schematics/migrations/code-block-signals/index.js +700 -0
  320. package/schematics/migrations/code-block-signals/schema.json +20 -0
  321. package/schematics/migrations/color-signals/README.md +46 -0
  322. package/schematics/migrations/color-signals/data.js +131 -0
  323. package/schematics/migrations/color-signals/index.js +19 -0
  324. package/schematics/migrations/color-signals/schema.json +20 -0
  325. package/schematics/migrations/core-mixins-removal/README.md +20 -0
  326. package/schematics/migrations/core-mixins-removal/data.js +27 -0
  327. package/schematics/migrations/core-mixins-removal/index.js +17 -0
  328. package/schematics/migrations/core-mixins-removal/schema.json +15 -0
  329. package/schematics/migrations/css-selectors/README.md +2 -2
  330. package/schematics/migrations/css-selectors/index.js +1 -1
  331. package/schematics/migrations/datepicker-signals/README.md +24 -0
  332. package/schematics/migrations/datepicker-signals/data.js +49 -0
  333. package/schematics/migrations/datepicker-signals/index.js +17 -0
  334. package/schematics/migrations/datepicker-signals/schema.json +15 -0
  335. package/schematics/migrations/deprecated-icons/README.md +2 -2
  336. package/schematics/migrations/deprecated-icons/index.js +1 -1
  337. package/schematics/migrations/design-tokens-v4/README.md +75 -0
  338. package/schematics/migrations/design-tokens-v4/index.js +59 -0
  339. package/schematics/migrations/design-tokens-v4/schema.json +15 -0
  340. package/schematics/migrations/divider-signals-and-aria/README.md +47 -0
  341. package/schematics/migrations/divider-signals-and-aria/data.js +62 -0
  342. package/schematics/migrations/divider-signals-and-aria/index.js +211 -0
  343. package/schematics/migrations/divider-signals-and-aria/schema.json +15 -0
  344. package/schematics/migrations/dl-attribute-coercion/README.md +59 -0
  345. package/schematics/migrations/dl-attribute-coercion/data.js +85 -0
  346. package/schematics/migrations/dl-attribute-coercion/index.js +161 -0
  347. package/schematics/migrations/dl-attribute-coercion/schema.json +15 -0
  348. package/schematics/migrations/dl-standalone-names/README.md +49 -0
  349. package/schematics/migrations/dl-standalone-names/data.js +44 -0
  350. package/schematics/migrations/dl-standalone-names/index.js +321 -0
  351. package/schematics/migrations/dl-standalone-names/schema.json +20 -0
  352. package/schematics/migrations/dropdown-demote-overlay/README.md +137 -0
  353. package/schematics/migrations/dropdown-demote-overlay/data.js +84 -0
  354. package/schematics/migrations/dropdown-demote-overlay/index.js +288 -0
  355. package/schematics/migrations/dropdown-demote-overlay/schema.json +20 -0
  356. package/schematics/migrations/dropdown-signals/README.md +83 -0
  357. package/schematics/migrations/dropdown-signals/data.js +152 -0
  358. package/schematics/migrations/dropdown-signals/index.js +19 -0
  359. package/schematics/migrations/dropdown-signals/schema.json +20 -0
  360. package/schematics/migrations/empty-state-error-color/README.md +84 -0
  361. package/schematics/migrations/empty-state-error-color/data.js +85 -0
  362. package/schematics/migrations/empty-state-error-color/index.js +71 -0
  363. package/schematics/migrations/empty-state-error-color/schema.json +15 -0
  364. package/schematics/migrations/empty-state-size-attr/README.md +2 -2
  365. package/schematics/migrations/empty-state-size-attr/index.js +1 -1
  366. package/schematics/migrations/file-upload-cva-and-primitives/README.md +70 -0
  367. package/schematics/migrations/file-upload-cva-and-primitives/data.js +97 -0
  368. package/schematics/migrations/file-upload-cva-and-primitives/index.js +60 -0
  369. package/schematics/migrations/file-upload-cva-and-primitives/schema.json +15 -0
  370. package/schematics/migrations/file-upload-deprecated-outputs/README.md +90 -0
  371. package/schematics/migrations/file-upload-deprecated-outputs/data.js +20 -0
  372. package/schematics/migrations/file-upload-deprecated-outputs/index.js +70 -0
  373. package/schematics/migrations/file-upload-deprecated-outputs/schema.json +20 -0
  374. package/schematics/migrations/filter-bar-rename-action/README.md +183 -0
  375. package/schematics/migrations/filter-bar-rename-action/data.js +151 -0
  376. package/schematics/migrations/filter-bar-rename-action/index.js +177 -0
  377. package/schematics/migrations/filter-bar-rename-action/schema.json +20 -0
  378. package/schematics/migrations/filter-bar-signals/README.md +27 -16
  379. package/schematics/migrations/filter-bar-signals/data.js +1 -2
  380. package/schematics/migrations/filter-bar-signals/index.js +100 -195
  381. package/schematics/migrations/filter-bar-state-saving-default/README.md +53 -0
  382. package/schematics/migrations/filter-bar-state-saving-default/data.js +87 -0
  383. package/schematics/migrations/filter-bar-state-saving-default/index.js +61 -0
  384. package/schematics/migrations/filter-bar-state-saving-default/schema.json +15 -0
  385. package/schematics/migrations/flag-inner-html/README.md +67 -0
  386. package/schematics/migrations/flag-inner-html/data.js +58 -0
  387. package/schematics/migrations/flag-inner-html/index.js +61 -0
  388. package/schematics/migrations/flag-inner-html/schema.json +15 -0
  389. package/schematics/migrations/form-field-signals/README.md +125 -0
  390. package/schematics/migrations/form-field-signals/data.js +288 -0
  391. package/schematics/migrations/form-field-signals/index.js +382 -0
  392. package/schematics/migrations/form-field-signals/schema.json +20 -0
  393. package/schematics/migrations/icon-semantics-and-api/README.md +65 -0
  394. package/schematics/migrations/icon-semantics-and-api/data.js +97 -0
  395. package/schematics/migrations/icon-semantics-and-api/index.js +64 -0
  396. package/schematics/migrations/icon-semantics-and-api/schema.json +15 -0
  397. package/schematics/migrations/icons-replacement/README.md +5 -5
  398. package/schematics/migrations/icons-replacement/index.js +1 -1
  399. package/schematics/migrations/inline-edit-a11y-and-types/README.md +82 -0
  400. package/schematics/migrations/inline-edit-a11y-and-types/data.js +117 -0
  401. package/schematics/migrations/inline-edit-a11y-and-types/index.js +97 -0
  402. package/schematics/migrations/inline-edit-a11y-and-types/schema.json +20 -0
  403. package/schematics/migrations/input-number-surface/README.md +140 -0
  404. package/schematics/migrations/input-number-surface/data.js +135 -0
  405. package/schematics/migrations/input-number-surface/index.js +292 -0
  406. package/schematics/migrations/input-number-surface/schema.json +20 -0
  407. package/schematics/migrations/input-signals/README.md +20 -0
  408. package/schematics/migrations/input-signals/data.js +30 -0
  409. package/schematics/migrations/input-signals/index.js +17 -0
  410. package/schematics/migrations/input-signals/schema.json +15 -0
  411. package/schematics/migrations/link-deprecated-path/README.md +144 -0
  412. package/schematics/migrations/link-deprecated-path/index.js +19 -0
  413. package/schematics/migrations/link-deprecated-path/schema.json +20 -0
  414. package/schematics/migrations/link-signals/README.md +71 -0
  415. package/schematics/migrations/link-signals/data.js +116 -0
  416. package/schematics/migrations/link-signals/index.js +415 -0
  417. package/schematics/migrations/link-signals/schema.json +20 -0
  418. package/schematics/migrations/list-signals/README.md +22 -0
  419. package/schematics/migrations/list-signals/data.js +35 -0
  420. package/schematics/migrations/list-signals/index.js +17 -0
  421. package/schematics/migrations/list-signals/schema.json +15 -0
  422. package/schematics/migrations/list-tree-multiple-input/README.md +105 -0
  423. package/schematics/migrations/list-tree-multiple-input/data.js +74 -0
  424. package/schematics/migrations/list-tree-multiple-input/index.js +221 -0
  425. package/schematics/migrations/list-tree-multiple-input/schema.json +20 -0
  426. package/schematics/migrations/loader-overlay-signals/README.md +62 -0
  427. package/schematics/migrations/loader-overlay-signals/data.js +101 -0
  428. package/schematics/migrations/loader-overlay-signals/index.js +697 -0
  429. package/schematics/migrations/loader-overlay-signals/schema.json +20 -0
  430. package/schematics/migrations/loader-overlay-size-attr/README.md +2 -2
  431. package/schematics/migrations/loader-overlay-size-attr/index.js +1 -1
  432. package/schematics/migrations/locale-configuration-providers/README.md +163 -0
  433. package/schematics/migrations/locale-configuration-providers/data.js +257 -0
  434. package/schematics/migrations/locale-configuration-providers/index.js +294 -0
  435. package/schematics/migrations/locale-configuration-providers/schema.json +20 -0
  436. package/schematics/migrations/mandatory-peer-dependencies/README.md +70 -0
  437. package/schematics/migrations/mandatory-peer-dependencies/index.js +42 -0
  438. package/schematics/migrations/mandatory-peer-dependencies/schema.json +15 -0
  439. package/schematics/migrations/markdown-signals/README.md +58 -0
  440. package/schematics/migrations/markdown-signals/data.js +79 -0
  441. package/schematics/migrations/markdown-signals/index.js +639 -0
  442. package/schematics/migrations/markdown-signals/schema.json +20 -0
  443. package/schematics/migrations/modal-dialog-semantics/README.md +106 -0
  444. package/schematics/migrations/modal-dialog-semantics/data.js +110 -0
  445. package/schematics/migrations/modal-dialog-semantics/index.js +58 -0
  446. package/schematics/migrations/modal-dialog-semantics/schema.json +15 -0
  447. package/schematics/migrations/modal-signals/README.md +88 -0
  448. package/schematics/migrations/modal-signals/data.js +132 -0
  449. package/schematics/migrations/modal-signals/index.js +19 -0
  450. package/schematics/migrations/modal-signals/schema.json +20 -0
  451. package/schematics/migrations/navbar-signals-and-aria/README.md +111 -0
  452. package/schematics/migrations/navbar-signals-and-aria/data.js +198 -0
  453. package/schematics/migrations/navbar-signals-and-aria/index.js +568 -0
  454. package/schematics/migrations/navbar-signals-and-aria/schema.json +20 -0
  455. package/schematics/migrations/new-icons-pack/README.md +10 -10
  456. package/schematics/migrations/new-icons-pack/index.js +1 -1
  457. package/schematics/migrations/notification-center-signals/README.md +67 -0
  458. package/schematics/migrations/notification-center-signals/data.js +66 -0
  459. package/schematics/migrations/notification-center-signals/index.js +61 -0
  460. package/schematics/migrations/notification-center-signals/schema.json +15 -0
  461. package/schematics/migrations/option-signals/README.md +37 -0
  462. package/schematics/migrations/option-signals/data.js +86 -0
  463. package/schematics/migrations/option-signals/index.js +19 -0
  464. package/schematics/migrations/option-signals/schema.json +20 -0
  465. package/schematics/migrations/popover-leave-delay/README.md +51 -0
  466. package/schematics/migrations/popover-leave-delay/data.js +61 -0
  467. package/schematics/migrations/popover-leave-delay/index.js +54 -0
  468. package/schematics/migrations/popover-leave-delay/schema.json +15 -0
  469. package/schematics/migrations/progress-bar-percentage-and-aria/README.md +54 -0
  470. package/schematics/migrations/progress-bar-percentage-and-aria/data.js +76 -0
  471. package/schematics/migrations/progress-bar-percentage-and-aria/index.js +58 -0
  472. package/schematics/migrations/progress-bar-percentage-and-aria/schema.json +15 -0
  473. package/schematics/migrations/progress-spinner-signals/README.md +72 -0
  474. package/schematics/migrations/progress-spinner-signals/data.js +83 -0
  475. package/schematics/migrations/progress-spinner-signals/index.js +694 -0
  476. package/schematics/migrations/progress-spinner-signals/schema.json +20 -0
  477. package/schematics/migrations/query-list-signals/README.md +32 -0
  478. package/schematics/migrations/query-list-signals/data.js +70 -0
  479. package/schematics/migrations/query-list-signals/index.js +17 -0
  480. package/schematics/migrations/query-list-signals/schema.json +15 -0
  481. package/schematics/migrations/radio-signals-and-aria/README.md +82 -0
  482. package/schematics/migrations/radio-signals-and-aria/data.js +163 -0
  483. package/schematics/migrations/radio-signals-and-aria/index.js +39 -0
  484. package/schematics/migrations/radio-signals-and-aria/schema.json +20 -0
  485. package/schematics/migrations/read-state-dwell-handlers/README.md +125 -0
  486. package/schematics/migrations/read-state-dwell-handlers/data.js +45 -0
  487. package/schematics/migrations/read-state-dwell-handlers/index.js +215 -0
  488. package/schematics/migrations/read-state-dwell-handlers/schema.json +20 -0
  489. package/schematics/migrations/scrollbar-deprecated-path/README.md +128 -0
  490. package/schematics/migrations/scrollbar-deprecated-path/index.js +20 -0
  491. package/schematics/migrations/scrollbar-deprecated-path/schema.json +20 -0
  492. package/schematics/migrations/select-signal-inputs/README.md +61 -0
  493. package/schematics/migrations/select-signal-inputs/data.js +99 -0
  494. package/schematics/migrations/select-signal-inputs/index.js +57 -0
  495. package/schematics/migrations/select-signal-inputs/schema.json +15 -0
  496. package/schematics/migrations/sidepanel-non-modal-behavior/README.md +57 -0
  497. package/schematics/migrations/sidepanel-non-modal-behavior/data.js +111 -0
  498. package/schematics/migrations/sidepanel-non-modal-behavior/index.js +57 -0
  499. package/schematics/migrations/sidepanel-non-modal-behavior/schema.json +15 -0
  500. package/schematics/migrations/signal-inputs-subclasses/README.md +28 -0
  501. package/schematics/migrations/signal-inputs-subclasses/data.js +69 -0
  502. package/schematics/migrations/signal-inputs-subclasses/index.js +17 -0
  503. package/schematics/migrations/signal-inputs-subclasses/schema.json +15 -0
  504. package/schematics/migrations/split-button-optional-disabled/README.md +47 -0
  505. package/schematics/migrations/split-button-optional-disabled/data.js +53 -0
  506. package/schematics/migrations/split-button-optional-disabled/index.js +57 -0
  507. package/schematics/migrations/split-button-optional-disabled/schema.json +15 -0
  508. package/schematics/migrations/splitter-deprecated-path/README.md +136 -0
  509. package/schematics/migrations/splitter-deprecated-path/index.js +20 -0
  510. package/schematics/migrations/splitter-deprecated-path/schema.json +20 -0
  511. package/schematics/migrations/state-saving-default/README.md +67 -0
  512. package/schematics/migrations/state-saving-default/data.js +88 -0
  513. package/schematics/migrations/state-saving-default/index.js +62 -0
  514. package/schematics/migrations/state-saving-default/schema.json +15 -0
  515. package/schematics/migrations/table-cell-content/README.md +55 -0
  516. package/schematics/migrations/table-cell-content/data.js +66 -0
  517. package/schematics/migrations/table-cell-content/index.js +66 -0
  518. package/schematics/migrations/table-cell-content/schema.json +15 -0
  519. package/schematics/migrations/tabs-signals-and-aria/README.md +93 -0
  520. package/schematics/migrations/tabs-signals-and-aria/data.js +139 -0
  521. package/schematics/migrations/tabs-signals-and-aria/index.js +65 -0
  522. package/schematics/migrations/tabs-signals-and-aria/schema.json +15 -0
  523. package/schematics/migrations/tag-list-cleaner/README.md +58 -0
  524. package/schematics/migrations/tag-list-cleaner/data.js +42 -0
  525. package/schematics/migrations/tag-list-cleaner/index.js +196 -0
  526. package/schematics/migrations/tag-list-cleaner/schema.json +20 -0
  527. package/schematics/migrations/tag-slots/README.md +41 -0
  528. package/schematics/migrations/tag-slots/index.js +190 -0
  529. package/schematics/migrations/tag-slots/schema.json +20 -0
  530. package/schematics/migrations/tags-signals/README.md +85 -0
  531. package/schematics/migrations/tags-signals/data.js +103 -0
  532. package/schematics/migrations/tags-signals/index.js +673 -0
  533. package/schematics/migrations/tags-signals/schema.json +20 -0
  534. package/schematics/migrations/textarea-signals/README.md +72 -0
  535. package/schematics/migrations/textarea-signals/data.js +121 -0
  536. package/schematics/migrations/textarea-signals/index.js +379 -0
  537. package/schematics/migrations/textarea-signals/schema.json +20 -0
  538. package/schematics/migrations/time-range-title-for/README.md +164 -0
  539. package/schematics/migrations/time-range-title-for/data.js +139 -0
  540. package/schematics/migrations/time-range-title-for/index.js +163 -0
  541. package/schematics/migrations/time-range-title-for/schema.json +20 -0
  542. package/schematics/migrations/timepicker-signals/README.md +78 -0
  543. package/schematics/migrations/timepicker-signals/data.js +82 -0
  544. package/schematics/migrations/timepicker-signals/index.js +709 -0
  545. package/schematics/migrations/timepicker-signals/schema.json +20 -0
  546. package/schematics/migrations/timezone-grouping-utils/README.md +73 -0
  547. package/schematics/migrations/timezone-grouping-utils/data.js +101 -0
  548. package/schematics/migrations/timezone-grouping-utils/index.js +64 -0
  549. package/schematics/migrations/timezone-grouping-utils/schema.json +15 -0
  550. package/schematics/migrations/title-encapsulation/README.md +49 -0
  551. package/schematics/migrations/title-encapsulation/data.js +69 -0
  552. package/schematics/migrations/title-encapsulation/index.js +57 -0
  553. package/schematics/migrations/title-encapsulation/schema.json +15 -0
  554. package/schematics/migrations/toast-stack-and-defaults/README.md +102 -0
  555. package/schematics/migrations/toast-stack-and-defaults/data.js +79 -0
  556. package/schematics/migrations/toast-stack-and-defaults/index.js +53 -0
  557. package/schematics/migrations/toast-stack-and-defaults/schema.json +15 -0
  558. package/schematics/migrations/tooltip-pointer-events-and-types/README.md +53 -0
  559. package/schematics/migrations/tooltip-pointer-events-and-types/data.js +89 -0
  560. package/schematics/migrations/tooltip-pointer-events-and-types/index.js +60 -0
  561. package/schematics/migrations/tooltip-pointer-events-and-types/schema.json +15 -0
  562. package/schematics/migrations/top-bar-container-selectors/README.md +111 -0
  563. package/schematics/migrations/top-bar-container-selectors/data.js +56 -0
  564. package/schematics/migrations/top-bar-container-selectors/index.js +84 -0
  565. package/schematics/migrations/top-bar-container-selectors/schema.json +20 -0
  566. package/schematics/migrations/tree-select-signals/README.md +61 -0
  567. package/schematics/migrations/tree-select-signals/data.js +106 -0
  568. package/schematics/migrations/tree-select-signals/index.js +58 -0
  569. package/schematics/migrations/tree-select-signals/schema.json +15 -0
  570. package/schematics/migrations/tree-signals/README.md +82 -0
  571. package/schematics/migrations/tree-signals/data.js +123 -0
  572. package/schematics/migrations/tree-signals/index.js +54 -0
  573. package/schematics/migrations/tree-signals/schema.json +15 -0
  574. package/schematics/migrations/tree-state-saving-default/README.md +66 -0
  575. package/schematics/migrations/tree-state-saving-default/data.js +78 -0
  576. package/schematics/migrations/tree-state-saving-default/index.js +60 -0
  577. package/schematics/migrations/tree-state-saving-default/schema.json +15 -0
  578. package/schematics/migrations/username-pipe-injection/README.md +59 -0
  579. package/schematics/migrations/username-pipe-injection/data.js +78 -0
  580. package/schematics/migrations/username-pipe-injection/index.js +58 -0
  581. package/schematics/migrations/username-pipe-injection/schema.json +15 -0
  582. package/schematics/migrations/v20-upgrade/README.md +36 -16
  583. package/schematics/migrations/v20-upgrade/data.js +124 -77
  584. package/schematics/migrations/v20-upgrade/index.js +6 -213
  585. package/schematics/migrations/v21-upgrade/README.md +271 -0
  586. package/schematics/migrations/v21-upgrade/data.js +1371 -0
  587. package/schematics/migrations/v21-upgrade/index.js +94 -0
  588. package/schematics/migrations/v21-upgrade/schema.json +20 -0
  589. package/schematics/migrations/zoneless-change-detection/README.md +30 -0
  590. package/schematics/migrations/zoneless-change-detection/data.js +29 -0
  591. package/schematics/migrations/zoneless-change-detection/index.js +20 -0
  592. package/schematics/migrations/zoneless-change-detection/schema.json +15 -0
  593. package/schematics/migrations.json +392 -2
  594. package/schematics/ng-add/index.js +515 -14
  595. package/schematics/ng-add/schema.json +15 -0
  596. package/schematics/utils/deprecated-path-migration.js +61 -0
  597. package/schematics/utils/package-config.js +9 -105
  598. package/scrollbar/{_scrollbar-component-theme.scss → deprecated/_scrollbar-component-theme.scss} +1 -1
  599. package/scrollbar/{scrollbar.component.scss → deprecated/scrollbar.component.scss} +1 -1
  600. package/scrollbar/native-scrollbar.scss +68 -0
  601. package/scrollbar/scrollbar-tokens.scss +13 -22
  602. package/scrollbar/scrollbar-track.scss +94 -0
  603. package/scrollbar/scrollbar-viewport.scss +33 -0
  604. package/scrollbar/scrollbar.scss +24 -0
  605. package/search-expandable/search-expandable-tokens.scss +4 -0
  606. package/search-expandable/search-expandable.scss +4 -2
  607. package/select/_select-theme.scss +3 -16
  608. package/select/select.scss +0 -6
  609. package/sidebar/sidebar.scss +20 -0
  610. package/sidepanel/_sidepanel-theme.scss +1 -1
  611. package/sidepanel/sidepanel-tokens.scss +7 -1
  612. package/sidepanel/sidepanel.scss +41 -5
  613. package/skeleton/skeleton-presets.scss +350 -0
  614. package/skeleton/skeleton-tokens.scss +127 -0
  615. package/skeleton/skeleton.scss +53 -45
  616. package/split-button/_split-button-theme.scss +4 -4
  617. package/split-button/split-button.scss +2 -6
  618. package/splitter/{_splitter-theme.scss → deprecated/_splitter-theme.scss} +1 -1
  619. package/splitter/deprecated/splitter.scss +51 -0
  620. package/splitter/splitter-tokens.scss +19 -0
  621. package/splitter/splitter.scss +148 -28
  622. package/table/_table-theme.scss +13 -12
  623. package/table/table-tokens.scss +8 -0
  624. package/table/table.scss +47 -22
  625. package/tabs/_tabs-common.scss +14 -14
  626. package/tabs/_tabs-theme.scss +4 -5
  627. package/tabs/tab-body.scss +49 -1
  628. package/tabs/tab-header.scss +2 -1
  629. package/tags/tag-list.scss +4 -0
  630. package/tags/tag.scss +19 -1
  631. package/time-range/time-range.scss +9 -0
  632. package/timezone/timezone-option.component.scss +4 -7
  633. package/timezone/timezone-select.component.scss +3 -0
  634. package/toast/_toast-theme.scss +1 -4
  635. package/toast/toast-container.component.scss +19 -13
  636. package/toast/toast-tokens.scss +12 -6
  637. package/toast/toast.component.scss +42 -19
  638. package/toggle/_toggle-theme.scss +4 -10
  639. package/toggle/toggle.scss +67 -26
  640. package/tooltip/_tooltip-theme.scss +7 -1
  641. package/tooltip/tooltip-tokens.scss +1 -2
  642. package/tooltip/tooltip.scss +55 -9
  643. package/top-bar/top-bar-tokens.scss +13 -2
  644. package/top-bar/top-bar.scss +24 -19
  645. package/tree/_tree-theme.scss +0 -1
  646. package/tree/toggle.scss +5 -9
  647. package/tree/tree-option.scss +2 -4
  648. package/tree/tree-tokens.scss +2 -1
  649. package/tree/tree.scss +3 -5
  650. package/tree-select/_tree-select-theme.scss +4 -15
  651. package/tree-select/tree-select-tokens.scss +16 -0
  652. package/tree-select/tree-select.scss +0 -6
  653. package/{accordion/index.d.ts → types/koobiq-components-accordion.d.ts} +102 -84
  654. package/{actions-panel/index.d.ts → types/koobiq-components-actions-panel.d.ts} +44 -59
  655. package/{alert/index.d.ts → types/koobiq-components-alert.d.ts} +8 -3
  656. package/types/koobiq-components-app-switcher.d.ts +406 -0
  657. package/types/koobiq-components-autocomplete.d.ts +443 -0
  658. package/{badge/index.d.ts → types/koobiq-components-badge.d.ts} +25 -20
  659. package/{breadcrumbs/index.d.ts → types/koobiq-components-breadcrumbs.d.ts} +97 -46
  660. package/types/koobiq-components-button-toggle.d.ts +340 -0
  661. package/types/koobiq-components-button.d.ts +296 -0
  662. package/types/koobiq-components-checkbox.d.ts +172 -0
  663. package/types/koobiq-components-clamped-text.d.ts +184 -0
  664. package/{code-block/index.d.ts → types/koobiq-components-code-block.d.ts} +114 -79
  665. package/{content-panel/index.d.ts → types/koobiq-components-content-panel.d.ts} +81 -25
  666. package/{core/index.d.ts → types/koobiq-components-core.d.ts} +2827 -865
  667. package/{datepicker/index.d.ts → types/koobiq-components-datepicker.d.ts} +161 -116
  668. package/types/koobiq-components-divider.d.ts +43 -0
  669. package/types/koobiq-components-dl.d.ts +235 -0
  670. package/{dropdown/index.d.ts → types/koobiq-components-dropdown.d.ts} +245 -239
  671. package/types/koobiq-components-ellipsis-center.d.ts +85 -0
  672. package/types/koobiq-components-empty-state.d.ts +106 -0
  673. package/{file-upload/index.d.ts → types/koobiq-components-file-upload.d.ts} +214 -107
  674. package/{filter-bar/index.d.ts → types/koobiq-components-filter-bar.d.ts} +410 -495
  675. package/types/koobiq-components-flag.d.ts +68 -0
  676. package/{form-field/index.d.ts → types/koobiq-components-form-field.d.ts} +167 -191
  677. package/types/koobiq-components-icon.d.ts +333 -0
  678. package/{inline-edit/index.d.ts → types/koobiq-components-inline-edit.d.ts} +109 -46
  679. package/types/koobiq-components-input.d.ts +477 -0
  680. package/types/koobiq-components-link-deprecated.d.ts +101 -0
  681. package/types/koobiq-components-link.d.ts +176 -0
  682. package/{list/index.d.ts → types/koobiq-components-list.d.ts} +162 -99
  683. package/types/koobiq-components-loader-overlay.d.ts +101 -0
  684. package/{markdown/index.d.ts → types/koobiq-components-markdown.d.ts} +16 -24
  685. package/types/koobiq-components-modal.d.ts +666 -0
  686. package/types/koobiq-components-navbar.d.ts +569 -0
  687. package/types/koobiq-components-notification-center.d.ts +500 -0
  688. package/{overflow-items/index.d.ts → types/koobiq-components-overflow-items.d.ts} +8 -22
  689. package/types/koobiq-components-popover.d.ts +468 -0
  690. package/types/koobiq-components-progress-bar.d.ts +67 -0
  691. package/{progress-spinner/index.d.ts → types/koobiq-components-progress-spinner.d.ts} +33 -10
  692. package/types/koobiq-components-radio.d.ts +294 -0
  693. package/{resizer/index.d.ts → types/koobiq-components-resizer.d.ts} +37 -2
  694. package/{scrollbar/index.d.ts → types/koobiq-components-scrollbar-deprecated.d.ts} +18 -1
  695. package/types/koobiq-components-scrollbar.d.ts +154 -0
  696. package/types/koobiq-components-search-expandable.d.ts +164 -0
  697. package/{select/index.d.ts → types/koobiq-components-select.d.ts} +360 -167
  698. package/types/koobiq-components-sidebar.d.ts +152 -0
  699. package/types/koobiq-components-sidepanel.d.ts +436 -0
  700. package/types/koobiq-components-skeleton.d.ts +234 -0
  701. package/types/koobiq-components-split-button.d.ts +65 -0
  702. package/{splitter/index.d.ts → types/koobiq-components-splitter-deprecated.d.ts} +44 -1
  703. package/types/koobiq-components-splitter.d.ts +406 -0
  704. package/types/koobiq-components-table.d.ts +44 -0
  705. package/types/koobiq-components-tabs.d.ts +888 -0
  706. package/{tags/index.d.ts → types/koobiq-components-tags.d.ts} +249 -133
  707. package/types/koobiq-components-textarea.d.ts +178 -0
  708. package/{time-range/index.d.ts → types/koobiq-components-time-range.d.ts} +135 -62
  709. package/types/koobiq-components-timepicker.d.ts +223 -0
  710. package/types/koobiq-components-timezone.d.ts +266 -0
  711. package/types/koobiq-components-title.d.ts +184 -0
  712. package/types/koobiq-components-toast.d.ts +289 -0
  713. package/types/koobiq-components-toggle.d.ts +121 -0
  714. package/types/koobiq-components-tooltip.d.ts +610 -0
  715. package/types/koobiq-components-top-bar.d.ts +61 -0
  716. package/types/koobiq-components-tree-select.d.ts +667 -0
  717. package/types/koobiq-components-tree.d.ts +1290 -0
  718. package/types/koobiq-components-username.d.ts +340 -0
  719. package/username/_username-theme.scss +35 -0
  720. package/username/username.scss +10 -34
  721. package/app-switcher/index.d.ts +0 -276
  722. package/autocomplete/index.d.ts +0 -286
  723. package/button/index.d.ts +0 -153
  724. package/button-toggle/index.d.ts +0 -162
  725. package/checkbox/index.d.ts +0 -163
  726. package/clamped-text/index.d.ts +0 -146
  727. package/core/styles/_tokens.scss +0 -7
  728. package/core/styles/common/_clearfix.scss +0 -13
  729. package/core/styles/common/_popup.scss +0 -6
  730. package/core/styles/functions/_index.scss +0 -3
  731. package/core/styles/functions/_number.scss +0 -60
  732. package/core/styles/functions/_string.scss +0 -18
  733. package/core/styles/theming/scrollbar-tokens.scss +0 -25
  734. package/core/styles/typography/_typography-utils.scss +0 -84
  735. package/divider/index.d.ts +0 -20
  736. package/dl/index.d.ts +0 -45
  737. package/ellipsis-center/index.d.ts +0 -71
  738. package/empty-state/index.d.ts +0 -45
  739. package/flag/index.d.ts +0 -44
  740. package/icon/index.d.ts +0 -200
  741. package/input/index.d.ts +0 -354
  742. package/link/index.d.ts +0 -56
  743. package/loader-overlay/index.d.ts +0 -57
  744. package/modal/index.d.ts +0 -339
  745. package/navbar/index.d.ts +0 -372
  746. package/notification-center/index.d.ts +0 -323
  747. package/popover/index.d.ts +0 -182
  748. package/prebuilt-themes/dark-theme.css +0 -1
  749. package/prebuilt-themes/light-theme.css +0 -1
  750. package/progress-bar/index.d.ts +0 -31
  751. package/radio/index.d.ts +0 -203
  752. package/search-expandable/index.d.ts +0 -101
  753. package/sidebar/index.d.ts +0 -94
  754. package/sidepanel/index.d.ts +0 -272
  755. package/skeleton/index.d.ts +0 -26
  756. package/split-button/index.d.ts +0 -46
  757. package/table/index.d.ts +0 -25
  758. package/tabs/index.d.ts +0 -677
  759. package/textarea/index.d.ts +0 -138
  760. package/timepicker/index.d.ts +0 -197
  761. package/timezone/index.d.ts +0 -125
  762. package/title/index.d.ts +0 -139
  763. package/toast/index.d.ts +0 -178
  764. package/toggle/index.d.ts +0 -104
  765. package/tooltip/index.d.ts +0 -335
  766. package/top-bar/index.d.ts +0 -33
  767. package/tree/index.d.ts +0 -802
  768. package/tree-select/index.d.ts +0 -475
  769. package/username/index.d.ts +0 -194
  770. /package/{dynamic-translation/index.d.ts → types/koobiq-components-dynamic-translation.d.ts} +0 -0
  771. /package/{index.d.ts → types/koobiq-components.d.ts} +0 -0
@@ -3,36 +3,537 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var schematics = require('@angular-devkit/schematics');
6
+ var tasks = require('@angular-devkit/schematics/tasks');
6
7
  var utility = require('@schematics/angular/utility');
7
- var utils_packageConfig = require('../utils/package-config.js');
8
- require('../utils/messages.js');
8
+ var app_config = require('@schematics/angular/utility/standalone/app_config');
9
+ var util = require('@schematics/angular/utility/standalone/util');
10
+ var rxjs = require('rxjs');
11
+ var ts = require('@schematics/angular/third_party/github.com/Microsoft/TypeScript/lib/typescript');
12
+ var utils_messages = require('../utils/messages.js');
13
+ var utils_packageConfig = require('../package-config-BhU2TfC8.js');
14
+
15
+ const KNOWN_THEME_CLASSES = ['kbq-app-background', 'kbq-light', 'kbq-dark'];
16
+ const COMMENT_START = '<!--';
17
+ const COMMENT_END = '-->';
18
+ /**
19
+ * Index of the `<` starting a real `<body` tag — one that isn't inside an HTML comment (e.g. a
20
+ * pasted Google Tag Manager snippet mentioning `<body>` in its install instructions) — or `-1`.
21
+ * Walks the string once rather than matching `<body` with a regex, so a comment can't be mistaken
22
+ * for the element.
23
+ */
24
+ function findBodyTagStart(html) {
25
+ const lower = html.toLowerCase();
26
+ let i = 0;
27
+ while (i < html.length) {
28
+ if (lower.startsWith(COMMENT_START, i)) {
29
+ const end = lower.indexOf(COMMENT_END, i + COMMENT_START.length);
30
+ i = end === -1 ? html.length : end + COMMENT_END.length;
31
+ continue;
32
+ }
33
+ if (lower.startsWith('<body', i) && (html[i + 5] === undefined || /[\s/>]/.test(html[i + 5]))) {
34
+ return i;
35
+ }
36
+ i++;
37
+ }
38
+ return -1;
39
+ }
40
+ /**
41
+ * Index of the `>` that closes the tag starting at `tagStart`, tracking open quotes so a `>`
42
+ * inside a quoted attribute value (`<body data-x="a>b">`) doesn't end the tag early. `-1` if the
43
+ * tag is never closed.
44
+ */
45
+ function findTagEnd(html, tagStart) {
46
+ let quote = null;
47
+ for (let i = tagStart + 1; i < html.length; i++) {
48
+ const char = html[i];
49
+ if (quote) {
50
+ if (char === quote)
51
+ quote = null;
52
+ }
53
+ else if (char === '"' || char === "'") {
54
+ quote = char;
55
+ }
56
+ else if (char === '>') {
57
+ return i;
58
+ }
59
+ }
60
+ return -1;
61
+ }
62
+ /**
63
+ * Parses the attributes of the tag whose content spans `[start, end)` (between `<body` and the
64
+ * closing `>`), handling double-quoted, single-quoted and unquoted values — so a single-quoted
65
+ * `class` attribute is found exactly like a double-quoted one, instead of only the latter matching.
66
+ */
67
+ function parseAttrs(html, start, end) {
68
+ const attrs = [];
69
+ const isSpace = (char) => /\s/.test(char);
70
+ let i = start;
71
+ while (i < end) {
72
+ while (i < end && (isSpace(html[i]) || html[i] === '/'))
73
+ i++;
74
+ if (i >= end)
75
+ break;
76
+ const nameStart = i;
77
+ while (i < end && !isSpace(html[i]) && html[i] !== '=' && html[i] !== '/' && html[i] !== '>')
78
+ i++;
79
+ if (i === nameStart) {
80
+ i++;
81
+ continue;
82
+ }
83
+ const name = html.slice(nameStart, i);
84
+ while (i < end && isSpace(html[i]))
85
+ i++;
86
+ let value = '';
87
+ let attrEnd = i;
88
+ if (html[i] === '=') {
89
+ i++;
90
+ while (i < end && isSpace(html[i]))
91
+ i++;
92
+ const quote = html[i] === '"' || html[i] === "'" ? html[i] : null;
93
+ if (quote) {
94
+ i++;
95
+ const valueStart = i;
96
+ while (i < end && html[i] !== quote)
97
+ i++;
98
+ value = html.slice(valueStart, i);
99
+ if (i < end)
100
+ i++;
101
+ }
102
+ else {
103
+ const valueStart = i;
104
+ while (i < end && !isSpace(html[i]) && html[i] !== '>')
105
+ i++;
106
+ value = html.slice(valueStart, i);
107
+ }
108
+ attrEnd = i;
109
+ }
110
+ attrs.push({ name, start: nameStart, end: attrEnd, value });
111
+ }
112
+ return attrs;
113
+ }
114
+ /**
115
+ * Sets the Koobiq theme classes on the app's `<body>` tag.
116
+ *
117
+ * `'light'`/`'dark'` get the full `kbq-app-background kbq-{theme}` pair from the theming guide —
118
+ * `kbq-app-background` paints the page's own background/text color, `kbq-{theme}` picks the theme.
119
+ * `'auto'` only gets `kbq-app-background`: `KbqThemeService` applies `kbq-light`/`kbq-dark` to
120
+ * `document.body` itself at runtime, so a static class here would just go stale before the app
121
+ * bootstraps, or fight the service once it does.
122
+ *
123
+ * Re-running is idempotent: any class this function manages is stripped from the existing `class`
124
+ * value first, so switching `theme` between runs doesn't leave a stale `kbq-light` sitting next to
125
+ * a newly added `kbq-dark`. Any other existing classes, and their relative order, are preserved.
126
+ *
127
+ * Locates the `<body>` tag and its `class` attribute with a small hand-written scanner rather than
128
+ * a `<body>`/`class` regex-and-`String.replace`, so quoting style (`'`, `"`, or none), a `>` inside
129
+ * an unrelated attribute's value, an attribute merely named `data-class`, a `<body` mentioned inside
130
+ * a comment, and `$`-containing values already on the tag can't corrupt the result. Deliberately
131
+ * doesn't pull in a full HTML parser (e.g. `parse5`) for this: it's the only thing in this package
132
+ * that would need one, and this package is distributed as a dependency of `@koobiq/components`,
133
+ * where an extra runtime `dependencies` entry isn't worth it for one small, well-tested edit.
134
+ */
135
+ function setKoobiqThemeBodyClass(html, theme) {
136
+ const tagStart = findBodyTagStart(html);
137
+ if (tagStart === -1)
138
+ return { content: html, changed: false };
139
+ const tagEnd = findTagEnd(html, tagStart);
140
+ if (tagEnd === -1)
141
+ return { content: html, changed: false };
142
+ const attrs = parseAttrs(html, tagStart + '<body'.length, tagEnd);
143
+ const classAttr = attrs.find((attr) => attr.name.toLowerCase() === 'class');
144
+ const existingClasses = classAttr ? classAttr.value.split(/\s+/).filter(Boolean) : [];
145
+ const keptClasses = existingClasses.filter((cls) => !KNOWN_THEME_CLASSES.includes(cls));
146
+ const newClasses = theme === 'auto'
147
+ ? [...keptClasses, 'kbq-app-background']
148
+ : [...keptClasses, 'kbq-app-background', `kbq-${theme}`];
149
+ const newClassValue = newClasses.join(' ');
150
+ if (classAttr) {
151
+ if (classAttr.value === newClassValue)
152
+ return { content: html, changed: false };
153
+ const updated = html.slice(0, classAttr.start) + `class="${newClassValue}"` + html.slice(classAttr.end);
154
+ return { content: updated, changed: true };
155
+ }
156
+ const updated = html.slice(0, tagEnd) + ` class="${newClassValue}"` + html.slice(tagEnd);
157
+ return { content: updated, changed: true };
158
+ }
159
+
160
+ /**
161
+ * Whether `project` is an application (as opposed to a library) — the same check
162
+ * `@schematics/angular` itself uses (see `utility/workspace.js`'s `createDefaultPath`), rather than
163
+ * an allowlist of builder names. A project can sit on any builder — a custom webpack wrapper, an Nx
164
+ * executor, one this schematic has never heard of — and still be a perfectly good application; only
165
+ * `projectType` reliably says so.
166
+ */
167
+ function isApplicationProject(project) {
168
+ return project.extensions['projectType'] === 'application';
169
+ }
170
+ const KOOBIQ_STATIC_STYLE_ENTRIES = [
171
+ 'node_modules/@koobiq/icons/fonts/kbq-icons.css',
172
+ 'node_modules/@koobiq/design-tokens/web/css-tokens.css',
173
+ 'node_modules/@koobiq/components/prebuilt-themes/theme.css'
174
+ ];
175
+ const THEME_TOKENS_PATTERN = /^node_modules\/@koobiq\/design-tokens\/web\/css-tokens-(light|dark)\.css$/;
176
+ /**
177
+ * The style entries documented in the installation guide, in the order they must be loaded.
178
+ * `'auto'` includes both token files, since `KbqThemeService` switches between them at runtime —
179
+ * a static `'light'`/`'dark'` choice only needs its own.
180
+ *
181
+ * `@koobiq/design-tokens` ships code-block, scrollbar and skeleton's tokens as opt-in
182
+ * `component-tokens*.css` files, but `prebuilt-themes/theme.css` already carries their values,
183
+ * baked in at `@koobiq/components`' own build time — nothing extra to wire here for them.
184
+ */
185
+ function getKoobiqStyleEntries(theme) {
186
+ const [icons, tokens, prebuiltTheme] = KOOBIQ_STATIC_STYLE_ENTRIES;
187
+ const themeTokens = theme === 'auto' ? [
188
+ 'node_modules/@koobiq/design-tokens/web/css-tokens-light.css',
189
+ 'node_modules/@koobiq/design-tokens/web/css-tokens-dark.css'
190
+ ] : [`node_modules/@koobiq/design-tokens/web/css-tokens-${theme}.css`];
191
+ return [icons, tokens, ...themeTokens, prebuiltTheme];
192
+ }
193
+ /**
194
+ * Prepends the Koobiq style entries ahead of whatever is already in `existingStyles`, matching the
195
+ * order documented in installation.md, where the app's own stylesheet comes last. Re-running with
196
+ * the same theme is a no-op; re-running with a different theme swaps the `css-tokens-*.css`
197
+ * entries instead of accumulating duplicates. Non-string entries (style-budget objects) and any
198
+ * unrelated entries are preserved, untouched, in their original order.
199
+ */
200
+ function mergeKoobiqStyles(existingStyles, theme) {
201
+ const desired = getKoobiqStyleEntries(theme);
202
+ const rest = existingStyles.filter((entry) => {
203
+ if (typeof entry !== 'string')
204
+ return true;
205
+ return (!desired.includes(entry) &&
206
+ !KOOBIQ_STATIC_STYLE_ENTRIES.includes(entry) &&
207
+ !THEME_TOKENS_PATTERN.test(entry));
208
+ });
209
+ return [...desired, ...rest];
210
+ }
211
+ /**
212
+ * Resolves the workspace-root-relative path of a project's index.html, mirroring the
213
+ * `@angular/build:application` builder's own default (`<sourceRoot>/index.html`) when the
214
+ * `index` option isn't set explicitly. `buildTarget` is `undefined` for a project with no `build`
215
+ * target at all, in which case the default is the only option available.
216
+ */
217
+ function getIndexHtmlPath(project, buildTarget) {
218
+ const indexOption = buildTarget?.options?.index;
219
+ if (typeof indexOption === 'string') {
220
+ return indexOption;
221
+ }
222
+ if (indexOption && typeof indexOption === 'object' && !Array.isArray(indexOption)) {
223
+ const input = indexOption.input;
224
+ if (typeof input === 'string') {
225
+ return input;
226
+ }
227
+ }
228
+ const sourceRoot = project.sourceRoot ?? `${project.root}/src`;
229
+ return `${sourceRoot}/index.html`;
230
+ }
231
+ /**
232
+ * Whether a `build` target's `server`/`ssr` options indicate the project renders on the server —
233
+ * `KbqThemeCookieStore` matters there, where `KbqThemeLocalStorageStore`'s default doesn't reach
234
+ * the server render.
235
+ */
236
+ function isSsrBuildTarget(buildTarget) {
237
+ const { server, ssr } = buildTarget.options ?? {};
238
+ return Boolean((typeof server === 'string' && server) || ssr === true || (ssr && typeof ssr === 'object'));
239
+ }
240
+ /**
241
+ * Mutates `workspace` in place: for every application project (optionally scoped to
242
+ * `projectName`), merges the Koobiq style entries for `theme` into its `build` target's `styles`
243
+ * array, when it has one. Returns per-project wiring info the caller uses to edit index.html and
244
+ * the project's bootstrap file afterward — for every application project, regardless of whether it
245
+ * had a `build` target to wire styles into, since the bootstrap file (and thus the theme providers)
246
+ * is resolved independently of it.
247
+ *
248
+ * Only the target literally named `build` is touched — not `test` (Karma) or `serve` — keeping the
249
+ * change's blast radius minimal.
250
+ */
251
+ function applyKoobiqWorkspaceStyles(workspace, theme, projectName) {
252
+ const wired = [];
253
+ for (const [name, project] of workspace.projects) {
254
+ if (projectName && name !== projectName)
255
+ continue;
256
+ if (!isApplicationProject(project))
257
+ continue;
258
+ const buildTarget = project.targets.get('build');
259
+ let stylesWired = false;
260
+ if (buildTarget) {
261
+ const options = buildTarget.options ?? (buildTarget.options = {});
262
+ const existingStyles = Array.isArray(options.styles) ? options.styles : [];
263
+ options.styles = mergeKoobiqStyles(existingStyles, theme);
264
+ stylesWired = true;
265
+ }
266
+ wired.push({
267
+ projectName: name,
268
+ projectRoot: project.root,
269
+ indexHtmlPath: getIndexHtmlPath(project, buildTarget),
270
+ isSsr: buildTarget ? isSsrBuildTarget(buildTarget) : false,
271
+ stylesWired
272
+ });
273
+ }
274
+ return wired;
275
+ }
9
276
 
10
277
  function noProject(project) {
11
278
  return `Unable to find project '${project}' in the workspace`;
12
279
  }
280
+ function workspaceReadFailed() {
281
+ return "Could not read the workspace configuration ('angular.json').";
282
+ }
283
+ function noWiredProjects() {
284
+ return [
285
+ 'No application project was found — styles, the theme class and the root providers were',
286
+ 'not configured automatically. Follow the installation guide to add them by hand:',
287
+ 'https://koobiq.io/en/main/installation'
288
+ ];
289
+ }
290
+ function noStylesTarget(projectName) {
291
+ return [
292
+ `Project '${projectName}' has no 'build' target — its styles and index.html theme class`,
293
+ 'were not configured automatically. Follow the installation guide to add them by hand:',
294
+ 'https://koobiq.io/en/main/installation'
295
+ ];
296
+ }
297
+ function themeProviderFallback(projectName, theme) {
298
+ return [
299
+ `Could not automatically register 'kbqThemeProvider({ mode: '${theme}' })' for project '${projectName}'.`,
300
+ "Add it to that project's providers yourself — see the theming guide:",
301
+ 'https://koobiq.io/en/main/theming'
302
+ ];
303
+ }
304
+ function themeServiceFallback(projectName) {
305
+ return [
306
+ `Could not automatically start 'KbqThemeService' for project '${projectName}'.`,
307
+ 'Inject it once yourself (e.g. `inject(KbqThemeService)` in a root provider or component) —',
308
+ "otherwise the 'auto' theme is configured but never applied. See the theming guide:",
309
+ 'https://koobiq.io/en/main/theming'
310
+ ];
311
+ }
312
+ function ssrSuggestion() {
313
+ return [
314
+ 'This project renders on the server — the default `KbqThemeLocalStorageStore` only',
315
+ "persists in the browser, so the server's first render can briefly use the wrong",
316
+ 'theme. Consider providing `KbqThemeCookieStore` through `KBQ_THEME_STORE` instead.',
317
+ 'See the theming guide: https://koobiq.io/en/main/theming'
318
+ ];
319
+ }
320
+ function fontsSuggestion() {
321
+ return [
322
+ 'Koobiq recommends the Inter and JetBrains Mono fonts.',
323
+ 'See https://koobiq.io/en/main/typography for installation options (Fontsource or Google Fonts CDN).'
324
+ ];
325
+ }
13
326
 
327
+ /**
328
+ * Resolves `ResolvedProviders` for `projectName`, or `null` when the project's bootstrap can't be
329
+ * statically analyzed (a non-standalone/custom bootstrap, a missing `build` target, a `providers`
330
+ * array that isn't a plain array literal, ...). `null` is also what tells the caller that
331
+ * `addRootProvider` is expected to fail the same way, and should be run through `safeRule` instead
332
+ * of directly.
333
+ */
334
+ async function resolveProviders(tree, projectName) {
335
+ try {
336
+ const mainFilePath = await util.getMainFilePath(tree, projectName);
337
+ const bootstrapCall = util.findBootstrapApplicationCall(tree, mainFilePath);
338
+ const appConfig = app_config.findAppConfig(bootstrapCall, tree, mainFilePath);
339
+ if (!appConfig)
340
+ return null;
341
+ const literal = util.findProvidersLiteral(appConfig.node);
342
+ if (!literal)
343
+ return null;
344
+ return { filePath: appConfig.filePath, sourceFile: appConfig.node.getSourceFile(), literal };
345
+ }
346
+ catch {
347
+ return null;
348
+ }
349
+ }
350
+ /** The callee name of a `providers` array element, e.g. `'kbqThemeProvider'` for `kbqThemeProvider({ ... })`. */
351
+ function calleeName(node) {
352
+ if (ts.isIdentifier(node))
353
+ return node.text;
354
+ if (ts.isPropertyAccessExpression(node))
355
+ return node.name.text;
356
+ return null;
357
+ }
358
+ function findProviderCall(providers, name) {
359
+ return providers.literal.elements.find((element) => ts.isCallExpression(element) && calleeName(element.expression) === name);
360
+ }
361
+ /**
362
+ * Whether `providers` already has a `provideAppInitializer(...)` call that mentions
363
+ * `KbqThemeService` — narrowed to text inside that one call, not the whole file, so an unrelated
364
+ * initializer elsewhere in the same providers array doesn't get mistaken for ours, and a mention of
365
+ * `KbqThemeService` in a comment or spec elsewhere in the project never does.
366
+ */
367
+ function hasThemeServiceInitializer(providers) {
368
+ return providers.literal.elements.some((element) => ts.isCallExpression(element) &&
369
+ calleeName(element.expression) === 'provideAppInitializer' &&
370
+ element.getText(providers.sourceFile).includes('KbqThemeService'));
371
+ }
372
+ /**
373
+ * The `kbqThemeProvider({ ... })` call this schematic generates for `theme`. `'light'`/`'dark'`
374
+ * additionally pin `themes` to just that one entry — without it, `KBQ_THEME_CONFIG` keeps its
375
+ * default `themes: KBQ_DEFAULT_THEMES` (both registered), so a stale `localStorage` value from a
376
+ * previous session, or a call to `KbqThemeService.toggle()`, can switch the app to the theme whose
377
+ * token file was never added to `angular.json`, and every `--kbq-*` colour resolves to nothing.
378
+ */
379
+ function themeProviderCallText(theme) {
380
+ if (theme === 'auto')
381
+ return `kbqThemeProvider({ mode: 'auto' })`;
382
+ return `kbqThemeProvider({ mode: '${theme}', themes: [{ name: '${theme}', className: 'kbq-${theme}', colorScheme: '${theme}' }] })`;
383
+ }
384
+ /** Replaces the exact source range of `node` in `filePath` with `text`, leaving everything else untouched. */
385
+ function replaceNode(tree, providers, node, text) {
386
+ const content = tree.readText(providers.filePath);
387
+ const start = node.getStart(providers.sourceFile);
388
+ const end = node.getEnd();
389
+ tree.overwrite(providers.filePath, content.slice(0, start) + text + content.slice(end));
390
+ }
391
+ /**
392
+ * Runs `rule` against `tree` and swallows any error it throws, logging `fallbackMessage` instead.
393
+ * Only ever used for the case `resolveProviders` has already told us to expect: a bootstrap it
394
+ * couldn't statically analyze, where `addRootProvider` is expected to fail the same way. Any other,
395
+ * genuinely unexpected error is left to propagate instead of being silently turned into a warning.
396
+ */
397
+ function safeRule(rule, fallbackMessage) {
398
+ return async (tree, context) => {
399
+ try {
400
+ await rxjs.firstValueFrom(schematics.callRule(rule, tree, context));
401
+ }
402
+ catch {
403
+ utils_messages.logMessage(context.logger, fallbackMessage);
404
+ }
405
+ };
406
+ }
407
+ /** `addRootProvider` rule inserting the `kbqThemeProvider({ ... })` call built by `themeProviderCallText`. */
408
+ function themeProviderRule(projectName, theme) {
409
+ return utility.addRootProvider(projectName, ({ code, external }) => {
410
+ const kbqThemeProvider = external('kbqThemeProvider', '@koobiq/components/core');
411
+ return theme === 'auto'
412
+ ? code `${kbqThemeProvider}({ mode: 'auto' })`
413
+ : code `${kbqThemeProvider}({ mode: '${theme}', themes: [{ name: '${theme}', className: 'kbq-${theme}', colorScheme: '${theme}' }] })`;
414
+ });
415
+ }
416
+ /**
417
+ * `addRootProvider` rule forcing the first injection of `KbqThemeService` so the `'auto'` theme's
418
+ * OS-color-scheme listener actually starts. Guarded by `isPlatformBrowser`: an SSR project runs
419
+ * this same initializer on the server too (via `app.config.server.ts`'s `mergeApplicationConfig`),
420
+ * and `KbqThemeService` constructs `window.matchMedia` unconditionally in a field initializer —
421
+ * without the guard, injecting it eagerly here turns a latent, opt-in limitation into a guaranteed
422
+ * `ng build` failure for every SSR project.
423
+ */
424
+ function themeServiceInitializerRule(projectName) {
425
+ return utility.addRootProvider(projectName, ({ code, external }) => {
426
+ const provideAppInitializer = external('provideAppInitializer', '@angular/core');
427
+ const inject = external('inject', '@angular/core');
428
+ const isPlatformBrowser = external('isPlatformBrowser', '@angular/common');
429
+ const platformId = external('PLATFORM_ID', '@angular/core');
430
+ const kbqThemeService = external('KbqThemeService', '@koobiq/components/core');
431
+ return code `${provideAppInitializer}(() => { if (${isPlatformBrowser}(${inject}(${platformId}))) ${inject}(${kbqThemeService}); })`;
432
+ });
433
+ }
14
434
  /**
15
435
  * This is executed when `ng add @koobiq/components` is run.
16
- * It installs all dependencies in the 'package.json' and runs 'ng-add-setup-project' schematic.
436
+ * It adds all dependencies to the 'package.json' and schedules their installation, wires the
437
+ * library's styles and theme into `angular.json`/`index.html`, and registers the corresponding
438
+ * root providers.
17
439
  */
18
440
  function ngAdd(options) {
19
- return async (tree) => {
441
+ return async (tree, context) => {
20
442
  const { project } = options;
21
- if (project) {
22
- const workspace = await utility.readWorkspace(tree);
23
- const projectWorkspace = workspace.projects.get(project);
24
- if (!projectWorkspace) {
25
- throw new schematics.SchematicsException(noProject(project));
26
- }
443
+ const theme = options.theme ?? 'auto';
444
+ // `readWorkspace` only ever looks at `/angular.json`, even though the Angular CLI itself
445
+ // also accepts `/.angular.json` — a real, if rare, workspace shape. Reading it once, up
446
+ // front, both avoids that second read further down doing nothing useful with its result,
447
+ // and turns an unreadable workspace into the same clear, immediate failure as an unknown
448
+ // `--project`, before any dependency has been written to `package.json`.
449
+ let workspace;
450
+ try {
451
+ workspace = await utility.readWorkspace(tree);
452
+ }
453
+ catch {
454
+ throw new schematics.SchematicsException(workspaceReadFailed());
455
+ }
456
+ if (project && !workspace.projects.get(project)) {
457
+ throw new schematics.SchematicsException(noProject(project));
27
458
  }
28
459
  // Installing dependencies
29
- utils_packageConfig.addPackageToPackageJson(tree, '@angular/cdk', "^20.2.14");
30
- utils_packageConfig.addPackageToPackageJson(tree, '@koobiq/angular-luxon-adapter', "^20.4.2");
460
+ utils_packageConfig.addPackageToPackageJson(tree, '@angular/cdk', "^21.2.14");
461
+ utils_packageConfig.addPackageToPackageJson(tree, '@koobiq/angular-luxon-adapter', "^21.0.0");
462
+ // `@koobiq/angular-luxon-adapter` is a wrapper: it extends `LuxonDateAdapter` from the base
463
+ // package and re-exports its formats, both as value imports. That makes the base a mandatory
464
+ // peer of the wrapper, and installing a package without its mandatory peers only works on
465
+ // npm — Yarn leaves them out, so the application ends up unable to resolve the adapter.
466
+ utils_packageConfig.addPackageToPackageJson(tree, '@koobiq/luxon-date-adapter', "^3.5.1");
31
467
  utils_packageConfig.addPackageToPackageJson(tree, '@koobiq/date-formatter', "^3.5.1");
32
468
  utils_packageConfig.addPackageToPackageJson(tree, '@koobiq/date-adapter', "^3.5.1");
33
- utils_packageConfig.addPackageToPackageJson(tree, '@koobiq/icons', "^12.2.0");
34
- utils_packageConfig.addPackageToPackageJson(tree, '@koobiq/design-tokens', "^3.19.0");
469
+ utils_packageConfig.addPackageToPackageJson(tree, '@koobiq/icons', "^12.4.0");
470
+ utils_packageConfig.addPackageToPackageJson(tree, '@koobiq/design-tokens', "^4.1.0");
35
471
  utils_packageConfig.addPackageToPackageJson(tree, 'luxon', "^3.7.2");
472
+ // `overlayscrollbars` is a mandatory peer too: `@koobiq/components/scrollbar` imports it
473
+ // unconditionally, and content-panel, notification-center and app-switcher all pull that in.
474
+ utils_packageConfig.addPackageToPackageJson(tree, 'overlayscrollbars', "2.7.3");
475
+ // `addPackageToPackageJson` only edits the manifest — nothing in the Angular CLI installs
476
+ // what a schematic adds there, so without this task the application is left with
477
+ // dependencies it has not actually got, and the instruction below cannot be followed.
478
+ context.addTask(new tasks.NodePackageInstallTask());
479
+ // Wiring styles: prepend the documented style entries to every application project's
480
+ // `build` target (or just `project`, when given), then apply the theme class to each
481
+ // project's index.html.
482
+ const wiredProjects = applyKoobiqWorkspaceStyles(workspace, theme, project);
483
+ await utility.writeWorkspace(tree, workspace);
484
+ if (wiredProjects.length === 0) {
485
+ utils_messages.logMessage(context.logger, noWiredProjects());
486
+ }
487
+ const providerRules = [];
488
+ let sawSsrProject = false;
489
+ for (const wired of wiredProjects) {
490
+ if (tree.exists(wired.indexHtmlPath)) {
491
+ const { content, changed } = setKoobiqThemeBodyClass(tree.read(wired.indexHtmlPath).toString('utf-8'), theme);
492
+ if (changed)
493
+ tree.overwrite(wired.indexHtmlPath, content);
494
+ }
495
+ if (!wired.stylesWired) {
496
+ utils_messages.logMessage(context.logger, noStylesTarget(wired.projectName));
497
+ }
498
+ if (wired.isSsr)
499
+ sawSsrProject = true;
500
+ const resolved = await resolveProviders(tree, wired.projectName);
501
+ if (resolved) {
502
+ const existingThemeCall = findProviderCall(resolved, 'kbqThemeProvider');
503
+ const newThemeCallText = themeProviderCallText(theme);
504
+ if (existingThemeCall) {
505
+ if (existingThemeCall.getText(resolved.sourceFile) !== newThemeCallText) {
506
+ replaceNode(tree, resolved, existingThemeCall, newThemeCallText);
507
+ }
508
+ }
509
+ else {
510
+ providerRules.push(themeProviderRule(wired.projectName, theme));
511
+ }
512
+ // `kbqThemeProvider({ mode: 'auto' })` only configures `KbqThemeService` — the
513
+ // service is `providedIn: 'root'` and nothing in the library injects it eagerly, so
514
+ // without an initializer forcing that first injection, the OS color scheme is never
515
+ // actually applied until something else (e.g. a theme-toggle button) happens to
516
+ // inject it.
517
+ if (theme === 'auto' && !hasThemeServiceInitializer(resolved)) {
518
+ providerRules.push(themeServiceInitializerRule(wired.projectName));
519
+ }
520
+ }
521
+ else {
522
+ // The bootstrap couldn't be statically analyzed (a non-standalone/custom
523
+ // bootstrap, a missing `build` target, ...) — `addRootProvider` is expected to fail
524
+ // for the same reason, so route it through `safeRule` and tell the user to wire the
525
+ // provider up by hand instead.
526
+ providerRules.push(safeRule(themeProviderRule(wired.projectName, theme), themeProviderFallback(wired.projectName, theme)));
527
+ if (theme === 'auto') {
528
+ providerRules.push(safeRule(themeServiceInitializerRule(wired.projectName), themeServiceFallback(wired.projectName)));
529
+ }
530
+ }
531
+ }
532
+ if (sawSsrProject) {
533
+ utils_messages.logMessage(context.logger, ssrSuggestion());
534
+ }
535
+ utils_messages.logMessage(context.logger, fontsSuggestion());
536
+ return schematics.chain(providerRules);
36
537
  };
37
538
  }
38
539
 
@@ -10,6 +10,21 @@
10
10
  "$default": {
11
11
  "$source": "projectName"
12
12
  }
13
+ },
14
+ "theme": {
15
+ "type": "string",
16
+ "enum": ["auto", "light", "dark"],
17
+ "default": "auto",
18
+ "description": "The prebuilt Koobiq theme to install into angular.json and index.html.",
19
+ "x-prompt": {
20
+ "message": "Choose a theme to install:",
21
+ "type": "list",
22
+ "items": [
23
+ { "value": "auto", "label": "Auto — follow the OS color scheme via KbqThemeService" },
24
+ { "value": "light", "label": "Light" },
25
+ { "value": "dark", "label": "Dark" }
26
+ ]
27
+ }
13
28
  }
14
29
  }
15
30
  }
@@ -0,0 +1,61 @@
1
+ 'use strict';
2
+
3
+ var utils_messages = require('./messages.js');
4
+ var utils_packageConfig = require('../package-config-BhU2TfC8.js');
5
+ require('@angular-devkit/schematics');
6
+ require('@schematics/angular/utility');
7
+
8
+ const TS_EXT = '.ts';
9
+ /**
10
+ * Builds the migration for an entry point whose previous implementation moved to `/deprecated` when a
11
+ * rewrite took over `@koobiq/components/<entryPoint>`. It rewrites the import specifier only; the API
12
+ * itself is unchanged at its new path.
13
+ *
14
+ * Quote-anchored (`(['"])@koobiq/components/<entryPoint>\1`) so it matches only the exact, bare module
15
+ * specifier — never a prefix of an already-migrated `/deprecated` import, nor an unrelated sibling
16
+ * package whose name merely starts with the same word.
17
+ */
18
+ function deprecatedPathMigration(entryPoint) {
19
+ const specifier = `@koobiq/components/${entryPoint}`;
20
+ const label = `[${entryPoint}-deprecated-path]`;
21
+ const from = `(['"])${specifier}\\1`;
22
+ const to = `$1${specifier}/deprecated$1`;
23
+ const migrate = (content) => {
24
+ const migrated = content.replace(new RegExp(from, 'g'), to);
25
+ return { content: migrated, changed: migrated !== content };
26
+ };
27
+ return (options) => async (tree, context) => {
28
+ const { project } = options;
29
+ // `ng update` invokes migrations with no options at all, and migrations.json
30
+ // declares no schema, so the schema default never reaches us — applying the
31
+ // fix is the intended behaviour there.
32
+ const fix = options.fix ?? true;
33
+ const projectDefinition = await utils_packageConfig.setupOptions(project, tree);
34
+ const root = projectDefinition?.root ?? '';
35
+ const rootDir = root ? tree.getDir(root) : tree.root;
36
+ let touched = 0;
37
+ utils_packageConfig.visitProjectFiles(rootDir, (filePath, entry) => {
38
+ if (!filePath.endsWith(TS_EXT))
39
+ return;
40
+ const originalContent = entry?.content.toString();
41
+ if (!originalContent || !originalContent.includes(specifier))
42
+ return;
43
+ const { content, changed } = migrate(originalContent);
44
+ if (!changed)
45
+ return;
46
+ touched++;
47
+ if (fix) {
48
+ tree.overwrite(filePath, content);
49
+ }
50
+ else {
51
+ utils_messages.logMessage(context.logger, [`${label} would update ${filePath} (run with --fix to apply)`]);
52
+ }
53
+ });
54
+ utils_messages.logMessage(context.logger, [
55
+ `${label} processed tree under "${root || '<workspace root>'}", ` +
56
+ `${fix ? 'updated' : 'would update'} ${touched} file(s).`
57
+ ]);
58
+ };
59
+ }
60
+
61
+ exports.deprecatedPathMigration = deprecatedPathMigration;