@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-splitter.mjs","sources":["../../../packages/components/splitter/splitter.component.ts","../../../packages/components/splitter/splitter.component.html","../../../packages/components/splitter/splitter.module.ts","../../../packages/components/splitter/koobiq-components-splitter.ts"],"sourcesContent":["import { coerceBooleanProperty, coerceCssPixelValue, coerceNumberProperty } from '@angular/cdk/coercion';\nimport { Platform } from '@angular/cdk/platform';\nimport {\n AfterContentInit,\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n Directive,\n ElementRef,\n Input,\n NgZone,\n OnDestroy,\n OnInit,\n QueryList,\n Renderer2,\n ViewEncapsulation,\n forwardRef,\n inject,\n output,\n viewChild,\n viewChildren\n} from '@angular/core';\nimport { KBQ_WINDOW } from '@koobiq/components/core';\nimport { Subscription } from 'rxjs';\n\ninterface IArea {\n area: KbqSplitterAreaDirective;\n index: number;\n order: number;\n initialSize: number;\n}\n\ninterface IPoint {\n x: number;\n y: number;\n}\n\nconst enum StyleProperty {\n Flex = 'flex',\n FlexBasis = 'flex-basis',\n FlexDirection = 'flex-direction',\n Height = 'height',\n MaxWidth = 'max-width',\n MinHeight = 'min-height',\n MinWidth = 'minWidth',\n OffsetHeight = 'offsetHeight',\n OffsetWidth = 'offsetWidth',\n Order = 'order',\n Width = 'width',\n Top = 'top',\n Left = 'left',\n Cursor = 'cursor'\n}\n\nexport enum Direction {\n Horizontal = 'horizontal',\n Vertical = 'vertical'\n}\n\n@Directive({\n selector: 'kbq-gutter',\n host: {\n class: 'kbq-gutter',\n '[class.kbq-gutter_vertical]': 'isVertical',\n '[class.kbq-gutter_dragged]': 'dragged',\n '(mousedown)': 'dragged = true'\n }\n})\nexport class KbqGutterDirective implements OnInit {\n private elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private renderer = inject(Renderer2);\n\n // TODO: Skipped for migration because:\n // Accessor inputs cannot be migrated as they are too complex.\n @Input()\n get direction(): Direction {\n return this._direction;\n }\n\n set direction(direction: Direction) {\n this._direction = direction;\n }\n\n private _direction: Direction = Direction.Vertical;\n\n // TODO: Skipped for migration because:\n // Accessor inputs cannot be migrated as they are too complex.\n @Input()\n get order(): number {\n return this._order;\n }\n\n set order(order: number) {\n this._order = coerceNumberProperty(order);\n }\n\n private _order: number = 0;\n\n // TODO: Skipped for migration because:\n // Accessor inputs cannot be migrated as they are too complex.\n @Input()\n get size(): number {\n return this._size;\n }\n\n set size(size: number) {\n this._size = coerceNumberProperty(size);\n }\n\n private _size: number = 6;\n\n get isVertical(): boolean {\n return this._direction === Direction.Vertical;\n }\n\n dragged: boolean = false;\n\n ngOnInit(): void {\n this.setStyle(StyleProperty.FlexBasis, coerceCssPixelValue(this.size));\n this.setStyle(this.isVertical ? StyleProperty.Height : StyleProperty.Width, coerceCssPixelValue(this.size));\n this.setStyle(StyleProperty.Order, this.order);\n\n if (!this.isVertical) {\n this.setStyle(StyleProperty.Height, '100%');\n }\n\n // fix IE issue with gutter icon. flex-direction is required for flex alignment options\n this.setStyle(StyleProperty.FlexDirection, this.isVertical ? 'row' : 'column');\n }\n\n getPosition(): IPoint {\n return {\n x: this.elementRef.nativeElement.offsetLeft,\n y: this.elementRef.nativeElement.offsetTop\n };\n }\n\n private setStyle(property: StyleProperty, value: string | number): void {\n this.renderer.setStyle(this.elementRef.nativeElement, property, value);\n }\n}\n\n@Directive({\n selector: 'kbq-gutter-ghost',\n host: {\n class: 'kbq-gutter-ghost',\n '[class.kbq-gutter-ghost_vertical]': 'isVertical',\n '[class.kbq-gutter-ghost_visible]': 'visible'\n }\n})\nexport class KbqGutterGhostDirective {\n private elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private renderer = inject(Renderer2);\n\n // TODO: Skipped for migration because:\n // Your application code writes to the input. This prevents migration.\n @Input() visible: boolean;\n\n // TODO: Skipped for migration because:\n // Accessor inputs cannot be migrated as they are too complex.\n @Input()\n get x(): number {\n return this._x;\n }\n\n set x(x: number) {\n this._x = x;\n this.setStyle(StyleProperty.Left, coerceCssPixelValue(x));\n }\n\n private _x: number = 0;\n\n // TODO: Skipped for migration because:\n // Accessor inputs cannot be migrated as they are too complex.\n @Input()\n get y(): number {\n return this._y;\n }\n\n set y(y: number) {\n this._y = y;\n this.setStyle(StyleProperty.Top, coerceCssPixelValue(y));\n }\n\n private _y: number = 0;\n\n // TODO: Skipped for migration because:\n // Accessor inputs cannot be migrated as they are too complex.\n @Input()\n get direction(): Direction {\n return this._direction;\n }\n\n set direction(direction: Direction) {\n this._direction = direction;\n this.updateDimensions();\n }\n\n private _direction: Direction = Direction.Vertical;\n\n // TODO: Skipped for migration because:\n // Accessor inputs cannot be migrated as they are too complex.\n @Input()\n get size(): number {\n return this._size;\n }\n\n set size(size: number) {\n this._size = coerceNumberProperty(size);\n this.updateDimensions();\n }\n\n private _size: number = 6;\n\n get isVertical(): boolean {\n return this.direction === Direction.Vertical;\n }\n\n private updateDimensions(): void {\n this.setStyle(this.isVertical ? StyleProperty.Width : StyleProperty.Height, '100%');\n this.setStyle(this.isVertical ? StyleProperty.Height : StyleProperty.Width, coerceCssPixelValue(this.size));\n }\n\n private setStyle(property: StyleProperty, value: string | number): void {\n this.renderer.setStyle(this.elementRef.nativeElement, property, value);\n }\n}\n\n@Component({\n selector: 'kbq-splitter',\n imports: [KbqGutterDirective, KbqGutterGhostDirective],\n templateUrl: './splitter.component.html',\n styleUrls: ['splitter.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'kbq-splitter'\n },\n exportAs: 'kbqSplitter',\n preserveWhitespaces: false\n})\nexport class KbqSplitterComponent implements OnInit, AfterContentInit, OnDestroy {\n elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n changeDetectorRef = inject(ChangeDetectorRef);\n private ngZone = inject(NgZone);\n private renderer = inject(Renderer2);\n\n readonly gutterPositionChange = output<void>();\n\n areas: IArea[] = [];\n\n readonly gutters = viewChildren(KbqGutterDirective);\n readonly ghost = viewChild.required(KbqGutterGhostDirective);\n\n @ContentChildren(forwardRef(() => KbqSplitterAreaDirective)) areaRefs: QueryList<KbqSplitterAreaDirective>;\n\n get isDragging(): boolean {\n return this._isDragging;\n }\n private _isDragging: boolean = false;\n\n private readonly areaPositionDivider: number = 2;\n private readonly listeners: (() => void)[] = [];\n\n private areasChangeSubscription: Subscription = Subscription.EMPTY;\n\n // TODO: Skipped for migration because:\n // Accessor inputs cannot be migrated as they are too complex.\n @Input()\n get hideGutters(): boolean {\n return this._hideGutters;\n }\n\n set hideGutters(value: boolean) {\n this._hideGutters = coerceBooleanProperty(value);\n }\n\n private _hideGutters: boolean = false;\n\n // TODO: Skipped for migration because:\n // Accessor inputs cannot be migrated as they are too complex.\n @Input()\n get direction(): Direction {\n return this._direction;\n }\n\n set direction(direction: Direction) {\n this._direction = direction;\n }\n\n private _direction: Direction;\n\n // TODO: Skipped for migration because:\n // Accessor inputs cannot be migrated as they are too complex.\n @Input()\n get disabled(): boolean {\n return this._disabled;\n }\n\n set disabled(disabled: boolean) {\n this._disabled = coerceBooleanProperty(disabled);\n }\n\n private _disabled: boolean = false;\n\n // TODO: Skipped for migration because:\n // Accessor inputs cannot be migrated as they are too complex.\n @Input()\n get useGhost(): boolean {\n return this._useGhost;\n }\n\n set useGhost(useGhost: boolean) {\n this._useGhost = coerceBooleanProperty(useGhost);\n }\n\n private _useGhost: boolean = false;\n\n // TODO: Skipped for migration because:\n // Accessor inputs cannot be migrated as they are too complex.\n @Input()\n get gutterSize(): number {\n return this._gutterSize;\n }\n\n set gutterSize(gutterSize: number) {\n const size = coerceNumberProperty(gutterSize);\n\n this._gutterSize = size > 0 ? size : this.gutterSize;\n }\n\n private _gutterSize: number = 6;\n\n get resizing(): boolean {\n return this._resizing;\n }\n\n private _resizing: boolean = false;\n\n addArea(area: KbqSplitterAreaDirective): void {\n this.areas.push(this.mapAndOrderArea(area, this.areas.length));\n this.changeDetectorRef.detectChanges();\n }\n\n ngOnInit(): void {\n if (!this.direction) {\n this.direction = Direction.Horizontal;\n }\n\n this.setStyle(StyleProperty.FlexDirection, this.isVertical() ? 'column' : 'row');\n }\n\n ngAfterContentInit() {\n this.areasChangeSubscription = this.areaRefs.changes.subscribe((data: QueryList<KbqSplitterAreaDirective>) => {\n this.areas = data.map(this.mapAndOrderArea);\n this.changeDetectorRef.markForCheck();\n });\n }\n\n ngOnDestroy() {\n this.areasChangeSubscription.unsubscribe();\n }\n\n onMouseDown(event: MouseEvent, leftAreaIndex: number, rightAreaIndex: number) {\n if (this.disabled) {\n return;\n }\n\n event.preventDefault();\n\n const startPoint: IPoint = {\n x: event.screenX,\n y: event.screenY\n };\n\n const leftArea = this.areas[leftAreaIndex];\n const rightArea = this.areas[rightAreaIndex];\n\n leftArea.initialSize = leftArea.area.getSize();\n rightArea.initialSize = rightArea.area.getSize();\n\n let currentGutter: KbqGutterDirective | undefined;\n\n if (this.useGhost) {\n const gutterOrder = leftAreaIndex * 2 + 1;\n\n currentGutter = this.gutters().find((gutter: KbqGutterDirective) => gutter.order === gutterOrder);\n\n if (currentGutter) {\n const gutterPosition = currentGutter.getPosition();\n const ghost = this.ghost();\n\n ghost.direction = currentGutter.direction;\n ghost.size = currentGutter.size;\n ghost.x = gutterPosition.x;\n ghost.y = gutterPosition.y;\n\n ghost.visible = true;\n this.setStyle(\n StyleProperty.Cursor,\n currentGutter.direction === Direction.Vertical ? 'row-resize' : 'col-resize'\n );\n }\n } else {\n this.areas.forEach((item) => {\n const size = item.area.getSize();\n\n item.area.disableFlex();\n item.area.setSize(size);\n });\n }\n\n this.listeners.push(\n this.renderer.listen('document', 'mouseup', () => this.onMouseUp(leftArea, rightArea, currentGutter))\n );\n\n this.ngZone.runOutsideAngular(() => {\n this.listeners.push(\n this.renderer.listen('document', 'mousemove', (e: MouseEvent) =>\n this.onMouseMove(e, startPoint, leftArea, rightArea, currentGutter)\n )\n );\n });\n\n this._isDragging = true;\n }\n\n removeArea(area: KbqSplitterAreaDirective): void {\n let indexToRemove: number = -1;\n\n this.areas.some((item, index) => {\n if (item.area === area) {\n indexToRemove = index;\n\n return true;\n }\n\n return false;\n });\n\n if (indexToRemove === -1) {\n return;\n }\n\n this.areas.splice(indexToRemove, 1);\n }\n\n isVertical(): boolean {\n return this.direction === Direction.Vertical;\n }\n\n private mapAndOrderArea = (area: KbqSplitterAreaDirective, index: number): IArea => {\n const order = index * this.areaPositionDivider;\n\n area.setOrder(order);\n\n return {\n area,\n index,\n order,\n initialSize: area.getSize()\n };\n };\n\n private updateGutter(): void {\n this.gutters().forEach((gutter) => {\n if (gutter.dragged) {\n gutter.dragged = false;\n\n this.changeDetectorRef.detectChanges();\n }\n });\n }\n\n private onMouseMove(\n event: MouseEvent,\n startPoint: IPoint,\n leftArea: IArea,\n rightArea: IArea,\n currentGutter: KbqGutterDirective | undefined\n ) {\n if (!this.isDragging || this.disabled) {\n return;\n }\n\n const endPoint: IPoint = {\n x: event.screenX,\n y: event.screenY\n };\n\n const offset = this.isVertical() ? startPoint.y - endPoint.y : startPoint.x - endPoint.x;\n\n if (this.useGhost && currentGutter) {\n const gutterPosition = currentGutter.getPosition();\n const leftPos = leftArea.area.getPosition();\n const rightPos = rightArea.area.getPosition();\n const rightMin = rightArea.area.getMinSize() || 0;\n const leftMin = leftArea.area.getMinSize() || 0;\n\n const key = this.isVertical() ? 'y' : 'x';\n\n const minPos = leftPos[key] - leftMin;\n const maxPos = rightPos[key] + (rightArea.area.getSize() || 0) - rightMin - currentGutter.size;\n const newPos = gutterPosition[key] - offset;\n\n this.ghost()[key] = newPos < minPos ? minPos : Math.min(newPos, maxPos);\n } else {\n this.resizeAreas(leftArea, rightArea, offset);\n }\n }\n\n private resizeAreas(leftArea: IArea, rightArea: IArea, sizeOffset: number): void {\n const newLeftAreaSize = leftArea.initialSize - sizeOffset;\n const newRightAreaSize = rightArea.initialSize + sizeOffset;\n\n const minLeftAreaSize = leftArea.area.getMinSize();\n const minRightAreaSize = rightArea.area.getMinSize();\n\n if (newLeftAreaSize < minLeftAreaSize || newRightAreaSize < minRightAreaSize) {\n return;\n } else if (newLeftAreaSize <= 0) {\n leftArea.area.setSize(0);\n rightArea.area.setSize(rightArea.initialSize + leftArea.initialSize);\n } else if (newRightAreaSize <= 0) {\n leftArea.area.setSize(rightArea.initialSize + leftArea.initialSize);\n rightArea.area.setSize(0);\n } else {\n leftArea.area.setSize(newLeftAreaSize);\n rightArea.area.setSize(newRightAreaSize);\n }\n }\n\n private onMouseUp(leftArea: IArea, rightArea: IArea, currentGutter: KbqGutterDirective | undefined) {\n while (this.listeners.length > 0) {\n const unsubscribe = this.listeners.pop();\n\n if (unsubscribe) {\n unsubscribe();\n }\n }\n\n if (this.useGhost && currentGutter) {\n const gutterPosition = currentGutter.getPosition();\n const ghost = this.ghost();\n const offset =\n ghost.direction === Direction.Vertical ? gutterPosition.y - ghost.y : gutterPosition.x - ghost.x;\n\n this.resizeAreas(leftArea, rightArea, offset);\n this.ghost().visible = false;\n this.setStyle(StyleProperty.Cursor, 'unset');\n }\n\n this._isDragging = false;\n\n this.updateGutter();\n\n // TODO: The 'emit' function requires a mandatory void argument\n this.gutterPositionChange.emit();\n\n this.changeDetectorRef.markForCheck();\n }\n\n private setStyle(property: StyleProperty, value: string | number) {\n this.renderer.setStyle(this.elementRef.nativeElement, property, value);\n }\n}\n\n@Directive({\n selector: '[kbq-splitter-area]',\n host: {\n class: 'kbq-splitter-area',\n '[class.kbq-splitter-area_resizing]': 'isResizing()'\n }\n})\nexport class KbqSplitterAreaDirective implements AfterViewInit, OnDestroy {\n private elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private renderer = inject(Renderer2);\n private splitter = inject(KbqSplitterComponent);\n\n readonly sizeChange = output<number>();\n\n private readonly window = inject(KBQ_WINDOW);\n private readonly platform = inject(Platform);\n\n isResizing(): boolean {\n return this.splitter.isDragging;\n }\n\n disableFlex(): void {\n this.renderer.removeStyle(this.elementRef.nativeElement, 'flex');\n }\n\n ngAfterViewInit() {\n this.splitter.addArea(this);\n\n this.removeStyle(StyleProperty.MaxWidth);\n\n if (this.splitter.direction === Direction.Vertical) {\n this.setStyle(StyleProperty.Width, '100%');\n this.removeStyle(StyleProperty.Height);\n } else {\n this.setStyle(StyleProperty.Height, '100%');\n this.removeStyle(StyleProperty.Width);\n }\n\n this.splitter.gutterPositionChange.subscribe(this.emitSizeChange);\n }\n\n ngOnDestroy(): void {\n this.splitter.removeArea(this);\n }\n\n setOrder(order: number): void {\n this.setStyle(StyleProperty.Order, order);\n }\n\n setSize(size: number): void {\n if (isNaN(size)) {\n return;\n }\n\n this.setStyle(this.getSizeProperty(), coerceCssPixelValue(coerceNumberProperty(size)));\n }\n\n getSize(): number {\n if (!this.platform.isBrowser) return 0;\n\n return this.elementRef.nativeElement[this.getOffsetSizeProperty()];\n }\n\n getPosition(): IPoint {\n return {\n x: this.elementRef.nativeElement.offsetLeft,\n y: this.elementRef.nativeElement.offsetTop\n };\n }\n\n getMinSize(): number {\n const styles = this.window.getComputedStyle(this.elementRef.nativeElement);\n\n return parseFloat(styles[this.getMinSizeProperty()]);\n }\n\n private isVertical(): boolean {\n return this.splitter.direction === Direction.Vertical;\n }\n\n private getMinSizeProperty(): StyleProperty {\n return this.isVertical() ? StyleProperty.MinHeight : StyleProperty.MinWidth;\n }\n\n private getOffsetSizeProperty(): StyleProperty {\n return this.isVertical() ? StyleProperty.OffsetHeight : StyleProperty.OffsetWidth;\n }\n\n private getSizeProperty(): StyleProperty {\n return this.isVertical() ? StyleProperty.Height : StyleProperty.Width;\n }\n\n private setStyle(style: StyleProperty, value: string | number) {\n this.renderer.setStyle(this.elementRef.nativeElement, style, value);\n }\n\n private removeStyle(style: StyleProperty) {\n this.renderer.removeStyle(this.elementRef.nativeElement, style);\n }\n\n private emitSizeChange = () => {\n this.sizeChange.emit(this.getSize());\n };\n}\n","<ng-content />\n\n@for (area of areas; track area) {\n @if (!$last) {\n <kbq-gutter\n [attr.disabled]=\"disabled || null\"\n [direction]=\"direction\"\n [order]=\"$index * 2 + 1\"\n [size]=\"gutterSize\"\n [style.display]=\"hideGutters ? 'none' : 'flex'\"\n (mousedown)=\"onMouseDown($event, $index, $index + 1)\"\n />\n }\n}\n\n@if (useGhost) {\n <kbq-gutter-ghost />\n}\n","import { NgModule } from '@angular/core';\nimport { KbqIconModule } from '@koobiq/components/icon';\nimport {\n KbqGutterDirective,\n KbqGutterGhostDirective,\n KbqSplitterAreaDirective,\n KbqSplitterComponent\n} from './splitter.component';\n\n@NgModule({\n imports: [\n KbqIconModule,\n KbqGutterDirective,\n KbqGutterGhostDirective,\n KbqSplitterAreaDirective,\n KbqSplitterComponent\n ],\n exports: [\n KbqGutterDirective,\n KbqSplitterAreaDirective,\n KbqSplitterComponent\n ]\n})\nexport class KbqSplitterModule {}\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-splitter.mjs","sources":["../../../packages/components/splitter/splitter.ts","../../../packages/components/splitter/splitter.module.ts","../../../packages/components/splitter/koobiq-components-splitter.ts"],"sourcesContent":["import { _IdGenerator, CdkMonitorFocus, FocusMonitor } from '@angular/cdk/a11y';\nimport { Directionality } from '@angular/cdk/bidi';\nimport { SharedResizeObserver } from '@angular/cdk/observers/private';\nimport { Platform } from '@angular/cdk/platform';\nimport {\n afterNextRender,\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n contentChildren,\n DestroyRef,\n effect,\n ElementRef,\n inject,\n InjectionToken,\n input,\n InputSignal,\n isDevMode,\n model,\n ModelSignal,\n numberAttribute,\n Provider,\n Signal,\n signal,\n viewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport {\n hasModifierKey,\n KBQ_WINDOW,\n kbqInjectA11yLocaleConfiguration,\n kbqInjectNativeElement\n} from '@koobiq/components/core';\nimport { KbqResizable, KbqResizer, KbqResizerDirection, KbqResizerSizeChangeEvent } from '@koobiq/components/resizer';\nimport { startWith } from 'rxjs/operators';\n\n/** Direction the panels of a splitter are laid out in. */\nexport type KbqSplitterOrientation = 'horizontal' | 'vertical';\n\n/**\n * How a splitter draws its separators.\n *\n * - `divider` — a line between the panels, the default.\n * - `transparent` — nothing until the pointer reaches the separator, which then gives itself away by the cursor.\n * - `handle` — a grip centred on the boundary.\n */\nexport type KbqSplitterAppearance = 'divider' | 'transparent' | 'handle';\n\n/**\n * Size of a splitter panel: a number of pixels, a `<number>px` string, or a `<number>%` share of the\n * splitter's own size along the resize axis. A size in any other unit is ignored.\n */\nexport type KbqSplitterSize = number | string;\n\nconst clamp = (value: number, min: number, max: number): number => Math.min(Math.max(value, min), max);\n\n/** A number, bare or followed by `px` or `%` — the only size strings a panel understands. */\nconst SPLITTER_SIZE_PATTERN = /^([+-]?(?:\\d+(?:\\.\\d+)?|\\.\\d+))(px|%)?$/i;\n\n/**\n * Resolves a declared size against the splitter's own size along the resize axis.\n *\n * Numbers and `<number>px` strings are pixels, `<number>%` is a share of `total`. Returns `null` for a size that\n * is not set or is anything else, another unit included: reading `10rem` as ten pixels would quietly hand the\n * panel a limit nobody asked for. `null` is how a panel says \"take whatever is left\".\n *\n * @internal\n */\nexport function resolveSplitterSize(size: KbqSplitterSize | null | undefined, total: number): number | null {\n if (size === null || size === undefined) return null;\n\n if (typeof size === 'number') return Number.isFinite(size) ? size : null;\n\n const [, value, unit] = SPLITTER_SIZE_PATTERN.exec(size.trim()) ?? [];\n\n if (value === undefined) return null;\n\n return unit === '%' ? (parseFloat(value) / 100) * total : parseFloat(value);\n}\n\n/**\n * Clamps every panel to its own limits and then spends whatever that left over, so the sizes add up to\n * `total` again.\n *\n * The residual is handed out in passes rather than in one proportional step: a panel that reaches a limit\n * mid-pass stops taking, and the next pass shares what it refused among the panels that still have room.\n * At most one pass per panel can end that way, so the loop is bounded by the panel count.\n *\n * @internal\n */\nexport function fitSplitterSizes(\n sizes: readonly number[],\n min: readonly number[],\n max: readonly number[],\n total: number\n): number[] {\n const next = sizes.map((size, index) => clamp(size, min[index], max[index]));\n\n for (let pass = 0; pass <= next.length; pass++) {\n const diff = total - sumOf(next);\n\n if (Math.abs(diff) < EPSILON) break;\n\n const open = next\n .map((_, index) => index)\n .filter((index) => (diff > 0 ? next[index] < max[index] : next[index] > min[index]));\n\n if (!open.length) break;\n\n const step = diff / open.length;\n\n open.forEach((index) => (next[index] = clamp(next[index] + step, min[index], max[index])));\n }\n\n return next;\n}\n\n/**\n * Pins every collapsed panel to its strip and shares what that frees among the open panels, in equal parts.\n *\n * A collapsed panel's layout entry holds the size it returns to rather than the strip it shows, which is what\n * lets expanding restore that size. The difference is handed out here, before any limit applies, so that\n * {@link keepSplitterRestoreSizes} can take exactly the same amounts back whenever sizes are written again.\n */\nfunction collapseSplitterSizes(\n sizes: readonly number[],\n collapsed: readonly boolean[],\n strips: readonly number[]\n): number[] {\n const open = collapsed.filter((isCollapsed) => !isCollapsed).length;\n const freed = sizes.reduce((sum, size, index) => (collapsed[index] ? sum + size - strips[index] : sum), 0);\n\n return sizes.map((size, index) => (collapsed[index] ? strips[index] : size + (open ? freed / open : 0)));\n}\n\n/**\n * The inverse of {@link collapseSplitterSizes}: puts each size in `restore` back into its collapsed panel's entry\n * and takes what that adds from the open panels in the same equal parts. The entries keep adding up to what\n * `sizes` did and render exactly as `sizes` do, while expanding a panel later returns it to its `restore` size.\n */\nfunction keepSplitterRestoreSizes(\n sizes: readonly number[],\n collapsed: readonly boolean[],\n restore: readonly (number | undefined)[]\n): number[] {\n const open = collapsed.filter((isCollapsed) => !isCollapsed).length;\n const added = restore.reduce<number>(\n (sum, size, index) => (size === undefined ? sum : sum + size - sizes[index]),\n 0\n );\n\n return sizes.map((size, index) => restore[index] ?? (collapsed[index] ? size : size - (open ? added / open : 0)));\n}\n\n/**\n * Moves the boundary that follows `index` by `delta` pixels and returns the new sizes.\n *\n * The panels on one side of the boundary take the delta and the ones on the other side give it up, each walking\n * outwards from the boundary: a panel sitting at its limit hands the remainder to the next one instead of\n * stopping the drag. Walking outwards on the taking side too is what keeps a boundary reachable when the panel\n * right beside it is pinned — otherwise a neighbour at its maximum would freeze a boundary that the panels\n * further out could still move, and the drag would do nothing at all.\n */\nexport function resizeSplitterSizesAt(\n sizes: readonly number[],\n index: number,\n delta: number,\n min: readonly number[],\n max: readonly number[]\n): number[] {\n const next = [...sizes];\n\n if (index < 0 || index >= sizes.length - 1) return next;\n\n // Nearest to the boundary first, so the panel beside it always absorbs as much as it can before the next.\n const leading = Array.from({ length: index + 1 }, (_, offset) => index - offset);\n const trailing = Array.from({ length: sizes.length - index - 1 }, (_, offset) => index + 1 + offset);\n const growing = delta > 0;\n const roomOf = (indices: number[], grow: boolean) =>\n indices.reduce((room, panel) => room + (grow ? max[panel] - sizes[panel] : sizes[panel] - min[panel]), 0);\n\n // The boundary travels as far as the tighter of its two sides allows.\n const travel = Math.min(Math.abs(delta), roomOf(leading, growing), roomOf(trailing, !growing));\n\n const spend = (indices: number[], grow: boolean) => {\n let remaining = travel;\n\n for (const panel of indices) {\n if (remaining <= EPSILON) break;\n\n const taken = Math.min(remaining, grow ? max[panel] - sizes[panel] : sizes[panel] - min[panel]);\n\n next[panel] = sizes[panel] + (grow ? taken : -taken);\n remaining -= taken;\n }\n };\n\n spend(leading, growing);\n spend(trailing, !growing);\n\n return next;\n}\n\n/** A size a drag is pulled onto, with the distance the release has to be within for the pull to happen. */\nexport type KbqSplitterSnapPoint = { size: number; tolerance: number };\n\n/**\n * Snaps a target size onto the nearest snap point it is close enough to, or returns it unchanged.\n *\n * Each point carries its own tolerance, because the panels around a separator both contribute points and each\n * of them says how far its own pull reaches. Two points exactly as close as one another are settled by\n * declaration order, so a target sitting midway between them picks the same one however it got there.\n *\n * @internal\n */\nexport function snapSplitterSize(target: number, snapPoints: readonly KbqSplitterSnapPoint[]): number {\n let snapped = target;\n let closest = Number.POSITIVE_INFINITY;\n\n for (const { size, tolerance } of snapPoints) {\n if (!Number.isFinite(size)) continue;\n\n const distance = Math.abs(size - target);\n\n if (distance > tolerance || distance >= closest) continue;\n\n closest = distance;\n snapped = size;\n }\n\n return snapped;\n}\n\n/** How far one arrow key press moves a separator, in pixels. */\nconst KEYBOARD_STEP = 8;\n\n/** Sizes closer than this are the same size. */\nconst EPSILON = 0.01;\n\nconst sumOf = (sizes: readonly number[]): number => sizes.reduce((sum, size) => sum + size, 0);\n\n/**\n * Settings a whole application shares, rather than something a single splitter decides.\n *\n * Only what a product picks once belongs here: how its separators look, and how far a snap size reaches. The\n * sizes and limits of the panels are a property of one layout and stay on the panels themselves.\n */\nexport type KbqSplitterOptions = {\n /** How the separators are drawn. */\n appearance: KbqSplitterAppearance;\n /** How close to a snap size a drag has to be released for it to be pulled in, in pixels. */\n snapTolerance: number;\n};\n\nconst KBQ_SPLITTER_DEFAULT_OPTIONS: KbqSplitterOptions = {\n appearance: 'divider',\n snapTolerance: 32\n};\n\n/** Injection token holding the current {@link KbqSplitterOptions}. */\nexport const KBQ_SPLITTER_OPTIONS = new InjectionToken<KbqSplitterOptions>('KBQ_SPLITTER_OPTIONS', {\n factory: () => KBQ_SPLITTER_DEFAULT_OPTIONS\n});\n\n/**\n * Overrides the default splitter options within the given injector scope — the whole application from\n * `bootstrapApplication`, or one subtree from the `providers` of a component or a route.\n */\nexport function kbqSplitterOptionsProvider(options: Partial<KbqSplitterOptions>): Provider {\n return {\n provide: KBQ_SPLITTER_OPTIONS,\n useValue: { ...KBQ_SPLITTER_DEFAULT_OPTIONS, ...options }\n };\n}\n\n/**\n * The part of a panel that its splitter and its own separator read.\n *\n * @docs-private\n */\nexport interface KbqSplitterPanelRef {\n readonly id: Signal<string>;\n readonly element: HTMLElement;\n readonly size: InputSignal<KbqSplitterSize | undefined>;\n readonly minSize: InputSignal<KbqSplitterSize | undefined>;\n readonly maxSize: InputSignal<KbqSplitterSize | undefined>;\n readonly snapSizes: InputSignal<readonly KbqSplitterSize[]>;\n readonly snapTolerance: Signal<number>;\n readonly collapsible: Signal<boolean>;\n readonly collapsedSize: InputSignal<KbqSplitterSize>;\n readonly collapsed: ModelSignal<boolean>;\n}\n\n/**\n * The part of a splitter its panels read. Panels are projected content, so they reach the group through this\n * token rather than through its class.\n *\n * @docs-private\n */\nexport interface KbqSplitterGroup {\n readonly orientation: Signal<KbqSplitterOrientation>;\n readonly disabled: Signal<boolean>;\n readonly panels: Signal<readonly KbqSplitterPanelRef[]>;\n /** Direction the separator of the panel at `index` resizes in; `[0, 0]` while the splitter is disabled. */\n readonly resizerDirection: Signal<KbqResizerDirection>;\n /** Cursor for the separator of the panel at `index`, reflecting the room its boundary still has. */\n separatorCursor(index: number): string;\n /** `aria-valuenow` / `aria-valuemin` / `aria-valuemax` of the separator, as percentages of the splitter. */\n separatorValues(index: number): { now: number; min: number; max: number };\n /** `origin` is the size the drag measures its travel from; the panel's own size when omitted. */\n handleResizeStart(index: number, origin?: number): void;\n handleResizeTo(index: number, size: number): void;\n handleResizeEnd(): void;\n handleSeparatorKeydown(index: number, event: KeyboardEvent): void;\n handleSeparatorDblClick(index: number): void;\n}\n\n/**\n * Contract a {@link KbqSplitterPanel} resolves to reach the splitter that projects it.\n *\n * @docs-private\n */\nexport const KBQ_SPLITTER = new InjectionToken<KbqSplitterGroup>('KBQ_SPLITTER');\n\n/**\n * A resizable region of a {@link KbqSplitter}.\n *\n * Every panel but the last renders the separator that follows it, so the separator sits between the two\n * panels it resizes in the tab order as well as on screen.\n */\n@Component({\n selector: 'kbq-splitter-panel',\n imports: [KbqResizer, CdkMonitorFocus],\n template: `\n <div class=\"kbq-splitter-panel__content\">\n <ng-content />\n </div>\n\n @if (!last()) {\n <div\n #separator\n cdkMonitorElementFocus\n class=\"kbq-splitter-panel__separator\"\n role=\"separator\"\n [attr.aria-controls]=\"id()\"\n [attr.aria-disabled]=\"disabled() || null\"\n [attr.aria-label]=\"resolvedSeparatorAriaLabel()\"\n [attr.aria-orientation]=\"separatorOrientation()\"\n [attr.aria-valuemax]=\"separatorValues().max\"\n [attr.aria-valuemin]=\"separatorValues().min\"\n [attr.aria-valuenow]=\"separatorValues().now\"\n [attr.tabindex]=\"disabled() ? -1 : 0\"\n [cursor]=\"separatorCursor()\"\n [disableSizeUpdate]=\"true\"\n [kbqResizer]=\"splitter.resizerDirection()\"\n (dblclick)=\"handleSeparatorDblClick($event)\"\n (keydown)=\"handleSeparatorKeydown($event)\"\n (lostpointercapture)=\"splitter.handleResizeEnd()\"\n (resizeStart)=\"handleResizeStart($event)\"\n (sizeChange)=\"handleSizeChange($event)\"\n ></div>\n }\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'kbq-splitter-panel',\n tabindex: '-1',\n '[attr.id]': 'id()',\n '[class.kbq-splitter-panel_collapsed]': 'collapsed()'\n },\n hostDirectives: [KbqResizable],\n exportAs: 'kbqSplitterPanel'\n})\nexport class KbqSplitterPanel implements KbqSplitterPanelRef {\n /** @docs-private */\n protected readonly splitter = inject(KBQ_SPLITTER);\n private readonly options = inject(KBQ_SPLITTER_OPTIONS);\n private readonly focusMonitor = inject(FocusMonitor);\n private readonly a11yLocaleConfiguration = kbqInjectA11yLocaleConfiguration();\n\n /** @docs-private */\n readonly element = kbqInjectNativeElement();\n\n /**\n * Identifies the panel to the `aria-controls` of its own separator, and gives a host something to point\n * `aria-labelledby` or a fragment link at. Generated when omitted.\n */\n readonly id = input<string>(inject(_IdGenerator).getId('kbq-splitter-panel-'));\n\n /**\n * Size the panel starts at, in pixels (`240`, `'240px'`) or as a share of the splitter (`'30%'`).\n * Panels that leave it unset share whatever the sized ones did not claim.\n */\n readonly size = input<KbqSplitterSize | undefined>(undefined);\n\n /** Smallest size the panel may be dragged to. Defaults to `0`. */\n readonly minSize = input<KbqSplitterSize | undefined>(undefined);\n\n /** Largest size the panel may be dragged to. Unbounded when omitted. */\n readonly maxSize = input<KbqSplitterSize | undefined>(undefined);\n\n /**\n * Sizes a drag is pulled onto when it is released near one. `minSize` and `maxSize` become snap points too\n * as soon as either panel around a separator declares any snap size.\n *\n * The layout the panels start at settles onto them as well, so a splitter is never handed to the user\n * sitting between two of its own snap points.\n */\n readonly snapSizes = input<readonly KbqSplitterSize[]>([]);\n\n /**\n * How close to one of this panel's {@link snapSizes} a drag has to be released for it to be pulled in, in\n * pixels. Raise it to make the snap points reach further — past half the gap between two of them the panel\n * can only ever land on a snap size.\n *\n * Defaults to the app-wide {@link KBQ_SPLITTER_OPTIONS}.\n */\n readonly snapTolerance = input(this.options.snapTolerance, { transform: numberAttribute });\n\n /**\n * Whether dragging the panel past half of its `minSize` collapses it to `collapsedSize` instead of\n * stopping at the minimum.\n */\n readonly collapsible = input(false, { transform: booleanAttribute });\n\n /** Size the panel takes while collapsed. `0` — the default — hides it completely. */\n readonly collapsedSize = input<KbqSplitterSize>(0);\n\n /**\n * Whether the panel is collapsed. Two-way, so a host can collapse and restore the panel itself — which is\n * the only way back for a panel whose `collapsedSize` is `0` and which therefore has no separator to grab.\n */\n readonly collapsed = model(false);\n\n /** Accessible name of the separator that follows the panel; falls back to the localized default. */\n readonly separatorAriaLabel = input<string | undefined>(undefined);\n\n /** The panel's own separator; a subtree search would find a nested splitter's separators first. */\n private readonly separator = viewChild<ElementRef<HTMLElement>>('separator');\n\n /** @docs-private */\n protected readonly index = computed(() => this.splitter.panels().indexOf(this));\n\n /**\n * Whether the panel renders no separator. The last panel has nothing after it to resize against, and a\n * panel that reached the splitter through the element injector without being one of its content children —\n * a wrapper element or another component's template stands between them — has no place in the group at\n * all, so it must not offer a handle whose ARIA values would resolve against an index of `-1`.\n *\n * @docs-private\n */\n protected readonly last = computed(() => {\n const index = this.index();\n\n return index === -1 || index === this.splitter.panels().length - 1;\n });\n\n /** @docs-private */\n protected readonly disabled = computed(() => this.splitter.disabled());\n\n /** A separator is oriented across the axis its splitter lays panels out along. @docs-private */\n protected readonly separatorOrientation = computed(() =>\n this.splitter.orientation() === 'horizontal' ? 'vertical' : 'horizontal'\n );\n\n /** @docs-private */\n protected readonly separatorCursor = computed(() => this.splitter.separatorCursor(this.index()));\n\n /** @docs-private */\n protected readonly separatorValues = computed(() => this.splitter.separatorValues(this.index()));\n\n /** @docs-private */\n protected readonly resolvedSeparatorAriaLabel = computed(\n () => this.separatorAriaLabel() || this.a11yLocaleConfiguration().resizePanels\n );\n\n /** Unsupported sizes already reported, so a check that runs again does not repeat itself. */\n private readonly reportedSizes = new Set<string>();\n\n constructor() {\n // A size in another unit is ignored, which would otherwise leave the panel without the limit its template\n // asks for and nothing to say why.\n if (isDevMode()) effect(() => this.reportUnsupportedSizes());\n }\n\n /**\n * Demotes the separator's focus origin to the pointer when a drag starts, so the keyboard-focus frame\n * stays hidden for the whole drag and does not linger afterwards. Keyboard focus keeps the frame.\n *\n * `preventScroll` because half of the separator reaches past the panel it belongs to: once the panel beyond\n * it is collapsed to nothing, that half hangs outside the splitter itself, and revealing it would scroll\n * whatever clipping box the splitter sits in — leaving the panels shifted by half a hit area, with a blank\n * strip along the edge that nothing scrolls back.\n *\n * @docs-private\n */\n protected handleResizeStart({ width, height }: KbqResizerSizeChangeEvent): void {\n const separator = this.separator();\n\n if (separator) this.focusMonitor.focusVia(separator.nativeElement, 'mouse', { preventScroll: true });\n\n // The resizer adds the travel to the size it measured at the press, which is the panel's content box.\n // Measured from the track instead, padding and sub-pixel rounding would land as a jump on the first move.\n this.splitter.handleResizeStart(this.index(), this.splitter.orientation() === 'horizontal' ? width : height);\n }\n\n /** @docs-private */\n protected handleSizeChange({ width, height }: KbqResizerSizeChangeEvent): void {\n this.splitter.handleResizeTo(this.index(), this.splitter.orientation() === 'horizontal' ? width : height);\n }\n\n /** @docs-private */\n protected handleSeparatorKeydown(event: KeyboardEvent): void {\n this.splitter.handleSeparatorKeydown(this.index(), event);\n }\n\n /** @docs-private */\n protected handleSeparatorDblClick(event: MouseEvent): void {\n event.preventDefault();\n this.splitter.handleSeparatorDblClick(this.index());\n }\n\n private reportUnsupportedSizes(): void {\n const sizes: [string, KbqSplitterSize | undefined][] = [\n ['size', this.size()],\n ['minSize', this.minSize()],\n ['maxSize', this.maxSize()],\n ['collapsedSize', this.collapsedSize()],\n ...this.snapSizes().map((size): [string, KbqSplitterSize] => ['snapSizes', size])\n ];\n\n for (const [name, size] of sizes) {\n const key = `${name}=${size}`;\n\n if (size === undefined || resolveSplitterSize(size, 0) !== null || this.reportedSizes.has(key)) continue;\n\n this.reportedSizes.add(key);\n\n // eslint-disable-next-line no-console\n console.warn(\n `kbq-splitter-panel: \\`${name}\\` \"${size}\" is ignored. A size is a number of pixels, ` +\n 'a \"<number>px\" string or a \"<number>%\" share of the splitter.'\n );\n }\n }\n}\n\n/** What a drag measures every move against, so clamping cannot drift. */\ntype KbqSplitterDragSnapshot = {\n index: number;\n sizes: number[];\n total: number;\n layout: number[] | null;\n /** Size the resizer started the travel from. */\n origin: number;\n /** Whether the pointer has travelled at all; a press that never did changes nothing. */\n moved: boolean;\n};\n\n/**\n * Splits an area into panels the user can resize by dragging the separators between them.\n *\n * Panels must be direct children of the splitter — a wrapper element around them hides them from the group.\n *\n * @example\n * ```html\n * <kbq-splitter>\n * <kbq-splitter-panel [minSize]=\"100\">…</kbq-splitter-panel>\n * <kbq-splitter-panel>…</kbq-splitter-panel>\n * </kbq-splitter>\n * ```\n */\n@Component({\n selector: 'kbq-splitter',\n template: '<ng-content />',\n styleUrls: ['splitter.scss', 'splitter-tokens.scss'],\n providers: [{ provide: KBQ_SPLITTER, useExisting: KbqSplitter }],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'kbq-splitter',\n '[class.kbq-splitter_vertical]': \"orientation() === 'vertical'\",\n '[class.kbq-splitter_disabled]': 'disabled()',\n '[class.kbq-splitter_dragging]': 'dragging()',\n '[class.kbq-splitter_transparent]': \"appearance() === 'transparent'\",\n '[class.kbq-splitter_handle]': \"appearance() === 'handle'\",\n '[style.grid-template-columns]': \"orientation() === 'horizontal' ? gridTemplate() : null\",\n '[style.grid-template-rows]': \"orientation() === 'vertical' ? gridTemplate() : null\"\n },\n exportAs: 'kbqSplitter'\n})\nexport class KbqSplitter implements KbqSplitterGroup {\n private readonly nativeElement = kbqInjectNativeElement();\n private readonly destroyRef = inject(DestroyRef);\n private readonly platform = inject(Platform);\n private readonly window = inject(KBQ_WINDOW);\n private readonly resizeObserver = inject(SharedResizeObserver);\n private readonly directionality = inject(Directionality, { optional: true });\n private readonly options = inject(KBQ_SPLITTER_OPTIONS);\n\n /** Direction the panels are laid out in. */\n readonly orientation = input<KbqSplitterOrientation>('horizontal');\n\n /** How the separators are drawn. Defaults to the app-wide {@link KBQ_SPLITTER_OPTIONS}. */\n readonly appearance = input<KbqSplitterAppearance>(this.options.appearance);\n\n /** Whether the panels can be resized at all. */\n readonly disabled = input(false, { transform: booleanAttribute });\n\n /**\n * Sizes of the panels as percentages of the splitter, in panel order.\n *\n * Two-way and, while `null`, derived from what the panels declare — so a host reads it to persist a\n * layout, writes it to restore one, and shares the same signal between two splitters to keep their panels\n * the same width. Setting it back to `null` returns the panels to their declared sizes.\n */\n readonly layout = model<number[] | null>(null);\n\n /** @docs-private */\n readonly panels = contentChildren(KbqSplitterPanel, { descendants: false });\n\n /** Boundary a drag is moving right now, or `null` when no drag is in progress. */\n private readonly dragBoundary = signal<number | null>(null);\n\n /** Whether a separator is being dragged right now. @docs-private */\n protected readonly dragging = computed(() => this.dragBoundary() !== null);\n\n /** Splitter size along the resize axis, in pixels; `0` until the first measurement. */\n private readonly containerSize = signal(0);\n\n /** Sizes and layout captured when the drag began; every move is measured against these, so clamping cannot drift. */\n private dragSnapshot: KbqSplitterDragSnapshot | null = null;\n\n // `valueSignal` rather than the plain `value` getter: the getter is not reactive, so a `dir` flipped at\n // runtime would leave every computed below it holding the direction the app booted with.\n private readonly rtl = computed(() => this.directionality?.valueSignal() === 'rtl');\n\n /** A disabled splitter reports no direction, which is how `KbqResizer` ignores a drag. @docs-private */\n readonly resizerDirection = computed<KbqResizerDirection>(() => {\n if (this.disabled()) return [0, 0];\n if (this.orientation() === 'vertical') return [0, 1];\n\n // In RTL the first panel sits on the right, so growing it moves the boundary west.\n return this.rtl() ? [-1, 0] : [1, 0];\n });\n\n /** Smallest size of each panel while it is not collapsed, in pixels. */\n private readonly expandedMinSizes = computed<number[]>(() => {\n const total = this.containerSize();\n\n return this.panels().map((panel) => Math.max(0, resolveSplitterSize(panel.minSize(), total) ?? 0));\n });\n\n /** Largest size of each panel while it is not collapsed, in pixels. */\n private readonly expandedMaxSizes = computed<number[]>(() => {\n const total = this.containerSize();\n const min = this.expandedMinSizes();\n\n return this.panels().map((panel, index) => {\n const max = resolveSplitterSize(panel.maxSize(), total) ?? Number.POSITIVE_INFINITY;\n\n // A maximum below the minimum would make every clamp order-dependent; the minimum wins.\n return Math.max(min[index], max);\n });\n });\n\n /** Size a collapsed panel is pinned to, in pixels. */\n private readonly collapsedSizes = computed<number[]>(() => {\n const total = this.containerSize();\n\n return this.panels().map((panel) => Math.max(0, resolveSplitterSize(panel.collapsedSize(), total) ?? 0));\n });\n\n /**\n * Panels the drag in progress may take through the gap between their collapsed size and their minimum.\n *\n * Only the two around the boundary being dragged. A collapsible panel further out is being pushed rather\n * than aimed at, and letting a push carry one into its gap would collapse it without the user ever having\n * pointed at it.\n */\n private readonly freePanels = computed<boolean[]>(() => {\n const boundary = this.dragBoundary();\n\n return this.panels().map(\n (panel, index) => boundary !== null && panel.collapsible() && (index === boundary || index === boundary + 1)\n );\n });\n\n /**\n * Smallest size of each panel in pixels; a collapsed panel is pinned to its collapsed size.\n *\n * The sizes a collapsible panel may take are its collapsed size and everything from its minimum up, with a\n * gap in between that it never occupies. Pinning it by `collapsed` is what keeps a drag out of that gap: the\n * panel stops at the minimum and waits there while the pointer crosses, and `collapsed` flips it to the strip\n * once the pointer passes the midpoint.\n */\n private readonly minSizes = computed<number[]>(() =>\n this.panels().map((panel, index) =>\n panel.collapsed() ? this.collapsedSizes()[index] : this.expandedMinSizes()[index]\n )\n );\n\n /** Largest size of each panel in pixels; a collapsed panel is pinned to its collapsed size. */\n private readonly maxSizes = computed<number[]>(() =>\n this.panels().map((panel, index) =>\n panel.collapsed() ? this.collapsedSizes()[index] : this.expandedMaxSizes()[index]\n )\n );\n\n /** Sizes seeded from what the panels declare — where the splitter starts and what a reset returns to. */\n private readonly defaultSizes = computed<number[]>(() => {\n const panels = this.panels();\n const total = this.containerSize();\n\n if (!panels.length || total <= 0) return panels.map(() => 0);\n\n const declared = panels.map((panel) =>\n panel.collapsed()\n ? (resolveSplitterSize(panel.collapsedSize(), total) ?? 0)\n : resolveSplitterSize(panel.size(), total)\n );\n const flexible = declared.map((_, index) => index).filter((index) => declared[index] === null);\n const claimed = declared.reduce<number>((sum, size) => sum + (size ?? 0), 0);\n const share = flexible.length ? Math.max(0, total - claimed) / flexible.length : 0;\n\n return this.settleOnSnapPoints(\n fitSplitterSizes(\n declared.map((size) => size ?? share),\n this.minSizes(),\n this.maxSizes(),\n total\n ),\n total\n );\n });\n\n /** Current size of every panel in pixels. */\n private readonly sizes = computed<number[]>(() => {\n const layout = this.layout();\n const total = this.containerSize();\n\n if (!layout || layout.length !== this.panels().length || total <= 0) return this.defaultSizes();\n\n return fitSplitterSizes(\n collapseSplitterSizes(\n layout.map((share) => (share / 100) * total),\n this.panels().map((panel) => panel.collapsed()),\n this.collapsedSizes()\n ),\n this.minSizes(),\n this.maxSizes(),\n total\n );\n });\n\n /**\n * Tracks are percentages of the splitter's content box, which is exactly what `containerSize` measures, so\n * `size / total` renders as `size` pixels whatever padding the host puts on the splitter.\n *\n * Not `fr`: a flex factor carries only a ratio, and CSS Grid normalizes the factors by their sum. Sizes\n * that cannot add up to the container — every panel pinned to a minimum too large to fit, or every panel\n * capped below it — would then be silently rescaled to fill it, violating the very `minSize`/`maxSize` the\n * layout was computed from, while `aria-valuenow` and the drag arithmetic went on reporting the sizes the\n * component believed it had applied. Percentages under- or overflow instead, which is visible.\n *\n * Equal tracks stand in until the first measurement, which is the only layout that cannot be wrong before\n * the splitter has a size to resolve `%` and `px` against.\n *\n * @docs-private\n */\n protected readonly gridTemplate = computed<string | null>(() => {\n const count = this.panels().length;\n\n if (!count) return null;\n if (this.containerSize() <= 0) return `repeat(${count}, minmax(0, 1fr))`;\n\n const total = this.containerSize();\n\n return this.sizes()\n .map((size) => `${((Math.max(0, size) / total) * 100).toFixed(4)}%`)\n .join(' ');\n });\n\n constructor() {\n // `afterNextRender` runs in the browser only, so no explicit platform guard is needed here.\n afterNextRender(() => {\n this.resizeObserver\n .observe(this.nativeElement)\n .pipe(startWith(null), takeUntilDestroyed(this.destroyRef))\n .subscribe(() => this.measure());\n });\n\n // Swapping the axis changes which dimension every size resolves against, and no resize observation\n // fires for it: the splitter's own box may not have changed at all.\n effect(() => {\n this.orientation();\n\n if (this.platform.isBrowser) this.measure();\n });\n }\n\n /** @docs-private */\n separatorCursor(index: number): string {\n const horizontal = this.orientation() === 'horizontal';\n\n if (this.disabled()) return 'default';\n\n const { grow, shrink } = this.boundaryRoom(index);\n const rtl = this.rtl();\n // Which way the pointer travels to grow the leading panel, so the one-sided cursors point at the room\n // that is actually left rather than at the panel that owns it.\n const growCursor = horizontal ? (rtl ? 'w-resize' : 'e-resize') : 's-resize';\n const shrinkCursor = horizontal ? (rtl ? 'e-resize' : 'w-resize') : 'n-resize';\n\n if (grow < EPSILON && shrink < EPSILON) return 'default';\n if (shrink < EPSILON) return growCursor;\n if (grow < EPSILON) return shrinkCursor;\n\n return horizontal ? 'col-resize' : 'row-resize';\n }\n\n /** @docs-private */\n separatorValues(index: number): { now: number; min: number; max: number } {\n const total = this.containerSize();\n\n if (total <= 0) return { now: 0, min: 0, max: 100 };\n\n const sizes = this.sizes();\n const { grow, shrink } = this.panelRoom(index);\n const toPercent = (size: number) => Math.round((size / total) * 100);\n\n return {\n now: toPercent(sizes[index]),\n min: toPercent(sizes[index] - shrink),\n max: toPercent(sizes[index] + grow)\n };\n }\n\n /** @docs-private */\n handleResizeStart(index: number, origin?: number): void {\n // Without a measurement every size resolves to zero, and a drag would read as one that collapses every\n // collapsible panel it touches. A splitter with no size has nothing to resize anyway.\n if (this.disabled() || this.containerSize() <= 0) return;\n\n const sizes = [...this.sizes()];\n\n this.dragSnapshot = {\n index,\n sizes,\n total: this.containerSize(),\n layout: this.layout(),\n origin: origin ?? sizes[index],\n moved: false\n };\n this.dragBoundary.set(index);\n }\n\n /** @docs-private */\n handleResizeTo(index: number, size: number): void {\n const snapshot = this.dragSnapshot;\n\n if (!snapshot || snapshot.index !== index || !this.matchesSnapshot(snapshot)) return;\n\n const delta = size - snapshot.origin;\n\n // Until the pointer travels, the press is not a drag: writing the layout for it would take the layout over\n // from the panels for a gesture that may never move.\n if (!snapshot.moved && Math.abs(delta) < EPSILON) return;\n\n snapshot.moved = true;\n\n const pins = this.pinsFor(index, delta, snapshot);\n const free = this.freePanels();\n\n // Live, the way `NSSplitView` collapses a subview the moment its divider passes the midpoint: whatever a\n // host binds to `collapsed` has to agree with the screen for the whole gesture, not catch up on release.\n // Compared first, so a host hears `collapsedChange` once per crossing rather than on every move.\n this.panels().forEach((panel, panelIndex) => {\n if (free[panelIndex] && panel.collapsed() !== pins[panelIndex]) panel.collapsed.set(pins[panelIndex]);\n });\n\n this.applySizes(resizeSplitterSizesAt(snapshot.sizes, index, delta, this.minSizes(), this.maxSizes()));\n }\n\n /** @docs-private */\n handleResizeEnd(): void {\n const snapshot = this.dragSnapshot;\n\n this.dragSnapshot = null;\n\n // A press that never travelled leaves everything as it was: settling or snapping it would rewrite a layout\n // nobody touched, or hand one still derived from the panels over to the host.\n if (!snapshot?.moved || snapshot.total <= 0 || !this.matchesSnapshot(snapshot)) return this.endDrag();\n\n const collapsed = this.settleCollapse(snapshot);\n\n this.endDrag();\n\n // A panel that just collapsed has taken the whole boundary with it; there is nothing left to snap.\n if (collapsed) return;\n\n // Snapping happens here rather than on every move: the boundary follows the pointer exactly for the\n // whole drag and lands on the nearest snap point only once it is let go. Pulling mid-drag instead would\n // freeze the panel for as long as the pointer stayed near a point and then jump when it broke free —\n // and the specification names `scroll-snap-type: proximity`, which likewise settles on release.\n const sizes = this.sizes();\n const delta = this.snapDelta(snapshot.index, 0, { sizes, total: snapshot.total });\n\n if (Math.abs(delta) < EPSILON) return;\n\n this.applySizes(resizeSplitterSizesAt(sizes, snapshot.index, delta, this.minSizes(), this.maxSizes()));\n }\n\n /** @docs-private */\n handleSeparatorKeydown(index: number, event: KeyboardEvent): void {\n // A modified press belongs to the browser: Cmd+Left is Back, Ctrl+Home scrolls to the top. `Shift` is\n // the exception — `Shift+F6` walks the panels backwards.\n if (hasModifierKey(event, 'altKey', 'ctrlKey', 'metaKey')) return;\n\n if (event.key === 'F6') {\n event.preventDefault();\n\n // From a separator, \"next\" is the panel it opens onto and \"previous\" the one it closes.\n return this.focusPanel(event.shiftKey ? index : index + 1);\n }\n\n if (this.disabled()) return;\n\n const horizontal = this.orientation() === 'horizontal';\n // In RTL a horizontal splitter grows its leading panel as the boundary travels west, so the arrow that\n // moves the boundary right is the one that shrinks it.\n const sign = horizontal && this.rtl() ? -1 : 1;\n const panel = this.panels()[index];\n\n switch (event.key) {\n case 'ArrowLeft':\n if (!horizontal) return;\n\n return this.commitKeydown(event, () => this.resizeBy(index, -KEYBOARD_STEP * sign));\n case 'ArrowRight':\n if (!horizontal) return;\n\n return this.commitKeydown(event, () => this.resizeBy(index, KEYBOARD_STEP * sign));\n case 'ArrowUp':\n if (horizontal) return;\n\n return this.commitKeydown(event, () => this.resizeBy(index, -KEYBOARD_STEP));\n case 'ArrowDown':\n if (horizontal) return;\n\n return this.commitKeydown(event, () => this.resizeBy(index, KEYBOARD_STEP));\n case 'Home':\n return this.commitKeydown(event, () => {\n const min = this.expandedMinSizes()[index];\n\n // A panel already at its minimum has nowhere left to go but away, when it may collapse.\n if (panel.collapsible() && this.sizes()[index] <= min + EPSILON) return panel.collapsed.set(true);\n\n this.resizeBy(index, min - this.sizes()[index]);\n });\n case 'End':\n return this.commitKeydown(event, () => {\n // Expand first, so the size the panel is grown from is a real one and not its collapsed\n // strip — but only where collapsing was the splitter's to do in the first place.\n if (panel.collapsible()) panel.collapsed.set(false);\n\n // `resizeBy` is bounded by what the trailing panels can give up, so the splitter's own size\n // is a safe stand-in for an unbounded maximum.\n const max = Math.min(this.expandedMaxSizes()[index], this.containerSize());\n\n this.resizeBy(index, max - this.sizes()[index]);\n });\n case 'Enter':\n if (!panel.collapsible()) return;\n\n return this.commitKeydown(event, () => panel.collapsed.update((collapsed) => !collapsed));\n default:\n return;\n }\n }\n\n /** @docs-private */\n handleSeparatorDblClick(index: number): void {\n if (this.disabled()) return;\n\n // First return the whole group to the sizes its panels declare; from there, take the leading panel down\n // to its minimum, which is the optional second step of the double-click behaviour.\n if (this.layout() !== null) return this.layout.set(null);\n\n this.resizeBy(index, this.minSizes()[index] - this.sizes()[index]);\n }\n\n /**\n * Whether the panels are still the ones the drag was measured against.\n *\n * A host that adds or removes a panel mid-drag invalidates every index the snapshot holds: the captured\n * sizes stop lining up with `minSizes`/`maxSizes`, which turns the arithmetic into `NaN`, and a boundary\n * index no longer names the panel the user took hold of.\n */\n private matchesSnapshot(snapshot: { sizes: number[] }): boolean {\n return snapshot.sizes.length === this.panels().length;\n }\n\n private commitKeydown(event: KeyboardEvent, action: () => void): void {\n event.preventDefault();\n action();\n }\n\n /** Moves focus onto a panel, which is how `F6` walks the regions of the splitter. */\n private focusPanel(index: number): void {\n this.panels().at(index)?.element.focus();\n }\n\n /**\n * Room on each side of the boundary after `index`, in pixels.\n *\n * Measured against the expanded limits rather than the collapse pin, because a collapsed panel can still be\n * dragged back out — reporting it as immovable would leave the cursor saying otherwise.\n */\n private sideRoom(index: number): {\n leadingGrow: number;\n leadingShrink: number;\n trailingGive: number;\n trailingTake: number;\n } {\n const sizes = this.sizes();\n const min = this.expandedMinSizes();\n const max = this.expandedMaxSizes();\n const room = (available: number) => Math.max(0, available);\n const sumOver = (panels: number[], take: (panel: number) => number) => sumOf(panels.map(take));\n const leading = Array.from({ length: index + 1 }, (_, offset) => offset);\n const trailing = Array.from({ length: sizes.length - index - 1 }, (_, offset) => index + 1 + offset);\n\n return {\n leadingGrow: sumOver(leading, (panel) => room(max[panel] - sizes[panel])),\n leadingShrink: sumOver(leading, (panel) => room(sizes[panel] - min[panel])),\n trailingGive: sumOver(trailing, (panel) => room(sizes[panel] - min[panel])),\n trailingTake: sumOver(trailing, (panel) => room(max[panel] - sizes[panel]))\n };\n }\n\n /**\n * How far the boundary after `index` can still travel each way — what the cursor advertises.\n *\n * Both sides are summed across every panel, because the drag walks outwards from the boundary: a neighbour\n * pinned at its limit passes the delta on, so the boundary is still movable when it alone is stuck.\n */\n private boundaryRoom(index: number): { grow: number; shrink: number } {\n if (index < 0 || index >= this.sizes().length - 1) return { grow: 0, shrink: 0 };\n\n const { leadingGrow, leadingShrink, trailingGive, trailingTake } = this.sideRoom(index);\n\n return {\n grow: Math.min(leadingGrow, trailingGive),\n shrink: Math.min(leadingShrink, trailingTake)\n };\n }\n\n /**\n * How far the panel at `index` itself can still be resized — what `aria-valuemin` / `aria-valuemax` report.\n *\n * Narrower than {@link boundaryRoom} on purpose: the boundary may keep moving by handing the delta to panels\n * further out, and those moves leave the pane this separator controls exactly where it was.\n */\n private panelRoom(index: number): { grow: number; shrink: number } {\n const sizes = this.sizes();\n\n if (index < 0 || index >= sizes.length - 1) return { grow: 0, shrink: 0 };\n\n const { trailingGive, trailingTake } = this.sideRoom(index);\n const room = (available: number) => Math.max(0, available);\n\n return {\n grow: room(Math.min(this.expandedMaxSizes()[index] - sizes[index], trailingGive)),\n shrink: room(Math.min(sizes[index] - this.expandedMinSizes()[index], trailingTake))\n };\n }\n\n private resizeBy(index: number, delta: number): void {\n this.applySizes(resizeSplitterSizesAt(this.sizes(), index, delta, this.minSizes(), this.maxSizes()));\n }\n\n /**\n * Settles a seeded layout onto the snap points its panels declare, boundary by boundary, exactly as\n * releasing a drag on each of them would.\n *\n * Only the seeded sizes go through this. A layout handed to the splitter is authoritative — settling that\n * one would both overwrite a restored layout and pull the boundary onto a point mid-drag, since every move\n * writes `layout`.\n */\n private settleOnSnapPoints(sizes: number[], total: number): number[] {\n const min = this.minSizes();\n const max = this.maxSizes();\n\n return sizes.reduce((settled, _, index) => {\n if (index >= settled.length - 1) return settled;\n\n const delta = this.snapDelta(index, 0, { sizes: settled, total });\n\n return Math.abs(delta) < EPSILON ? settled : resizeSplitterSizesAt(settled, index, delta, min, max);\n }, sizes);\n }\n\n /** Pulls the drag onto the nearest snap point declared by either panel around the separator. */\n private snapDelta(index: number, delta: number, snapshot: { sizes: number[]; total: number }): number {\n const panels = this.panels();\n const leading = panels[index];\n const trailing = panels[index + 1];\n\n if (!leading.snapSizes().length && !trailing?.snapSizes().length) return delta;\n\n // A size declared on the trailing panel is a position of the same boundary, so it is mapped into a size\n // for the leading one before it can compete with the leading panel's own points.\n const pairSize = snapshot.sizes[index] + (snapshot.sizes[index + 1] ?? 0);\n const snapPointsOf = (panel: KbqSplitterPanelRef, toLeadingSize: (size: number) => number) =>\n [...panel.snapSizes(), panel.minSize(), panel.maxSize()]\n .map((size) => resolveSplitterSize(size, snapshot.total))\n .filter((size): size is number => size !== null)\n .map((size) => ({ size: toLeadingSize(size), tolerance: panel.snapTolerance() }));\n\n const target = snapSplitterSize(snapshot.sizes[index] + delta, [\n ...snapPointsOf(leading, (size) => size),\n ...(trailing ? snapPointsOf(trailing, (size) => pairSize - size) : [])\n ]);\n\n return target - snapshot.sizes[index];\n }\n\n /**\n * Which side of its gap each panel around the dragged boundary is held on.\n *\n * Decided from the size the pointer is asking for rather than the one on screen, because a panel held at\n * its minimum or on its collapsed strip has stopped moving — only where the pointer went says what the user\n * means. Half the minimum is the midpoint of the gap, so the same distance decides the panel whichever\n * direction it came from.\n */\n private pinsFor(index: number, delta: number, snapshot: { sizes: number[] }): boolean[] {\n const min = this.expandedMinSizes();\n const aimed: Record<number, number> = {\n [index]: snapshot.sizes[index] + delta,\n [index + 1]: (snapshot.sizes[index + 1] ?? 0) - delta\n };\n\n return this.panels().map((_, panel) => panel in aimed && aimed[panel] < min[panel] / 2);\n }\n\n /** Clears the drag, so the panels go back to their settled limits. */\n private endDrag(): void {\n this.dragBoundary.set(null);\n }\n\n /**\n * Hands every collapsible panel around the boundary that ended the drag collapsed the share it had before the\n * gesture. `collapsed` itself already changed during the drag; only the size it returns to is left to fix.\n *\n * Returns whether anything is collapsed.\n */\n private settleCollapse(snapshot: KbqSplitterDragSnapshot): boolean {\n const panels = this.panels();\n const collapsing = [snapshot.index, snapshot.index + 1].filter(\n (index) => panels[index]?.collapsible() && panels[index].collapsed()\n );\n const layout = this.layout();\n\n if (!collapsing.length) return false;\n // A drag that travelled has written the layout already; without one there is no entry to hand a share to.\n if (!layout) return true;\n\n // Hand a collapsing panel back the share it had before the gesture, so expanding it later returns it to\n // that size rather than to the sliver the drag squeezed it down to on its way out. What that adds comes out\n // of the open panels, which keeps them on screen exactly where the drag left them.\n this.layout.set(\n keepSplitterRestoreSizes(\n layout,\n panels.map((panel) => panel.collapsed()),\n layout.map((_, index) =>\n collapsing.includes(index)\n ? (snapshot.layout?.[index] ?? (snapshot.sizes[index] / snapshot.total) * 100)\n : undefined\n )\n )\n );\n\n return true;\n }\n\n private applySizes(sizes: number[]): void {\n const total = this.containerSize();\n\n if (total <= 0) return;\n\n const free = this.freePanels();\n const previous = this.layout();\n const collapsed = this.panels().map((panel) => panel.collapsed());\n\n this.layout.set(\n keepSplitterRestoreSizes(\n sizes.map((size) => (size / total) * 100),\n collapsed,\n // A collapsed panel keeps the share it had before it collapsed, so expanding restores that size\n // instead of the strip it is pinned to while collapsed. A panel the drag is free to move is the\n // exception: it is the one being aimed at, so what it records is where it actually is.\n collapsed.map((isCollapsed, index) => (isCollapsed && !free[index] ? previous?.[index] : undefined))\n )\n );\n }\n\n private measure(): void {\n const style = this.window.getComputedStyle(this.nativeElement);\n // `clientWidth`/`clientHeight` are the padding box, and the tracks only ever fill the content box.\n const size =\n this.orientation() === 'horizontal'\n ? this.nativeElement.clientWidth - parseFloat(style.paddingLeft) - parseFloat(style.paddingRight)\n : this.nativeElement.clientHeight - parseFloat(style.paddingTop) - parseFloat(style.paddingBottom);\n\n this.containerSize.set(Math.max(0, size || 0));\n }\n}\n","import { NgModule } from '@angular/core';\nimport { KbqSplitter, KbqSplitterPanel } from './splitter';\n\nconst COMPONENTS = [KbqSplitter, KbqSplitterPanel];\n\n/**\n * Convenience module for `NgModule` consumers. Everything it re-exports is standalone, so importing\n * `KbqSplitter` and `KbqSplitterPanel` directly is the preferred way in — the library's own examples do that.\n */\n@NgModule({\n imports: COMPONENTS,\n exports: COMPONENTS\n})\nexport class KbqSplitterModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1,67 +1,81 @@
1
+ import { SharedResizeObserver } from '@angular/cdk/observers/private';
2
+ import { Platform } from '@angular/cdk/platform';
1
3
  import * as i0 from '@angular/core';
2
- import { input, booleanAttribute, ViewEncapsulation, ChangeDetectionStrategy, Component, contentChild, Directive, NgModule } from '@angular/core';
3
- import { KbqButton } from '@koobiq/components/button';
4
- import { A11yModule } from '@angular/cdk/a11y';
5
- import { PlatformModule } from '@angular/cdk/platform';
4
+ import { inject, ElementRef, input, booleanAttribute, signal, effect, ViewEncapsulation, ChangeDetectionStrategy, Component, NgModule } from '@angular/core';
5
+ import { kbqGetElementHeight } from '@koobiq/components/core';
6
6
 
7
+ /**
8
+ * A styling layer over a native `<table>`: it applies the library's spacing, typography and colors and
9
+ * leaves the semantics to the platform. Sorting, resizing and virtual scrolling are out of scope — only
10
+ * standard HTML table capabilities are available.
11
+ */
7
12
  class KbqTable {
8
13
  constructor() {
9
- this.border = input(false, ...(ngDevMode ? [{ debugName: "border", transform: booleanAttribute }] : [{ transform: booleanAttribute }]));
10
- this.disableHover = input(false, ...(ngDevMode ? [{ debugName: "disableHover", transform: booleanAttribute }] : [{ transform: booleanAttribute }]));
11
- this.stickyHeader = input(false, ...(ngDevMode ? [{ debugName: "stickyHeader", transform: booleanAttribute }] : [{ transform: booleanAttribute }]));
14
+ this.elementRef = inject(ElementRef);
15
+ this.resizeObserver = inject(SharedResizeObserver);
16
+ this.platform = inject(Platform);
17
+ /**
18
+ * Whether a line is drawn under every body row. Toggles the `kbq-table_bordered` class. Defaults to `false`.
19
+ */
20
+ this.border = input(false, { ...(ngDevMode ? { debugName: "border" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
21
+ /**
22
+ * Whether the background change on row hover is suppressed. Toggles the `kbq-table_disable-hover`
23
+ * class. Use it when rows are not interactive and the highlight would be misleading. Defaults to `false`.
24
+ */
25
+ this.disableHover = input(false, { ...(ngDevMode ? { debugName: "disableHover" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
26
+ /**
27
+ * Whether the header stays visible while the table scrolls. Toggles the `kbq-table_sticky-header`
28
+ * class. Defaults to `false`.
29
+ */
30
+ this.stickyHeader = input(false, { ...(ngDevMode ? { debugName: "stickyHeader" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
31
+ /**
32
+ * Measured height of the pinned header, published as `--kbq-table-size-sticky-header-height`. Body
33
+ * cells and the focusable content inside them use it as `scroll-margin-block-start`, so scrolling a
34
+ * control into view does not leave it under the header (WCAG 2.2 SC 2.4.11).
35
+ */
36
+ this.stickyHeaderHeight = signal(null, ...(ngDevMode ? [{ debugName: "stickyHeaderHeight" }] : /* istanbul ignore next */ []));
37
+ // `tHead` is a plain DOM read, so the effect sees whichever `<thead>` exists when it runs:
38
+ // the one projected into the table by its first render. That covers a table rendered behind
39
+ // `@if` or `@defer` — a new instance runs this effect after its content is in place — and a
40
+ // `<thead>` whose cells or height change later, which the `ResizeObserver` below reports.
41
+ // Swapping the `<thead>` element itself under a living table is not supported.
42
+ effect((onCleanup) => {
43
+ const head = this.stickyHeader() ? this.elementRef.nativeElement.tHead : null;
44
+ if (!head || !this.platform.isBrowser) {
45
+ this.stickyHeaderHeight.set(null);
46
+ return;
47
+ }
48
+ const subscription = this.resizeObserver
49
+ .observe(head)
50
+ .subscribe(() => this.stickyHeaderHeight.set(kbqGetElementHeight(head)));
51
+ onCleanup(() => subscription.unsubscribe());
52
+ });
12
53
  }
13
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.30", ngImport: i0, type: KbqTable, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
14
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.30", type: KbqTable, isStandalone: true, selector: "table[kbq-table]", inputs: { border: { classPropertyName: "border", publicName: "border", isSignal: true, isRequired: false, transformFunction: null }, disableHover: { classPropertyName: "disableHover", publicName: "disableHover", isSignal: true, isRequired: false, transformFunction: null }, stickyHeader: { classPropertyName: "stickyHeader", publicName: "stickyHeader", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.kbq-table_bordered": "border()", "class.kbq-table_disable-hover": "disableHover()", "class.kbq-table_sticky-header": "stickyHeader()" }, classAttribute: "kbq-table" }, exportAs: ["kbqTable"], ngImport: i0, template: '<ng-content />', isInline: true, styles: [".kbq-table{border-spacing:0}.kbq-table>thead>tr>th,.kbq-table>thead>tr>td,.kbq-table>tbody>tr>th,.kbq-table>tbody>tr>td,.kbq-table>tfoot>tr>th,.kbq-table>tfoot>tr>td{padding-top:var(--kbq-table-size-row-padding-vertical);padding-right:var(--kbq-table-size-row-padding-horizontal);padding-bottom:var(--kbq-table-size-row-padding-vertical);padding-left:var(--kbq-table-size-row-padding-horizontal);vertical-align:baseline;text-align:left}.kbq-table>thead>tr>th{border-bottom-width:var(--kbq-table-size-border-width);border-bottom-style:solid}.kbq-table .kbq-table-cell_has-button{padding-top:var(--kbq-size-xxs);padding-bottom:var(--kbq-size-xxs)}.kbq-table.kbq-table_sticky-header>thead>tr>th{position:sticky;top:0;z-index:1}.kbq-table.kbq-table_bordered>tbody>tr th,.kbq-table.kbq-table_bordered>tbody>tr td{border-bottom-width:var(--kbq-table-size-border-width);border-bottom-style:solid}.kbq-table:not(.kbq-table_bordered)>tbody>tr>td:first-child{border-top-left-radius:var(--kbq-size-m);border-bottom-left-radius:var(--kbq-size-m)}.kbq-table:not(.kbq-table_bordered)>tbody>tr>td:last-child{border-top-right-radius:var(--kbq-size-m);border-bottom-right-radius:var(--kbq-size-m)}.kbq-table:not(.kbq-table_bordered)>tbody>tr:first-child>td:first-child{border-top-left-radius:0}.kbq-table:not(.kbq-table_bordered)>tbody>tr:first-child>td:last-child{border-top-right-radius:0}.kbq-table>thead{color:var(--kbq-foreground-contrast-secondary)}.kbq-table>thead>tr>th{border-bottom-color:var(--kbq-line-contrast-less)}.kbq-table>tbody>tr>th,.kbq-table>tbody>tr>td{color:var(--kbq-foreground-contrast)}.kbq-table:not(.kbq-table_disable-hover)>tbody>tr.kbq-hovered td,.kbq-table:not(.kbq-table_disable-hover)>tbody>tr:hover td{background-color:var(--kbq-states-background-transparent-hover)}.kbq-table.kbq-table_sticky-header>thead>tr>th{background-color:var(--kbq-background-bg)}.kbq-table.kbq-table_bordered>tbody>tr th,.kbq-table.kbq-table_bordered>tbody>tr td{border-bottom-color:var(--kbq-line-contrast-less)}.kbq-table>thead>tr>th{font-weight:400}.kbq-table>thead{font-size:var(--kbq-typography-text-normal-font-size);font-style:var(--kbq-typography-text-normal-font-style);font-weight:var(--kbq-typography-text-normal-font-weight);line-height:var(--kbq-typography-text-normal-line-height);font-family:var(--kbq-typography-text-normal-font-family);text-transform:var(--kbq-typography-text-normal-text-transform);font-feature-settings:var(--kbq-typography-text-normal-font-feature-settings);letter-spacing:var(--kbq-typography-text-normal-letter-spacing)}.kbq-table>tbody>tr>th{font-weight:400}.kbq-table>tbody{font-size:var(--kbq-typography-tabular-normal-font-size);font-style:var(--kbq-typography-tabular-normal-font-style);font-weight:var(--kbq-typography-tabular-normal-font-weight);line-height:var(--kbq-typography-tabular-normal-line-height);font-family:var(--kbq-typography-tabular-normal-font-family);text-transform:var(--kbq-typography-tabular-normal-text-transform);font-feature-settings:var(--kbq-typography-tabular-normal-font-feature-settings);letter-spacing:var(--kbq-typography-tabular-normal-letter-spacing)}\n", ".kbq-table{--kbq-table-size-border-width: var(--kbq-size-border-width);--kbq-table-size-row-padding-vertical: 10px;--kbq-table-size-row-padding-horizontal: var(--kbq-size-s)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
54
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: KbqTable, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
55
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.25", type: KbqTable, isStandalone: true, selector: "table[kbq-table]", inputs: { border: { classPropertyName: "border", publicName: "border", isSignal: true, isRequired: false, transformFunction: null }, disableHover: { classPropertyName: "disableHover", publicName: "disableHover", isSignal: true, isRequired: false, transformFunction: null }, stickyHeader: { classPropertyName: "stickyHeader", publicName: "stickyHeader", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.kbq-table_bordered": "border()", "class.kbq-table_disable-hover": "disableHover()", "class.kbq-table_sticky-header": "stickyHeader()", "style.--kbq-table-size-sticky-header-height.px": "stickyHeaderHeight()" }, classAttribute: "kbq-table" }, exportAs: ["kbqTable"], ngImport: i0, template: '<ng-content />', isInline: true, styles: [".kbq-table{border-spacing:0}.kbq-table>thead>tr>th,.kbq-table>thead>tr>td,.kbq-table>tbody>tr>th,.kbq-table>tbody>tr>td,.kbq-table>tfoot>tr>th,.kbq-table>tfoot>tr>td{padding-block:var(--kbq-table-size-row-padding-vertical);padding-inline:var(--kbq-table-size-row-padding-horizontal);vertical-align:baseline;text-align:var(--kbq-table-cell-text-align)}.kbq-table>thead>tr>th{border-bottom-width:var(--kbq-table-size-border-width);border-bottom-style:solid}.kbq-table>:is(tbody,tfoot)>tr>:is(td,th):has(.kbq-button,.kbq-button-icon){padding-block:var(--kbq-size-xxs)}.kbq-table.kbq-table_sticky-header>thead>tr>th{position:sticky;top:0;z-index:1}.kbq-table.kbq-table_sticky-header>:is(tbody,tfoot)>tr>:is(td,th),.kbq-table.kbq-table_sticky-header>:is(tbody,tfoot)>tr>:is(td,th) :is(a,button,input,select,textarea,summary,[tabindex]){scroll-margin-block-start:var(--kbq-table-size-sticky-header-height, 0px)}.kbq-table.kbq-table_bordered>tbody>tr>:is(td,th){border-bottom-width:var(--kbq-table-size-border-width);border-bottom-style:solid}.kbq-table:not(.kbq-table_bordered)>tbody>tr>:is(td,th):first-child{border-start-start-radius:var(--kbq-table-size-row-border-radius);border-end-start-radius:var(--kbq-table-size-row-border-radius)}@supports (corner-shape: squircle){.kbq-table:not(.kbq-table_bordered)>tbody>tr>:is(td,th):first-child{corner-shape:squircle;border-start-start-radius:clamp(var(--kbq-table-size-row-border-radius) * 1.85,var(--kbq-table-size-row-border-radius) * 2.3 - 3.6px,var(--kbq-table-size-row-border-radius) * 2);border-end-start-radius:clamp(var(--kbq-table-size-row-border-radius) * 1.85,var(--kbq-table-size-row-border-radius) * 2.3 - 3.6px,var(--kbq-table-size-row-border-radius) * 2)}}.kbq-table:not(.kbq-table_bordered)>tbody>tr>:is(td,th):last-child{border-start-end-radius:var(--kbq-table-size-row-border-radius);border-end-end-radius:var(--kbq-table-size-row-border-radius)}@supports (corner-shape: squircle){.kbq-table:not(.kbq-table_bordered)>tbody>tr>:is(td,th):last-child{corner-shape:squircle;border-start-end-radius:clamp(var(--kbq-table-size-row-border-radius) * 1.85,var(--kbq-table-size-row-border-radius) * 2.3 - 3.6px,var(--kbq-table-size-row-border-radius) * 2);border-end-end-radius:clamp(var(--kbq-table-size-row-border-radius) * 1.85,var(--kbq-table-size-row-border-radius) * 2.3 - 3.6px,var(--kbq-table-size-row-border-radius) * 2)}}.kbq-table:not(.kbq-table_bordered)>tbody>tr:first-child>:is(td,th):first-child{border-start-start-radius:0}.kbq-table:not(.kbq-table_bordered)>tbody>tr:first-child>:is(td,th):last-child{border-start-end-radius:0}.kbq-table:not(.kbq-table_bordered)>tbody:has(+tfoot)>tr:last-child>:is(td,th):first-child{border-end-start-radius:0}.kbq-table:not(.kbq-table_bordered)>tbody:has(+tfoot)>tr:last-child>:is(td,th):last-child{border-end-end-radius:0}.kbq-table>thead{color:var(--kbq-table-header-text)}.kbq-table>thead>tr>th{border-bottom-color:var(--kbq-table-border-color)}.kbq-table>tbody>tr>th,.kbq-table>tbody>tr>td,.kbq-table>tfoot>tr>th,.kbq-table>tfoot>tr>td{color:var(--kbq-table-body-text)}.kbq-table:not(.kbq-table_disable-hover)>tbody>tr.kbq-hovered>:is(td,th),.kbq-table:not(.kbq-table_disable-hover)>tbody>tr:hover>:is(td,th){background-color:var(--kbq-table-states-hover-background)}.kbq-table.kbq-table_sticky-header>thead>tr>th{background-color:var(--kbq-table-sticky-header-background)}.kbq-table.kbq-table_bordered>tbody>tr>:is(td,th){border-bottom-color:var(--kbq-table-border-color)}.kbq-table>thead>tr>th{font-weight:400}.kbq-table>thead{font-size:var(--kbq-typography-text-normal-font-size);font-style:var(--kbq-typography-text-normal-font-style);font-weight:var(--kbq-typography-text-normal-font-weight);line-height:var(--kbq-typography-text-normal-line-height);font-family:var(--kbq-typography-text-normal-font-family);text-transform:var(--kbq-typography-text-normal-text-transform);font-feature-settings:var(--kbq-typography-text-normal-font-feature-settings);letter-spacing:var(--kbq-typography-text-normal-letter-spacing)}.kbq-table>tbody>tr>th,.kbq-table>tfoot>tr>th{font-weight:400}.kbq-table>tbody,.kbq-table>tfoot{font-size:var(--kbq-typography-tabular-normal-font-size);font-style:var(--kbq-typography-tabular-normal-font-style);font-weight:var(--kbq-typography-tabular-normal-font-weight);line-height:var(--kbq-typography-tabular-normal-line-height);font-family:var(--kbq-typography-tabular-normal-font-family);text-transform:var(--kbq-typography-tabular-normal-text-transform);font-feature-settings:var(--kbq-typography-tabular-normal-font-feature-settings);letter-spacing:var(--kbq-typography-tabular-normal-letter-spacing)}\n", ".kbq-table{--kbq-table-size-border-width: var(--kbq-size-border-width);--kbq-table-size-row-padding-vertical: 10px;--kbq-table-size-row-padding-horizontal: var(--kbq-size-s);--kbq-table-size-row-border-radius: var(--kbq-size-m);--kbq-table-cell-text-align: start;--kbq-table-header-text: var(--kbq-foreground-contrast-secondary);--kbq-table-body-text: var(--kbq-foreground-contrast);--kbq-table-border-color: var(--kbq-line-contrast-less);--kbq-table-states-hover-background: var(--kbq-states-background-transparent-hover);--kbq-table-sticky-header-background: var(--kbq-background-bg)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
15
56
  }
16
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.30", ngImport: i0, type: KbqTable, decorators: [{
57
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: KbqTable, decorators: [{
17
58
  type: Component,
18
59
  args: [{ selector: 'table[kbq-table]', template: '<ng-content />', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
19
60
  class: 'kbq-table',
20
61
  '[class.kbq-table_bordered]': 'border()',
21
62
  '[class.kbq-table_disable-hover]': 'disableHover()',
22
- '[class.kbq-table_sticky-header]': 'stickyHeader()'
23
- }, exportAs: 'kbqTable', styles: [".kbq-table{border-spacing:0}.kbq-table>thead>tr>th,.kbq-table>thead>tr>td,.kbq-table>tbody>tr>th,.kbq-table>tbody>tr>td,.kbq-table>tfoot>tr>th,.kbq-table>tfoot>tr>td{padding-top:var(--kbq-table-size-row-padding-vertical);padding-right:var(--kbq-table-size-row-padding-horizontal);padding-bottom:var(--kbq-table-size-row-padding-vertical);padding-left:var(--kbq-table-size-row-padding-horizontal);vertical-align:baseline;text-align:left}.kbq-table>thead>tr>th{border-bottom-width:var(--kbq-table-size-border-width);border-bottom-style:solid}.kbq-table .kbq-table-cell_has-button{padding-top:var(--kbq-size-xxs);padding-bottom:var(--kbq-size-xxs)}.kbq-table.kbq-table_sticky-header>thead>tr>th{position:sticky;top:0;z-index:1}.kbq-table.kbq-table_bordered>tbody>tr th,.kbq-table.kbq-table_bordered>tbody>tr td{border-bottom-width:var(--kbq-table-size-border-width);border-bottom-style:solid}.kbq-table:not(.kbq-table_bordered)>tbody>tr>td:first-child{border-top-left-radius:var(--kbq-size-m);border-bottom-left-radius:var(--kbq-size-m)}.kbq-table:not(.kbq-table_bordered)>tbody>tr>td:last-child{border-top-right-radius:var(--kbq-size-m);border-bottom-right-radius:var(--kbq-size-m)}.kbq-table:not(.kbq-table_bordered)>tbody>tr:first-child>td:first-child{border-top-left-radius:0}.kbq-table:not(.kbq-table_bordered)>tbody>tr:first-child>td:last-child{border-top-right-radius:0}.kbq-table>thead{color:var(--kbq-foreground-contrast-secondary)}.kbq-table>thead>tr>th{border-bottom-color:var(--kbq-line-contrast-less)}.kbq-table>tbody>tr>th,.kbq-table>tbody>tr>td{color:var(--kbq-foreground-contrast)}.kbq-table:not(.kbq-table_disable-hover)>tbody>tr.kbq-hovered td,.kbq-table:not(.kbq-table_disable-hover)>tbody>tr:hover td{background-color:var(--kbq-states-background-transparent-hover)}.kbq-table.kbq-table_sticky-header>thead>tr>th{background-color:var(--kbq-background-bg)}.kbq-table.kbq-table_bordered>tbody>tr th,.kbq-table.kbq-table_bordered>tbody>tr td{border-bottom-color:var(--kbq-line-contrast-less)}.kbq-table>thead>tr>th{font-weight:400}.kbq-table>thead{font-size:var(--kbq-typography-text-normal-font-size);font-style:var(--kbq-typography-text-normal-font-style);font-weight:var(--kbq-typography-text-normal-font-weight);line-height:var(--kbq-typography-text-normal-line-height);font-family:var(--kbq-typography-text-normal-font-family);text-transform:var(--kbq-typography-text-normal-text-transform);font-feature-settings:var(--kbq-typography-text-normal-font-feature-settings);letter-spacing:var(--kbq-typography-text-normal-letter-spacing)}.kbq-table>tbody>tr>th{font-weight:400}.kbq-table>tbody{font-size:var(--kbq-typography-tabular-normal-font-size);font-style:var(--kbq-typography-tabular-normal-font-style);font-weight:var(--kbq-typography-tabular-normal-font-weight);line-height:var(--kbq-typography-tabular-normal-line-height);font-family:var(--kbq-typography-tabular-normal-font-family);text-transform:var(--kbq-typography-tabular-normal-text-transform);font-feature-settings:var(--kbq-typography-tabular-normal-font-feature-settings);letter-spacing:var(--kbq-typography-tabular-normal-letter-spacing)}\n", ".kbq-table{--kbq-table-size-border-width: var(--kbq-size-border-width);--kbq-table-size-row-padding-vertical: 10px;--kbq-table-size-row-padding-horizontal: var(--kbq-size-s)}\n"] }]
24
- }], propDecorators: { border: [{ type: i0.Input, args: [{ isSignal: true, alias: "border", required: false }] }], disableHover: [{ type: i0.Input, args: [{ isSignal: true, alias: "disableHover", required: false }] }], stickyHeader: [{ type: i0.Input, args: [{ isSignal: true, alias: "stickyHeader", required: false }] }] } });
25
- class KbqTableCellContent {
26
- constructor() {
27
- this.button = contentChild(KbqButton, ...(ngDevMode ? [{ debugName: "button" }] : []));
28
- }
29
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.30", ngImport: i0, type: KbqTableCellContent, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
30
- /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "20.3.30", type: KbqTableCellContent, isStandalone: true, selector: "kbq-table td", host: { properties: { "class.kbq-table-cell_has-button": "!!button()" } }, queries: [{ propertyName: "button", first: true, predicate: KbqButton, descendants: true, isSignal: true }], ngImport: i0 }); }
31
- }
32
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.30", ngImport: i0, type: KbqTableCellContent, decorators: [{
33
- type: Directive,
34
- args: [{
35
- selector: 'kbq-table td',
36
- host: {
37
- '[class.kbq-table-cell_has-button]': '!!button()'
38
- }
39
- }]
40
- }], propDecorators: { button: [{ type: i0.ContentChild, args: [i0.forwardRef(() => KbqButton), { isSignal: true }] }] } });
63
+ '[class.kbq-table_sticky-header]': 'stickyHeader()',
64
+ '[style.--kbq-table-size-sticky-header-height.px]': 'stickyHeaderHeight()'
65
+ }, exportAs: 'kbqTable', styles: [".kbq-table{border-spacing:0}.kbq-table>thead>tr>th,.kbq-table>thead>tr>td,.kbq-table>tbody>tr>th,.kbq-table>tbody>tr>td,.kbq-table>tfoot>tr>th,.kbq-table>tfoot>tr>td{padding-block:var(--kbq-table-size-row-padding-vertical);padding-inline:var(--kbq-table-size-row-padding-horizontal);vertical-align:baseline;text-align:var(--kbq-table-cell-text-align)}.kbq-table>thead>tr>th{border-bottom-width:var(--kbq-table-size-border-width);border-bottom-style:solid}.kbq-table>:is(tbody,tfoot)>tr>:is(td,th):has(.kbq-button,.kbq-button-icon){padding-block:var(--kbq-size-xxs)}.kbq-table.kbq-table_sticky-header>thead>tr>th{position:sticky;top:0;z-index:1}.kbq-table.kbq-table_sticky-header>:is(tbody,tfoot)>tr>:is(td,th),.kbq-table.kbq-table_sticky-header>:is(tbody,tfoot)>tr>:is(td,th) :is(a,button,input,select,textarea,summary,[tabindex]){scroll-margin-block-start:var(--kbq-table-size-sticky-header-height, 0px)}.kbq-table.kbq-table_bordered>tbody>tr>:is(td,th){border-bottom-width:var(--kbq-table-size-border-width);border-bottom-style:solid}.kbq-table:not(.kbq-table_bordered)>tbody>tr>:is(td,th):first-child{border-start-start-radius:var(--kbq-table-size-row-border-radius);border-end-start-radius:var(--kbq-table-size-row-border-radius)}@supports (corner-shape: squircle){.kbq-table:not(.kbq-table_bordered)>tbody>tr>:is(td,th):first-child{corner-shape:squircle;border-start-start-radius:clamp(var(--kbq-table-size-row-border-radius) * 1.85,var(--kbq-table-size-row-border-radius) * 2.3 - 3.6px,var(--kbq-table-size-row-border-radius) * 2);border-end-start-radius:clamp(var(--kbq-table-size-row-border-radius) * 1.85,var(--kbq-table-size-row-border-radius) * 2.3 - 3.6px,var(--kbq-table-size-row-border-radius) * 2)}}.kbq-table:not(.kbq-table_bordered)>tbody>tr>:is(td,th):last-child{border-start-end-radius:var(--kbq-table-size-row-border-radius);border-end-end-radius:var(--kbq-table-size-row-border-radius)}@supports (corner-shape: squircle){.kbq-table:not(.kbq-table_bordered)>tbody>tr>:is(td,th):last-child{corner-shape:squircle;border-start-end-radius:clamp(var(--kbq-table-size-row-border-radius) * 1.85,var(--kbq-table-size-row-border-radius) * 2.3 - 3.6px,var(--kbq-table-size-row-border-radius) * 2);border-end-end-radius:clamp(var(--kbq-table-size-row-border-radius) * 1.85,var(--kbq-table-size-row-border-radius) * 2.3 - 3.6px,var(--kbq-table-size-row-border-radius) * 2)}}.kbq-table:not(.kbq-table_bordered)>tbody>tr:first-child>:is(td,th):first-child{border-start-start-radius:0}.kbq-table:not(.kbq-table_bordered)>tbody>tr:first-child>:is(td,th):last-child{border-start-end-radius:0}.kbq-table:not(.kbq-table_bordered)>tbody:has(+tfoot)>tr:last-child>:is(td,th):first-child{border-end-start-radius:0}.kbq-table:not(.kbq-table_bordered)>tbody:has(+tfoot)>tr:last-child>:is(td,th):last-child{border-end-end-radius:0}.kbq-table>thead{color:var(--kbq-table-header-text)}.kbq-table>thead>tr>th{border-bottom-color:var(--kbq-table-border-color)}.kbq-table>tbody>tr>th,.kbq-table>tbody>tr>td,.kbq-table>tfoot>tr>th,.kbq-table>tfoot>tr>td{color:var(--kbq-table-body-text)}.kbq-table:not(.kbq-table_disable-hover)>tbody>tr.kbq-hovered>:is(td,th),.kbq-table:not(.kbq-table_disable-hover)>tbody>tr:hover>:is(td,th){background-color:var(--kbq-table-states-hover-background)}.kbq-table.kbq-table_sticky-header>thead>tr>th{background-color:var(--kbq-table-sticky-header-background)}.kbq-table.kbq-table_bordered>tbody>tr>:is(td,th){border-bottom-color:var(--kbq-table-border-color)}.kbq-table>thead>tr>th{font-weight:400}.kbq-table>thead{font-size:var(--kbq-typography-text-normal-font-size);font-style:var(--kbq-typography-text-normal-font-style);font-weight:var(--kbq-typography-text-normal-font-weight);line-height:var(--kbq-typography-text-normal-line-height);font-family:var(--kbq-typography-text-normal-font-family);text-transform:var(--kbq-typography-text-normal-text-transform);font-feature-settings:var(--kbq-typography-text-normal-font-feature-settings);letter-spacing:var(--kbq-typography-text-normal-letter-spacing)}.kbq-table>tbody>tr>th,.kbq-table>tfoot>tr>th{font-weight:400}.kbq-table>tbody,.kbq-table>tfoot{font-size:var(--kbq-typography-tabular-normal-font-size);font-style:var(--kbq-typography-tabular-normal-font-style);font-weight:var(--kbq-typography-tabular-normal-font-weight);line-height:var(--kbq-typography-tabular-normal-line-height);font-family:var(--kbq-typography-tabular-normal-font-family);text-transform:var(--kbq-typography-tabular-normal-text-transform);font-feature-settings:var(--kbq-typography-tabular-normal-font-feature-settings);letter-spacing:var(--kbq-typography-tabular-normal-letter-spacing)}\n", ".kbq-table{--kbq-table-size-border-width: var(--kbq-size-border-width);--kbq-table-size-row-padding-vertical: 10px;--kbq-table-size-row-padding-horizontal: var(--kbq-size-s);--kbq-table-size-row-border-radius: var(--kbq-size-m);--kbq-table-cell-text-align: start;--kbq-table-header-text: var(--kbq-foreground-contrast-secondary);--kbq-table-body-text: var(--kbq-foreground-contrast);--kbq-table-border-color: var(--kbq-line-contrast-less);--kbq-table-states-hover-background: var(--kbq-states-background-transparent-hover);--kbq-table-sticky-header-background: var(--kbq-background-bg)}\n"] }]
66
+ }], ctorParameters: () => [], propDecorators: { border: [{ type: i0.Input, args: [{ isSignal: true, alias: "border", required: false }] }], disableHover: [{ type: i0.Input, args: [{ isSignal: true, alias: "disableHover", required: false }] }], stickyHeader: [{ type: i0.Input, args: [{ isSignal: true, alias: "stickyHeader", required: false }] }] } });
41
67
 
