@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,76 +1,850 @@
1
1
  import * as i0 from '@angular/core';
2
- import { ViewEncapsulation, Component, inject, input, booleanAttribute, afterRenderEffect, Directive, NgModule } from '@angular/core';
2
+ import { ViewEncapsulation, ChangeDetectionStrategy, Component, inject, NgZone, Injectable, input, booleanAttribute, afterRenderEffect, Directive, InjectionToken, numberAttribute, computed, NgModule } from '@angular/core';
3
3
  import { _CdkPrivateStyleLoader } from '@angular/cdk/private';
4
- import { kbqInjectNativeElement, KBQ_WINDOW } from '@koobiq/components/core';
4
+ import { KBQ_WINDOW, kbqInjectNativeElement, kbqAnimationsDisabled } from '@koobiq/components/core';
5
5
 
6
- /** Timestamp of the first skeleton instance — used as animation start time for sync */
7
- let animationStartTime = null;
8
- /** Count of active skeleton instances */
9
- let count = 0;
6
+ const WAVE_ANIMATION_NAME = 'kbq-skeleton-wave';
7
+ const OFFSCREEN_SELECTOR = 'kbq-skeleton_offscreen';
8
+ const findWave = (host) => host
9
+ .getAnimations()
10
+ .find((animation) => 'animationName' in animation && animation.animationName === WAVE_ANIMATION_NAME);
10
11
  /**
11
- * Component used to load the `.kbq-skeleton` styles.
12
+ * Component used to load the styles of `.kbq-skeleton` and of the presets, each of which renders a `.kbq-skeleton`.
12
13
  */
13
14
  class SkeletonStyleLoader {
14
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.30", ngImport: i0, type: SkeletonStyleLoader, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
15
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.30", type: SkeletonStyleLoader, isStandalone: true, selector: "skeleton-style-loader", ngImport: i0, template: '', isInline: true, styles: ["@keyframes wave{0%{transform:translate(calc(var(--kbq-skeleton-wave-width) * -1))}to{transform:translate(100vw)}}.kbq-skeleton:not(.kbq-skeleton_disabled){--kbq-skeleton-min-height: var(--kbq-size-l);--kbq-skeleton-animation-duration: 1.2s;--kbq-skeleton-animation-delay: 0ms;--kbq-skeleton-border-radius: var(--kbq-size-xxs);--kbq-skeleton-wave-width: 100px;--kbq-skeleton-z-index: 1}.kbq-skeleton:not(.kbq-skeleton_disabled):is(kbq-skeleton){display:flex;min-height:var(--kbq-skeleton-min-height);border-radius:var(--kbq-skeleton-border-radius)}.kbq-skeleton:not(.kbq-skeleton_disabled){position:relative;overflow:hidden;clip-path:inset(0);-webkit-user-select:none;user-select:none;pointer-events:none;border-color:transparent;outline-color:transparent}.kbq-skeleton:not(.kbq-skeleton_disabled):before{content:\"\";position:absolute;inset:0;background-color:var(--kbq-skeleton-background);z-index:var(--kbq-skeleton-z-index)}.kbq-skeleton:not(.kbq-skeleton_disabled):after{content:\"\";position:fixed;inset-block:0;left:calc(var(--kbq-skeleton-wave-width) * -1);width:var(--kbq-skeleton-wave-width);z-index:var(--kbq-skeleton-z-index);background:linear-gradient(90deg,var(--kbq-skeleton-animation-wave-start) 0%,var(--kbq-skeleton-animation-wave-center) 50%,var(--kbq-skeleton-animation-wave-end) 100%);animation:wave var(--kbq-skeleton-animation-duration) ease-in var(--kbq-skeleton-animation-delay) infinite}@media(prefers-reduced-motion:reduce){.kbq-skeleton:not(.kbq-skeleton_disabled):after{animation:none}}\n"], encapsulation: i0.ViewEncapsulation.None }); }
15
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: SkeletonStyleLoader, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
16
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.25", type: SkeletonStyleLoader, isStandalone: true, selector: "skeleton-style-loader", ngImport: i0, template: '', isInline: true, styles: ["@charset \"UTF-8\";@keyframes kbq-skeleton-wave{0%{-webkit-mask-position:calc(var(--kbq-skeleton-wave-width) * -2 - var(--kbq-skeleton-offset, 0px)) 0,0 0;mask-position:calc(var(--kbq-skeleton-wave-width) * -2 - var(--kbq-skeleton-offset, 0px)) 0,0 0}to{-webkit-mask-position:calc(100vw - var(--kbq-skeleton-wave-width) - var(--kbq-skeleton-offset, 0px)) 0,0 0;mask-position:calc(100vw - var(--kbq-skeleton-wave-width) - var(--kbq-skeleton-offset, 0px)) 0,0 0}}:where(.kbq-skeleton:not(.kbq-skeleton_disabled)){border-radius:var(--kbq-skeleton-border-radius)}:where(kbq-skeleton:not(.kbq-skeleton_disabled)){display:flex;min-height:var(--kbq-skeleton-min-height)}.kbq-skeleton:not(.kbq-skeleton_disabled){color:transparent!important;background:var(--kbq-background-bg)!important;box-shadow:none!important;-webkit-box-decoration-break:clone;box-decoration-break:clone;filter:var(--kbq-skeleton-filter);-webkit-mask-image:linear-gradient(90deg,var(--kbq-skeleton-animation-wave-start),var(--kbq-skeleton-animation-wave-center),var(--kbq-skeleton-animation-wave-end)),linear-gradient(var(--kbq-skeleton-fill),var(--kbq-skeleton-fill));mask-image:linear-gradient(90deg,var(--kbq-skeleton-animation-wave-start),var(--kbq-skeleton-animation-wave-center),var(--kbq-skeleton-animation-wave-end)),linear-gradient(var(--kbq-skeleton-fill),var(--kbq-skeleton-fill));-webkit-mask-size:var(--kbq-skeleton-wave-width) 100%,100% 100%;mask-size:var(--kbq-skeleton-wave-width) 100%,100% 100%;-webkit-mask-position:calc(var(--kbq-skeleton-wave-width) * -1) 0,0 0;mask-position:calc(var(--kbq-skeleton-wave-width) * -1) 0,0 0;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;animation:kbq-skeleton-wave var(--kbq-skeleton-animation-duration) ease-in infinite;-webkit-user-select:none;user-select:none;pointer-events:none}.kbq-skeleton:not(.kbq-skeleton_disabled).kbq-skeleton_offscreen{animation:none}.kbq-skeleton:not(.kbq-skeleton_disabled).kbq-animations-disabled{animation:none;transition:none}@media(prefers-reduced-motion:reduce){.kbq-skeleton:not(.kbq-skeleton_disabled){animation:none;transition:none}}\n", ":where(.kbq-skeleton-button,.kbq-skeleton-badge,.kbq-skeleton-tag,.kbq-skeleton-icon,.kbq-skeleton-link){display:inline-flex;flex-shrink:0;vertical-align:middle}:where(.kbq-skeleton-button){width:72px;height:var(--kbq-size-3xl)}:where(.kbq-skeleton-badge,.kbq-skeleton-tag){width:var(--kbq-size-6xl);height:var(--kbq-size-xxl)}:where(.kbq-skeleton-icon){width:var(--kbq-size-xxl);height:var(--kbq-size-xxl)}:where(.kbq-skeleton-link){width:var(--kbq-size-3xl);height:var(--kbq-size-xl)}:where(.kbq-skeleton-typography){display:flex;flex-direction:column;width:100%}:where(.kbq-skeleton-typography__line){height:calc(1lh - var(--kbq-skeleton-typography-gap));margin-block:calc(var(--kbq-skeleton-typography-gap) / 2)}:where(.kbq-skeleton-typography__line:nth-child(3n+1)){width:var(--kbq-skeleton-typography-line-width-1)}:where(.kbq-skeleton-typography__line:nth-child(3n+2)){width:var(--kbq-skeleton-typography-line-width-2)}:where(.kbq-skeleton-typography__line:nth-child(3n)){width:var(--kbq-skeleton-typography-line-width-3)}:where(.kbq-skeleton-typography__line:only-child){width:var(--kbq-skeleton-typography-single-line-width)}:where(.kbq-skeleton-dl){display:grid;grid-template-columns:var(--kbq-skeleton-dl-term-width) minmax(0,1fr);grid-auto-rows:var(--kbq-skeleton-dl-row-height);align-items:center;gap:var(--kbq-skeleton-dl-row-gap) var(--kbq-skeleton-dl-column-gap);width:100%}:where(.kbq-skeleton-dl__term,.kbq-skeleton-dl__description){height:var(--kbq-skeleton-dl-line-height)}:where(.kbq-skeleton-dl__description:nth-child(6n+2)){width:var(--kbq-skeleton-dl-line-width-1)}:where(.kbq-skeleton-dl__description:nth-child(6n+4)){width:var(--kbq-skeleton-dl-line-width-2)}:where(.kbq-skeleton-dl__description:nth-child(6n)){width:var(--kbq-skeleton-dl-line-width-3)}:where(.kbq-skeleton-table){display:grid;width:100%}:where(.kbq-skeleton-table__cell){display:flex;align-items:center;min-width:0;height:var(--kbq-skeleton-table-row-height);padding-inline:var(--kbq-skeleton-table-cell-padding-horizontal)}:where(.kbq-skeleton-table__cell_header){border-bottom:var(--kbq-skeleton-table-border-width) solid var(--kbq-skeleton-table-border-color)}:where(.kbq-skeleton-table__cell_pinned-edge){border-inline-end:var(--kbq-skeleton-table-border-width) solid var(--kbq-skeleton-table-border-color)}:where(.kbq-skeleton-table__cell>.kbq-skeleton){flex:1;height:var(--kbq-skeleton-table-line-height)}:where(.kbq-skeleton-table__cell_selection>.kbq-skeleton){flex:none;width:var(--kbq-skeleton-table-selection-size);height:var(--kbq-skeleton-table-selection-size)}:where(.kbq-skeleton-group){display:flex;flex-wrap:wrap;align-items:center;gap:var(--kbq-skeleton-group-gap)}:where(.kbq-skeleton-form-field){display:flex;flex-direction:column;width:100%}:where(.kbq-skeleton-form-field_horizontal){flex-direction:row;align-items:flex-start}:where(.kbq-skeleton-form-field__label){box-sizing:border-box;display:flex;margin-bottom:var(--kbq-skeleton-form-field-gap)}:where(.kbq-skeleton-form-field_horizontal>.kbq-skeleton-form-field__label){margin-bottom:0;padding:var(--kbq-size-xs) var(--kbq-size-l) 0 0}:where(.kbq-skeleton-form-field__label>.kbq-skeleton){width:var(--kbq-skeleton-form-field-label-width);height:var(--kbq-skeleton-form-field-line-height);margin-block:calc((var(--kbq-skeleton-form-field-label-height) - var(--kbq-skeleton-form-field-line-height)) / 2)}:where(.kbq-skeleton-form-field__content){display:flex;flex-direction:column;flex:1;min-width:0}:where(.kbq-skeleton-form-field__control){height:var(--kbq-skeleton-form-field-control-height)}:where(.kbq-skeleton-form-field_textarea .kbq-skeleton-form-field__control){height:var(--kbq-skeleton-form-field-textarea-height)}:where(.kbq-skeleton-form-field__hint){width:var(--kbq-skeleton-form-field-hint-width);height:var(--kbq-skeleton-form-field-hint-height);margin-top:var(--kbq-skeleton-form-field-gap)}:where(.kbq-skeleton-accordion){display:flex;flex-direction:column;width:100%}:where(.kbq-skeleton-accordion__item){display:flex;align-items:center;box-sizing:border-box;height:calc(var(--kbq-skeleton-accordion-header-height) + var(--kbq-skeleton-accordion-border-width) * 2);border:var(--kbq-skeleton-accordion-border-width) solid transparent;padding:var(--kbq-skeleton-accordion-padding)}:where(.kbq-skeleton-accordion__icon){flex:none;align-self:flex-start;width:var(--kbq-skeleton-accordion-icon-size);height:var(--kbq-skeleton-accordion-icon-size);margin:var(--kbq-skeleton-accordion-icon-padding)}:where(.kbq-skeleton-accordion__title){flex:1;height:var(--kbq-skeleton-accordion-line-height)}:where(.kbq-skeleton-checkable){display:flex;flex-direction:column;gap:var(--kbq-skeleton-checkable-gap)}:where(.kbq-skeleton-checkable__row){display:flex;align-items:flex-start;gap:var(--kbq-skeleton-checkable-control-gap)}:where(.kbq-skeleton-checkable__control){flex:none;width:var(--kbq-skeleton-checkable-control-width);height:var(--kbq-skeleton-checkable-control-height);margin-top:calc((var(--kbq-skeleton-checkable-label-line-height) - var(--kbq-skeleton-checkable-control-height)) / 2)}:where(.kbq-skeleton-checkable__text){display:flex;flex-direction:column}:where(.kbq-skeleton-checkable__label){height:var(--kbq-skeleton-checkable-line-height);margin-block:calc((var(--kbq-skeleton-checkable-label-line-height) - var(--kbq-skeleton-checkable-line-height)) / 2)}:where(.kbq-skeleton-checkable__row:nth-child(3n+1) .kbq-skeleton-checkable__label){width:var(--kbq-skeleton-checkable-label-width-1)}:where(.kbq-skeleton-checkable__row:nth-child(3n+2) .kbq-skeleton-checkable__label){width:var(--kbq-skeleton-checkable-label-width-2)}:where(.kbq-skeleton-checkable__row:nth-child(3n) .kbq-skeleton-checkable__label){width:var(--kbq-skeleton-checkable-label-width-3)}:where(.kbq-skeleton-checkable__hint){width:var(--kbq-skeleton-checkable-hint-width);height:var(--kbq-skeleton-checkable-hint-height);margin-top:var(--kbq-skeleton-checkable-hint-gap)}:where(.kbq-skeleton-tabs){display:flex;flex-direction:column;gap:var(--kbq-skeleton-tabs-content-gap);width:100%}:where(.kbq-skeleton-tabs_vertical){flex-direction:row}:where(.kbq-skeleton-tabs__header){display:flex;gap:var(--kbq-skeleton-tabs-gap)}:where(.kbq-skeleton-tabs_vertical>.kbq-skeleton-tabs__header){flex-direction:column;flex:none;width:var(--kbq-skeleton-tabs-vertical-width)}:where(.kbq-skeleton-tabs__tab){display:flex;align-items:center;height:var(--kbq-skeleton-tabs-tab-height)}:where(.kbq-skeleton-tabs__tab>.kbq-skeleton){width:var(--kbq-skeleton-tabs-tab-width);height:var(--kbq-skeleton-tabs-line-height)}:where(.kbq-skeleton-tabs__tab_selected>.kbq-skeleton){height:var(--kbq-skeleton-tabs-tab-height)}:where(.kbq-skeleton-tabs_vertical .kbq-skeleton-tabs__tab>.kbq-skeleton){width:100%}:where(.kbq-skeleton-tabs_vertical .kbq-skeleton-tabs__tab:not(.kbq-skeleton-tabs__tab_selected)){padding-inline:var(--kbq-skeleton-tabs-tab-padding)}:where(.kbq-skeleton-tabs__content){min-width:0}:where(.kbq-skeleton-tabs_vertical>.kbq-skeleton-tabs__content){flex:1}:where(.kbq-skeleton-tree){display:flex;flex-direction:column;width:100%}:where(.kbq-skeleton-tree__node){display:flex;align-items:center;gap:var(--kbq-skeleton-tree-gap);height:var(--kbq-skeleton-tree-node-height);padding-inline-start:var(--kbq-skeleton-tree-padding)}:where(.kbq-skeleton-tree__node_nested){padding-inline-start:calc(var(--kbq-skeleton-tree-padding) + var(--kbq-skeleton-tree-indent))}:where(.kbq-skeleton-tree__toggle){flex:none;width:var(--kbq-skeleton-tree-toggle-size);height:var(--kbq-skeleton-tree-toggle-size)}:where(.kbq-skeleton-tree__label){height:var(--kbq-skeleton-tree-line-height)}:where(.kbq-skeleton-tree__node_1>.kbq-skeleton-tree__label){width:var(--kbq-skeleton-tree-label-width-1)}:where(.kbq-skeleton-tree__node_2>.kbq-skeleton-tree__label){width:var(--kbq-skeleton-tree-label-width-2)}:where(.kbq-skeleton-tree__node_3>.kbq-skeleton-tree__label){width:var(--kbq-skeleton-tree-label-width-3)}\n", ":where(.kbq-skeleton){--kbq-skeleton-min-height: var(--kbq-size-l);--kbq-skeleton-border-radius: var(--kbq-size-xxs);--kbq-skeleton-animation-duration: 1.2s;--kbq-skeleton-wave-width: 100px}:where(.kbq-skeleton-typography){--kbq-skeleton-typography-gap: var(--kbq-size-xxs);--kbq-skeleton-typography-line-width-1: 80%;--kbq-skeleton-typography-line-width-2: 100%;--kbq-skeleton-typography-line-width-3: 60%;--kbq-skeleton-typography-single-line-width: 50%}:where(.kbq-skeleton-dl){--kbq-skeleton-dl-term-width: 120px;--kbq-skeleton-dl-line-height: var(--kbq-size-l);--kbq-skeleton-dl-row-height: var(--kbq-size-xl);--kbq-skeleton-dl-column-gap: var(--kbq-size-l);--kbq-skeleton-dl-row-gap: var(--kbq-size-l);--kbq-skeleton-dl-line-width-1: 80%;--kbq-skeleton-dl-line-width-2: 100%;--kbq-skeleton-dl-line-width-3: 60%}:where(.kbq-skeleton-table){--kbq-skeleton-table-row-height: var(--kbq-size-4xl);--kbq-skeleton-table-line-height: var(--kbq-size-l);--kbq-skeleton-table-cell-padding-horizontal: var(--kbq-size-s);--kbq-skeleton-table-border-width: var(--kbq-size-border-width);--kbq-skeleton-table-border-color: var(--kbq-line-contrast-less);--kbq-skeleton-table-selection-width: var(--kbq-size-4xl);--kbq-skeleton-table-selection-size: var(--kbq-size-l)}:where(.kbq-skeleton-group){--kbq-skeleton-group-gap: var(--kbq-size-xxs)}:where(.kbq-skeleton-group_button){--kbq-skeleton-group-gap: var(--kbq-size-s)}:where(.kbq-skeleton-form-field){--kbq-skeleton-form-field-label-width: 120px;--kbq-skeleton-form-field-label-height: var(--kbq-size-xl);--kbq-skeleton-form-field-line-height: var(--kbq-size-l);--kbq-skeleton-form-field-control-height: var(--kbq-size-3xl);--kbq-skeleton-form-field-textarea-height: 72px;--kbq-skeleton-form-field-hint-width: 60%;--kbq-skeleton-form-field-hint-height: var(--kbq-size-l);--kbq-skeleton-form-field-gap: var(--kbq-size-xs)}:where(.kbq-skeleton-accordion){--kbq-skeleton-accordion-header-height: 36px;--kbq-skeleton-accordion-border-width: 2px;--kbq-skeleton-accordion-padding: var(--kbq-size-xs) var(--kbq-size-s);--kbq-skeleton-accordion-icon-size: var(--kbq-size-l);--kbq-skeleton-accordion-icon-padding: var(--kbq-size-xxs);--kbq-skeleton-accordion-line-height: var(--kbq-size-l)}:where(.kbq-skeleton-checkable){--kbq-skeleton-checkable-gap: var(--kbq-size-s);--kbq-skeleton-checkable-control-gap: var(--kbq-size-s);--kbq-skeleton-checkable-control-width: var(--kbq-size-l);--kbq-skeleton-checkable-control-height: var(--kbq-size-l);--kbq-skeleton-checkable-label-line-height: var(--kbq-size-xl);--kbq-skeleton-checkable-line-height: var(--kbq-size-l);--kbq-skeleton-checkable-label-width-1: 120px;--kbq-skeleton-checkable-label-width-2: 140px;--kbq-skeleton-checkable-label-width-3: 80px;--kbq-skeleton-checkable-hint-width: 60%;--kbq-skeleton-checkable-hint-height: var(--kbq-size-l);--kbq-skeleton-checkable-hint-gap: var(--kbq-size-3xs)}:where(.kbq-skeleton-checkable_toggle){--kbq-skeleton-checkable-control-width: 28px}:where(.kbq-skeleton-tabs){--kbq-skeleton-tabs-tab-height: var(--kbq-size-3xl);--kbq-skeleton-tabs-tab-width: var(--kbq-size-6xl);--kbq-skeleton-tabs-tab-padding: var(--kbq-size-m);--kbq-skeleton-tabs-line-height: var(--kbq-size-l);--kbq-skeleton-tabs-gap: var(--kbq-size-s);--kbq-skeleton-tabs-content-gap: var(--kbq-size-s);--kbq-skeleton-tabs-vertical-width: 160px}:where(.kbq-skeleton-tree){--kbq-skeleton-tree-node-height: var(--kbq-size-3xl);--kbq-skeleton-tree-padding: var(--kbq-size-m);--kbq-skeleton-tree-indent: 14px;--kbq-skeleton-tree-gap: var(--kbq-size-s);--kbq-skeleton-tree-toggle-size: var(--kbq-size-l);--kbq-skeleton-tree-line-height: var(--kbq-size-l);--kbq-skeleton-tree-label-width-1: 120px;--kbq-skeleton-tree-label-width-2: 100px;--kbq-skeleton-tree-label-width-3: 80px}:where(:root,.kbq-light){--kbq-skeleton-filter: contrast(0) brightness(0);--kbq-skeleton-fill: var(--kbq-semantic-contrast-a1)}:where(.kbq-dark){--kbq-skeleton-filter: contrast(0) brightness(0) invert(1);--kbq-skeleton-fill: var(--kbq-semantic-dark-contrast-a2)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
16
17
  }
