@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
@@ -1 +1 @@
1
- {"version":3,"file":"koobiq-components-scrollbar.mjs","sources":["../../../packages/components/scrollbar/scrollbar.types.ts","../../../packages/components/scrollbar/scrollbar.directive.ts","../../../packages/components/scrollbar/scrollbar.component.ts","../../../packages/components/scrollbar/scrollbar.module.ts","../../../packages/components/scrollbar/koobiq-components-scrollbar.ts"],"sourcesContent":["import { InjectionToken, Provider } from '@angular/core';\nimport { EventListenerArgs, EventListeners, InitializationTarget, PartialOptions } from 'overlayscrollbars';\n\nexport type KbqScrollbarEvents = EventListeners;\nexport type KbqScrollbarEventListenerArgs = EventListenerArgs;\nexport type KbqScrollbarOptions = PartialOptions;\nexport type KbqScrollbarTarget = InitializationTarget;\n\nexport const KBQ_SCROLLBAR_OPTIONS_DEFAULT_CONFIG: KbqScrollbarOptions = {\n scrollbars: {\n autoHide: 'leave',\n autoHideDelay: 100\n }\n};\n\nexport const KBQ_SCROLLBAR_CONFIG = new InjectionToken<KbqScrollbarOptions>('KBQ_SCROLLBAR_CONFIG');\n\n/** Default scroll behavior */\nexport const KBQ_SCROLLBAR_OPTIONS_DEFAULT_CONFIG_PROVIDER: Provider = {\n provide: KBQ_SCROLLBAR_CONFIG,\n useValue: KBQ_SCROLLBAR_OPTIONS_DEFAULT_CONFIG\n};\n","import { CdkScrollable } from '@angular/cdk/overlay';\nimport { Directive, Input, NgZone, OnDestroy, inject, input } from '@angular/core';\nimport { OverlayScrollbars } from 'overlayscrollbars';\nimport { KBQ_SCROLLBAR_CONFIG, KbqScrollbarEvents, KbqScrollbarOptions, KbqScrollbarTarget } from './scrollbar.types';\n\ntype Defer = [\n requestDefer: (callback: () => any, options?: boolean | IdleRequestOptions) => void,\n cancelDefer: () => void\n];\n\nconst createDefer = (): Defer => {\n // For SSR compatibility\n // eslint-disable-next-line no-restricted-globals\n if (typeof window === 'undefined') {\n const noop = () => {};\n\n return [noop, noop];\n }\n\n let idleId: number;\n let rafId: number;\n\n // eslint-disable-next-line no-restricted-globals\n const { requestIdleCallback, requestAnimationFrame, cancelAnimationFrame, cancelIdleCallback } = window;\n\n const idleSupported = typeof requestIdleCallback === 'function';\n const rIdle = idleSupported ? requestIdleCallback : requestAnimationFrame;\n const cIdle = idleSupported ? cancelIdleCallback : cancelAnimationFrame;\n const clear = () => {\n cIdle(idleId);\n cancelAnimationFrame(rafId);\n };\n\n return [\n (callback, options) => {\n clear();\n idleId = rIdle(\n idleSupported\n ? () => {\n clear();\n // inside idle its best practice to use rAF to change DOM for best performance\n rafId = requestAnimationFrame(callback);\n }\n : callback,\n typeof options === 'object' ? options : { timeout: 2233 }\n );\n },\n clear\n ];\n};\n\n/**\n * A directive for adding `overlayscrollbars` to an element.\n */\n@Directive({\n selector: '[kbqScrollbar]',\n hostDirectives: [CdkScrollable]\n})\nexport class KbqScrollbarDirective implements OnDestroy {\n private ngZone = inject(NgZone);\n private scrollbarConfig = inject<KbqScrollbarOptions>(KBQ_SCROLLBAR_CONFIG);\n\n private requestDefer: ReturnType<typeof createDefer>[0];\n private cancelDefer: ReturnType<typeof createDefer>[1];\n\n private _options: KbqScrollbarOptions;\n\n // TODO: Skipped for migration because:\n // Accessor inputs cannot be migrated as they are too complex.\n @Input()\n set options(value: KbqScrollbarOptions) {\n this._options = value;\n\n if (OverlayScrollbars.valid(this.scrollbarInstance)) {\n this.scrollbarInstance.options(value || {}, true);\n }\n }\n\n /** Scrollbar behavior customization object */\n get options(): KbqScrollbarOptions | undefined {\n return this._options;\n }\n\n private _events?: KbqScrollbarEvents;\n\n // TODO: Skipped for migration because:\n // Accessor inputs cannot be migrated as they are too complex.\n @Input()\n set events(value: KbqScrollbarEvents) {\n this._events = value;\n\n if (OverlayScrollbars.valid(this.scrollbarInstance)) {\n this.scrollbarInstance.on(value || {}, true);\n }\n }\n\n get events(): KbqScrollbarEvents | undefined {\n return this._events;\n }\n\n /** Whether to defer the initialization to a point in time when the browser is idle. (or to the next frame if `window.requestIdleCallback` is not supported) */\n readonly defer = input<boolean | IdleRequestOptions>();\n\n scrollbarInstance?: OverlayScrollbars;\n\n constructor() {\n const [requestDefer, cancelDefer] = createDefer();\n\n this.requestDefer = requestDefer;\n this.cancelDefer = cancelDefer;\n }\n\n initialize(target: KbqScrollbarTarget) {\n this.ngZone.runOutsideAngular(() => {\n const init = () => {\n this.scrollbarInstance = OverlayScrollbars(\n target,\n this.options || this.scrollbarConfig || {},\n this.events || {}\n );\n };\n\n const defer = this.defer();\n\n if (defer) {\n this.requestDefer(init, defer);\n } else {\n init();\n }\n });\n }\n\n ngOnDestroy() {\n this.cancelDefer();\n }\n}\n","import {\n afterNextRender,\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n EventEmitter,\n forwardRef,\n inject,\n Injector,\n input,\n NgZone,\n OnDestroy,\n Output,\n viewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { KBQ_OVERFLOW_SHADOW_SOURCE, KbqOverflowShadowSource } from '@koobiq/components/core';\nimport { KbqScrollbarDirective } from './scrollbar.directive';\nimport {\n KbqScrollbarEventListenerArgs,\n KbqScrollbarEvents,\n KbqScrollbarOptions,\n KbqScrollbarTarget\n} from './scrollbar.types';\n\nconst filterEvents = (emits: KbqScrollbarEvents, events: KbqScrollbarEvents) =>\n (Object.keys(emits) as (keyof KbqScrollbarEvents)[]).reduce<KbqScrollbarEvents>(\n <N extends keyof KbqScrollbarEvents>(obj: KbqScrollbarEvents, name: N) => {\n const emitListener = emits[name];\n const eventListener = events[name];\n\n // merge & check listeners\n obj[name] = [\n emitListener,\n ...(Array.isArray(eventListener) ? eventListener : [eventListener]).filter(Boolean)\n ];\n\n return obj;\n },\n {}\n );\n\n/**\n * The component-wrapper for `overlayscrollbars` library.\n */\n@Component({\n selector: 'kbq-scrollbar, [kbq-scrollbar]',\n imports: [KbqScrollbarDirective],\n template: `\n <div\n #content\n data-overlayscrollbars-contents=\"\"\n kbqScrollbar\n [options]=\"options()\"\n [events]=\"mergeEvents()\"\n [defer]=\"defer()\"\n >\n <ng-content />\n </div>\n `,\n styleUrls: ['./scrollbar.component.scss', 'scrollbar-tokens.scss'],\n providers: [\n { provide: KBQ_OVERFLOW_SHADOW_SOURCE, useExisting: forwardRef(() => KbqScrollbar) }\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n 'data-overlayscrollbars-initialize': '',\n class: 'kbq-scrollbar-component'\n },\n exportAs: 'kbqScrollbar'\n})\nexport class KbqScrollbar implements AfterViewInit, OnDestroy, KbqOverflowShadowSource {\n private ngZone = inject(NgZone);\n private targetElement = inject<ElementRef<HTMLElement>>(ElementRef);\n\n /** Element that is being overflowed */\n readonly contentElement = viewChild.required<ElementRef<HTMLDivElement>>('content');\n private readonly kbqScrollbarDirective = viewChild.required('content', { read: KbqScrollbarDirective });\n\n /** Elements scrollbar applied on */\n readonly initializationTarget = input<KbqScrollbarTarget>();\n /** Scrollbar behavior customization object */\n readonly options = input<KbqScrollbarOptions>(undefined!);\n readonly events = input<KbqScrollbarEvents>(undefined!);\n /** Whether to defer the initialization to a point in time when the browser is idle. (or to the next frame if `window.requestIdleCallback` is not supported) */\n readonly defer = input<boolean | IdleRequestOptions>();\n\n @Output() readonly onInitialize = new EventEmitter<KbqScrollbarEventListenerArgs['initialized']>();\n /** Event triggered when options or event listeners updated */\n @Output() readonly onUpdate = new EventEmitter<KbqScrollbarEventListenerArgs['updated']>();\n /** Event triggered when scrollbar instance destroyed */\n @Output() readonly onDestroy = new EventEmitter<KbqScrollbarEventListenerArgs['destroyed']>();\n @Output() readonly onScroll = new EventEmitter<KbqScrollbarEventListenerArgs['scroll']>();\n\n get element(): HTMLElement {\n return this.targetElement.nativeElement;\n }\n\n private readonly injector = inject(Injector);\n\n ngAfterViewInit() {\n afterNextRender(\n () => {\n const contentElement = this.contentElement();\n\n if (this.element && contentElement?.nativeElement) {\n this.kbqScrollbarDirective()?.initialize(\n this.initializationTarget() || {\n target: this.targetElement.nativeElement,\n elements: {\n viewport: contentElement.nativeElement,\n content: contentElement.nativeElement\n }\n }\n );\n }\n },\n { injector: this.injector }\n );\n }\n\n ngOnDestroy() {\n this.kbqScrollbarDirective()?.scrollbarInstance?.destroy();\n }\n\n /** Wrapper function for native scroll */\n scrollTo(options?: ScrollToOptions): void {\n this.contentElement()?.nativeElement.scroll(options);\n }\n\n /** @docs-private Implementation of `KbqOverflowShadowSource`. */\n getScrollElement(): HTMLElement | null {\n return this.contentElement()?.nativeElement ?? null;\n }\n\n mergeEvents(): KbqScrollbarEvents {\n const defaultListeners: KbqScrollbarEvents = {\n initialized: (...args) => this.dispatchEventIfHasObservers(this.onInitialize, args),\n updated: (...args) => this.dispatchEventIfHasObservers(this.onUpdate, args),\n destroyed: (...args) => this.dispatchEventIfHasObservers(this.onDestroy, args),\n scroll: (...args) => this.dispatchEventIfHasObservers(this.onScroll, args)\n };\n\n const events = this.events();\n\n if (!events) {\n return defaultListeners;\n }\n\n // merge default listeners with custom listeners in case of Input binding\n return {\n ...defaultListeners,\n ...filterEvents(events, defaultListeners)\n };\n }\n\n private dispatchEventIfHasObservers<T>(eventEmitter: EventEmitter<T>, args: T): void {\n // `observed` is available since RxJS@7.2 because `observers` is being deprecated.\n if ((eventEmitter as any).observed || eventEmitter.observers.length > 0) {\n // This is required to re-enter the Angular zone to call the event handler in the Angular\n // zone too. This will not re-enter the Angular zone if emitter doesn't have any observers,\n // for instance, it's being listened: `<overlay-scrollbars (osInitialized)=\"...\"`.\n // Events are dispatched outside of the Angular zone because instance is created in the\n // `<root>` zone\n this.ngZone.run(() => eventEmitter.emit(args));\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { KbqScrollbar } from './scrollbar.component';\nimport { KbqScrollbarDirective } from './scrollbar.directive';\nimport { KBQ_SCROLLBAR_OPTIONS_DEFAULT_CONFIG_PROVIDER } from './scrollbar.types';\n\nconst COMPONENTS = [\n KbqScrollbar,\n KbqScrollbarDirective\n];\n\n@NgModule({\n imports: COMPONENTS,\n providers: [KBQ_SCROLLBAR_OPTIONS_DEFAULT_CONFIG_PROVIDER],\n exports: COMPONENTS\n})\nexport class KbqScrollbarModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"koobiq-components-scrollbar.mjs","sources":["../../../packages/components/scrollbar/scrollbar.ts","../../../packages/components/scrollbar/scrollbar.module.ts","../../../packages/components/scrollbar/koobiq-components-scrollbar.ts"],"sourcesContent":["import { _IdGenerator } from '@angular/cdk/a11y';\nimport { Directionality } from '@angular/cdk/bidi';\nimport { coerceCssPixelValue } from '@angular/cdk/coercion';\nimport { MutationObserverFactory } from '@angular/cdk/observers';\nimport { SharedResizeObserver } from '@angular/cdk/observers/private';\nimport { _CdkPrivateStyleLoader } from '@angular/cdk/private';\nimport {\n CdkScrollable,\n CdkVirtualScrollViewport,\n ScrollDispatcher,\n type ExtendedScrollToOptions\n} from '@angular/cdk/scrolling';\nimport { DOCUMENT } from '@angular/common';\nimport {\n afterNextRender,\n ApplicationRef,\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n createComponent,\n DestroyRef,\n Directive,\n effect,\n EnvironmentInjector,\n inject,\n Injectable,\n InjectionToken,\n Injector,\n input,\n NgZone,\n numberAttribute,\n Renderer2,\n ViewEncapsulation,\n type ComponentRef,\n type Provider\n} from '@angular/core';\nimport { takeUntilDestroyed, toSignal } from '@angular/core/rxjs-interop';\nimport { KBQ_WINDOW, kbqAnimationsDisabled, kbqInjectNativeElement } from '@koobiq/components/core';\nimport {\n asapScheduler,\n asyncScheduler,\n audit,\n concat,\n distinctUntilChanged,\n EMPTY,\n filter,\n fromEvent,\n map,\n merge,\n NEVER,\n Observable,\n observeOn,\n of,\n share,\n startWith,\n Subject,\n switchMap,\n take,\n takeUntil,\n timer,\n type MonoTypeOperatorFunction,\n type SchedulerAction,\n type SchedulerLike,\n type Subscription\n} from 'rxjs';\n\n/**\n * The next animation frame, requested on subscription and only then, so an idle page schedules none.\n *\n * One frame per subscriber rather than a shared one: a frame that is already being delivered cannot be\n * joined, so whatever asks for a frame from inside one gets the next.\n */\nfunction nextAnimationFrame(): Observable<void> {\n const window = inject(KBQ_WINDOW);\n const ngZone = inject(NgZone);\n\n if (typeof window.requestAnimationFrame === 'undefined') {\n return NEVER;\n }\n\n return new Observable<void>((subscriber) =>\n // Outside Angular, so waiting for a frame does not keep NgZone unstable.\n ngZone.runOutsideAngular(() => {\n const frameId = window.requestAnimationFrame(() => {\n subscriber.next();\n subscriber.complete();\n });\n\n return () => window.cancelAnimationFrame(frameId);\n })\n );\n}\n\nfunction zoneFree<T>(): MonoTypeOperatorFunction<T> {\n const ngZone = inject(NgZone);\n\n return (source) => new Observable<T>((subscriber) => ngZone.runOutsideAngular(() => source.subscribe(subscriber)));\n}\n\nfunction zoneFreeScheduler(scheduler: SchedulerLike = asyncScheduler): SchedulerLike {\n const ngZone = inject(NgZone);\n\n return {\n now: () => scheduler.now(),\n schedule<T>(work: (this: SchedulerAction<T>, state?: T) => void, delay?: number, state?: T): Subscription {\n let subscription!: Subscription;\n\n ngZone.runOutsideAngular(() => {\n subscription = scheduler.schedule(work, delay, state);\n });\n\n return subscription;\n }\n };\n}\n\nfunction zoneOptimized<T>(): MonoTypeOperatorFunction<T> {\n const ngZone = inject(NgZone);\n\n return (source) =>\n new Observable<T>((subscriber) =>\n source.subscribe({\n next: (value) => ngZone.run(() => subscriber.next(value)),\n error: (error) => subscriber.error(error),\n complete: () => subscriber.complete()\n })\n );\n}\n\nfunction getElementOffset(ancestor: HTMLElement, element: HTMLElement): { offsetTop: number; offsetLeft: number } {\n let offsetTop = 0;\n let offsetLeft = 0;\n let current: HTMLElement | null = element;\n\n while (current && current !== ancestor) {\n offsetTop += current.offsetTop;\n offsetLeft += current.offsetLeft;\n current = current.offsetParent as HTMLElement | null;\n }\n\n return { offsetTop, offsetLeft };\n}\n\n/**\n * How the scrollbar is presented:\n * - `hover` — track appears on pointer hover or while scrolling (default);\n * - `always` — track is always visible while the content overflows;\n * - `native` — the browser's native scrollbar is used;\n * - `hidden` — no scrollbar is shown, but the content stays scrollable.\n *\n * `hover` and `always` draw a bar only for an axis the user can scroll: one whose computed `overflow` is\n * `hidden`, `clip` or `visible` gets none, however far its content overflows.\n */\nexport type KbqScrollbarMode = 'always' | 'hidden' | 'hover' | 'native';\n\n/** Configuration for {@link KbqScrollbar}. */\nexport type KbqScrollbarOptions = {\n mode: KbqScrollbarMode;\n /** How long the scroll-revealed track stays visible after scrolling stops, in milliseconds. */\n hideDelay: number;\n};\n\nconst KBQ_SCROLLBAR_DEFAULT_OPTIONS: KbqScrollbarOptions = {\n mode: 'hover',\n hideDelay: 1000\n};\n\n/** Injection token holding the current {@link KbqScrollbarOptions}. */\nexport const KBQ_SCROLLBAR_OPTIONS = new InjectionToken<KbqScrollbarOptions>('KBQ_SCROLLBAR_OPTIONS', {\n factory: () => KBQ_SCROLLBAR_DEFAULT_OPTIONS\n});\n\n/** Overrides the default scrollbar options within the given injector scope. */\nexport function kbqScrollbarOptionsProvider(options: Partial<KbqScrollbarOptions>): Provider {\n return {\n provide: KBQ_SCROLLBAR_OPTIONS,\n useValue: { ...KBQ_SCROLLBAR_DEFAULT_OPTIONS, ...options }\n };\n}\n\n/** Configuration for {@link KbqNativeScrollbar}. */\nexport type KbqNativeScrollbarOptions = {\n /** Whether browser-rendered scrollbars of descendant elements should also be customized. */\n descendants: boolean;\n};\n\nconst KBQ_NATIVE_SCROLLBAR_DEFAULT_OPTIONS: KbqNativeScrollbarOptions = {\n descendants: false\n};\n\n/** Injection token holding the current {@link KbqNativeScrollbarOptions}. */\nexport const KBQ_NATIVE_SCROLLBAR_OPTIONS = new InjectionToken<KbqNativeScrollbarOptions>(\n 'KBQ_NATIVE_SCROLLBAR_OPTIONS',\n { factory: () => KBQ_NATIVE_SCROLLBAR_DEFAULT_OPTIONS }\n);\n\n/** Overrides the default native scrollbar options within the given injector scope. */\nexport function kbqNativeScrollbarOptionsProvider(options: Partial<KbqNativeScrollbarOptions>): Provider {\n return {\n provide: KBQ_NATIVE_SCROLLBAR_OPTIONS,\n useValue: { ...KBQ_NATIVE_SCROLLBAR_DEFAULT_OPTIONS, ...options }\n };\n}\n\ntype Orientation = 'horizontal' | 'vertical';\n\n/**\n * Computed `overflow` values that rule out user scrolling. `visible` belongs here as much as the other\n * two: it only computes to `auto` when the other axis scrolls, so a box left at the initial value on\n * both axes is not a scroll container at all. Listed as the exclusions rather than as the scrollable\n * values so an unreadable computed style leaves the scrollbar alone instead of erasing it.\n */\nconst NON_SCROLLABLE_OVERFLOW: readonly string[] = ['clip', 'hidden', 'visible'];\n\nconst TRACK_TAG = 'kbq-scrollbar-track';\n\n/** Based on --kbq-scrollbar-thumb-min-size */\nconst MIN_THUMB_SIZE = 32;\n\n/** Based on --kbq-scrollbar-thumb-gap */\nconst THUMB_GAP = 3;\n\n// Include the transparent border because CSS applies the minimum to the thumb's border box.\nconst MIN_THUMB_BOX_SIZE = MIN_THUMB_SIZE + THUMB_GAP * 2;\n\ntype Dimension = Pick<\n HTMLElement,\n 'scrollTop' | 'scrollHeight' | 'clientHeight' | 'scrollLeft' | 'scrollWidth' | 'clientWidth'\n>;\n\ntype ScrollbarVisibility = readonly [boolean, boolean];\n\ntype ViewportMetrics = {\n blockSize: number;\n inlineSize: number;\n paddingBlockStart: number;\n paddingInlineStart: number;\n};\n\n@Component({\n selector: 'scrollbar-style-loader',\n template: '',\n styleUrls: ['./scrollbar-tokens.scss', './native-scrollbar.scss', './scrollbar-viewport.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n})\nclass ScrollbarStyleLoader {}\n\n/** Customizes the browser-rendered scrollbar of its host without replacing native scrolling. */\n@Directive({\n selector: '[kbqNativeScrollbar]',\n host: {\n class: 'kbq-native-scrollbar',\n '[class.kbq-native-scrollbar_descendants]': 'descendants()'\n },\n exportAs: 'kbqNativeScrollbar'\n})\nexport class KbqNativeScrollbar {\n private readonly styleLoader = inject(_CdkPrivateStyleLoader);\n private readonly options = inject(KBQ_NATIVE_SCROLLBAR_OPTIONS);\n\n /**\n * Whether browser-rendered scrollbars of descendant elements should also be customized.\n * Defaults to {@link KBQ_NATIVE_SCROLLBAR_OPTIONS}.\n */\n readonly descendants = input(this.options.descendants, {\n alias: 'kbqNativeScrollbarDescendants',\n transform: booleanAttribute\n });\n\n constructor() {\n this.styleLoader.load(ScrollbarStyleLoader);\n }\n}\n\n/** Options accepted by {@link KbqScrollbarViewport.scrollTo}/{@link KbqScrollbar.scrollTo} — RTL-normalized, see `CdkScrollable.scrollTo`. */\nexport type KbqScrollbarScrollToOptions = ExtendedScrollToOptions;\n\n/** Options accepted by {@link KbqScrollbarViewport.scrollToElement}/{@link KbqScrollbar.scrollToElement}. */\nexport type KbqScrollbarScrollToElementOptions = {\n /** Extra gap to leave above the target, in px — e.g. so it doesn't end up under a sticky header. */\n top?: number;\n /** Extra gap to leave to the left of the target, in px. */\n left?: number;\n behavior?: ScrollBehavior;\n};\n\n/** `[top, left]` scroll offsets in pixels. */\ntype ScrollPosition = [number, number];\n\n/** Marks its host element as the custom scrollbar's scroll target, hiding its native scrollbar whenever a custom scrollbar track replaces it. */\n@Directive({\n selector: '[kbqScrollbarViewport]',\n host: {\n class: 'kbq-scrollbar-viewport',\n '[class.kbq-scrollbar-viewport_native-scrollbar-hidden]': 'mode() !== \"native\"',\n '[attr.id]': 'id'\n },\n hostDirectives: [CdkScrollable]\n})\nexport class KbqScrollbarViewport {\n private readonly styleLoader = inject(_CdkPrivateStyleLoader);\n private readonly scrollable = inject(CdkScrollable);\n private readonly appRef = inject(ApplicationRef);\n private readonly environmentInjector = inject(EnvironmentInjector);\n private readonly injector = inject(Injector);\n private readonly idGenerator = inject(_IdGenerator);\n private readonly options = inject(KBQ_SCROLLBAR_OPTIONS);\n private readonly destroyRef = inject(DestroyRef);\n private readonly scrollDispatcher = inject(ScrollDispatcher);\n\n private readonly generatedId = this.idGenerator.getId('kbq-scrollbar-viewport-');\n\n // Read live because a bound consumer id is unavailable during construction.\n protected get id(): string {\n return this.getNativeElement().id || this.generatedId;\n }\n\n /** Visibility mode for this viewport's scrollbar. Defaults to the app-wide {@link KBQ_SCROLLBAR_OPTIONS}. */\n readonly mode = input<KbqScrollbarMode>(this.options.mode, { alias: 'kbqScrollbarMode' });\n\n /**\n * How long the scroll-revealed `hover`-mode track stays visible after scrolling stops, in milliseconds.\n * Defaults to the app-wide {@link KBQ_SCROLLBAR_OPTIONS}.\n */\n readonly hideDelay = input(this.options.hideDelay, {\n alias: 'kbqScrollbarHideDelay',\n transform: numberAttribute\n });\n\n private trackRef: ComponentRef<KbqScrollbarTrack> | null = null;\n\n private readonly flashSubject = new Subject<void>();\n\n /** Emits when {@link flashScrollIndicators} is called. */\n readonly flashes = this.flashSubject.asObservable();\n\n /** Emits on every native `scroll` event of the viewport. Emits outside Angular's zone — see `CdkScrollable.elementScrolled`. */\n readonly scrollChanges = this.scrollable.elementScrolled();\n\n constructor() {\n this.styleLoader.load(ScrollbarStyleLoader);\n\n effect(() => {\n const mode = this.mode();\n const hideDelay = this.hideDelay();\n const showTrack = mode !== 'native' && mode !== 'hidden';\n\n if (!showTrack) {\n this.destroyTrack();\n\n return;\n }\n\n if (!this.trackRef) {\n this.trackRef = this.createTrack();\n }\n\n this.trackRef.setInput('mode', mode);\n this.trackRef.setInput('hideDelay', hideDelay);\n });\n\n // ApplicationRef owns the track view, so the viewport must destroy it explicitly.\n this.destroyRef.onDestroy(() => this.destroyTrack());\n\n if (this.scrollable instanceof CdkVirtualScrollViewport) {\n afterNextRender(() => this.dropDuplicateScrollableRegistration(), { injector: this.injector });\n }\n }\n\n // Virtual scroll provides its own CdkScrollable while the host directive still registers another\n // instance for the same element. Keep only the instance used by this directive.\n private dropDuplicateScrollableRegistration(): void {\n const element = this.getNativeElement();\n\n for (const scrollable of this.scrollDispatcher.getAncestorScrollContainers(element)) {\n if (scrollable !== this.scrollable && scrollable.getElementRef().nativeElement === element) {\n this.scrollDispatcher.deregister(scrollable);\n }\n }\n }\n\n /** Briefly reveals an overflowing `hover`-mode scrollbar. */\n flashScrollIndicators(): void {\n this.flashSubject.next();\n }\n\n /** Scrolls to the specified offsets. RTL-normalized — see `CdkScrollable.scrollTo`. */\n scrollTo(options: KbqScrollbarScrollToOptions): void {\n this.scrollable.scrollTo(options);\n }\n\n /** Scrolls to the start of the vertical axis. */\n scrollToTop(behavior?: ScrollBehavior): void {\n this.scrollTo({ top: 0, behavior });\n }\n\n /** Scrolls to the end of the vertical axis. */\n scrollToBottom(behavior?: ScrollBehavior): void {\n this.scrollTo({ top: this.getNativeElement().scrollHeight, behavior });\n }\n\n /** Scrolls to the logical start of the horizontal axis — the right edge in RTL, left in LTR. */\n scrollStart(behavior?: ScrollBehavior): void {\n this.scrollTo({ start: 0, behavior });\n }\n\n /** Scrolls to the logical end of the horizontal axis — the left edge in RTL, right in LTR. */\n scrollEnd(behavior?: ScrollBehavior): void {\n this.scrollTo({ end: 0, behavior });\n }\n\n /** Scrolls `target` (an element, or a selector resolved against this viewport) into view. */\n scrollToElement(target: HTMLElement | string, options?: KbqScrollbarScrollToElementOptions): void {\n const _target =\n typeof target === 'string' ? this.getNativeElement().querySelector<HTMLElement>(target) : target;\n\n if (!_target) return;\n\n const { offsetTop, offsetLeft } = getElementOffset(this.getNativeElement(), _target);\n\n this.scrollTo({\n top: offsetTop - (options?.top ?? 0),\n left: offsetLeft - (options?.left ?? 0),\n behavior: options?.behavior\n });\n }\n\n /** Scrolls `target` to the center of the viewport. */\n scrollIntoView(target: HTMLElement, behavior?: ScrollBehavior): void {\n const { offsetHeight, offsetWidth } = target;\n const { offsetTop, offsetLeft } = getElementOffset(this.getNativeElement(), target);\n\n this.scrollTo({\n top: offsetTop + offsetHeight / 2 - this.getNativeElement().clientHeight / 2,\n left: offsetLeft + offsetWidth / 2 - this.getNativeElement().clientWidth / 2,\n behavior\n });\n }\n\n private createTrack(): ComponentRef<KbqScrollbarTrack> {\n // A ViewContainerRef-owned view is moved back to its anchor when virtual scroll rebuilds its DOM.\n // ApplicationRef lets the track remain a direct child of the scrollable element.\n const track = createComponent(KbqScrollbarTrack, {\n environmentInjector: this.environmentInjector,\n elementInjector: this.injector\n });\n\n this.appRef.attachView(track.hostView);\n\n // The field may point to a replacement by the time the render callback runs.\n afterNextRender(\n () => {\n this.getNativeElement().insertBefore(track.location.nativeElement, this.getNativeElement().firstChild);\n },\n { injector: this.injector }\n );\n\n return track;\n }\n\n private destroyTrack(): void {\n if (!this.trackRef) {\n return;\n }\n\n this.appRef.detachView(this.trackRef.hostView);\n this.trackRef.destroy();\n this.trackRef = null;\n }\n\n /** The viewport's native scrollable element — the host this directive is applied to. */\n getNativeElement(): HTMLElement {\n return this.scrollable.getElementRef().nativeElement;\n }\n}\n\n/**\n * Emits, at most once a frame, whenever the viewport's scrollable size may have changed.\n *\n * Nothing fires when `scrollHeight` itself changes, and polling it would keep an otherwise idle page\n * rendering for as long as the viewport exists. What changes that size does fire something: the viewport\n * or a box directly inside its content resizes; the DOM inside changes — nodes, text or attributes; an\n * image or a font loads; a transition or an animation ends.\n *\n * What still escapes — a style applied from outside the viewport that grows only the content of an\n * inline element, a transform reaching past the content — is caught once the viewport is hovered or\n * focused, and the track also re-measures whenever the viewport scrolls, which it only does once there\n * is something to scroll.\n */\n@Injectable()\nclass KbqScrollbarContentObserver {\n private readonly viewport = inject(KbqScrollbarViewport);\n private readonly viewportElement = this.viewport.getNativeElement();\n private readonly document = inject(DOCUMENT);\n private readonly resizeObserver = inject(SharedResizeObserver);\n private readonly mutationObserverFactory = inject(MutationObserverFactory);\n private readonly nextFrame = nextAnimationFrame();\n\n readonly changes: Observable<void> = merge(\n this.resizeObserver.observe(this.viewportElement),\n this.domChanges(),\n this.document.fonts ? fromEvent(this.document.fonts, 'loadingdone') : EMPTY,\n // `load` does not bubble, so it is caught on its way down. The other two end a change that a\n // mutation only started: content transitioning open, an element animating in.\n merge(\n ...['load', 'transitionend', 'animationend'].map((type) =>\n fromEvent<Event>(this.viewportElement, type, { capture: true })\n )\n ).pipe(filter(({ target }) => !this.isInsideTrack(target as Node))),\n fromEvent(this.viewportElement, 'pointerenter'),\n fromEvent(this.viewportElement, 'focusin'),\n this.viewport.flashes\n ).pipe(\n // Ahead of the audit, which holds the last value until the frame — and no frame comes while the tab\n // is hidden, so a batch of removed nodes would stay reachable all that time.\n map(() => undefined),\n startWith(undefined),\n audit(() => this.nextFrame),\n zoneFree(),\n share()\n );\n\n // Mutations inside the viewport and resizes of the boxes directly inside its content, as one stream.\n private domChanges(): Observable<void> {\n return new Observable<void>((subscriber) => {\n const notify = () => subscriber.next();\n const boxes = new Set<Element>();\n // An observer of its own rather than CDK's SharedResizeObserver, which filters every batch once per\n // observed element — quadratic for a list whose rows sit directly in the viewport.\n const resizeObserver = typeof ResizeObserver === 'undefined' ? null : new ResizeObserver(notify);\n\n const syncBoxes = () => {\n const current = new Set(this.getContentBoxes());\n\n boxes.forEach((box) => {\n if (!current.has(box)) {\n resizeObserver?.unobserve(box);\n boxes.delete(box);\n }\n });\n\n current.forEach((box) => {\n if (!boxes.has(box)) {\n // The border box, so that a padding or border change counts as the resize it is.\n resizeObserver?.observe(box, { box: 'border-box' });\n boxes.add(box);\n }\n });\n };\n\n // Not CDK's ContentObserver: it emits inside NgZone, and every emission would then cost the whole\n // application a change detection pass — usually a second one, right after the render that mutated.\n const mutationObserver = this.mutationObserverFactory.create((records) => {\n const relevant = records.filter((record) => this.affectsContent(record));\n\n if (!relevant.length) {\n return;\n }\n\n const root = this.getContentRoot();\n\n if (\n relevant.some(\n ({ type, target }) =>\n type === 'childList' && (target === root || target === this.viewportElement)\n )\n ) {\n syncBoxes();\n }\n\n notify();\n });\n\n // Attributes too: a class, style or `hidden` toggle inside an inline element grows the content\n // without resizing any box watched here, and it is how the viewport's own `overflow` changes.\n mutationObserver?.observe(this.viewportElement, {\n attributes: true,\n childList: true,\n characterData: true,\n subtree: true\n });\n syncBoxes();\n\n return () => {\n mutationObserver?.disconnect();\n resizeObserver?.disconnect();\n };\n });\n }\n\n // `kbq-scrollbar` keeps its content in a wrapper held at the viewport's full height, which never grows\n // with what it holds, so the boxes that do are its children.\n private getContentRoot(): Element {\n return this.viewportElement.querySelector(':scope > .kbq-scrollbar__content') ?? this.viewportElement;\n }\n\n private getContentBoxes(): Element[] {\n return Array.from(this.getContentRoot().children).filter((child) => child.localName !== TRACK_TAG);\n }\n\n // Skips what cannot change the scrollable size: tracks redrawing their bars, and Angular moving the\n // comment anchors of `@if` and `@for` — the same comment-only records CDK's ContentObserver skips.\n private affectsContent({ type, target, addedNodes, removedNodes }: MutationRecord): boolean {\n if (target.nodeType === Node.COMMENT_NODE || this.isInsideTrack(target)) {\n return false;\n }\n\n if (type !== 'childList') {\n return true;\n }\n\n return [...Array.from(addedNodes), ...Array.from(removedNodes)].some(\n (node) => node.nodeType !== Node.COMMENT_NODE && !this.isInsideTrack(node)\n );\n }\n\n // This viewport's track or a nested viewport's: tracks move their thumbs on every scroll and never\n // change the size of the content around them. Recognised by structure, not by the element this\n // observer happens to be provided on.\n private isInsideTrack(node: Node | null): boolean {\n for (let current = node; current && current !== this.viewportElement; current = current.parentNode) {\n if ((current as Element).localName === TRACK_TAG) {\n return true;\n }\n }\n\n return false;\n }\n}\n\n@Directive({\n selector: '[kbqScrollbarThumb]',\n host: {\n role: 'scrollbar',\n '[attr.aria-orientation]': 'orientation()',\n '[attr.aria-controls]': 'viewportElement.id',\n '[attr.aria-valuemin]': '0',\n '[attr.aria-valuemax]': '100'\n },\n exportAs: 'kbqScrollbarThumb'\n})\nclass KbqScrollbarThumb {\n private readonly viewport = inject(KbqScrollbarViewport);\n private readonly directionality = inject(Directionality);\n protected readonly viewportElement = this.viewport.getNativeElement();\n private readonly nativeElement = kbqInjectNativeElement();\n private readonly style = this.nativeElement.style;\n private readonly contentChanges = inject(KbqScrollbarContentObserver).changes;\n\n readonly orientation = input.required<Orientation>();\n\n constructor() {\n merge(\n fromEvent<MouseEvent>(this.nativeElement.parentElement!, 'mousedown').pipe(\n filter(({ target }) => target !== this.nativeElement),\n map((event) => this.getScrolled(event, 0.5, 0.5, this.isRtl()))\n ),\n fromEvent<MouseEvent>(this.nativeElement, 'mousedown').pipe(\n zoneFree(),\n switchMap((event) => {\n const { ownerDocument } = this.nativeElement;\n const { top, left, height, width } = this.nativeElement.getBoundingClientRect();\n const vertical = (event.clientY - top) / height;\n const horizontal = (event.clientX - left) / width;\n const rtl = this.isRtl();\n\n return fromEvent<MouseEvent>(ownerDocument, 'mousemove').pipe(\n map((event) => this.getScrolled(event, vertical, horizontal, rtl)),\n takeUntil(fromEvent(ownerDocument, 'mouseup'))\n );\n })\n )\n )\n .pipe(takeUntilDestroyed())\n .subscribe(([top, left]) => {\n this.viewportElement.style.scrollBehavior = 'auto';\n\n if (this.orientation() === 'horizontal') {\n this.viewportElement.scrollLeft = left;\n } else {\n this.viewportElement.scrollTop = top;\n }\n\n this.viewportElement.style.scrollBehavior = '';\n });\n\n merge(this.contentChanges, this.viewport.scrollChanges)\n .pipe(\n zoneFree(),\n map(() => this.getDimension()),\n takeUntilDestroyed()\n )\n .subscribe((dimension) => {\n this.applyPosition(this.getPosition(dimension));\n this.applyValueNow(this.getValueNow(dimension));\n });\n\n // Wait until Angular has applied `orientation` before calculating the initial ARIA value. Read and written in\n // phases of their own, so that the thumbs rendered together read in one layout rather than each after another's\n // write.\n afterNextRender({\n earlyRead: () => this.getDimension(),\n write: (dimension) => {\n this.applyPosition(this.getPosition(dimension));\n this.applyValueNow(this.getValueNow(dimension));\n }\n });\n }\n\n // The DOM fallback covers bare or dynamically updated `dir` attributes that do not update Directionality.\n private isRtl(): boolean {\n return this.directionality.value === 'rtl' || !!this.viewportElement.closest('[dir=\"rtl\"]');\n }\n\n private getScrolled(\n { clientY, clientX }: MouseEvent,\n offsetY: number,\n offsetX: number,\n rtl: boolean\n ): ScrollPosition {\n const { offsetHeight, offsetWidth } = this.nativeElement;\n const { top, left, right, width, height } = this.nativeElement.parentElement!.getBoundingClientRect();\n const inline = rtl ? right : left;\n const multiplier = rtl ? -1 : 1;\n const maxTop = this.viewportElement.scrollHeight - height;\n const maxLeft = this.viewportElement.scrollWidth - width;\n const scrolledTop = (clientY - top - offsetHeight * offsetY) / (height - offsetHeight);\n const scrolledLeft = (clientX - inline - offsetWidth * offsetX * multiplier) / (width - offsetWidth);\n\n return [maxTop * scrolledTop, maxLeft * scrolledLeft];\n }\n\n private applyPosition(style: Partial<CSSStyleDeclaration>): void {\n Object.assign(this.style, style);\n }\n\n private applyValueNow(valueNow: number): void {\n this.nativeElement.setAttribute('aria-valuenow', `${valueNow}`);\n }\n\n private getDimension(): Dimension {\n const { scrollTop, scrollHeight, clientHeight, scrollLeft, scrollWidth, clientWidth } = this.viewportElement;\n\n return { scrollTop, scrollHeight, clientHeight, scrollLeft, scrollWidth, clientWidth };\n }\n\n private getPosition(dimension: Dimension): Partial<CSSStyleDeclaration> {\n const thumb = `${this.getThumbFraction(dimension) * 100}%`;\n const view = `${this.getViewFraction(dimension) * 100}%`;\n\n return this.orientation() === 'vertical'\n ? { top: thumb, height: view }\n : { insetInlineStart: thumb, width: view };\n }\n\n private getValueNow(dimension: Dimension): number {\n const scrolledFraction = this.getScrolledFraction(dimension);\n\n return Number.isNaN(scrolledFraction) ? 0 : Math.round(Math.abs(scrolledFraction) * 100);\n }\n\n private getThumbFraction(dimension: Dimension): number {\n const compensation = this.getCompensation(dimension) || this.getViewFraction(dimension);\n\n return Math.abs(this.getScrolledFraction(dimension) * (1 - compensation));\n }\n\n private getViewFraction(dimension: Dimension): number {\n return this.orientation() === 'vertical'\n ? Math.ceil((dimension.clientHeight / dimension.scrollHeight) * 100) / 100\n : Math.ceil((dimension.clientWidth / dimension.scrollWidth) * 100) / 100;\n }\n\n private getScrolledFraction({\n scrollTop,\n scrollHeight,\n clientHeight,\n scrollLeft,\n scrollWidth,\n clientWidth\n }: Dimension): number {\n return this.orientation() === 'vertical'\n ? scrollTop / (scrollHeight - clientHeight)\n : scrollLeft / (scrollWidth - clientWidth);\n }\n\n private getCompensation({ clientHeight, clientWidth, scrollWidth, scrollHeight }: Dimension): number {\n if (\n ((clientHeight * clientHeight) / scrollHeight > MIN_THUMB_BOX_SIZE && this.orientation() === 'vertical') ||\n ((clientWidth * clientWidth) / scrollWidth > MIN_THUMB_BOX_SIZE && this.orientation() === 'horizontal')\n ) {\n return 0;\n }\n\n return this.orientation() === 'vertical' ? MIN_THUMB_BOX_SIZE / clientHeight : MIN_THUMB_BOX_SIZE / clientWidth;\n }\n}\n\n@Component({\n selector: TRACK_TAG,\n imports: [KbqScrollbarThumb],\n template: `\n @if (visibility()[0]) {\n <div\n animate.enter=\"kbq-scrollbar-track__bar_enter\"\n animate.leave=\"kbq-scrollbar-track__bar_leave\"\n class=\"kbq-scrollbar-track__bar kbq-scrollbar-track__bar_vertical\"\n [class.kbq-scrollbar-track__bar_has-horizontal]=\"visibility()[1]\"\n [class.kbq-animations-disabled]=\"animationsDisabled\"\n (mousedown)=\"onBarPointerDown($event)\"\n >\n <div\n kbqScrollbarThumb\n orientation=\"vertical\"\n class=\"kbq-scrollbar-track__thumb\"\n [class.kbq-animations-disabled]=\"animationsDisabled\"\n ></div>\n </div>\n }\n @if (visibility()[1]) {\n <div\n animate.enter=\"kbq-scrollbar-track__bar_enter\"\n animate.leave=\"kbq-scrollbar-track__bar_leave\"\n class=\"kbq-scrollbar-track__bar kbq-scrollbar-track__bar_horizontal\"\n [class.kbq-scrollbar-track__bar_has-vertical]=\"visibility()[0]\"\n [class.kbq-animations-disabled]=\"animationsDisabled\"\n (mousedown)=\"onBarPointerDown($event)\"\n >\n <div\n kbqScrollbarThumb\n orientation=\"horizontal\"\n class=\"kbq-scrollbar-track__thumb\"\n [class.kbq-animations-disabled]=\"animationsDisabled\"\n ></div>\n </div>\n }\n `,\n styleUrl: './scrollbar-track.scss',\n // Shared by the track and both of its thumbs, so the viewport is observed once.\n providers: [KbqScrollbarContentObserver],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'kbq-scrollbar-track',\n '[class.kbq-scrollbar-track_hover]': \"mode() === 'hover'\",\n '[class.kbq-scrollbar-track_revealed]': 'revealed()',\n '[class.kbq-animations-disabled]': 'animationsDisabled'\n }\n})\nclass KbqScrollbarTrack {\n private readonly viewport = inject(KbqScrollbarViewport);\n private readonly viewportElement = this.viewport.getNativeElement();\n private readonly window = inject(KBQ_WINDOW);\n private readonly renderer = inject(Renderer2);\n private readonly ngZone = inject(NgZone);\n private readonly destroyRef = inject(DestroyRef);\n private readonly resizeObserver = inject(SharedResizeObserver);\n private readonly nativeElement = kbqInjectNativeElement();\n private readonly scheduler = zoneFreeScheduler();\n\n // Scrolling re-measures too: a viewport that scrolls has something to scroll, whatever the observers\n // missed on the way there.\n protected readonly visibility = toSignal<ScrollbarVisibility>(\n merge(inject(KbqScrollbarContentObserver).changes, this.viewport.scrollChanges).pipe(\n map(() => this.scrollbars),\n startWith([false, false] as const),\n distinctUntilChanged((a, b) => a[0] === b[0] && a[1] === b[1]),\n zoneOptimized()\n ),\n { requireSync: true }\n );\n\n protected readonly revealed = toSignal(\n merge(this.viewport.scrollChanges, this.viewport.flashes).pipe(\n // Hoisted rather than injected inside switchMap, which runs outside an injection context.\n // The scheduler is what keeps the hide timer out of Angular: `scrollChanges` already emits\n // outside the zone, but `flashes` carries whatever zone its caller was in, and a caller\n // inside Angular would otherwise leave NgZone unstable for the whole hideDelay.\n switchMap(() => concat(of(true), timer(this.hideDelay(), this.scheduler).pipe(map(() => false)))),\n startWith(false),\n distinctUntilChanged(),\n zoneOptimized()\n ),\n { requireSync: true }\n );\n\n /** Whether the bars, the thumbs and the hover-mode track appear and change color without motion. */\n protected readonly animationsDisabled = kbqAnimationsDisabled();\n\n readonly mode = input.required<KbqScrollbarMode>();\n\n readonly hideDelay = input.required<number>();\n\n constructor() {\n this.resizeObserver\n .observe(this.viewportElement)\n .pipe(\n map(() => this.getViewportMetrics()),\n distinctUntilChanged(\n (a, b) =>\n a.blockSize === b.blockSize &&\n a.inlineSize === b.inlineSize &&\n a.paddingBlockStart === b.paddingBlockStart &&\n a.paddingInlineStart === b.paddingInlineStart\n ),\n // Written once the observer's callback returns, still ahead of the frame: the callback hands one batch\n // to the tracks of every viewport in it, and a write between them makes the next track's read force a\n // layout. Outside Angular, as the write needs no change detection.\n observeOn(zoneFreeScheduler(asapScheduler)),\n takeUntilDestroyed()\n )\n .subscribe((metrics) => this.applyGeometry(metrics));\n }\n\n // A drag released over sibling content produces a click on their common ancestor. Capture that\n // single click after mouseup so scrollbar gestures cannot activate the host panel.\n protected onBarPointerDown(event: MouseEvent): void {\n event.preventDefault();\n\n this.ngZone.runOutsideAngular(() => {\n fromEvent<MouseEvent>(this.window, 'mouseup')\n .pipe(\n take(1),\n switchMap(() =>\n fromEvent<MouseEvent>(this.window, 'click', { capture: true }).pipe(\n take(1),\n // Drop the listener on the next task when the gesture produces no click.\n takeUntil(timer(0))\n )\n ),\n takeUntilDestroyed(this.destroyRef)\n )\n .subscribe((click) => click.stopPropagation());\n });\n }\n\n private get scrollbars(): ScrollbarVisibility {\n const { clientHeight, scrollHeight, clientWidth, scrollWidth } = this.viewportElement;\n // An overflowing axis is not necessarily a scrollable one: `overflow: hidden` still scrolls\n // programmatically, so the size ratio alone would paint a bar — and hand over a draggable\n // thumb — for an axis the browser itself refuses to give a scrollbar to.\n const { overflowX, overflowY } = this.window.getComputedStyle(this.viewportElement);\n\n return [\n !NON_SCROLLABLE_OVERFLOW.includes(overflowY) && Math.ceil((clientHeight / scrollHeight) * 100) < 100,\n !NON_SCROLLABLE_OVERFLOW.includes(overflowX) && Math.ceil((clientWidth / scrollWidth) * 100) < 100\n ];\n }\n\n private getViewportMetrics(): ViewportMetrics {\n const element = this.viewportElement;\n const style = this.window.getComputedStyle(element);\n\n return {\n blockSize: element.clientHeight,\n inlineSize: element.clientWidth,\n paddingBlockStart: parseFloat(style.paddingBlockStart) || 0,\n paddingInlineStart: parseFloat(style.paddingInlineStart) || 0\n };\n }\n\n // Start margins and insets move the sticky track from the content box to the padded scrollport;\n // end margins cancel its layout contribution.\n private applyGeometry({ blockSize, inlineSize, paddingBlockStart, paddingInlineStart }: ViewportMetrics): void {\n const setStyle = (property: string, value: number) =>\n this.renderer.setStyle(this.nativeElement, property, coerceCssPixelValue(value));\n\n // Clamped once and reused, so the size and the end margin cancel out by construction. Passing\n // the unclamped value would break that on a zero-sized viewport: CSSOM silently drops the\n // negative size while it accepts the positive margin paired with it, leaving the track a pixel\n // tall inside a scrollport that has no room for it. That pixel changes `clientHeight`, which\n // re-runs this method through the resize observer, which takes the pixel back — forever.\n const trackBlockSize = Math.max(0, blockSize - 1);\n const trackInlineSize = Math.max(0, inlineSize - 1);\n\n setStyle('blockSize', trackBlockSize);\n setStyle('marginBlockStart', -paddingBlockStart);\n setStyle('marginBlockEnd', paddingBlockStart - trackBlockSize);\n setStyle('insetBlockStart', -paddingBlockStart);\n setStyle('minInlineSize', trackInlineSize);\n setStyle('maxInlineSize', trackInlineSize);\n setStyle('marginInlineStart', -paddingInlineStart);\n setStyle('marginInlineEnd', paddingInlineStart - trackInlineSize);\n setStyle('insetInlineStart', -paddingInlineStart);\n }\n}\n\n/** Custom scrollbar wrapper: projects content and overlays a scrollbar track over it (created by its {@link KbqScrollbarViewport} host directive). */\n@Component({\n selector: 'kbq-scrollbar',\n template: `\n <div class=\"kbq-scrollbar__content\">\n <ng-content />\n </div>\n `,\n styleUrl: './scrollbar.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n hostDirectives: [\n { directive: KbqScrollbarViewport, inputs: ['kbqScrollbarMode', 'kbqScrollbarHideDelay'] }\n ],\n exportAs: 'kbqScrollbar'\n})\nexport class KbqScrollbar {\n private readonly options = inject(KBQ_SCROLLBAR_OPTIONS);\n private readonly viewport = inject(KbqScrollbarViewport);\n\n /** Visibility mode for the scrollbar. Defaults to the app-wide {@link KBQ_SCROLLBAR_OPTIONS}. */\n readonly mode = input<KbqScrollbarMode>(this.options.mode, { alias: 'kbqScrollbarMode' });\n\n /**\n * How long the scroll-revealed `hover`-mode track stays visible after scrolling stops, in milliseconds.\n * Defaults to the app-wide {@link KBQ_SCROLLBAR_OPTIONS}.\n */\n readonly hideDelay = input(this.options.hideDelay, {\n alias: 'kbqScrollbarHideDelay',\n transform: numberAttribute\n });\n\n /** Emits on every native `scroll` event of the viewport. Emits outside Angular's zone — see `CdkScrollable.elementScrolled`. */\n readonly scrollChanges = this.viewport.scrollChanges;\n\n /** The scrollbar's native scrollable element. */\n getNativeElement(): HTMLElement {\n return this.viewport.getNativeElement();\n }\n\n /** Scrolls to the specified offsets. RTL-normalized — see `CdkScrollable.scrollTo`. */\n scrollTo(options: KbqScrollbarScrollToOptions): void {\n this.viewport.scrollTo(options);\n }\n\n /** Scrolls to the start of the vertical axis. */\n scrollToTop(behavior?: ScrollBehavior): void {\n this.viewport.scrollToTop(behavior);\n }\n\n /** Scrolls to the end of the vertical axis. */\n scrollToBottom(behavior?: ScrollBehavior): void {\n this.viewport.scrollToBottom(behavior);\n }\n\n /** Scrolls to the logical start of the horizontal axis — the right edge in RTL, left in LTR. */\n scrollStart(behavior?: ScrollBehavior): void {\n this.viewport.scrollStart(behavior);\n }\n\n /** Scrolls to the logical end of the horizontal axis — the left edge in RTL, right in LTR. */\n scrollEnd(behavior?: ScrollBehavior): void {\n this.viewport.scrollEnd(behavior);\n }\n\n /** Scrolls `target` (an element, or a selector resolved against this scrollbar) into view. */\n scrollToElement(target: HTMLElement | string, options?: KbqScrollbarScrollToElementOptions): void {\n this.viewport.scrollToElement(target, options);\n }\n\n /** Scrolls `target` to the center of the viewport. */\n scrollIntoView(target: HTMLElement, behavior?: ScrollBehavior): void {\n this.viewport.scrollIntoView(target, behavior);\n }\n\n /** Briefly reveals the scrollbar track — see {@link KbqScrollbarViewport.flashScrollIndicators}. */\n flashScrollIndicators(): void {\n this.viewport.flashScrollIndicators();\n }\n}\n","import { NgModule } from '@angular/core';\nimport { KbqNativeScrollbar, KbqScrollbar, KbqScrollbarViewport } from './scrollbar';\n\nconst COMPONENTS = [\n KbqNativeScrollbar,\n KbqScrollbar,\n KbqScrollbarViewport\n];\n\n/** @docs-private */\n@NgModule({\n imports: COMPONENTS,\n exports: COMPONENTS\n})\nexport class KbqScrollbarModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}