68
+ /** Legacy entry point for `KbqTable`. Standalone consumers import `KbqTable` directly. */
42
69
  class KbqTableModule {
43
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.30", ngImport: i0, type: KbqTableModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
44
- /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.30", ngImport: i0, type: KbqTableModule, imports: [A11yModule,
45
- PlatformModule,
46
- KbqTable,
47
- KbqTableCellContent], exports: [KbqTable,
48
- KbqTableCellContent] }); }
49
- /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.30", ngImport: i0, type: KbqTableModule, imports: [A11yModule,
50
- PlatformModule] }); }
70
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: KbqTableModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
71
+ /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.25", ngImport: i0, type: KbqTableModule, imports: [KbqTable], exports: [KbqTable] }); }
72
+ /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: KbqTableModule }); }
51
73
  }
52
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.30", ngImport: i0, type: KbqTableModule, decorators: [{
74
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: KbqTableModule, decorators: [{
53
75
  type: NgModule,
54
76
  args: [{
55
- imports: [
56
- A11yModule,
57
- PlatformModule,
58
- KbqTable,
59
- KbqTableCellContent
60
- ],
61
- exports: [
62
- KbqTable,
63
- KbqTableCellContent
64
- ]
77
+ imports: [KbqTable],
78
+ exports: [KbqTable]
65
79
  }]
66
80
  }] });