17
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.30", ngImport: i0, type: SkeletonStyleLoader, decorators: [{
18
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: SkeletonStyleLoader, decorators: [{
18
19
  type: Component,
19
- args: [{ selector: 'skeleton-style-loader', template: '', encapsulation: ViewEncapsulation.None, styles: ["@keyframes wave{0%{transform:translate(calc(var(--kbq-skeleton-wave-width) * -1))}to{transform:translate(100vw)}}.kbq-skeleton:not(.kbq-skeleton_disabled){--kbq-skeleton-min-height: var(--kbq-size-l);--kbq-skeleton-animation-duration: 1.2s;--kbq-skeleton-animation-delay: 0ms;--kbq-skeleton-border-radius: var(--kbq-size-xxs);--kbq-skeleton-wave-width: 100px;--kbq-skeleton-z-index: 1}.kbq-skeleton:not(.kbq-skeleton_disabled):is(kbq-skeleton){display:flex;min-height:var(--kbq-skeleton-min-height);border-radius:var(--kbq-skeleton-border-radius)}.kbq-skeleton:not(.kbq-skeleton_disabled){position:relative;overflow:hidden;clip-path:inset(0);-webkit-user-select:none;user-select:none;pointer-events:none;border-color:transparent;outline-color:transparent}.kbq-skeleton:not(.kbq-skeleton_disabled):before{content:\"\";position:absolute;inset:0;background-color:var(--kbq-skeleton-background);z-index:var(--kbq-skeleton-z-index)}.kbq-skeleton:not(.kbq-skeleton_disabled):after{content:\"\";position:fixed;inset-block:0;left:calc(var(--kbq-skeleton-wave-width) * -1);width:var(--kbq-skeleton-wave-width);z-index:var(--kbq-skeleton-z-index);background:linear-gradient(90deg,var(--kbq-skeleton-animation-wave-start) 0%,var(--kbq-skeleton-animation-wave-center) 50%,var(--kbq-skeleton-animation-wave-end) 100%);animation:wave var(--kbq-skeleton-animation-duration) ease-in var(--kbq-skeleton-animation-delay) infinite}@media(prefers-reduced-motion:reduce){.kbq-skeleton:not(.kbq-skeleton_disabled):after{animation:none}}\n"] }]
20
+ args: [{ selector: 'skeleton-style-loader', template: '', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, styles: ["@charset \"UTF-8\";@keyframes kbq-skeleton-wave{0%{-webkit-mask-position:calc(var(--kbq-skeleton-wave-width) * -2 - var(--kbq-skeleton-offset, 0px)) 0,0 0;mask-position:calc(var(--kbq-skeleton-wave-width) * -2 - var(--kbq-skeleton-offset, 0px)) 0,0 0}to{-webkit-mask-position:calc(100vw - var(--kbq-skeleton-wave-width) - var(--kbq-skeleton-offset, 0px)) 0,0 0;mask-position:calc(100vw - var(--kbq-skeleton-wave-width) - var(--kbq-skeleton-offset, 0px)) 0,0 0}}:where(.kbq-skeleton:not(.kbq-skeleton_disabled)){border-radius:var(--kbq-skeleton-border-radius)}:where(kbq-skeleton:not(.kbq-skeleton_disabled)){display:flex;min-height:var(--kbq-skeleton-min-height)}.kbq-skeleton:not(.kbq-skeleton_disabled){color:transparent!important;background:var(--kbq-background-bg)!important;box-shadow:none!important;-webkit-box-decoration-break:clone;box-decoration-break:clone;filter:var(--kbq-skeleton-filter);-webkit-mask-image:linear-gradient(90deg,var(--kbq-skeleton-animation-wave-start),var(--kbq-skeleton-animation-wave-center),var(--kbq-skeleton-animation-wave-end)),linear-gradient(var(--kbq-skeleton-fill),var(--kbq-skeleton-fill));mask-image:linear-gradient(90deg,var(--kbq-skeleton-animation-wave-start),var(--kbq-skeleton-animation-wave-center),var(--kbq-skeleton-animation-wave-end)),linear-gradient(var(--kbq-skeleton-fill),var(--kbq-skeleton-fill));-webkit-mask-size:var(--kbq-skeleton-wave-width) 100%,100% 100%;mask-size:var(--kbq-skeleton-wave-width) 100%,100% 100%;-webkit-mask-position:calc(var(--kbq-skeleton-wave-width) * -1) 0,0 0;mask-position:calc(var(--kbq-skeleton-wave-width) * -1) 0,0 0;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;animation:kbq-skeleton-wave var(--kbq-skeleton-animation-duration) ease-in infinite;-webkit-user-select:none;user-select:none;pointer-events:none}.kbq-skeleton:not(.kbq-skeleton_disabled).kbq-skeleton_offscreen{animation:none}.kbq-skeleton:not(.kbq-skeleton_disabled).kbq-animations-disabled{animation:none;transition:none}@media(prefers-reduced-motion:reduce){.kbq-skeleton:not(.kbq-skeleton_disabled){animation:none;transition:none}}\n", ":where(.kbq-skeleton-button,.kbq-skeleton-badge,.kbq-skeleton-tag,.kbq-skeleton-icon,.kbq-skeleton-link){display:inline-flex;flex-shrink:0;vertical-align:middle}:where(.kbq-skeleton-button){width:72px;height:var(--kbq-size-3xl)}:where(.kbq-skeleton-badge,.kbq-skeleton-tag){width:var(--kbq-size-6xl);height:var(--kbq-size-xxl)}:where(.kbq-skeleton-icon){width:var(--kbq-size-xxl);height:var(--kbq-size-xxl)}:where(.kbq-skeleton-link){width:var(--kbq-size-3xl);height:var(--kbq-size-xl)}:where(.kbq-skeleton-typography){display:flex;flex-direction:column;width:100%}:where(.kbq-skeleton-typography__line){height:calc(1lh - var(--kbq-skeleton-typography-gap));margin-block:calc(var(--kbq-skeleton-typography-gap) / 2)}:where(.kbq-skeleton-typography__line:nth-child(3n+1)){width:var(--kbq-skeleton-typography-line-width-1)}:where(.kbq-skeleton-typography__line:nth-child(3n+2)){width:var(--kbq-skeleton-typography-line-width-2)}:where(.kbq-skeleton-typography__line:nth-child(3n)){width:var(--kbq-skeleton-typography-line-width-3)}:where(.kbq-skeleton-typography__line:only-child){width:var(--kbq-skeleton-typography-single-line-width)}:where(.kbq-skeleton-dl){display:grid;grid-template-columns:var(--kbq-skeleton-dl-term-width) minmax(0,1fr);grid-auto-rows:var(--kbq-skeleton-dl-row-height);align-items:center;gap:var(--kbq-skeleton-dl-row-gap) var(--kbq-skeleton-dl-column-gap);width:100%}:where(.kbq-skeleton-dl__term,.kbq-skeleton-dl__description){height:var(--kbq-skeleton-dl-line-height)}:where(.kbq-skeleton-dl__description:nth-child(6n+2)){width:var(--kbq-skeleton-dl-line-width-1)}:where(.kbq-skeleton-dl__description:nth-child(6n+4)){width:var(--kbq-skeleton-dl-line-width-2)}:where(.kbq-skeleton-dl__description:nth-child(6n)){width:var(--kbq-skeleton-dl-line-width-3)}:where(.kbq-skeleton-table){display:grid;width:100%}:where(.kbq-skeleton-table__cell){display:flex;align-items:center;min-width:0;height:var(--kbq-skeleton-table-row-height);padding-inline:var(--kbq-skeleton-table-cell-padding-horizontal)}:where(.kbq-skeleton-table__cell_header){border-bottom:var(--kbq-skeleton-table-border-width) solid var(--kbq-skeleton-table-border-color)}:where(.kbq-skeleton-table__cell_pinned-edge){border-inline-end:var(--kbq-skeleton-table-border-width) solid var(--kbq-skeleton-table-border-color)}:where(.kbq-skeleton-table__cell>.kbq-skeleton){flex:1;height:var(--kbq-skeleton-table-line-height)}:where(.kbq-skeleton-table__cell_selection>.kbq-skeleton){flex:none;width:var(--kbq-skeleton-table-selection-size);height:var(--kbq-skeleton-table-selection-size)}:where(.kbq-skeleton-group){display:flex;flex-wrap:wrap;align-items:center;gap:var(--kbq-skeleton-group-gap)}:where(.kbq-skeleton-form-field){display:flex;flex-direction:column;width:100%}:where(.kbq-skeleton-form-field_horizontal){flex-direction:row;align-items:flex-start}:where(.kbq-skeleton-form-field__label){box-sizing:border-box;display:flex;margin-bottom:var(--kbq-skeleton-form-field-gap)}:where(.kbq-skeleton-form-field_horizontal>.kbq-skeleton-form-field__label){margin-bottom:0;padding:var(--kbq-size-xs) var(--kbq-size-l) 0 0}:where(.kbq-skeleton-form-field__label>.kbq-skeleton){width:var(--kbq-skeleton-form-field-label-width);height:var(--kbq-skeleton-form-field-line-height);margin-block:calc((var(--kbq-skeleton-form-field-label-height) - var(--kbq-skeleton-form-field-line-height)) / 2)}:where(.kbq-skeleton-form-field__content){display:flex;flex-direction:column;flex:1;min-width:0}:where(.kbq-skeleton-form-field__control){height:var(--kbq-skeleton-form-field-control-height)}:where(.kbq-skeleton-form-field_textarea .kbq-skeleton-form-field__control){height:var(--kbq-skeleton-form-field-textarea-height)}:where(.kbq-skeleton-form-field__hint){width:var(--kbq-skeleton-form-field-hint-width);height:var(--kbq-skeleton-form-field-hint-height);margin-top:var(--kbq-skeleton-form-field-gap)}:where(.kbq-skeleton-accordion){display:flex;flex-direction:column;width:100%}:where(.kbq-skeleton-accordion__item){display:flex;align-items:center;box-sizing:border-box;height:calc(var(--kbq-skeleton-accordion-header-height) + var(--kbq-skeleton-accordion-border-width) * 2);border:var(--kbq-skeleton-accordion-border-width) solid transparent;padding:var(--kbq-skeleton-accordion-padding)}:where(.kbq-skeleton-accordion__icon){flex:none;align-self:flex-start;width:var(--kbq-skeleton-accordion-icon-size);height:var(--kbq-skeleton-accordion-icon-size);margin:var(--kbq-skeleton-accordion-icon-padding)}:where(.kbq-skeleton-accordion__title){flex:1;height:var(--kbq-skeleton-accordion-line-height)}:where(.kbq-skeleton-checkable){display:flex;flex-direction:column;gap:var(--kbq-skeleton-checkable-gap)}:where(.kbq-skeleton-checkable__row){display:flex;align-items:flex-start;gap:var(--kbq-skeleton-checkable-control-gap)}:where(.kbq-skeleton-checkable__control){flex:none;width:var(--kbq-skeleton-checkable-control-width);height:var(--kbq-skeleton-checkable-control-height);margin-top:calc((var(--kbq-skeleton-checkable-label-line-height) - var(--kbq-skeleton-checkable-control-height)) / 2)}:where(.kbq-skeleton-checkable__text){display:flex;flex-direction:column}:where(.kbq-skeleton-checkable__label){height:var(--kbq-skeleton-checkable-line-height);margin-block:calc((var(--kbq-skeleton-checkable-label-line-height) - var(--kbq-skeleton-checkable-line-height)) / 2)}:where(.kbq-skeleton-checkable__row:nth-child(3n+1) .kbq-skeleton-checkable__label){width:var(--kbq-skeleton-checkable-label-width-1)}:where(.kbq-skeleton-checkable__row:nth-child(3n+2) .kbq-skeleton-checkable__label){width:var(--kbq-skeleton-checkable-label-width-2)}:where(.kbq-skeleton-checkable__row:nth-child(3n) .kbq-skeleton-checkable__label){width:var(--kbq-skeleton-checkable-label-width-3)}:where(.kbq-skeleton-checkable__hint){width:var(--kbq-skeleton-checkable-hint-width);height:var(--kbq-skeleton-checkable-hint-height);margin-top:var(--kbq-skeleton-checkable-hint-gap)}:where(.kbq-skeleton-tabs){display:flex;flex-direction:column;gap:var(--kbq-skeleton-tabs-content-gap);width:100%}:where(.kbq-skeleton-tabs_vertical){flex-direction:row}:where(.kbq-skeleton-tabs__header){display:flex;gap:var(--kbq-skeleton-tabs-gap)}:where(.kbq-skeleton-tabs_vertical>.kbq-skeleton-tabs__header){flex-direction:column;flex:none;width:var(--kbq-skeleton-tabs-vertical-width)}:where(.kbq-skeleton-tabs__tab){display:flex;align-items:center;height:var(--kbq-skeleton-tabs-tab-height)}:where(.kbq-skeleton-tabs__tab>.kbq-skeleton){width:var(--kbq-skeleton-tabs-tab-width);height:var(--kbq-skeleton-tabs-line-height)}:where(.kbq-skeleton-tabs__tab_selected>.kbq-skeleton){height:var(--kbq-skeleton-tabs-tab-height)}:where(.kbq-skeleton-tabs_vertical .kbq-skeleton-tabs__tab>.kbq-skeleton){width:100%}:where(.kbq-skeleton-tabs_vertical .kbq-skeleton-tabs__tab:not(.kbq-skeleton-tabs__tab_selected)){padding-inline:var(--kbq-skeleton-tabs-tab-padding)}:where(.kbq-skeleton-tabs__content){min-width:0}:where(.kbq-skeleton-tabs_vertical>.kbq-skeleton-tabs__content){flex:1}:where(.kbq-skeleton-tree){display:flex;flex-direction:column;width:100%}:where(.kbq-skeleton-tree__node){display:flex;align-items:center;gap:var(--kbq-skeleton-tree-gap);height:var(--kbq-skeleton-tree-node-height);padding-inline-start:var(--kbq-skeleton-tree-padding)}:where(.kbq-skeleton-tree__node_nested){padding-inline-start:calc(var(--kbq-skeleton-tree-padding) + var(--kbq-skeleton-tree-indent))}:where(.kbq-skeleton-tree__toggle){flex:none;width:var(--kbq-skeleton-tree-toggle-size);height:var(--kbq-skeleton-tree-toggle-size)}:where(.kbq-skeleton-tree__label){height:var(--kbq-skeleton-tree-line-height)}:where(.kbq-skeleton-tree__node_1>.kbq-skeleton-tree__label){width:var(--kbq-skeleton-tree-label-width-1)}:where(.kbq-skeleton-tree__node_2>.kbq-skeleton-tree__label){width:var(--kbq-skeleton-tree-label-width-2)}:where(.kbq-skeleton-tree__node_3>.kbq-skeleton-tree__label){width:var(--kbq-skeleton-tree-label-width-3)}\n", ":where(.kbq-skeleton){--kbq-skeleton-min-height: var(--kbq-size-l);--kbq-skeleton-border-radius: var(--kbq-size-xxs);--kbq-skeleton-animation-duration: 1.2s;--kbq-skeleton-wave-width: 100px}:where(.kbq-skeleton-typography){--kbq-skeleton-typography-gap: var(--kbq-size-xxs);--kbq-skeleton-typography-line-width-1: 80%;--kbq-skeleton-typography-line-width-2: 100%;--kbq-skeleton-typography-line-width-3: 60%;--kbq-skeleton-typography-single-line-width: 50%}:where(.kbq-skeleton-dl){--kbq-skeleton-dl-term-width: 120px;--kbq-skeleton-dl-line-height: var(--kbq-size-l);--kbq-skeleton-dl-row-height: var(--kbq-size-xl);--kbq-skeleton-dl-column-gap: var(--kbq-size-l);--kbq-skeleton-dl-row-gap: var(--kbq-size-l);--kbq-skeleton-dl-line-width-1: 80%;--kbq-skeleton-dl-line-width-2: 100%;--kbq-skeleton-dl-line-width-3: 60%}:where(.kbq-skeleton-table){--kbq-skeleton-table-row-height: var(--kbq-size-4xl);--kbq-skeleton-table-line-height: var(--kbq-size-l);--kbq-skeleton-table-cell-padding-horizontal: var(--kbq-size-s);--kbq-skeleton-table-border-width: var(--kbq-size-border-width);--kbq-skeleton-table-border-color: var(--kbq-line-contrast-less);--kbq-skeleton-table-selection-width: var(--kbq-size-4xl);--kbq-skeleton-table-selection-size: var(--kbq-size-l)}:where(.kbq-skeleton-group){--kbq-skeleton-group-gap: var(--kbq-size-xxs)}:where(.kbq-skeleton-group_button){--kbq-skeleton-group-gap: var(--kbq-size-s)}:where(.kbq-skeleton-form-field){--kbq-skeleton-form-field-label-width: 120px;--kbq-skeleton-form-field-label-height: var(--kbq-size-xl);--kbq-skeleton-form-field-line-height: var(--kbq-size-l);--kbq-skeleton-form-field-control-height: var(--kbq-size-3xl);--kbq-skeleton-form-field-textarea-height: 72px;--kbq-skeleton-form-field-hint-width: 60%;--kbq-skeleton-form-field-hint-height: var(--kbq-size-l);--kbq-skeleton-form-field-gap: var(--kbq-size-xs)}:where(.kbq-skeleton-accordion){--kbq-skeleton-accordion-header-height: 36px;--kbq-skeleton-accordion-border-width: 2px;--kbq-skeleton-accordion-padding: var(--kbq-size-xs) var(--kbq-size-s);--kbq-skeleton-accordion-icon-size: var(--kbq-size-l);--kbq-skeleton-accordion-icon-padding: var(--kbq-size-xxs);--kbq-skeleton-accordion-line-height: var(--kbq-size-l)}:where(.kbq-skeleton-checkable){--kbq-skeleton-checkable-gap: var(--kbq-size-s);--kbq-skeleton-checkable-control-gap: var(--kbq-size-s);--kbq-skeleton-checkable-control-width: var(--kbq-size-l);--kbq-skeleton-checkable-control-height: var(--kbq-size-l);--kbq-skeleton-checkable-label-line-height: var(--kbq-size-xl);--kbq-skeleton-checkable-line-height: var(--kbq-size-l);--kbq-skeleton-checkable-label-width-1: 120px;--kbq-skeleton-checkable-label-width-2: 140px;--kbq-skeleton-checkable-label-width-3: 80px;--kbq-skeleton-checkable-hint-width: 60%;--kbq-skeleton-checkable-hint-height: var(--kbq-size-l);--kbq-skeleton-checkable-hint-gap: var(--kbq-size-3xs)}:where(.kbq-skeleton-checkable_toggle){--kbq-skeleton-checkable-control-width: 28px}:where(.kbq-skeleton-tabs){--kbq-skeleton-tabs-tab-height: var(--kbq-size-3xl);--kbq-skeleton-tabs-tab-width: var(--kbq-size-6xl);--kbq-skeleton-tabs-tab-padding: var(--kbq-size-m);--kbq-skeleton-tabs-line-height: var(--kbq-size-l);--kbq-skeleton-tabs-gap: var(--kbq-size-s);--kbq-skeleton-tabs-content-gap: var(--kbq-size-s);--kbq-skeleton-tabs-vertical-width: 160px}:where(.kbq-skeleton-tree){--kbq-skeleton-tree-node-height: var(--kbq-size-3xl);--kbq-skeleton-tree-padding: var(--kbq-size-m);--kbq-skeleton-tree-indent: 14px;--kbq-skeleton-tree-gap: var(--kbq-size-s);--kbq-skeleton-tree-toggle-size: var(--kbq-size-l);--kbq-skeleton-tree-line-height: var(--kbq-size-l);--kbq-skeleton-tree-label-width-1: 120px;--kbq-skeleton-tree-label-width-2: 100px;--kbq-skeleton-tree-label-width-3: 80px}:where(:root,.kbq-light){--kbq-skeleton-filter: contrast(0) brightness(0);--kbq-skeleton-fill: var(--kbq-semantic-contrast-a1)}:where(.kbq-dark){--kbq-skeleton-filter: contrast(0) brightness(0) invert(1);--kbq-skeleton-fill: var(--kbq-semantic-dark-contrast-a2)}\n"] }]
21
+ }] });
22
+ /**
23
+ * The single wave shared by every skeleton on the page. Hosts outside the viewport stop animating, the ones that
24
+ * animate are pinned to one start time, and their offsets are measured in one batch per frame.
25
+ *
26
+ * Everything here runs outside Angular: none of it changes a binding, and a wave pass must not start change
27
+ * detection once per skeleton.
28
+ */
29
+ class SkeletonWave {
30
+ constructor() {
31
+ // Widened because TypeScript declares the observer constructors on `globalThis` rather than on `Window`.
32
+ this.window = inject(KBQ_WINDOW);
33
+ this.ngZone = inject(NgZone);
34
+ this.observer = this.createObserver();
35
+ this.hosts = new Set();
36
+ /** Hosts waiting to be measured, with whether their wave has just started and needs to be pinned. */
37
+ this.pending = new Map();
38
+ this.frame = null;
39
+ this.startTime = null;
40
+ }
41
+ /** Adds a host to the wave and returns the function that removes it. */
42
+ add(host) {
43
+ const onAnimationEvent = ({ target, type, animationName }) => {
44
+ if (target === host && animationName === WAVE_ANIMATION_NAME)
45
+ this.schedule(host, type === 'animationstart');
46
+ };
47
+ this.hosts.add(host);
48
+ this.ngZone.runOutsideAngular(() => {
49
+ host.addEventListener('animationstart', onAnimationEvent);
50
+ host.addEventListener('animationiteration', onAnimationEvent);
51
+ });
52
+ this.observer?.observe(host);
53
+ return () => {
54
+ this.hosts.delete(host);
55
+ host.removeEventListener('animationstart', onAnimationEvent);
56
+ host.removeEventListener('animationiteration', onAnimationEvent);
57
+ this.observer?.unobserve(host);
58
+ host.classList.remove(OFFSCREEN_SELECTOR);
59
+ host.style.removeProperty('--kbq-skeleton-offset');
60
+ this.pending.delete(host);
61
+ if (!this.hosts.size) {
62
+ this.startTime = null;
63
+ }
64
+ };
65
+ }
66
+ createObserver() {
67
+ const view = this.window;
68
+ // Missing on the server and in jsdom: the wave then simply runs on every host.
69
+ if (typeof view.IntersectionObserver !== 'function')
70
+ return null;
71
+ // The margin starts the wave just before a host scrolls in.
72
+ return this.ngZone.runOutsideAngular(() => new view.IntersectionObserver((entries) => {
73
+ for (const { target, isIntersecting } of entries) {
74
+ // Entries queued before `unobserve` are still delivered, for hosts that have left.
75
+ if (this.hosts.has(target)) {
76
+ target.classList.toggle(OFFSCREEN_SELECTOR, !isIntersecting);
77
+ }
78
+ }
79
+ }, { rootMargin: '100px' }));
80
+ }
81
+ schedule(host, sync) {
82
+ this.pending.set(host, sync || !!this.pending.get(host));
83
+ this.frame ??= this.window.requestAnimationFrame(() => this.flush());
84
+ }
85
+ // Every host is read before any is written: a whole row of skeletons then costs one style and layout flush
86
+ // instead of one per host.
87
+ flush() {
88
+ const hosts = [...this.pending].map(([host, sync]) => ({
89
+ host,
90
+ offset: `${host.getBoundingClientRect().left}px`,
91
+ wave: sync ? findWave(host) : undefined
92
+ }));
93
+ this.pending.clear();
94
+ this.frame = null;
95
+ for (const { host, offset, wave } of hosts) {
96
+ if (wave) {
97
+ this.startTime ??= wave.startTime;
98
+ // Still unresolved on a wave that has not started yet: setting it would pause the wave.
99
+ if (this.startTime !== null) {
100
+ wave.startTime = this.startTime;
101
+ }
102
+ }
103
+ // Writing an unchanged offset back would invalidate the host's style for nothing.
104
+ if (host.style.getPropertyValue('--kbq-skeleton-offset') !== offset) {
105
+ host.style.setProperty('--kbq-skeleton-offset', offset);
106
+ }
107
+ }
108
+ }
109
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: SkeletonWave, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
110
+ /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: SkeletonWave, providedIn: 'root' }); }
111
+ }
112
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: SkeletonWave, decorators: [{
113
+ type: Injectable,
114
+ args: [{ providedIn: 'root' }]
20
115
  }] });
