@koobiq/components 20.4.2 → 21.0.1

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 (798) 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 +791 -609
  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 +2871 -2595
  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 +400 -149
  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 +734 -488
  197. package/fesm2022/koobiq-components-tree-select.mjs.map +1 -1
  198. package/fesm2022/koobiq-components-tree.mjs +1700 -617
  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 +415 -18
  264. package/schematics/migrations/accordion-state-saving-default/README.md +60 -0
  265. package/schematics/migrations/accordion-state-saving-default/data.cjs +75 -0
  266. package/schematics/migrations/accordion-state-saving-default/index.cjs +61 -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.cjs +47 -0
  270. package/schematics/migrations/actions-panel-overlay-container/index.cjs +55 -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 → data.cjs} +3 -0
  274. package/schematics/migrations/alert-signals/index.cjs +221 -0
  275. package/schematics/migrations/angular-animations-removal/README.md +46 -0
  276. package/schematics/migrations/angular-animations-removal/data.cjs +150 -0
  277. package/schematics/migrations/angular-animations-removal/index.cjs +21 -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.cjs +136 -0
  281. package/schematics/migrations/app-switcher-signals/index.cjs +366 -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 → index.cjs} +6 -5
  285. package/schematics/migrations/autocomplete-signals/README.md +92 -0
  286. package/schematics/migrations/autocomplete-signals/data.cjs +149 -0
  287. package/schematics/migrations/autocomplete-signals/index.cjs +707 -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.cjs +109 -0
  291. package/schematics/migrations/badge-signals/index.cjs +694 -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.cjs +136 -0
  295. package/schematics/migrations/button-state-and-styles/index.cjs +221 -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.cjs +106 -0
  299. package/schematics/migrations/button-supported-colors/index.cjs +261 -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.cjs +200 -0
  303. package/schematics/migrations/button-toggle-signals-and-aria/index.cjs +497 -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.cjs +88 -0
  307. package/schematics/migrations/button-truncation/index.cjs +270 -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.cjs +114 -0
  311. package/schematics/migrations/checkbox-signals/index.cjs +635 -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.cjs +101 -0
  315. package/schematics/migrations/clamped-text-disclosure/index.cjs +60 -0
  316. package/schematics/migrations/clamped-text-disclosure/schema.json +15 -0
  317. package/schematics/migrations/code-block-highlight-js-core/README.md +53 -0
  318. package/schematics/migrations/code-block-highlight-js-core/data.cjs +64 -0
  319. package/schematics/migrations/code-block-highlight-js-core/index.cjs +319 -0
  320. package/schematics/migrations/code-block-highlight-js-core/schema.json +20 -0
  321. package/schematics/migrations/code-block-signals/README.md +84 -0
  322. package/schematics/migrations/code-block-signals/data.cjs +121 -0
  323. package/schematics/migrations/code-block-signals/index.cjs +701 -0
  324. package/schematics/migrations/code-block-signals/schema.json +20 -0
  325. package/schematics/migrations/color-signals/README.md +46 -0
  326. package/schematics/migrations/color-signals/data.cjs +131 -0
  327. package/schematics/migrations/color-signals/index.cjs +20 -0
  328. package/schematics/migrations/color-signals/schema.json +20 -0
  329. package/schematics/migrations/core-mixins-removal/README.md +20 -0
  330. package/schematics/migrations/core-mixins-removal/data.cjs +27 -0
  331. package/schematics/migrations/core-mixins-removal/index.cjs +18 -0
  332. package/schematics/migrations/core-mixins-removal/schema.json +15 -0
  333. package/schematics/migrations/css-selectors/README.md +2 -2
  334. package/schematics/migrations/css-selectors/{index.js → index.cjs} +4 -3
  335. package/schematics/migrations/datepicker-signals/README.md +24 -0
  336. package/schematics/migrations/datepicker-signals/data.cjs +49 -0
  337. package/schematics/migrations/datepicker-signals/index.cjs +18 -0
  338. package/schematics/migrations/datepicker-signals/schema.json +15 -0
  339. package/schematics/migrations/deprecated-icons/README.md +2 -2
  340. package/schematics/migrations/deprecated-icons/{index.js → index.cjs} +8 -7
  341. package/schematics/migrations/design-tokens-v4/README.md +75 -0
  342. package/schematics/migrations/design-tokens-v4/index.cjs +60 -0
  343. package/schematics/migrations/design-tokens-v4/schema.json +15 -0
  344. package/schematics/migrations/divider-signals-and-aria/README.md +47 -0
  345. package/schematics/migrations/divider-signals-and-aria/data.cjs +62 -0
  346. package/schematics/migrations/divider-signals-and-aria/index.cjs +212 -0
  347. package/schematics/migrations/divider-signals-and-aria/schema.json +15 -0
  348. package/schematics/migrations/dl-attribute-coercion/README.md +59 -0
  349. package/schematics/migrations/dl-attribute-coercion/data.cjs +85 -0
  350. package/schematics/migrations/dl-attribute-coercion/index.cjs +162 -0
  351. package/schematics/migrations/dl-attribute-coercion/schema.json +15 -0
  352. package/schematics/migrations/dl-standalone-names/README.md +49 -0
  353. package/schematics/migrations/dl-standalone-names/data.cjs +44 -0
  354. package/schematics/migrations/dl-standalone-names/index.cjs +322 -0
  355. package/schematics/migrations/dl-standalone-names/schema.json +20 -0
  356. package/schematics/migrations/dropdown-demote-overlay/README.md +137 -0
  357. package/schematics/migrations/dropdown-demote-overlay/data.cjs +84 -0
  358. package/schematics/migrations/dropdown-demote-overlay/index.cjs +289 -0
  359. package/schematics/migrations/dropdown-demote-overlay/schema.json +20 -0
  360. package/schematics/migrations/dropdown-signals/README.md +83 -0
  361. package/schematics/migrations/dropdown-signals/data.cjs +152 -0
  362. package/schematics/migrations/dropdown-signals/index.cjs +20 -0
  363. package/schematics/migrations/dropdown-signals/schema.json +20 -0
  364. package/schematics/migrations/empty-state-error-color/README.md +84 -0
  365. package/schematics/migrations/empty-state-error-color/data.cjs +85 -0
  366. package/schematics/migrations/empty-state-error-color/index.cjs +72 -0
  367. package/schematics/migrations/empty-state-error-color/schema.json +15 -0
  368. package/schematics/migrations/empty-state-size-attr/README.md +2 -2
  369. package/schematics/migrations/empty-state-size-attr/{index.js → index.cjs} +6 -5
  370. package/schematics/migrations/file-upload-cva-and-primitives/README.md +70 -0
  371. package/schematics/migrations/file-upload-cva-and-primitives/data.cjs +97 -0
  372. package/schematics/migrations/file-upload-cva-and-primitives/index.cjs +61 -0
  373. package/schematics/migrations/file-upload-cva-and-primitives/schema.json +15 -0
  374. package/schematics/migrations/file-upload-deprecated-outputs/README.md +90 -0
  375. package/schematics/migrations/file-upload-deprecated-outputs/data.cjs +20 -0
  376. package/schematics/migrations/file-upload-deprecated-outputs/index.cjs +71 -0
  377. package/schematics/migrations/file-upload-deprecated-outputs/schema.json +20 -0
  378. package/schematics/migrations/filter-bar-rename-action/README.md +183 -0
  379. package/schematics/migrations/filter-bar-rename-action/data.cjs +151 -0
  380. package/schematics/migrations/filter-bar-rename-action/index.cjs +178 -0
  381. package/schematics/migrations/filter-bar-rename-action/schema.json +20 -0
  382. package/schematics/migrations/filter-bar-signals/README.md +27 -16
  383. package/schematics/migrations/filter-bar-signals/{data.js → data.cjs} +1 -2
  384. package/schematics/migrations/filter-bar-signals/index.cjs +225 -0
  385. package/schematics/migrations/filter-bar-state-saving-default/README.md +53 -0
  386. package/schematics/migrations/filter-bar-state-saving-default/data.cjs +87 -0
  387. package/schematics/migrations/filter-bar-state-saving-default/index.cjs +62 -0
  388. package/schematics/migrations/filter-bar-state-saving-default/schema.json +15 -0
  389. package/schematics/migrations/flag-inner-html/README.md +67 -0
  390. package/schematics/migrations/flag-inner-html/data.cjs +58 -0
  391. package/schematics/migrations/flag-inner-html/index.cjs +62 -0
  392. package/schematics/migrations/flag-inner-html/schema.json +15 -0
  393. package/schematics/migrations/form-field-signals/README.md +125 -0
  394. package/schematics/migrations/form-field-signals/data.cjs +288 -0
  395. package/schematics/migrations/form-field-signals/index.cjs +383 -0
  396. package/schematics/migrations/form-field-signals/schema.json +20 -0
  397. package/schematics/migrations/icon-semantics-and-api/README.md +65 -0
  398. package/schematics/migrations/icon-semantics-and-api/data.cjs +97 -0
  399. package/schematics/migrations/icon-semantics-and-api/index.cjs +65 -0
  400. package/schematics/migrations/icon-semantics-and-api/schema.json +15 -0
  401. package/schematics/migrations/icons-replacement/README.md +5 -5
  402. package/schematics/migrations/icons-replacement/{index.js → index.cjs} +4 -3
  403. package/schematics/migrations/inline-edit-a11y-and-types/README.md +82 -0
  404. package/schematics/migrations/inline-edit-a11y-and-types/data.cjs +117 -0
  405. package/schematics/migrations/inline-edit-a11y-and-types/index.cjs +98 -0
  406. package/schematics/migrations/inline-edit-a11y-and-types/schema.json +20 -0
  407. package/schematics/migrations/input-number-surface/README.md +140 -0
  408. package/schematics/migrations/input-number-surface/data.cjs +135 -0
  409. package/schematics/migrations/input-number-surface/index.cjs +293 -0
  410. package/schematics/migrations/input-number-surface/schema.json +20 -0
  411. package/schematics/migrations/input-signals/README.md +20 -0
  412. package/schematics/migrations/input-signals/data.cjs +30 -0
  413. package/schematics/migrations/input-signals/index.cjs +18 -0
  414. package/schematics/migrations/input-signals/schema.json +15 -0
  415. package/schematics/migrations/link-deprecated-path/README.md +144 -0
  416. package/schematics/migrations/link-deprecated-path/index.cjs +20 -0
  417. package/schematics/migrations/link-deprecated-path/schema.json +20 -0
  418. package/schematics/migrations/link-signals/README.md +71 -0
  419. package/schematics/migrations/link-signals/data.cjs +116 -0
  420. package/schematics/migrations/link-signals/index.cjs +416 -0
  421. package/schematics/migrations/link-signals/schema.json +20 -0
  422. package/schematics/migrations/list-signals/README.md +22 -0
  423. package/schematics/migrations/list-signals/data.cjs +35 -0
  424. package/schematics/migrations/list-signals/index.cjs +18 -0
  425. package/schematics/migrations/list-signals/schema.json +15 -0
  426. package/schematics/migrations/list-tree-multiple-input/README.md +105 -0
  427. package/schematics/migrations/list-tree-multiple-input/data.cjs +74 -0
  428. package/schematics/migrations/list-tree-multiple-input/index.cjs +222 -0
  429. package/schematics/migrations/list-tree-multiple-input/schema.json +20 -0
  430. package/schematics/migrations/loader-overlay-signals/README.md +62 -0
  431. package/schematics/migrations/loader-overlay-signals/data.cjs +101 -0
  432. package/schematics/migrations/loader-overlay-signals/index.cjs +698 -0
  433. package/schematics/migrations/loader-overlay-signals/schema.json +20 -0
  434. package/schematics/migrations/loader-overlay-size-attr/README.md +2 -2
  435. package/schematics/migrations/loader-overlay-size-attr/{index.js → index.cjs} +6 -5
  436. package/schematics/migrations/locale-configuration-providers/README.md +163 -0
  437. package/schematics/migrations/locale-configuration-providers/data.cjs +257 -0
  438. package/schematics/migrations/locale-configuration-providers/index.cjs +295 -0
  439. package/schematics/migrations/locale-configuration-providers/schema.json +20 -0
  440. package/schematics/migrations/mandatory-peer-dependencies/README.md +70 -0
  441. package/schematics/migrations/mandatory-peer-dependencies/index.cjs +43 -0
  442. package/schematics/migrations/mandatory-peer-dependencies/schema.json +15 -0
  443. package/schematics/migrations/markdown-signals/README.md +58 -0
  444. package/schematics/migrations/markdown-signals/data.cjs +79 -0
  445. package/schematics/migrations/markdown-signals/index.cjs +640 -0
  446. package/schematics/migrations/markdown-signals/schema.json +20 -0
  447. package/schematics/migrations/modal-dialog-semantics/README.md +106 -0
  448. package/schematics/migrations/modal-dialog-semantics/data.cjs +110 -0
  449. package/schematics/migrations/modal-dialog-semantics/index.cjs +59 -0
  450. package/schematics/migrations/modal-dialog-semantics/schema.json +15 -0
  451. package/schematics/migrations/modal-signals/README.md +88 -0
  452. package/schematics/migrations/modal-signals/data.cjs +132 -0
  453. package/schematics/migrations/modal-signals/index.cjs +20 -0
  454. package/schematics/migrations/modal-signals/schema.json +20 -0
  455. package/schematics/migrations/navbar-signals-and-aria/README.md +111 -0
  456. package/schematics/migrations/navbar-signals-and-aria/data.cjs +198 -0
  457. package/schematics/migrations/navbar-signals-and-aria/index.cjs +569 -0
  458. package/schematics/migrations/navbar-signals-and-aria/schema.json +20 -0
  459. package/schematics/migrations/new-icons-pack/README.md +10 -10
  460. package/schematics/migrations/new-icons-pack/{index.js → index.cjs} +8 -7
  461. package/schematics/migrations/notification-center-signals/README.md +67 -0
  462. package/schematics/migrations/notification-center-signals/data.cjs +66 -0
  463. package/schematics/migrations/notification-center-signals/index.cjs +62 -0
  464. package/schematics/migrations/notification-center-signals/schema.json +15 -0
  465. package/schematics/migrations/option-signals/README.md +37 -0
  466. package/schematics/migrations/option-signals/data.cjs +86 -0
  467. package/schematics/migrations/option-signals/index.cjs +20 -0
  468. package/schematics/migrations/option-signals/schema.json +20 -0
  469. package/schematics/migrations/popover-leave-delay/README.md +51 -0
  470. package/schematics/migrations/popover-leave-delay/data.cjs +61 -0
  471. package/schematics/migrations/popover-leave-delay/index.cjs +55 -0
  472. package/schematics/migrations/popover-leave-delay/schema.json +15 -0
  473. package/schematics/migrations/progress-bar-percentage-and-aria/README.md +54 -0
  474. package/schematics/migrations/progress-bar-percentage-and-aria/data.cjs +76 -0
  475. package/schematics/migrations/progress-bar-percentage-and-aria/index.cjs +59 -0
  476. package/schematics/migrations/progress-bar-percentage-and-aria/schema.json +15 -0
  477. package/schematics/migrations/progress-spinner-signals/README.md +72 -0
  478. package/schematics/migrations/progress-spinner-signals/data.cjs +83 -0
  479. package/schematics/migrations/progress-spinner-signals/index.cjs +695 -0
  480. package/schematics/migrations/progress-spinner-signals/schema.json +20 -0
  481. package/schematics/migrations/query-list-signals/README.md +32 -0
  482. package/schematics/migrations/query-list-signals/data.cjs +70 -0
  483. package/schematics/migrations/query-list-signals/index.cjs +18 -0
  484. package/schematics/migrations/query-list-signals/schema.json +15 -0
  485. package/schematics/migrations/radio-signals-and-aria/README.md +82 -0
  486. package/schematics/migrations/radio-signals-and-aria/data.cjs +163 -0
  487. package/schematics/migrations/radio-signals-and-aria/index.cjs +40 -0
  488. package/schematics/migrations/radio-signals-and-aria/schema.json +20 -0
  489. package/schematics/migrations/read-state-dwell-handlers/README.md +125 -0
  490. package/schematics/migrations/read-state-dwell-handlers/data.cjs +45 -0
  491. package/schematics/migrations/read-state-dwell-handlers/index.cjs +216 -0
  492. package/schematics/migrations/read-state-dwell-handlers/schema.json +20 -0
  493. package/schematics/migrations/scrollbar-deprecated-path/README.md +128 -0
  494. package/schematics/migrations/scrollbar-deprecated-path/index.cjs +21 -0
  495. package/schematics/migrations/scrollbar-deprecated-path/schema.json +20 -0
  496. package/schematics/migrations/select-signal-inputs/README.md +61 -0
  497. package/schematics/migrations/select-signal-inputs/data.cjs +99 -0
  498. package/schematics/migrations/select-signal-inputs/index.cjs +58 -0
  499. package/schematics/migrations/select-signal-inputs/schema.json +15 -0
  500. package/schematics/migrations/sidepanel-non-modal-behavior/README.md +57 -0
  501. package/schematics/migrations/sidepanel-non-modal-behavior/data.cjs +111 -0
  502. package/schematics/migrations/sidepanel-non-modal-behavior/index.cjs +58 -0
  503. package/schematics/migrations/sidepanel-non-modal-behavior/schema.json +15 -0
  504. package/schematics/migrations/signal-inputs-subclasses/README.md +28 -0
  505. package/schematics/migrations/signal-inputs-subclasses/data.cjs +69 -0
  506. package/schematics/migrations/signal-inputs-subclasses/index.cjs +18 -0
  507. package/schematics/migrations/signal-inputs-subclasses/schema.json +15 -0
  508. package/schematics/migrations/split-button-optional-disabled/README.md +47 -0
  509. package/schematics/migrations/split-button-optional-disabled/data.cjs +53 -0
  510. package/schematics/migrations/split-button-optional-disabled/index.cjs +58 -0
  511. package/schematics/migrations/split-button-optional-disabled/schema.json +15 -0
  512. package/schematics/migrations/splitter-deprecated-path/README.md +136 -0
  513. package/schematics/migrations/splitter-deprecated-path/index.cjs +21 -0
  514. package/schematics/migrations/splitter-deprecated-path/schema.json +20 -0
  515. package/schematics/migrations/state-saving-default/README.md +67 -0
  516. package/schematics/migrations/state-saving-default/data.cjs +88 -0
  517. package/schematics/migrations/state-saving-default/index.cjs +63 -0
  518. package/schematics/migrations/state-saving-default/schema.json +15 -0
  519. package/schematics/migrations/table-cell-content/README.md +55 -0
  520. package/schematics/migrations/table-cell-content/data.cjs +66 -0
  521. package/schematics/migrations/table-cell-content/index.cjs +67 -0
  522. package/schematics/migrations/table-cell-content/schema.json +15 -0
  523. package/schematics/migrations/tabs-signals-and-aria/README.md +93 -0
  524. package/schematics/migrations/tabs-signals-and-aria/data.cjs +139 -0
  525. package/schematics/migrations/tabs-signals-and-aria/index.cjs +66 -0
  526. package/schematics/migrations/tabs-signals-and-aria/schema.json +15 -0
  527. package/schematics/migrations/tag-list-cleaner/README.md +58 -0
  528. package/schematics/migrations/tag-list-cleaner/data.cjs +42 -0
  529. package/schematics/migrations/tag-list-cleaner/index.cjs +197 -0
  530. package/schematics/migrations/tag-list-cleaner/schema.json +20 -0
  531. package/schematics/migrations/tag-slots/README.md +41 -0
  532. package/schematics/migrations/tag-slots/index.cjs +191 -0
  533. package/schematics/migrations/tag-slots/schema.json +20 -0
  534. package/schematics/migrations/tags-signals/README.md +85 -0
  535. package/schematics/migrations/tags-signals/data.cjs +103 -0
  536. package/schematics/migrations/tags-signals/index.cjs +674 -0
  537. package/schematics/migrations/tags-signals/schema.json +20 -0
  538. package/schematics/migrations/textarea-signals/README.md +72 -0
  539. package/schematics/migrations/textarea-signals/data.cjs +121 -0
  540. package/schematics/migrations/textarea-signals/index.cjs +380 -0
  541. package/schematics/migrations/textarea-signals/schema.json +20 -0
  542. package/schematics/migrations/time-range-title-for/README.md +164 -0
  543. package/schematics/migrations/time-range-title-for/data.cjs +139 -0
  544. package/schematics/migrations/time-range-title-for/index.cjs +164 -0
  545. package/schematics/migrations/time-range-title-for/schema.json +20 -0
  546. package/schematics/migrations/timepicker-signals/README.md +78 -0
  547. package/schematics/migrations/timepicker-signals/data.cjs +82 -0
  548. package/schematics/migrations/timepicker-signals/index.cjs +710 -0
  549. package/schematics/migrations/timepicker-signals/schema.json +20 -0
  550. package/schematics/migrations/timezone-grouping-utils/README.md +73 -0
  551. package/schematics/migrations/timezone-grouping-utils/data.cjs +101 -0
  552. package/schematics/migrations/timezone-grouping-utils/index.cjs +65 -0
  553. package/schematics/migrations/timezone-grouping-utils/schema.json +15 -0
  554. package/schematics/migrations/title-encapsulation/README.md +49 -0
  555. package/schematics/migrations/title-encapsulation/data.cjs +69 -0
  556. package/schematics/migrations/title-encapsulation/index.cjs +58 -0
  557. package/schematics/migrations/title-encapsulation/schema.json +15 -0
  558. package/schematics/migrations/toast-stack-and-defaults/README.md +102 -0
  559. package/schematics/migrations/toast-stack-and-defaults/data.cjs +79 -0
  560. package/schematics/migrations/toast-stack-and-defaults/index.cjs +54 -0
  561. package/schematics/migrations/toast-stack-and-defaults/schema.json +15 -0
  562. package/schematics/migrations/tooltip-pointer-events-and-types/README.md +53 -0
  563. package/schematics/migrations/tooltip-pointer-events-and-types/data.cjs +89 -0
  564. package/schematics/migrations/tooltip-pointer-events-and-types/index.cjs +61 -0
  565. package/schematics/migrations/tooltip-pointer-events-and-types/schema.json +15 -0
  566. package/schematics/migrations/top-bar-container-selectors/README.md +111 -0
  567. package/schematics/migrations/top-bar-container-selectors/data.cjs +56 -0
  568. package/schematics/migrations/top-bar-container-selectors/index.cjs +85 -0
  569. package/schematics/migrations/top-bar-container-selectors/schema.json +20 -0
  570. package/schematics/migrations/tree-select-signals/README.md +61 -0
  571. package/schematics/migrations/tree-select-signals/data.cjs +106 -0
  572. package/schematics/migrations/tree-select-signals/index.cjs +59 -0
  573. package/schematics/migrations/tree-select-signals/schema.json +15 -0
  574. package/schematics/migrations/tree-signals/README.md +82 -0
  575. package/schematics/migrations/tree-signals/data.cjs +123 -0
  576. package/schematics/migrations/tree-signals/index.cjs +55 -0
  577. package/schematics/migrations/tree-signals/schema.json +15 -0
  578. package/schematics/migrations/tree-state-saving-default/README.md +66 -0
  579. package/schematics/migrations/tree-state-saving-default/data.cjs +78 -0
  580. package/schematics/migrations/tree-state-saving-default/index.cjs +61 -0
  581. package/schematics/migrations/tree-state-saving-default/schema.json +15 -0
  582. package/schematics/migrations/username-pipe-injection/README.md +59 -0
  583. package/schematics/migrations/username-pipe-injection/data.cjs +78 -0
  584. package/schematics/migrations/username-pipe-injection/index.cjs +59 -0
  585. package/schematics/migrations/username-pipe-injection/schema.json +15 -0
  586. package/schematics/migrations/v20-upgrade/README.md +36 -16
  587. package/schematics/migrations/v20-upgrade/{data.js → data.cjs} +124 -77
  588. package/schematics/migrations/v20-upgrade/index.cjs +19 -0
  589. package/schematics/migrations/v21-upgrade/README.md +271 -0
  590. package/schematics/migrations/v21-upgrade/data.cjs +1371 -0
  591. package/schematics/migrations/v21-upgrade/index.cjs +95 -0
  592. package/schematics/migrations/v21-upgrade/schema.json +20 -0
  593. package/schematics/migrations/zoneless-change-detection/README.md +30 -0
  594. package/schematics/migrations/zoneless-change-detection/data.cjs +29 -0
  595. package/schematics/migrations/zoneless-change-detection/index.cjs +21 -0
  596. package/schematics/migrations/zoneless-change-detection/schema.json +15 -0
  597. package/schematics/migrations.json +401 -6
  598. package/schematics/ng-add/index.cjs +266 -0
  599. package/schematics/ng-add/schema.json +15 -0
  600. package/schematics/utils/{angular-parsing.js → angular-parsing.cjs} +2 -2
  601. package/schematics/utils/deprecated-path-migration.cjs +62 -0
  602. package/schematics/utils/html-config.cjs +148 -0
  603. package/schematics/utils/{icon-migration.js → icon-migration.cjs} +2 -2
  604. package/schematics/utils/list-item-pattern.cjs +16 -0
  605. package/schematics/utils/{package-config.js → package-config.cjs} +3 -32
  606. package/schematics/utils/project-files.cjs +25 -0
  607. package/schematics/utils/replacement-driver.cjs +337 -0
  608. package/schematics/utils/safe-rule.cjs +23 -0
  609. package/schematics/utils/signal-members-migration.cjs +779 -0
  610. package/schematics/utils/tag-patterns.cjs +21 -0
  611. package/schematics/utils/template-ref-access.cjs +155 -0
  612. package/schematics/utils/{typescript.js → typescript.cjs} +1 -1
  613. package/schematics/utils/warn-only-migration.cjs +52 -0
  614. package/schematics/utils/workspace-styles.cjs +123 -0
  615. package/scrollbar/{_scrollbar-component-theme.scss → deprecated/_scrollbar-component-theme.scss} +1 -1
  616. package/scrollbar/{scrollbar.component.scss → deprecated/scrollbar.component.scss} +1 -1
  617. package/scrollbar/native-scrollbar.scss +68 -0
  618. package/scrollbar/scrollbar-tokens.scss +13 -22
  619. package/scrollbar/scrollbar-track.scss +94 -0
  620. package/scrollbar/scrollbar-viewport.scss +33 -0
  621. package/scrollbar/scrollbar.scss +24 -0
  622. package/search-expandable/search-expandable-tokens.scss +4 -0
  623. package/search-expandable/search-expandable.scss +4 -2
  624. package/select/_select-theme.scss +3 -16
  625. package/select/select.scss +0 -6
  626. package/sidebar/sidebar.scss +20 -0
  627. package/sidepanel/_sidepanel-theme.scss +1 -1
  628. package/sidepanel/sidepanel-tokens.scss +7 -1
  629. package/sidepanel/sidepanel.scss +41 -5
  630. package/skeleton/skeleton-presets.scss +350 -0
  631. package/skeleton/skeleton-tokens.scss +127 -0
  632. package/skeleton/skeleton.scss +53 -45
  633. package/split-button/_split-button-theme.scss +4 -4
  634. package/split-button/split-button.scss +2 -6
  635. package/splitter/{_splitter-theme.scss → deprecated/_splitter-theme.scss} +1 -1
  636. package/splitter/deprecated/splitter.scss +51 -0
  637. package/splitter/splitter-tokens.scss +19 -0
  638. package/splitter/splitter.scss +148 -28
  639. package/table/_table-theme.scss +13 -12
  640. package/table/table-tokens.scss +8 -0
  641. package/table/table.scss +47 -22
  642. package/tabs/_tabs-common.scss +14 -14
  643. package/tabs/_tabs-theme.scss +4 -5
  644. package/tabs/tab-body.scss +49 -1
  645. package/tabs/tab-header.scss +2 -1
  646. package/tags/tag-list.scss +4 -0
  647. package/tags/tag.scss +19 -1
  648. package/time-range/time-range.scss +9 -0
  649. package/timezone/timezone-option.component.scss +4 -7
  650. package/timezone/timezone-select.component.scss +3 -0
  651. package/toast/_toast-theme.scss +1 -4
  652. package/toast/toast-container.component.scss +19 -13
  653. package/toast/toast-tokens.scss +12 -6
  654. package/toast/toast.component.scss +42 -19
  655. package/toggle/_toggle-theme.scss +4 -10
  656. package/toggle/toggle.scss +67 -26
  657. package/tooltip/_tooltip-theme.scss +7 -1
  658. package/tooltip/tooltip-tokens.scss +1 -2
  659. package/tooltip/tooltip.scss +55 -9
  660. package/top-bar/top-bar-tokens.scss +13 -2
  661. package/top-bar/top-bar.scss +24 -19
  662. package/tree/_tree-theme.scss +0 -1
  663. package/tree/toggle.scss +5 -9
  664. package/tree/tree-option.scss +2 -4
  665. package/tree/tree-tokens.scss +2 -1
  666. package/tree/tree.scss +3 -5
  667. package/tree-select/_tree-select-theme.scss +4 -15
  668. package/tree-select/tree-select-tokens.scss +16 -0
  669. package/tree-select/tree-select.scss +0 -6
  670. package/{accordion/index.d.ts → types/koobiq-components-accordion.d.ts} +102 -84
  671. package/{actions-panel/index.d.ts → types/koobiq-components-actions-panel.d.ts} +44 -59
  672. package/{alert/index.d.ts → types/koobiq-components-alert.d.ts} +8 -3
  673. package/types/koobiq-components-app-switcher.d.ts +406 -0
  674. package/types/koobiq-components-autocomplete.d.ts +443 -0
  675. package/{badge/index.d.ts → types/koobiq-components-badge.d.ts} +25 -20
  676. package/{breadcrumbs/index.d.ts → types/koobiq-components-breadcrumbs.d.ts} +97 -46
  677. package/types/koobiq-components-button-toggle.d.ts +340 -0
  678. package/types/koobiq-components-button.d.ts +296 -0
  679. package/types/koobiq-components-checkbox.d.ts +172 -0
  680. package/types/koobiq-components-clamped-text.d.ts +184 -0
  681. package/{code-block/index.d.ts → types/koobiq-components-code-block.d.ts} +150 -88
  682. package/{content-panel/index.d.ts → types/koobiq-components-content-panel.d.ts} +81 -25
  683. package/{core/index.d.ts → types/koobiq-components-core.d.ts} +2827 -865
  684. package/{datepicker/index.d.ts → types/koobiq-components-datepicker.d.ts} +161 -116
  685. package/types/koobiq-components-divider.d.ts +43 -0
  686. package/types/koobiq-components-dl.d.ts +235 -0
  687. package/{dropdown/index.d.ts → types/koobiq-components-dropdown.d.ts} +245 -239
  688. package/types/koobiq-components-ellipsis-center.d.ts +85 -0
  689. package/types/koobiq-components-empty-state.d.ts +106 -0
  690. package/{file-upload/index.d.ts → types/koobiq-components-file-upload.d.ts} +214 -107
  691. package/{filter-bar/index.d.ts → types/koobiq-components-filter-bar.d.ts} +410 -495
  692. package/types/koobiq-components-flag.d.ts +68 -0
  693. package/{form-field/index.d.ts → types/koobiq-components-form-field.d.ts} +167 -191
  694. package/types/koobiq-components-icon.d.ts +333 -0
  695. package/{inline-edit/index.d.ts → types/koobiq-components-inline-edit.d.ts} +109 -46
  696. package/types/koobiq-components-input.d.ts +477 -0
  697. package/types/koobiq-components-link-deprecated.d.ts +101 -0
  698. package/types/koobiq-components-link.d.ts +176 -0
  699. package/{list/index.d.ts → types/koobiq-components-list.d.ts} +162 -99
  700. package/types/koobiq-components-loader-overlay.d.ts +101 -0
  701. package/{markdown/index.d.ts → types/koobiq-components-markdown.d.ts} +16 -24
  702. package/types/koobiq-components-modal.d.ts +666 -0
  703. package/types/koobiq-components-navbar.d.ts +569 -0
  704. package/types/koobiq-components-notification-center.d.ts +500 -0
  705. package/{overflow-items/index.d.ts → types/koobiq-components-overflow-items.d.ts} +8 -22
  706. package/types/koobiq-components-popover.d.ts +468 -0
  707. package/types/koobiq-components-progress-bar.d.ts +67 -0
  708. package/{progress-spinner/index.d.ts → types/koobiq-components-progress-spinner.d.ts} +33 -10
  709. package/types/koobiq-components-radio.d.ts +294 -0
  710. package/{resizer/index.d.ts → types/koobiq-components-resizer.d.ts} +37 -2
  711. package/{scrollbar/index.d.ts → types/koobiq-components-scrollbar-deprecated.d.ts} +18 -1
  712. package/types/koobiq-components-scrollbar.d.ts +154 -0
  713. package/types/koobiq-components-search-expandable.d.ts +164 -0
  714. package/{select/index.d.ts → types/koobiq-components-select.d.ts} +360 -167
  715. package/types/koobiq-components-sidebar.d.ts +152 -0
  716. package/types/koobiq-components-sidepanel.d.ts +436 -0
  717. package/types/koobiq-components-skeleton.d.ts +234 -0
  718. package/types/koobiq-components-split-button.d.ts +65 -0
  719. package/{splitter/index.d.ts → types/koobiq-components-splitter-deprecated.d.ts} +44 -1
  720. package/types/koobiq-components-splitter.d.ts +406 -0
  721. package/types/koobiq-components-table.d.ts +44 -0
  722. package/types/koobiq-components-tabs.d.ts +888 -0
  723. package/{tags/index.d.ts → types/koobiq-components-tags.d.ts} +249 -133
  724. package/types/koobiq-components-textarea.d.ts +178 -0
  725. package/{time-range/index.d.ts → types/koobiq-components-time-range.d.ts} +135 -62
  726. package/types/koobiq-components-timepicker.d.ts +223 -0
  727. package/types/koobiq-components-timezone.d.ts +266 -0
  728. package/types/koobiq-components-title.d.ts +184 -0
  729. package/types/koobiq-components-toast.d.ts +289 -0
  730. package/types/koobiq-components-toggle.d.ts +121 -0
  731. package/types/koobiq-components-tooltip.d.ts +610 -0
  732. package/types/koobiq-components-top-bar.d.ts +61 -0
  733. package/types/koobiq-components-tree-select.d.ts +670 -0
  734. package/types/koobiq-components-tree.d.ts +1339 -0
  735. package/types/koobiq-components-username.d.ts +340 -0
  736. package/username/_username-theme.scss +35 -0
  737. package/username/username.scss +10 -34
  738. package/app-switcher/index.d.ts +0 -276
  739. package/autocomplete/index.d.ts +0 -286
  740. package/button/index.d.ts +0 -153
  741. package/button-toggle/index.d.ts +0 -162
  742. package/checkbox/index.d.ts +0 -163
  743. package/clamped-text/index.d.ts +0 -146
  744. package/core/styles/_tokens.scss +0 -7
  745. package/core/styles/common/_clearfix.scss +0 -13
  746. package/core/styles/common/_popup.scss +0 -6
  747. package/core/styles/functions/_index.scss +0 -3
  748. package/core/styles/functions/_number.scss +0 -60
  749. package/core/styles/functions/_string.scss +0 -18
  750. package/core/styles/theming/scrollbar-tokens.scss +0 -25
  751. package/core/styles/typography/_typography-utils.scss +0 -84
  752. package/divider/index.d.ts +0 -20
  753. package/dl/index.d.ts +0 -45
  754. package/ellipsis-center/index.d.ts +0 -71
  755. package/empty-state/index.d.ts +0 -45
  756. package/flag/index.d.ts +0 -44
  757. package/icon/index.d.ts +0 -200
  758. package/input/index.d.ts +0 -354
  759. package/link/index.d.ts +0 -56
  760. package/loader-overlay/index.d.ts +0 -57
  761. package/modal/index.d.ts +0 -339
  762. package/navbar/index.d.ts +0 -372
  763. package/notification-center/index.d.ts +0 -323
  764. package/popover/index.d.ts +0 -182
  765. package/prebuilt-themes/dark-theme.css +0 -1
  766. package/prebuilt-themes/light-theme.css +0 -1
  767. package/progress-bar/index.d.ts +0 -31
  768. package/radio/index.d.ts +0 -203
  769. package/schematics/migrations/alert-signals/index.js +0 -353
  770. package/schematics/migrations/filter-bar-signals/index.js +0 -319
  771. package/schematics/migrations/v20-upgrade/index.js +0 -225
  772. package/schematics/ng-add/index.js +0 -39
  773. package/search-expandable/index.d.ts +0 -101
  774. package/sidebar/index.d.ts +0 -94
  775. package/sidepanel/index.d.ts +0 -272
  776. package/skeleton/index.d.ts +0 -26
  777. package/split-button/index.d.ts +0 -46
  778. package/table/index.d.ts +0 -25
  779. package/tabs/index.d.ts +0 -677
  780. package/textarea/index.d.ts +0 -138
  781. package/timepicker/index.d.ts +0 -197
  782. package/timezone/index.d.ts +0 -125
  783. package/title/index.d.ts +0 -139
  784. package/toast/index.d.ts +0 -178
  785. package/toggle/index.d.ts +0 -104
  786. package/tooltip/index.d.ts +0 -335
  787. package/top-bar/index.d.ts +0 -33
  788. package/tree/index.d.ts +0 -802
  789. package/tree-select/index.d.ts +0 -475
  790. package/username/index.d.ts +0 -194
  791. /package/schematics/migrations/css-selectors/{data.js → data.cjs} +0 -0
  792. /package/schematics/migrations/deprecated-icons/{data.js → data.cjs} +0 -0
  793. /package/schematics/migrations/icons-replacement/{data.js → data.cjs} +0 -0
  794. /package/schematics/migrations/new-icons-pack/{data.js → data.cjs} +0 -0
  795. /package/schematics/utils/{ast.js → ast.cjs} +0 -0
  796. /package/schematics/utils/{messages.js → messages.cjs} +0 -0
  797. /package/{dynamic-translation/index.d.ts → types/koobiq-components-dynamic-translation.d.ts} +0 -0
  798. /package/{index.d.ts → types/koobiq-components.d.ts} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"koobiq-components-skeleton.mjs","sources":["../../../packages/components/skeleton/skeleton.ts","../../../packages/components/skeleton/module.ts","../../../packages/components/skeleton/koobiq-components-skeleton.ts"],"sourcesContent":["import { _CdkPrivateStyleLoader } from '@angular/cdk/private';\nimport {\n Component,\n Directive,\n OnDestroy,\n ViewEncapsulation,\n afterRenderEffect,\n booleanAttribute,\n inject,\n input\n} from '@angular/core';\nimport { KBQ_WINDOW, kbqInjectNativeElement } from '@koobiq/components/core';\n\n/** Timestamp of the first skeleton instance — used as animation start time for sync */\nlet animationStartTime: number | null = null;\n/** Count of active skeleton instances */\nlet count = 0;\n\n/**\n * Component used to load the `.kbq-skeleton` styles.\n */\n@Component({\n selector: 'skeleton-style-loader',\n template: '',\n styleUrl: 'skeleton.scss',\n encapsulation: ViewEncapsulation.None\n})\nclass SkeletonStyleLoader {}\n\n/**\n * Directive representing a skeleton placeholder.\n */\n@Directive({\n selector: 'kbq-skeleton, [kbqSkeleton]',\n host: {\n class: 'kbq-skeleton',\n '[class.kbq-skeleton_disabled]': '!enabled()'\n },\n exportAs: 'kbqSkeleton'\n})\nexport class KbqSkeleton implements OnDestroy {\n private readonly styleLoader = inject(_CdkPrivateStyleLoader);\n private readonly element = kbqInjectNativeElement();\n private readonly window = inject(KBQ_WINDOW);\n\n /** Whether the skeleton is enabled. */\n readonly enabled = input(true, { transform: booleanAttribute, alias: 'kbqSkeleton' });\n\n constructor() {\n count++;\n\n this.styleLoader.load(SkeletonStyleLoader);\n\n afterRenderEffect(() => {\n if (!this.enabled()) return;\n\n const enabledAt = Date.now();\n\n animationStartTime ??= enabledAt;\n\n this.syncAnimation(enabledAt);\n });\n }\n\n ngOnDestroy(): void {\n if (--count === 0) {\n animationStartTime = null;\n }\n }\n\n private syncAnimation(enabledAt: number): void {\n const elapsed = enabledAt - (animationStartTime ?? 0);\n const durationMs = parseFloat(\n this.window.getComputedStyle(this.element).getPropertyValue('--kbq-skeleton-animation-duration')\n );\n const delay = -(elapsed % durationMs);\n\n this.element.style.setProperty('--kbq-skeleton-animation-delay', `${delay}ms`);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { KbqSkeleton } from './skeleton';\n\nconst COMPONENTS = [KbqSkeleton];\n\n@NgModule({\n imports: COMPONENTS,\n exports: COMPONENTS\n})\nexport class KbqSkeletonModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"koobiq-components-skeleton.mjs","sources":["../../../packages/components/skeleton/skeleton.ts","../../../packages/components/skeleton/skeleton-presets.ts","../../../packages/components/skeleton/module.ts","../../../packages/components/skeleton/koobiq-components-skeleton.ts"],"sourcesContent":["import { _CdkPrivateStyleLoader } from '@angular/cdk/private';\nimport {\n ChangeDetectionStrategy,\n Component,\n Directive,\n Injectable,\n NgZone,\n ViewEncapsulation,\n afterRenderEffect,\n booleanAttribute,\n inject,\n input\n} from '@angular/core';\nimport { KBQ_WINDOW, kbqAnimationsDisabled, kbqInjectNativeElement } from '@koobiq/components/core';\n\nconst WAVE_ANIMATION_NAME = 'kbq-skeleton-wave';\nconst OFFSCREEN_SELECTOR = 'kbq-skeleton_offscreen';\n\nconst findWave = (host: HTMLElement): Animation | undefined =>\n host\n .getAnimations()\n .find((animation) => 'animationName' in animation && animation.animationName === WAVE_ANIMATION_NAME);\n\n/**\n * Component used to load the styles of `.kbq-skeleton` and of the presets, each of which renders a `.kbq-skeleton`.\n */\n@Component({\n selector: 'skeleton-style-loader',\n template: '',\n styleUrls: ['skeleton.scss', 'skeleton-presets.scss', 'skeleton-tokens.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n})\nclass SkeletonStyleLoader {}\n\n/**\n * The single wave shared by every skeleton on the page. Hosts outside the viewport stop animating, the ones that\n * animate are pinned to one start time, and their offsets are measured in one batch per frame.\n *\n * Everything here runs outside Angular: none of it changes a binding, and a wave pass must not start change\n * detection once per skeleton.\n */\n@Injectable({ providedIn: 'root' })\nclass SkeletonWave {\n // Widened because TypeScript declares the observer constructors on `globalThis` rather than on `Window`.\n private readonly window = inject(KBQ_WINDOW) as Window & typeof globalThis;\n private readonly ngZone = inject(NgZone);\n private readonly observer = this.createObserver();\n\n private readonly hosts = new Set<Element>();\n /** Hosts waiting to be measured, with whether their wave has just started and needs to be pinned. */\n private readonly pending = new Map<HTMLElement, boolean>();\n private frame: number | null = null;\n private startTime: CSSNumberish | null = null;\n\n /** Adds a host to the wave and returns the function that removes it. */\n add(host: HTMLElement): () => void {\n const onAnimationEvent = ({ target, type, animationName }: AnimationEvent) => {\n if (target === host && animationName === WAVE_ANIMATION_NAME)\n this.schedule(host, type === 'animationstart');\n };\n\n this.hosts.add(host);\n this.ngZone.runOutsideAngular(() => {\n host.addEventListener('animationstart', onAnimationEvent);\n host.addEventListener('animationiteration', onAnimationEvent);\n });\n this.observer?.observe(host);\n\n return () => {\n this.hosts.delete(host);\n host.removeEventListener('animationstart', onAnimationEvent);\n host.removeEventListener('animationiteration', onAnimationEvent);\n this.observer?.unobserve(host);\n host.classList.remove(OFFSCREEN_SELECTOR);\n host.style.removeProperty('--kbq-skeleton-offset');\n this.pending.delete(host);\n\n if (!this.hosts.size) {\n this.startTime = null;\n }\n };\n }\n\n private createObserver(): IntersectionObserver | null {\n const view = this.window;\n\n // Missing on the server and in jsdom: the wave then simply runs on every host.\n if (typeof view.IntersectionObserver !== 'function') return null;\n\n // The margin starts the wave just before a host scrolls in.\n return this.ngZone.runOutsideAngular(\n () =>\n new view.IntersectionObserver(\n (entries) => {\n for (const { target, isIntersecting } of entries) {\n // Entries queued before `unobserve` are still delivered, for hosts that have left.\n if (this.hosts.has(target)) {\n target.classList.toggle(OFFSCREEN_SELECTOR, !isIntersecting);\n }\n }\n },\n { rootMargin: '100px' }\n )\n );\n }\n\n private schedule(host: HTMLElement, sync: boolean): void {\n this.pending.set(host, sync || !!this.pending.get(host));\n this.frame ??= this.window.requestAnimationFrame(() => this.flush());\n }\n\n // Every host is read before any is written: a whole row of skeletons then costs one style and layout flush\n // instead of one per host.\n private flush(): void {\n const hosts = [...this.pending].map(([host, sync]) => ({\n host,\n offset: `${host.getBoundingClientRect().left}px`,\n wave: sync ? findWave(host) : undefined\n }));\n\n this.pending.clear();\n this.frame = null;\n\n for (const { host, offset, wave } of hosts) {\n if (wave) {\n this.startTime ??= wave.startTime;\n\n // Still unresolved on a wave that has not started yet: setting it would pause the wave.\n if (this.startTime !== null) {\n wave.startTime = this.startTime;\n }\n }\n\n // Writing an unchanged offset back would invalidate the host's style for nothing.\n if (host.style.getPropertyValue('--kbq-skeleton-offset') !== offset) {\n host.style.setProperty('--kbq-skeleton-offset', offset);\n }\n }\n }\n}\n\n/**\n * Directive representing a skeleton placeholder.\n *\n * Paints the host, children included, as one flat shape of the host's own outline with a wave running across it,\n * and makes the host inert: it leaves the tab order and the accessibility tree until the skeleton is disabled.\n */\n@Directive({\n selector: 'kbq-skeleton, [kbqSkeleton]',\n host: {\n class: 'kbq-skeleton',\n '[class.kbq-skeleton_disabled]': '!enabled()',\n '[class.kbq-animations-disabled]': 'animationsDisabled',\n '[attr.inert]': 'enabled() || null'\n },\n exportAs: 'kbqSkeleton'\n})\nexport class KbqSkeleton {\n private readonly styleLoader = inject(_CdkPrivateStyleLoader);\n private readonly element = kbqInjectNativeElement();\n private readonly wave = inject(SkeletonWave);\n\n /** Whether the skeleton is enabled. */\n readonly enabled = input(true, { transform: booleanAttribute, alias: 'kbqSkeleton' });\n\n /**\n * Whether the fill stands still, without the wave.\n *\n * @docs-private\n */\n protected readonly animationsDisabled = kbqAnimationsDisabled();\n\n constructor() {\n this.styleLoader.load(SkeletonStyleLoader);\n\n afterRenderEffect((onCleanup) => {\n if (this.enabled()) {\n onCleanup(this.wave.add(this.element));\n }\n });\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n InjectionToken,\n Provider,\n ViewEncapsulation,\n booleanAttribute,\n computed,\n inject,\n input,\n numberAttribute\n} from '@angular/core';\nimport { KbqSkeleton } from './skeleton';\n\n/** Numbers of items the skeleton presets show until the amount of data is known. */\nexport interface KbqSkeletonPresetsConfiguration {\n /** Number of lines of `kbq-skeleton-typography`. */\n typographyLines: number;\n /** Number of rows of `kbq-skeleton-dl`. */\n dlRows: number;\n /** Number of rows of `kbq-skeleton-table`. */\n tableRows: number;\n /** Number of columns of `kbq-skeleton-table`. */\n tableColumns: number;\n /** Number of placeholders of `kbq-skeleton-group`. */\n groupCount: number;\n /** Number of collapsed items of `kbq-skeleton-accordion`. */\n accordionRows: number;\n /** Number of controls of `kbq-skeleton-checkable`. */\n checkableRows: number;\n /** Number of tabs of `kbq-skeleton-tabs`. */\n tabsCount: number;\n /** Number of lines of the text in the content of `kbq-skeleton-tabs`. */\n tabsContentLines: number;\n /** Number of top-level nodes of `kbq-skeleton-tree`. */\n treeRows: number;\n /** Number of children of the expanded node of `kbq-skeleton-tree`. */\n treeChildren: number;\n}\n\nconst KBQ_SKELETON_PRESETS_DEFAULT_CONFIGURATION: KbqSkeletonPresetsConfiguration = {\n typographyLines: 1,\n dlRows: 3,\n tableRows: 3,\n tableColumns: 3,\n groupCount: 3,\n accordionRows: 3,\n checkableRows: 1,\n tabsCount: 3,\n tabsContentLines: 3,\n treeRows: 3,\n treeChildren: 3\n};\n\n/** Numbers of items of the skeleton presets. */\nexport const KBQ_SKELETON_PRESETS_CONFIGURATION = new InjectionToken<KbqSkeletonPresetsConfiguration>(\n 'KBQ_SKELETON_PRESETS_CONFIGURATION',\n { factory: () => KBQ_SKELETON_PRESETS_DEFAULT_CONFIGURATION }\n);\n\n/**\n * Utility provider for `KBQ_SKELETON_PRESETS_CONFIGURATION`, for an application or a part of it. The keys it leaves\n * out keep the values of the closest provider above.\n */\nexport const kbqSkeletonPresetsConfigurationProvider = (\n configuration: Partial<KbqSkeletonPresetsConfiguration>\n): Provider => ({\n provide: KBQ_SKELETON_PRESETS_CONFIGURATION,\n useFactory: (): KbqSkeletonPresetsConfiguration => ({\n ...KBQ_SKELETON_PRESETS_DEFAULT_CONFIGURATION,\n ...inject(KBQ_SKELETON_PRESETS_CONFIGURATION, { skipSelf: true, optional: true }),\n ...configuration\n })\n});\n\n/** Indexes of `count` items, for a `@for` that repeats a placeholder; a single one for a count that is not a number. */\nconst range = (count: number): number[] =>\n Array.from({ length: Number.isFinite(count) ? count : 1 }, (_, index) => index);\n\n/** Placeholder of a button whose data has not loaded yet. */\n@Component({\n selector: 'kbq-skeleton-button',\n template: '',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: { class: 'kbq-skeleton-button' },\n hostDirectives: [KbqSkeleton]\n})\nexport class KbqSkeletonButton {}\n\n/** Placeholder of a badge whose data has not loaded yet. */\n@Component({\n selector: 'kbq-skeleton-badge',\n template: '',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: { class: 'kbq-skeleton-badge' },\n hostDirectives: [KbqSkeleton]\n})\nexport class KbqSkeletonBadge {}\n\n/** Placeholder of a tag whose data has not loaded yet. */\n@Component({\n selector: 'kbq-skeleton-tag',\n template: '',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: { class: 'kbq-skeleton-tag' },\n hostDirectives: [KbqSkeleton]\n})\nexport class KbqSkeletonTag {}\n\n/** Placeholder of an icon or an icon button whose data has not loaded yet. */\n@Component({\n selector: 'kbq-skeleton-icon',\n template: '',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: { class: 'kbq-skeleton-icon' },\n hostDirectives: [KbqSkeleton]\n})\nexport class KbqSkeletonIcon {}\n\n/** Placeholder of a link whose data has not loaded yet. */\n@Component({\n selector: 'kbq-skeleton-link',\n template: '',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: { class: 'kbq-skeleton-link' },\n hostDirectives: [KbqSkeleton]\n})\nexport class KbqSkeletonLink {}\n\n/**\n * Placeholder of text that has not loaded yet: lines as tall as the lines of its typography level, a line of body text\n * by default. A single line, such as a heading, is shorter than the lines of a paragraph, which differ in length.\n */\n@Component({\n selector: 'kbq-skeleton-typography',\n imports: [KbqSkeleton],\n template: `\n @for (line of lineList(); track line) {\n <div kbqSkeleton class=\"kbq-skeleton-typography__line\"></div>\n }\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'kbq-skeleton-typography',\n '[class]': 'levelClass()'\n }\n})\nexport class KbqSkeletonTypography {\n private readonly configuration = inject(KBQ_SKELETON_PRESETS_CONFIGURATION);\n\n /** Typography level of the text, the name of its class without `kbq-`, such as `title` or `caps-compact`. */\n readonly level = input('text-normal');\n\n /** Number of lines, `typographyLines` of `KBQ_SKELETON_PRESETS_CONFIGURATION` by default. */\n readonly lines = input<number, number | string>(this.configuration.typographyLines, {\n transform: numberAttribute\n });\n\n protected readonly lineList = computed(() => range(this.lines()));\n protected readonly levelClass = computed(() => `kbq-${this.level()}`);\n}\n\n/** Placeholder of a description list whose data has not loaded yet. */\n@Component({\n selector: 'kbq-skeleton-dl',\n imports: [KbqSkeleton],\n template: `\n @for (row of rowList(); track row) {\n <div kbqSkeleton class=\"kbq-skeleton-dl__term\"></div>\n <div kbqSkeleton class=\"kbq-skeleton-dl__description\"></div>\n }\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: { class: 'kbq-skeleton-dl' }\n})\nexport class KbqSkeletonDl {\n private readonly configuration = inject(KBQ_SKELETON_PRESETS_CONFIGURATION);\n\n /** Number of terms with their descriptions, `dlRows` of `KBQ_SKELETON_PRESETS_CONFIGURATION` by default. */\n readonly rows = input<number, number | string>(this.configuration.dlRows, { transform: numberAttribute });\n\n protected readonly rowList = computed(() => range(this.rows()));\n}\n\nconst equalColumns = (count: number): readonly string[] => range(count).map(() => 'minmax(0, 1fr)');\n\nconst toColumns = (value: number | string | readonly string[]): readonly string[] =>\n typeof value === 'object' ? value : equalColumns(numberAttribute(value));\n\n/** Placeholder of a table whose data has not loaded yet. */\n@Component({\n selector: 'kbq-skeleton-table',\n imports: [KbqSkeleton],\n template: `\n @if (header()) {\n @if (selectable()) {\n <div\n class=\"kbq-skeleton-table__cell kbq-skeleton-table__cell_header kbq-skeleton-table__cell_selection\"\n >\n <div kbqSkeleton></div>\n </div>\n }\n @for (column of columns(); track $index) {\n <div\n class=\"kbq-skeleton-table__cell kbq-skeleton-table__cell_header\"\n [class.kbq-skeleton-table__cell_pinned-edge]=\"$index === pinnedColumns() - 1\"\n >\n <div kbqSkeleton></div>\n </div>\n }\n }\n @for (row of rowList(); track row) {\n @if (selectable()) {\n <div class=\"kbq-skeleton-table__cell kbq-skeleton-table__cell_selection\">\n <div kbqSkeleton></div>\n </div>\n }\n @for (column of columns(); track $index) {\n <div\n class=\"kbq-skeleton-table__cell\"\n [class.kbq-skeleton-table__cell_pinned-edge]=\"$index === pinnedColumns() - 1\"\n >\n <div kbqSkeleton></div>\n </div>\n }\n }\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'kbq-skeleton-table',\n '[style.grid-template-columns]': 'gridTemplateColumns()'\n }\n})\nexport class KbqSkeletonTable {\n private readonly configuration = inject(KBQ_SKELETON_PRESETS_CONFIGURATION);\n\n /** Number of rows below the header, `tableRows` of `KBQ_SKELETON_PRESETS_CONFIGURATION` by default. */\n readonly rows = input<number, number | string>(this.configuration.tableRows, { transform: numberAttribute });\n\n /**\n * Number of columns of equal width, `tableColumns` of `KBQ_SKELETON_PRESETS_CONFIGURATION` by default, or the\n * width of every column as a CSS grid track, such as `160px`, `1fr` or `auto`, for a table whose columns are known.\n */\n readonly columns = input(equalColumns(this.configuration.tableColumns), { transform: toColumns });\n\n /** Whether the table has a header row. */\n readonly header = input<boolean, boolean | string>(true, { transform: booleanAttribute });\n\n /** Whether every row starts with a checkbox, as in a grid whose rows can be selected. */\n readonly selectable = input<boolean, boolean | string>(false, { transform: booleanAttribute });\n\n /** Number of columns pinned to the start and set apart from the rest by a line, as in a grid. */\n readonly pinnedColumns = input<number, number | string>(0, { transform: numberAttribute });\n\n protected readonly rowList = computed(() => range(this.rows()));\n protected readonly gridTemplateColumns = computed(() =>\n [...(this.selectable() ? ['var(--kbq-skeleton-table-selection-width)'] : []), ...this.columns()].join(' ')\n );\n}\n\n/** Placeholder a group repeats in a row. */\nexport type KbqSkeletonGroupPreset = 'button' | 'badge' | 'tag' | 'icon' | 'link';\n\n/** Row of placeholders of one kind, such as the tags of a tag list. */\n@Component({\n selector: 'kbq-skeleton-group',\n imports: [KbqSkeletonButton, KbqSkeletonBadge, KbqSkeletonTag, KbqSkeletonIcon, KbqSkeletonLink],\n template: `\n @for (item of itemList(); track item) {\n @switch (preset()) {\n @case ('button') {\n <kbq-skeleton-button />\n }\n @case ('badge') {\n <kbq-skeleton-badge />\n }\n @case ('tag') {\n <kbq-skeleton-tag />\n }\n @case ('icon') {\n <kbq-skeleton-icon />\n }\n @case ('link') {\n <kbq-skeleton-link />\n }\n }\n }\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'kbq-skeleton-group',\n '[class]': 'presetClass()'\n }\n})\nexport class KbqSkeletonGroup {\n private readonly configuration = inject(KBQ_SKELETON_PRESETS_CONFIGURATION);\n\n /** Placeholder of every item of the row. */\n readonly preset = input.required<KbqSkeletonGroupPreset>();\n\n /** Number of placeholders, `groupCount` of `KBQ_SKELETON_PRESETS_CONFIGURATION` by default. */\n readonly count = input<number, number | string>(this.configuration.groupCount, { transform: numberAttribute });\n\n protected readonly itemList = computed(() => range(this.count()));\n protected readonly presetClass = computed(() => `kbq-skeleton-group_${this.preset()}`);\n}\n\n/** Control a form field placeholder stands in for. */\nexport type KbqSkeletonFormFieldControl = 'input' | 'textarea';\n\n/** Placeholder of a form field whose value has not loaded yet: its label, control and hint. */\n@Component({\n selector: 'kbq-skeleton-form-field',\n imports: [KbqSkeleton],\n template: `\n @if (label()) {\n <div class=\"kbq-skeleton-form-field__label\" [class]=\"labelClass()\">\n <div kbqSkeleton></div>\n </div>\n }\n <div class=\"kbq-skeleton-form-field__content\" [class]=\"contentClass()\">\n <div kbqSkeleton class=\"kbq-skeleton-form-field__control\"></div>\n @if (hint()) {\n <div kbqSkeleton class=\"kbq-skeleton-form-field__hint\"></div>\n }\n </div>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'kbq-skeleton-form-field',\n '[class.kbq-skeleton-form-field_horizontal]': 'horizontal()',\n '[class.kbq-skeleton-form-field_textarea]': 'control() === \"textarea\"'\n }\n})\nexport class KbqSkeletonFormField {\n /** Whether the label is to the left of the control, as in a horizontal `kbq-form-field`. */\n readonly horizontal = input<boolean, boolean | string>(false, { transform: booleanAttribute });\n\n /** Control of the form field. */\n readonly control = input<KbqSkeletonFormFieldControl>('input');\n\n /** Whether the form field has a label, as a `kbq-form-field` with `kbq-label`. */\n readonly label = input<boolean, boolean | string>(true, { transform: booleanAttribute });\n\n /** Whether the form field has a hint below the control. */\n readonly hint = input<boolean, boolean | string>(false, { transform: booleanAttribute });\n\n /** Classes of the label, such as the `labelClass` of the `kbq-form-field` the placeholder stands in for. */\n readonly labelClass = input<string | string[] | Set<string>>();\n\n /** Classes of the control and the hint, such as the `contentClass` of the `kbq-form-field`. */\n readonly contentClass = input<string | string[] | Set<string>>();\n}\n\n/** Placeholder of an accordion whose items have not loaded yet: collapsed items with their icon and title. */\n@Component({\n selector: 'kbq-skeleton-accordion',\n imports: [KbqSkeleton],\n template: `\n @for (row of rowList(); track row) {\n <div class=\"kbq-skeleton-accordion__item\">\n <div kbqSkeleton class=\"kbq-skeleton-accordion__icon\"></div>\n <div kbqSkeleton class=\"kbq-skeleton-accordion__title\"></div>\n </div>\n }\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: { class: 'kbq-skeleton-accordion' }\n})\nexport class KbqSkeletonAccordion {\n private readonly configuration = inject(KBQ_SKELETON_PRESETS_CONFIGURATION);\n\n /** Number of collapsed items, `accordionRows` of `KBQ_SKELETON_PRESETS_CONFIGURATION` by default. */\n readonly rows = input<number, number | string>(this.configuration.accordionRows, { transform: numberAttribute });\n\n protected readonly rowList = computed(() => range(this.rows()));\n}\n\n/** Control a checkable placeholder stands in for. */\nexport type KbqSkeletonCheckableControl = 'checkbox' | 'radio' | 'toggle';\n\n/**\n * Placeholder of checkboxes, radio buttons or toggles whose data has not loaded yet: the control, and the label with\n * its hint on demand.\n */\n@Component({\n selector: 'kbq-skeleton-checkable',\n imports: [KbqSkeleton],\n template: `\n @for (row of rowList(); track row) {\n <div class=\"kbq-skeleton-checkable__row\">\n <div kbqSkeleton class=\"kbq-skeleton-checkable__control\"></div>\n @if (label()) {\n <div class=\"kbq-skeleton-checkable__text\">\n <div kbqSkeleton class=\"kbq-skeleton-checkable__label\"></div>\n @if (hint()) {\n <div kbqSkeleton class=\"kbq-skeleton-checkable__hint\"></div>\n }\n </div>\n }\n </div>\n }\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'kbq-skeleton-checkable',\n '[class]': 'controlClass()'\n }\n})\nexport class KbqSkeletonCheckable {\n private readonly configuration = inject(KBQ_SKELETON_PRESETS_CONFIGURATION);\n\n /** Control the placeholder stands in for. */\n readonly control = input<KbqSkeletonCheckableControl>('checkbox');\n\n /** Number of controls, `checkableRows` of `KBQ_SKELETON_PRESETS_CONFIGURATION` by default. */\n readonly rows = input<number, number | string>(this.configuration.checkableRows, { transform: numberAttribute });\n\n /** Whether a control has a label. */\n readonly label = input<boolean, boolean | string>(true, { transform: booleanAttribute });\n\n /** Whether the label has a hint below it. */\n readonly hint = input<boolean, boolean | string>(false, { transform: booleanAttribute });\n\n protected readonly rowList = computed(() => range(this.rows()));\n protected readonly controlClass = computed(() => `kbq-skeleton-checkable_${this.control()}`);\n}\n\n/**\n * Placeholder of tabs whose data has not loaded yet: the first tab stands out as the selected one. The content below\n * or beside them is text, or the placeholders projected into the component.\n */\n@Component({\n selector: 'kbq-skeleton-tabs',\n imports: [KbqSkeleton, KbqSkeletonTypography],\n template: `\n <div class=\"kbq-skeleton-tabs__header\">\n @for (tab of tabList(); track tab) {\n <div class=\"kbq-skeleton-tabs__tab\" [class.kbq-skeleton-tabs__tab_selected]=\"tab === 0\">\n <div kbqSkeleton></div>\n </div>\n }\n </div>\n <div class=\"kbq-skeleton-tabs__content\">\n <ng-content>\n <kbq-skeleton-typography [lines]=\"contentLines()\" />\n </ng-content>\n </div>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'kbq-skeleton-tabs',\n '[class.kbq-skeleton-tabs_vertical]': 'vertical()'\n }\n})\nexport class KbqSkeletonTabs {\n private readonly configuration = inject(KBQ_SKELETON_PRESETS_CONFIGURATION);\n\n /** Whether the tabs are stacked beside the content, as in a vertical `kbq-tab-group`. */\n readonly vertical = input<boolean, boolean | string>(false, { transform: booleanAttribute });\n\n /** Number of tabs, `tabsCount` of `KBQ_SKELETON_PRESETS_CONFIGURATION` by default. */\n readonly count = input<number, number | string>(this.configuration.tabsCount, { transform: numberAttribute });\n\n /**\n * Number of lines of the text that stands for the content when nothing is projected, `tabsContentLines` of\n * `KBQ_SKELETON_PRESETS_CONFIGURATION` by default.\n */\n readonly contentLines = input<number, number | string>(this.configuration.tabsContentLines, {\n transform: numberAttribute\n });\n\n protected readonly tabList = computed(() => range(this.count()));\n}\n\n/** Placeholder of a tree whose nodes have not loaded yet, with the second node expanded. */\n@Component({\n selector: 'kbq-skeleton-tree',\n imports: [KbqSkeleton],\n template: `\n @for (row of rowList(); track row) {\n <div class=\"kbq-skeleton-tree__node kbq-skeleton-tree__node_{{ (row % 3) + 1 }}\">\n <div kbqSkeleton class=\"kbq-skeleton-tree__toggle\"></div>\n <div kbqSkeleton class=\"kbq-skeleton-tree__label\"></div>\n </div>\n @if (row === 1) {\n @for (child of childList(); track child) {\n <div\n class=\"kbq-skeleton-tree__node kbq-skeleton-tree__node_nested kbq-skeleton-tree__node_{{\n (child % 3) + 1\n }}\"\n >\n <div kbqSkeleton class=\"kbq-skeleton-tree__toggle\"></div>\n <div kbqSkeleton class=\"kbq-skeleton-tree__label\"></div>\n </div>\n }\n }\n }\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: { class: 'kbq-skeleton-tree' }\n})\nexport class KbqSkeletonTree {\n private readonly configuration = inject(KBQ_SKELETON_PRESETS_CONFIGURATION);\n\n /** Number of top-level nodes, `treeRows` of `KBQ_SKELETON_PRESETS_CONFIGURATION` by default. */\n readonly rows = input<number, number | string>(this.configuration.treeRows, { transform: numberAttribute });\n\n /**\n * Number of children of the expanded second node, `treeChildren` of `KBQ_SKELETON_PRESETS_CONFIGURATION` by\n * default.\n */\n readonly children = input<number, number | string>(this.configuration.treeChildren, {\n transform: numberAttribute\n });\n\n protected readonly rowList = computed(() => range(this.rows()));\n protected readonly childList = computed(() => range(this.children()));\n}\n","import { NgModule } from '@angular/core';\nimport { KbqSkeleton } from './skeleton';\nimport {\n KbqSkeletonAccordion,\n KbqSkeletonBadge,\n KbqSkeletonButton,\n KbqSkeletonCheckable,\n KbqSkeletonDl,\n KbqSkeletonFormField,\n KbqSkeletonGroup,\n KbqSkeletonIcon,\n KbqSkeletonLink,\n KbqSkeletonTable,\n KbqSkeletonTabs,\n KbqSkeletonTag,\n KbqSkeletonTree,\n KbqSkeletonTypography\n} from './skeleton-presets';\n\nconst COMPONENTS = [\n KbqSkeleton,\n KbqSkeletonButton,\n KbqSkeletonBadge,\n KbqSkeletonTag,\n KbqSkeletonIcon,\n KbqSkeletonLink,\n KbqSkeletonTypography,\n KbqSkeletonDl,\n KbqSkeletonTable,\n KbqSkeletonGroup,\n KbqSkeletonFormField,\n KbqSkeletonAccordion,\n KbqSkeletonCheckable,\n KbqSkeletonTabs,\n KbqSkeletonTree\n];\n\n@NgModule({\n imports: COMPONENTS,\n exports: COMPONENTS\n})\nexport class KbqSkeletonModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1,143 +1,164 @@
1
1
  import * as i0 from '@angular/core';
2
- import { contentChild, input, booleanAttribute, Input, ContentChildren, ViewEncapsulation, ChangeDetectionStrategy, Component, NgModule } from '@angular/core';
2
+ import { contentChildren, contentChild, input, computed, booleanAttribute, effect, isDevMode, ViewEncapsulation, ChangeDetectionStrategy, Component, NgModule } from '@angular/core';
3
3
  import { KbqButtonStyles, KbqButton } from '@koobiq/components/button';
4
4
  import { KbqColorDirective, kbqInjectNativeElement, KbqComponentColors } from '@koobiq/components/core';
5
5
  import { KbqDropdownTrigger } from '@koobiq/components/dropdown';
6
- import { delay } from 'rxjs/operators';
7
6
 
8
7
  class KbqSplitButton extends KbqColorDirective {
9
- /** component style, will be set for nested buttons */
10
- // TODO: Skipped for migration because:
11
- // Accessor inputs cannot be migrated as they are too complex.
8
+ /**
9
+ * Visual style of the split button, propagated to every nested button. A button that sets its own
10
+ * `kbqStyle` keeps it.
11
+ *
12
+ * Reads back as the resulting host class rather than the value that was set, because the host
13
+ * `[class]` binding is what consumes it.
14
+ */
12
15
  get kbqStyle() {
13
16
  return `kbq-button_${this._kbqStyle}`;
14
17
  }
15
18
  set kbqStyle(value) {
16
19
  this._kbqStyle = value || KbqButtonStyles.Filled;
17
- this.updateStyle(this._kbqStyle);
20
+ this.updateStyle(this._kbqStyle, this.buttons?.());
18
21
  }
19
- /** component color, will be set for nested buttons */
20
- // TODO: Skipped for migration because:
21
- // Accessor inputs cannot be migrated as they are too complex.
22
- get color() {
23
- return this._color;
24
- }
25
- set color(value) {
26
- if (!value)
27
- return;
28
- super.color = value;
29
- this.updateColor(this.color);
30
- }
31
- /** Whether the checkbox is disabled. */
32
- // TODO: Skipped for migration because:
33
- // Accessor inputs cannot be migrated as they are too complex.
22
+ /**
23
+ * Whether the split button is disabled. Disabling it disables every nested button; re-enabling it
24
+ * leaves buttons that are disabled through their own input untouched.
25
+ */
34
26
  get disabled() {
35
27
  return this._disabled;
36
28
  }
37
29
  set disabled(value) {
38
30
  this._disabled = value;
39
- this.updateDisabledState(this._disabled);
31
+ this.updateDisabledState(this._disabled, this.buttons?.());
40
32
  }
33
+ // Both states are computed rather than read off the query on every pass, and stay getters rather
34
+ // than becoming signals because they are public API, where the call shape has to keep working as
35
+ // a property read.
36
+ /** Whether the leading button is disabled. */
41
37
  get firstDisabled() {
42
- return this.buttons.first?.disabled;
38
+ return this.firstButtonDisabled();
43
39
  }
40
+ /** Whether the trailing button is disabled. Stays `false` while the split button holds one button. */
44
41
  get secondDisabled() {
45
- return this.buttons.length > 1 && this.buttons.last?.disabled;
42
+ return this.lastButtonDisabled();
43
+ }
44
+ ngOnChanges(changes) {
45
+ // A bound input is handed to its member; unbound, it leaves what code wrote.
46
+ if (changes['kbqStyleInput']) {
47
+ this.kbqStyle = this.kbqStyleInput();
48
+ }
49
+ if (changes['disabledInput']) {
50
+ const disabled = this.disabledInput();
51
+ if (disabled !== undefined)
52
+ this.disabled = disabled;
53
+ }
46
54
  }
47
55
  constructor() {
48
56
  super();
49
57
  this.nativeElement = kbqInjectNativeElement();
50
58
  /** @docs-private */
51
- this.dropdownTrigger = contentChild(KbqDropdownTrigger, ...(ngDevMode ? [{ debugName: "dropdownTrigger" }] : []));
59
+ this.buttons = contentChildren(KbqButton, ...(ngDevMode ? [{ debugName: "buttons" }] : /* istanbul ignore next */ []));
60
+ /** @docs-private */
61
+ this.dropdownTrigger = contentChild(KbqDropdownTrigger, ...(ngDevMode ? [{ debugName: "dropdownTrigger" }] : /* istanbul ignore next */ []));
52
62
  /** Sets the width of the dropdown to the width of the trigger. Default is false */
53
- this.panelAutoWidth = input(false, ...(ngDevMode ? [{ debugName: "panelAutoWidth" }] : []));
63
+ this.panelAutoWidth = input(false, ...(ngDevMode ? [{ debugName: "panelAutoWidth" }] : /* istanbul ignore next */ []));
54
64
  this._kbqStyle = KbqButtonStyles.Filled;
55
- this.updateDropdownParams = () => {
56
- const dropdownTrigger = this.dropdownTrigger();
57
- if (!dropdownTrigger)
58
- return;
59
- dropdownTrigger.dropdown.xPosition = 'before';
60
- // The trigger is only the chevron button, so the whole control has to be named explicitly.
61
- // It is measured lazily on open, which is why no wait for styles to apply is needed here.
62
- dropdownTrigger.widthOrigin = this.panelAutoWidth() ? this.nativeElement : undefined;
63
- };
64
- this.color = KbqComponentColors.ContrastFade;
65
+ /**
66
+ * Color propagated to every nested button: a bound `color`, or one set in code other than the
67
+ * split button's own default. Nothing is propagated otherwise, and every nested button follows the
68
+ * default color of its style. A button that sets its own `color` keeps it.
69
+ */
70
+ this.propagatedColor = computed(() => {
71
+ const color = this.color();
72
+ return this.colorInput() || color !== this.defaultColor() ? color : undefined;
73
+ }, ...(ngDevMode ? [{ debugName: "propagatedColor" }] : /* istanbul ignore next */ []));
74
+ this.firstButtonDisabled = computed(() => !!this.buttons().at(0)?.disabled, ...(ngDevMode ? [{ debugName: "firstButtonDisabled" }] : /* istanbul ignore next */ []));
75
+ this.lastButtonDisabled = computed(() => {
76
+ const buttons = this.buttons();
77
+ return buttons.length > 1 && !!buttons.at(-1)?.disabled;
78
+ }, ...(ngDevMode ? [{ debugName: "lastButtonDisabled" }] : /* istanbul ignore next */ []));
79
+ /** @docs-private */
80
+ this.kbqStyleInput = input(undefined, { ...(ngDevMode ? { debugName: "kbqStyleInput" } : /* istanbul ignore next */ {}), alias: 'kbqStyle' });
81
+ /** @docs-private */
82
+ this.disabledInput = input(undefined, { ...(ngDevMode ? { debugName: "disabledInput" } : /* istanbul ignore next */ {}), alias: 'disabled',
83
+ transform: booleanAttribute });
84
+ // The split button's own default styles the host element but is not propagated, so every
85
+ // nested button is free to follow the default color of the current style.
86
+ this.setDefaultColor(KbqComponentColors.ContrastFade);
87
+ effect(() => {
88
+ const color = this.propagatedColor();
89
+ this.buttons().forEach((button) => button.setColorFromGroup(color));
90
+ });
91
+ effect(() => {
92
+ const buttons = this.buttons();
93
+ this.updateClasses(buttons);
94
+ this.updateStyle(this._kbqStyle, buttons);
95
+ this.updateDisabledState(this._disabled, buttons);
96
+ this.updateDropdownParams();
97
+ });
65
98
  }
66
99
  ngAfterContentInit() {
67
- this.updateClasses();
68
- this.updateStyle(this._kbqStyle);
69
- this.updateColor(this.color);
70
- this.updateDisabledState(this.disabled);
71
- this.updateDropdownParams();
72
- if (!this.buttons.length) {
73
- throw new Error(`kbq-split-button must contain at least one button`);
100
+ // Dev-mode only: in production a misconfigured template degrades to an empty control instead
101
+ // of aborting the change detection pass of whoever renders it.
102
+ if (isDevMode() && !this.buttons().length) {
103
+ throw new Error('kbq-split-button must contain at least one button');
74
104
  }
75
- this.buttons.changes.pipe(delay(0)).subscribe(() => {
76
- this.updateClasses();
77
- this.updateStyle(this._kbqStyle);
78
- this.updateColor(this.color);
79
- this.updateDropdownParams();
80
- });
81
105
  }
82
- updateClasses() {
83
- this.buttons.forEach((button) => {
84
- button.getHostElement().classList.remove(`kbq-split-button_first`, `kbq-split-button_second`);
106
+ updateClasses(buttons) {
107
+ buttons.forEach((button) => {
108
+ button.getHostElement().classList.remove('kbq-split-button_first', 'kbq-split-button_second');
85
109
  });
86
- this.buttons.first?.getHostElement().classList.add(`kbq-split-button_first`);
87
- this.buttons.last?.getHostElement().classList.add(`kbq-split-button_second`);
88
- this.buttons.forEach((button) => {
89
- button.getHostElement().classList.add(`kbq-split-button_item`);
110
+ buttons.at(0)?.getHostElement().classList.add('kbq-split-button_first');
111
+ buttons.at(-1)?.getHostElement().classList.add('kbq-split-button_second');
112
+ buttons.forEach((button) => {
113
+ button.getHostElement().classList.add('kbq-split-button_item');
90
114
  });
91
115
  }
92
- updateColor(color) {
93
- this.buttons?.forEach((button) => (button.color = color));
116
+ updateStyle(style, buttons) {
117
+ buttons?.forEach((button) => button.setKbqStyleFromGroup(style));
94
118
  }
95
- updateStyle(style) {
96
- this.buttons?.forEach((button) => (button.kbqStyle = style));
97
- }
98
- updateDisabledState(state) {
119
+ updateDisabledState(state, buttons) {
120
+ // Stays `undefined` while the input is unbound, and force-enabling every nested button is not
121
+ // the same thing as not being disabled.
99
122
  if (state === undefined)
100
123
  return;
101
- this.buttons?.forEach((button) => (button.disabled = state));
124
+ buttons?.forEach((button) => button.setDisabledFromGroup(state));
102
125
  }
103
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.30", ngImport: i0, type: KbqSplitButton, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
104
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "20.3.30", type: KbqSplitButton, isStandalone: true, selector: "kbq-split-button, [kbq-split-button]", inputs: { panelAutoWidth: { classPropertyName: "panelAutoWidth", publicName: "panelAutoWidth", isSignal: true, isRequired: false, transformFunction: null }, kbqStyle: { classPropertyName: "kbqStyle", publicName: "kbqStyle", isSignal: false, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: false, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: false, isRequired: false, transformFunction: booleanAttribute } }, host: { properties: { "class": "kbqStyle", "class.kbq-split-button_styles-for-nested": "buttons.length > 1", "class.kbq-split-button_first-disabled": "firstDisabled", "class.kbq-split-button_second-disabled": "secondDisabled" }, classAttribute: "kbq-split-button" }, queries: [{ propertyName: "dropdownTrigger", first: true, predicate: KbqDropdownTrigger, descendants: true, isSignal: true }, { propertyName: "buttons", predicate: KbqButton }], usesInheritance: true, ngImport: i0, template: `
105
- <ng-content select="[kbq-button]" />
106
-
126
+ updateDropdownParams() {
127
+ const dropdownTrigger = this.dropdownTrigger();
128
+ if (!dropdownTrigger)
129
+ return;
130
+ dropdownTrigger.dropdown().xPosition.set('before');
131
+ // The trigger is only the chevron button, so the whole control has to be named explicitly.
132
+ // It is measured lazily on open, which is why no wait for styles to apply is needed here.
133
+ dropdownTrigger.widthOrigin = this.panelAutoWidth() ? this.nativeElement : undefined;
134
+ }
135
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: KbqSplitButton, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
136
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.2.25", type: KbqSplitButton, isStandalone: true, selector: "kbq-split-button, [kbq-split-button]", inputs: { panelAutoWidth: { classPropertyName: "panelAutoWidth", publicName: "panelAutoWidth", isSignal: true, isRequired: false, transformFunction: null }, kbqStyleInput: { classPropertyName: "kbqStyleInput", publicName: "kbqStyle", isSignal: true, isRequired: false, transformFunction: null }, disabledInput: { classPropertyName: "disabledInput", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "role": "group" }, properties: { "class": "kbqStyle", "class.kbq-split-button_styles-for-nested": "buttons().length > 1", "class.kbq-split-button_first-disabled": "firstDisabled", "class.kbq-split-button_second-disabled": "secondDisabled" }, classAttribute: "kbq-split-button" }, queries: [{ propertyName: "buttons", predicate: KbqButton, isSignal: true }, { propertyName: "dropdownTrigger", first: true, predicate: KbqDropdownTrigger, descendants: true, isSignal: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: `
107
137
  <ng-content select="[kbq-button]" />
108
- `, isInline: true, styles: [".kbq-truncate-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kbq-no-select{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.kbq-split-button{display:flex;flex-direction:row;min-width:0;border-radius:var(--kbq-size-border-radius)}.kbq-split-button.kbq-split-button_styles-for-nested .kbq-split-button_first.kbq-button{padding-right:10px}.kbq-split-button.kbq-split-button_styles-for-nested .kbq-split-button_first{min-width:0;border-right:none;border-top-right-radius:unset;border-bottom-right-radius:unset}.kbq-split-button.kbq-split-button_styles-for-nested .kbq-split-button_first .kbq-button-wrapper{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kbq-split-button.kbq-split-button_styles-for-nested .kbq-split-button_second{border-left:none;border-top-left-radius:unset;border-bottom-left-radius:unset}.kbq-split-button.kbq-split-button_styles-for-nested .kbq-split-button_second:before{display:block;content:\"\";position:absolute;left:0;top:calc(var(--kbq-size-s) - var(--kbq-button-size-border-width));width:1px;height:var(--kbq-size-l)}.kbq-split-button.kbq-split-button_styles-for-nested .kbq-split-button_first:not(.kbq-disabled):is(:hover,.kbq-hover,.cdk-keyboard-focused,.kbq-active)+.kbq-split-button_second:before{display:none}.kbq-split-button.kbq-split-button_styles-for-nested .kbq-split-button_second:not(.kbq-disabled):is(:hover,.kbq-hover,.cdk-keyboard-focused,.kbq-active):before{display:none}.kbq-split-button.kbq-split-button_styles-for-nested .kbq-button-icon+.kbq-button-icon{padding-left:var(--kbq-size-xxs);padding-right:var(--kbq-size-xxs)}.kbq-split-button:hover:has(.kbq-button_transparent){background:var(--kbq-states-background-transparent-hover)}.kbq-split-button .kbq-split-button_item.kbq-contrast.kbq-button_filled:before{background:var(--kbq-line-on-contrast-fade, var(--kbq-foreground-on-contrast))}.kbq-split-button .kbq-split-button_item.kbq-contrast.kbq-button_transparent:before,.kbq-split-button .kbq-split-button_item.kbq-contrast-fade.kbq-button_outline:before,.kbq-split-button .kbq-split-button_item.kbq-contrast-fade.kbq-button_filled:before{background:var(--kbq-line-contrast-fade)}.kbq-split-button .kbq-split-button_item.kbq-theme-fade.kbq-button_outline:before,.kbq-split-button .kbq-split-button_item.kbq-theme.kbq-button_transparent:before{background:var(--kbq-line-theme-fade)}.kbq-split-button .kbq-split-button_item.kbq-split-button_first.cdk-keyboard-focused{z-index:1;box-shadow:inset -1px 0 0 0 var(--kbq-states-line-focus-theme)}.kbq-split-button .kbq-split-button_item.kbq-split-button_second.cdk-keyboard-focused{box-shadow:inset 1px 0 0 0 var(--kbq-states-line-focus-theme)}.kbq-split-button .kbq-button_outline:has(+.kbq-button_outline){border-right:none}.kbq-split-button .kbq-button_outline:has(+.kbq-button_outline)+.kbq-button_outline{border-left:none}.kbq-split-button.kbq-split-button_first-disabled.kbq-contrast-fade.kbq-button_filled .kbq-split-button_item,.kbq-split-button.kbq-split-button_first-disabled.kbq-contrast.kbq-button_filled .kbq-split-button_item{background:var(--kbq-states-background-disabled)}.kbq-split-button.kbq-split-button_first-disabled.kbq-contrast-fade.kbq-button_filled .kbq-split-button_second:not(.kbq-disabled):hover,.kbq-split-button.kbq-split-button_first-disabled.kbq-contrast.kbq-button_filled .kbq-split-button_second:not(.kbq-disabled):hover{background:var(--kbq-states-background-contrast-fade-hover)}.kbq-split-button.kbq-split-button_first-disabled.kbq-contrast-fade.kbq-button_filled .kbq-split-button_second:not(.kbq-disabled):active,.kbq-split-button.kbq-split-button_first-disabled.kbq-contrast.kbq-button_filled .kbq-split-button_second:not(.kbq-disabled):active{background:var(--kbq-states-background-contrast-fade-active)}.kbq-split-button.kbq-split-button_first-disabled.kbq-contrast-fade.kbq-button_filled .kbq-split-button_second:not(.kbq-disabled) .kbq-icon.kbq-empty,.kbq-split-button.kbq-split-button_first-disabled.kbq-contrast.kbq-button_filled .kbq-split-button_second:not(.kbq-disabled) .kbq-icon.kbq-empty{color:var(--kbq-icon-contrast)}.kbq-split-button.kbq-split-button_first-disabled.kbq-contrast-fade.kbq-button_filled .kbq-split-button_second:not(.kbq-disabled):before,.kbq-split-button.kbq-split-button_first-disabled.kbq-contrast.kbq-button_filled .kbq-split-button_second:not(.kbq-disabled):before{background:var(--kbq-line-contrast-fade)}.kbq-split-button.kbq-split-button_first-disabled.kbq-theme-fade.kbq-button_outline .kbq-split-button_item{border-color:var(--kbq-button-outline-theme-fade-on-states-disabled-border)}.kbq-split-button.kbq-split-button_second-disabled:not(.kbq-split-button_first-disabled).kbq-contrast.kbq-button_filled .kbq-split-button_second{background:var(--kbq-button-filled-contrast-fade-off-background)}.kbq-split-button.kbq-split-button_second-disabled:not(.kbq-split-button_first-disabled).kbq-contrast-fade.kbq-button_filled .kbq-split-button_first{background:var(--kbq-states-background-disabled)}.kbq-split-button.kbq-split-button_second-disabled:not(.kbq-split-button_first-disabled).kbq-theme-fade.kbq-button_outline .kbq-split-button_item{border-color:var(--kbq-button-outline-theme-fade-on-states-disabled-border)}.kbq-split-button.kbq-split-button_second-disabled:not(.kbq-split-button_first-disabled).kbq-theme.kbq-button_transparent .kbq-split-button_second:before{background:var(--kbq-states-line-disabled)}.kbq-split-button.kbq-split-button_second-disabled:not(.kbq-split-button_first-disabled) .kbq-split-button_second:before{background:var(--kbq-states-line-disabled)}.kbq-split-button.kbq-split-button_first-disabled.kbq-split-button_second-disabled .kbq-split-button_second:before{background:var(--kbq-line-contrast-fade)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
138
+ `, isInline: true, styles: [".kbq-split-button{display:flex;flex-direction:row;min-width:0;border-radius:var(--kbq-size-border-radius)}@supports (corner-shape: squircle){.kbq-split-button{corner-shape:squircle;border-radius:clamp(var(--kbq-size-border-radius) * 1.85,var(--kbq-size-border-radius) * 2.3 - 3.6px,var(--kbq-size-border-radius) * 2)}}.kbq-split-button.kbq-split-button_styles-for-nested .kbq-split-button_first.kbq-button{padding-right:10px}.kbq-split-button.kbq-split-button_styles-for-nested .kbq-split-button_first{min-width:0;border-right:none;border-top-right-radius:unset;border-bottom-right-radius:unset}.kbq-split-button.kbq-split-button_styles-for-nested .kbq-split-button_second{border-left:none;border-top-left-radius:unset;border-bottom-left-radius:unset}.kbq-split-button.kbq-split-button_styles-for-nested .kbq-split-button_second:before{display:block;content:\"\";position:absolute;left:0;top:calc(var(--kbq-size-s) - var(--kbq-button-size-border-width));width:1px;height:var(--kbq-size-l)}.kbq-split-button.kbq-split-button_styles-for-nested .kbq-split-button_first:not(.kbq-disabled):is(:hover,.kbq-hover,.cdk-keyboard-focused,.kbq-active)+.kbq-split-button_second:before{display:none}.kbq-split-button.kbq-split-button_styles-for-nested .kbq-split-button_second:not(.kbq-disabled):is(:hover,.kbq-hover,.cdk-keyboard-focused,.kbq-active):before{display:none}.kbq-split-button.kbq-split-button_styles-for-nested .kbq-button-icon+.kbq-button-icon{padding-left:var(--kbq-size-xxs);padding-right:var(--kbq-size-xxs)}.kbq-split-button:hover:has(.kbq-button_transparent){background:var(--kbq-states-background-transparent-hover)}.kbq-split-button .kbq-split-button_item.kbq-contrast.kbq-button_filled:before{background:var(--kbq-line-on-contrast-fade, var(--kbq-foreground-on-contrast))}.kbq-split-button .kbq-split-button_item.kbq-contrast.kbq-button_transparent:before,.kbq-split-button .kbq-split-button_item.kbq-contrast-fade.kbq-button_outline:before,.kbq-split-button .kbq-split-button_item.kbq-contrast-fade.kbq-button_filled:before{background:var(--kbq-line-contrast-fade)}.kbq-split-button .kbq-split-button_item.kbq-theme-fade.kbq-button_outline:before,.kbq-split-button .kbq-split-button_item.kbq-theme.kbq-button_transparent:before{background:var(--kbq-line-theme-fade)}.kbq-split-button .kbq-split-button_item.kbq-split-button_first.cdk-keyboard-focused{z-index:1;box-shadow:inset -1px 0 0 0 var(--kbq-states-line-focus-theme)}.kbq-split-button .kbq-split-button_item.kbq-split-button_second.cdk-keyboard-focused{box-shadow:inset 1px 0 0 0 var(--kbq-states-line-focus-theme)}.kbq-split-button .kbq-button_outline:has(+.kbq-button_outline){border-right:none}.kbq-split-button .kbq-button_outline:has(+.kbq-button_outline)+.kbq-button_outline{border-left:none}.kbq-split-button.kbq-split-button_first-disabled.kbq-contrast-fade.kbq-button_filled .kbq-split-button_item,.kbq-split-button.kbq-split-button_first-disabled.kbq-contrast.kbq-button_filled .kbq-split-button_item{background:var(--kbq-states-background-disabled)}.kbq-split-button.kbq-split-button_first-disabled.kbq-contrast-fade.kbq-button_filled .kbq-split-button_second:not(.kbq-disabled):hover,.kbq-split-button.kbq-split-button_first-disabled.kbq-contrast.kbq-button_filled .kbq-split-button_second:not(.kbq-disabled):hover{background:var(--kbq-states-background-contrast-fade-hover)}.kbq-split-button.kbq-split-button_first-disabled.kbq-contrast-fade.kbq-button_filled .kbq-split-button_second:not(.kbq-disabled):active,.kbq-split-button.kbq-split-button_first-disabled.kbq-contrast.kbq-button_filled .kbq-split-button_second:not(.kbq-disabled):active{background:var(--kbq-states-background-contrast-fade-active)}.kbq-split-button.kbq-split-button_first-disabled.kbq-contrast-fade.kbq-button_filled .kbq-split-button_second:not(.kbq-disabled) .kbq-icon.kbq-empty,.kbq-split-button.kbq-split-button_first-disabled.kbq-contrast.kbq-button_filled .kbq-split-button_second:not(.kbq-disabled) .kbq-icon.kbq-empty{color:var(--kbq-icon-contrast)}.kbq-split-button.kbq-split-button_first-disabled.kbq-contrast-fade.kbq-button_filled .kbq-split-button_second:not(.kbq-disabled):before,.kbq-split-button.kbq-split-button_first-disabled.kbq-contrast.kbq-button_filled .kbq-split-button_second:not(.kbq-disabled):before{background:var(--kbq-line-contrast-fade)}.kbq-split-button.kbq-split-button_first-disabled.kbq-theme-fade.kbq-button_outline .kbq-split-button_item{border-color:var(--kbq-button-outline-theme-fade-on-states-disabled-border)}.kbq-split-button.kbq-split-button_second-disabled:not(.kbq-split-button_first-disabled).kbq-contrast.kbq-button_filled .kbq-split-button_second{background:var(--kbq-button-filled-contrast-fade-off-background)}.kbq-split-button.kbq-split-button_second-disabled:not(.kbq-split-button_first-disabled).kbq-contrast-fade.kbq-button_filled .kbq-split-button_first{background:var(--kbq-states-background-disabled)}.kbq-split-button.kbq-split-button_second-disabled:not(.kbq-split-button_first-disabled).kbq-theme-fade.kbq-button_outline .kbq-split-button_item{border-color:var(--kbq-button-outline-theme-fade-on-states-disabled-border)}.kbq-split-button.kbq-split-button_second-disabled:not(.kbq-split-button_first-disabled).kbq-theme.kbq-button_transparent .kbq-split-button_second:before{background:var(--kbq-states-line-disabled)}.kbq-split-button.kbq-split-button_second-disabled:not(.kbq-split-button_first-disabled) .kbq-split-button_second:before{background:var(--kbq-states-line-disabled)}.kbq-split-button.kbq-split-button_first-disabled.kbq-split-button_second-disabled .kbq-split-button_second:before{background:var(--kbq-line-contrast-fade)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
109
139
  }
110
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.30", ngImport: i0, type: KbqSplitButton, decorators: [{
140
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: KbqSplitButton, decorators: [{
111
141
  type: Component,
112
142
  args: [{ selector: 'kbq-split-button, [kbq-split-button]', template: `
113
143
  <ng-content select="[kbq-button]" />
114
-
115
- <ng-content select="[kbq-button]" />
116
144
  `, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
145
+ // The nested buttons stay separate tab stops and separate actions; the host only ties them
146
+ // together, which is exactly what `group` announces. Consumers name it with `aria-label`.
147
+ role: 'group',
117
148
  class: 'kbq-split-button',
118
149
  '[class]': 'kbqStyle',
119
- '[class.kbq-split-button_styles-for-nested]': 'buttons.length > 1',
150
+ '[class.kbq-split-button_styles-for-nested]': 'buttons().length > 1',
120
151
  '[class.kbq-split-button_first-disabled]': 'firstDisabled',
121
152
  '[class.kbq-split-button_second-disabled]': 'secondDisabled'
122
- }, styles: [".kbq-truncate-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kbq-no-select{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.kbq-split-button{display:flex;flex-direction:row;min-width:0;border-radius:var(--kbq-size-border-radius)}.kbq-split-button.kbq-split-button_styles-for-nested .kbq-split-button_first.kbq-button{padding-right:10px}.kbq-split-button.kbq-split-button_styles-for-nested .kbq-split-button_first{min-width:0;border-right:none;border-top-right-radius:unset;border-bottom-right-radius:unset}.kbq-split-button.kbq-split-button_styles-for-nested .kbq-split-button_first .kbq-button-wrapper{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kbq-split-button.kbq-split-button_styles-for-nested .kbq-split-button_second{border-left:none;border-top-left-radius:unset;border-bottom-left-radius:unset}.kbq-split-button.kbq-split-button_styles-for-nested .kbq-split-button_second:before{display:block;content:\"\";position:absolute;left:0;top:calc(var(--kbq-size-s) - var(--kbq-button-size-border-width));width:1px;height:var(--kbq-size-l)}.kbq-split-button.kbq-split-button_styles-for-nested .kbq-split-button_first:not(.kbq-disabled):is(:hover,.kbq-hover,.cdk-keyboard-focused,.kbq-active)+.kbq-split-button_second:before{display:none}.kbq-split-button.kbq-split-button_styles-for-nested .kbq-split-button_second:not(.kbq-disabled):is(:hover,.kbq-hover,.cdk-keyboard-focused,.kbq-active):before{display:none}.kbq-split-button.kbq-split-button_styles-for-nested .kbq-button-icon+.kbq-button-icon{padding-left:var(--kbq-size-xxs);padding-right:var(--kbq-size-xxs)}.kbq-split-button:hover:has(.kbq-button_transparent){background:var(--kbq-states-background-transparent-hover)}.kbq-split-button .kbq-split-button_item.kbq-contrast.kbq-button_filled:before{background:var(--kbq-line-on-contrast-fade, var(--kbq-foreground-on-contrast))}.kbq-split-button .kbq-split-button_item.kbq-contrast.kbq-button_transparent:before,.kbq-split-button .kbq-split-button_item.kbq-contrast-fade.kbq-button_outline:before,.kbq-split-button .kbq-split-button_item.kbq-contrast-fade.kbq-button_filled:before{background:var(--kbq-line-contrast-fade)}.kbq-split-button .kbq-split-button_item.kbq-theme-fade.kbq-button_outline:before,.kbq-split-button .kbq-split-button_item.kbq-theme.kbq-button_transparent:before{background:var(--kbq-line-theme-fade)}.kbq-split-button .kbq-split-button_item.kbq-split-button_first.cdk-keyboard-focused{z-index:1;box-shadow:inset -1px 0 0 0 var(--kbq-states-line-focus-theme)}.kbq-split-button .kbq-split-button_item.kbq-split-button_second.cdk-keyboard-focused{box-shadow:inset 1px 0 0 0 var(--kbq-states-line-focus-theme)}.kbq-split-button .kbq-button_outline:has(+.kbq-button_outline){border-right:none}.kbq-split-button .kbq-button_outline:has(+.kbq-button_outline)+.kbq-button_outline{border-left:none}.kbq-split-button.kbq-split-button_first-disabled.kbq-contrast-fade.kbq-button_filled .kbq-split-button_item,.kbq-split-button.kbq-split-button_first-disabled.kbq-contrast.kbq-button_filled .kbq-split-button_item{background:var(--kbq-states-background-disabled)}.kbq-split-button.kbq-split-button_first-disabled.kbq-contrast-fade.kbq-button_filled .kbq-split-button_second:not(.kbq-disabled):hover,.kbq-split-button.kbq-split-button_first-disabled.kbq-contrast.kbq-button_filled .kbq-split-button_second:not(.kbq-disabled):hover{background:var(--kbq-states-background-contrast-fade-hover)}.kbq-split-button.kbq-split-button_first-disabled.kbq-contrast-fade.kbq-button_filled .kbq-split-button_second:not(.kbq-disabled):active,.kbq-split-button.kbq-split-button_first-disabled.kbq-contrast.kbq-button_filled .kbq-split-button_second:not(.kbq-disabled):active{background:var(--kbq-states-background-contrast-fade-active)}.kbq-split-button.kbq-split-button_first-disabled.kbq-contrast-fade.kbq-button_filled .kbq-split-button_second:not(.kbq-disabled) .kbq-icon.kbq-empty,.kbq-split-button.kbq-split-button_first-disabled.kbq-contrast.kbq-button_filled .kbq-split-button_second:not(.kbq-disabled) .kbq-icon.kbq-empty{color:var(--kbq-icon-contrast)}.kbq-split-button.kbq-split-button_first-disabled.kbq-contrast-fade.kbq-button_filled .kbq-split-button_second:not(.kbq-disabled):before,.kbq-split-button.kbq-split-button_first-disabled.kbq-contrast.kbq-button_filled .kbq-split-button_second:not(.kbq-disabled):before{background:var(--kbq-line-contrast-fade)}.kbq-split-button.kbq-split-button_first-disabled.kbq-theme-fade.kbq-button_outline .kbq-split-button_item{border-color:var(--kbq-button-outline-theme-fade-on-states-disabled-border)}.kbq-split-button.kbq-split-button_second-disabled:not(.kbq-split-button_first-disabled).kbq-contrast.kbq-button_filled .kbq-split-button_second{background:var(--kbq-button-filled-contrast-fade-off-background)}.kbq-split-button.kbq-split-button_second-disabled:not(.kbq-split-button_first-disabled).kbq-contrast-fade.kbq-button_filled .kbq-split-button_first{background:var(--kbq-states-background-disabled)}.kbq-split-button.kbq-split-button_second-disabled:not(.kbq-split-button_first-disabled).kbq-theme-fade.kbq-button_outline .kbq-split-button_item{border-color:var(--kbq-button-outline-theme-fade-on-states-disabled-border)}.kbq-split-button.kbq-split-button_second-disabled:not(.kbq-split-button_first-disabled).kbq-theme.kbq-button_transparent .kbq-split-button_second:before{background:var(--kbq-states-line-disabled)}.kbq-split-button.kbq-split-button_second-disabled:not(.kbq-split-button_first-disabled) .kbq-split-button_second:before{background:var(--kbq-states-line-disabled)}.kbq-split-button.kbq-split-button_first-disabled.kbq-split-button_second-disabled .kbq-split-button_second:before{background:var(--kbq-line-contrast-fade)}\n"] }]
123
- }], ctorParameters: () => [], propDecorators: { buttons: [{
124
- type: ContentChildren,
125
- args: [KbqButton]
126
- }], dropdownTrigger: [{ type: i0.ContentChild, args: [i0.forwardRef(() => KbqDropdownTrigger), { isSignal: true }] }], panelAutoWidth: [{ type: i0.Input, args: [{ isSignal: true, alias: "panelAutoWidth", required: false }] }], kbqStyle: [{
127
- type: Input
128
- }], color: [{
129
- type: Input
130
- }], disabled: [{
131
- type: Input,
132
- args: [{ transform: booleanAttribute }]
133
- }] } });
153
+ }, styles: [".kbq-split-button{display:flex;flex-direction:row;min-width:0;border-radius:var(--kbq-size-border-radius)}@supports (corner-shape: squircle){.kbq-split-button{corner-shape:squircle;border-radius:clamp(var(--kbq-size-border-radius) * 1.85,var(--kbq-size-border-radius) * 2.3 - 3.6px,var(--kbq-size-border-radius) * 2)}}.kbq-split-button.kbq-split-button_styles-for-nested .kbq-split-button_first.kbq-button{padding-right:10px}.kbq-split-button.kbq-split-button_styles-for-nested .kbq-split-button_first{min-width:0;border-right:none;border-top-right-radius:unset;border-bottom-right-radius:unset}.kbq-split-button.kbq-split-button_styles-for-nested .kbq-split-button_second{border-left:none;border-top-left-radius:unset;border-bottom-left-radius:unset}.kbq-split-button.kbq-split-button_styles-for-nested .kbq-split-button_second:before{display:block;content:\"\";position:absolute;left:0;top:calc(var(--kbq-size-s) - var(--kbq-button-size-border-width));width:1px;height:var(--kbq-size-l)}.kbq-split-button.kbq-split-button_styles-for-nested .kbq-split-button_first:not(.kbq-disabled):is(:hover,.kbq-hover,.cdk-keyboard-focused,.kbq-active)+.kbq-split-button_second:before{display:none}.kbq-split-button.kbq-split-button_styles-for-nested .kbq-split-button_second:not(.kbq-disabled):is(:hover,.kbq-hover,.cdk-keyboard-focused,.kbq-active):before{display:none}.kbq-split-button.kbq-split-button_styles-for-nested .kbq-button-icon+.kbq-button-icon{padding-left:var(--kbq-size-xxs);padding-right:var(--kbq-size-xxs)}.kbq-split-button:hover:has(.kbq-button_transparent){background:var(--kbq-states-background-transparent-hover)}.kbq-split-button .kbq-split-button_item.kbq-contrast.kbq-button_filled:before{background:var(--kbq-line-on-contrast-fade, var(--kbq-foreground-on-contrast))}.kbq-split-button .kbq-split-button_item.kbq-contrast.kbq-button_transparent:before,.kbq-split-button .kbq-split-button_item.kbq-contrast-fade.kbq-button_outline:before,.kbq-split-button .kbq-split-button_item.kbq-contrast-fade.kbq-button_filled:before{background:var(--kbq-line-contrast-fade)}.kbq-split-button .kbq-split-button_item.kbq-theme-fade.kbq-button_outline:before,.kbq-split-button .kbq-split-button_item.kbq-theme.kbq-button_transparent:before{background:var(--kbq-line-theme-fade)}.kbq-split-button .kbq-split-button_item.kbq-split-button_first.cdk-keyboard-focused{z-index:1;box-shadow:inset -1px 0 0 0 var(--kbq-states-line-focus-theme)}.kbq-split-button .kbq-split-button_item.kbq-split-button_second.cdk-keyboard-focused{box-shadow:inset 1px 0 0 0 var(--kbq-states-line-focus-theme)}.kbq-split-button .kbq-button_outline:has(+.kbq-button_outline){border-right:none}.kbq-split-button .kbq-button_outline:has(+.kbq-button_outline)+.kbq-button_outline{border-left:none}.kbq-split-button.kbq-split-button_first-disabled.kbq-contrast-fade.kbq-button_filled .kbq-split-button_item,.kbq-split-button.kbq-split-button_first-disabled.kbq-contrast.kbq-button_filled .kbq-split-button_item{background:var(--kbq-states-background-disabled)}.kbq-split-button.kbq-split-button_first-disabled.kbq-contrast-fade.kbq-button_filled .kbq-split-button_second:not(.kbq-disabled):hover,.kbq-split-button.kbq-split-button_first-disabled.kbq-contrast.kbq-button_filled .kbq-split-button_second:not(.kbq-disabled):hover{background:var(--kbq-states-background-contrast-fade-hover)}.kbq-split-button.kbq-split-button_first-disabled.kbq-contrast-fade.kbq-button_filled .kbq-split-button_second:not(.kbq-disabled):active,.kbq-split-button.kbq-split-button_first-disabled.kbq-contrast.kbq-button_filled .kbq-split-button_second:not(.kbq-disabled):active{background:var(--kbq-states-background-contrast-fade-active)}.kbq-split-button.kbq-split-button_first-disabled.kbq-contrast-fade.kbq-button_filled .kbq-split-button_second:not(.kbq-disabled) .kbq-icon.kbq-empty,.kbq-split-button.kbq-split-button_first-disabled.kbq-contrast.kbq-button_filled .kbq-split-button_second:not(.kbq-disabled) .kbq-icon.kbq-empty{color:var(--kbq-icon-contrast)}.kbq-split-button.kbq-split-button_first-disabled.kbq-contrast-fade.kbq-button_filled .kbq-split-button_second:not(.kbq-disabled):before,.kbq-split-button.kbq-split-button_first-disabled.kbq-contrast.kbq-button_filled .kbq-split-button_second:not(.kbq-disabled):before{background:var(--kbq-line-contrast-fade)}.kbq-split-button.kbq-split-button_first-disabled.kbq-theme-fade.kbq-button_outline .kbq-split-button_item{border-color:var(--kbq-button-outline-theme-fade-on-states-disabled-border)}.kbq-split-button.kbq-split-button_second-disabled:not(.kbq-split-button_first-disabled).kbq-contrast.kbq-button_filled .kbq-split-button_second{background:var(--kbq-button-filled-contrast-fade-off-background)}.kbq-split-button.kbq-split-button_second-disabled:not(.kbq-split-button_first-disabled).kbq-contrast-fade.kbq-button_filled .kbq-split-button_first{background:var(--kbq-states-background-disabled)}.kbq-split-button.kbq-split-button_second-disabled:not(.kbq-split-button_first-disabled).kbq-theme-fade.kbq-button_outline .kbq-split-button_item{border-color:var(--kbq-button-outline-theme-fade-on-states-disabled-border)}.kbq-split-button.kbq-split-button_second-disabled:not(.kbq-split-button_first-disabled).kbq-theme.kbq-button_transparent .kbq-split-button_second:before{background:var(--kbq-states-line-disabled)}.kbq-split-button.kbq-split-button_second-disabled:not(.kbq-split-button_first-disabled) .kbq-split-button_second:before{background:var(--kbq-states-line-disabled)}.kbq-split-button.kbq-split-button_first-disabled.kbq-split-button_second-disabled .kbq-split-button_second:before{background:var(--kbq-line-contrast-fade)}\n"] }]
154
+ }], ctorParameters: () => [], propDecorators: { buttons: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => KbqButton), { isSignal: true }] }], dropdownTrigger: [{ type: i0.ContentChild, args: [i0.forwardRef(() => KbqDropdownTrigger), { isSignal: true }] }], panelAutoWidth: [{ type: i0.Input, args: [{ isSignal: true, alias: "panelAutoWidth", required: false }] }], kbqStyleInput: [{ type: i0.Input, args: [{ isSignal: true, alias: "kbqStyle", required: false }] }], disabledInput: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }] } });
134
155
 