67
81
 
@@ -69,5 +83,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.30", ngImpo
69
83
  * Generated bundle index. Do not edit.
70
84
  */
71
85
 
72
- export { KbqTable, KbqTableCellContent, KbqTableModule };
86
+ export { KbqTable, KbqTableModule };
73
87
  //# sourceMappingURL=koobiq-components-table.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"koobiq-components-table.mjs","sources":["../../../packages/components/table/table.component.ts","../../../packages/components/table/table.module.ts","../../../packages/components/table/koobiq-components-table.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n Directive,\n ViewEncapsulation,\n booleanAttribute,\n contentChild,\n input\n} from '@angular/core';\nimport { KbqButton } from '@koobiq/components/button';\n\n@Component({\n selector: 'table[kbq-table]',\n template: '<ng-content />',\n styleUrls: ['table.scss', 'table-tokens.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'kbq-table',\n '[class.kbq-table_bordered]': 'border()',\n '[class.kbq-table_disable-hover]': 'disableHover()',\n '[class.kbq-table_sticky-header]': 'stickyHeader()'\n },\n exportAs: 'kbqTable'\n})\nexport class KbqTable {\n readonly border = input(false, { transform: booleanAttribute });\n readonly disableHover = input(false, { transform: booleanAttribute });\n readonly stickyHeader = input(false, { transform: booleanAttribute });\n}\n\n@Directive({\n selector: 'kbq-table td',\n host: {\n '[class.kbq-table-cell_has-button]': '!!button()'\n }\n})\nexport class KbqTableCellContent {\n readonly button = contentChild(KbqButton);\n}\n","import { A11yModule } from '@angular/cdk/a11y';\nimport { PlatformModule } from '@angular/cdk/platform';\nimport { NgModule } from '@angular/core';\nimport { KbqTable, KbqTableCellContent } from './table.component';\n\n@NgModule({\n imports: [\n A11yModule,\n PlatformModule,\n KbqTable,\n KbqTableCellContent\n ],\n exports: [\n KbqTable,\n KbqTableCellContent\n ]\n})\nexport class KbqTableModule {}\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-table.mjs","sources":["../../../packages/components/table/table.component.ts","../../../packages/components/table/table.module.ts","../../../packages/components/table/koobiq-components-table.ts"],"sourcesContent":["import { SharedResizeObserver } from '@angular/cdk/observers/private';\nimport { Platform } from '@angular/cdk/platform';\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n ViewEncapsulation,\n booleanAttribute,\n effect,\n inject,\n input,\n signal\n} from '@angular/core';\nimport { kbqGetElementHeight } from '@koobiq/components/core';\n\n/**\n * A styling layer over a native `<table>`: it applies the library's spacing, typography and colors and\n * leaves the semantics to the platform. Sorting, resizing and virtual scrolling are out of scope — only\n * standard HTML table capabilities are available.\n */\n@Component({\n selector: 'table[kbq-table]',\n template: '<ng-content />',\n styleUrls: ['table.scss', 'table-tokens.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'kbq-table',\n '[class.kbq-table_bordered]': 'border()',\n '[class.kbq-table_disable-hover]': 'disableHover()',\n '[class.kbq-table_sticky-header]': 'stickyHeader()',\n '[style.--kbq-table-size-sticky-header-height.px]': 'stickyHeaderHeight()'\n },\n exportAs: 'kbqTable'\n})\nexport class KbqTable {\n private readonly elementRef = inject<ElementRef<HTMLTableElement>>(ElementRef);\n private readonly resizeObserver = inject(SharedResizeObserver);\n private readonly platform = inject(Platform);\n\n /**\n * Whether a line is drawn under every body row. Toggles the `kbq-table_bordered` class. Defaults to `false`.\n */\n readonly border = input(false, { transform: booleanAttribute });\n\n /**\n * Whether the background change on row hover is suppressed. Toggles the `kbq-table_disable-hover`\n * class. Use it when rows are not interactive and the highlight would be misleading. Defaults to `false`.\n */\n readonly disableHover = input(false, { transform: booleanAttribute });\n\n /**\n * Whether the header stays visible while the table scrolls. Toggles the `kbq-table_sticky-header`\n * class. Defaults to `false`.\n */\n readonly stickyHeader = input(false, { transform: booleanAttribute });\n\n /**\n * Measured height of the pinned header, published as `--kbq-table-size-sticky-header-height`. Body\n * cells and the focusable content inside them use it as `scroll-margin-block-start`, so scrolling a\n * control into view does not leave it under the header (WCAG 2.2 SC 2.4.11).\n */\n protected readonly stickyHeaderHeight = signal<number | null>(null);\n\n constructor() {\n // `tHead` is a plain DOM read, so the effect sees whichever `<thead>` exists when it runs:\n // the one projected into the table by its first render. That covers a table rendered behind\n // `@if` or `@defer` — a new instance runs this effect after its content is in place — and a\n // `<thead>` whose cells or height change later, which the `ResizeObserver` below reports.\n // Swapping the `<thead>` element itself under a living table is not supported.\n effect((onCleanup) => {\n const head = this.stickyHeader() ? this.elementRef.nativeElement.tHead : null;\n\n if (!head || !this.platform.isBrowser) {\n this.stickyHeaderHeight.set(null);\n\n return;\n }\n\n const subscription = this.resizeObserver\n .observe(head)\n .subscribe(() => this.stickyHeaderHeight.set(kbqGetElementHeight(head)));\n\n onCleanup(() => subscription.unsubscribe());\n });\n }\n}\n","import { NgModule } from '@angular/core';\nimport { KbqTable } from './table.component';\n\n/** Legacy entry point for `KbqTable`. Standalone consumers import `KbqTable` directly. */\n@NgModule({\n imports: [KbqTable],\n exports: [KbqTable]\n})\nexport class KbqTableModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}