21
116
  /**
22
117
  * Directive representing a skeleton placeholder.
118
+ *
119
+ * Paints the host, children included, as one flat shape of the host's own outline with a wave running across it,
120
+ * and makes the host inert: it leaves the tab order and the accessibility tree until the skeleton is disabled.
23
121
  */
24
122
  class KbqSkeleton {
25
123
  constructor() {
26
124
  this.styleLoader = inject(_CdkPrivateStyleLoader);
27
125
  this.element = kbqInjectNativeElement();
28
- this.window = inject(KBQ_WINDOW);
126
+ this.wave = inject(SkeletonWave);
29
127
  /** Whether the skeleton is enabled. */
30
- this.enabled = input(true, ...(ngDevMode ? [{ debugName: "enabled", transform: booleanAttribute, alias: 'kbqSkeleton' }] : [{ transform: booleanAttribute, alias: 'kbqSkeleton' }]));
31
- count++;
128
+ this.enabled = input(true, { ...(ngDevMode ? { debugName: "enabled" } : /* istanbul ignore next */ {}), transform: booleanAttribute, alias: 'kbqSkeleton' });
129
+ /**
130
+ * Whether the fill stands still, without the wave.
131
+ *
132
+ * @docs-private
133
+ */
134
+ this.animationsDisabled = kbqAnimationsDisabled();
32
135
  this.styleLoader.load(SkeletonStyleLoader);
33
- afterRenderEffect(() => {
34
- if (!this.enabled())
35
- return;
36
- const enabledAt = Date.now();
37
- animationStartTime ??= enabledAt;
38
- this.syncAnimation(enabledAt);
136
+ afterRenderEffect((onCleanup) => {
137
+ if (this.enabled()) {
138
+ onCleanup(this.wave.add(this.element));
139
+ }
39
140
  });
40
141
  }
41
- ngOnDestroy() {
42
- if (--count === 0) {
43
- animationStartTime = null;
44
- }
45
- }
46
- syncAnimation(enabledAt) {
47
- const elapsed = enabledAt - (animationStartTime ?? 0);
48
- const durationMs = parseFloat(this.window.getComputedStyle(this.element).getPropertyValue('--kbq-skeleton-animation-duration'));
49
- const delay = -(elapsed % durationMs);
50
- this.element.style.setProperty('--kbq-skeleton-animation-delay', `${delay}ms`);
51
- }
52
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.30", ngImport: i0, type: KbqSkeleton, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
53
- /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.30", type: KbqSkeleton, isStandalone: true, selector: "kbq-skeleton, [kbqSkeleton]", inputs: { enabled: { classPropertyName: "enabled", publicName: "kbqSkeleton", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.kbq-skeleton_disabled": "!enabled()" }, classAttribute: "kbq-skeleton" }, exportAs: ["kbqSkeleton"], ngImport: i0 }); }
142
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: KbqSkeleton, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
143
+ /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.25", type: KbqSkeleton, isStandalone: true, selector: "kbq-skeleton, [kbqSkeleton]", inputs: { enabled: { classPropertyName: "enabled", publicName: "kbqSkeleton", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.kbq-skeleton_disabled": "!enabled()", "class.kbq-animations-disabled": "animationsDisabled", "attr.inert": "enabled() || null" }, classAttribute: "kbq-skeleton" }, exportAs: ["kbqSkeleton"], ngImport: i0 }); }
54
144
  }
