@koobiq/components 20.4.1 → 21.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (771) hide show
  1. package/accordion/accordion-trigger.scss +3 -10
  2. package/accordion/accordion.scss +4 -6
  3. package/actions-panel/actions-panel-container.scss +45 -1
  4. package/alert/alert.component.scss +3 -2
  5. package/app-switcher/_app-switcher-theme.scss +0 -4
  6. package/app-switcher/app-switcher-dropdown-app.scss +3 -2
  7. package/app-switcher/app-switcher-dropdown-site.scss +2 -1
  8. package/app-switcher/{kbq-app-switcher-list-item.scss → app-switcher-list-item.scss} +18 -4
  9. package/app-switcher/app-switcher-tokens.scss +15 -0
  10. package/app-switcher/app-switcher.scss +14 -4
  11. package/autocomplete/autocomplete.scss +7 -6
  12. package/badge/badge.component.scss +5 -8
  13. package/breadcrumbs/breadcrumbs.scss +25 -10
  14. package/button/_button-base.scss +30 -7
  15. package/button/_button-theme.scss +16 -0
  16. package/button/button-group.scss +7 -0
  17. package/button/button-tokens.scss +0 -2
  18. package/button/button.scss +34 -2
  19. package/button-toggle/_button-toggle-theme.scss +7 -2
  20. package/button-toggle/button-toggle.scss +65 -15
  21. package/checkbox/_checkbox-theme.scss +4 -3
  22. package/checkbox/checkbox.scss +3 -6
  23. package/clamped-text/clamped-text.scss +6 -2
  24. package/code-block/code-block-tokens.scss +0 -224
  25. package/code-block/code-block.scss +20 -9
  26. package/content-panel/content-panel-aside.scss +3 -2
  27. package/content-panel/content-panel-container.scss +37 -0
  28. package/content-panel/content-panel.scss +4 -3
  29. package/core/highlight/_highlight-theme.scss +3 -1
  30. package/core/option/action-container.scss +2 -2
  31. package/core/option/action.scss +2 -1
  32. package/core/option/option.scss +2 -1
  33. package/core/pop-up/_pop-up.scss +0 -37
  34. package/core/selection/pseudo-checkbox/pseudo-checkbox.scss +5 -10
  35. package/core/styles/_core.scss +3 -0
  36. package/core/styles/_koobiq-theme.scss +5 -6
  37. package/core/styles/common/_animation.scss +44 -16
  38. package/core/styles/common/_groups-mixins.scss +21 -19
  39. package/core/styles/common/_groups.scss +4 -32
  40. package/core/styles/common/_index.scss +0 -2
  41. package/core/styles/common/_link.scss +117 -0
  42. package/core/styles/common/_list.scss +0 -26
  43. package/core/styles/common/_overlay.scss +8 -10
  44. package/core/styles/common/_rtl.scss +0 -14
  45. package/core/styles/common/_select.scss +33 -15
  46. package/core/styles/common/_squircle.scss +63 -0
  47. package/core/styles/common/_tokens.scss +0 -11
  48. package/core/styles/common/_vendor-prefixes.scss +0 -20
  49. package/core/styles/functions/_timing.scss +0 -22
  50. package/core/styles/theming/_scrollbar-theme.scss +6 -1
  51. package/core/styles/theming/_theming.scss +13 -65
  52. package/core/styles/typography/_index.scss +0 -1
  53. package/core/styles/typography/_typography.scss +0 -143
  54. package/core/styles/visual/_body.scss +1 -6
  55. package/core/styles/visual/_layout.scss +0 -12
  56. package/datepicker/calendar-body.scss +3 -1
  57. package/datepicker/calendar-header.scss +0 -1
  58. package/datepicker/datepicker-content.scss +33 -1
  59. package/datepicker/datepicker-toggle.scss +0 -38
  60. package/dl/dl-tokens.scss +10 -0
  61. package/dl/dl.scss +113 -13
  62. package/dropdown/_dropdown-theme.scss +4 -16
  63. package/dropdown/dropdown-item.scss +4 -10
  64. package/dropdown/dropdown.scss +2 -1
  65. package/empty-state/_empty-state-theme.scss +10 -4
  66. package/empty-state/empty-state-tokens.scss +4 -4
  67. package/empty-state/empty-state.scss +4 -0
  68. package/fesm2022/koobiq-components-accordion.mjs +347 -229
  69. package/fesm2022/koobiq-components-accordion.mjs.map +1 -1
  70. package/fesm2022/koobiq-components-actions-panel.mjs +302 -187
  71. package/fesm2022/koobiq-components-actions-panel.mjs.map +1 -1
  72. package/fesm2022/koobiq-components-alert.mjs +39 -39
  73. package/fesm2022/koobiq-components-alert.mjs.map +1 -1
  74. package/fesm2022/koobiq-components-app-switcher.mjs +677 -367
  75. package/fesm2022/koobiq-components-app-switcher.mjs.map +1 -1
  76. package/fesm2022/koobiq-components-autocomplete.mjs +620 -253
  77. package/fesm2022/koobiq-components-autocomplete.mjs.map +1 -1
  78. package/fesm2022/koobiq-components-badge.mjs +46 -48
  79. package/fesm2022/koobiq-components-badge.mjs.map +1 -1
  80. package/fesm2022/koobiq-components-breadcrumbs.mjs +221 -169
  81. package/fesm2022/koobiq-components-breadcrumbs.mjs.map +1 -1
  82. package/fesm2022/koobiq-components-button-toggle.mjs +565 -196
  83. package/fesm2022/koobiq-components-button-toggle.mjs.map +1 -1
  84. package/fesm2022/koobiq-components-button.mjs +332 -116
  85. package/fesm2022/koobiq-components-button.mjs.map +1 -1
  86. package/fesm2022/koobiq-components-checkbox.mjs +172 -132
  87. package/fesm2022/koobiq-components-checkbox.mjs.map +1 -1
  88. package/fesm2022/koobiq-components-clamped-text.mjs +165 -158
  89. package/fesm2022/koobiq-components-clamped-text.mjs.map +1 -1
  90. package/fesm2022/koobiq-components-code-block.mjs +755 -601
  91. package/fesm2022/koobiq-components-code-block.mjs.map +1 -1
  92. package/fesm2022/koobiq-components-content-panel.mjs +260 -143
  93. package/fesm2022/koobiq-components-content-panel.mjs.map +1 -1
  94. package/fesm2022/koobiq-components-core.mjs +4342 -1595
  95. package/fesm2022/koobiq-components-core.mjs.map +1 -1
  96. package/fesm2022/koobiq-components-datepicker.mjs +1713 -1606
  97. package/fesm2022/koobiq-components-datepicker.mjs.map +1 -1
  98. package/fesm2022/koobiq-components-divider.mjs +73 -36
  99. package/fesm2022/koobiq-components-divider.mjs.map +1 -1
  100. package/fesm2022/koobiq-components-dl.mjs +447 -89
  101. package/fesm2022/koobiq-components-dl.mjs.map +1 -1
  102. package/fesm2022/koobiq-components-dropdown.mjs +703 -599
  103. package/fesm2022/koobiq-components-dropdown.mjs.map +1 -1
  104. package/fesm2022/koobiq-components-dynamic-translation.mjs +20 -20
  105. package/fesm2022/koobiq-components-dynamic-translation.mjs.map +1 -1
  106. package/fesm2022/koobiq-components-ellipsis-center.mjs +46 -31
  107. package/fesm2022/koobiq-components-ellipsis-center.mjs.map +1 -1
  108. package/fesm2022/koobiq-components-empty-state.mjs +116 -60
  109. package/fesm2022/koobiq-components-empty-state.mjs.map +1 -1
  110. package/fesm2022/koobiq-components-file-upload.mjs +550 -290
  111. package/fesm2022/koobiq-components-file-upload.mjs.map +1 -1
  112. package/fesm2022/koobiq-components-filter-bar.mjs +2810 -2538
  113. package/fesm2022/koobiq-components-filter-bar.mjs.map +1 -1
  114. package/fesm2022/koobiq-components-flag.mjs +79 -24
  115. package/fesm2022/koobiq-components-flag.mjs.map +1 -1
  116. package/fesm2022/koobiq-components-form-field.mjs +389 -525
  117. package/fesm2022/koobiq-components-form-field.mjs.map +1 -1
  118. package/fesm2022/koobiq-components-icon.mjs +366 -136
  119. package/fesm2022/koobiq-components-icon.mjs.map +1 -1
  120. package/fesm2022/koobiq-components-inline-edit.mjs +429 -212
  121. package/fesm2022/koobiq-components-inline-edit.mjs.map +1 -1
  122. package/fesm2022/koobiq-components-input.mjs +601 -459
  123. package/fesm2022/koobiq-components-input.mjs.map +1 -1
  124. package/fesm2022/koobiq-components-link-deprecated.mjs +196 -0
  125. package/fesm2022/koobiq-components-link-deprecated.mjs.map +1 -0
  126. package/fesm2022/koobiq-components-link.mjs +328 -125
  127. package/fesm2022/koobiq-components-link.mjs.map +1 -1
  128. package/fesm2022/koobiq-components-list.mjs +583 -433
  129. package/fesm2022/koobiq-components-list.mjs.map +1 -1
  130. package/fesm2022/koobiq-components-loader-overlay.mjs +167 -68
  131. package/fesm2022/koobiq-components-loader-overlay.mjs.map +1 -1
  132. package/fesm2022/koobiq-components-markdown.mjs +55 -78
  133. package/fesm2022/koobiq-components-markdown.mjs.map +1 -1
  134. package/fesm2022/koobiq-components-modal.mjs +853 -475
  135. package/fesm2022/koobiq-components-modal.mjs.map +1 -1
  136. package/fesm2022/koobiq-components-navbar.mjs +895 -556
  137. package/fesm2022/koobiq-components-navbar.mjs.map +1 -1
  138. package/fesm2022/koobiq-components-notification-center.mjs +680 -310
  139. package/fesm2022/koobiq-components-notification-center.mjs.map +1 -1
  140. package/fesm2022/koobiq-components-overflow-items.mjs +46 -64
  141. package/fesm2022/koobiq-components-overflow-items.mjs.map +1 -1
  142. package/fesm2022/koobiq-components-popover.mjs +684 -285
  143. package/fesm2022/koobiq-components-popover.mjs.map +1 -1
  144. package/fesm2022/koobiq-components-progress-bar.mjs +87 -33
  145. package/fesm2022/koobiq-components-progress-bar.mjs.map +1 -1
  146. package/fesm2022/koobiq-components-progress-spinner.mjs +52 -43
  147. package/fesm2022/koobiq-components-progress-spinner.mjs.map +1 -1
  148. package/fesm2022/koobiq-components-radio.mjs +450 -231
  149. package/fesm2022/koobiq-components-radio.mjs.map +1 -1
  150. package/fesm2022/koobiq-components-resizer.mjs +127 -21
  151. package/fesm2022/koobiq-components-resizer.mjs.map +1 -1
  152. package/fesm2022/koobiq-components-scrollbar-deprecated.mjs +299 -0
  153. package/fesm2022/koobiq-components-scrollbar-deprecated.mjs.map +1 -0
  154. package/fesm2022/koobiq-components-scrollbar.mjs +745 -222
  155. package/fesm2022/koobiq-components-scrollbar.mjs.map +1 -1
  156. package/fesm2022/koobiq-components-search-expandable.mjs +288 -126
  157. package/fesm2022/koobiq-components-search-expandable.mjs.map +1 -1
  158. package/fesm2022/koobiq-components-select.mjs +883 -693
  159. package/fesm2022/koobiq-components-select.mjs.map +1 -1
  160. package/fesm2022/koobiq-components-sidebar.mjs +207 -88
  161. package/fesm2022/koobiq-components-sidebar.mjs.map +1 -1
  162. package/fesm2022/koobiq-components-sidepanel.mjs +689 -296
  163. package/fesm2022/koobiq-components-sidepanel.mjs.map +1 -1
  164. package/fesm2022/koobiq-components-skeleton.mjs +815 -41
  165. package/fesm2022/koobiq-components-skeleton.mjs.map +1 -1
  166. package/fesm2022/koobiq-components-split-button.mjs +109 -88
  167. package/fesm2022/koobiq-components-split-button.mjs.map +1 -1
  168. package/fesm2022/koobiq-components-splitter-deprecated.mjs +591 -0
  169. package/fesm2022/koobiq-components-splitter-deprecated.mjs.map +1 -0
  170. package/fesm2022/koobiq-components-splitter.mjs +890 -501
  171. package/fesm2022/koobiq-components-splitter.mjs.map +1 -1
  172. package/fesm2022/koobiq-components-table.mjs +63 -49
  173. package/fesm2022/koobiq-components-table.mjs.map +1 -1
  174. package/fesm2022/koobiq-components-tabs.mjs +1062 -603
  175. package/fesm2022/koobiq-components-tabs.mjs.map +1 -1
  176. package/fesm2022/koobiq-components-tags.mjs +886 -733
  177. package/fesm2022/koobiq-components-tags.mjs.map +1 -1
  178. package/fesm2022/koobiq-components-textarea.mjs +213 -185
  179. package/fesm2022/koobiq-components-textarea.mjs.map +1 -1
  180. package/fesm2022/koobiq-components-time-range.mjs +299 -147
  181. package/fesm2022/koobiq-components-time-range.mjs.map +1 -1
  182. package/fesm2022/koobiq-components-timepicker.mjs +233 -245
  183. package/fesm2022/koobiq-components-timepicker.mjs.map +1 -1
  184. package/fesm2022/koobiq-components-timezone.mjs +344 -142
  185. package/fesm2022/koobiq-components-timezone.mjs.map +1 -1
  186. package/fesm2022/koobiq-components-title.mjs +229 -145
  187. package/fesm2022/koobiq-components-title.mjs.map +1 -1
  188. package/fesm2022/koobiq-components-toast.mjs +486 -165
  189. package/fesm2022/koobiq-components-toast.mjs.map +1 -1
  190. package/fesm2022/koobiq-components-toggle.mjs +177 -130
  191. package/fesm2022/koobiq-components-toggle.mjs.map +1 -1
  192. package/fesm2022/koobiq-components-tooltip.mjs +657 -214
  193. package/fesm2022/koobiq-components-tooltip.mjs.map +1 -1
  194. package/fesm2022/koobiq-components-top-bar.mjs +61 -32
  195. package/fesm2022/koobiq-components-top-bar.mjs.map +1 -1
  196. package/fesm2022/koobiq-components-tree-select.mjs +719 -488
  197. package/fesm2022/koobiq-components-tree-select.mjs.map +1 -1
  198. package/fesm2022/koobiq-components-tree.mjs +1506 -558
  199. package/fesm2022/koobiq-components-tree.mjs.map +1 -1
  200. package/fesm2022/koobiq-components-username.mjs +290 -135
  201. package/fesm2022/koobiq-components-username.mjs.map +1 -1
  202. package/file-upload/dropzone.scss +31 -3
  203. package/file-upload/file-upload-tokens.scss +2 -22
  204. package/file-upload/file-upload.scss +6 -0
  205. package/file-upload/multiple-file-upload.component.scss +14 -12
  206. package/file-upload/single-file-upload.component.scss +3 -2
  207. package/filter-bar/filters.scss +7 -0
  208. package/filter-bar/pipes/base-pipe.scss +3 -3
  209. package/filter-bar/pipes/pipe-date.scss +8 -1
  210. package/flag/flag-tokens.scss +22 -0
  211. package/flag/flag.scss +34 -21
  212. package/form-field/{_fiedset-theme.scss → _fieldset-theme.scss} +1 -5
  213. package/form-field/_form-field-theme.scss +4 -9
  214. package/form-field/cleaner.scss +3 -1
  215. package/form-field/fieldset.scss +3 -4
  216. package/form-field/form-field.scss +26 -21
  217. package/form-field/password-toggle.scss +3 -1
  218. package/icon/_icon-button-theme.scss +7 -0
  219. package/icon/_icon-theme.scss +10 -7
  220. package/icon/icon-button.scss +0 -2
  221. package/icon/icon-tokens.scss +12 -9
  222. package/inline-edit/inline-edit.scss +40 -54
  223. package/input/input.scss +4 -0
  224. package/link/{_link-theme.scss → deprecated/_link-theme.scss} +11 -6
  225. package/link/deprecated/link-tokens.scss +27 -0
  226. package/link/link-tokens.scss +6 -25
  227. package/link/link.scss +137 -0
  228. package/list/list.scss +3 -2
  229. package/loader-overlay/_loader-overlay-theme.scss +19 -10
  230. package/loader-overlay/loader-overlay-tokens.scss +0 -2
  231. package/loader-overlay/loader-overlay.scss +7 -1
  232. package/markdown/_markdown-theme.scss +16 -0
  233. package/markdown/markdown-tokens.scss +5 -0
  234. package/markdown/markdown.scss +2 -1
  235. package/modal/_modal-animation.scss +23 -14
  236. package/modal/modal-tokens.scss +2 -1
  237. package/modal/modal.scss +35 -31
  238. package/navbar/_navbar-item_horizontal.scss +8 -6
  239. package/navbar/_navbar-item_vertical.scss +18 -6
  240. package/navbar/_navbar-theme.scss +9 -1
  241. package/navbar/navbar-brand.scss +8 -6
  242. package/navbar/navbar-divider.scss +1 -1
  243. package/navbar/navbar-item.scss +8 -9
  244. package/navbar/navbar-toggle.scss +3 -3
  245. package/navbar/navbar-tokens.scss +14 -0
  246. package/navbar/navbar.scss +1 -2
  247. package/navbar/vertical-navbar.scss +2 -2
  248. package/notification-center/_notification-center-theme.scss +11 -6
  249. package/notification-center/notification-center-tokens.scss +33 -0
  250. package/notification-center/notification-center.scss +58 -20
  251. package/notification-center/notification-item.scss +15 -6
  252. package/package.json +112 -81
  253. package/popover/popover-tokens.scss +0 -2
  254. package/popover/popover.scss +41 -19
  255. package/prebuilt-themes/theme.css +1 -1
  256. package/progress-bar/_progress-bar-theme.scss +20 -3
  257. package/progress-bar/progress-bar-tokens.scss +3 -0
  258. package/progress-bar/progress-bar.scss +36 -8
  259. package/progress-spinner/progress-spinner.scss +4 -3
  260. package/radio/_radio-theme.scss +21 -4
  261. package/radio/radio-tokens.scss +7 -3
  262. package/radio/radio.scss +55 -8
  263. package/schematics/collection.json +399 -7
  264. package/schematics/migrations/accordion-state-saving-default/README.md +60 -0
  265. package/schematics/migrations/accordion-state-saving-default/data.js +75 -0
  266. package/schematics/migrations/accordion-state-saving-default/index.js +60 -0
  267. package/schematics/migrations/accordion-state-saving-default/schema.json +15 -0
  268. package/schematics/migrations/actions-panel-overlay-container/README.md +35 -0
  269. package/schematics/migrations/actions-panel-overlay-container/data.js +47 -0
  270. package/schematics/migrations/actions-panel-overlay-container/index.js +54 -0
  271. package/schematics/migrations/actions-panel-overlay-container/schema.json +15 -0
  272. package/schematics/migrations/alert-signals/README.md +13 -7
  273. package/schematics/migrations/alert-signals/data.js +3 -0
  274. package/schematics/migrations/alert-signals/index.js +70 -203
  275. package/schematics/migrations/angular-animations-removal/README.md +46 -0
  276. package/schematics/migrations/angular-animations-removal/data.js +150 -0
  277. package/schematics/migrations/angular-animations-removal/index.js +20 -0
  278. package/schematics/migrations/angular-animations-removal/schema.json +15 -0
  279. package/schematics/migrations/app-switcher-signals/README.md +88 -0
  280. package/schematics/migrations/app-switcher-signals/data.js +136 -0
  281. package/schematics/migrations/app-switcher-signals/index.js +365 -0
  282. package/schematics/migrations/app-switcher-signals/schema.json +20 -0
  283. package/schematics/migrations/autocomplete-panel-width-auto/README.md +2 -2
  284. package/schematics/migrations/autocomplete-panel-width-auto/index.js +1 -1
  285. package/schematics/migrations/autocomplete-signals/README.md +92 -0
  286. package/schematics/migrations/autocomplete-signals/data.js +149 -0
  287. package/schematics/migrations/autocomplete-signals/index.js +706 -0
  288. package/schematics/migrations/autocomplete-signals/schema.json +20 -0
  289. package/schematics/migrations/badge-signals/README.md +77 -0
  290. package/schematics/migrations/badge-signals/data.js +109 -0
  291. package/schematics/migrations/badge-signals/index.js +693 -0
  292. package/schematics/migrations/badge-signals/schema.json +20 -0
  293. package/schematics/migrations/button-state-and-styles/README.md +129 -0
  294. package/schematics/migrations/button-state-and-styles/data.js +136 -0
  295. package/schematics/migrations/button-state-and-styles/index.js +220 -0
  296. package/schematics/migrations/button-state-and-styles/schema.json +20 -0
  297. package/schematics/migrations/button-supported-colors/README.md +73 -0
  298. package/schematics/migrations/button-supported-colors/data.js +106 -0
  299. package/schematics/migrations/button-supported-colors/index.js +260 -0
  300. package/schematics/migrations/button-supported-colors/schema.json +20 -0
  301. package/schematics/migrations/button-toggle-signals-and-aria/README.md +137 -0
  302. package/schematics/migrations/button-toggle-signals-and-aria/data.js +200 -0
  303. package/schematics/migrations/button-toggle-signals-and-aria/index.js +496 -0
  304. package/schematics/migrations/button-toggle-signals-and-aria/schema.json +20 -0
  305. package/schematics/migrations/button-truncation/README.md +110 -0
  306. package/schematics/migrations/button-truncation/data.js +88 -0
  307. package/schematics/migrations/button-truncation/index.js +269 -0
  308. package/schematics/migrations/button-truncation/schema.json +20 -0
  309. package/schematics/migrations/checkbox-signals/README.md +76 -0
  310. package/schematics/migrations/checkbox-signals/data.js +114 -0
  311. package/schematics/migrations/checkbox-signals/index.js +634 -0
  312. package/schematics/migrations/checkbox-signals/schema.json +20 -0
  313. package/schematics/migrations/clamped-text-disclosure/README.md +62 -0
  314. package/schematics/migrations/clamped-text-disclosure/data.js +101 -0
  315. package/schematics/migrations/clamped-text-disclosure/index.js +59 -0
  316. package/schematics/migrations/clamped-text-disclosure/schema.json +15 -0
  317. package/schematics/migrations/code-block-signals/README.md +84 -0
  318. package/schematics/migrations/code-block-signals/data.js +121 -0
  319. package/schematics/migrations/code-block-signals/index.js +700 -0
  320. package/schematics/migrations/code-block-signals/schema.json +20 -0
  321. package/schematics/migrations/color-signals/README.md +46 -0
  322. package/schematics/migrations/color-signals/data.js +131 -0
  323. package/schematics/migrations/color-signals/index.js +19 -0
  324. package/schematics/migrations/color-signals/schema.json +20 -0
  325. package/schematics/migrations/core-mixins-removal/README.md +20 -0
  326. package/schematics/migrations/core-mixins-removal/data.js +27 -0
  327. package/schematics/migrations/core-mixins-removal/index.js +17 -0
  328. package/schematics/migrations/core-mixins-removal/schema.json +15 -0
  329. package/schematics/migrations/css-selectors/README.md +2 -2
  330. package/schematics/migrations/css-selectors/index.js +1 -1
  331. package/schematics/migrations/datepicker-signals/README.md +24 -0
  332. package/schematics/migrations/datepicker-signals/data.js +49 -0
  333. package/schematics/migrations/datepicker-signals/index.js +17 -0
  334. package/schematics/migrations/datepicker-signals/schema.json +15 -0
  335. package/schematics/migrations/deprecated-icons/README.md +2 -2
  336. package/schematics/migrations/deprecated-icons/index.js +1 -1
  337. package/schematics/migrations/design-tokens-v4/README.md +75 -0
  338. package/schematics/migrations/design-tokens-v4/index.js +59 -0
  339. package/schematics/migrations/design-tokens-v4/schema.json +15 -0
  340. package/schematics/migrations/divider-signals-and-aria/README.md +47 -0
  341. package/schematics/migrations/divider-signals-and-aria/data.js +62 -0
  342. package/schematics/migrations/divider-signals-and-aria/index.js +211 -0
  343. package/schematics/migrations/divider-signals-and-aria/schema.json +15 -0
  344. package/schematics/migrations/dl-attribute-coercion/README.md +59 -0
  345. package/schematics/migrations/dl-attribute-coercion/data.js +85 -0
  346. package/schematics/migrations/dl-attribute-coercion/index.js +161 -0
  347. package/schematics/migrations/dl-attribute-coercion/schema.json +15 -0
  348. package/schematics/migrations/dl-standalone-names/README.md +49 -0
  349. package/schematics/migrations/dl-standalone-names/data.js +44 -0
  350. package/schematics/migrations/dl-standalone-names/index.js +321 -0
  351. package/schematics/migrations/dl-standalone-names/schema.json +20 -0
  352. package/schematics/migrations/dropdown-demote-overlay/README.md +137 -0
  353. package/schematics/migrations/dropdown-demote-overlay/data.js +84 -0
  354. package/schematics/migrations/dropdown-demote-overlay/index.js +288 -0
  355. package/schematics/migrations/dropdown-demote-overlay/schema.json +20 -0
  356. package/schematics/migrations/dropdown-signals/README.md +83 -0
  357. package/schematics/migrations/dropdown-signals/data.js +152 -0
  358. package/schematics/migrations/dropdown-signals/index.js +19 -0
  359. package/schematics/migrations/dropdown-signals/schema.json +20 -0
  360. package/schematics/migrations/empty-state-error-color/README.md +84 -0
  361. package/schematics/migrations/empty-state-error-color/data.js +85 -0
  362. package/schematics/migrations/empty-state-error-color/index.js +71 -0
  363. package/schematics/migrations/empty-state-error-color/schema.json +15 -0
  364. package/schematics/migrations/empty-state-size-attr/README.md +2 -2
  365. package/schematics/migrations/empty-state-size-attr/index.js +1 -1
  366. package/schematics/migrations/file-upload-cva-and-primitives/README.md +70 -0
  367. package/schematics/migrations/file-upload-cva-and-primitives/data.js +97 -0
  368. package/schematics/migrations/file-upload-cva-and-primitives/index.js +60 -0
  369. package/schematics/migrations/file-upload-cva-and-primitives/schema.json +15 -0
  370. package/schematics/migrations/file-upload-deprecated-outputs/README.md +90 -0
  371. package/schematics/migrations/file-upload-deprecated-outputs/data.js +20 -0
  372. package/schematics/migrations/file-upload-deprecated-outputs/index.js +70 -0
  373. package/schematics/migrations/file-upload-deprecated-outputs/schema.json +20 -0
  374. package/schematics/migrations/filter-bar-rename-action/README.md +183 -0
  375. package/schematics/migrations/filter-bar-rename-action/data.js +151 -0
  376. package/schematics/migrations/filter-bar-rename-action/index.js +177 -0
  377. package/schematics/migrations/filter-bar-rename-action/schema.json +20 -0
  378. package/schematics/migrations/filter-bar-signals/README.md +27 -16
  379. package/schematics/migrations/filter-bar-signals/data.js +1 -2
  380. package/schematics/migrations/filter-bar-signals/index.js +100 -195
  381. package/schematics/migrations/filter-bar-state-saving-default/README.md +53 -0
  382. package/schematics/migrations/filter-bar-state-saving-default/data.js +87 -0
  383. package/schematics/migrations/filter-bar-state-saving-default/index.js +61 -0
  384. package/schematics/migrations/filter-bar-state-saving-default/schema.json +15 -0
  385. package/schematics/migrations/flag-inner-html/README.md +67 -0
  386. package/schematics/migrations/flag-inner-html/data.js +58 -0
  387. package/schematics/migrations/flag-inner-html/index.js +61 -0
  388. package/schematics/migrations/flag-inner-html/schema.json +15 -0
  389. package/schematics/migrations/form-field-signals/README.md +125 -0
  390. package/schematics/migrations/form-field-signals/data.js +288 -0
  391. package/schematics/migrations/form-field-signals/index.js +382 -0
  392. package/schematics/migrations/form-field-signals/schema.json +20 -0
  393. package/schematics/migrations/icon-semantics-and-api/README.md +65 -0
  394. package/schematics/migrations/icon-semantics-and-api/data.js +97 -0
  395. package/schematics/migrations/icon-semantics-and-api/index.js +64 -0
  396. package/schematics/migrations/icon-semantics-and-api/schema.json +15 -0
  397. package/schematics/migrations/icons-replacement/README.md +5 -5
  398. package/schematics/migrations/icons-replacement/index.js +1 -1
  399. package/schematics/migrations/inline-edit-a11y-and-types/README.md +82 -0
  400. package/schematics/migrations/inline-edit-a11y-and-types/data.js +117 -0
  401. package/schematics/migrations/inline-edit-a11y-and-types/index.js +97 -0
  402. package/schematics/migrations/inline-edit-a11y-and-types/schema.json +20 -0
  403. package/schematics/migrations/input-number-surface/README.md +140 -0
  404. package/schematics/migrations/input-number-surface/data.js +135 -0
  405. package/schematics/migrations/input-number-surface/index.js +292 -0
  406. package/schematics/migrations/input-number-surface/schema.json +20 -0
  407. package/schematics/migrations/input-signals/README.md +20 -0
  408. package/schematics/migrations/input-signals/data.js +30 -0
  409. package/schematics/migrations/input-signals/index.js +17 -0
  410. package/schematics/migrations/input-signals/schema.json +15 -0
  411. package/schematics/migrations/link-deprecated-path/README.md +144 -0
  412. package/schematics/migrations/link-deprecated-path/index.js +19 -0
  413. package/schematics/migrations/link-deprecated-path/schema.json +20 -0
  414. package/schematics/migrations/link-signals/README.md +71 -0
  415. package/schematics/migrations/link-signals/data.js +116 -0
  416. package/schematics/migrations/link-signals/index.js +415 -0
  417. package/schematics/migrations/link-signals/schema.json +20 -0
  418. package/schematics/migrations/list-signals/README.md +22 -0
  419. package/schematics/migrations/list-signals/data.js +35 -0
  420. package/schematics/migrations/list-signals/index.js +17 -0
  421. package/schematics/migrations/list-signals/schema.json +15 -0
  422. package/schematics/migrations/list-tree-multiple-input/README.md +105 -0
  423. package/schematics/migrations/list-tree-multiple-input/data.js +74 -0
  424. package/schematics/migrations/list-tree-multiple-input/index.js +221 -0
  425. package/schematics/migrations/list-tree-multiple-input/schema.json +20 -0
  426. package/schematics/migrations/loader-overlay-signals/README.md +62 -0
  427. package/schematics/migrations/loader-overlay-signals/data.js +101 -0
  428. package/schematics/migrations/loader-overlay-signals/index.js +697 -0
  429. package/schematics/migrations/loader-overlay-signals/schema.json +20 -0
  430. package/schematics/migrations/loader-overlay-size-attr/README.md +2 -2
  431. package/schematics/migrations/loader-overlay-size-attr/index.js +1 -1
  432. package/schematics/migrations/locale-configuration-providers/README.md +163 -0
  433. package/schematics/migrations/locale-configuration-providers/data.js +257 -0
  434. package/schematics/migrations/locale-configuration-providers/index.js +294 -0
  435. package/schematics/migrations/locale-configuration-providers/schema.json +20 -0
  436. package/schematics/migrations/mandatory-peer-dependencies/README.md +70 -0
  437. package/schematics/migrations/mandatory-peer-dependencies/index.js +42 -0
  438. package/schematics/migrations/mandatory-peer-dependencies/schema.json +15 -0
  439. package/schematics/migrations/markdown-signals/README.md +58 -0
  440. package/schematics/migrations/markdown-signals/data.js +79 -0
  441. package/schematics/migrations/markdown-signals/index.js +639 -0
  442. package/schematics/migrations/markdown-signals/schema.json +20 -0
  443. package/schematics/migrations/modal-dialog-semantics/README.md +106 -0
  444. package/schematics/migrations/modal-dialog-semantics/data.js +110 -0
  445. package/schematics/migrations/modal-dialog-semantics/index.js +58 -0
  446. package/schematics/migrations/modal-dialog-semantics/schema.json +15 -0
  447. package/schematics/migrations/modal-signals/README.md +88 -0
  448. package/schematics/migrations/modal-signals/data.js +132 -0
  449. package/schematics/migrations/modal-signals/index.js +19 -0
  450. package/schematics/migrations/modal-signals/schema.json +20 -0
  451. package/schematics/migrations/navbar-signals-and-aria/README.md +111 -0
  452. package/schematics/migrations/navbar-signals-and-aria/data.js +198 -0
  453. package/schematics/migrations/navbar-signals-and-aria/index.js +568 -0
  454. package/schematics/migrations/navbar-signals-and-aria/schema.json +20 -0
  455. package/schematics/migrations/new-icons-pack/README.md +10 -10
  456. package/schematics/migrations/new-icons-pack/index.js +1 -1
  457. package/schematics/migrations/notification-center-signals/README.md +67 -0
  458. package/schematics/migrations/notification-center-signals/data.js +66 -0
  459. package/schematics/migrations/notification-center-signals/index.js +61 -0
  460. package/schematics/migrations/notification-center-signals/schema.json +15 -0
  461. package/schematics/migrations/option-signals/README.md +37 -0
  462. package/schematics/migrations/option-signals/data.js +86 -0
  463. package/schematics/migrations/option-signals/index.js +19 -0
  464. package/schematics/migrations/option-signals/schema.json +20 -0
  465. package/schematics/migrations/popover-leave-delay/README.md +51 -0
  466. package/schematics/migrations/popover-leave-delay/data.js +61 -0
  467. package/schematics/migrations/popover-leave-delay/index.js +54 -0
  468. package/schematics/migrations/popover-leave-delay/schema.json +15 -0
  469. package/schematics/migrations/progress-bar-percentage-and-aria/README.md +54 -0
  470. package/schematics/migrations/progress-bar-percentage-and-aria/data.js +76 -0
  471. package/schematics/migrations/progress-bar-percentage-and-aria/index.js +58 -0
  472. package/schematics/migrations/progress-bar-percentage-and-aria/schema.json +15 -0
  473. package/schematics/migrations/progress-spinner-signals/README.md +72 -0
  474. package/schematics/migrations/progress-spinner-signals/data.js +83 -0
  475. package/schematics/migrations/progress-spinner-signals/index.js +694 -0
  476. package/schematics/migrations/progress-spinner-signals/schema.json +20 -0
  477. package/schematics/migrations/query-list-signals/README.md +32 -0
  478. package/schematics/migrations/query-list-signals/data.js +70 -0
  479. package/schematics/migrations/query-list-signals/index.js +17 -0
  480. package/schematics/migrations/query-list-signals/schema.json +15 -0
  481. package/schematics/migrations/radio-signals-and-aria/README.md +82 -0
  482. package/schematics/migrations/radio-signals-and-aria/data.js +163 -0
  483. package/schematics/migrations/radio-signals-and-aria/index.js +39 -0
  484. package/schematics/migrations/radio-signals-and-aria/schema.json +20 -0
  485. package/schematics/migrations/read-state-dwell-handlers/README.md +125 -0
  486. package/schematics/migrations/read-state-dwell-handlers/data.js +45 -0
  487. package/schematics/migrations/read-state-dwell-handlers/index.js +215 -0
  488. package/schematics/migrations/read-state-dwell-handlers/schema.json +20 -0
  489. package/schematics/migrations/scrollbar-deprecated-path/README.md +128 -0
  490. package/schematics/migrations/scrollbar-deprecated-path/index.js +20 -0
  491. package/schematics/migrations/scrollbar-deprecated-path/schema.json +20 -0
  492. package/schematics/migrations/select-signal-inputs/README.md +61 -0
  493. package/schematics/migrations/select-signal-inputs/data.js +99 -0
  494. package/schematics/migrations/select-signal-inputs/index.js +57 -0
  495. package/schematics/migrations/select-signal-inputs/schema.json +15 -0
  496. package/schematics/migrations/sidepanel-non-modal-behavior/README.md +57 -0
  497. package/schematics/migrations/sidepanel-non-modal-behavior/data.js +111 -0
  498. package/schematics/migrations/sidepanel-non-modal-behavior/index.js +57 -0
  499. package/schematics/migrations/sidepanel-non-modal-behavior/schema.json +15 -0
  500. package/schematics/migrations/signal-inputs-subclasses/README.md +28 -0
  501. package/schematics/migrations/signal-inputs-subclasses/data.js +69 -0
  502. package/schematics/migrations/signal-inputs-subclasses/index.js +17 -0
  503. package/schematics/migrations/signal-inputs-subclasses/schema.json +15 -0
  504. package/schematics/migrations/split-button-optional-disabled/README.md +47 -0
  505. package/schematics/migrations/split-button-optional-disabled/data.js +53 -0
  506. package/schematics/migrations/split-button-optional-disabled/index.js +57 -0
  507. package/schematics/migrations/split-button-optional-disabled/schema.json +15 -0
  508. package/schematics/migrations/splitter-deprecated-path/README.md +136 -0
  509. package/schematics/migrations/splitter-deprecated-path/index.js +20 -0
  510. package/schematics/migrations/splitter-deprecated-path/schema.json +20 -0
  511. package/schematics/migrations/state-saving-default/README.md +67 -0
  512. package/schematics/migrations/state-saving-default/data.js +88 -0
  513. package/schematics/migrations/state-saving-default/index.js +62 -0
  514. package/schematics/migrations/state-saving-default/schema.json +15 -0
  515. package/schematics/migrations/table-cell-content/README.md +55 -0
  516. package/schematics/migrations/table-cell-content/data.js +66 -0
  517. package/schematics/migrations/table-cell-content/index.js +66 -0
  518. package/schematics/migrations/table-cell-content/schema.json +15 -0
  519. package/schematics/migrations/tabs-signals-and-aria/README.md +93 -0
  520. package/schematics/migrations/tabs-signals-and-aria/data.js +139 -0
  521. package/schematics/migrations/tabs-signals-and-aria/index.js +65 -0
  522. package/schematics/migrations/tabs-signals-and-aria/schema.json +15 -0
  523. package/schematics/migrations/tag-list-cleaner/README.md +58 -0
  524. package/schematics/migrations/tag-list-cleaner/data.js +42 -0
  525. package/schematics/migrations/tag-list-cleaner/index.js +196 -0
  526. package/schematics/migrations/tag-list-cleaner/schema.json +20 -0
  527. package/schematics/migrations/tag-slots/README.md +41 -0
  528. package/schematics/migrations/tag-slots/index.js +190 -0
  529. package/schematics/migrations/tag-slots/schema.json +20 -0
  530. package/schematics/migrations/tags-signals/README.md +85 -0
  531. package/schematics/migrations/tags-signals/data.js +103 -0
  532. package/schematics/migrations/tags-signals/index.js +673 -0
  533. package/schematics/migrations/tags-signals/schema.json +20 -0
  534. package/schematics/migrations/textarea-signals/README.md +72 -0
  535. package/schematics/migrations/textarea-signals/data.js +121 -0
  536. package/schematics/migrations/textarea-signals/index.js +379 -0
  537. package/schematics/migrations/textarea-signals/schema.json +20 -0
  538. package/schematics/migrations/time-range-title-for/README.md +164 -0
  539. package/schematics/migrations/time-range-title-for/data.js +139 -0
  540. package/schematics/migrations/time-range-title-for/index.js +163 -0
  541. package/schematics/migrations/time-range-title-for/schema.json +20 -0
  542. package/schematics/migrations/timepicker-signals/README.md +78 -0
  543. package/schematics/migrations/timepicker-signals/data.js +82 -0
  544. package/schematics/migrations/timepicker-signals/index.js +709 -0
  545. package/schematics/migrations/timepicker-signals/schema.json +20 -0
  546. package/schematics/migrations/timezone-grouping-utils/README.md +73 -0
  547. package/schematics/migrations/timezone-grouping-utils/data.js +101 -0
  548. package/schematics/migrations/timezone-grouping-utils/index.js +64 -0
  549. package/schematics/migrations/timezone-grouping-utils/schema.json +15 -0
  550. package/schematics/migrations/title-encapsulation/README.md +49 -0
  551. package/schematics/migrations/title-encapsulation/data.js +69 -0
  552. package/schematics/migrations/title-encapsulation/index.js +57 -0
  553. package/schematics/migrations/title-encapsulation/schema.json +15 -0
  554. package/schematics/migrations/toast-stack-and-defaults/README.md +102 -0
  555. package/schematics/migrations/toast-stack-and-defaults/data.js +79 -0
  556. package/schematics/migrations/toast-stack-and-defaults/index.js +53 -0
  557. package/schematics/migrations/toast-stack-and-defaults/schema.json +15 -0
  558. package/schematics/migrations/tooltip-pointer-events-and-types/README.md +53 -0
  559. package/schematics/migrations/tooltip-pointer-events-and-types/data.js +89 -0
  560. package/schematics/migrations/tooltip-pointer-events-and-types/index.js +60 -0
  561. package/schematics/migrations/tooltip-pointer-events-and-types/schema.json +15 -0
  562. package/schematics/migrations/top-bar-container-selectors/README.md +111 -0
  563. package/schematics/migrations/top-bar-container-selectors/data.js +56 -0
  564. package/schematics/migrations/top-bar-container-selectors/index.js +84 -0
  565. package/schematics/migrations/top-bar-container-selectors/schema.json +20 -0
  566. package/schematics/migrations/tree-select-signals/README.md +61 -0
  567. package/schematics/migrations/tree-select-signals/data.js +106 -0
  568. package/schematics/migrations/tree-select-signals/index.js +58 -0
  569. package/schematics/migrations/tree-select-signals/schema.json +15 -0
  570. package/schematics/migrations/tree-signals/README.md +82 -0
  571. package/schematics/migrations/tree-signals/data.js +123 -0
  572. package/schematics/migrations/tree-signals/index.js +54 -0
  573. package/schematics/migrations/tree-signals/schema.json +15 -0
  574. package/schematics/migrations/tree-state-saving-default/README.md +66 -0
  575. package/schematics/migrations/tree-state-saving-default/data.js +78 -0
  576. package/schematics/migrations/tree-state-saving-default/index.js +60 -0
  577. package/schematics/migrations/tree-state-saving-default/schema.json +15 -0
  578. package/schematics/migrations/username-pipe-injection/README.md +59 -0
  579. package/schematics/migrations/username-pipe-injection/data.js +78 -0
  580. package/schematics/migrations/username-pipe-injection/index.js +58 -0
  581. package/schematics/migrations/username-pipe-injection/schema.json +15 -0
  582. package/schematics/migrations/v20-upgrade/README.md +36 -16
  583. package/schematics/migrations/v20-upgrade/data.js +124 -77
  584. package/schematics/migrations/v20-upgrade/index.js +6 -213
  585. package/schematics/migrations/v21-upgrade/README.md +271 -0
  586. package/schematics/migrations/v21-upgrade/data.js +1371 -0
  587. package/schematics/migrations/v21-upgrade/index.js +94 -0
  588. package/schematics/migrations/v21-upgrade/schema.json +20 -0
  589. package/schematics/migrations/zoneless-change-detection/README.md +30 -0
  590. package/schematics/migrations/zoneless-change-detection/data.js +29 -0
  591. package/schematics/migrations/zoneless-change-detection/index.js +20 -0
  592. package/schematics/migrations/zoneless-change-detection/schema.json +15 -0
  593. package/schematics/migrations.json +392 -2
  594. package/schematics/ng-add/index.js +515 -14
  595. package/schematics/ng-add/schema.json +15 -0
  596. package/schematics/utils/deprecated-path-migration.js +61 -0
  597. package/schematics/utils/package-config.js +9 -105
  598. package/scrollbar/{_scrollbar-component-theme.scss → deprecated/_scrollbar-component-theme.scss} +1 -1
  599. package/scrollbar/{scrollbar.component.scss → deprecated/scrollbar.component.scss} +1 -1
  600. package/scrollbar/native-scrollbar.scss +68 -0
  601. package/scrollbar/scrollbar-tokens.scss +13 -22
  602. package/scrollbar/scrollbar-track.scss +94 -0
  603. package/scrollbar/scrollbar-viewport.scss +33 -0
  604. package/scrollbar/scrollbar.scss +24 -0
  605. package/search-expandable/search-expandable-tokens.scss +4 -0
  606. package/search-expandable/search-expandable.scss +4 -2
  607. package/select/_select-theme.scss +3 -16
  608. package/select/select.scss +0 -6
  609. package/sidebar/sidebar.scss +20 -0
  610. package/sidepanel/_sidepanel-theme.scss +1 -1
  611. package/sidepanel/sidepanel-tokens.scss +7 -1
  612. package/sidepanel/sidepanel.scss +41 -5
  613. package/skeleton/skeleton-presets.scss +350 -0
  614. package/skeleton/skeleton-tokens.scss +127 -0
  615. package/skeleton/skeleton.scss +53 -45
  616. package/split-button/_split-button-theme.scss +4 -4
  617. package/split-button/split-button.scss +2 -6
  618. package/splitter/{_splitter-theme.scss → deprecated/_splitter-theme.scss} +1 -1
  619. package/splitter/deprecated/splitter.scss +51 -0
  620. package/splitter/splitter-tokens.scss +19 -0
  621. package/splitter/splitter.scss +148 -28
  622. package/table/_table-theme.scss +13 -12
  623. package/table/table-tokens.scss +8 -0
  624. package/table/table.scss +47 -22
  625. package/tabs/_tabs-common.scss +14 -14
  626. package/tabs/_tabs-theme.scss +4 -5
  627. package/tabs/tab-body.scss +49 -1
  628. package/tabs/tab-header.scss +2 -1
  629. package/tags/tag-list.scss +4 -0
  630. package/tags/tag.scss +19 -1
  631. package/time-range/time-range.scss +9 -0
  632. package/timezone/timezone-option.component.scss +4 -7
  633. package/timezone/timezone-select.component.scss +3 -0
  634. package/toast/_toast-theme.scss +1 -4
  635. package/toast/toast-container.component.scss +19 -13
  636. package/toast/toast-tokens.scss +12 -6
  637. package/toast/toast.component.scss +42 -19
  638. package/toggle/_toggle-theme.scss +4 -10
  639. package/toggle/toggle.scss +67 -26
  640. package/tooltip/_tooltip-theme.scss +7 -1
  641. package/tooltip/tooltip-tokens.scss +1 -2
  642. package/tooltip/tooltip.scss +55 -9
  643. package/top-bar/top-bar-tokens.scss +13 -2
  644. package/top-bar/top-bar.scss +24 -19
  645. package/tree/_tree-theme.scss +0 -1
  646. package/tree/toggle.scss +5 -9
  647. package/tree/tree-option.scss +2 -4
  648. package/tree/tree-tokens.scss +2 -1
  649. package/tree/tree.scss +3 -5
  650. package/tree-select/_tree-select-theme.scss +4 -15
  651. package/tree-select/tree-select-tokens.scss +16 -0
  652. package/tree-select/tree-select.scss +0 -6
  653. package/{accordion/index.d.ts → types/koobiq-components-accordion.d.ts} +102 -84
  654. package/{actions-panel/index.d.ts → types/koobiq-components-actions-panel.d.ts} +44 -59
  655. package/{alert/index.d.ts → types/koobiq-components-alert.d.ts} +8 -3
  656. package/types/koobiq-components-app-switcher.d.ts +406 -0
  657. package/types/koobiq-components-autocomplete.d.ts +443 -0
  658. package/{badge/index.d.ts → types/koobiq-components-badge.d.ts} +25 -20
  659. package/{breadcrumbs/index.d.ts → types/koobiq-components-breadcrumbs.d.ts} +97 -46
  660. package/types/koobiq-components-button-toggle.d.ts +340 -0
  661. package/types/koobiq-components-button.d.ts +296 -0
  662. package/types/koobiq-components-checkbox.d.ts +172 -0
  663. package/types/koobiq-components-clamped-text.d.ts +184 -0
  664. package/{code-block/index.d.ts → types/koobiq-components-code-block.d.ts} +114 -79
  665. package/{content-panel/index.d.ts → types/koobiq-components-content-panel.d.ts} +81 -25
  666. package/{core/index.d.ts → types/koobiq-components-core.d.ts} +2827 -865
  667. package/{datepicker/index.d.ts → types/koobiq-components-datepicker.d.ts} +161 -116
  668. package/types/koobiq-components-divider.d.ts +43 -0
  669. package/types/koobiq-components-dl.d.ts +235 -0
  670. package/{dropdown/index.d.ts → types/koobiq-components-dropdown.d.ts} +245 -239
  671. package/types/koobiq-components-ellipsis-center.d.ts +85 -0
  672. package/types/koobiq-components-empty-state.d.ts +106 -0
  673. package/{file-upload/index.d.ts → types/koobiq-components-file-upload.d.ts} +214 -107
  674. package/{filter-bar/index.d.ts → types/koobiq-components-filter-bar.d.ts} +410 -495
  675. package/types/koobiq-components-flag.d.ts +68 -0
  676. package/{form-field/index.d.ts → types/koobiq-components-form-field.d.ts} +167 -191
  677. package/types/koobiq-components-icon.d.ts +333 -0
  678. package/{inline-edit/index.d.ts → types/koobiq-components-inline-edit.d.ts} +109 -46
  679. package/types/koobiq-components-input.d.ts +477 -0
  680. package/types/koobiq-components-link-deprecated.d.ts +101 -0
  681. package/types/koobiq-components-link.d.ts +176 -0
  682. package/{list/index.d.ts → types/koobiq-components-list.d.ts} +162 -99
  683. package/types/koobiq-components-loader-overlay.d.ts +101 -0
  684. package/{markdown/index.d.ts → types/koobiq-components-markdown.d.ts} +16 -24
  685. package/types/koobiq-components-modal.d.ts +666 -0
  686. package/types/koobiq-components-navbar.d.ts +569 -0
  687. package/types/koobiq-components-notification-center.d.ts +500 -0
  688. package/{overflow-items/index.d.ts → types/koobiq-components-overflow-items.d.ts} +8 -22
  689. package/types/koobiq-components-popover.d.ts +468 -0
  690. package/types/koobiq-components-progress-bar.d.ts +67 -0
  691. package/{progress-spinner/index.d.ts → types/koobiq-components-progress-spinner.d.ts} +33 -10
  692. package/types/koobiq-components-radio.d.ts +294 -0
  693. package/{resizer/index.d.ts → types/koobiq-components-resizer.d.ts} +37 -2
  694. package/{scrollbar/index.d.ts → types/koobiq-components-scrollbar-deprecated.d.ts} +18 -1
  695. package/types/koobiq-components-scrollbar.d.ts +154 -0
  696. package/types/koobiq-components-search-expandable.d.ts +164 -0
  697. package/{select/index.d.ts → types/koobiq-components-select.d.ts} +360 -167
  698. package/types/koobiq-components-sidebar.d.ts +152 -0
  699. package/types/koobiq-components-sidepanel.d.ts +436 -0
  700. package/types/koobiq-components-skeleton.d.ts +234 -0
  701. package/types/koobiq-components-split-button.d.ts +65 -0
  702. package/{splitter/index.d.ts → types/koobiq-components-splitter-deprecated.d.ts} +44 -1
  703. package/types/koobiq-components-splitter.d.ts +406 -0
  704. package/types/koobiq-components-table.d.ts +44 -0
  705. package/types/koobiq-components-tabs.d.ts +888 -0
  706. package/{tags/index.d.ts → types/koobiq-components-tags.d.ts} +249 -133
  707. package/types/koobiq-components-textarea.d.ts +178 -0
  708. package/{time-range/index.d.ts → types/koobiq-components-time-range.d.ts} +135 -62
  709. package/types/koobiq-components-timepicker.d.ts +223 -0
  710. package/types/koobiq-components-timezone.d.ts +266 -0
  711. package/types/koobiq-components-title.d.ts +184 -0
  712. package/types/koobiq-components-toast.d.ts +289 -0
  713. package/types/koobiq-components-toggle.d.ts +121 -0
  714. package/types/koobiq-components-tooltip.d.ts +610 -0
  715. package/types/koobiq-components-top-bar.d.ts +61 -0
  716. package/types/koobiq-components-tree-select.d.ts +667 -0
  717. package/types/koobiq-components-tree.d.ts +1290 -0
  718. package/types/koobiq-components-username.d.ts +340 -0
  719. package/username/_username-theme.scss +35 -0
  720. package/username/username.scss +10 -34
  721. package/app-switcher/index.d.ts +0 -276
  722. package/autocomplete/index.d.ts +0 -286
  723. package/button/index.d.ts +0 -153
  724. package/button-toggle/index.d.ts +0 -162
  725. package/checkbox/index.d.ts +0 -163
  726. package/clamped-text/index.d.ts +0 -146
  727. package/core/styles/_tokens.scss +0 -7
  728. package/core/styles/common/_clearfix.scss +0 -13
  729. package/core/styles/common/_popup.scss +0 -6
  730. package/core/styles/functions/_index.scss +0 -3
  731. package/core/styles/functions/_number.scss +0 -60
  732. package/core/styles/functions/_string.scss +0 -18
  733. package/core/styles/theming/scrollbar-tokens.scss +0 -25
  734. package/core/styles/typography/_typography-utils.scss +0 -84
  735. package/divider/index.d.ts +0 -20
  736. package/dl/index.d.ts +0 -45
  737. package/ellipsis-center/index.d.ts +0 -71
  738. package/empty-state/index.d.ts +0 -45
  739. package/flag/index.d.ts +0 -44
  740. package/icon/index.d.ts +0 -200
  741. package/input/index.d.ts +0 -354
  742. package/link/index.d.ts +0 -56
  743. package/loader-overlay/index.d.ts +0 -57
  744. package/modal/index.d.ts +0 -339
  745. package/navbar/index.d.ts +0 -372
  746. package/notification-center/index.d.ts +0 -323
  747. package/popover/index.d.ts +0 -182
  748. package/prebuilt-themes/dark-theme.css +0 -1
  749. package/prebuilt-themes/light-theme.css +0 -1
  750. package/progress-bar/index.d.ts +0 -31
  751. package/radio/index.d.ts +0 -203
  752. package/search-expandable/index.d.ts +0 -101
  753. package/sidebar/index.d.ts +0 -94
  754. package/sidepanel/index.d.ts +0 -272
  755. package/skeleton/index.d.ts +0 -26
  756. package/split-button/index.d.ts +0 -46
  757. package/table/index.d.ts +0 -25
  758. package/tabs/index.d.ts +0 -677
  759. package/textarea/index.d.ts +0 -138
  760. package/timepicker/index.d.ts +0 -197
  761. package/timezone/index.d.ts +0 -125
  762. package/title/index.d.ts +0 -139
  763. package/toast/index.d.ts +0 -187
  764. package/toggle/index.d.ts +0 -104
  765. package/tooltip/index.d.ts +0 -335
  766. package/top-bar/index.d.ts +0 -33
  767. package/tree/index.d.ts +0 -802
  768. package/tree-select/index.d.ts +0 -475
  769. package/username/index.d.ts +0 -194
  770. /package/{dynamic-translation/index.d.ts → types/koobiq-components-dynamic-translation.d.ts} +0 -0
  771. /package/{index.d.ts → types/koobiq-components.d.ts} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"koobiq-components-accordion.mjs","sources":["../../../packages/components/accordion/accordion-content.directive.ts","../../../packages/components/accordion/accordion-trigger.directive.ts","../../../packages/components/accordion/accordion-trigger.ts","../../../packages/components/accordion/accordion-item.ts","../../../packages/components/accordion/accordion-state-store.ts","../../../packages/components/accordion/accordion.ts","../../../packages/components/accordion/accordion-content.ts","../../../packages/components/accordion/accordion-header.ts","../../../packages/components/accordion/accordion.module.ts","../../../packages/components/accordion/koobiq-components-accordion.ts"],"sourcesContent":["import { Platform } from '@angular/cdk/platform';\nimport {\n afterNextRender,\n AfterViewInit,\n Directive,\n DoCheck,\n inject,\n Injector,\n OnInit,\n Renderer2,\n RendererStyleFlags2,\n signal\n} from '@angular/core';\nimport { kbqInjectNativeElement } from '@koobiq/components/core';\nimport { KbqAccordionItem } from './accordion-item';\n\nconst CONTENT_HEIGHT = '--kbq-accordion-content-height';\n\n@Directive({\n selector: '[kbqAccordionContent]',\n host: {\n '[attr.id]': 'contentId',\n '[attr.role]': '\"region\"',\n '[attr.hidden]': 'hidden() ? \"\" : null',\n // `hidden` alone does not take the collapsed content out of the tab order: the host keeps an\n // explicit `display: block` so the height can animate, which overrides `[hidden]`'s\n // `display: none`. Without `inert`, every control inside a closed section stays focusable in\n // a zero-height, clipped box.\n '[attr.inert]': 'hidden() ? \"\" : null',\n '[attr.aria-labelledby]': 'triggerId',\n\n '[attr.data-state]': 'item.dataState',\n '[attr.data-disabled]': 'item.disabled',\n '[attr.data-orientation]': 'item.orientation',\n\n '(transitionend)': 'onTransitionEnd($event)',\n '(transitioncancel)': 'onTransitionEnd($event)'\n },\n exportAs: 'kbqAccordionContent'\n})\nexport class KbqAccordionContentDirective implements OnInit, DoCheck, AfterViewInit {\n private readonly renderer: Renderer2 = inject(Renderer2);\n private readonly platform = inject(Platform);\n private readonly injector = inject(Injector);\n\n /** @docs-private */\n protected readonly nativeElement = kbqInjectNativeElement();\n /** @docs-private */\n protected readonly item = inject(KbqAccordionItem);\n\n /** @docs-private */\n get contentId(): string {\n return `${this.item.id}-content`;\n }\n\n /** @docs-private */\n get triggerId(): string {\n return `${this.item.id}-trigger`;\n }\n\n /** @docs-private */\n protected readonly hidden = signal<boolean>(true);\n\n private savedTransition: string;\n\n /** Whether the first browser render has happened; until then a toggle only sets the initial state. */\n private rendered = false;\n\n constructor() {\n // `afterNextRender` never runs on the server, so no platform check is needed here.\n afterNextRender(() => {\n this.rendered = true;\n\n this.enableAnimation();\n });\n }\n\n ngOnInit(): void {\n // Content the item's `toggle()` cannot have reached yet: created after the item initialized (inside\n // `@if` or `@defer`), or outside the item's own template.\n this.toggle();\n }\n\n ngDoCheck(): void {\n // The item cannot reach content declared in a child component's template to toggle it.\n if (this.hidden() === this.item.expanded) {\n this.toggle();\n }\n }\n\n ngAfterViewInit(): void {\n // Skipped on the server: the write would reach the prerendered `style` attribute, and hydration\n // reuses that node, so the client would read `none` back as the transition worth restoring and\n // `enableAnimation()` would make it permanent. There is nothing to suppress without a paint.\n if (!this.platform.isBrowser) return;\n\n this.disableAnimation();\n }\n\n toggle() {\n if (this.rendered) {\n this.pinHeight();\n }\n\n this.hidden.set(!this.item.expanded);\n }\n\n /** @docs-private */\n protected onTransitionEnd(event: TransitionEvent): void {\n // Transitions of the projected content and of pseudo-elements bubble up here as well.\n if (event.target !== this.nativeElement || event.propertyName !== 'height' || event.pseudoElement) return;\n\n // The transition that ended or was cancelled may already be replaced by one that still needs the pin.\n if (!this.isHeightTransitionRunning()) {\n this.releaseHeight();\n }\n }\n\n disableAnimation() {\n this.savedTransition = this.nativeElement.style.transition;\n\n this.nativeElement.style.transition = 'none';\n }\n\n enableAnimation() {\n this.nativeElement.style.transition = this.savedTransition;\n }\n\n /**\n * Pins the height the transition runs between: the natural height of the content when expanding,\n * the current one when collapsing. The pin is released once the transition ends, so expanded\n * content keeps `height: auto` and follows its own size — its container can be laid out later\n * (a content panel, an overlay) or resized, and nested items can toggle.\n *\n * `scrollHeight` reports the natural height even while the `overflow: hidden` host is collapsed.\n */\n private pinHeight(): void {\n const element = this.nativeElement;\n\n // No transition would release the pin.\n if (element.style.transition === 'none') {\n this.releaseHeight();\n\n return;\n }\n\n const expanded = this.item.expanded;\n const current = element.offsetHeight;\n const target = expanded ? element.scrollHeight : 0;\n\n // Nothing to animate: no box yet (e.g. in a closed content panel), or already there.\n if (current === target) {\n this.releaseHeight();\n\n return;\n }\n\n this.setHeight(expanded ? target : current);\n\n // A collapse starts from `auto`, which does not transition: commit the pinned height before\n // `data-state` flips.\n if (!expanded) {\n element.getBoundingClientRect();\n }\n\n afterNextRender(() => this.settleHeight(), { injector: this.injector });\n }\n\n /** Checks the pin once `data-state` has flipped. */\n private settleHeight(): void {\n const running = this.isHeightTransitionRunning();\n\n if (running === false) {\n // Transitions are off (a stylesheet, reduced motion), so no `transitionend` will release the pin.\n this.releaseHeight();\n } else if (this.item.expanded) {\n // Content rendered by the flip itself (`@if`, `@defer`) was not there to measure: retarget.\n this.setHeight(this.nativeElement.scrollHeight);\n }\n }\n\n /** Whether a height transition runs on the host; `undefined` without the Web Animations API. */\n private isHeightTransitionRunning(): boolean | undefined {\n return this.nativeElement\n .getAnimations?.()\n .some((animation) => (animation as CSSTransition).transitionProperty === 'height');\n }\n\n private setHeight(height: number): void {\n this.renderer.setStyle(this.nativeElement, CONTENT_HEIGHT, `${height}px`, RendererStyleFlags2.DashCase);\n }\n\n private releaseHeight(): void {\n this.renderer.removeStyle(this.nativeElement, CONTENT_HEIGHT, RendererStyleFlags2.DashCase);\n }\n}\n","import { Directive, inject } from '@angular/core';\nimport { kbqInjectNativeElement } from '@koobiq/components/core';\nimport { KbqAccordion } from './accordion';\nimport { KbqAccordionItem } from './accordion-item';\n\n@Directive({\n selector: '[kbqAccordionTrigger]',\n host: {\n '[attr.id]': 'triggerId',\n '[attr.role]': '\"button\"',\n '[attr.aria-expanded]': 'item.expanded',\n '[attr.aria-controls]': 'contentId',\n '[attr.aria-disabled]': 'item.disabled',\n '[attr.data-state]': 'item.dataState',\n '[attr.data-disabled]': 'item.disabled',\n '[attr.data-orientation]': 'item.orientation',\n '(click)': 'onClick()',\n '(focus)': 'onFocus()',\n '(keydown)': 'onKeydown($event)'\n }\n})\nexport class KbqAccordionTriggerDirective {\n /** @docs-private */\n protected readonly nativeElement = kbqInjectNativeElement();\n /** @docs-private */\n protected readonly accordion = inject(KbqAccordion);\n /** @docs-private */\n protected readonly item = inject(KbqAccordionItem);\n\n /** @docs-private */\n get triggerId(): string {\n return `${this.item.id}-trigger`;\n }\n\n /** @docs-private */\n get contentId(): string {\n return `${this.item.id}-content`;\n }\n\n /** Fires when trigger clicked */\n onClick(): void {\n if (!this.accordion.collapsible() && this.item.expanded) return;\n\n this.item.toggle();\n\n this.accordion.setActiveItem(this.item);\n }\n\n /**\n * Keeps the accordion's key manager in sync with native focus so that arrow-key navigation\n * continues from the header the user has just tabbed/focused into.\n * @docs-private\n */\n onFocus(): void {\n this.accordion.setActiveItem(this.item);\n }\n\n /**\n * Routes keyboard interaction to the accordion, but only while the trigger itself is focused.\n *\n * A `keydown` targets the focused element, so header actions placed next to the trigger and\n * controls inside the expanded content keep their own keys — the accordion no longer toggles the\n * section on Enter/Space nor moves focus to another header on the arrow keys. The `target` check\n * additionally covers focusable content mistakenly nested inside the trigger.\n */\n onKeydown(event: KeyboardEvent): void {\n if (event.target !== this.nativeElement) return;\n\n // The key manager can lag behind when focus was moved programmatically rather than by the\n // user, in which case `onFocus` never ran.\n this.accordion.setActiveItem(this.item);\n\n this.accordion.keydownHandler(event);\n }\n\n /** @docs-private */\n focus() {\n this.nativeElement.focus();\n }\n}\n","import { Platform } from '@angular/cdk/platform';\nimport {\n afterNextRender,\n AfterRenderRef,\n AfterViewInit,\n Component,\n inject,\n OnDestroy,\n viewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { kbqInjectNativeElement } from '@koobiq/components/core';\nimport { KbqIcon } from '@koobiq/components/icon';\nimport { KbqAccordion } from './accordion';\nimport { KbqAccordionTriggerDirective } from './accordion-trigger.directive';\n\n@Component({\n selector: 'kbq-accordion-trigger, [kbq-accordion-trigger]',\n imports: [KbqIcon],\n template: `\n <i\n kbq-icon=\"{{ isHugSpaceBetween ? 'kbq-chevron-down-s_16' : 'kbq-chevron-right-s_16' }}\"\n class=\"kbq-accordion-trigger__icon\"\n ></i>\n\n <ng-content />\n `,\n styleUrls: ['accordion-trigger.scss', 'accordion-tokens.scss'],\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'kbq-accordion-trigger',\n '[class.kbq-accordion-trigger_fill]': 'isFill',\n '[class.kbq-accordion-trigger_hug]': 'isHug',\n '[class.kbq-accordion-trigger_hug-space-between]': 'isHugSpaceBetween'\n },\n hostDirectives: [KbqAccordionTriggerDirective]\n})\nexport class KbqAccordionTrigger implements AfterViewInit, OnDestroy {\n private readonly platform = inject(Platform);\n\n /** @docs-private */\n protected readonly nativeElement = kbqInjectNativeElement();\n /** @docs-private */\n protected readonly accordion: KbqAccordion = inject(KbqAccordion);\n\n /** @docs-private */\n readonly icon = viewChild.required(KbqIcon);\n\n private savedTransition: string;\n private readonly afterRenderRef?: AfterRenderRef;\n private animationTimerId?: ReturnType<typeof setTimeout>;\n\n get isFill(): boolean {\n return this.accordion.variant() === 'fill';\n }\n\n get isHug(): boolean {\n return this.accordion.variant() === 'hug';\n }\n\n get isHugSpaceBetween(): boolean {\n return this.accordion.variant() === 'hugSpaceBetween';\n }\n\n constructor() {\n this.afterRenderRef = afterNextRender(() => {\n this.animationTimerId = setTimeout(() => this.enableAnimation());\n\n this.afterRenderRef?.destroy();\n });\n }\n\n ngAfterViewInit(): void {\n // Skipped on the server: the write would reach the prerendered `style` attribute, and hydration\n // reuses that node, so the client would read `none` back as the transition worth restoring and\n // `enableAnimation()` would make it permanent. There is nothing to suppress without a paint.\n if (!this.platform.isBrowser) return;\n\n this.disableAnimation();\n }\n\n ngOnDestroy(): void {\n clearTimeout(this.animationTimerId);\n }\n\n disableAnimation() {\n this.savedTransition = this.icon().elementRef.nativeElement.style.transition;\n\n this.icon().getHostElement().style.transition = 'none';\n }\n\n enableAnimation() {\n this.icon().getHostElement().style.transition = this.savedTransition;\n }\n}\n","import { UniqueSelectionDispatcher } from '@angular/cdk/collections';\nimport {\n booleanAttribute,\n ChangeDetectorRef,\n computed,\n contentChild,\n Directive,\n forwardRef,\n inject,\n input,\n Input,\n OnDestroy,\n OnInit,\n output\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { KbqAccordion, KbqAccordionOrientation } from './accordion';\nimport { KbqAccordionContentDirective } from './accordion-content.directive';\nimport type { KbqAccordionItemSnapshot } from './accordion-state-store';\nimport { KbqAccordionTrigger } from './accordion-trigger';\nimport { KbqAccordionTriggerDirective } from './accordion-trigger.directive';\n\nlet uniqueIdCounter: number = 0;\n\nexport type KbqAccordionItemState = 'open' | 'closed';\n\n@Directive({\n selector: 'kbq-accordion-item, [kbq-accordion-item]',\n host: {\n class: 'kbq-accordion-item',\n '[attr.data-state]': 'dataState',\n '[attr.data-disabled]': 'disabled',\n '[attr.data-orientation]': 'orientation'\n }\n})\nexport class KbqAccordionItem implements OnInit, OnDestroy {\n /**\n * The accordion this item belongs to — always the nearest one, because it is injected.\n * The accordion reads it back to tell its own items apart from a nested accordion's.\n */\n readonly accordion = inject(KbqAccordion);\n /** @docs-private */\n protected readonly changeDetectorRef = inject(ChangeDetectorRef);\n /** @docs-private */\n protected readonly expansionDispatcher = inject(UniqueSelectionDispatcher);\n\n /** @docs-private */\n readonly trigger = contentChild(KbqAccordionTriggerDirective);\n /** @docs-private */\n readonly triggerComponent = contentChild(KbqAccordionTrigger);\n\n /** @docs-private */\n readonly content = contentChild(forwardRef(() => KbqAccordionContentDirective));\n\n /** The unique AccordionItem id. */\n get id(): string {\n return this._id;\n }\n\n private _id = `kbq-accordion-item-${uniqueIdCounter++}`;\n\n /** The current open/closed state of the item. @docs-private */\n get dataState(): KbqAccordionItemState {\n return this.expanded ? 'open' : 'closed';\n }\n\n /** The layout orientation inherited from the parent accordion. @docs-private */\n get orientation(): KbqAccordionOrientation {\n return this.accordion.orientation();\n }\n\n /**\n * Whether the AccordionItem is expanded. When the accordion initializes, its controlled `value`, the saved\n * state and `defaultValue` take precedence over it.\n */\n // Kept as an `@Input` accessor (not `model()`): the setter runs a synchronous side-effect\n // cascade (emits opened/closed/expandedChange, notifies the selection dispatcher, toggles the\n // content and persists state) that sibling items rely on within the same change-detection tick.\n @Input({ transform: booleanAttribute })\n get expanded(): boolean {\n return this._expanded;\n }\n\n set expanded(expanded: boolean) {\n // Only emit events and update the internal value if the value changes.\n if (this._expanded !== expanded) {\n this._expanded = expanded;\n\n // Before `ngOnInit` the accordion's inputs may still be unbound, this item may not be in its `items()`\n // and nothing listens to the outputs yet — the static attribute is applied while the view is created.\n if (this.initialized) this.reportExpanded();\n }\n }\n\n private _expanded = false;\n\n private initialized = false;\n\n /**\n * The item's own `value` input. Must stay `public`: a `protected` input cannot be bound from a\n * consumer template (TS2445 under full AOT template type-checking).\n * @docs-private\n */\n readonly valueInput = input<string>('', { alias: 'value' });\n\n /** The item's effective value — its own value, or the item id when none is provided. */\n readonly value = computed(() => this.valueInput() || this.id);\n\n /** Whether the AccordionItem is disabled. */\n // Kept as an `@Input` accessor (not a signal): `KbqAccordionItem` is a `FocusKeyManager` option,\n // and `ListKeyManagerOption.disabled` (core/a11y/key-manager) is read as a plain `boolean` — a\n // signal function is always truthy, which makes the key manager treat every item as disabled.\n // The getter also merges the item's own state with the parent accordion's (an effective value).\n @Input({ transform: booleanAttribute })\n get disabled(): boolean {\n return this.accordion.disabled() || this._disabled;\n }\n\n set disabled(value: boolean) {\n this._disabled = value;\n }\n\n private _disabled = false;\n\n /** Event emitted every time the AccordionItem is closed. */\n readonly closed = output<void>();\n /** Event emitted every time the AccordionItem is opened. */\n readonly opened = output<void>();\n\n /**\n * Emits whenever the expanded state of the accordion item changes.\n * Primarily used to facilitate two-way binding.\n * @docs-private\n */\n readonly expandedChange = output<boolean>();\n\n /** Unregister function for expansionDispatcher. */\n private removeUniqueSelectionListener: () => void;\n\n /** Subscription to openAll/closeAll events. */\n private openCloseAllSubscription = Subscription.EMPTY;\n\n constructor() {\n this.removeUniqueSelectionListener = this.expansionDispatcher.listen((id: string, accordionId: string) => {\n if (this.accordion.id !== accordionId) return;\n\n // The dispatcher payload is a single value (individual toggle / single-mode value) or an\n // array (controlled `[value]`, default value and restored state). Match exactly to avoid\n // substring collisions (e.g. `item-10` must not open `item-1`).\n const value = id as unknown as string | string[];\n\n const ownValue = this.value();\n\n if (Array.isArray(value)) {\n // Sync to array membership: opens members, closes non-members.\n this.expanded = value.includes(ownValue);\n } else if (this.accordion.isMultiple) {\n // Individual toggle in multiple mode: only the matching item opens; others stay independent.\n if (value === ownValue) {\n this.expanded = true;\n }\n } else {\n // Individual toggle / controlled value in single mode: exactly one item stays open.\n this.expanded = value === ownValue;\n }\n });\n\n // When an accordion item is hosted in an accordion, subscribe to open/close events.\n this.openCloseAllSubscription = this.subscribeToOpenCloseAllActions();\n }\n\n ngOnInit(): void {\n this.initialized = true;\n\n if (this._expanded) this.reportExpanded();\n }\n\n ngOnDestroy() {\n this.removeUniqueSelectionListener();\n this.openCloseAllSubscription.unsubscribe();\n }\n\n /** Moves focus to the item's trigger. */\n focus(): void {\n this.trigger()?.focus();\n }\n\n /** Toggles the expanded state of the accordion item. */\n toggle(): void {\n if (!this.disabled) {\n this.expanded = !this.expanded;\n }\n }\n\n /** Sets the expanded state of the accordion item to false. */\n close(): void {\n if (!this.disabled) {\n this.expanded = false;\n }\n }\n\n /** Sets the expanded state of the accordion item to true. */\n open(): void {\n if (!this.disabled) {\n this.expanded = true;\n }\n }\n\n /** Returns a snapshot of the item's current persisted state. @docs-private */\n getState(): KbqAccordionItemSnapshot {\n return {\n expanded: this.expanded,\n value: this.value()\n };\n }\n\n /** Disables the open/close animation of the item's content and chevron. @docs-private */\n disableAnimation() {\n this.content()?.disableAnimation();\n this.triggerComponent()?.disableAnimation();\n }\n\n /** Restores the open/close animation of the item's content and chevron. @docs-private */\n enableAnimation() {\n this.content()?.enableAnimation();\n this.triggerComponent()?.enableAnimation();\n }\n\n /** Emits the expanded state and propagates it to the siblings, the content and the saved state. */\n private reportExpanded(): void {\n // First: a handler below may run change detection, and the content pins its height before `data-state` flips.\n this.content()?.toggle();\n\n this.expandedChange.emit(this._expanded);\n\n if (this._expanded) {\n // TODO: The 'emit' function requires a mandatory void argument\n this.opened.emit();\n /**\n * In the unique selection dispatcher, the id parameter is the id of the KbqAccordionItem,\n * the name value is the id of the accordion.\n */\n this.expansionDispatcher.notify(this.value(), this.accordion.id);\n } else {\n // TODO: The 'emit' function requires a mandatory void argument\n this.closed.emit();\n }\n\n this.accordion.saveItemState(this);\n\n // Ensures that the animation will run when the value is set outside of an `@Input`.\n // This includes cases like the open, close and toggle methods.\n this.changeDetectorRef.markForCheck();\n }\n\n private subscribeToOpenCloseAllActions(): Subscription {\n return this.accordion.openCloseAllActions.subscribe((expanded) => {\n // Only change expanded state if item is enabled\n if (!this.disabled) {\n this.expanded = expanded;\n }\n });\n }\n}\n","import { Platform } from '@angular/cdk/platform';\nimport { inject, Injectable, InjectionToken } from '@angular/core';\nimport { KBQ_WINDOW } from '@koobiq/components/core';\n\n/** A snapshot of a single accordion item's persisted state. */\nexport interface KbqAccordionItemSnapshot {\n /** Whether the item is expanded. */\n expanded: boolean;\n /** The item's value. */\n value: string;\n}\n\n/** The persisted state of an accordion, keyed by accordion item id. */\nexport interface KbqAccordionState {\n [itemId: string]: KbqAccordionItemSnapshot;\n}\n\n/**\n * Strategy used by `KbqAccordion` to persist and restore the expanded state of its items\n * while `useStateSaving` is enabled.\n *\n * Provide a custom implementation through the `KBQ_ACCORDION_STATE_STORE` token to change\n * where the state is stored (e.g. `sessionStorage`, a backend, or an in-memory map).\n */\nexport interface KbqAccordionStateStore {\n /** Returns the previously saved state for the given key, or `null` when nothing is stored/available. */\n getState(key: string): KbqAccordionState | null;\n /** Persists the state for the given key. */\n setState(key: string, state: KbqAccordionState): void;\n}\n\n/**\n * Default `KbqAccordionStateStore` implementation backed by `localStorage`.\n *\n * All access is guarded so it is safe on the server (SSR) and in environments where storage\n * throws on access (private mode, sandboxed iframes) or contains corrupt JSON.\n */\n@Injectable({ providedIn: 'root' })\nexport class KbqAccordionLocalStorageStateStore implements KbqAccordionStateStore {\n private readonly isBrowser = inject(Platform).isBrowser;\n private readonly window = inject(KBQ_WINDOW);\n\n getState(key: string): KbqAccordionState | null {\n if (!this.isBrowser) return null;\n\n try {\n const raw = this.window.localStorage.getItem(key);\n\n return raw ? (JSON.parse(raw) as KbqAccordionState) : null;\n } catch {\n return null;\n }\n }\n\n setState(key: string, state: KbqAccordionState): void {\n if (!this.isBrowser) return;\n\n try {\n this.window.localStorage.setItem(key, JSON.stringify(state));\n } catch {\n // Ignore storage write failures (quota exceeded, disabled/blocked storage, etc.).\n }\n }\n}\n\n/**\n * Injection token for the store used to persist accordion state while `useStateSaving` is enabled.\n * Defaults to a `localStorage`-backed implementation (`KbqAccordionLocalStorageStateStore`).\n */\nexport const KBQ_ACCORDION_STATE_STORE = new InjectionToken<KbqAccordionStateStore>('KBQ_ACCORDION_STATE_STORE', {\n providedIn: 'root',\n factory: () => inject(KbqAccordionLocalStorageStateStore)\n});\n","import { FocusKeyManager, FocusMonitor } from '@angular/cdk/a11y';\nimport { Directionality } from '@angular/cdk/bidi';\nimport { UniqueSelectionDispatcher } from '@angular/cdk/collections';\nimport { ENTER, SPACE } from '@angular/cdk/keycodes';\nimport {\n AfterContentInit,\n AfterViewInit,\n booleanAttribute,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n computed,\n contentChildren,\n effect,\n ElementRef,\n forwardRef,\n inject,\n Injector,\n input,\n isDevMode,\n numberAttribute,\n OnDestroy,\n output,\n Signal,\n untracked,\n ViewEncapsulation\n} from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { KbqAccordionItem } from './accordion-item';\nimport { KBQ_ACCORDION_STATE_STORE, KbqAccordionState } from './accordion-state-store';\n\n/** Available visual variants of the accordion. */\nexport type KbqAccordionVariant = 'fill' | 'hug' | 'hugSpaceBetween';\n\n/** Determines whether one or multiple items can be expanded at the same time. */\nexport type KbqAccordionType = 'single' | 'multiple';\n\n/** The layout orientation of the accordion. */\nexport type KbqAccordionOrientation = 'horizontal' | 'vertical';\n\nlet uniqueIdCounter: number = 0;\n\n@Component({\n selector: 'kbq-accordion, [kbq-accordion]',\n template: '<ng-content />',\n styleUrls: ['accordion.scss', 'accordion-tokens.scss'],\n providers: [\n { provide: UniqueSelectionDispatcher, useClass: UniqueSelectionDispatcher }\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'kbq-accordion',\n '[attr.data-orientation]': 'orientation()'\n }\n})\nexport class KbqAccordion implements OnDestroy, AfterViewInit, AfterContentInit {\n /** @docs-private */\n protected readonly focusMonitor = inject(FocusMonitor);\n /** @docs-private */\n protected readonly elementRef = inject(ElementRef);\n /** @docs-private */\n protected readonly changeDetectorRef = inject(ChangeDetectorRef);\n /** @docs-private */\n protected readonly selectionDispatcher = inject(UniqueSelectionDispatcher);\n /** @docs-private */\n protected readonly dir = inject(Directionality, { optional: true });\n\n private readonly injector = inject(Injector);\n private readonly stateStore = inject(KBQ_ACCORDION_STATE_STORE);\n\n /** @docs-private */\n protected keyManager: FocusKeyManager<KbqAccordionItem>;\n\n /** Emits every time `openAll()` or `closeAll()` is called. @docs-private */\n readonly openCloseAllActions = new Subject<boolean>();\n\n /**\n * Every item the content query matches, including those of a nested accordion.\n * Use `items` instead — this one is the raw, unfiltered query.\n * @docs-private\n */\n // The generic is explicit because `forwardRef` erases the locator type, which would leave both\n // this query and `items` as `Signal<any[]>` in the public API report.\n protected readonly allItems: Signal<readonly KbqAccordionItem[]> = contentChildren(\n forwardRef(() => KbqAccordionItem),\n { descendants: true }\n );\n\n /**\n * The accordion items that belong to this accordion.\n *\n * A descendant content query resolves against the template the tag is authored in and does not\n * stop at a nested component of the same type, so `allItems` of an outer accordion also matches\n * the items of an accordion rendered inside an item's content. Each item's own `accordion` is\n * injected and therefore always its nearest one, which makes ownership the reliable filter.\n * Without it the key manager would move focus into the nested accordion's headers, `valueChange`\n * would report a nested item's value and state saving would persist it under the outer key.\n * @docs-private\n */\n readonly items: Signal<readonly KbqAccordionItem[]> = computed(() =>\n this.allItems().filter((item) => item.accordion === this)\n );\n\n /** Whether the accordion persists the expanded state of its items across reloads. Defaults to `false`. */\n readonly useStateSaving = input(false, { transform: booleanAttribute });\n\n /**\n * A stable, consumer-provided key used to persist state when `useStateSaving` is enabled.\n * Strongly recommended: without it the accordion falls back to an auto-generated,\n * instantiation-order-dependent id that is unreliable under lazy/conditional/reordered rendering.\n */\n readonly stateSavingKey = input<string>('');\n\n /** The visual variant of the accordion. Defaults to `fill`. */\n readonly variant = input<KbqAccordionVariant>('fill');\n\n /** Whether the whole accordion is disabled. */\n readonly disabled = input<boolean, unknown>(undefined!, { transform: booleanAttribute });\n\n /** The layout orientation of the accordion. Defaults to `vertical`. */\n readonly orientation = input<KbqAccordionOrientation>('vertical');\n\n /**\n * The `aria-level` applied to the item headings. Defaults to `2`.\n * Set it to match the surrounding document outline (e.g. `3` when nested under an `<h2>` section).\n */\n readonly level = input(2, { transform: numberAttribute });\n\n /**\n * The value of the item(s) to expand when initially rendered.\n * Use when you do not need to control the state of the items.\n */\n readonly defaultValue = input<string[] | string>([]);\n\n /** Determines whether one or multiple items can be expanded at the same time. */\n readonly type = input<KbqAccordionType>('single');\n\n /** Whether an expanded item can be collapsed by the user. Defaults to `true`. */\n readonly collapsible = input(true);\n\n /**\n * The raw controlled `value` input. Must stay `public`: a `protected` input cannot be bound from\n * a consumer template (TS2445 under full AOT template type-checking).\n * @docs-private\n */\n // `input()` (not `model()`): a `model()` would auto-create a colliding `valueChange` output.\n readonly valueInput = input<string[] | string | undefined>(undefined, { alias: 'value' });\n\n /**\n * The controlled value of the item(s) to expand, reshaped by mode. Supports `[(value)]`.\n * Falls back to `defaultValue` while `value` is unbound.\n *\n * Always an array in `multiple` mode and always a string in `single` mode — an empty string\n * when nothing is expanded, matching what `valueChange` emits.\n */\n readonly value = computed<string[] | string>(() => {\n const value = this.valueInput() ?? this.defaultValue();\n\n const array = Array.isArray(value) ? value : [value];\n\n return this.isMultiple ? array : (array[0] ?? '');\n });\n\n /** Emits the current value whenever the expanded state of the accordion changes. */\n readonly valueChange = output<string[] | string>();\n\n /** The unique id of this accordion. */\n get id(): string {\n return this._id;\n }\n\n /** Whether multiple items can be expanded at the same time. */\n get isMultiple(): boolean {\n return this.type() === 'multiple';\n }\n\n /** Whether a persisted state exists for this accordion. */\n get hasSavedState(): boolean {\n return typeof this.state === 'object' && this.state !== null;\n }\n\n /** `defaultValue` normalized to an array for internal coordination. */\n private readonly defaultValueArray = computed(() => {\n const value = this.defaultValue();\n\n return Array.isArray(value) ? value : [value];\n });\n\n private _id = `kbq-accordion-${uniqueIdCounter++}`;\n\n private state: KbqAccordionState | null = null;\n\n /**\n * Whether the saved state has been read. An item reports a static `[expanded]` from its own `ngOnInit`,\n * which runs before `ngAfterContentInit`, and writing then would replace the saved state before it is read.\n */\n private stateRestored = false;\n\n constructor() {\n // Re-emit `valueChange` whenever any (current or future) item toggles its expanded state.\n // Reading `items()` inside the effect keeps the subscriptions in sync with dynamically\n // added/removed items.\n effect((onCleanup) => {\n const subscriptions = this.items().map((item) =>\n item.expandedChange.subscribe(() => this.valueChange.emit(this.getCurrentValue()))\n );\n\n onCleanup(() => subscriptions.forEach((subscription) => subscription.unsubscribe()));\n });\n\n // Notify the selection dispatcher when the controlled `[value]` changes (the old setter's\n // side-effect). The `undefined` sentinel keeps the mandatory first run a no-op when unbound;\n // when bound it re-notifies the value `ngAfterContentInit` already sent (idempotent).\n effect(() => {\n const value = this.valueInput();\n\n if (value === undefined) return;\n\n untracked(() => this.selectionDispatcher.notify(this.value() as unknown as string, this.id));\n });\n }\n\n ngAfterContentInit(): void {\n if (this.useStateSaving()) {\n if (isDevMode() && !this.stateSavingKey()) {\n // eslint-disable-next-line no-console\n console.warn(\n 'KbqAccordion: `useStateSaving` is enabled without a `stateSavingKey`. Falling back to an ' +\n 'auto-generated id, which is unreliable across lazy/conditional/reordered rendering. ' +\n 'Provide a stable `stateSavingKey`.'\n );\n }\n\n this.state = this.stateStore.getState(this.stateStorageKey);\n }\n\n this.stateRestored = true;\n\n if (this.valueInput() !== undefined) {\n this.selectionDispatcher.notify(this.value() as unknown as string, this.id);\n } else if (this.useStateSaving() && this.hasSavedState) {\n const expandedValues = Object.keys(this.state!)\n .filter((key) => this.state![key].expanded)\n .map((key) => this.state![key].value);\n\n if (expandedValues.length) {\n this.selectionDispatcher.notify(\n (this.isMultiple ? expandedValues : expandedValues[0]) as unknown as string,\n this.id\n );\n }\n } else if (this.defaultValueArray().length) {\n // Without a `defaultValue` the items keep their own `[expanded]`: an empty payload would close them all.\n this.selectionDispatcher.notify(this.defaultValueArray() as unknown as string, this.id);\n }\n\n // Seed initial state for any items missing from the store (without overwriting existing entries).\n if (this.useStateSaving()) {\n this.items().forEach((item) => this.saveItemState(item, false));\n }\n\n this.keyManager = new FocusKeyManager(this.items, this.injector).withHomeAndEnd();\n\n if (this.orientation() === 'horizontal') {\n this.keyManager.withHorizontalOrientation(this.dir?.value || 'ltr');\n } else {\n this.keyManager.withVerticalOrientation();\n }\n }\n\n ngAfterViewInit(): void {\n this.focusMonitor.monitor(this.elementRef, true);\n }\n\n ngOnDestroy(): void {\n this.focusMonitor.stopMonitoring(this.elementRef);\n this.openCloseAllActions.complete();\n this.keyManager?.destroy();\n }\n\n /**\n * Handles a key pressed on an item's trigger.\n *\n * Invoked by `KbqAccordionTriggerDirective`, not bound on the accordion host: a root listener\n * also receives keys bubbling from the section content and from controls placed next to the\n * trigger, and would swallow their Enter/Space and hijack their arrow keys. It would also\n * activate the first item — stealing focus — the first time any key was pressed anywhere inside.\n * @docs-private\n */\n keydownHandler(event: KeyboardEvent) {\n const activeItem = this.keyManager?.activeItem;\n\n if (!activeItem) return;\n\n if (\n (event.keyCode === ENTER || event.keyCode === SPACE) &&\n !this.keyManager.isTyping() &&\n !activeItem.disabled\n ) {\n event.preventDefault();\n activeItem.toggle();\n } else {\n // Arrow/Home/End move between headers; Tab falls through natively (WAI-ARIA APG pattern).\n this.keyManager.onKeydown(event);\n }\n }\n\n /** Opens all enabled accordion items in an accordion where `type` is `multiple`. */\n openAll(): void {\n if (this.isMultiple) {\n this.openCloseAllActions.next(true);\n }\n }\n\n /** Closes all enabled accordion items. */\n closeAll(): void {\n this.openCloseAllActions.next(false);\n }\n\n /** @docs-private */\n setActiveItem(item: KbqAccordionItem) {\n this.keyManager?.setActiveItem(item);\n }\n\n /**\n * Persists the current state of the given item when `useStateSaving` is enabled.\n * @docs-private\n */\n saveItemState(item: KbqAccordionItem, force: boolean = true): void {\n if (!this.useStateSaving() || !this.stateRestored) return;\n if (!force && this.state?.[item.id]) return;\n\n this.state = this.state ?? {};\n this.state[item.id] = item.getState();\n\n this.stateStore.setState(this.stateStorageKey, this.state);\n }\n\n /** The current expanded value(s) derived from the live item state. */\n private getCurrentValue(): string[] | string {\n const expandedValues = this.items()\n .filter((item) => item.expanded)\n .map((item) => item.value());\n\n return this.isMultiple ? expandedValues : (expandedValues[0] ?? '');\n }\n\n /** The key used to persist/restore state. */\n private get stateStorageKey(): string {\n return this.stateSavingKey() || this.id;\n }\n}\n","import { Component } from '@angular/core';\nimport { KbqAccordionContentDirective } from './accordion-content.directive';\n\n@Component({\n selector: 'kbq-accordion-content, [kbq-accordion-content]',\n // A `<div>` wrapper (not `<p>`) carries the content padding: `<p>` is invalid for projected\n // block content (a `<div>` would auto-close it), and keeping padding off the animated\n // `.kbq-accordion-content` host lets it collapse cleanly to `height: 0`.\n template: '<div class=\"kbq-accordion-content__body\"><ng-content /></div>',\n host: {\n class: 'kbq-accordion-content'\n },\n hostDirectives: [KbqAccordionContentDirective]\n})\nexport class KbqAccordionContent {}\n","import { Directive, inject } from '@angular/core';\nimport { KbqAccordion } from './accordion';\nimport { KbqAccordionItem } from './accordion-item';\n\n@Directive({\n selector: 'kbq-accordion-header, [kbq-accordion-header]',\n host: {\n class: 'kbq-accordion-header',\n '[attr.role]': '\"heading\"',\n '[attr.aria-level]': 'accordion.level()',\n '[attr.aria-labelledby]': 'labelledBy',\n '[attr.data-state]': 'item.dataState',\n '[attr.data-disabled]': 'item.disabled',\n '[attr.data-orientation]': 'item.orientation'\n }\n})\nexport class KbqAccordionHeader {\n /** @docs-private */\n protected readonly item = inject(KbqAccordionItem);\n /** @docs-private */\n protected readonly accordion = inject(KbqAccordion);\n\n /**\n * Names the heading after the trigger alone.\n *\n * A `role=\"heading\"` takes its name from its content, so the header actions sitting beside the\n * trigger would otherwise append their own labels to it — a section titled \"Profile\" would be\n * announced as \"Profile Run More\" when navigating by heading. Pointing at the trigger yields the\n * announcement the WAI-ARIA APG gets by keeping the button the only element in the heading,\n * which this component cannot do because the header is also the row that lays the actions out.\n * @docs-private\n */\n protected get labelledBy(): string | null {\n return this.item.trigger()?.triggerId ?? null;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { KbqIcon } from '@koobiq/components/icon';\nimport { KbqAccordion } from './accordion';\nimport { KbqAccordionContent } from './accordion-content';\nimport { KbqAccordionHeader } from './accordion-header';\nimport { KbqAccordionItem } from './accordion-item';\nimport { KbqAccordionTrigger } from './accordion-trigger';\n\n@NgModule({\n imports: [\n KbqIcon,\n KbqAccordion,\n KbqAccordionContent,\n KbqAccordionHeader,\n KbqAccordionItem,\n KbqAccordionTrigger\n ],\n exports: [\n KbqAccordion,\n KbqAccordionContent,\n KbqAccordionHeader,\n KbqAccordionItem,\n KbqAccordionTrigger\n ]\n})\nexport class KbqAccordionModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.KbqAccordionTriggerDirective","uniqueIdCounter"],"mappings":"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"}