135
156
  class KbqSplitButtonModule {
136
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.30", ngImport: i0, type: KbqSplitButtonModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
137
- /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.30", ngImport: i0, type: KbqSplitButtonModule, imports: [KbqSplitButton], exports: [KbqSplitButton] }); }
138
- /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.30", ngImport: i0, type: KbqSplitButtonModule }); }
157
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: KbqSplitButtonModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
158
+ /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.25", ngImport: i0, type: KbqSplitButtonModule, imports: [KbqSplitButton], exports: [KbqSplitButton] }); }
159
+ /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: KbqSplitButtonModule }); }
139
160
  }
140
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.30", ngImport: i0, type: KbqSplitButtonModule, decorators: [{
161
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: KbqSplitButtonModule, decorators: [{
141
162
  type: NgModule,
142
163
  args: [{
143
164
  imports: [
@@ -1 +1 @@
1
- {"version":3,"file":"koobiq-components-split-button.mjs","sources":["../../../packages/components/split-button/split-button.ts","../../../packages/components/split-button/split-button.module.ts","../../../packages/components/split-button/koobiq-components-split-button.ts"],"sourcesContent":["import {\n AfterContentInit,\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n contentChild,\n ContentChildren,\n Input,\n input,\n QueryList,\n ViewEncapsulation\n} from '@angular/core';\nimport { KbqButton, KbqButtonStyles } from '@koobiq/components/button';\nimport { KbqColorDirective, KbqComponentColors, kbqInjectNativeElement, ThemePalette } from '@koobiq/components/core';\nimport { KbqDropdownTrigger } from '@koobiq/components/dropdown';\nimport { delay } from 'rxjs/operators';\n\n@Component({\n selector: 'kbq-split-button, [kbq-split-button]',\n template: `\n <ng-content select=\"[kbq-button]\" />\n\n <ng-content select=\"[kbq-button]\" />\n `,\n styleUrls: ['./split-button.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'kbq-split-button',\n '[class]': 'kbqStyle',\n '[class.kbq-split-button_styles-for-nested]': 'buttons.length > 1',\n '[class.kbq-split-button_first-disabled]': 'firstDisabled',\n '[class.kbq-split-button_second-disabled]': 'secondDisabled'\n }\n})\nexport class KbqSplitButton extends KbqColorDirective implements AfterContentInit {\n private nativeElement = kbqInjectNativeElement();\n\n /** @docs-private */\n @ContentChildren(KbqButton) protected buttons: QueryList<KbqButton>;\n /** @docs-private */\n protected readonly dropdownTrigger = contentChild(KbqDropdownTrigger);\n\n /** Sets the width of the dropdown to the width of the trigger. Default is false */\n readonly panelAutoWidth = input<boolean>(false);\n\n /** component style, will be set for nested buttons */\n // TODO: Skipped for migration because:\n // Accessor inputs cannot be migrated as they are too complex.\n @Input()\n get kbqStyle(): string {\n return `kbq-button_${this._kbqStyle}`;\n }\n\n set kbqStyle(value: KbqButtonStyles | string) {\n this._kbqStyle = value || KbqButtonStyles.Filled;\n\n this.updateStyle(this._kbqStyle);\n }\n\n private _kbqStyle: string | KbqButtonStyles = KbqButtonStyles.Filled;\n\n /** component color, will be set for nested buttons */\n // TODO: Skipped for migration because:\n // Accessor inputs cannot be migrated as they are too complex.\n @Input()\n get color(): KbqComponentColors | ThemePalette | string {\n return this._color;\n }\n\n set color(value: KbqComponentColors | ThemePalette | string) {\n if (!value) return;\n\n super.color = value;\n\n this.updateColor(this.color);\n }\n\n /** Whether the checkbox is disabled. */\n // TODO: Skipped for migration because:\n // Accessor inputs cannot be migrated as they are too complex.\n @Input({ transform: booleanAttribute })\n get disabled(): boolean {\n return this._disabled;\n }\n\n set disabled(value: boolean) {\n this._disabled = value;\n\n this.updateDisabledState(this._disabled);\n }\n\n protected _disabled: boolean;\n\n get firstDisabled(): boolean {\n return this.buttons.first?.disabled;\n }\n\n get secondDisabled(): boolean {\n return this.buttons.length > 1 && this.buttons.last?.disabled;\n }\n\n constructor() {\n super();\n\n this.color = KbqComponentColors.ContrastFade;\n }\n\n ngAfterContentInit(): void {\n this.updateClasses();\n this.updateStyle(this._kbqStyle);\n this.updateColor(this.color);\n this.updateDisabledState(this.disabled);\n this.updateDropdownParams();\n\n if (!this.buttons.length) {\n throw new Error(`kbq-split-button must contain at least one button`);\n }\n\n this.buttons.changes.pipe(delay(0)).subscribe(() => {\n this.updateClasses();\n this.updateStyle(this._kbqStyle);\n this.updateColor(this.color);\n this.updateDropdownParams();\n });\n }\n\n private updateClasses() {\n this.buttons.forEach((button: KbqButton) => {\n button.getHostElement().classList.remove(`kbq-split-button_first`, `kbq-split-button_second`);\n });\n\n this.buttons.first?.getHostElement().classList.add(`kbq-split-button_first`);\n this.buttons.last?.getHostElement().classList.add(`kbq-split-button_second`);\n this.buttons.forEach((button: KbqButton) => {\n button.getHostElement().classList.add(`kbq-split-button_item`);\n });\n }\n\n private updateColor(color: KbqComponentColors | ThemePalette | string) {\n this.buttons?.forEach((button: KbqButton) => (button.color = color));\n }\n\n private updateStyle(style: KbqButtonStyles | string) {\n this.buttons?.forEach((button: KbqButton) => (button.kbqStyle = style));\n }\n\n private updateDisabledState(state: boolean) {\n if (state === undefined) return;\n\n this.buttons?.forEach((button: KbqButton) => (button.disabled = state));\n }\n\n private updateDropdownParams = () => {\n const dropdownTrigger = this.dropdownTrigger();\n\n if (!dropdownTrigger) return;\n\n dropdownTrigger.dropdown.xPosition = 'before';\n\n // The trigger is only the chevron button, so the whole control has to be named explicitly.\n // It is measured lazily on open, which is why no wait for styles to apply is needed here.\n dropdownTrigger.widthOrigin = this.panelAutoWidth() ? this.nativeElement : undefined;\n };\n}\n","import { NgModule } from '@angular/core';\nimport { KbqSplitButton } from './split-button';\n\n@NgModule({\n imports: [\n KbqSplitButton\n ],\n exports: [KbqSplitButton]\n})\nexport class KbqSplitButtonModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"koobiq-components-split-button.mjs","sources":["../../../packages/components/split-button/split-button.ts","../../../packages/components/split-button/split-button.module.ts","../../../packages/components/split-button/koobiq-components-split-button.ts"],"sourcesContent":["import {\n AfterContentInit,\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n contentChild,\n contentChildren,\n effect,\n input,\n isDevMode,\n OnChanges,\n SimpleChanges,\n ViewEncapsulation\n} from '@angular/core';\nimport { KbqButton, KbqButtonColor, KbqButtonStyleInput, KbqButtonStyles } from '@koobiq/components/button';\nimport { KbqColorDirective, KbqComponentColors, kbqInjectNativeElement } from '@koobiq/components/core';\nimport { KbqDropdownTrigger } from '@koobiq/components/dropdown';\n\n@Component({\n selector: 'kbq-split-button, [kbq-split-button]',\n template: `\n <ng-content select=\"[kbq-button]\" />\n `,\n styleUrls: ['./split-button.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n // The nested buttons stay separate tab stops and separate actions; the host only ties them\n // together, which is exactly what `group` announces. Consumers name it with `aria-label`.\n role: 'group',\n class: 'kbq-split-button',\n '[class]': 'kbqStyle',\n '[class.kbq-split-button_styles-for-nested]': 'buttons().length > 1',\n '[class.kbq-split-button_first-disabled]': 'firstDisabled',\n '[class.kbq-split-button_second-disabled]': 'secondDisabled'\n }\n})\nexport class KbqSplitButton extends KbqColorDirective<KbqButtonColor> implements OnChanges, AfterContentInit {\n private readonly nativeElement = kbqInjectNativeElement();\n\n /** @docs-private */\n protected readonly buttons = contentChildren(KbqButton);\n /** @docs-private */\n protected readonly dropdownTrigger = contentChild(KbqDropdownTrigger);\n\n /** Sets the width of the dropdown to the width of the trigger. Default is false */\n readonly panelAutoWidth = input<boolean>(false);\n\n /**\n * Visual style of the split button, propagated to every nested button. A button that sets its own\n * `kbqStyle` keeps it.\n *\n * Reads back as the resulting host class rather than the value that was set, because the host\n * `[class]` binding is what consumes it.\n */\n get kbqStyle(): string {\n return `kbq-button_${this._kbqStyle}`;\n }\n\n set kbqStyle(value: KbqButtonStyleInput | null | undefined) {\n this._kbqStyle = value || KbqButtonStyles.Filled;\n\n this.updateStyle(this._kbqStyle, this.buttons?.());\n }\n\n private _kbqStyle: KbqButtonStyleInput = KbqButtonStyles.Filled;\n\n /**\n * Color propagated to every nested button: a bound `color`, or one set in code other than the\n * split button's own default. Nothing is propagated otherwise, and every nested button follows the\n * default color of its style. A button that sets its own `color` keeps it.\n */\n private readonly propagatedColor = computed(() => {\n const color = this.color();\n\n return this.colorInput() || color !== this.defaultColor() ? color : undefined;\n });\n\n /**\n * Whether the split button is disabled. Disabling it disables every nested button; re-enabling it\n * leaves buttons that are disabled through their own input untouched.\n */\n get disabled(): boolean | undefined {\n return this._disabled;\n }\n\n set disabled(value: boolean) {\n this._disabled = value;\n\n this.updateDisabledState(this._disabled, this.buttons?.());\n }\n\n protected _disabled: boolean | undefined;\n\n // Both states are computed rather than read off the query on every pass, and stay getters rather\n // than becoming signals because they are public API, where the call shape has to keep working as\n // a property read.\n\n /** Whether the leading button is disabled. */\n get firstDisabled(): boolean {\n return this.firstButtonDisabled();\n }\n\n /** Whether the trailing button is disabled. Stays `false` while the split button holds one button. */\n get secondDisabled(): boolean {\n return this.lastButtonDisabled();\n }\n\n private readonly firstButtonDisabled = computed(() => !!this.buttons().at(0)?.disabled);\n\n private readonly lastButtonDisabled = computed(() => {\n const buttons = this.buttons();\n\n return buttons.length > 1 && !!buttons.at(-1)?.disabled;\n });\n\n /** @docs-private */\n readonly kbqStyleInput = input<KbqButtonStyleInput | null | undefined>(undefined, { alias: 'kbqStyle' });\n\n /** @docs-private */\n readonly disabledInput = input<boolean | undefined, boolean | string | null | undefined>(undefined, {\n alias: 'disabled',\n transform: booleanAttribute\n });\n\n ngOnChanges(changes: SimpleChanges): void {\n // A bound input is handed to its member; unbound, it leaves what code wrote.\n if (changes['kbqStyleInput']) {\n this.kbqStyle = this.kbqStyleInput();\n }\n\n if (changes['disabledInput']) {\n const disabled = this.disabledInput();\n\n if (disabled !== undefined) this.disabled = disabled;\n }\n }\n\n constructor() {\n super();\n\n // The split button's own default styles the host element but is not propagated, so every\n // nested button is free to follow the default color of the current style.\n this.setDefaultColor(KbqComponentColors.ContrastFade);\n\n effect(() => {\n const color = this.propagatedColor();\n\n this.buttons().forEach((button: KbqButton) => button.setColorFromGroup(color));\n });\n\n effect(() => {\n const buttons = this.buttons();\n\n this.updateClasses(buttons);\n this.updateStyle(this._kbqStyle, buttons);\n this.updateDisabledState(this._disabled, buttons);\n this.updateDropdownParams();\n });\n }\n\n ngAfterContentInit(): void {\n // Dev-mode only: in production a misconfigured template degrades to an empty control instead\n // of aborting the change detection pass of whoever renders it.\n if (isDevMode() && !this.buttons().length) {\n throw new Error('kbq-split-button must contain at least one button');\n }\n }\n\n private updateClasses(buttons: readonly KbqButton[]) {\n buttons.forEach((button: KbqButton) => {\n button.getHostElement().classList.remove('kbq-split-button_first', 'kbq-split-button_second');\n });\n\n buttons.at(0)?.getHostElement().classList.add('kbq-split-button_first');\n buttons.at(-1)?.getHostElement().classList.add('kbq-split-button_second');\n buttons.forEach((button: KbqButton) => {\n button.getHostElement().classList.add('kbq-split-button_item');\n });\n }\n\n private updateStyle(style: KbqButtonStyleInput, buttons?: readonly KbqButton[]) {\n buttons?.forEach((button: KbqButton) => button.setKbqStyleFromGroup(style));\n }\n\n private updateDisabledState(state: boolean | undefined, buttons?: readonly KbqButton[]) {\n // Stays `undefined` while the input is unbound, and force-enabling every nested button is not\n // the same thing as not being disabled.\n if (state === undefined) return;\n\n buttons?.forEach((button: KbqButton) => button.setDisabledFromGroup(state));\n }\n\n private updateDropdownParams(): void {\n const dropdownTrigger = this.dropdownTrigger();\n\n if (!dropdownTrigger) return;\n\n dropdownTrigger.dropdown().xPosition.set('before');\n\n // The trigger is only the chevron button, so the whole control has to be named explicitly.\n // It is measured lazily on open, which is why no wait for styles to apply is needed here.\n dropdownTrigger.widthOrigin = this.panelAutoWidth() ? this.nativeElement : undefined;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { KbqSplitButton } from './split-button';\n\n@NgModule({\n imports: [\n KbqSplitButton\n ],\n exports: [KbqSplitButton]\n})\nexport class KbqSplitButtonModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}