55
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.30", ngImport: i0, type: KbqSkeleton, decorators: [{
145
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: KbqSkeleton, decorators: [{
56
146
  type: Directive,
57
147
  args: [{
58
148
  selector: 'kbq-skeleton, [kbqSkeleton]',
59
149
  host: {
60
150
  class: 'kbq-skeleton',
61
- '[class.kbq-skeleton_disabled]': '!enabled()'
151
+ '[class.kbq-skeleton_disabled]': '!enabled()',
152
+ '[class.kbq-animations-disabled]': 'animationsDisabled',
153
+ '[attr.inert]': 'enabled() || null'
62
154
  },
63
155
  exportAs: 'kbqSkeleton'
64
156
  }]
65
157
  }], ctorParameters: () => [], propDecorators: { enabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "kbqSkeleton", required: false }] }] } });
66
158
 
67
- const COMPONENTS = [KbqSkeleton];
159
+ const KBQ_SKELETON_PRESETS_DEFAULT_CONFIGURATION = {
160
+ typographyLines: 1,
161
+ dlRows: 3,
162
+ tableRows: 3,
163
+ tableColumns: 3,
164
+ groupCount: 3,
165
+ accordionRows: 3,
166
+ checkableRows: 1,
167
+ tabsCount: 3,
168
+ tabsContentLines: 3,
169
+ treeRows: 3,
170
+ treeChildren: 3
171
+ };
172
+ /** Numbers of items of the skeleton presets. */
173
+ const KBQ_SKELETON_PRESETS_CONFIGURATION = new InjectionToken('KBQ_SKELETON_PRESETS_CONFIGURATION', { factory: () => KBQ_SKELETON_PRESETS_DEFAULT_CONFIGURATION });
174
+ /**
175
+ * Utility provider for `KBQ_SKELETON_PRESETS_CONFIGURATION`, for an application or a part of it. The keys it leaves
176
+ * out keep the values of the closest provider above.
177
+ */
178
+ const kbqSkeletonPresetsConfigurationProvider = (configuration) => ({
179
+ provide: KBQ_SKELETON_PRESETS_CONFIGURATION,
180
+ useFactory: () => ({
181
+ ...KBQ_SKELETON_PRESETS_DEFAULT_CONFIGURATION,
182
+ ...inject(KBQ_SKELETON_PRESETS_CONFIGURATION, { skipSelf: true, optional: true }),
183
+ ...configuration
184
+ })
185
+ });
186
+ /** Indexes of `count` items, for a `@for` that repeats a placeholder; a single one for a count that is not a number. */
187
+ const range = (count) => Array.from({ length: Number.isFinite(count) ? count : 1 }, (_, index) => index);
188
+ /** Placeholder of a button whose data has not loaded yet. */
189
+ class KbqSkeletonButton {
190
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: KbqSkeletonButton, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
191
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.25", type: KbqSkeletonButton, isStandalone: true, selector: "kbq-skeleton-button", host: { classAttribute: "kbq-skeleton-button" }, hostDirectives: [{ directive: KbqSkeleton }], ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
192
+ }
193
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: KbqSkeletonButton, decorators: [{
194
+ type: Component,
195
+ args: [{
196
+ selector: 'kbq-skeleton-button',
197
+ template: '',
198
+ changeDetection: ChangeDetectionStrategy.OnPush,
199
+ encapsulation: ViewEncapsulation.None,
200
+ host: { class: 'kbq-skeleton-button' },
201
+ hostDirectives: [KbqSkeleton]
202
+ }]
203
+ }] });
204
+ /** Placeholder of a badge whose data has not loaded yet. */
205
+ class KbqSkeletonBadge {
206
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: KbqSkeletonBadge, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
207
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.25", type: KbqSkeletonBadge, isStandalone: true, selector: "kbq-skeleton-badge", host: { classAttribute: "kbq-skeleton-badge" }, hostDirectives: [{ directive: KbqSkeleton }], ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
208
+ }
209
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: KbqSkeletonBadge, decorators: [{
210
+ type: Component,
211
+ args: [{
212
+ selector: 'kbq-skeleton-badge',
213
+ template: '',
214
+ changeDetection: ChangeDetectionStrategy.OnPush,
215
+ encapsulation: ViewEncapsulation.None,
216
+ host: { class: 'kbq-skeleton-badge' },
217
+ hostDirectives: [KbqSkeleton]
218
+ }]
219
+ }] });
220
+ /** Placeholder of a tag whose data has not loaded yet. */
221
+ class KbqSkeletonTag {
222
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: KbqSkeletonTag, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
223
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.25", type: KbqSkeletonTag, isStandalone: true, selector: "kbq-skeleton-tag", host: { classAttribute: "kbq-skeleton-tag" }, hostDirectives: [{ directive: KbqSkeleton }], ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
224
+ }
225
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: KbqSkeletonTag, decorators: [{
226
+ type: Component,
227
+ args: [{
228
+ selector: 'kbq-skeleton-tag',
229
+ template: '',
230
+ changeDetection: ChangeDetectionStrategy.OnPush,
231
+ encapsulation: ViewEncapsulation.None,
232
+ host: { class: 'kbq-skeleton-tag' },
233
+ hostDirectives: [KbqSkeleton]
234
+ }]
235
+ }] });
236
+ /** Placeholder of an icon or an icon button whose data has not loaded yet. */
237
+ class KbqSkeletonIcon {
238
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: KbqSkeletonIcon, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
239
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.25", type: KbqSkeletonIcon, isStandalone: true, selector: "kbq-skeleton-icon", host: { classAttribute: "kbq-skeleton-icon" }, hostDirectives: [{ directive: KbqSkeleton }], ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
240
+ }
241
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: KbqSkeletonIcon, decorators: [{
242
+ type: Component,
243
+ args: [{
244
+ selector: 'kbq-skeleton-icon',
245
+ template: '',
246
+ changeDetection: ChangeDetectionStrategy.OnPush,
247
+ encapsulation: ViewEncapsulation.None,
248
+ host: { class: 'kbq-skeleton-icon' },
249
+ hostDirectives: [KbqSkeleton]
250
+ }]
251
+ }] });
252
+ /** Placeholder of a link whose data has not loaded yet. */
253
+ class KbqSkeletonLink {
254
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: KbqSkeletonLink, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
255
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.25", type: KbqSkeletonLink, isStandalone: true, selector: "kbq-skeleton-link", host: { classAttribute: "kbq-skeleton-link" }, hostDirectives: [{ directive: KbqSkeleton }], ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
256
+ }
257
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: KbqSkeletonLink, decorators: [{
258
+ type: Component,
259
+ args: [{
260
+ selector: 'kbq-skeleton-link',
261
+ template: '',
262
+ changeDetection: ChangeDetectionStrategy.OnPush,
263
+ encapsulation: ViewEncapsulation.None,
264
+ host: { class: 'kbq-skeleton-link' },
265
+ hostDirectives: [KbqSkeleton]
266
+ }]
267
+ }] });
268
+ /**
269
+ * Placeholder of text that has not loaded yet: lines as tall as the lines of its typography level, a line of body text
270
+ * by default. A single line, such as a heading, is shorter than the lines of a paragraph, which differ in length.
271
+ */
272
+ class KbqSkeletonTypography {
273
+ constructor() {
274
+ this.configuration = inject(KBQ_SKELETON_PRESETS_CONFIGURATION);
275
+ /** Typography level of the text, the name of its class without `kbq-`, such as `title` or `caps-compact`. */
276
+ this.level = input('text-normal', ...(ngDevMode ? [{ debugName: "level" }] : /* istanbul ignore next */ []));
277
+ /** Number of lines, `typographyLines` of `KBQ_SKELETON_PRESETS_CONFIGURATION` by default. */
278
+ this.lines = input(this.configuration.typographyLines, { ...(ngDevMode ? { debugName: "lines" } : /* istanbul ignore next */ {}), transform: numberAttribute });
279
+ this.lineList = computed(() => range(this.lines()), ...(ngDevMode ? [{ debugName: "lineList" }] : /* istanbul ignore next */ []));
280
+ this.levelClass = computed(() => `kbq-${this.level()}`, ...(ngDevMode ? [{ debugName: "levelClass" }] : /* istanbul ignore next */ []));
281
+ }
282
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: KbqSkeletonTypography, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
283
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.25", type: KbqSkeletonTypography, isStandalone: true, selector: "kbq-skeleton-typography", inputs: { level: { classPropertyName: "level", publicName: "level", isSignal: true, isRequired: false, transformFunction: null }, lines: { classPropertyName: "lines", publicName: "lines", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "levelClass()" }, classAttribute: "kbq-skeleton-typography" }, ngImport: i0, template: `
284
+ @for (line of lineList(); track line) {
285
+ <div kbqSkeleton class="kbq-skeleton-typography__line"></div>
286
+ }
287
+ `, isInline: true, dependencies: [{ kind: "directive", type: KbqSkeleton, selector: "kbq-skeleton, [kbqSkeleton]", inputs: ["kbqSkeleton"], exportAs: ["kbqSkeleton"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
288
+ }
289
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: KbqSkeletonTypography, decorators: [{
290
+ type: Component,
291
+ args: [{
292
+ selector: 'kbq-skeleton-typography',
293
+ imports: [KbqSkeleton],
294
+ template: `
295
+ @for (line of lineList(); track line) {
296
+ <div kbqSkeleton class="kbq-skeleton-typography__line"></div>
297
+ }
298
+ `,
299
+ changeDetection: ChangeDetectionStrategy.OnPush,
300
+ encapsulation: ViewEncapsulation.None,
301
+ host: {
302
+ class: 'kbq-skeleton-typography',
303
+ '[class]': 'levelClass()'
304
+ }
305
+ }]
306
+ }], propDecorators: { level: [{ type: i0.Input, args: [{ isSignal: true, alias: "level", required: false }] }], lines: [{ type: i0.Input, args: [{ isSignal: true, alias: "lines", required: false }] }] } });
307
+ /** Placeholder of a description list whose data has not loaded yet. */
308
+ class KbqSkeletonDl {
309
+ constructor() {
310
+ this.configuration = inject(KBQ_SKELETON_PRESETS_CONFIGURATION);
311
+ /** Number of terms with their descriptions, `dlRows` of `KBQ_SKELETON_PRESETS_CONFIGURATION` by default. */
312
+ this.rows = input(this.configuration.dlRows, { ...(ngDevMode ? { debugName: "rows" } : /* istanbul ignore next */ {}), transform: numberAttribute });
313
+ this.rowList = computed(() => range(this.rows()), ...(ngDevMode ? [{ debugName: "rowList" }] : /* istanbul ignore next */ []));
314
+ }
315
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: KbqSkeletonDl, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
316
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.25", type: KbqSkeletonDl, isStandalone: true, selector: "kbq-skeleton-dl", inputs: { rows: { classPropertyName: "rows", publicName: "rows", isSignal: true, isRequired: false, transformFunction: null } }, host: { classAttribute: "kbq-skeleton-dl" }, ngImport: i0, template: `
317
+ @for (row of rowList(); track row) {
318
+ <div kbqSkeleton class="kbq-skeleton-dl__term"></div>
319
+ <div kbqSkeleton class="kbq-skeleton-dl__description"></div>
320
+ }
321
+ `, isInline: true, dependencies: [{ kind: "directive", type: KbqSkeleton, selector: "kbq-skeleton, [kbqSkeleton]", inputs: ["kbqSkeleton"], exportAs: ["kbqSkeleton"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
322
+ }
323
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: KbqSkeletonDl, decorators: [{
324
+ type: Component,
325
+ args: [{
326
+ selector: 'kbq-skeleton-dl',
327
+ imports: [KbqSkeleton],
328
+ template: `
329
+ @for (row of rowList(); track row) {
330
+ <div kbqSkeleton class="kbq-skeleton-dl__term"></div>
331
+ <div kbqSkeleton class="kbq-skeleton-dl__description"></div>
332
+ }
333
+ `,
334
+ changeDetection: ChangeDetectionStrategy.OnPush,
335
+ encapsulation: ViewEncapsulation.None,
336
+ host: { class: 'kbq-skeleton-dl' }
337
+ }]
338
+ }], propDecorators: { rows: [{ type: i0.Input, args: [{ isSignal: true, alias: "rows", required: false }] }] } });
339
+ const equalColumns = (count) => range(count).map(() => 'minmax(0, 1fr)');
340
+ const toColumns = (value) => typeof value === 'object' ? value : equalColumns(numberAttribute(value));
341
+ /** Placeholder of a table whose data has not loaded yet. */
342
+ class KbqSkeletonTable {
343
+ constructor() {
344
+ this.configuration = inject(KBQ_SKELETON_PRESETS_CONFIGURATION);
345
+ /** Number of rows below the header, `tableRows` of `KBQ_SKELETON_PRESETS_CONFIGURATION` by default. */
346
+ this.rows = input(this.configuration.tableRows, { ...(ngDevMode ? { debugName: "rows" } : /* istanbul ignore next */ {}), transform: numberAttribute });
347
+ /**
348
+ * Number of columns of equal width, `tableColumns` of `KBQ_SKELETON_PRESETS_CONFIGURATION` by default, or the
349
+ * width of every column as a CSS grid track, such as `160px`, `1fr` or `auto`, for a table whose columns are known.
350
+ */
351
+ this.columns = input(equalColumns(this.configuration.tableColumns), { ...(ngDevMode ? { debugName: "columns" } : /* istanbul ignore next */ {}), transform: toColumns });
352
+ /** Whether the table has a header row. */
353
+ this.header = input(true, { ...(ngDevMode ? { debugName: "header" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
354
+ /** Whether every row starts with a checkbox, as in a grid whose rows can be selected. */
355
+ this.selectable = input(false, { ...(ngDevMode ? { debugName: "selectable" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
356
+ /** Number of columns pinned to the start and set apart from the rest by a line, as in a grid. */
357
+ this.pinnedColumns = input(0, { ...(ngDevMode ? { debugName: "pinnedColumns" } : /* istanbul ignore next */ {}), transform: numberAttribute });
358
+ this.rowList = computed(() => range(this.rows()), ...(ngDevMode ? [{ debugName: "rowList" }] : /* istanbul ignore next */ []));
359
+ this.gridTemplateColumns = computed(() => [...(this.selectable() ? ['var(--kbq-skeleton-table-selection-width)'] : []), ...this.columns()].join(' '), ...(ngDevMode ? [{ debugName: "gridTemplateColumns" }] : /* istanbul ignore next */ []));
360
+ }
361
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: KbqSkeletonTable, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
362
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.25", type: KbqSkeletonTable, isStandalone: true, selector: "kbq-skeleton-table", inputs: { rows: { classPropertyName: "rows", publicName: "rows", isSignal: true, isRequired: false, transformFunction: null }, columns: { classPropertyName: "columns", publicName: "columns", isSignal: true, isRequired: false, transformFunction: null }, header: { classPropertyName: "header", publicName: "header", isSignal: true, isRequired: false, transformFunction: null }, selectable: { classPropertyName: "selectable", publicName: "selectable", isSignal: true, isRequired: false, transformFunction: null }, pinnedColumns: { classPropertyName: "pinnedColumns", publicName: "pinnedColumns", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "style.grid-template-columns": "gridTemplateColumns()" }, classAttribute: "kbq-skeleton-table" }, ngImport: i0, template: `
363
+ @if (header()) {
364
+ @if (selectable()) {
365
+ <div
366
+ class="kbq-skeleton-table__cell kbq-skeleton-table__cell_header kbq-skeleton-table__cell_selection"
367
+ >
368
+ <div kbqSkeleton></div>
369
+ </div>
370
+ }
371
+ @for (column of columns(); track $index) {
372
+ <div
373
+ class="kbq-skeleton-table__cell kbq-skeleton-table__cell_header"
374
+ [class.kbq-skeleton-table__cell_pinned-edge]="$index === pinnedColumns() - 1"
375
+ >
376
+ <div kbqSkeleton></div>
377
+ </div>
378
+ }
379
+ }
380
+ @for (row of rowList(); track row) {
381
+ @if (selectable()) {
382
+ <div class="kbq-skeleton-table__cell kbq-skeleton-table__cell_selection">
383
+ <div kbqSkeleton></div>
384
+ </div>
385
+ }
386
+ @for (column of columns(); track $index) {
387
+ <div
388
+ class="kbq-skeleton-table__cell"
389
+ [class.kbq-skeleton-table__cell_pinned-edge]="$index === pinnedColumns() - 1"
390
+ >
391
+ <div kbqSkeleton></div>
392
+ </div>
393
+ }
394
+ }
395
+ `, isInline: true, dependencies: [{ kind: "directive", type: KbqSkeleton, selector: "kbq-skeleton, [kbqSkeleton]", inputs: ["kbqSkeleton"], exportAs: ["kbqSkeleton"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
396
+ }
397
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: KbqSkeletonTable, decorators: [{
398
+ type: Component,
399
+ args: [{
400
+ selector: 'kbq-skeleton-table',
401
+ imports: [KbqSkeleton],
402
+ template: `
403
+ @if (header()) {
404
+ @if (selectable()) {
405
+ <div
406
+ class="kbq-skeleton-table__cell kbq-skeleton-table__cell_header kbq-skeleton-table__cell_selection"
407
+ >
408
+ <div kbqSkeleton></div>
409
+ </div>
410
+ }
411
+ @for (column of columns(); track $index) {
412
+ <div
413
+ class="kbq-skeleton-table__cell kbq-skeleton-table__cell_header"
414
+ [class.kbq-skeleton-table__cell_pinned-edge]="$index === pinnedColumns() - 1"
415
+ >
416
+ <div kbqSkeleton></div>
417
+ </div>
418
+ }
419
+ }
420
+ @for (row of rowList(); track row) {
421
+ @if (selectable()) {
422
+ <div class="kbq-skeleton-table__cell kbq-skeleton-table__cell_selection">
423
+ <div kbqSkeleton></div>
424
+ </div>
425
+ }
426
+ @for (column of columns(); track $index) {
427
+ <div
428
+ class="kbq-skeleton-table__cell"
429
+ [class.kbq-skeleton-table__cell_pinned-edge]="$index === pinnedColumns() - 1"
430
+ >
431
+ <div kbqSkeleton></div>
432
+ </div>
433
+ }
434
+ }
435
+ `,
436
+ changeDetection: ChangeDetectionStrategy.OnPush,
437
+ encapsulation: ViewEncapsulation.None,
438
+ host: {
439
+ class: 'kbq-skeleton-table',
440
+ '[style.grid-template-columns]': 'gridTemplateColumns()'
441
+ }
442
+ }]
443
+ }], propDecorators: { rows: [{ type: i0.Input, args: [{ isSignal: true, alias: "rows", required: false }] }], columns: [{ type: i0.Input, args: [{ isSignal: true, alias: "columns", required: false }] }], header: [{ type: i0.Input, args: [{ isSignal: true, alias: "header", required: false }] }], selectable: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectable", required: false }] }], pinnedColumns: [{ type: i0.Input, args: [{ isSignal: true, alias: "pinnedColumns", required: false }] }] } });
444
+ /** Row of placeholders of one kind, such as the tags of a tag list. */
445
+ class KbqSkeletonGroup {
446
+ constructor() {
447
+ this.configuration = inject(KBQ_SKELETON_PRESETS_CONFIGURATION);
448
+ /** Placeholder of every item of the row. */
449
+ this.preset = input.required(...(ngDevMode ? [{ debugName: "preset" }] : /* istanbul ignore next */ []));
450
+ /** Number of placeholders, `groupCount` of `KBQ_SKELETON_PRESETS_CONFIGURATION` by default. */
451
+ this.count = input(this.configuration.groupCount, { ...(ngDevMode ? { debugName: "count" } : /* istanbul ignore next */ {}), transform: numberAttribute });
452
+ this.itemList = computed(() => range(this.count()), ...(ngDevMode ? [{ debugName: "itemList" }] : /* istanbul ignore next */ []));
453
+ this.presetClass = computed(() => `kbq-skeleton-group_${this.preset()}`, ...(ngDevMode ? [{ debugName: "presetClass" }] : /* istanbul ignore next */ []));
454
+ }
455
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: KbqSkeletonGroup, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
456
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.25", type: KbqSkeletonGroup, isStandalone: true, selector: "kbq-skeleton-group", inputs: { preset: { classPropertyName: "preset", publicName: "preset", isSignal: true, isRequired: true, transformFunction: null }, count: { classPropertyName: "count", publicName: "count", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "presetClass()" }, classAttribute: "kbq-skeleton-group" }, ngImport: i0, template: `
457
+ @for (item of itemList(); track item) {
458
+ @switch (preset()) {
459
+ @case ('button') {
460
+ <kbq-skeleton-button />
461
+ }
462
+ @case ('badge') {
463
+ <kbq-skeleton-badge />
464
+ }
465
+ @case ('tag') {
466
+ <kbq-skeleton-tag />
467
+ }
468
+ @case ('icon') {
469
+ <kbq-skeleton-icon />
470
+ }
471
+ @case ('link') {
472
+ <kbq-skeleton-link />
473
+ }
474
+ }
475
+ }
476
+ `, isInline: true, dependencies: [{ kind: "component", type: KbqSkeletonButton, selector: "kbq-skeleton-button" }, { kind: "component", type: KbqSkeletonBadge, selector: "kbq-skeleton-badge" }, { kind: "component", type: KbqSkeletonTag, selector: "kbq-skeleton-tag" }, { kind: "component", type: KbqSkeletonIcon, selector: "kbq-skeleton-icon" }, { kind: "component", type: KbqSkeletonLink, selector: "kbq-skeleton-link" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
477
+ }
478
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: KbqSkeletonGroup, decorators: [{
479
+ type: Component,
480
+ args: [{
481
+ selector: 'kbq-skeleton-group',
482
+ imports: [KbqSkeletonButton, KbqSkeletonBadge, KbqSkeletonTag, KbqSkeletonIcon, KbqSkeletonLink],
483
+ template: `
484
+ @for (item of itemList(); track item) {
485
+ @switch (preset()) {
486
+ @case ('button') {
487
+ <kbq-skeleton-button />
488
+ }
489
+ @case ('badge') {
490
+ <kbq-skeleton-badge />
491
+ }
492
+ @case ('tag') {
493
+ <kbq-skeleton-tag />
494
+ }
495
+ @case ('icon') {
496
+ <kbq-skeleton-icon />
497
+ }
498
+ @case ('link') {
499
+ <kbq-skeleton-link />
500
+ }
501
+ }
502
+ }
503
+ `,
504
+ changeDetection: ChangeDetectionStrategy.OnPush,
505
+ encapsulation: ViewEncapsulation.None,
506
+ host: {
507
+ class: 'kbq-skeleton-group',
508
+ '[class]': 'presetClass()'
509
+ }
510
+ }]
511
+ }], propDecorators: { preset: [{ type: i0.Input, args: [{ isSignal: true, alias: "preset", required: true }] }], count: [{ type: i0.Input, args: [{ isSignal: true, alias: "count", required: false }] }] } });
512
+ /** Placeholder of a form field whose value has not loaded yet: its label, control and hint. */
513
+ class KbqSkeletonFormField {
514
+ constructor() {
515
+ /** Whether the label is to the left of the control, as in a horizontal `kbq-form-field`. */
516
+ this.horizontal = input(false, { ...(ngDevMode ? { debugName: "horizontal" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
517
+ /** Control of the form field. */
518
+ this.control = input('input', ...(ngDevMode ? [{ debugName: "control" }] : /* istanbul ignore next */ []));
519
+ /** Whether the form field has a label, as a `kbq-form-field` with `kbq-label`. */
520
+ this.label = input(true, { ...(ngDevMode ? { debugName: "label" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
521
+ /** Whether the form field has a hint below the control. */
522
+ this.hint = input(false, { ...(ngDevMode ? { debugName: "hint" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
523
+ /** Classes of the label, such as the `labelClass` of the `kbq-form-field` the placeholder stands in for. */
524
+ this.labelClass = input(...(ngDevMode ? [undefined, { debugName: "labelClass" }] : /* istanbul ignore next */ []));
525
+ /** Classes of the control and the hint, such as the `contentClass` of the `kbq-form-field`. */
526
+ this.contentClass = input(...(ngDevMode ? [undefined, { debugName: "contentClass" }] : /* istanbul ignore next */ []));
527
+ }
528
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: KbqSkeletonFormField, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
529
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.25", type: KbqSkeletonFormField, isStandalone: true, selector: "kbq-skeleton-form-field", inputs: { horizontal: { classPropertyName: "horizontal", publicName: "horizontal", isSignal: true, isRequired: false, transformFunction: null }, control: { classPropertyName: "control", publicName: "control", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, hint: { classPropertyName: "hint", publicName: "hint", isSignal: true, isRequired: false, transformFunction: null }, labelClass: { classPropertyName: "labelClass", publicName: "labelClass", isSignal: true, isRequired: false, transformFunction: null }, contentClass: { classPropertyName: "contentClass", publicName: "contentClass", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.kbq-skeleton-form-field_horizontal": "horizontal()", "class.kbq-skeleton-form-field_textarea": "control() === \"textarea\"" }, classAttribute: "kbq-skeleton-form-field" }, ngImport: i0, template: `
530
+ @if (label()) {
531
+ <div class="kbq-skeleton-form-field__label" [class]="labelClass()">
532
+ <div kbqSkeleton></div>
533
+ </div>
534
+ }
535
+ <div class="kbq-skeleton-form-field__content" [class]="contentClass()">
536
+ <div kbqSkeleton class="kbq-skeleton-form-field__control"></div>
537
+ @if (hint()) {
538
+ <div kbqSkeleton class="kbq-skeleton-form-field__hint"></div>
539
+ }
540
+ </div>
541
+ `, isInline: true, dependencies: [{ kind: "directive", type: KbqSkeleton, selector: "kbq-skeleton, [kbqSkeleton]", inputs: ["kbqSkeleton"], exportAs: ["kbqSkeleton"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
542
+ }
543
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: KbqSkeletonFormField, decorators: [{
544
+ type: Component,
545
+ args: [{
546
+ selector: 'kbq-skeleton-form-field',
547
+ imports: [KbqSkeleton],
548
+ template: `
549
+ @if (label()) {
550
+ <div class="kbq-skeleton-form-field__label" [class]="labelClass()">
551
+ <div kbqSkeleton></div>
552
+ </div>
553
+ }
554
+ <div class="kbq-skeleton-form-field__content" [class]="contentClass()">
555
+ <div kbqSkeleton class="kbq-skeleton-form-field__control"></div>
556
+ @if (hint()) {
557
+ <div kbqSkeleton class="kbq-skeleton-form-field__hint"></div>
558
+ }
559
+ </div>
560
+ `,
561
+ changeDetection: ChangeDetectionStrategy.OnPush,
562
+ encapsulation: ViewEncapsulation.None,
563
+ host: {
564
+ class: 'kbq-skeleton-form-field',
565
+ '[class.kbq-skeleton-form-field_horizontal]': 'horizontal()',
566
+ '[class.kbq-skeleton-form-field_textarea]': 'control() === "textarea"'
567
+ }
568
+ }]
569
+ }], propDecorators: { horizontal: [{ type: i0.Input, args: [{ isSignal: true, alias: "horizontal", required: false }] }], control: [{ type: i0.Input, args: [{ isSignal: true, alias: "control", required: false }] }], label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], hint: [{ type: i0.Input, args: [{ isSignal: true, alias: "hint", required: false }] }], labelClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "labelClass", required: false }] }], contentClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "contentClass", required: false }] }] } });
570
+ /** Placeholder of an accordion whose items have not loaded yet: collapsed items with their icon and title. */
571
+ class KbqSkeletonAccordion {
572
+ constructor() {
573
+ this.configuration = inject(KBQ_SKELETON_PRESETS_CONFIGURATION);
574
+ /** Number of collapsed items, `accordionRows` of `KBQ_SKELETON_PRESETS_CONFIGURATION` by default. */
575
+ this.rows = input(this.configuration.accordionRows, { ...(ngDevMode ? { debugName: "rows" } : /* istanbul ignore next */ {}), transform: numberAttribute });
576
+ this.rowList = computed(() => range(this.rows()), ...(ngDevMode ? [{ debugName: "rowList" }] : /* istanbul ignore next */ []));
577
+ }
578
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: KbqSkeletonAccordion, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
579
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.25", type: KbqSkeletonAccordion, isStandalone: true, selector: "kbq-skeleton-accordion", inputs: { rows: { classPropertyName: "rows", publicName: "rows", isSignal: true, isRequired: false, transformFunction: null } }, host: { classAttribute: "kbq-skeleton-accordion" }, ngImport: i0, template: `
580
+ @for (row of rowList(); track row) {
581
+ <div class="kbq-skeleton-accordion__item">
582
+ <div kbqSkeleton class="kbq-skeleton-accordion__icon"></div>
583
+ <div kbqSkeleton class="kbq-skeleton-accordion__title"></div>
584
+ </div>
585
+ }
586
+ `, isInline: true, dependencies: [{ kind: "directive", type: KbqSkeleton, selector: "kbq-skeleton, [kbqSkeleton]", inputs: ["kbqSkeleton"], exportAs: ["kbqSkeleton"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
587
+ }
588
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: KbqSkeletonAccordion, decorators: [{
589
+ type: Component,
590
+ args: [{
591
+ selector: 'kbq-skeleton-accordion',
592
+ imports: [KbqSkeleton],
593
+ template: `
594
+ @for (row of rowList(); track row) {
595
+ <div class="kbq-skeleton-accordion__item">
596
+ <div kbqSkeleton class="kbq-skeleton-accordion__icon"></div>
597
+ <div kbqSkeleton class="kbq-skeleton-accordion__title"></div>
598
+ </div>
599
+ }
600
+ `,
601
+ changeDetection: ChangeDetectionStrategy.OnPush,
602
+ encapsulation: ViewEncapsulation.None,
603
+ host: { class: 'kbq-skeleton-accordion' }
604
+ }]
605
+ }], propDecorators: { rows: [{ type: i0.Input, args: [{ isSignal: true, alias: "rows", required: false }] }] } });
606
+ /**
607
+ * Placeholder of checkboxes, radio buttons or toggles whose data has not loaded yet: the control, and the label with
608
+ * its hint on demand.
609
+ */
610
+ class KbqSkeletonCheckable {
611
+ constructor() {
612
+ this.configuration = inject(KBQ_SKELETON_PRESETS_CONFIGURATION);
613
+ /** Control the placeholder stands in for. */
614
+ this.control = input('checkbox', ...(ngDevMode ? [{ debugName: "control" }] : /* istanbul ignore next */ []));
615
+ /** Number of controls, `checkableRows` of `KBQ_SKELETON_PRESETS_CONFIGURATION` by default. */
616
+ this.rows = input(this.configuration.checkableRows, { ...(ngDevMode ? { debugName: "rows" } : /* istanbul ignore next */ {}), transform: numberAttribute });
617
+ /** Whether a control has a label. */
618
+ this.label = input(true, { ...(ngDevMode ? { debugName: "label" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
619
+ /** Whether the label has a hint below it. */
620
+ this.hint = input(false, { ...(ngDevMode ? { debugName: "hint" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
621
+ this.rowList = computed(() => range(this.rows()), ...(ngDevMode ? [{ debugName: "rowList" }] : /* istanbul ignore next */ []));
622
+ this.controlClass = computed(() => `kbq-skeleton-checkable_${this.control()}`, ...(ngDevMode ? [{ debugName: "controlClass" }] : /* istanbul ignore next */ []));
623
+ }
624
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: KbqSkeletonCheckable, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
625
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.25", type: KbqSkeletonCheckable, isStandalone: true, selector: "kbq-skeleton-checkable", inputs: { control: { classPropertyName: "control", publicName: "control", isSignal: true, isRequired: false, transformFunction: null }, rows: { classPropertyName: "rows", publicName: "rows", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, hint: { classPropertyName: "hint", publicName: "hint", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "controlClass()" }, classAttribute: "kbq-skeleton-checkable" }, ngImport: i0, template: `
626
+ @for (row of rowList(); track row) {
627
+ <div class="kbq-skeleton-checkable__row">
628
+ <div kbqSkeleton class="kbq-skeleton-checkable__control"></div>
629
+ @if (label()) {
630
+ <div class="kbq-skeleton-checkable__text">
631
+ <div kbqSkeleton class="kbq-skeleton-checkable__label"></div>
632
+ @if (hint()) {
633
+ <div kbqSkeleton class="kbq-skeleton-checkable__hint"></div>
634
+ }
635
+ </div>
636
+ }
637
+ </div>
638
+ }
639
+ `, isInline: true, dependencies: [{ kind: "directive", type: KbqSkeleton, selector: "kbq-skeleton, [kbqSkeleton]", inputs: ["kbqSkeleton"], exportAs: ["kbqSkeleton"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
640
+ }
641
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: KbqSkeletonCheckable, decorators: [{
642
+ type: Component,
643
+ args: [{
644
+ selector: 'kbq-skeleton-checkable',
645
+ imports: [KbqSkeleton],
646
+ template: `
647
+ @for (row of rowList(); track row) {
648
+ <div class="kbq-skeleton-checkable__row">
649
+ <div kbqSkeleton class="kbq-skeleton-checkable__control"></div>
650
+ @if (label()) {
651
+ <div class="kbq-skeleton-checkable__text">
652
+ <div kbqSkeleton class="kbq-skeleton-checkable__label"></div>
653
+ @if (hint()) {
654
+ <div kbqSkeleton class="kbq-skeleton-checkable__hint"></div>
655
+ }
656
+ </div>
657
+ }
658
+ </div>
659
+ }
660
+ `,
661
+ changeDetection: ChangeDetectionStrategy.OnPush,
662
+ encapsulation: ViewEncapsulation.None,
663
+ host: {
664
+ class: 'kbq-skeleton-checkable',
665
+ '[class]': 'controlClass()'
666
+ }
667
+ }]
668
+ }], propDecorators: { control: [{ type: i0.Input, args: [{ isSignal: true, alias: "control", required: false }] }], rows: [{ type: i0.Input, args: [{ isSignal: true, alias: "rows", required: false }] }], label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], hint: [{ type: i0.Input, args: [{ isSignal: true, alias: "hint", required: false }] }] } });
669
+ /**
670
+ * Placeholder of tabs whose data has not loaded yet: the first tab stands out as the selected one. The content below
671
+ * or beside them is text, or the placeholders projected into the component.
672
+ */
673
+ class KbqSkeletonTabs {
674
+ constructor() {
675
+ this.configuration = inject(KBQ_SKELETON_PRESETS_CONFIGURATION);
676
+ /** Whether the tabs are stacked beside the content, as in a vertical `kbq-tab-group`. */
677
+ this.vertical = input(false, { ...(ngDevMode ? { debugName: "vertical" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
678
+ /** Number of tabs, `tabsCount` of `KBQ_SKELETON_PRESETS_CONFIGURATION` by default. */
679
+ this.count = input(this.configuration.tabsCount, { ...(ngDevMode ? { debugName: "count" } : /* istanbul ignore next */ {}), transform: numberAttribute });
680
+ /**
681
+ * Number of lines of the text that stands for the content when nothing is projected, `tabsContentLines` of
682
+ * `KBQ_SKELETON_PRESETS_CONFIGURATION` by default.
683
+ */
684
+ this.contentLines = input(this.configuration.tabsContentLines, { ...(ngDevMode ? { debugName: "contentLines" } : /* istanbul ignore next */ {}), transform: numberAttribute });
685
+ this.tabList = computed(() => range(this.count()), ...(ngDevMode ? [{ debugName: "tabList" }] : /* istanbul ignore next */ []));
686
+ }
687
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: KbqSkeletonTabs, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
688
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.25", type: KbqSkeletonTabs, isStandalone: true, selector: "kbq-skeleton-tabs", inputs: { vertical: { classPropertyName: "vertical", publicName: "vertical", isSignal: true, isRequired: false, transformFunction: null }, count: { classPropertyName: "count", publicName: "count", isSignal: true, isRequired: false, transformFunction: null }, contentLines: { classPropertyName: "contentLines", publicName: "contentLines", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.kbq-skeleton-tabs_vertical": "vertical()" }, classAttribute: "kbq-skeleton-tabs" }, ngImport: i0, template: `
689
+ <div class="kbq-skeleton-tabs__header">
690
+ @for (tab of tabList(); track tab) {
691
+ <div class="kbq-skeleton-tabs__tab" [class.kbq-skeleton-tabs__tab_selected]="tab === 0">
692
+ <div kbqSkeleton></div>
693
+ </div>
694
+ }
695
+ </div>
696
+ <div class="kbq-skeleton-tabs__content">
697
+ <ng-content>
698
+ <kbq-skeleton-typography [lines]="contentLines()" />
699
+ </ng-content>
700
+ </div>
701
+ `, isInline: true, dependencies: [{ kind: "directive", type: KbqSkeleton, selector: "kbq-skeleton, [kbqSkeleton]", inputs: ["kbqSkeleton"], exportAs: ["kbqSkeleton"] }, { kind: "component", type: KbqSkeletonTypography, selector: "kbq-skeleton-typography", inputs: ["level", "lines"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
702
+ }
703
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: KbqSkeletonTabs, decorators: [{
704
+ type: Component,
705
+ args: [{
706
+ selector: 'kbq-skeleton-tabs',
707
+ imports: [KbqSkeleton, KbqSkeletonTypography],
708
+ template: `
709
+ <div class="kbq-skeleton-tabs__header">
710
+ @for (tab of tabList(); track tab) {
711
+ <div class="kbq-skeleton-tabs__tab" [class.kbq-skeleton-tabs__tab_selected]="tab === 0">
712
+ <div kbqSkeleton></div>
713
+ </div>
714
+ }
715
+ </div>
716
+ <div class="kbq-skeleton-tabs__content">
717
+ <ng-content>
718
+ <kbq-skeleton-typography [lines]="contentLines()" />
719
+ </ng-content>
720
+ </div>
721
+ `,
722
+ changeDetection: ChangeDetectionStrategy.OnPush,
723
+ encapsulation: ViewEncapsulation.None,
724
+ host: {
725
+ class: 'kbq-skeleton-tabs',
726
+ '[class.kbq-skeleton-tabs_vertical]': 'vertical()'
727
+ }
728
+ }]
729
+ }], propDecorators: { vertical: [{ type: i0.Input, args: [{ isSignal: true, alias: "vertical", required: false }] }], count: [{ type: i0.Input, args: [{ isSignal: true, alias: "count", required: false }] }], contentLines: [{ type: i0.Input, args: [{ isSignal: true, alias: "contentLines", required: false }] }] } });
730
+ /** Placeholder of a tree whose nodes have not loaded yet, with the second node expanded. */
731
+ class KbqSkeletonTree {
732
+ constructor() {
733
+ this.configuration = inject(KBQ_SKELETON_PRESETS_CONFIGURATION);
734
+ /** Number of top-level nodes, `treeRows` of `KBQ_SKELETON_PRESETS_CONFIGURATION` by default. */
735
+ this.rows = input(this.configuration.treeRows, { ...(ngDevMode ? { debugName: "rows" } : /* istanbul ignore next */ {}), transform: numberAttribute });
736
+ /**
737
+ * Number of children of the expanded second node, `treeChildren` of `KBQ_SKELETON_PRESETS_CONFIGURATION` by
738
+ * default.
739
+ */
740
+ this.children = input(this.configuration.treeChildren, { ...(ngDevMode ? { debugName: "children" } : /* istanbul ignore next */ {}), transform: numberAttribute });
741
+ this.rowList = computed(() => range(this.rows()), ...(ngDevMode ? [{ debugName: "rowList" }] : /* istanbul ignore next */ []));
742
+ this.childList = computed(() => range(this.children()), ...(ngDevMode ? [{ debugName: "childList" }] : /* istanbul ignore next */ []));
743
+ }
744
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: KbqSkeletonTree, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
745
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.25", type: KbqSkeletonTree, isStandalone: true, selector: "kbq-skeleton-tree", inputs: { rows: { classPropertyName: "rows", publicName: "rows", isSignal: true, isRequired: false, transformFunction: null }, children: { classPropertyName: "children", publicName: "children", isSignal: true, isRequired: false, transformFunction: null } }, host: { classAttribute: "kbq-skeleton-tree" }, ngImport: i0, template: `
746
+ @for (row of rowList(); track row) {
747
+ <div class="kbq-skeleton-tree__node kbq-skeleton-tree__node_{{ (row % 3) + 1 }}">
748
+ <div kbqSkeleton class="kbq-skeleton-tree__toggle"></div>
749
+ <div kbqSkeleton class="kbq-skeleton-tree__label"></div>
750
+ </div>
751
+ @if (row === 1) {
752
+ @for (child of childList(); track child) {
753
+ <div
754
+ class="kbq-skeleton-tree__node kbq-skeleton-tree__node_nested kbq-skeleton-tree__node_{{
755
+ (child % 3) + 1
756
+ }}"
757
+ >
758
+ <div kbqSkeleton class="kbq-skeleton-tree__toggle"></div>
759
+ <div kbqSkeleton class="kbq-skeleton-tree__label"></div>
760
+ </div>
761
+ }
762
+ }
763
+ }
764
+ `, isInline: true, dependencies: [{ kind: "directive", type: KbqSkeleton, selector: "kbq-skeleton, [kbqSkeleton]", inputs: ["kbqSkeleton"], exportAs: ["kbqSkeleton"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
765
+ }
766
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: KbqSkeletonTree, decorators: [{
767
+ type: Component,
768
+ args: [{
769
+ selector: 'kbq-skeleton-tree',
770
+ imports: [KbqSkeleton],
771
+ template: `
772
+ @for (row of rowList(); track row) {
773
+ <div class="kbq-skeleton-tree__node kbq-skeleton-tree__node_{{ (row % 3) + 1 }}">
774
+ <div kbqSkeleton class="kbq-skeleton-tree__toggle"></div>
775
+ <div kbqSkeleton class="kbq-skeleton-tree__label"></div>
776
+ </div>
777
+ @if (row === 1) {
778
+ @for (child of childList(); track child) {
779
+ <div
780
+ class="kbq-skeleton-tree__node kbq-skeleton-tree__node_nested kbq-skeleton-tree__node_{{
781
+ (child % 3) + 1
782
+ }}"
783
+ >
784
+ <div kbqSkeleton class="kbq-skeleton-tree__toggle"></div>
785
+ <div kbqSkeleton class="kbq-skeleton-tree__label"></div>
786
+ </div>
787
+ }
788
+ }
789
+ }
790
+ `,
791
+ changeDetection: ChangeDetectionStrategy.OnPush,
792
+ encapsulation: ViewEncapsulation.None,
793
+ host: { class: 'kbq-skeleton-tree' }
794
+ }]
795
+ }], propDecorators: { rows: [{ type: i0.Input, args: [{ isSignal: true, alias: "rows", required: false }] }], children: [{ type: i0.Input, args: [{ isSignal: true, alias: "children", required: false }] }] } });
796
+
797
+ const COMPONENTS = [
798
+ KbqSkeleton,
799
+ KbqSkeletonButton,
800
+ KbqSkeletonBadge,
801
+ KbqSkeletonTag,
802
+ KbqSkeletonIcon,
803
+ KbqSkeletonLink,
804
+ KbqSkeletonTypography,
805
+ KbqSkeletonDl,
806
+ KbqSkeletonTable,
807
+ KbqSkeletonGroup,
808
+ KbqSkeletonFormField,
809
+ KbqSkeletonAccordion,
810
+ KbqSkeletonCheckable,
811
+ KbqSkeletonTabs,
812
+ KbqSkeletonTree
813
+ ];
68
814
  class KbqSkeletonModule {
69
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.30", ngImport: i0, type: KbqSkeletonModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
70
- /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.30", ngImport: i0, type: KbqSkeletonModule, imports: [KbqSkeleton], exports: [KbqSkeleton] }); }
71
- /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.30", ngImport: i0, type: KbqSkeletonModule }); }
815
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: KbqSkeletonModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
816
+ /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.25", ngImport: i0, type: KbqSkeletonModule, imports: [KbqSkeleton,
817
+ KbqSkeletonButton,
818
+ KbqSkeletonBadge,
819
+ KbqSkeletonTag,
820
+ KbqSkeletonIcon,
821
+ KbqSkeletonLink,
822
+ KbqSkeletonTypography,
823
+ KbqSkeletonDl,
824
+ KbqSkeletonTable,
825
+ KbqSkeletonGroup,
826
+ KbqSkeletonFormField,
827
+ KbqSkeletonAccordion,
828
+ KbqSkeletonCheckable,
829
+ KbqSkeletonTabs,
830
+ KbqSkeletonTree], exports: [KbqSkeleton,
831
+ KbqSkeletonButton,
832
+ KbqSkeletonBadge,
833
+ KbqSkeletonTag,
834
+ KbqSkeletonIcon,
835
+ KbqSkeletonLink,
836
+ KbqSkeletonTypography,
837
+ KbqSkeletonDl,
838
+ KbqSkeletonTable,
839
+ KbqSkeletonGroup,
840
+ KbqSkeletonFormField,
841
+ KbqSkeletonAccordion,
842
+ KbqSkeletonCheckable,
843
+ KbqSkeletonTabs,
844
+ KbqSkeletonTree] }); }
845
+ /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: KbqSkeletonModule }); }
72
846
  }
73
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.30", ngImport: i0, type: KbqSkeletonModule, decorators: [{
847
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: KbqSkeletonModule, decorators: [{
74
848
  type: NgModule,
75
849
  args: [{
76
850
  imports: COMPONENTS,
@@ -82,5 +856,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.30", ngImpo
82
856
  * Generated bundle index. Do not edit.
83
857
  */
84
858
 
85
- export { KbqSkeleton, KbqSkeletonModule };
859
+ export { KBQ_SKELETON_PRESETS_CONFIGURATION, KbqSkeleton, KbqSkeletonAccordion, KbqSkeletonBadge, KbqSkeletonButton, KbqSkeletonCheckable, KbqSkeletonDl, KbqSkeletonFormField, KbqSkeletonGroup, KbqSkeletonIcon, KbqSkeletonLink, KbqSkeletonModule, KbqSkeletonTable, KbqSkeletonTabs, KbqSkeletonTag, KbqSkeletonTree, KbqSkeletonTypography, kbqSkeletonPresetsConfigurationProvider };
86
860
  //# sourceMappingURL=koobiq-components-skeleton.mjs.map