1
+ {"version":3,"file":"koobiq-components-accordion.mjs","sources":["../../../packages/components/accordion/accordion-content.directive.ts","../../../packages/components/accordion/accordion-trigger.directive.ts","../../../packages/components/accordion/accordion-trigger.ts","../../../packages/components/accordion/accordion-item.ts","../../../packages/components/accordion/accordion.ts","../../../packages/components/accordion/accordion-content.ts","../../../packages/components/accordion/accordion-header.ts","../../../packages/components/accordion/accordion.module.ts","../../../packages/components/accordion/koobiq-components-accordion.ts"],"sourcesContent":["import { Platform } from '@angular/cdk/platform';\nimport {\n afterNextRender,\n AfterViewInit,\n computed,\n Directive,\n DoCheck,\n inject,\n Injector,\n OnInit,\n Renderer2,\n RendererStyleFlags2,\n signal,\n untracked\n} from '@angular/core';\nimport { kbqInjectNativeElement } from '@koobiq/components/core';\nimport { KbqAccordionItem } from './accordion-item';\n\nconst CONTENT_HEIGHT = '--kbq-accordion-content-height';\n\n@Directive({\n selector: '[kbqAccordionContent]',\n host: {\n '[attr.id]': 'contentId',\n '[attr.role]': '\"region\"',\n '[attr.hidden]': 'hidden() ? \"\" : null',\n // `hidden` alone does not take the collapsed content out of the tab order: the host keeps an\n // explicit `display: block` so the height can animate, which overrides `[hidden]`'s\n // `display: none`. Without `inert`, every control inside a closed section stays focusable in\n // a zero-height, clipped box.\n '[attr.inert]': 'hidden() ? \"\" : null',\n '[attr.aria-labelledby]': 'triggerId',\n\n // Signals of this directive's own: the item and its other parts read the same state, and the host bindings of\n // every item in a view run in that view's reactive consumer, where a signal read again after others costs a\n // scan of all it has read so far.\n '[attr.data-state]': 'dataState()',\n '[attr.data-disabled]': 'item.disabled',\n '[attr.data-orientation]': 'item.orientation',\n\n '(transitionend)': 'onTransitionEnd($event)',\n '(transitioncancel)': 'onTransitionEnd($event)'\n },\n exportAs: 'kbqAccordionContent'\n})\nexport class KbqAccordionContentDirective implements OnInit, DoCheck, AfterViewInit {\n private readonly renderer: Renderer2 = inject(Renderer2);\n private readonly platform = inject(Platform);\n private readonly injector = inject(Injector);\n\n /** @docs-private */\n protected readonly nativeElement = kbqInjectNativeElement();\n /** @docs-private */\n protected readonly item = inject(KbqAccordionItem);\n\n /**\n * Value of `data-state`.\n *\n * @internal\n */\n protected readonly dataState = computed(() => this.item.dataState);\n\n /** @docs-private */\n get contentId(): string {\n return `${this.item.id}-content`;\n }\n\n /** @docs-private */\n get triggerId(): string {\n return `${this.item.id}-trigger`;\n }\n\n /** @docs-private */\n protected readonly hidden = signal<boolean>(true);\n\n private savedTransition: string;\n\n /** Whether the first browser render has happened; until then a toggle only sets the initial state. */\n private rendered = false;\n\n constructor() {\n // `afterNextRender` never runs on the server, so no platform check is needed here.\n afterNextRender(() => {\n this.rendered = true;\n\n this.enableAnimation();\n });\n }\n\n ngOnInit(): void {\n // Content the item's `toggle()` cannot have reached yet: created after the item initialized (inside\n // `@if` or `@defer`), or outside the item's own template.\n this.toggle();\n }\n\n ngDoCheck(): void {\n // The item cannot reach content declared in a child component's template to toggle it.\n if (this.hidden() === this.item.expanded) {\n this.toggle();\n }\n }\n\n ngAfterViewInit(): void {\n // Skipped on the server: the write would reach the prerendered `style` attribute, and hydration\n // reuses that node, so the client would read `none` back as the transition worth restoring and\n // `enableAnimation()` would make it permanent. There is nothing to suppress without a paint.\n if (!this.platform.isBrowser) return;\n\n this.disableAnimation();\n }\n\n toggle() {\n // Untracked: called from a consumer's `effect()`, the `expanded` of the item read on the way would make the\n // effect run again on every expand and collapse.\n untracked(() => {\n if (this.rendered) {\n this.pinHeight();\n }\n\n this.hidden.set(!this.item.expanded);\n });\n }\n\n /** @docs-private */\n protected onTransitionEnd(event: TransitionEvent): void {\n // Transitions of the projected content and of pseudo-elements bubble up here as well.\n if (event.target !== this.nativeElement || event.propertyName !== 'height' || event.pseudoElement) return;\n\n // The transition that ended or was cancelled may already be replaced by one that still needs the pin.\n if (!this.isHeightTransitionRunning()) {\n this.releaseHeight();\n }\n }\n\n disableAnimation() {\n this.savedTransition = this.nativeElement.style.transition;\n\n this.nativeElement.style.transition = 'none';\n }\n\n enableAnimation() {\n this.nativeElement.style.transition = this.savedTransition;\n }\n\n /**\n * Pins the height the transition runs between: the natural height of the content when expanding,\n * the current one when collapsing. The pin is released once the transition ends, so expanded\n * content keeps `height: auto` and follows its own size — its container can be laid out later\n * (a content panel, an overlay) or resized, and nested items can toggle.\n *\n * `scrollHeight` reports the natural height even while the `overflow: hidden` host is collapsed.\n */\n private pinHeight(): void {\n const element = this.nativeElement;\n\n // No transition would release the pin.\n if (element.style.transition === 'none') {\n this.releaseHeight();\n\n return;\n }\n\n const expanded = this.item.expanded;\n const current = element.offsetHeight;\n const target = expanded ? element.scrollHeight : 0;\n\n // Nothing to animate: no box yet (e.g. in a closed content panel), or already there.\n if (current === target) {\n this.releaseHeight();\n\n return;\n }\n\n this.setHeight(expanded ? target : current);\n\n // A collapse starts from `auto`, which does not transition: commit the pinned height before\n // `data-state` flips.\n if (!expanded) {\n element.getBoundingClientRect();\n }\n\n afterNextRender(() => this.settleHeight(), { injector: this.injector });\n }\n\n /** Checks the pin once `data-state` has flipped. */\n private settleHeight(): void {\n const running = this.isHeightTransitionRunning();\n\n if (running === false) {\n // Transitions are off (a stylesheet, reduced motion), so no `transitionend` will release the pin.\n this.releaseHeight();\n } else if (this.item.expanded) {\n // Content rendered by the flip itself (`@if`, `@defer`) was not there to measure: retarget.\n this.setHeight(this.nativeElement.scrollHeight);\n }\n }\n\n /** Whether a height transition runs on the host; `undefined` without the Web Animations API. */\n private isHeightTransitionRunning(): boolean | undefined {\n return this.nativeElement\n .getAnimations?.()\n .some((animation) => (animation as CSSTransition).transitionProperty === 'height');\n }\n\n private setHeight(height: number): void {\n this.renderer.setStyle(this.nativeElement, CONTENT_HEIGHT, `${height}px`, RendererStyleFlags2.DashCase);\n }\n\n private releaseHeight(): void {\n this.renderer.removeStyle(this.nativeElement, CONTENT_HEIGHT, RendererStyleFlags2.DashCase);\n }\n}\n","import { computed, Directive, inject } from '@angular/core';\nimport { kbqInjectNativeElement } from '@koobiq/components/core';\nimport { KbqAccordion } from './accordion';\nimport { KbqAccordionItem } from './accordion-item';\n\n@Directive({\n selector: '[kbqAccordionTrigger]',\n host: {\n '[attr.id]': 'triggerId',\n '[attr.role]': '\"button\"',\n // Signals of this directive's own: the item and its other parts read the same state, and the host bindings of\n // every item in a view run in that view's reactive consumer, where a signal read again after others costs a\n // scan of all it has read so far.\n '[attr.aria-expanded]': 'expanded()',\n '[attr.aria-controls]': 'contentId',\n '[attr.aria-disabled]': 'item.disabled',\n '[attr.data-state]': 'dataState()',\n '[attr.data-disabled]': 'item.disabled',\n '[attr.data-orientation]': 'item.orientation',\n '(click)': 'onClick()',\n '(focus)': 'onFocus()',\n '(keydown)': 'onKeydown($event)'\n }\n})\nexport class KbqAccordionTriggerDirective {\n /** @docs-private */\n protected readonly nativeElement = kbqInjectNativeElement();\n /** @docs-private */\n protected readonly accordion = inject(KbqAccordion);\n /** @docs-private */\n protected readonly item = inject(KbqAccordionItem);\n\n /**\n * Value of `aria-expanded`.\n *\n * @internal\n */\n protected readonly expanded = computed(() => this.item.expanded);\n\n /**\n * Value of `data-state`.\n *\n * @internal\n */\n protected readonly dataState = computed(() => this.item.dataState);\n\n /** @docs-private */\n get triggerId(): string {\n return `${this.item.id}-trigger`;\n }\n\n /** @docs-private */\n get contentId(): string {\n return `${this.item.id}-content`;\n }\n\n /** Fires when trigger clicked */\n onClick(): void {\n if (!this.accordion.collapsible() && this.item.expanded) return;\n\n this.item.toggle();\n\n this.accordion.setActiveItem(this.item);\n }\n\n /**\n * Keeps the accordion's key manager in sync with native focus so that arrow-key navigation\n * continues from the header the user has just tabbed/focused into.\n *\n * @docs-private\n */\n onFocus(): void {\n this.accordion.setActiveItem(this.item);\n }\n\n /**\n * Routes keyboard interaction to the accordion, but only while the trigger itself is focused.\n *\n * A `keydown` targets the focused element, so header actions placed next to the trigger and\n * controls inside the expanded content keep their own keys — the accordion no longer toggles the\n * section on Enter/Space nor moves focus to another header on the arrow keys. The `target` check\n * additionally covers focusable content mistakenly nested inside the trigger.\n */\n onKeydown(event: KeyboardEvent): void {\n if (event.target !== this.nativeElement) return;\n\n // The key manager can lag behind when focus was moved programmatically rather than by the\n // user, in which case `onFocus` never ran.\n this.accordion.setActiveItem(this.item);\n\n this.accordion.keydownHandler(event);\n }\n\n /** @docs-private */\n focus() {\n this.nativeElement.focus();\n }\n}\n","import { Platform } from '@angular/cdk/platform';\nimport {\n afterNextRender,\n AfterRenderRef,\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n inject,\n OnDestroy,\n viewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { kbqAnimationsDisabled } from '@koobiq/components/core';\nimport { KbqIcon } from '@koobiq/components/icon';\nimport { KbqAccordion } from './accordion';\nimport { KbqAccordionTriggerDirective } from './accordion-trigger.directive';\n\n@Component({\n selector: 'kbq-accordion-trigger, [kbq-accordion-trigger]',\n imports: [KbqIcon],\n template: `\n <i\n kbq-icon=\"{{ isHugSpaceBetween ? 'kbq-chevron-down-s_16' : 'kbq-chevron-right-s_16' }}\"\n class=\"kbq-accordion-trigger__icon\"\n [class.kbq-animations-disabled]=\"animationsDisabled\"\n ></i>\n\n <ng-content />\n `,\n styleUrls: ['accordion-trigger.scss', 'accordion-tokens.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'kbq-accordion-trigger',\n '[class.kbq-accordion-trigger_fill]': 'isFill',\n '[class.kbq-accordion-trigger_hug]': 'isHug',\n '[class.kbq-accordion-trigger_hug-space-between]': 'isHugSpaceBetween'\n },\n hostDirectives: [KbqAccordionTriggerDirective]\n})\nexport class KbqAccordionTrigger implements AfterViewInit, OnDestroy {\n private readonly platform = inject(Platform);\n\n /** @docs-private */\n protected readonly accordion: KbqAccordion = inject(KbqAccordion);\n\n /** @docs-private */\n readonly icon = viewChild.required(KbqIcon);\n\n /**\n * Whether the icon turns without motion.\n *\n * @docs-private\n */\n protected readonly animationsDisabled = kbqAnimationsDisabled();\n\n private savedTransition: string;\n private readonly afterRenderRef?: AfterRenderRef;\n private animationTimerId?: ReturnType<typeof setTimeout>;\n\n get isFill(): boolean {\n return this.accordion.variant() === 'fill';\n }\n\n get isHug(): boolean {\n return this.accordion.variant() === 'hug';\n }\n\n get isHugSpaceBetween(): boolean {\n return this.accordion.variant() === 'hugSpaceBetween';\n }\n\n constructor() {\n this.afterRenderRef = afterNextRender(() => {\n this.animationTimerId = setTimeout(() => this.enableAnimation());\n\n this.afterRenderRef?.destroy();\n });\n }\n\n ngAfterViewInit(): void {\n // Skipped on the server: the write would reach the prerendered `style` attribute, and hydration\n // reuses that node, so the client would read `none` back as the transition worth restoring and\n // `enableAnimation()` would make it permanent. There is nothing to suppress without a paint.\n if (!this.platform.isBrowser) return;\n\n this.disableAnimation();\n }\n\n ngOnDestroy(): void {\n clearTimeout(this.animationTimerId);\n }\n\n disableAnimation() {\n this.savedTransition = this.icon().elementRef.nativeElement.style.transition;\n\n this.icon().getHostElement().style.transition = 'none';\n }\n\n enableAnimation() {\n this.icon().getHostElement().style.transition = this.savedTransition;\n }\n}\n","import { UniqueSelectionDispatcher } from '@angular/cdk/collections';\nimport {\n booleanAttribute,\n computed,\n contentChild,\n Directive,\n forwardRef,\n inject,\n input,\n linkedSignal,\n OnChanges,\n OnDestroy,\n OnInit,\n output,\n SimpleChanges,\n untracked\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { KbqAccordion, KbqAccordionOrientation } from './accordion';\nimport { KbqAccordionContentDirective } from './accordion-content.directive';\nimport { KbqAccordionTrigger } from './accordion-trigger';\nimport { KbqAccordionTriggerDirective } from './accordion-trigger.directive';\n\nlet uniqueIdCounter: number = 0;\n\nexport type KbqAccordionItemState = 'open' | 'closed';\n\n@Directive({\n selector: 'kbq-accordion-item, [kbq-accordion-item]',\n host: {\n class: 'kbq-accordion-item',\n '[attr.data-state]': 'dataState',\n '[attr.data-disabled]': 'disabled',\n '[attr.data-orientation]': 'orientation'\n }\n})\nexport class KbqAccordionItem implements OnChanges, OnInit, OnDestroy {\n /**\n * The accordion this item belongs to — always the nearest one, because it is injected.\n * The accordion reads it back to tell its own items apart from a nested accordion's.\n */\n readonly accordion = inject(KbqAccordion);\n /** @docs-private */\n protected readonly expansionDispatcher = inject(UniqueSelectionDispatcher);\n\n /** @docs-private */\n readonly trigger = contentChild(KbqAccordionTriggerDirective);\n /** @docs-private */\n readonly triggerComponent = contentChild(KbqAccordionTrigger);\n\n /** @docs-private */\n readonly content = contentChild(forwardRef(() => KbqAccordionContentDirective));\n\n /** The unique AccordionItem id. */\n get id(): string {\n return this._id;\n }\n\n private _id = `kbq-accordion-item-${uniqueIdCounter++}`;\n\n /** The current open/closed state of the item. @docs-private */\n get dataState(): KbqAccordionItemState {\n return this.expanded ? 'open' : 'closed';\n }\n\n /** The layout orientation inherited from the parent accordion. @docs-private */\n get orientation(): KbqAccordionOrientation {\n return this.accordion.orientation();\n }\n\n /**\n * Whether the AccordionItem is expanded. When the accordion initializes, its controlled `value`, the saved\n * state and `defaultValue` take precedence over it.\n */\n // An accessor over the bound state rather than a `model()`: the setter runs a synchronous side-effect\n // cascade (emits opened/closed/expandedChange, notifies the selection dispatcher, toggles the content and\n // persists state) that sibling items rely on within the same change-detection tick.\n get expanded(): boolean {\n return this.expandedState();\n }\n\n set expanded(expanded: boolean) {\n // Untracked, as `toggle()`, `open()` and `close()`: called from a consumer's `effect()`, the state read on the\n // way — `expanded`, `disabled`, the siblings and the accordion it reports to — would make the effect run again\n // on every expand and collapse.\n untracked(() => this.setExpanded(expanded));\n }\n\n /** Body of the `expanded` setter. */\n private setExpanded(expanded: boolean): void {\n // Only emit events and update the internal value if the value changes.\n if (this.expandedState() !== expanded) {\n this.expandedState.set(expanded);\n\n // Before `ngOnInit` the accordion's inputs may still be unbound, this item may not be in its `items()`\n // and nothing listens to the outputs yet.\n if (this.initialized) this.reportExpanded();\n }\n }\n\n /**\n * Follows the binding at once, a static `expanded` included, while the view is created: every item of a\n * single-mode accordion holds its bound state before the first of them reports in `ngOnInit` and collapses\n * the others.\n */\n private readonly expandedState = linkedSignal(() => !!this.expandedInput());\n\n /** The state the item last reported, so a binding change that the state already follows is reported once. */\n private reportedExpanded = false;\n\n private initialized = false;\n\n /**\n * The item's own `value` input. Must stay `public`: a `protected` input cannot be bound from a\n * consumer template (TS2445 under full AOT template type-checking).\n *\n * @docs-private\n */\n readonly valueInput = input<string>('', { alias: 'value' });\n\n /**\n * The item's effective value — its own `value`, or its position inside the accordion when none is\n * provided.\n *\n * The position, rather than the id: the value is what the accordion persists, and the id carries a\n * global instantiation counter that shifts as soon as anything else on the page is created ahead of\n * this accordion. The prefix keeps a generated value from colliding with an author-written one.\n */\n readonly value = computed(() => {\n const value = this.valueInput();\n\n if (value) return value;\n\n const index = this.accordion.items().indexOf(this);\n\n // The accordion's content query has not matched this item yet. Nothing is persisted that early —\n // the accordion suppresses writes until it has read — and the id is unique, so it stands in.\n return index < 0 ? this.id : `kbq-item-${index}`;\n });\n\n /** Whether the AccordionItem is disabled. */\n // An accessor, not a signal: `KbqAccordionItem` is a `FocusKeyManager` option, and\n // `ListKeyManagerOption.disabled` (core/a11y/key-manager) is read as a plain `boolean` — a signal\n // function is always truthy, which makes the key manager treat every item as disabled. The getter\n // also merges the item's own state with the parent accordion's.\n get disabled(): boolean {\n return this.accordion.disabled() || this._disabled;\n }\n\n set disabled(value: boolean) {\n this._disabled = value;\n }\n\n private _disabled = false;\n\n /** Event emitted every time the AccordionItem is closed. */\n readonly closed = output<void>();\n /** Event emitted every time the AccordionItem is opened. */\n readonly opened = output<void>();\n\n /**\n * Emits whenever the expanded state of the accordion item changes.\n * Primarily used to facilitate two-way binding.\n *\n * @docs-private\n */\n readonly expandedChange = output<boolean>();\n\n /** Unregister function for expansionDispatcher. */\n private removeUniqueSelectionListener: () => void;\n\n /** Subscription to openAll/closeAll events. */\n private openCloseAllSubscription = Subscription.EMPTY;\n\n /** @docs-private */\n readonly expandedInput = input<boolean | undefined, boolean | string | null | undefined>(undefined, {\n alias: 'expanded',\n transform: booleanAttribute\n });\n\n /** @docs-private */\n readonly disabledInput = input<boolean | undefined, boolean | string | null | undefined>(undefined, {\n alias: 'disabled',\n transform: booleanAttribute\n });\n\n ngOnChanges(changes: SimpleChanges): void {\n // A bound input is handed to its member; unbound, it leaves what code wrote.\n // The state already follows the binding; a later change still has to be reported, once.\n if (changes['expandedInput'] && this.initialized && this.expanded !== this.reportedExpanded) {\n this.reportExpanded();\n }\n\n if (changes['disabledInput']) {\n const disabled = this.disabledInput();\n\n if (disabled !== undefined) this.disabled = disabled;\n }\n }\n\n constructor() {\n this.removeUniqueSelectionListener = this.expansionDispatcher.listen((id: string, accordionId: string) => {\n if (this.accordion.id !== accordionId) return;\n\n // The dispatcher payload is a single value (individual toggle / single-mode value) or an\n // array (controlled `[value]`, default value and restored state). Match exactly to avoid\n // substring collisions (e.g. `item-10` must not open `item-1`).\n const value = id as unknown as string | string[];\n\n const ownValue = this.value();\n\n if (Array.isArray(value)) {\n // Sync to array membership: opens members, closes non-members.\n this.expanded = value.includes(ownValue);\n } else if (this.accordion.isMultiple) {\n // Individual toggle in multiple mode: only the matching item opens; others stay independent.\n if (value === ownValue) {\n this.expanded = true;\n }\n } else {\n // Individual toggle / controlled value in single mode: exactly one item stays open.\n this.expanded = value === ownValue;\n }\n });\n\n // When an accordion item is hosted in an accordion, subscribe to open/close events.\n this.openCloseAllSubscription = this.subscribeToOpenCloseAllActions();\n }\n\n ngOnInit(): void {\n this.initialized = true;\n\n if (this.expanded) this.reportExpanded();\n }\n\n ngOnDestroy() {\n this.removeUniqueSelectionListener();\n this.openCloseAllSubscription.unsubscribe();\n }\n\n /** Moves focus to the item's trigger. */\n focus(): void {\n this.trigger()?.focus();\n }\n\n /** Toggles the expanded state of the accordion item. */\n toggle(): void {\n untracked(() => {\n if (!this.disabled) {\n this.expanded = !this.expanded;\n }\n });\n }\n\n /** Sets the expanded state of the accordion item to false. */\n close(): void {\n untracked(() => {\n if (!this.disabled) {\n this.expanded = false;\n }\n });\n }\n\n /** Sets the expanded state of the accordion item to true. */\n open(): void {\n untracked(() => {\n if (!this.disabled) {\n this.expanded = true;\n }\n });\n }\n\n /** Disables the open/close animation of the item's content and chevron. @docs-private */\n disableAnimation() {\n this.content()?.disableAnimation();\n this.triggerComponent()?.disableAnimation();\n }\n\n /** Restores the open/close animation of the item's content and chevron. @docs-private */\n enableAnimation() {\n this.content()?.enableAnimation();\n this.triggerComponent()?.enableAnimation();\n }\n\n /** Emits the expanded state and propagates it to the siblings, the content and the saved state. */\n private reportExpanded(): void {\n this.reportedExpanded = this.expanded;\n\n // First: a handler below may run change detection, and the content pins its height before `data-state` flips.\n this.content()?.toggle();\n\n this.expandedChange.emit(this.expanded);\n\n if (this.expanded) {\n this.opened.emit();\n\n /**\n * In the unique selection dispatcher, the id parameter is the id of the KbqAccordionItem,\n * the name value is the id of the accordion.\n */\n this.expansionDispatcher.notify(this.value(), this.accordion.id);\n } else {\n this.closed.emit();\n }\n\n this.accordion.saveState();\n }\n\n private subscribeToOpenCloseAllActions(): Subscription {\n return this.accordion.openCloseAllActions.subscribe((expanded) => {\n // Only change expanded state if item is enabled\n if (!this.disabled) {\n this.expanded = expanded;\n }\n });\n }\n}\n","import { FocusKeyManager, FocusMonitor } from '@angular/cdk/a11y';\nimport { Directionality } from '@angular/cdk/bidi';\nimport { UniqueSelectionDispatcher } from '@angular/cdk/collections';\nimport { ENTER, SPACE } from '@angular/cdk/keycodes';\nimport {\n AfterContentChecked,\n AfterContentInit,\n AfterViewInit,\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n contentChildren,\n effect,\n ElementRef,\n forwardRef,\n inject,\n Injector,\n input,\n numberAttribute,\n OnDestroy,\n output,\n Signal,\n untracked,\n ViewEncapsulation\n} from '@angular/core';\nimport { KbqStateSaving } from '@koobiq/components/core';\nimport { Subject } from 'rxjs';\nimport { KbqAccordionItem } from './accordion-item';\n\n/** Available visual variants of the accordion. */\nexport type KbqAccordionVariant = 'fill' | 'hug' | 'hugSpaceBetween';\n\n/** Determines whether one or multiple items can be expanded at the same time. */\nexport type KbqAccordionType = 'single' | 'multiple';\n\n/** The layout orientation of the accordion. */\nexport type KbqAccordionOrientation = 'horizontal' | 'vertical';\n\n/**\n * The persisted state of an accordion — the values of the items that were expanded.\n * Mirrors `KbqAccordion.value` normalized to an array.\n */\nexport type KbqAccordionState = string[];\n\nlet uniqueIdCounter: number = 0;\n\n/** Normalizes a value input to an array, dropping the empty string that stands for \"nothing expanded\". */\nconst toValueArray = (value: string[] | string): string[] => (Array.isArray(value) ? value : [value]).filter(Boolean);\n\n/** Whether two value sets hold the same values, regardless of order. */\nconst sameValues = (a: string[], b: string[]): boolean =>\n a.length === b.length && a.every((value) => b.includes(value));\n\n/**\n * Coerces a raw persisted payload into a `KbqAccordionState`, returning `null` for anything\n * unrecognizable. Web storage is origin-wide and user-writable, so a payload is never trusted —\n * without this, an entry such as `{\"a\": null}` would crash the accordion while restoring.\n *\n * Also upgrades the previous `{ [itemId]: { expanded, value } }` format, so state persisted by an\n * earlier version is carried over instead of silently resetting.\n */\nconst normalizeAccordionState = (parsed: unknown): KbqAccordionState | null => {\n if (Array.isArray(parsed)) {\n const values = parsed.filter((value): value is string => typeof value === 'string');\n\n // An array that held nothing usable is somebody else's payload, not \"nothing was expanded\" — the\n // difference matters, because a state that exists suppresses `defaultValue` from then on.\n return values.length || !parsed.length ? values : null;\n }\n\n if (parsed !== null && typeof parsed === 'object') {\n const snapshots = Object.values(parsed as Record<string, unknown>).filter(\n (snapshot): snapshot is { expanded: boolean; value: string } => {\n const { expanded, value } = (snapshot ?? {}) as { expanded?: unknown; value?: unknown };\n\n return typeof expanded === 'boolean' && typeof value === 'string';\n }\n );\n\n // Same reasoning as above: only an object that actually holds snapshots is the previous format.\n return snapshots.length ? snapshots.filter(({ expanded }) => expanded).map(({ value }) => value) : null;\n }\n\n return null;\n};\n\n@Component({\n selector: 'kbq-accordion, [kbq-accordion]',\n template: '<ng-content />',\n styleUrls: ['accordion.scss', 'accordion-tokens.scss'],\n providers: [\n { provide: UniqueSelectionDispatcher, useClass: UniqueSelectionDispatcher }\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'kbq-accordion',\n '[attr.data-orientation]': 'orientation()'\n },\n // `useStateSaving` and `stateSavingKey` are the directive's inputs, surfaced on the accordion.\n hostDirectives: [\n { directive: KbqStateSaving, inputs: ['useStateSaving', 'stateSavingKey'] }\n ]\n})\nexport class KbqAccordion implements OnDestroy, AfterViewInit, AfterContentInit, AfterContentChecked {\n /** @docs-private */\n protected readonly focusMonitor = inject(FocusMonitor);\n /** @docs-private */\n protected readonly elementRef = inject(ElementRef);\n /** @docs-private */\n protected readonly selectionDispatcher = inject(UniqueSelectionDispatcher);\n /** @docs-private */\n protected readonly dir = inject(Directionality, { optional: true });\n\n private readonly injector = inject(Injector);\n\n /** @docs-private */\n protected keyManager: FocusKeyManager<KbqAccordionItem>;\n\n /** Emits every time `openAll()` or `closeAll()` is called. @docs-private */\n readonly openCloseAllActions = new Subject<boolean>();\n\n /**\n * Every item the content query matches, including those of a nested accordion.\n * Use `items` instead — this one is the raw, unfiltered query.\n *\n * @docs-private\n */\n // The generic is explicit because `forwardRef` erases the locator type, which would leave both\n // this query and `items` as `Signal<any[]>` in the public API report.\n protected readonly allItems: Signal<readonly KbqAccordionItem[]> = contentChildren(\n forwardRef(() => KbqAccordionItem),\n { descendants: true }\n );\n\n /**\n * The accordion items that belong to this accordion.\n *\n * A descendant content query resolves against the template the tag is authored in and does not\n * stop at a nested component of the same type, so `allItems` of an outer accordion also matches\n * the items of an accordion rendered inside an item's content. Each item's own `accordion` is\n * injected and therefore always its nearest one, which makes ownership the reliable filter.\n * Without it the key manager would move focus into the nested accordion's headers, `valueChange`\n * would report a nested item's value and state saving would persist it under the outer key.\n *\n * @docs-private\n */\n readonly items: Signal<readonly KbqAccordionItem[]> = computed(() =>\n this.allItems().filter((item) => item.accordion === this)\n );\n\n /**\n * Persistence of the expanded state, applied as a host directive. `useStateSaving` and\n * `stateSavingKey` are its inputs, forwarded onto the accordion.\n */\n private readonly stateSaving = inject(KbqStateSaving);\n\n /** The visual variant of the accordion. Defaults to `fill`. */\n readonly variant = input<KbqAccordionVariant>('fill');\n\n /** Whether the whole accordion is disabled. */\n readonly disabled = input<boolean, unknown>(undefined!, { transform: booleanAttribute });\n\n /** The layout orientation of the accordion. Defaults to `vertical`. */\n readonly orientation = input<KbqAccordionOrientation>('vertical');\n\n /**\n * The `aria-level` applied to the item headings. Defaults to `2`.\n * Set it to match the surrounding document outline (e.g. `3` when nested under an `<h2>` section).\n */\n readonly level = input(2, { transform: numberAttribute });\n\n /**\n * The value of the item(s) to expand when initially rendered.\n * Use when you do not need to control the state of the items.\n */\n readonly defaultValue = input<string[] | string>([]);\n\n /** Determines whether one or multiple items can be expanded at the same time. */\n readonly type = input<KbqAccordionType>('single');\n\n /** Whether an expanded item can be collapsed by the user. Defaults to `true`. */\n readonly collapsible = input(true);\n\n /**\n * The raw controlled `value` input. Must stay `public`: a `protected` input cannot be bound from\n * a consumer template (TS2445 under full AOT template type-checking).\n *\n * @docs-private\n */\n // `input()` (not `model()`): a `model()` would auto-create a colliding `valueChange` output.\n readonly valueInput = input<string[] | string | undefined>(undefined, { alias: 'value' });\n\n /**\n * The controlled value of the item(s) to expand, reshaped by mode. Supports `[(value)]`.\n * Falls back to `defaultValue` while `value` is unbound.\n *\n * Always an array in `multiple` mode and always a string in `single` mode — an empty string\n * when nothing is expanded, matching what `valueChange` emits.\n */\n readonly value = computed<string[] | string>(() => {\n const array = this.valueArray();\n\n return this.isMultiple ? array : (array[0] ?? '');\n });\n\n /** Emits the current value whenever the expanded state of the accordion changes. */\n readonly valueChange = output<string[] | string>();\n\n /** The unique id of this accordion. */\n get id(): string {\n return this._id;\n }\n\n /** Whether multiple items can be expanded at the same time. */\n get isMultiple(): boolean {\n return this.type() === 'multiple';\n }\n\n /**\n * Whether state is currently persisted for this accordion — restored on init, or written since.\n * Always `false` while `useStateSaving` is unset, and `false` again after `clearSavedState()`.\n */\n get hasSavedState(): boolean {\n return this.stateSaving.state != null;\n }\n\n /**\n * `value()` as an array, reshaped by mode — the shape the selection dispatcher is notified with.\n * Falls back to `defaultValue` while `value` is unbound, so it doubles as the uncontrolled default.\n */\n private readonly valueArray = computed(() => {\n const array = toValueArray(this.valueInput() ?? this.defaultValue());\n\n return this.isMultiple ? array : array.slice(0, 1);\n });\n\n private _id = `kbq-accordion-${uniqueIdCounter++}`;\n\n /** Whether the state saving key changed and the state under the new key is still to be restored. */\n private keyChanged = false;\n\n constructor() {\n // The state lives under the new key now, so restore from it — in `ngAfterContentChecked`: the change is\n // reported while the view updates, before sections created in the same pass have bound their `value`,\n // and that same pass runs the hook.\n this.stateSaving.keyChanges.subscribe(() => (this.keyChanged = true));\n\n // Re-emit `valueChange` whenever any (current or future) item toggles its expanded state.\n // Reading `items()` inside the effect keeps the subscriptions in sync with dynamically\n // added/removed items.\n effect((onCleanup) => {\n const subscriptions = this.items().map((item) =>\n item.expandedChange.subscribe(() => this.valueChange.emit(this.getCurrentValue()))\n );\n\n onCleanup(() => subscriptions.forEach((subscription) => subscription.unsubscribe()));\n });\n\n // Notify the selection dispatcher when the controlled `[value]` changes (the old setter's\n // side-effect). An unbound `value` (`undefined`, or `null` from an `async` pipe) keeps the mandatory\n // first run a no-op. View effects run before content hooks, so when bound this notifies first and\n // `ngAfterContentInit` re-notifies the same value (idempotent).\n effect(() => {\n const value = this.valueInput();\n\n if (value == null) return;\n\n untracked(() => this.notifySelection(this.valueArray()));\n });\n }\n\n ngAfterContentInit(): void {\n this.restoreState(true);\n\n this.keyManager = new FocusKeyManager(this.items, this.injector).withHomeAndEnd();\n\n if (this.orientation() === 'horizontal') {\n this.keyManager.withHorizontalOrientation(this.dir?.value || 'ltr');\n } else {\n this.keyManager.withVerticalOrientation();\n }\n }\n\n ngAfterContentChecked(): void {\n if (!this.keyChanged) return;\n\n this.keyChanged = false;\n this.restoreState(false);\n }\n\n ngAfterViewInit(): void {\n this.focusMonitor.monitor(this.elementRef, true);\n }\n\n ngOnDestroy(): void {\n this.focusMonitor.stopMonitoring(this.elementRef);\n this.openCloseAllActions.complete();\n this.keyManager?.destroy();\n }\n\n /**\n * Handles a key pressed on an item's trigger.\n *\n * Invoked by `KbqAccordionTriggerDirective`, not bound on the accordion host: a root listener\n * also receives keys bubbling from the section content and from controls placed next to the\n * trigger, and would swallow their Enter/Space and hijack their arrow keys. It would also\n * activate the first item — stealing focus — the first time any key was pressed anywhere inside.\n *\n * @docs-private\n */\n keydownHandler(event: KeyboardEvent) {\n const activeItem = this.keyManager?.activeItem;\n\n if (!activeItem) return;\n\n if (\n (event.keyCode === ENTER || event.keyCode === SPACE) &&\n !this.keyManager.isTyping() &&\n !activeItem.disabled\n ) {\n event.preventDefault();\n activeItem.toggle();\n } else {\n // Arrow/Home/End move between headers; Tab falls through natively (WAI-ARIA APG pattern).\n this.keyManager.onKeydown(event);\n }\n }\n\n /** Opens all enabled accordion items in an accordion where `type` is `multiple`. */\n openAll(): void {\n // Untracked, as `closeAll()`, `saveState()` and `clearSavedState()`: called from a consumer's `effect()`, the\n // state read on the way — the inputs, the items' `disabled` — would make the effect run again.\n untracked(() => {\n if (this.isMultiple) {\n this.openCloseAllActions.next(true);\n }\n });\n }\n\n /** Closes all enabled accordion items. */\n closeAll(): void {\n untracked(() => this.openCloseAllActions.next(false));\n }\n\n /** @docs-private */\n setActiveItem(item: KbqAccordionItem) {\n this.keyManager?.setActiveItem(item);\n }\n\n /** Reads the persisted state and applies it. Runs while initializing, and again after the key changes. */\n private restoreState(initializing: boolean): void {\n const savedState = this.stateSaving.read(normalizeAccordionState);\n const initialValue = this.initialValue(savedState, initializing);\n\n if (initialValue) {\n this.stateSaving.applying(() => this.notifySelection(initialValue));\n }\n\n // Reconcile the store with what was applied, dropping values whose item is gone. Only when there\n // are items to reconcile against: sections that arrive later (`@if`, `@for` over an async list)\n // would otherwise have their saved values deleted before they exist.\n if (savedState !== null && this.items().length > 0 && !sameValues(savedState, this.expandedValues())) {\n this.saveState();\n }\n }\n\n /**\n * Persists the values of the currently expanded items when `useStateSaving` is enabled.\n *\n * @docs-private\n */\n saveState(): void {\n untracked(() => {\n // Checked before the snapshot is built: `expandedValues()` walks the content query on every\n // toggle. A controlled `[value]` belongs to the application, so persisting it is pointless.\n if (!this.stateSaving.useStateSaving() || this.valueInput() != null) return;\n\n this.stateSaving.write(this.expandedValues());\n });\n }\n\n /**\n * Removes the state persisted for this accordion.\n *\n * Persistence itself stays on — the next change is written again. Unset `useStateSaving` to stop it.\n */\n clearSavedState(): void {\n untracked(() => this.stateSaving.clear());\n }\n\n /**\n * The values to expand when restoring: a controlled `value` wins, then the persisted state, then — only\n * while initializing — `defaultValue`. An array, because only the array payload can also *close* the items\n * that are not part of it — a scalar cannot express an empty selection at all.\n *\n * `null` when there is nothing to apply, so the items keep their current `expanded`: their own while\n * initializing, whatever the previous key left after a key change.\n */\n private initialValue(savedState: KbqAccordionState | null, initializing: boolean): string[] | null {\n if (this.valueInput() != null) return this.valueArray();\n\n if (savedState !== null) {\n if (this.isMultiple) return savedState;\n\n // The first value that still names an item, so a stale one does not collapse every section.\n const values = this.items().map((item) => item.value());\n\n return savedState.filter((value) => values.includes(value)).slice(0, 1);\n }\n\n if (!initializing) return null;\n\n // While `value` is unbound, `valueArray()` is `defaultValue` reshaped by mode.\n const defaultValue = this.valueArray();\n\n return defaultValue.length ? defaultValue : null;\n }\n\n /** The values of the items that are currently expanded. */\n private expandedValues(): string[] {\n return this.items()\n .filter((item) => item.expanded)\n .map((item) => item.value());\n }\n\n /** The current expanded value(s) derived from the live item state. */\n private getCurrentValue(): string[] | string {\n const expandedValues = this.expandedValues();\n\n return this.isMultiple ? expandedValues : (expandedValues[0] ?? '');\n }\n\n /**\n * Notifies the items of the whole expanded set.\n *\n * `UniqueSelectionDispatcher` types its payload as a `string`, which only an individual item toggle\n * ever is — the accordion always sends the full set, the only shape that also closes the items\n * outside it. The cast lives here alone so the rest of the component keeps working with the real type.\n */\n private notifySelection(values: string[]): void {\n this.selectionDispatcher.notify(values as unknown as string, this.id);\n }\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { kbqAnimationsDisabled } from '@koobiq/components/core';\nimport { KbqAccordionContentDirective } from './accordion-content.directive';\n\n@Component({\n selector: 'kbq-accordion-content, [kbq-accordion-content]',\n // A `<div>` wrapper (not `<p>`) carries the content padding: `<p>` is invalid for projected\n // block content (a `<div>` would auto-close it), and keeping padding off the animated\n // `.kbq-accordion-content` host lets it collapse cleanly to `height: 0`.\n template: '<div class=\"kbq-accordion-content__body\"><ng-content /></div>',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'kbq-accordion-content',\n '[class.kbq-animations-disabled]': 'animationsDisabled'\n },\n hostDirectives: [KbqAccordionContentDirective]\n})\nexport class KbqAccordionContent {\n /**\n * Whether the content expands and collapses without motion.\n *\n * @docs-private\n */\n protected readonly animationsDisabled = kbqAnimationsDisabled();\n}\n","import { computed, Directive, inject } from '@angular/core';\nimport { KbqAccordion } from './accordion';\nimport { KbqAccordionItem } from './accordion-item';\n\n@Directive({\n selector: 'kbq-accordion-header, [kbq-accordion-header]',\n host: {\n class: 'kbq-accordion-header',\n '[attr.role]': '\"heading\"',\n '[attr.aria-level]': 'accordion.level()',\n '[attr.aria-labelledby]': 'labelledBy',\n // Signals of this directive's own: the item and its other parts read the same state, and the host bindings of\n // every item in a view run in that view's reactive consumer, where a signal read again after others costs a\n // scan of all it has read so far.\n '[attr.data-state]': 'dataState()',\n '[attr.data-disabled]': 'item.disabled',\n '[attr.data-orientation]': 'item.orientation'\n }\n})\nexport class KbqAccordionHeader {\n /** @docs-private */\n protected readonly item = inject(KbqAccordionItem);\n /** @docs-private */\n protected readonly accordion = inject(KbqAccordion);\n\n /**\n * Value of `data-state`.\n *\n * @internal\n */\n protected readonly dataState = computed(() => this.item.dataState);\n\n /**\n * Names the heading after the trigger alone.\n *\n * A `role=\"heading\"` takes its name from its content, so the header actions sitting beside the\n * trigger would otherwise append their own labels to it — a section titled \"Profile\" would be\n * announced as \"Profile Run More\" when navigating by heading. Pointing at the trigger yields the\n * announcement the WAI-ARIA APG gets by keeping the button the only element in the heading,\n * which this component cannot do because the header is also the row that lays the actions out.\n *\n * @docs-private\n */\n protected get labelledBy(): string | null {\n return this.item.trigger()?.triggerId ?? null;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { KbqIcon } from '@koobiq/components/icon';\nimport { KbqAccordion } from './accordion';\nimport { KbqAccordionContent } from './accordion-content';\nimport { KbqAccordionHeader } from './accordion-header';\nimport { KbqAccordionItem } from './accordion-item';\nimport { KbqAccordionTrigger } from './accordion-trigger';\n\n@NgModule({\n imports: [\n KbqIcon,\n KbqAccordion,\n KbqAccordionContent,\n KbqAccordionHeader,\n KbqAccordionItem,\n KbqAccordionTrigger\n ],\n exports: [\n KbqAccordion,\n KbqAccordionContent,\n KbqAccordionHeader,\n KbqAccordionItem,\n KbqAccordionTrigger\n ]\n})\nexport class KbqAccordionModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.KbqAccordionTriggerDirective","uniqueIdCounter"],"mappings":"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"}