@koobiq/components 18.36.0 → 18.38.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 (309) hide show
  1. package/autocomplete/autocomplete.scss +2 -17
  2. package/breadcrumbs/breadcrumbs.d.ts +2 -1
  3. package/breadcrumbs/breadcrumbs.scss +4 -4
  4. package/button/button.component.d.ts +1 -0
  5. package/button-toggle/button-toggle.scss +0 -2
  6. package/content-panel/content-panel.d.ts +1 -1
  7. package/content-panel/index.d.ts +0 -1
  8. package/core/common-behaviors/hover.d.ts +15 -0
  9. package/core/common-behaviors/index.d.ts +1 -1
  10. package/core/locales/en-US.d.ts +6 -0
  11. package/core/locales/es-LA.d.ts +6 -0
  12. package/core/locales/formatters.d.ts +0 -72
  13. package/core/locales/index.d.ts +0 -2
  14. package/core/locales/locale-service.d.ts +24 -386
  15. package/core/locales/pt-BR.d.ts +6 -0
  16. package/core/locales/ru-RU.d.ts +6 -0
  17. package/core/locales/tk-TM.d.ts +6 -0
  18. package/core/option/option.d.ts +3 -2
  19. package/core/pop-up/pop-up-trigger.d.ts +3 -1
  20. package/core/pop-up/pop-up.d.ts +1 -0
  21. package/core/select/common.d.ts +3 -1
  22. package/core/styles/common/_select.scss +20 -0
  23. package/core/styles/typography/_typography.scss +23 -82
  24. package/datepicker/datepicker-module.d.ts +2 -1
  25. package/dropdown/dropdown-item.scss +8 -7
  26. package/dropdown/dropdown.scss +5 -14
  27. package/esm2022/autocomplete/autocomplete-trigger.directive.mjs +4 -4
  28. package/esm2022/breadcrumbs/breadcrumbs.mjs +46 -37
  29. package/esm2022/button/button.component.mjs +6 -4
  30. package/esm2022/button-toggle/button-toggle.component.mjs +2 -2
  31. package/esm2022/code-block/code-block-highlight.mjs +6 -1
  32. package/esm2022/content-panel/content-panel.mjs +2 -2
  33. package/esm2022/content-panel/index.mjs +1 -2
  34. package/esm2022/core/common-behaviors/color.mjs +2 -1
  35. package/esm2022/core/common-behaviors/common-module.mjs +2 -1
  36. package/esm2022/core/common-behaviors/disabled.mjs +2 -1
  37. package/esm2022/core/common-behaviors/error-state.mjs +2 -1
  38. package/esm2022/core/common-behaviors/hover.mjs +34 -0
  39. package/esm2022/core/common-behaviors/index.mjs +2 -2
  40. package/esm2022/core/common-behaviors/tabindex.mjs +2 -1
  41. package/esm2022/core/form-field/field-sizing-content.mjs +5 -2
  42. package/esm2022/core/formatters/number/formatter.mjs +2 -2
  43. package/esm2022/core/locales/en-US.mjs +7 -1
  44. package/esm2022/core/locales/es-LA.mjs +16 -10
  45. package/esm2022/core/locales/formatters.mjs +1 -73
  46. package/esm2022/core/locales/index.mjs +1 -3
  47. package/esm2022/core/locales/locale-service.mjs +5 -8
  48. package/esm2022/core/locales/pt-BR.mjs +25 -19
  49. package/esm2022/core/locales/ru-RU.mjs +7 -1
  50. package/esm2022/core/locales/tk-TM.mjs +30 -24
  51. package/esm2022/core/option/option.mjs +10 -6
  52. package/esm2022/core/pop-up/pop-up-trigger.mjs +2 -1
  53. package/esm2022/core/pop-up/pop-up.mjs +36 -2
  54. package/esm2022/core/select/common.mjs +10 -4
  55. package/esm2022/core/version.mjs +2 -2
  56. package/esm2022/datepicker/calendar-header.component.mjs +5 -4
  57. package/esm2022/datepicker/datepicker-module.mjs +7 -4
  58. package/esm2022/dropdown/dropdown-item.component.mjs +2 -2
  59. package/esm2022/dropdown/dropdown.component.mjs +3 -3
  60. package/esm2022/ellipsis-center/ellipsis-center.directive.mjs +5 -2
  61. package/esm2022/file-upload/file-drop.mjs +5 -3
  62. package/esm2022/file-upload/multiple-file-upload.component.mjs +9 -13
  63. package/esm2022/file-upload/single-file-upload.component.mjs +9 -4
  64. package/esm2022/filter-bar/filter-bar.mjs +6 -2
  65. package/esm2022/filter-bar/filter-search.mjs +3 -3
  66. package/esm2022/filter-bar/filters.mjs +10 -5
  67. package/esm2022/filter-bar/pipe-add.mjs +3 -2
  68. package/esm2022/filter-bar/pipes/base-pipe.mjs +11 -3
  69. package/esm2022/filter-bar/pipes/pipe-date.mjs +3 -3
  70. package/esm2022/filter-bar/pipes/pipe-datetime.mjs +3 -3
  71. package/esm2022/filter-bar/pipes/pipe-multi-select.mjs +5 -4
  72. package/esm2022/filter-bar/pipes/pipe-multi-tree-select.mjs +2 -2
  73. package/esm2022/filter-bar/pipes/pipe-select.mjs +2 -2
  74. package/esm2022/filter-bar/pipes/pipe-text.mjs +2 -2
  75. package/esm2022/filter-bar/pipes/pipe-title.mjs +24 -19
  76. package/esm2022/filter-bar/pipes/pipe-tree-select.mjs +2 -2
  77. package/esm2022/form-field/fieldset.mjs +2 -2
  78. package/esm2022/form-field/form-field.mjs +2 -2
  79. package/esm2022/form-field/stepper.mjs +41 -10
  80. package/esm2022/inline-edit/inline-edit.mjs +9 -5
  81. package/esm2022/input/input-number.mjs +7 -6
  82. package/esm2022/input/input.module.mjs +7 -4
  83. package/esm2022/list/list-selection.component.mjs +31 -15
  84. package/esm2022/markdown/markdown.component.mjs +7 -7
  85. package/esm2022/modal/modal-util.mjs +7 -3
  86. package/esm2022/modal/modal.component.mjs +2 -2
  87. package/esm2022/modal/modal.service.mjs +2 -1
  88. package/esm2022/navbar/navbar-brand.component.mjs +105 -0
  89. package/esm2022/navbar/navbar-item.component.mjs +18 -170
  90. package/esm2022/navbar/navbar-toggle.component.mjs +88 -0
  91. package/esm2022/navbar/navbar.component.mjs +8 -4
  92. package/esm2022/navbar/navbar.module.mjs +4 -2
  93. package/esm2022/navbar/public-api.mjs +3 -1
  94. package/esm2022/navbar/vertical-navbar.component.mjs +28 -6
  95. package/esm2022/navbar-ic/navbar-ic-header.mjs +20 -4
  96. package/esm2022/navbar-ic/navbar-ic-item.mjs +7 -8
  97. package/esm2022/navbar-ic/navbar-ic.animation.mjs +10 -2
  98. package/esm2022/navbar-ic/navbar-ic.mjs +33 -9
  99. package/esm2022/notification-center/notification-center.mjs +9 -33
  100. package/esm2022/popover/popover-confirm.component.mjs +3 -3
  101. package/esm2022/popover/popover.component.mjs +24 -5
  102. package/esm2022/resizer/index.mjs +3 -0
  103. package/esm2022/resizer/koobiq-components-resizer.mjs +5 -0
  104. package/esm2022/resizer/module.mjs +17 -0
  105. package/esm2022/resizer/resizer.mjs +135 -0
  106. package/esm2022/scrollbar/scrollbar.directive.mjs +4 -3
  107. package/esm2022/search-expandable/search-expandable.mjs +5 -5
  108. package/esm2022/select/select.component.mjs +2 -14
  109. package/esm2022/select/select.module.mjs +8 -4
  110. package/esm2022/sidepanel/sidepanel-container.component.mjs +3 -3
  111. package/esm2022/split-button/split-button.mjs +47 -6
  112. package/esm2022/tags/tag-input.mjs +24 -28
  113. package/esm2022/tags/tag-list.component.mjs +76 -87
  114. package/esm2022/tags/tag.component.mjs +29 -34
  115. package/esm2022/textarea/textarea.module.mjs +5 -4
  116. package/esm2022/time-range/constants.mjs +22 -1
  117. package/esm2022/time-range/time-range-editor.mjs +11 -6
  118. package/esm2022/time-range/time-range-title-as-form-field.mjs +2 -1
  119. package/esm2022/time-range/time-range.mjs +8 -3
  120. package/esm2022/time-range/time-range.service.mjs +43 -106
  121. package/esm2022/time-range/types.mjs +1 -1
  122. package/esm2022/timepicker/timepicker.module.mjs +5 -4
  123. package/esm2022/timezone/timezone-option.component.mjs +2 -2
  124. package/esm2022/timezone/timezone.module.mjs +6 -4
  125. package/esm2022/title/title.directive.mjs +6 -2
  126. package/esm2022/toggle/toggle.component.mjs +3 -3
  127. package/esm2022/top-bar/top-bar.mjs +2 -2
  128. package/esm2022/tree/tree-option.component.mjs +7 -6
  129. package/esm2022/tree/tree-selection.component.mjs +23 -13
  130. package/esm2022/tree-select/tree-select.component.mjs +97 -79
  131. package/esm2022/tree-select/tree-select.module.mjs +7 -4
  132. package/fesm2022/koobiq-components-autocomplete.mjs +3 -3
  133. package/fesm2022/koobiq-components-autocomplete.mjs.map +1 -1
  134. package/fesm2022/koobiq-components-breadcrumbs.mjs +45 -36
  135. package/fesm2022/koobiq-components-breadcrumbs.mjs.map +1 -1
  136. package/fesm2022/koobiq-components-button-toggle.mjs +2 -2
  137. package/fesm2022/koobiq-components-button-toggle.mjs.map +1 -1
  138. package/fesm2022/koobiq-components-button.mjs +5 -3
  139. package/fesm2022/koobiq-components-button.mjs.map +1 -1
  140. package/fesm2022/koobiq-components-code-block.mjs +5 -0
  141. package/fesm2022/koobiq-components-code-block.mjs.map +1 -1
  142. package/fesm2022/koobiq-components-content-panel.mjs +3 -137
  143. package/fesm2022/koobiq-components-content-panel.mjs.map +1 -1
  144. package/fesm2022/koobiq-components-core.mjs +156 -478
  145. package/fesm2022/koobiq-components-core.mjs.map +1 -1
  146. package/fesm2022/koobiq-components-datepicker.mjs +8 -5
  147. package/fesm2022/koobiq-components-datepicker.mjs.map +1 -1
  148. package/fesm2022/koobiq-components-dropdown.mjs +4 -4
  149. package/fesm2022/koobiq-components-dropdown.mjs.map +1 -1
  150. package/fesm2022/koobiq-components-ellipsis-center.mjs +4 -1
  151. package/fesm2022/koobiq-components-ellipsis-center.mjs.map +1 -1
  152. package/fesm2022/koobiq-components-file-upload.mjs +19 -17
  153. package/fesm2022/koobiq-components-file-upload.mjs.map +1 -1
  154. package/fesm2022/koobiq-components-filter-bar.mjs +64 -41
  155. package/fesm2022/koobiq-components-filter-bar.mjs.map +1 -1
  156. package/fesm2022/koobiq-components-form-field.mjs +44 -17
  157. package/fesm2022/koobiq-components-form-field.mjs.map +1 -1
  158. package/fesm2022/koobiq-components-inline-edit.mjs +8 -4
  159. package/fesm2022/koobiq-components-inline-edit.mjs.map +1 -1
  160. package/fesm2022/koobiq-components-input.mjs +12 -9
  161. package/fesm2022/koobiq-components-input.mjs.map +1 -1
  162. package/fesm2022/koobiq-components-list.mjs +30 -14
  163. package/fesm2022/koobiq-components-list.mjs.map +1 -1
  164. package/fesm2022/koobiq-components-markdown.mjs +6 -6
  165. package/fesm2022/koobiq-components-markdown.mjs.map +1 -1
  166. package/fesm2022/koobiq-components-modal.mjs +9 -4
  167. package/fesm2022/koobiq-components-modal.mjs.map +1 -1
  168. package/fesm2022/koobiq-components-navbar-ic.mjs +70 -26
  169. package/fesm2022/koobiq-components-navbar-ic.mjs.map +1 -1
  170. package/fesm2022/koobiq-components-navbar.mjs +792 -740
  171. package/fesm2022/koobiq-components-navbar.mjs.map +1 -1
  172. package/fesm2022/koobiq-components-notification-center.mjs +8 -32
  173. package/fesm2022/koobiq-components-notification-center.mjs.map +1 -1
  174. package/fesm2022/koobiq-components-popover.mjs +25 -6
  175. package/fesm2022/koobiq-components-popover.mjs.map +1 -1
  176. package/fesm2022/koobiq-components-resizer.mjs +156 -0
  177. package/fesm2022/koobiq-components-resizer.mjs.map +1 -0
  178. package/fesm2022/koobiq-components-scrollbar.mjs +3 -2
  179. package/fesm2022/koobiq-components-scrollbar.mjs.map +1 -1
  180. package/fesm2022/koobiq-components-search-expandable.mjs +4 -4
  181. package/fesm2022/koobiq-components-search-expandable.mjs.map +1 -1
  182. package/fesm2022/koobiq-components-select.mjs +8 -17
  183. package/fesm2022/koobiq-components-select.mjs.map +1 -1
  184. package/fesm2022/koobiq-components-sidepanel.mjs +2 -2
  185. package/fesm2022/koobiq-components-sidepanel.mjs.map +1 -1
  186. package/fesm2022/koobiq-components-split-button.mjs +46 -5
  187. package/fesm2022/koobiq-components-split-button.mjs.map +1 -1
  188. package/fesm2022/koobiq-components-tags.mjs +125 -146
  189. package/fesm2022/koobiq-components-tags.mjs.map +1 -1
  190. package/fesm2022/koobiq-components-textarea.mjs +4 -4
  191. package/fesm2022/koobiq-components-textarea.mjs.map +1 -1
  192. package/fesm2022/koobiq-components-time-range.mjs +81 -112
  193. package/fesm2022/koobiq-components-time-range.mjs.map +1 -1
  194. package/fesm2022/koobiq-components-timepicker.mjs +4 -4
  195. package/fesm2022/koobiq-components-timepicker.mjs.map +1 -1
  196. package/fesm2022/koobiq-components-timezone.mjs +7 -5
  197. package/fesm2022/koobiq-components-timezone.mjs.map +1 -1
  198. package/fesm2022/koobiq-components-title.mjs +5 -1
  199. package/fesm2022/koobiq-components-title.mjs.map +1 -1
  200. package/fesm2022/koobiq-components-toggle.mjs +2 -2
  201. package/fesm2022/koobiq-components-toggle.mjs.map +1 -1
  202. package/fesm2022/koobiq-components-top-bar.mjs +2 -2
  203. package/fesm2022/koobiq-components-top-bar.mjs.map +1 -1
  204. package/fesm2022/koobiq-components-tree-select.mjs +102 -82
  205. package/fesm2022/koobiq-components-tree-select.mjs.map +1 -1
  206. package/fesm2022/koobiq-components-tree.mjs +28 -17
  207. package/fesm2022/koobiq-components-tree.mjs.map +1 -1
  208. package/file-upload/_file-upload-theme.scss +32 -34
  209. package/file-upload/file-upload-tokens.scss +1 -2
  210. package/file-upload/file-upload.scss +4 -7
  211. package/file-upload/multiple-file-upload.component.d.ts +1 -1
  212. package/file-upload/multiple-file-upload.component.scss +12 -14
  213. package/file-upload/single-file-upload.component.d.ts +1 -0
  214. package/file-upload/single-file-upload.component.scss +5 -7
  215. package/filter-bar/filter-bar.d.ts +3 -1
  216. package/filter-bar/filter-search.scss +1 -3
  217. package/filter-bar/filters.d.ts +1 -0
  218. package/filter-bar/pipes/base-pipe.d.ts +5 -1
  219. package/filter-bar/pipes/pipe-date.scss +4 -2
  220. package/filter-bar/pipes/pipe-title.d.ts +2 -0
  221. package/form-field/fieldset-tokens.scss +2 -1
  222. package/form-field/form-field-tokens.scss +2 -2
  223. package/form-field/form-field.scss +9 -1
  224. package/form-field/stepper.d.ts +28 -6
  225. package/inline-edit/inline-edit.d.ts +5 -1
  226. package/input/input.module.d.ts +2 -1
  227. package/list/list-selection.component.d.ts +12 -1
  228. package/markdown/_markdown-theme.scss +0 -1
  229. package/markdown/markdown.scss +2 -4
  230. package/modal/modal-tokens.scss +2 -1
  231. package/modal/modal-util.d.ts +5 -2
  232. package/modal/modal.scss +3 -4
  233. package/navbar/_navbar-item_vertical.scss +44 -43
  234. package/navbar/_navbar-theme.scss +14 -35
  235. package/navbar/navbar-brand.component.d.ts +39 -0
  236. package/navbar/navbar-brand.scss +78 -45
  237. package/navbar/navbar-divider.scss +1 -1
  238. package/navbar/navbar-item.component.d.ts +4 -36
  239. package/navbar/navbar-toggle.component.d.ts +23 -0
  240. package/navbar/navbar-toggle.scss +64 -0
  241. package/navbar/navbar-tokens.scss +1 -0
  242. package/navbar/navbar.module.d.ts +8 -6
  243. package/navbar/public-api.d.ts +2 -0
  244. package/navbar/vertical-navbar.component.d.ts +20 -2
  245. package/navbar/vertical-navbar.scss +14 -9
  246. package/navbar-ic/navbar-ic-header.d.ts +3 -2
  247. package/navbar-ic/navbar-ic-header.scss +0 -4
  248. package/navbar-ic/navbar-ic-item.d.ts +1 -0
  249. package/navbar-ic/navbar-ic-item.scss +0 -4
  250. package/navbar-ic/navbar-ic.animation.d.ts +1 -0
  251. package/navbar-ic/navbar-ic.d.ts +7 -0
  252. package/notification-center/notification-center.d.ts +12 -9
  253. package/package.json +16 -10
  254. package/popover/popover-tokens.scss +1 -0
  255. package/popover/popover.component.d.ts +12 -1
  256. package/popover/popover.scss +3 -4
  257. package/prebuilt-themes/dark-theme.css +1 -1
  258. package/prebuilt-themes/light-theme.css +1 -1
  259. package/prebuilt-themes/theme.css +1 -1
  260. package/resizer/index.d.ts +2 -0
  261. package/resizer/module.d.ts +7 -0
  262. package/{content-panel/resizable.d.ts → resizer/resizer.d.ts} +18 -13
  263. package/schematics/collection.json +5 -0
  264. package/schematics/migrations/icons-replacement/README.md +93 -0
  265. package/schematics/migrations/icons-replacement/data.js +92 -0
  266. package/schematics/migrations/icons-replacement/index.js +84 -0
  267. package/schematics/migrations/icons-replacement/schema.json +32 -0
  268. package/schematics/ng-add/index.js +6 -6
  269. package/scrollbar/scrollbar.component.scss +2 -3
  270. package/select/select.module.d.ts +2 -1
  271. package/select/select.scss +1 -17
  272. package/sidepanel/sidepanel-tokens.scss +2 -0
  273. package/sidepanel/sidepanel.scss +2 -0
  274. package/split-button/_split-button-theme.scss +89 -34
  275. package/split-button/split-button.d.ts +11 -5
  276. package/split-button/split-button.scss +40 -51
  277. package/tags/tag-input.d.ts +16 -7
  278. package/tags/tag-list.component.d.ts +44 -21
  279. package/tags/tag-list.scss +13 -14
  280. package/tags/tag.component.d.ts +20 -15
  281. package/textarea/textarea-tokens.scss +6 -1
  282. package/textarea/textarea.module.d.ts +2 -1
  283. package/textarea/textarea.scss +4 -0
  284. package/time-range/constants.d.ts +12 -1
  285. package/time-range/time-range-editor.d.ts +7 -9
  286. package/time-range/time-range-title-as-form-field.d.ts +1 -0
  287. package/time-range/time-range.d.ts +5 -2
  288. package/time-range/time-range.service.d.ts +7 -11
  289. package/time-range/types.d.ts +37 -11
  290. package/timepicker/timepicker.module.d.ts +2 -1
  291. package/timezone/timezone-option.component.scss +6 -0
  292. package/timezone/timezone.module.d.ts +1 -1
  293. package/toggle/_toggle-theme.scss +8 -5
  294. package/toggle/toggle-tokens.scss +0 -1
  295. package/toggle/toggle.scss +11 -15
  296. package/top-bar/top-bar-tokens.scss +1 -1
  297. package/top-bar/top-bar.scss +3 -0
  298. package/tree/tree-option.component.d.ts +1 -0
  299. package/tree/tree-selection.component.d.ts +11 -2
  300. package/tree-select/tree-select.component.d.ts +5 -5
  301. package/tree-select/tree-select.module.d.ts +2 -1
  302. package/tree-select/tree-select.scss +4 -0
  303. package/core/common-behaviors/hovered.d.ts +0 -13
  304. package/core/locales/fa-IR.d.ts +0 -162
  305. package/core/locales/zh-CN.d.ts +0 -162
  306. package/esm2022/content-panel/resizable.mjs +0 -138
  307. package/esm2022/core/common-behaviors/hovered.mjs +0 -31
  308. package/esm2022/core/locales/fa-IR.mjs +0 -173
  309. package/esm2022/core/locales/zh-CN.mjs +0 -161
@@ -1,914 +1,966 @@
1
- import * as i1 from '@angular/cdk/a11y';
2
- import { A11yModule } from '@angular/cdk/a11y';
3
1
  import { coerceBooleanProperty } from '@angular/cdk/coercion';
4
- import { Platform, PlatformModule } from '@angular/cdk/platform';
5
- import { DOCUMENT } from '@angular/common';
6
2
  import * as i0 from '@angular/core';
7
- import { inject, DestroyRef, Directive, ContentChildren, forwardRef, Input, contentChildren, effect, Component, ChangeDetectionStrategy, ViewEncapsulation, ContentChild, Optional, booleanAttribute, ChangeDetectorRef, NgModule } from '@angular/core';
3
+ import { Directive, inject, booleanAttribute, ContentChild, Input, ChangeDetectorRef, Component, ChangeDetectionStrategy, ViewEncapsulation, Optional, DestroyRef, ContentChildren, forwardRef, contentChildren, effect, InjectionToken, NgZone, afterNextRender, NgModule } from '@angular/core';
8
4
  import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
9
- import { isVerticalMovement, isHorizontalMovement, TAB, RIGHT_ARROW, LEFT_ARROW, DOWN_ARROW, UP_ARROW, NUMPAD_DIVIDE, SLASH, SPACE, ENTER } from '@koobiq/cdk/keycodes';
5
+ import { kbqInjectNativeElement, KBQ_WINDOW, PopUpTriggers, PopUpPlacements, ruRULocaleData, KBQ_LOCALE_SERVICE } from '@koobiq/components/core';
6
+ import * as i2$1 from '@koobiq/components/tooltip';
7
+ import { KbqTooltipTrigger, KbqToolTipModule } from '@koobiq/components/tooltip';
8
+ import * as i1 from '@angular/cdk/a11y';
9
+ import { CdkMonitorFocus, A11yModule } from '@angular/cdk/a11y';
10
+ import { Platform, PlatformModule } from '@angular/cdk/platform';
11
+ import { DOWN_ARROW, RIGHT_ARROW, isVerticalMovement, isHorizontalMovement, TAB, LEFT_ARROW, UP_ARROW, NUMPAD_DIVIDE, SLASH, SPACE, ENTER } from '@koobiq/cdk/keycodes';
10
12
  import { KbqButton, KbqButtonCssStyler } from '@koobiq/components/button';
11
- import { kbqInjectNativeElement, KBQ_WINDOW, PopUpTriggers, PopUpPlacements } from '@koobiq/components/core';
12
- import * as i3 from '@koobiq/components/dropdown';
13
+ import * as i2 from '@koobiq/components/dropdown';
13
14
  import { KbqFormField } from '@koobiq/components/form-field';
14
- import * as i5 from '@koobiq/components/icon';
15
+ import * as i3 from '@koobiq/components/icon';
15
16
  import { KbqIcon, KbqIconModule } from '@koobiq/components/icon';
16
- import * as i4 from '@koobiq/components/tooltip';
17
- import { KbqTooltipTrigger, TooltipModifier, KbqToolTipModule } from '@koobiq/components/tooltip';
18
- import { merge, Subject, EMPTY } from 'rxjs';
19
- import { startWith, debounceTime, take } from 'rxjs/operators';
17
+ import { Subject, merge } from 'rxjs';
18
+ import { take, startWith, debounceTime } from 'rxjs/operators';
20
19
  import { FocusKeyManager } from '@koobiq/cdk/a11y';
21
20
 
22
- class KbqFocusableComponent {
23
- get tabIndex() {
24
- return this._tabIndex;
21
+ class KbqNavbarLogo {
22
+ constructor() {
23
+ this.hovered = new Subject();
25
24
  }
26
- set tabIndex(value) {
27
- this._tabIndex = value;
25
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: KbqNavbarLogo, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
26
+ /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.14", type: KbqNavbarLogo, selector: "kbq-navbar-logo, [kbq-navbar-logo]", host: { listeners: { "mouseenter": "hovered.next(true)", "mouseleave": "hovered.next(false)" }, classAttribute: "kbq-navbar-logo" }, ngImport: i0 }); }
27
+ }
28
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: KbqNavbarLogo, decorators: [{
29
+ type: Directive,
30
+ args: [{
31
+ selector: 'kbq-navbar-logo, [kbq-navbar-logo]',
32
+ host: {
33
+ class: 'kbq-navbar-logo',
34
+ '(mouseenter)': 'hovered.next(true)',
35
+ '(mouseleave)': 'hovered.next(false)'
36
+ }
37
+ }]
38
+ }] });
39
+ class KbqNavbarBento {
40
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: KbqNavbarBento, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
41
+ /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.14", type: KbqNavbarBento, selector: "kbq-navbar-item[bento], [kbq-navbar-item][bento]", host: { classAttribute: "kbq-navbar-bento" }, ngImport: i0 }); }
42
+ }
43
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: KbqNavbarBento, decorators: [{
44
+ type: Directive,
45
+ args: [{
46
+ selector: 'kbq-navbar-item[bento], [kbq-navbar-item][bento]',
47
+ host: {
48
+ class: 'kbq-navbar-bento'
49
+ }
50
+ }]
51
+ }] });
52
+ class KbqNavbarTitle {
53
+ constructor() {
54
+ this.isBrowser = inject(Platform).isBrowser;
55
+ this.nativeElement = kbqInjectNativeElement();
56
+ this.window = inject(KBQ_WINDOW);
57
+ this.hovered = new Subject();
58
+ this.isTextOverflown = false;
28
59
  }
29
- get optionFocusChanges() {
30
- return merge(...this.focusableItems.map((item) => item.onFocus));
60
+ get text() {
61
+ return this.nativeElement.textContent || '';
31
62
  }
32
- get optionBlurChanges() {
33
- return merge(...this.focusableItems.map((option) => option.onBlur));
63
+ get isOverflown() {
64
+ return this.nativeElement.scrollWidth > this.nativeElement.clientWidth;
34
65
  }
35
- constructor(changeDetectorRef, elementRef, focusMonitor) {
36
- this.changeDetectorRef = changeDetectorRef;
66
+ getOuterElementWidth() {
67
+ if (!this.isBrowser)
68
+ return 0;
69
+ const { width, marginLeft, marginRight } = this.window.getComputedStyle(this.nativeElement);
70
+ return [width, marginLeft, marginRight].reduce((acc, item) => acc + parseInt(item) || 0, 0);
71
+ }
72
+ checkTextOverflown() {
73
+ this.isTextOverflown = this.text.length > 18;
74
+ }
75
+ ngAfterViewInit() {
76
+ this.outerElementWidth = this.getOuterElementWidth();
77
+ }
78
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: KbqNavbarTitle, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
79
+ /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.14", type: KbqNavbarTitle, selector: "kbq-navbar-title, [kbq-navbar-title]", host: { listeners: { "mouseenter": "hovered.next(true)", "mouseleave": "hovered.next(false)" }, properties: { "class.kbq-navbar-title_small": "isTextOverflown" }, classAttribute: "kbq-navbar-title" }, ngImport: i0 }); }
80
+ }
81
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: KbqNavbarTitle, decorators: [{
82
+ type: Directive,
83
+ args: [{
84
+ selector: 'kbq-navbar-title, [kbq-navbar-title]',
85
+ host: {
86
+ class: 'kbq-navbar-title',
87
+ '[class.kbq-navbar-title_small]': 'isTextOverflown',
88
+ '(mouseenter)': 'hovered.next(true)',
89
+ '(mouseleave)': 'hovered.next(false)'
90
+ }
91
+ }]
92
+ }] });
93
+ class KbqNavbarDivider {
94
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: KbqNavbarDivider, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
95
+ /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.14", type: KbqNavbarDivider, selector: "kbq-navbar-divider", host: { classAttribute: "kbq-navbar-divider" }, ngImport: i0 }); }
96
+ }
97
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: KbqNavbarDivider, decorators: [{
98
+ type: Directive,
99
+ args: [{
100
+ selector: 'kbq-navbar-divider',
101
+ host: {
102
+ class: 'kbq-navbar-divider'
103
+ }
104
+ }]
105
+ }] });
106
+ class KbqNavbarFocusableItem {
107
+ get nestedElement() {
108
+ return this.button || this.formField;
109
+ }
110
+ get tooltip() {
111
+ return this._tooltip;
112
+ }
113
+ get hasFocus() {
114
+ return !!this.nestedElement?.hasFocus || this._hasFocus;
115
+ }
116
+ set hasFocus(value) {
117
+ this._hasFocus = value;
118
+ }
119
+ /** Whether the item is disabled. */
120
+ get disabled() {
121
+ return this._disabled;
122
+ }
123
+ set disabled(value) {
124
+ if (value !== this._disabled) {
125
+ this._disabled = value;
126
+ this.changeDetector.markForCheck();
127
+ }
128
+ }
129
+ get tabIndex() {
130
+ return -1;
131
+ }
132
+ constructor(elementRef, changeDetector, focusMonitor, ngZone) {
37
133
  this.elementRef = elementRef;
134
+ this.changeDetector = changeDetector;
38
135
  this.focusMonitor = focusMonitor;
39
- this._tabIndex = 0;
40
- this.destroyRef = inject(DestroyRef);
41
- }
42
- ngAfterContentInit() {
43
- this.keyManager = new FocusKeyManager(this.focusableItems).withTypeAhead();
44
- this.keyManager.tabOut.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => {
45
- this.tabIndex = -1;
46
- setTimeout(() => {
47
- this.tabIndex = 0;
48
- this.changeDetectorRef.markForCheck();
49
- });
50
- });
51
- this.focusableItems.changes.pipe(startWith(null), takeUntilDestroyed(this.destroyRef)).subscribe(() => {
52
- this.resetOptions();
53
- // Check to see if we need to update our tab index
54
- this.updateTabIndex();
55
- });
136
+ this.ngZone = ngZone;
137
+ this.onFocus = new Subject();
138
+ this.onBlur = new Subject();
139
+ this._hasFocus = false;
140
+ this._disabled = false;
56
141
  }
57
142
  ngAfterViewInit() {
58
- this.focusMonitor.monitor(this.elementRef).subscribe((focusOrigin) => {
59
- this.keyManager.setFocusOrigin(focusOrigin);
60
- });
143
+ this.focusMonitor.monitor(this.elementRef);
144
+ }
145
+ ngAfterContentInit() {
146
+ if (this.button) {
147
+ this.button.tabIndex = -1;
148
+ }
61
149
  }
62
150
  ngOnDestroy() {
63
151
  this.focusMonitor.stopMonitoring(this.elementRef);
64
152
  }
65
- focus() {
66
- if (this.focusableItems.length === 0) {
153
+ setTooltip(value) {
154
+ this._tooltip = value;
155
+ }
156
+ onFocusHandler() {
157
+ if (this.disabled || this.hasFocus) {
67
158
  return;
68
159
  }
69
- this.keyManager.setFirstItemActive();
160
+ this.onFocus.next({ item: this });
161
+ this.hasFocus = true;
162
+ this.changeDetector.markForCheck();
163
+ this.elementRef.nativeElement.focus();
70
164
  }
71
- blur() {
72
- if (!this.hasFocusedItem()) {
73
- this.keyManager.setActiveItem(-1);
165
+ focus(origin) {
166
+ if (this.disabled || this.hasFocus) {
167
+ return;
74
168
  }
75
- this.changeDetectorRef.markForCheck();
76
- }
77
- resetOptions() {
78
- this.dropSubscriptions();
79
- this.listenToOptionsFocus();
80
- }
81
- dropSubscriptions() {
82
- if (this.optionFocusSubscription) {
83
- this.optionFocusSubscription.unsubscribe();
84
- this.optionFocusSubscription = null;
169
+ if (origin === 'keyboard') {
170
+ this.focusMonitor.focusVia(this.elementRef, origin);
85
171
  }
86
- if (this.optionBlurSubscription) {
87
- this.optionBlurSubscription.unsubscribe();
88
- this.optionBlurSubscription = null;
172
+ if (this.nestedElement) {
173
+ this.nestedElement.focusViaKeyboard();
174
+ this.changeDetector.markForCheck();
175
+ return;
89
176
  }
177
+ this.tooltip?.show();
178
+ this.onFocusHandler();
90
179
  }
91
- listenToOptionsFocus() {
92
- this.optionFocusSubscription = this.optionFocusChanges.subscribe((event) => {
93
- const index = this.focusableItems.toArray().indexOf(event.item);
94
- if (this.isValidIndex(index)) {
95
- this.keyManager.updateActiveItem(index);
96
- }
180
+ blur() {
181
+ // When animations are enabled, Angular may end up removing the option from the DOM a little
182
+ // earlier than usual, causing it to be blurred and throwing off the logic in the list
183
+ // that moves focus not the next item. To work around the issue, we defer marking the option
184
+ // as not focused until the next time the zone stabilizes.
185
+ this.ngZone.onStable
186
+ .asObservable()
187
+ .pipe(take(1))
188
+ .subscribe(() => {
189
+ this.ngZone.run(() => {
190
+ this._hasFocus = false;
191
+ this.tooltip?.hide();
192
+ if (this.button?.hasFocus) {
193
+ return;
194
+ }
195
+ this.onBlur.next({ item: this });
196
+ });
97
197
  });
98
- this.optionBlurSubscription = this.optionBlurChanges.subscribe(() => this.blur());
99
- }
100
- updateTabIndex() {
101
- this.tabIndex = this.focusableItems.length === 0 ? -1 : 0;
102
- }
103
- isValidIndex(index) {
104
- return index >= 0 && index < this.focusableItems.length;
105
198
  }
106
- hasFocusedItem() {
107
- return this.focusableItems.some((item) => item.hasFocus);
199
+ getLabel() {
200
+ return this.title?.text || '';
108
201
  }
109
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: KbqFocusableComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i1.FocusMonitor }], target: i0.ɵɵFactoryTarget.Directive }); }
110
- /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.14", type: KbqFocusableComponent, inputs: { tabIndex: "tabIndex" }, queries: [{ propertyName: "focusableItems", predicate: i0.forwardRef(() => KbqNavbarFocusableItem), descendants: true }], ngImport: i0 }); }
111
- }
112
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: KbqFocusableComponent, decorators: [{
113
- type: Directive
114
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i1.FocusMonitor }], propDecorators: { focusableItems: [{
115
- type: ContentChildren,
116
- args: [forwardRef(() => KbqNavbarFocusableItem), { descendants: true }]
117
- }], tabIndex: [{
118
- type: Input
119
- }] } });
120
- class KbqNavbarContainer {
121
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: KbqNavbarContainer, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
122
- /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.14", type: KbqNavbarContainer, selector: "kbq-navbar-container", host: { classAttribute: "kbq-navbar-container" }, ngImport: i0 }); }
202
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: KbqNavbarFocusableItem, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1.FocusMonitor }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive }); }
203
+ /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "18.2.14", type: KbqNavbarFocusableItem, selector: "kbq-navbar-item, [kbq-navbar-item], kbq-navbar-brand, [kbq-navbar-brand], kbq-navbar-toggle", inputs: { disabled: ["disabled", "disabled", booleanAttribute] }, host: { listeners: { "focus": "onFocusHandler()", "blur": "blur()" }, properties: { "attr.tabindex": "tabIndex", "attr.disabled": "disabled || null", "class.kbq-navbar-item_has-nested": "!!nestedElement", "class.kbq-disabled": "disabled" }, classAttribute: "kbq-navbar-focusable-item" }, queries: [{ propertyName: "title", first: true, predicate: KbqNavbarTitle, descendants: true }, { propertyName: "button", first: true, predicate: KbqButton, descendants: true }, { propertyName: "formField", first: true, predicate: KbqFormField, descendants: true }], ngImport: i0 }); }
123
204
  }
124
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: KbqNavbarContainer, decorators: [{
205
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: KbqNavbarFocusableItem, decorators: [{
125
206
  type: Directive,
126
207
  args: [{
127
- selector: 'kbq-navbar-container',
208
+ selector: 'kbq-navbar-item, [kbq-navbar-item], kbq-navbar-brand, [kbq-navbar-brand], kbq-navbar-toggle',
128
209
  host: {
129
- class: 'kbq-navbar-container'
210
+ '[attr.tabindex]': 'tabIndex',
211
+ '[attr.disabled]': 'disabled || null',
212
+ class: 'kbq-navbar-focusable-item',
213
+ '[class.kbq-navbar-item_has-nested]': '!!nestedElement',
214
+ '[class.kbq-disabled]': 'disabled',
215
+ '(focus)': 'onFocusHandler()',
216
+ '(blur)': 'blur()'
130
217
  }
131
218
  }]
132
- }] });
133
- class KbqNavbar extends KbqFocusableComponent {
134
- get width() {
135
- return this.elementRef.nativeElement.getBoundingClientRect().width;
219
+ }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1.FocusMonitor }, { type: i0.NgZone }], propDecorators: { title: [{
220
+ type: ContentChild,
221
+ args: [KbqNavbarTitle]
222
+ }], button: [{
223
+ type: ContentChild,
224
+ args: [KbqButton]
225
+ }], formField: [{
226
+ type: ContentChild,
227
+ args: [KbqFormField]
228
+ }], disabled: [{
229
+ type: Input,
230
+ args: [{ transform: booleanAttribute }]
231
+ }] } });
232
+ class KbqNavbarRectangleElement {
233
+ constructor() {
234
+ this.isBrowser = inject(Platform).isBrowser;
235
+ this.nativeElement = kbqInjectNativeElement();
236
+ this.window = inject(KBQ_WINDOW);
237
+ this.changeDetectorRef = inject(ChangeDetectorRef);
238
+ this.state = new Subject();
239
+ this._horizontal = false;
240
+ this._vertical = true;
136
241
  }
137
- get totalItemsWidth() {
138
- return this.rectangleElements().reduce((acc, item) => acc + item.getOuterElementWidth(), 0);
242
+ get horizontal() {
243
+ return this._horizontal;
139
244
  }
140
- get collapsableItems() {
141
- return this.navbarItems
142
- .toArray()
143
- .filter((item) => item.icon && item.title && item.collapsable)
144
- .reverse();
245
+ set horizontal(value) {
246
+ if (this._horizontal === value)
247
+ return;
248
+ this._horizontal = value;
249
+ this._vertical = !value;
250
+ this.state.next();
251
+ this.changeDetectorRef.markForCheck();
145
252
  }
146
- constructor(elementRef, changeDetectorRef, focusMonitor) {
147
- super(changeDetectorRef, elementRef, focusMonitor);
148
- this.elementRef = elementRef;
149
- this.changeDetectorRef = changeDetectorRef;
150
- this.focusMonitor = focusMonitor;
151
- this.rectangleElements = contentChildren(forwardRef(() => KbqNavbarRectangleElement), { descendants: true });
152
- this.resizeStream = new Subject();
153
- this.resizeDebounceInterval = 100;
154
- this.updateExpandedStateForItems = () => {
155
- const collapseDelta = this.totalItemsWidth - this.width;
156
- const needCollapse = collapseDelta > 0;
157
- if (needCollapse) {
158
- this.collapseItems(collapseDelta);
159
- }
160
- else {
161
- this.expandItems(collapseDelta);
162
- }
163
- };
164
- this.setItemsState = (rectangleElements) => {
165
- Promise.resolve().then(() => rectangleElements.forEach((item) => (item.horizontal = true)));
166
- };
167
- this.resizeSubscription = this.resizeStream
168
- .pipe(debounceTime(this.resizeDebounceInterval), takeUntilDestroyed())
169
- .subscribe(this.updateExpandedStateForItems);
170
- effect(() => this.setItemsState(this.rectangleElements()));
253
+ get vertical() {
254
+ return this._vertical;
171
255
  }
172
- ngAfterContentInit() {
173
- super.ngAfterContentInit();
174
- this.keyManager.withVerticalOrientation(false).withHorizontalOrientation('ltr');
256
+ set vertical(value) {
257
+ if (this._vertical === value)
258
+ return;
259
+ this._vertical = value;
260
+ this._horizontal = !value;
261
+ this.state.next();
262
+ this.changeDetectorRef.markForCheck();
175
263
  }
176
- ngAfterViewInit() {
177
- // Note: this wait is required for loading and rendering fonts for icons;
178
- // unfortunately we cannot control font rendering
179
- setTimeout(this.updateExpandedStateForItems);
264
+ get collapsed() {
265
+ return this._collapsed;
180
266
  }
181
- ngOnDestroy() {
182
- this.resizeSubscription.unsubscribe();
183
- super.ngOnDestroy();
267
+ set collapsed(value) {
268
+ this._collapsed = value;
269
+ this.state.next();
184
270
  }
185
- onKeyDown(event) {
186
- const keyCode = event.keyCode;
187
- if (!this.eventFromInput(event) && (isVerticalMovement(event) || isHorizontalMovement(event))) {
188
- event.preventDefault();
189
- }
190
- if (keyCode === TAB) {
191
- this.keyManager.tabOut.next();
192
- return;
193
- }
194
- else if (this.eventFromInput(event) && this.cursorOnLastPosition(event) && keyCode === RIGHT_ARROW) {
195
- this.keyManager.setNextItemActive();
196
- }
197
- else if (this.eventFromInput(event) && this.cursorOnFirstPosition(event) && keyCode === LEFT_ARROW) {
198
- this.keyManager.setPreviousItemActive();
271
+ getOuterElementWidth() {
272
+ if (!this.isBrowser)
273
+ return 0;
274
+ const { width, marginLeft, marginRight } = this.window.getComputedStyle(this.nativeElement);
275
+ return [width, marginLeft, marginRight].reduce((acc, item) => acc + parseInt(item), 0);
276
+ }
277
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: KbqNavbarRectangleElement, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
278
+ /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.14", type: KbqNavbarRectangleElement, selector: "kbq-navbar-item, [kbq-navbar-item], kbq-navbar-divider, kbq-navbar-brand, [kbq-navbar-brand]", host: { properties: { "class.kbq-vertical": "vertical", "class.kbq-horizontal": "horizontal", "class.kbq-expanded": "vertical && !collapsed", "class.kbq-collapsed": "vertical && collapsed" } }, queries: [{ propertyName: "button", first: true, predicate: KbqButtonCssStyler, descendants: true }], ngImport: i0 }); }
279
+ }
280
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: KbqNavbarRectangleElement, decorators: [{
281
+ type: Directive,
282
+ args: [{
283
+ selector: 'kbq-navbar-item, [kbq-navbar-item], kbq-navbar-divider, kbq-navbar-brand, [kbq-navbar-brand]',
284
+ host: {
285
+ '[class.kbq-vertical]': 'vertical',
286
+ '[class.kbq-horizontal]': 'horizontal',
287
+ '[class.kbq-expanded]': 'vertical && !collapsed',
288
+ '[class.kbq-collapsed]': 'vertical && collapsed'
289
+ }
290
+ }]
291
+ }], propDecorators: { button: [{
292
+ type: ContentChild,
293
+ args: [KbqButtonCssStyler]
294
+ }] } });
295
+ class KbqNavbarItem extends KbqTooltipTrigger {
296
+ get trigger() {
297
+ return this._trigger;
298
+ }
299
+ set trigger(value) {
300
+ if (value) {
301
+ this._trigger = value;
302
+ this.initListeners();
199
303
  }
200
- else if (!this.eventFromInput(event)) {
201
- this.keyManager.onKeydown(event);
304
+ }
305
+ set collapsed(value) {
306
+ if (this._collapsed !== value) {
307
+ this._collapsed = value;
308
+ this.updateTooltip();
202
309
  }
203
310
  }
204
- eventFromInput(event) {
205
- return !!event.target.attributes.getNamedItem('kbqinput');
311
+ // todo in future need rename to 'collapsed'
312
+ get isCollapsed() {
313
+ return this._collapsed ?? this.rectangleElement.collapsed;
206
314
  }
207
- cursorOnFirstPosition(event) {
208
- const input = event.target;
209
- return input.selectionStart === 0;
315
+ get croppedText() {
316
+ const croppedTitleText = this.title?.isOverflown ? this.titleText : '';
317
+ return `${croppedTitleText}`;
210
318
  }
211
- cursorOnLastPosition(event) {
212
- const input = event.target;
213
- return input.selectionEnd === input.value.length;
319
+ get collapsable() {
320
+ return this._collapsable;
214
321
  }
215
- collapseItems(collapseDelta) {
216
- let delta = collapseDelta;
217
- const unCollapsedItems = this.collapsableItems.filter((item) => !item.collapsed);
218
- for (const item of unCollapsedItems) {
219
- item.collapsed = true;
220
- delta -= item.getTitleWidth();
221
- if (delta < 0) {
222
- break;
223
- }
322
+ set collapsable(value) {
323
+ this._collapsable = coerceBooleanProperty(value);
324
+ }
325
+ get titleText() {
326
+ return this.collapsedText || this.title?.text || null;
327
+ }
328
+ get disabled() {
329
+ if (this._disabled !== undefined) {
330
+ return this._disabled;
224
331
  }
332
+ return !this.isCollapsed && !this.hasCroppedText;
225
333
  }
226
- expandItems(collapseDelta) {
227
- let delta = collapseDelta;
228
- this.collapsableItems
229
- .filter((item) => item.collapsed)
230
- .forEach((item) => {
231
- if (delta + item.getTitleWidth() < 0) {
232
- item.collapsed = false;
233
- delta += item.getTitleWidth();
234
- }
235
- });
334
+ set disabled(value) {
335
+ this._disabled = coerceBooleanProperty(value);
236
336
  }
237
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: KbqNavbar, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1.FocusMonitor }], target: i0.ɵɵFactoryTarget.Component }); }
238
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.14", type: KbqNavbar, selector: "kbq-navbar", host: { listeners: { "focus": "focus()", "blur": "blur()", "keydown": "onKeyDown($event)", "window:resize": "resizeStream.next($event)" }, properties: { "attr.tabindex": "tabIndex" }, classAttribute: "kbq-navbar" }, queries: [{ propertyName: "rectangleElements", predicate: i0.forwardRef(() => KbqNavbarRectangleElement), descendants: true, isSignal: true }, { propertyName: "navbarItems", predicate: i0.forwardRef(() => KbqNavbarItem), descendants: true }], usesInheritance: true, ngImport: i0, template: `
239
- <ng-content select="[kbq-navbar-container], kbq-navbar-container" />
240
- `, isInline: true, styles: ["button.kbq-navbar-item,button.kbq-navbar-brand,button.kbq-navbar-toggle{background:transparent;border:none}.kbq-navbar{display:flex;flex-direction:row;justify-content:space-between;align-items:center;position:relative}.kbq-navbar-container{display:flex;flex-shrink:0;flex-direction:row;justify-content:space-between;align-items:center;position:relative}.kbq-navbar .kbq-navbar-container+.kbq-navbar-container{margin-left:var(--kbq-size-xxl)}.kbq-navbar,.kbq-vertical-navbar .kbq-vertical-navbar__container{background-color:var(--kbq-navbar-background)}.kbq-vertical-navbar .kbq-vertical-navbar__container{border-right:1px solid var(--kbq-navbar-border)}.kbq-navbar-item,.kbq-navbar-brand,.kbq-navbar-toggle{cursor:pointer}.kbq-navbar-item:not(.kbq-navbar-item_has-nested):after,.kbq-navbar-brand:not(.kbq-navbar-item_has-nested):after,.kbq-navbar-toggle:not(.kbq-navbar-item_has-nested):after{display:block;background:var(--kbq-navbar-item-default-content-background)}.kbq-navbar-item .kbq-navbar-title,.kbq-navbar-brand .kbq-navbar-title,.kbq-navbar-toggle .kbq-navbar-title{color:var(--kbq-navbar-item-default-content-text)}.kbq-navbar-item>.kbq-icon.kbq-empty,.kbq-navbar-brand>.kbq-icon.kbq-empty,.kbq-navbar-toggle>.kbq-icon.kbq-empty{color:var(--kbq-navbar-item-default-content-icon-left)!important}.kbq-navbar-item .kbq-navbar-item__arrow-icon,.kbq-navbar-brand .kbq-navbar-item__arrow-icon,.kbq-navbar-toggle .kbq-navbar-item__arrow-icon{color:var(--kbq-navbar-item-default-content-icon-right)!important}.kbq-navbar-item:hover:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand):not(.kbq-navbar-item_has-nested):after,.kbq-navbar-brand:hover:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand):not(.kbq-navbar-item_has-nested):after,.kbq-navbar-toggle:hover:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand):not(.kbq-navbar-item_has-nested):after{display:block;background:var(--kbq-navbar-item-states-hover-content-background)}.kbq-navbar-item:hover:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand) .kbq-navbar-title,.kbq-navbar-brand:hover:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand) .kbq-navbar-title,.kbq-navbar-toggle:hover:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand) .kbq-navbar-title{color:var(--kbq-navbar-item-states-hover-content-text)}.kbq-navbar-item:hover:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand)>.kbq-icon.kbq-empty,.kbq-navbar-brand:hover:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand)>.kbq-icon.kbq-empty,.kbq-navbar-toggle:hover:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand)>.kbq-icon.kbq-empty{color:var(--kbq-navbar-item-states-hover-content-icon-left)!important}.kbq-navbar-item:hover:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand) .kbq-navbar-item__arrow-icon,.kbq-navbar-brand:hover:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand) .kbq-navbar-item__arrow-icon,.kbq-navbar-toggle:hover:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand) .kbq-navbar-item__arrow-icon{color:var(--kbq-navbar-item-states-hover-content-icon-right)!important}.kbq-navbar-item.cdk-focused.cdk-keyboard-focused,.kbq-navbar-brand.cdk-focused.cdk-keyboard-focused,.kbq-navbar-toggle.cdk-focused.cdk-keyboard-focused{outline:none}.kbq-navbar-item.cdk-focused.cdk-keyboard-focused:after,.kbq-navbar-brand.cdk-focused.cdk-keyboard-focused:after,.kbq-navbar-toggle.cdk-focused.cdk-keyboard-focused:after{display:block;box-shadow:inset 0 0 0 2px var(--kbq-states-line-focus-theme)}.kbq-navbar-item:active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand):not(.kbq-navbar-item_has-nested):after,.kbq-navbar-item.kbq-active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand):not(.kbq-navbar-item_has-nested):after,.kbq-navbar-brand:active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand):not(.kbq-navbar-item_has-nested):after,.kbq-navbar-brand.kbq-active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand):not(.kbq-navbar-item_has-nested):after,.kbq-navbar-toggle:active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand):not(.kbq-navbar-item_has-nested):after,.kbq-navbar-toggle.kbq-active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand):not(.kbq-navbar-item_has-nested):after{display:block;background:var(--kbq-navbar-item-states-selected-content-background)}.kbq-navbar-item:active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand) .kbq-navbar-title,.kbq-navbar-item.kbq-active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand) .kbq-navbar-title,.kbq-navbar-brand:active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand) .kbq-navbar-title,.kbq-navbar-brand.kbq-active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand) .kbq-navbar-title,.kbq-navbar-toggle:active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand) .kbq-navbar-title,.kbq-navbar-toggle.kbq-active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand) .kbq-navbar-title{color:var(--kbq-navbar-item-states-selected-content-text)}.kbq-navbar-item:active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand)>.kbq-icon.kbq-empty,.kbq-navbar-item.kbq-active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand)>.kbq-icon.kbq-empty,.kbq-navbar-brand:active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand)>.kbq-icon.kbq-empty,.kbq-navbar-brand.kbq-active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand)>.kbq-icon.kbq-empty,.kbq-navbar-toggle:active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand)>.kbq-icon.kbq-empty,.kbq-navbar-toggle.kbq-active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand)>.kbq-icon.kbq-empty{color:var(--kbq-navbar-item-states-selected-content-icon-left)!important}.kbq-navbar-item:active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand) .kbq-navbar-item__arrow-icon,.kbq-navbar-item.kbq-active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand) .kbq-navbar-item__arrow-icon,.kbq-navbar-brand:active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand) .kbq-navbar-item__arrow-icon,.kbq-navbar-brand.kbq-active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand) .kbq-navbar-item__arrow-icon,.kbq-navbar-toggle:active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand) .kbq-navbar-item__arrow-icon,.kbq-navbar-toggle.kbq-active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand) .kbq-navbar-item__arrow-icon{color:var(--kbq-navbar-item-states-selected-content-icon-right)!important}.kbq-navbar-item.kbq-navbar-focusable-item,.kbq-navbar-brand.kbq-navbar-focusable-item,.kbq-navbar-toggle.kbq-navbar-focusable-item{outline:none}.kbq-navbar-item.kbq-disabled,.kbq-navbar-brand.kbq-disabled,.kbq-navbar-toggle.kbq-disabled{pointer-events:none;cursor:default}.kbq-navbar-item.kbq-disabled:not(.kbq-navbar-item_has-nested):after,.kbq-navbar-brand.kbq-disabled:not(.kbq-navbar-item_has-nested):after,.kbq-navbar-toggle.kbq-disabled:not(.kbq-navbar-item_has-nested):after{display:block;background:var(--kbq-navbar-item-states-disabled-content-background)}.kbq-navbar-item.kbq-disabled .kbq-navbar-title,.kbq-navbar-brand.kbq-disabled .kbq-navbar-title,.kbq-navbar-toggle.kbq-disabled .kbq-navbar-title{color:var(--kbq-navbar-item-states-disabled-content-text)}.kbq-navbar-item.kbq-disabled>.kbq-icon.kbq-empty,.kbq-navbar-brand.kbq-disabled>.kbq-icon.kbq-empty,.kbq-navbar-toggle.kbq-disabled>.kbq-icon.kbq-empty{color:var(--kbq-navbar-item-states-disabled-content-icon-left)!important}.kbq-navbar-item.kbq-disabled .kbq-navbar-item__arrow-icon,.kbq-navbar-brand.kbq-disabled .kbq-navbar-item__arrow-icon,.kbq-navbar-toggle.kbq-disabled .kbq-navbar-item__arrow-icon{color:var(--kbq-navbar-item-states-disabled-content-icon-right)!important}.kbq-navbar-brand.kbq-vertical:hover .kbq-navbar-logo{transform:scale(1.06)}.kbq-navbar-brand.kbq-horizontal:hover .kbq-navbar-logo{z-index:1}.kbq-navbar-divider{background:var(--kbq-line-contrast-less)}.kbq-navbar-title{font-size:var(--kbq-typography-text-normal-medium-font-size);font-style:var(--kbq-typography-text-normal-medium-font-style);font-weight:var(--kbq-typography-text-normal-medium-font-weight);line-height:var(--kbq-typography-text-normal-medium-line-height);font-family:var(--kbq-typography-text-normal-medium-font-family);text-transform:var(--kbq-typography-text-normal-medium-text-transform);font-feature-settings:var(--kbq-typography-text-normal-medium-font-feature-settings);letter-spacing:var(--kbq-typography-text-normal-medium-letter-spacing)}.kbq-navbar-brand .kbq-navbar-title{font-size:var(--kbq-typography-navbar-title-font-size);font-style:var(--kbq-typography-navbar-title-font-style);font-weight:var(--kbq-typography-navbar-title-font-weight);line-height:var(--kbq-typography-navbar-title-line-height);font-family:var(--kbq-typography-navbar-title-font-family);text-transform:var(--kbq-typography-navbar-title-text-transform);font-feature-settings:var(--kbq-typography-navbar-title-font-feature-settings);letter-spacing:var(--kbq-typography-navbar-title-letter-spacing)}\n", ".kbq-truncate-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kbq-no-select{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.kbq-navbar-item.kbq-vertical .kbq-navbar-item__container{gap:var(--kbq-size-m)}.kbq-navbar-item.kbq-vertical.kbq-expanded{height:var(--kbq-size-5xl);align-items:center;padding-right:var(--kbq-size-xl);padding-left:var(--kbq-size-xl);gap:var(--kbq-size-m)}.kbq-navbar-item.kbq-vertical.kbq-expanded:after{top:var(--kbq-size-xxs);right:var(--kbq-size-s);bottom:var(--kbq-size-xxs);left:var(--kbq-size-s)}.kbq-navbar-item.kbq-vertical.kbq-expanded.kbq-navbar-bento{position:absolute;display:flex;justify-content:center;align-items:center;top:var(--kbq-size-xxs);right:var(--kbq-size-xxs);z-index:1;padding:var(--kbq-size-s);height:var(--kbq-size-5xl);width:var(--kbq-size-5xl)}.kbq-navbar-item.kbq-vertical.kbq-expanded.kbq-navbar-bento:after{top:var(--kbq-size-s);right:var(--kbq-size-s);bottom:var(--kbq-size-s);left:var(--kbq-size-s)}.kbq-navbar-item.kbq-vertical.kbq-expanded.kbq-navbar-item_has-nested{align-items:center;padding:0 var(--kbq-size-m)}.kbq-navbar-item.kbq-vertical.kbq-collapsed{height:var(--kbq-size-5xl);width:var(--kbq-size-5xl);padding:var(--kbq-size-l);justify-content:center}.kbq-navbar-item.kbq-vertical.kbq-collapsed:after{top:var(--kbq-size-s);right:var(--kbq-size-s);bottom:var(--kbq-size-s);left:var(--kbq-size-s)}.kbq-navbar-item.kbq-vertical.kbq-collapsed .kbq-badge{position:absolute;z-index:1;top:var(--kbq-size-xs);right:var(--kbq-size-xs)}.kbq-navbar-item.kbq-vertical.kbq-collapsed .kbq-navbar-item__container{display:none}.kbq-navbar-item.kbq-vertical>.kbq-icon{display:flex;justify-content:center;align-items:center}.kbq-navbar-item.kbq-horizontal{position:relative;flex-direction:row;box-sizing:border-box;outline:none;-webkit-tap-highlight-color:transparent;min-height:var(--kbq-size-3xl);min-width:var(--kbq-size-3xl);margin:var(--kbq-size-s);justify-content:center}.kbq-navbar-item.kbq-horizontal:before{top:calc(-1 * var(--kbq-size-s));left:calc(-1 * var(--kbq-size-s));right:calc(-1 * var(--kbq-size-s));bottom:calc(-1 * var(--kbq-size-s))}.kbq-navbar-item.kbq-horizontal:after{inset:0}.kbq-navbar-item.kbq-horizontal .kbq-navbar-item__title{padding-left:var(--kbq-size-xxs);padding-right:var(--kbq-size-xxs)}.kbq-navbar-item.kbq-horizontal .kbq-navbar-item__arrow-icon{padding-left:var(--kbq-size-xxs)}.kbq-navbar-item.kbq-horizontal.kbq-navbar-item_with-title:not(.kbq-navbar-item_collapsed){margin-left:0;margin-right:0;padding-right:var(--kbq-size-m);padding-left:var(--kbq-size-m)}.kbq-navbar-item.kbq-horizontal.kbq-navbar-item_with-title:not(.kbq-navbar-item_collapsed):before{left:0;right:0}.kbq-navbar-item.kbq-horizontal.kbq-navbar-item_with-title:not(.kbq-navbar-item_collapsed)>.kbq-icon{align-self:center;padding-right:var(--kbq-size-xxs)}.kbq-navbar-item.kbq-horizontal.kbq-navbar-bento{justify-content:center;margin-right:var(--kbq-size-xxs)}.kbq-navbar-item.kbq-horizontal.kbq-navbar-bento:before{right:calc(-1 * var(--kbq-size-xxs))}.kbq-navbar-item.kbq-horizontal.kbq-navbar-item_collapsed{justify-content:center;padding:var(--kbq-size-s)}.kbq-navbar-item.kbq-horizontal.kbq-navbar-item_collapsed .kbq-navbar-item__container{display:none}.kbq-navbar-item.kbq-horizontal .kbq-badge{position:absolute;z-index:1;top:-2px;right:-2px}.kbq-navbar-item.kbq-horizontal.kbq-navbar-item_has-nested{margin-left:var(--kbq-size-m);margin-right:var(--kbq-size-m)}.kbq-navbar-item.kbq-horizontal.kbq-navbar-item_has-nested:before{left:calc(-1 * var(--kbq-size-m));right:calc(-1 * var(--kbq-size-m))}.kbq-navbar-item{box-sizing:border-box;position:relative;display:flex;align-items:center;border-radius:var(--kbq-navbar-item-size-content-border-radius)}.kbq-navbar-item .kbq-icon{min-width:var(--kbq-size-l);min-height:var(--kbq-size-l)}.kbq-navbar-item .kbq-button-icon{position:absolute;padding-left:var(--kbq-size-xs);padding-right:var(--kbq-size-xs);top:50%;transform:translateY(-50%)}.kbq-navbar-item:before{position:absolute;content:\"\"}.kbq-navbar-item:after{position:absolute;content:\"\";display:none;border-radius:var(--kbq-navbar-item-size-content-border-radius)}.kbq-navbar-title{display:inline-block;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.kbq-navbar-item__title{display:flex;flex-direction:column;align-self:center;min-width:0}.kbq-navbar-item__container{display:flex;flex-direction:row;flex:1 1 auto;justify-content:space-between;min-width:0}.kbq-navbar-item__container .kbq-icon{align-self:center}.kbq-navbar-item.kbq-navbar-item_has-nested .kbq-button{flex:1}.kbq-navbar-item.kbq-navbar-item_has-nested .kbq-button .kbq-button-wrapper{justify-content:center}.kbq-navbar-item.kbq-navbar-item_has-nested .kbq-button .kbq-button-wrapper .kbq-icon.kbq-icon_left{margin-left:unset}.kbq-navbar-item.kbq-navbar-item_has-nested .kbq-button .kbq-button-wrapper .kbq-icon.kbq-icon_right{margin-right:unset}a.kbq-navbar-item,a.kbq-navbar-title{text-decoration:none}.kbq-navbar-item [kbq-button],.kbq-navbar-brand [kbq-button],.kbq-navbar-toggle [kbq-button]{z-index:1}\n", ".kbq-navbar-logo{display:flex}.kbq-navbar-brand{position:relative;display:flex;border-radius:var(--kbq-size-s)}.kbq-navbar-brand:after{position:absolute;content:\"\";display:none;border-radius:var(--kbq-navbar-item-size-content-border-radius)}.kbq-navbar-brand .kbq-navbar-title{cursor:pointer}a.kbq-navbar-brand{text-decoration:none}.kbq-navbar-brand.kbq-horizontal{padding:var(--kbq-size-s) var(--kbq-size-xs) var(--kbq-size-s) var(--kbq-size-xxs);align-items:center;gap:var(--kbq-size-s)}.kbq-navbar-brand.kbq-horizontal:after{top:var(--kbq-size-xxs);right:var(--kbq-size-xxs);bottom:var(--kbq-size-xxs);left:0}.kbq-navbar-brand.kbq-horizontal .kbq-navbar-title{padding-right:var(--kbq-size-m)}.kbq-navbar-brand.kbq-vertical .kbq-navbar-logo{align-items:center}.kbq-navbar-brand.kbq-vertical .kbq-navbar-title{display:block;align-items:center;padding-top:var(--kbq-size-xxs);padding-bottom:var(--kbq-size-xxs);height:var(--kbq-size-3xl);padding-left:0;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.kbq-navbar-brand.kbq-vertical.kbq-expanded{position:relative;height:var(--kbq-size-4xl);width:var(--kbq-size-4xl);margin:var(--kbq-size-l) var(--kbq-size-l) var(--kbq-size-4xl);flex-direction:column}.kbq-navbar-brand.kbq-vertical.kbq-expanded:after{inset:0}.kbq-navbar-brand.kbq-vertical.kbq-expanded .kbq-navbar-logo{min-height:var(--kbq-size-4xl);justify-content:center}.kbq-navbar-brand.kbq-vertical.kbq-expanded .kbq-navbar-title{position:absolute;left:var(--kbq-size-xxs);top:var(--kbq-size-4xl);max-width:200px}.kbq-navbar-brand.kbq-vertical.kbq-collapsed{height:var(--kbq-size-5xl);width:var(--kbq-size-5xl);justify-content:center}.kbq-navbar-brand.kbq-vertical.kbq-collapsed:after{top:var(--kbq-size-xxs);right:var(--kbq-size-xxs);bottom:var(--kbq-size-xxs);left:var(--kbq-size-xxs)}.kbq-navbar-brand.kbq-vertical.kbq-collapsed .kbq-navbar-title{display:none}\n", ".kbq-navbar-divider{display:block}.kbq-navbar-divider.kbq-vertical{height:1px;margin:var(--kbq-size-s) var(--kbq-size-l)}.kbq-navbar-divider.kbq-horizontal{width:1px;height:12px;margin-left:var(--kbq-size-m);margin-right:var(--kbq-size-m)}\n", ".kbq-navbar,.kbq-vertical-navbar{--kbq-navbar-item-size-content-border-radius: var(--kbq-size-border-radius);--kbq-navbar-background: var(--kbq-background-bg);--kbq-navbar-border: var(--kbq-line-contrast-less);--kbq-navbar-item-default-content-text: var(--kbq-foreground-contrast);--kbq-navbar-item-default-content-background: transparent;--kbq-navbar-item-default-content-icon-left: var(--kbq-icon-contrast);--kbq-navbar-item-default-content-icon-right: var(--kbq-icon-contrast);--kbq-navbar-item-states-hover-content-text: var(--kbq-foreground-contrast);--kbq-navbar-item-states-hover-content-background: var(--kbq-states-background-transparent-hover);--kbq-navbar-item-states-hover-content-icon-left: var(--kbq-states-icon-contrast-hover);--kbq-navbar-item-states-hover-content-icon-right: var(--kbq-states-icon-contrast-hover);--kbq-navbar-item-states-selected-content-text: var(--kbq-foreground-contrast);--kbq-navbar-item-states-selected-content-background: var(--kbq-states-background-transparent-active);--kbq-navbar-item-states-selected-content-icon-left: var(--kbq-states-icon-contrast-active);--kbq-navbar-item-states-selected-content-icon-right: var(--kbq-states-icon-contrast-active);--kbq-navbar-item-states-selected-hover-content-text: var(--kbq-foreground-contrast);--kbq-navbar-item-states-selected-hover-content-background: var(--kbq-states-background-transparent-hover);--kbq-navbar-item-states-selected-hover-content-icon-left: var(--kbq-states-icon-contrast-hover);--kbq-navbar-item-states-selected-hover-content-icon-right: var(--kbq-states-icon-contrast-hover);--kbq-navbar-item-states-disabled-content-text: var(--kbq-states-foreground-disabled);--kbq-navbar-item-states-disabled-content-background: transparent;--kbq-navbar-item-states-disabled-content-icon-left: var(--kbq-states-icon-disabled);--kbq-navbar-item-states-disabled-content-icon-right: var(--kbq-states-icon-disabled)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
241
- }
242
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: KbqNavbar, decorators: [{
243
- type: Component,
244
- args: [{ selector: 'kbq-navbar', template: `
245
- <ng-content select="[kbq-navbar-container], kbq-navbar-container" />
246
- `, host: {
247
- class: 'kbq-navbar',
248
- '[attr.tabindex]': 'tabIndex',
249
- '(focus)': 'focus()',
250
- '(blur)': 'blur()',
251
- '(keydown)': 'onKeyDown($event)',
252
- '(window:resize)': 'resizeStream.next($event)'
253
- }, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, styles: ["button.kbq-navbar-item,button.kbq-navbar-brand,button.kbq-navbar-toggle{background:transparent;border:none}.kbq-navbar{display:flex;flex-direction:row;justify-content:space-between;align-items:center;position:relative}.kbq-navbar-container{display:flex;flex-shrink:0;flex-direction:row;justify-content:space-between;align-items:center;position:relative}.kbq-navbar .kbq-navbar-container+.kbq-navbar-container{margin-left:var(--kbq-size-xxl)}.kbq-navbar,.kbq-vertical-navbar .kbq-vertical-navbar__container{background-color:var(--kbq-navbar-background)}.kbq-vertical-navbar .kbq-vertical-navbar__container{border-right:1px solid var(--kbq-navbar-border)}.kbq-navbar-item,.kbq-navbar-brand,.kbq-navbar-toggle{cursor:pointer}.kbq-navbar-item:not(.kbq-navbar-item_has-nested):after,.kbq-navbar-brand:not(.kbq-navbar-item_has-nested):after,.kbq-navbar-toggle:not(.kbq-navbar-item_has-nested):after{display:block;background:var(--kbq-navbar-item-default-content-background)}.kbq-navbar-item .kbq-navbar-title,.kbq-navbar-brand .kbq-navbar-title,.kbq-navbar-toggle .kbq-navbar-title{color:var(--kbq-navbar-item-default-content-text)}.kbq-navbar-item>.kbq-icon.kbq-empty,.kbq-navbar-brand>.kbq-icon.kbq-empty,.kbq-navbar-toggle>.kbq-icon.kbq-empty{color:var(--kbq-navbar-item-default-content-icon-left)!important}.kbq-navbar-item .kbq-navbar-item__arrow-icon,.kbq-navbar-brand .kbq-navbar-item__arrow-icon,.kbq-navbar-toggle .kbq-navbar-item__arrow-icon{color:var(--kbq-navbar-item-default-content-icon-right)!important}.kbq-navbar-item:hover:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand):not(.kbq-navbar-item_has-nested):after,.kbq-navbar-brand:hover:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand):not(.kbq-navbar-item_has-nested):after,.kbq-navbar-toggle:hover:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand):not(.kbq-navbar-item_has-nested):after{display:block;background:var(--kbq-navbar-item-states-hover-content-background)}.kbq-navbar-item:hover:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand) .kbq-navbar-title,.kbq-navbar-brand:hover:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand) .kbq-navbar-title,.kbq-navbar-toggle:hover:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand) .kbq-navbar-title{color:var(--kbq-navbar-item-states-hover-content-text)}.kbq-navbar-item:hover:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand)>.kbq-icon.kbq-empty,.kbq-navbar-brand:hover:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand)>.kbq-icon.kbq-empty,.kbq-navbar-toggle:hover:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand)>.kbq-icon.kbq-empty{color:var(--kbq-navbar-item-states-hover-content-icon-left)!important}.kbq-navbar-item:hover:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand) .kbq-navbar-item__arrow-icon,.kbq-navbar-brand:hover:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand) .kbq-navbar-item__arrow-icon,.kbq-navbar-toggle:hover:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand) .kbq-navbar-item__arrow-icon{color:var(--kbq-navbar-item-states-hover-content-icon-right)!important}.kbq-navbar-item.cdk-focused.cdk-keyboard-focused,.kbq-navbar-brand.cdk-focused.cdk-keyboard-focused,.kbq-navbar-toggle.cdk-focused.cdk-keyboard-focused{outline:none}.kbq-navbar-item.cdk-focused.cdk-keyboard-focused:after,.kbq-navbar-brand.cdk-focused.cdk-keyboard-focused:after,.kbq-navbar-toggle.cdk-focused.cdk-keyboard-focused:after{display:block;box-shadow:inset 0 0 0 2px var(--kbq-states-line-focus-theme)}.kbq-navbar-item:active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand):not(.kbq-navbar-item_has-nested):after,.kbq-navbar-item.kbq-active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand):not(.kbq-navbar-item_has-nested):after,.kbq-navbar-brand:active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand):not(.kbq-navbar-item_has-nested):after,.kbq-navbar-brand.kbq-active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand):not(.kbq-navbar-item_has-nested):after,.kbq-navbar-toggle:active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand):not(.kbq-navbar-item_has-nested):after,.kbq-navbar-toggle.kbq-active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand):not(.kbq-navbar-item_has-nested):after{display:block;background:var(--kbq-navbar-item-states-selected-content-background)}.kbq-navbar-item:active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand) .kbq-navbar-title,.kbq-navbar-item.kbq-active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand) .kbq-navbar-title,.kbq-navbar-brand:active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand) .kbq-navbar-title,.kbq-navbar-brand.kbq-active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand) .kbq-navbar-title,.kbq-navbar-toggle:active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand) .kbq-navbar-title,.kbq-navbar-toggle.kbq-active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand) .kbq-navbar-title{color:var(--kbq-navbar-item-states-selected-content-text)}.kbq-navbar-item:active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand)>.kbq-icon.kbq-empty,.kbq-navbar-item.kbq-active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand)>.kbq-icon.kbq-empty,.kbq-navbar-brand:active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand)>.kbq-icon.kbq-empty,.kbq-navbar-brand.kbq-active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand)>.kbq-icon.kbq-empty,.kbq-navbar-toggle:active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand)>.kbq-icon.kbq-empty,.kbq-navbar-toggle.kbq-active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand)>.kbq-icon.kbq-empty{color:var(--kbq-navbar-item-states-selected-content-icon-left)!important}.kbq-navbar-item:active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand) .kbq-navbar-item__arrow-icon,.kbq-navbar-item.kbq-active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand) .kbq-navbar-item__arrow-icon,.kbq-navbar-brand:active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand) .kbq-navbar-item__arrow-icon,.kbq-navbar-brand.kbq-active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand) .kbq-navbar-item__arrow-icon,.kbq-navbar-toggle:active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand) .kbq-navbar-item__arrow-icon,.kbq-navbar-toggle.kbq-active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand) .kbq-navbar-item__arrow-icon{color:var(--kbq-navbar-item-states-selected-content-icon-right)!important}.kbq-navbar-item.kbq-navbar-focusable-item,.kbq-navbar-brand.kbq-navbar-focusable-item,.kbq-navbar-toggle.kbq-navbar-focusable-item{outline:none}.kbq-navbar-item.kbq-disabled,.kbq-navbar-brand.kbq-disabled,.kbq-navbar-toggle.kbq-disabled{pointer-events:none;cursor:default}.kbq-navbar-item.kbq-disabled:not(.kbq-navbar-item_has-nested):after,.kbq-navbar-brand.kbq-disabled:not(.kbq-navbar-item_has-nested):after,.kbq-navbar-toggle.kbq-disabled:not(.kbq-navbar-item_has-nested):after{display:block;background:var(--kbq-navbar-item-states-disabled-content-background)}.kbq-navbar-item.kbq-disabled .kbq-navbar-title,.kbq-navbar-brand.kbq-disabled .kbq-navbar-title,.kbq-navbar-toggle.kbq-disabled .kbq-navbar-title{color:var(--kbq-navbar-item-states-disabled-content-text)}.kbq-navbar-item.kbq-disabled>.kbq-icon.kbq-empty,.kbq-navbar-brand.kbq-disabled>.kbq-icon.kbq-empty,.kbq-navbar-toggle.kbq-disabled>.kbq-icon.kbq-empty{color:var(--kbq-navbar-item-states-disabled-content-icon-left)!important}.kbq-navbar-item.kbq-disabled .kbq-navbar-item__arrow-icon,.kbq-navbar-brand.kbq-disabled .kbq-navbar-item__arrow-icon,.kbq-navbar-toggle.kbq-disabled .kbq-navbar-item__arrow-icon{color:var(--kbq-navbar-item-states-disabled-content-icon-right)!important}.kbq-navbar-brand.kbq-vertical:hover .kbq-navbar-logo{transform:scale(1.06)}.kbq-navbar-brand.kbq-horizontal:hover .kbq-navbar-logo{z-index:1}.kbq-navbar-divider{background:var(--kbq-line-contrast-less)}.kbq-navbar-title{font-size:var(--kbq-typography-text-normal-medium-font-size);font-style:var(--kbq-typography-text-normal-medium-font-style);font-weight:var(--kbq-typography-text-normal-medium-font-weight);line-height:var(--kbq-typography-text-normal-medium-line-height);font-family:var(--kbq-typography-text-normal-medium-font-family);text-transform:var(--kbq-typography-text-normal-medium-text-transform);font-feature-settings:var(--kbq-typography-text-normal-medium-font-feature-settings);letter-spacing:var(--kbq-typography-text-normal-medium-letter-spacing)}.kbq-navbar-brand .kbq-navbar-title{font-size:var(--kbq-typography-navbar-title-font-size);font-style:var(--kbq-typography-navbar-title-font-style);font-weight:var(--kbq-typography-navbar-title-font-weight);line-height:var(--kbq-typography-navbar-title-line-height);font-family:var(--kbq-typography-navbar-title-font-family);text-transform:var(--kbq-typography-navbar-title-text-transform);font-feature-settings:var(--kbq-typography-navbar-title-font-feature-settings);letter-spacing:var(--kbq-typography-navbar-title-letter-spacing)}\n", ".kbq-truncate-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kbq-no-select{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.kbq-navbar-item.kbq-vertical .kbq-navbar-item__container{gap:var(--kbq-size-m)}.kbq-navbar-item.kbq-vertical.kbq-expanded{height:var(--kbq-size-5xl);align-items:center;padding-right:var(--kbq-size-xl);padding-left:var(--kbq-size-xl);gap:var(--kbq-size-m)}.kbq-navbar-item.kbq-vertical.kbq-expanded:after{top:var(--kbq-size-xxs);right:var(--kbq-size-s);bottom:var(--kbq-size-xxs);left:var(--kbq-size-s)}.kbq-navbar-item.kbq-vertical.kbq-expanded.kbq-navbar-bento{position:absolute;display:flex;justify-content:center;align-items:center;top:var(--kbq-size-xxs);right:var(--kbq-size-xxs);z-index:1;padding:var(--kbq-size-s);height:var(--kbq-size-5xl);width:var(--kbq-size-5xl)}.kbq-navbar-item.kbq-vertical.kbq-expanded.kbq-navbar-bento:after{top:var(--kbq-size-s);right:var(--kbq-size-s);bottom:var(--kbq-size-s);left:var(--kbq-size-s)}.kbq-navbar-item.kbq-vertical.kbq-expanded.kbq-navbar-item_has-nested{align-items:center;padding:0 var(--kbq-size-m)}.kbq-navbar-item.kbq-vertical.kbq-collapsed{height:var(--kbq-size-5xl);width:var(--kbq-size-5xl);padding:var(--kbq-size-l);justify-content:center}.kbq-navbar-item.kbq-vertical.kbq-collapsed:after{top:var(--kbq-size-s);right:var(--kbq-size-s);bottom:var(--kbq-size-s);left:var(--kbq-size-s)}.kbq-navbar-item.kbq-vertical.kbq-collapsed .kbq-badge{position:absolute;z-index:1;top:var(--kbq-size-xs);right:var(--kbq-size-xs)}.kbq-navbar-item.kbq-vertical.kbq-collapsed .kbq-navbar-item__container{display:none}.kbq-navbar-item.kbq-vertical>.kbq-icon{display:flex;justify-content:center;align-items:center}.kbq-navbar-item.kbq-horizontal{position:relative;flex-direction:row;box-sizing:border-box;outline:none;-webkit-tap-highlight-color:transparent;min-height:var(--kbq-size-3xl);min-width:var(--kbq-size-3xl);margin:var(--kbq-size-s);justify-content:center}.kbq-navbar-item.kbq-horizontal:before{top:calc(-1 * var(--kbq-size-s));left:calc(-1 * var(--kbq-size-s));right:calc(-1 * var(--kbq-size-s));bottom:calc(-1 * var(--kbq-size-s))}.kbq-navbar-item.kbq-horizontal:after{inset:0}.kbq-navbar-item.kbq-horizontal .kbq-navbar-item__title{padding-left:var(--kbq-size-xxs);padding-right:var(--kbq-size-xxs)}.kbq-navbar-item.kbq-horizontal .kbq-navbar-item__arrow-icon{padding-left:var(--kbq-size-xxs)}.kbq-navbar-item.kbq-horizontal.kbq-navbar-item_with-title:not(.kbq-navbar-item_collapsed){margin-left:0;margin-right:0;padding-right:var(--kbq-size-m);padding-left:var(--kbq-size-m)}.kbq-navbar-item.kbq-horizontal.kbq-navbar-item_with-title:not(.kbq-navbar-item_collapsed):before{left:0;right:0}.kbq-navbar-item.kbq-horizontal.kbq-navbar-item_with-title:not(.kbq-navbar-item_collapsed)>.kbq-icon{align-self:center;padding-right:var(--kbq-size-xxs)}.kbq-navbar-item.kbq-horizontal.kbq-navbar-bento{justify-content:center;margin-right:var(--kbq-size-xxs)}.kbq-navbar-item.kbq-horizontal.kbq-navbar-bento:before{right:calc(-1 * var(--kbq-size-xxs))}.kbq-navbar-item.kbq-horizontal.kbq-navbar-item_collapsed{justify-content:center;padding:var(--kbq-size-s)}.kbq-navbar-item.kbq-horizontal.kbq-navbar-item_collapsed .kbq-navbar-item__container{display:none}.kbq-navbar-item.kbq-horizontal .kbq-badge{position:absolute;z-index:1;top:-2px;right:-2px}.kbq-navbar-item.kbq-horizontal.kbq-navbar-item_has-nested{margin-left:var(--kbq-size-m);margin-right:var(--kbq-size-m)}.kbq-navbar-item.kbq-horizontal.kbq-navbar-item_has-nested:before{left:calc(-1 * var(--kbq-size-m));right:calc(-1 * var(--kbq-size-m))}.kbq-navbar-item{box-sizing:border-box;position:relative;display:flex;align-items:center;border-radius:var(--kbq-navbar-item-size-content-border-radius)}.kbq-navbar-item .kbq-icon{min-width:var(--kbq-size-l);min-height:var(--kbq-size-l)}.kbq-navbar-item .kbq-button-icon{position:absolute;padding-left:var(--kbq-size-xs);padding-right:var(--kbq-size-xs);top:50%;transform:translateY(-50%)}.kbq-navbar-item:before{position:absolute;content:\"\"}.kbq-navbar-item:after{position:absolute;content:\"\";display:none;border-radius:var(--kbq-navbar-item-size-content-border-radius)}.kbq-navbar-title{display:inline-block;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.kbq-navbar-item__title{display:flex;flex-direction:column;align-self:center;min-width:0}.kbq-navbar-item__container{display:flex;flex-direction:row;flex:1 1 auto;justify-content:space-between;min-width:0}.kbq-navbar-item__container .kbq-icon{align-self:center}.kbq-navbar-item.kbq-navbar-item_has-nested .kbq-button{flex:1}.kbq-navbar-item.kbq-navbar-item_has-nested .kbq-button .kbq-button-wrapper{justify-content:center}.kbq-navbar-item.kbq-navbar-item_has-nested .kbq-button .kbq-button-wrapper .kbq-icon.kbq-icon_left{margin-left:unset}.kbq-navbar-item.kbq-navbar-item_has-nested .kbq-button .kbq-button-wrapper .kbq-icon.kbq-icon_right{margin-right:unset}a.kbq-navbar-item,a.kbq-navbar-title{text-decoration:none}.kbq-navbar-item [kbq-button],.kbq-navbar-brand [kbq-button],.kbq-navbar-toggle [kbq-button]{z-index:1}\n", ".kbq-navbar-logo{display:flex}.kbq-navbar-brand{position:relative;display:flex;border-radius:var(--kbq-size-s)}.kbq-navbar-brand:after{position:absolute;content:\"\";display:none;border-radius:var(--kbq-navbar-item-size-content-border-radius)}.kbq-navbar-brand .kbq-navbar-title{cursor:pointer}a.kbq-navbar-brand{text-decoration:none}.kbq-navbar-brand.kbq-horizontal{padding:var(--kbq-size-s) var(--kbq-size-xs) var(--kbq-size-s) var(--kbq-size-xxs);align-items:center;gap:var(--kbq-size-s)}.kbq-navbar-brand.kbq-horizontal:after{top:var(--kbq-size-xxs);right:var(--kbq-size-xxs);bottom:var(--kbq-size-xxs);left:0}.kbq-navbar-brand.kbq-horizontal .kbq-navbar-title{padding-right:var(--kbq-size-m)}.kbq-navbar-brand.kbq-vertical .kbq-navbar-logo{align-items:center}.kbq-navbar-brand.kbq-vertical .kbq-navbar-title{display:block;align-items:center;padding-top:var(--kbq-size-xxs);padding-bottom:var(--kbq-size-xxs);height:var(--kbq-size-3xl);padding-left:0;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.kbq-navbar-brand.kbq-vertical.kbq-expanded{position:relative;height:var(--kbq-size-4xl);width:var(--kbq-size-4xl);margin:var(--kbq-size-l) var(--kbq-size-l) var(--kbq-size-4xl);flex-direction:column}.kbq-navbar-brand.kbq-vertical.kbq-expanded:after{inset:0}.kbq-navbar-brand.kbq-vertical.kbq-expanded .kbq-navbar-logo{min-height:var(--kbq-size-4xl);justify-content:center}.kbq-navbar-brand.kbq-vertical.kbq-expanded .kbq-navbar-title{position:absolute;left:var(--kbq-size-xxs);top:var(--kbq-size-4xl);max-width:200px}.kbq-navbar-brand.kbq-vertical.kbq-collapsed{height:var(--kbq-size-5xl);width:var(--kbq-size-5xl);justify-content:center}.kbq-navbar-brand.kbq-vertical.kbq-collapsed:after{top:var(--kbq-size-xxs);right:var(--kbq-size-xxs);bottom:var(--kbq-size-xxs);left:var(--kbq-size-xxs)}.kbq-navbar-brand.kbq-vertical.kbq-collapsed .kbq-navbar-title{display:none}\n", ".kbq-navbar-divider{display:block}.kbq-navbar-divider.kbq-vertical{height:1px;margin:var(--kbq-size-s) var(--kbq-size-l)}.kbq-navbar-divider.kbq-horizontal{width:1px;height:12px;margin-left:var(--kbq-size-m);margin-right:var(--kbq-size-m)}\n", ".kbq-navbar,.kbq-vertical-navbar{--kbq-navbar-item-size-content-border-radius: var(--kbq-size-border-radius);--kbq-navbar-background: var(--kbq-background-bg);--kbq-navbar-border: var(--kbq-line-contrast-less);--kbq-navbar-item-default-content-text: var(--kbq-foreground-contrast);--kbq-navbar-item-default-content-background: transparent;--kbq-navbar-item-default-content-icon-left: var(--kbq-icon-contrast);--kbq-navbar-item-default-content-icon-right: var(--kbq-icon-contrast);--kbq-navbar-item-states-hover-content-text: var(--kbq-foreground-contrast);--kbq-navbar-item-states-hover-content-background: var(--kbq-states-background-transparent-hover);--kbq-navbar-item-states-hover-content-icon-left: var(--kbq-states-icon-contrast-hover);--kbq-navbar-item-states-hover-content-icon-right: var(--kbq-states-icon-contrast-hover);--kbq-navbar-item-states-selected-content-text: var(--kbq-foreground-contrast);--kbq-navbar-item-states-selected-content-background: var(--kbq-states-background-transparent-active);--kbq-navbar-item-states-selected-content-icon-left: var(--kbq-states-icon-contrast-active);--kbq-navbar-item-states-selected-content-icon-right: var(--kbq-states-icon-contrast-active);--kbq-navbar-item-states-selected-hover-content-text: var(--kbq-foreground-contrast);--kbq-navbar-item-states-selected-hover-content-background: var(--kbq-states-background-transparent-hover);--kbq-navbar-item-states-selected-hover-content-icon-left: var(--kbq-states-icon-contrast-hover);--kbq-navbar-item-states-selected-hover-content-icon-right: var(--kbq-states-icon-contrast-hover);--kbq-navbar-item-states-disabled-content-text: var(--kbq-states-foreground-disabled);--kbq-navbar-item-states-disabled-content-background: transparent;--kbq-navbar-item-states-disabled-content-icon-left: var(--kbq-states-icon-disabled);--kbq-navbar-item-states-disabled-content-icon-right: var(--kbq-states-icon-disabled)}\n"] }]
254
- }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1.FocusMonitor }], propDecorators: { navbarItems: [{
255
- type: ContentChildren,
256
- args: [forwardRef(() => KbqNavbarItem), { descendants: true }]
257
- }] } });
258
-
259
- class KbqVerticalNavbar extends KbqFocusableComponent {
260
- get expanded() {
261
- return this._expanded;
337
+ get hasDropDownTrigger() {
338
+ return !!this.dropdownTrigger;
262
339
  }
263
- set expanded(value) {
264
- this._expanded = coerceBooleanProperty(value);
265
- this.updateExpandedStateForItems();
340
+ get showVerticalDropDownAngle() {
341
+ return !this.bento && this.hasDropDownTrigger && this.rectangleElement.vertical && !this.isCollapsed;
266
342
  }
267
- constructor(elementRef, changeDetectorRef, focusMonitor) {
268
- super(changeDetectorRef, elementRef, focusMonitor);
269
- this.elementRef = elementRef;
270
- this.rectangleElements = contentChildren(forwardRef(() => KbqNavbarRectangleElement), { descendants: true });
271
- this.animationDone = new Subject();
272
- this.openOver = false;
273
- this._expanded = false;
274
- this.updateExpandedStateForItems = () => this.rectangleElements().forEach(this.updateItemExpandedState);
275
- this.updateTooltipForItems = () => this.items.forEach((item) => item.updateTooltip());
276
- this.setItemsVerticalStateAndUpdateExpandedState = (rectangleElements) => rectangleElements.forEach(this.setItemVerticalStateAndUpdateExpandedState);
277
- this.setItemVerticalStateAndUpdateExpandedState = (item) => {
278
- queueMicrotask(() => this.setItemVerticalState(item));
279
- this.updateItemExpandedState(item);
280
- };
281
- this.setItemVerticalState = (item) => {
282
- item.vertical = true;
283
- };
284
- this.updateItemExpandedState = (item) => {
285
- item.collapsed = !this.expanded;
286
- setTimeout(() => item.button?.updateClassModifierForIcons());
287
- };
288
- this.animationDone.pipe(takeUntilDestroyed()).subscribe(this.updateTooltipForItems);
289
- effect(() => this.setItemsVerticalStateAndUpdateExpandedState(this.rectangleElements()));
343
+ get showHorizontalDropDownAngle() {
344
+ return this.hasDropDownTrigger && this.rectangleElement.horizontal && !this.isCollapsed;
290
345
  }
291
- ngAfterContentInit() {
292
- this.updateTooltipForItems();
293
- super.ngAfterContentInit();
294
- this.keyManager.withVerticalOrientation(true);
346
+ get hasCroppedText() {
347
+ return !!this.title?.isOverflown;
295
348
  }
296
- toggle() {
297
- this.expanded = !this.expanded;
298
- this.changeDetectorRef.markForCheck();
349
+ constructor(rectangleElement, navbarFocusableItem, changeDetectorRef, dropdownTrigger, bento) {
350
+ super();
351
+ this.rectangleElement = rectangleElement;
352
+ this.navbarFocusableItem = navbarFocusableItem;
353
+ this.changeDetectorRef = changeDetectorRef;
354
+ this.dropdownTrigger = dropdownTrigger;
355
+ this.bento = bento;
356
+ this._collapsed = false;
357
+ this._collapsable = true;
358
+ if (this.hasDropDownTrigger) {
359
+ this.dropdownTrigger.openByArrowDown = false;
360
+ }
361
+ this.rectangleElement.state.subscribe(() => {
362
+ this.collapsed = this.rectangleElement.collapsed;
363
+ this.changeDetectorRef.detectChanges();
364
+ });
365
+ this._trigger = `${PopUpTriggers.Hover}`;
366
+ this.navbarFocusableItem.setTooltip(this);
367
+ this.arrow = false;
368
+ this.offset = 0;
369
+ this.overlayConfig.panelClass = 'kbq-tooltip-panel_horizontal-navbar';
370
+ }
371
+ ngAfterContentInit() {
372
+ this.updateTooltip();
299
373
  }
300
- onKeyDown(event) {
301
- const keyCode = event.keyCode;
302
- if (!event.target.attributes.getNamedItem('kbqinput') &&
303
- (isVerticalMovement(event) || isHorizontalMovement(event))) {
304
- event.preventDefault();
374
+ updateTooltip() {
375
+ if (this.isCollapsed) {
376
+ this.content = `${this.titleText || ''}`;
305
377
  }
306
- if (keyCode === TAB) {
307
- this.keyManager.tabOut.next();
308
- return;
378
+ else if (!this.isCollapsed && this.hasCroppedText) {
379
+ this.content = this.croppedText;
309
380
  }
310
- else if (keyCode === DOWN_ARROW) {
311
- this.keyManager.setNextItemActive();
381
+ if (this.rectangleElement.vertical) {
382
+ this.placement = PopUpPlacements.Right;
383
+ this.placementPriority = PopUpPlacements.Right;
312
384
  }
313
- else if (keyCode === UP_ARROW) {
314
- this.keyManager.setPreviousItemActive();
385
+ this.changeDetectorRef.markForCheck();
386
+ }
387
+ getTitleWidth() {
388
+ return this.title.outerElementWidth;
389
+ }
390
+ onKeyDown($event) {
391
+ if (!this.hasDropDownTrigger) {
392
+ return;
315
393
  }
316
- else {
317
- this.keyManager.onKeydown(event);
394
+ if ((this.rectangleElement.horizontal && $event.keyCode === DOWN_ARROW) ||
395
+ (this.rectangleElement.vertical && $event.keyCode === RIGHT_ARROW)) {
396
+ this.dropdownTrigger.openedBy = 'keyboard';
397
+ this.dropdownTrigger.open();
398
+ $event.stopPropagation();
399
+ $event.preventDefault();
318
400
  }
319
401
  }
320
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: KbqVerticalNavbar, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1.FocusMonitor }], target: i0.ɵɵFactoryTarget.Component }); }
321
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.14", type: KbqVerticalNavbar, selector: "kbq-vertical-navbar", inputs: { openOver: "openOver", expanded: "expanded" }, host: { listeners: { "focus": "focus()", "blur": "blur()", "keydown": "onKeyDown($event)" }, properties: { "class.kbq-vertical-navbar_open-over": "openOver", "attr.tabindex": "tabIndex" }, classAttribute: "kbq-vertical-navbar" }, queries: [{ propertyName: "rectangleElements", predicate: i0.forwardRef(() => KbqNavbarRectangleElement), descendants: true, isSignal: true }, { propertyName: "bento", first: true, predicate: i0.forwardRef(() => KbqNavbarBento), descendants: true }, { propertyName: "items", predicate: i0.forwardRef(() => KbqNavbarItem), descendants: true }], exportAs: ["KbqVerticalNavbar"], usesInheritance: true, ngImport: i0, template: `
322
- <div class="kbq-vertical-navbar__container" [class.kbq-collapsed]="!expanded" [class.kbq-expanded]="expanded">
323
- <ng-content select="[kbq-navbar-container], kbq-navbar-container" />
324
- <ng-content select="[kbq-navbar-toggle], kbq-navbar-toggle" />
325
- </div>
326
- `, isInline: true, styles: ["button.kbq-navbar-item,button.kbq-navbar-brand,button.kbq-navbar-toggle{background:transparent;border:none}.kbq-vertical-navbar{min-width:48px;height:100%}.kbq-vertical-navbar .kbq-navbar-container{flex-direction:column;align-items:unset}.kbq-vertical-navbar .kbq-navbar-container+.kbq-navbar-container{padding-top:var(--kbq-size-xxl)}.kbq-vertical-navbar .kbq-vertical-navbar__container{display:flex;flex-direction:column;justify-content:space-between;height:100%}.kbq-vertical-navbar .kbq-vertical-navbar__container.kbq-collapsed{width:var(--kbq-size-5xl)}.kbq-vertical-navbar .kbq-vertical-navbar__container.kbq-expanded{width:240px}.kbq-vertical-navbar.kbq-vertical-navbar_open-over{position:relative}.kbq-vertical-navbar.kbq-vertical-navbar_open-over .kbq-vertical-navbar__container{position:absolute;z-index:998}.kbq-navbar,.kbq-vertical-navbar .kbq-vertical-navbar__container{background-color:var(--kbq-navbar-background)}.kbq-vertical-navbar .kbq-vertical-navbar__container{border-right:1px solid var(--kbq-navbar-border)}.kbq-navbar-item,.kbq-navbar-brand,.kbq-navbar-toggle{cursor:pointer}.kbq-navbar-item:not(.kbq-navbar-item_has-nested):after,.kbq-navbar-brand:not(.kbq-navbar-item_has-nested):after,.kbq-navbar-toggle:not(.kbq-navbar-item_has-nested):after{display:block;background:var(--kbq-navbar-item-default-content-background)}.kbq-navbar-item .kbq-navbar-title,.kbq-navbar-brand .kbq-navbar-title,.kbq-navbar-toggle .kbq-navbar-title{color:var(--kbq-navbar-item-default-content-text)}.kbq-navbar-item>.kbq-icon.kbq-empty,.kbq-navbar-brand>.kbq-icon.kbq-empty,.kbq-navbar-toggle>.kbq-icon.kbq-empty{color:var(--kbq-navbar-item-default-content-icon-left)!important}.kbq-navbar-item .kbq-navbar-item__arrow-icon,.kbq-navbar-brand .kbq-navbar-item__arrow-icon,.kbq-navbar-toggle .kbq-navbar-item__arrow-icon{color:var(--kbq-navbar-item-default-content-icon-right)!important}.kbq-navbar-item:hover:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand):not(.kbq-navbar-item_has-nested):after,.kbq-navbar-brand:hover:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand):not(.kbq-navbar-item_has-nested):after,.kbq-navbar-toggle:hover:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand):not(.kbq-navbar-item_has-nested):after{display:block;background:var(--kbq-navbar-item-states-hover-content-background)}.kbq-navbar-item:hover:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand) .kbq-navbar-title,.kbq-navbar-brand:hover:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand) .kbq-navbar-title,.kbq-navbar-toggle:hover:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand) .kbq-navbar-title{color:var(--kbq-navbar-item-states-hover-content-text)}.kbq-navbar-item:hover:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand)>.kbq-icon.kbq-empty,.kbq-navbar-brand:hover:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand)>.kbq-icon.kbq-empty,.kbq-navbar-toggle:hover:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand)>.kbq-icon.kbq-empty{color:var(--kbq-navbar-item-states-hover-content-icon-left)!important}.kbq-navbar-item:hover:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand) .kbq-navbar-item__arrow-icon,.kbq-navbar-brand:hover:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand) .kbq-navbar-item__arrow-icon,.kbq-navbar-toggle:hover:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand) .kbq-navbar-item__arrow-icon{color:var(--kbq-navbar-item-states-hover-content-icon-right)!important}.kbq-navbar-item.cdk-focused.cdk-keyboard-focused,.kbq-navbar-brand.cdk-focused.cdk-keyboard-focused,.kbq-navbar-toggle.cdk-focused.cdk-keyboard-focused{outline:none}.kbq-navbar-item.cdk-focused.cdk-keyboard-focused:after,.kbq-navbar-brand.cdk-focused.cdk-keyboard-focused:after,.kbq-navbar-toggle.cdk-focused.cdk-keyboard-focused:after{display:block;box-shadow:inset 0 0 0 2px var(--kbq-states-line-focus-theme)}.kbq-navbar-item:active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand):not(.kbq-navbar-item_has-nested):after,.kbq-navbar-item.kbq-active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand):not(.kbq-navbar-item_has-nested):after,.kbq-navbar-brand:active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand):not(.kbq-navbar-item_has-nested):after,.kbq-navbar-brand.kbq-active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand):not(.kbq-navbar-item_has-nested):after,.kbq-navbar-toggle:active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand):not(.kbq-navbar-item_has-nested):after,.kbq-navbar-toggle.kbq-active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand):not(.kbq-navbar-item_has-nested):after{display:block;background:var(--kbq-navbar-item-states-selected-content-background)}.kbq-navbar-item:active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand) .kbq-navbar-title,.kbq-navbar-item.kbq-active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand) .kbq-navbar-title,.kbq-navbar-brand:active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand) .kbq-navbar-title,.kbq-navbar-brand.kbq-active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand) .kbq-navbar-title,.kbq-navbar-toggle:active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand) .kbq-navbar-title,.kbq-navbar-toggle.kbq-active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand) .kbq-navbar-title{color:var(--kbq-navbar-item-states-selected-content-text)}.kbq-navbar-item:active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand)>.kbq-icon.kbq-empty,.kbq-navbar-item.kbq-active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand)>.kbq-icon.kbq-empty,.kbq-navbar-brand:active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand)>.kbq-icon.kbq-empty,.kbq-navbar-brand.kbq-active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand)>.kbq-icon.kbq-empty,.kbq-navbar-toggle:active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand)>.kbq-icon.kbq-empty,.kbq-navbar-toggle.kbq-active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand)>.kbq-icon.kbq-empty{color:var(--kbq-navbar-item-states-selected-content-icon-left)!important}.kbq-navbar-item:active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand) .kbq-navbar-item__arrow-icon,.kbq-navbar-item.kbq-active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand) .kbq-navbar-item__arrow-icon,.kbq-navbar-brand:active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand) .kbq-navbar-item__arrow-icon,.kbq-navbar-brand.kbq-active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand) .kbq-navbar-item__arrow-icon,.kbq-navbar-toggle:active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand) .kbq-navbar-item__arrow-icon,.kbq-navbar-toggle.kbq-active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand) .kbq-navbar-item__arrow-icon{color:var(--kbq-navbar-item-states-selected-content-icon-right)!important}.kbq-navbar-item.kbq-navbar-focusable-item,.kbq-navbar-brand.kbq-navbar-focusable-item,.kbq-navbar-toggle.kbq-navbar-focusable-item{outline:none}.kbq-navbar-item.kbq-disabled,.kbq-navbar-brand.kbq-disabled,.kbq-navbar-toggle.kbq-disabled{pointer-events:none;cursor:default}.kbq-navbar-item.kbq-disabled:not(.kbq-navbar-item_has-nested):after,.kbq-navbar-brand.kbq-disabled:not(.kbq-navbar-item_has-nested):after,.kbq-navbar-toggle.kbq-disabled:not(.kbq-navbar-item_has-nested):after{display:block;background:var(--kbq-navbar-item-states-disabled-content-background)}.kbq-navbar-item.kbq-disabled .kbq-navbar-title,.kbq-navbar-brand.kbq-disabled .kbq-navbar-title,.kbq-navbar-toggle.kbq-disabled .kbq-navbar-title{color:var(--kbq-navbar-item-states-disabled-content-text)}.kbq-navbar-item.kbq-disabled>.kbq-icon.kbq-empty,.kbq-navbar-brand.kbq-disabled>.kbq-icon.kbq-empty,.kbq-navbar-toggle.kbq-disabled>.kbq-icon.kbq-empty{color:var(--kbq-navbar-item-states-disabled-content-icon-left)!important}.kbq-navbar-item.kbq-disabled .kbq-navbar-item__arrow-icon,.kbq-navbar-brand.kbq-disabled .kbq-navbar-item__arrow-icon,.kbq-navbar-toggle.kbq-disabled .kbq-navbar-item__arrow-icon{color:var(--kbq-navbar-item-states-disabled-content-icon-right)!important}.kbq-navbar-brand.kbq-vertical:hover .kbq-navbar-logo{transform:scale(1.06)}.kbq-navbar-brand.kbq-horizontal:hover .kbq-navbar-logo{z-index:1}.kbq-navbar-divider{background:var(--kbq-line-contrast-less)}.kbq-navbar-title{font-size:var(--kbq-typography-text-normal-medium-font-size);font-style:var(--kbq-typography-text-normal-medium-font-style);font-weight:var(--kbq-typography-text-normal-medium-font-weight);line-height:var(--kbq-typography-text-normal-medium-line-height);font-family:var(--kbq-typography-text-normal-medium-font-family);text-transform:var(--kbq-typography-text-normal-medium-text-transform);font-feature-settings:var(--kbq-typography-text-normal-medium-font-feature-settings);letter-spacing:var(--kbq-typography-text-normal-medium-letter-spacing)}.kbq-navbar-brand .kbq-navbar-title{font-size:var(--kbq-typography-navbar-title-font-size);font-style:var(--kbq-typography-navbar-title-font-style);font-weight:var(--kbq-typography-navbar-title-font-weight);line-height:var(--kbq-typography-navbar-title-line-height);font-family:var(--kbq-typography-navbar-title-font-family);text-transform:var(--kbq-typography-navbar-title-text-transform);font-feature-settings:var(--kbq-typography-navbar-title-font-feature-settings);letter-spacing:var(--kbq-typography-navbar-title-letter-spacing)}\n", ".kbq-truncate-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kbq-no-select{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.kbq-navbar-item.kbq-vertical .kbq-navbar-item__container{gap:var(--kbq-size-m)}.kbq-navbar-item.kbq-vertical.kbq-expanded{height:var(--kbq-size-5xl);align-items:center;padding-right:var(--kbq-size-xl);padding-left:var(--kbq-size-xl);gap:var(--kbq-size-m)}.kbq-navbar-item.kbq-vertical.kbq-expanded:after{top:var(--kbq-size-xxs);right:var(--kbq-size-s);bottom:var(--kbq-size-xxs);left:var(--kbq-size-s)}.kbq-navbar-item.kbq-vertical.kbq-expanded.kbq-navbar-bento{position:absolute;display:flex;justify-content:center;align-items:center;top:var(--kbq-size-xxs);right:var(--kbq-size-xxs);z-index:1;padding:var(--kbq-size-s);height:var(--kbq-size-5xl);width:var(--kbq-size-5xl)}.kbq-navbar-item.kbq-vertical.kbq-expanded.kbq-navbar-bento:after{top:var(--kbq-size-s);right:var(--kbq-size-s);bottom:var(--kbq-size-s);left:var(--kbq-size-s)}.kbq-navbar-item.kbq-vertical.kbq-expanded.kbq-navbar-item_has-nested{align-items:center;padding:0 var(--kbq-size-m)}.kbq-navbar-item.kbq-vertical.kbq-collapsed{height:var(--kbq-size-5xl);width:var(--kbq-size-5xl);padding:var(--kbq-size-l);justify-content:center}.kbq-navbar-item.kbq-vertical.kbq-collapsed:after{top:var(--kbq-size-s);right:var(--kbq-size-s);bottom:var(--kbq-size-s);left:var(--kbq-size-s)}.kbq-navbar-item.kbq-vertical.kbq-collapsed .kbq-badge{position:absolute;z-index:1;top:var(--kbq-size-xs);right:var(--kbq-size-xs)}.kbq-navbar-item.kbq-vertical.kbq-collapsed .kbq-navbar-item__container{display:none}.kbq-navbar-item.kbq-vertical>.kbq-icon{display:flex;justify-content:center;align-items:center}.kbq-navbar-item.kbq-horizontal{position:relative;flex-direction:row;box-sizing:border-box;outline:none;-webkit-tap-highlight-color:transparent;min-height:var(--kbq-size-3xl);min-width:var(--kbq-size-3xl);margin:var(--kbq-size-s);justify-content:center}.kbq-navbar-item.kbq-horizontal:before{top:calc(-1 * var(--kbq-size-s));left:calc(-1 * var(--kbq-size-s));right:calc(-1 * var(--kbq-size-s));bottom:calc(-1 * var(--kbq-size-s))}.kbq-navbar-item.kbq-horizontal:after{inset:0}.kbq-navbar-item.kbq-horizontal .kbq-navbar-item__title{padding-left:var(--kbq-size-xxs);padding-right:var(--kbq-size-xxs)}.kbq-navbar-item.kbq-horizontal .kbq-navbar-item__arrow-icon{padding-left:var(--kbq-size-xxs)}.kbq-navbar-item.kbq-horizontal.kbq-navbar-item_with-title:not(.kbq-navbar-item_collapsed){margin-left:0;margin-right:0;padding-right:var(--kbq-size-m);padding-left:var(--kbq-size-m)}.kbq-navbar-item.kbq-horizontal.kbq-navbar-item_with-title:not(.kbq-navbar-item_collapsed):before{left:0;right:0}.kbq-navbar-item.kbq-horizontal.kbq-navbar-item_with-title:not(.kbq-navbar-item_collapsed)>.kbq-icon{align-self:center;padding-right:var(--kbq-size-xxs)}.kbq-navbar-item.kbq-horizontal.kbq-navbar-bento{justify-content:center;margin-right:var(--kbq-size-xxs)}.kbq-navbar-item.kbq-horizontal.kbq-navbar-bento:before{right:calc(-1 * var(--kbq-size-xxs))}.kbq-navbar-item.kbq-horizontal.kbq-navbar-item_collapsed{justify-content:center;padding:var(--kbq-size-s)}.kbq-navbar-item.kbq-horizontal.kbq-navbar-item_collapsed .kbq-navbar-item__container{display:none}.kbq-navbar-item.kbq-horizontal .kbq-badge{position:absolute;z-index:1;top:-2px;right:-2px}.kbq-navbar-item.kbq-horizontal.kbq-navbar-item_has-nested{margin-left:var(--kbq-size-m);margin-right:var(--kbq-size-m)}.kbq-navbar-item.kbq-horizontal.kbq-navbar-item_has-nested:before{left:calc(-1 * var(--kbq-size-m));right:calc(-1 * var(--kbq-size-m))}.kbq-navbar-item{box-sizing:border-box;position:relative;display:flex;align-items:center;border-radius:var(--kbq-navbar-item-size-content-border-radius)}.kbq-navbar-item .kbq-icon{min-width:var(--kbq-size-l);min-height:var(--kbq-size-l)}.kbq-navbar-item .kbq-button-icon{position:absolute;padding-left:var(--kbq-size-xs);padding-right:var(--kbq-size-xs);top:50%;transform:translateY(-50%)}.kbq-navbar-item:before{position:absolute;content:\"\"}.kbq-navbar-item:after{position:absolute;content:\"\";display:none;border-radius:var(--kbq-navbar-item-size-content-border-radius)}.kbq-navbar-title{display:inline-block;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.kbq-navbar-item__title{display:flex;flex-direction:column;align-self:center;min-width:0}.kbq-navbar-item__container{display:flex;flex-direction:row;flex:1 1 auto;justify-content:space-between;min-width:0}.kbq-navbar-item__container .kbq-icon{align-self:center}.kbq-navbar-item.kbq-navbar-item_has-nested .kbq-button{flex:1}.kbq-navbar-item.kbq-navbar-item_has-nested .kbq-button .kbq-button-wrapper{justify-content:center}.kbq-navbar-item.kbq-navbar-item_has-nested .kbq-button .kbq-button-wrapper .kbq-icon.kbq-icon_left{margin-left:unset}.kbq-navbar-item.kbq-navbar-item_has-nested .kbq-button .kbq-button-wrapper .kbq-icon.kbq-icon_right{margin-right:unset}a.kbq-navbar-item,a.kbq-navbar-title{text-decoration:none}.kbq-navbar-item [kbq-button],.kbq-navbar-brand [kbq-button],.kbq-navbar-toggle [kbq-button]{z-index:1}\n", ".kbq-navbar-logo{display:flex}.kbq-navbar-brand{position:relative;display:flex;border-radius:var(--kbq-size-s)}.kbq-navbar-brand:after{position:absolute;content:\"\";display:none;border-radius:var(--kbq-navbar-item-size-content-border-radius)}.kbq-navbar-brand .kbq-navbar-title{cursor:pointer}a.kbq-navbar-brand{text-decoration:none}.kbq-navbar-brand.kbq-horizontal{padding:var(--kbq-size-s) var(--kbq-size-xs) var(--kbq-size-s) var(--kbq-size-xxs);align-items:center;gap:var(--kbq-size-s)}.kbq-navbar-brand.kbq-horizontal:after{top:var(--kbq-size-xxs);right:var(--kbq-size-xxs);bottom:var(--kbq-size-xxs);left:0}.kbq-navbar-brand.kbq-horizontal .kbq-navbar-title{padding-right:var(--kbq-size-m)}.kbq-navbar-brand.kbq-vertical .kbq-navbar-logo{align-items:center}.kbq-navbar-brand.kbq-vertical .kbq-navbar-title{display:block;align-items:center;padding-top:var(--kbq-size-xxs);padding-bottom:var(--kbq-size-xxs);height:var(--kbq-size-3xl);padding-left:0;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.kbq-navbar-brand.kbq-vertical.kbq-expanded{position:relative;height:var(--kbq-size-4xl);width:var(--kbq-size-4xl);margin:var(--kbq-size-l) var(--kbq-size-l) var(--kbq-size-4xl);flex-direction:column}.kbq-navbar-brand.kbq-vertical.kbq-expanded:after{inset:0}.kbq-navbar-brand.kbq-vertical.kbq-expanded .kbq-navbar-logo{min-height:var(--kbq-size-4xl);justify-content:center}.kbq-navbar-brand.kbq-vertical.kbq-expanded .kbq-navbar-title{position:absolute;left:var(--kbq-size-xxs);top:var(--kbq-size-4xl);max-width:200px}.kbq-navbar-brand.kbq-vertical.kbq-collapsed{height:var(--kbq-size-5xl);width:var(--kbq-size-5xl);justify-content:center}.kbq-navbar-brand.kbq-vertical.kbq-collapsed:after{top:var(--kbq-size-xxs);right:var(--kbq-size-xxs);bottom:var(--kbq-size-xxs);left:var(--kbq-size-xxs)}.kbq-navbar-brand.kbq-vertical.kbq-collapsed .kbq-navbar-title{display:none}\n", ".kbq-navbar-divider{display:block}.kbq-navbar-divider.kbq-vertical{height:1px;margin:var(--kbq-size-s) var(--kbq-size-l)}.kbq-navbar-divider.kbq-horizontal{width:1px;height:12px;margin-left:var(--kbq-size-m);margin-right:var(--kbq-size-m)}\n", ".kbq-navbar,.kbq-vertical-navbar{--kbq-navbar-item-size-content-border-radius: var(--kbq-size-border-radius);--kbq-navbar-background: var(--kbq-background-bg);--kbq-navbar-border: var(--kbq-line-contrast-less);--kbq-navbar-item-default-content-text: var(--kbq-foreground-contrast);--kbq-navbar-item-default-content-background: transparent;--kbq-navbar-item-default-content-icon-left: var(--kbq-icon-contrast);--kbq-navbar-item-default-content-icon-right: var(--kbq-icon-contrast);--kbq-navbar-item-states-hover-content-text: var(--kbq-foreground-contrast);--kbq-navbar-item-states-hover-content-background: var(--kbq-states-background-transparent-hover);--kbq-navbar-item-states-hover-content-icon-left: var(--kbq-states-icon-contrast-hover);--kbq-navbar-item-states-hover-content-icon-right: var(--kbq-states-icon-contrast-hover);--kbq-navbar-item-states-selected-content-text: var(--kbq-foreground-contrast);--kbq-navbar-item-states-selected-content-background: var(--kbq-states-background-transparent-active);--kbq-navbar-item-states-selected-content-icon-left: var(--kbq-states-icon-contrast-active);--kbq-navbar-item-states-selected-content-icon-right: var(--kbq-states-icon-contrast-active);--kbq-navbar-item-states-selected-hover-content-text: var(--kbq-foreground-contrast);--kbq-navbar-item-states-selected-hover-content-background: var(--kbq-states-background-transparent-hover);--kbq-navbar-item-states-selected-hover-content-icon-left: var(--kbq-states-icon-contrast-hover);--kbq-navbar-item-states-selected-hover-content-icon-right: var(--kbq-states-icon-contrast-hover);--kbq-navbar-item-states-disabled-content-text: var(--kbq-states-foreground-disabled);--kbq-navbar-item-states-disabled-content-background: transparent;--kbq-navbar-item-states-disabled-content-icon-left: var(--kbq-states-icon-disabled);--kbq-navbar-item-states-disabled-content-icon-right: var(--kbq-states-icon-disabled)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
402
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: KbqNavbarItem, deps: [{ token: KbqNavbarRectangleElement }, { token: KbqNavbarFocusableItem }, { token: i0.ChangeDetectorRef }, { token: i2.KbqDropdownTrigger, optional: true }, { token: KbqNavbarBento, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
403
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: KbqNavbarItem, selector: "kbq-navbar-item, [kbq-navbar-item]", inputs: { collapsedText: "collapsedText", trigger: ["kbqTrigger", "trigger"], collapsable: "collapsable" }, host: { listeners: { "keydown": "onKeyDown($event)" }, properties: { "class.kbq-navbar-item_collapsed": "isCollapsed", "class.kbq-navbar-item_with-title": "!!title" }, classAttribute: "kbq-navbar-item" }, queries: [{ propertyName: "title", first: true, predicate: KbqNavbarTitle, descendants: true }, { propertyName: "icon", first: true, predicate: KbqIcon, descendants: true }], exportAs: ["kbqNavbarItem"], usesInheritance: true, ngImport: i0, template: "<ng-content select=\"[kbq-icon]\" />\n\n@if (title) {\n <div class=\"kbq-navbar-item__container\">\n <div class=\"kbq-navbar-item__title\">\n <ng-content select=\"kbq-navbar-title, [kbq-navbar-title]\" />\n </div>\n @if (showVerticalDropDownAngle) {\n <i kbq-icon=\"kbq-chevron-right_16\" class=\"kbq-navbar-item__arrow-icon\"></i>\n }\n @if (showHorizontalDropDownAngle) {\n <i kbq-icon=\"kbq-chevron-down-s_16\" class=\"kbq-navbar-item__arrow-icon\"></i>\n }\n </div>\n}\n\n<ng-content />\n", dependencies: [{ kind: "component", type: i3.KbqIcon, selector: "[kbq-icon]", inputs: ["small", "autoColor", "kbq-icon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
327
404
  }
328
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: KbqVerticalNavbar, decorators: [{
405
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: KbqNavbarItem, decorators: [{
329
406
  type: Component,
330
- args: [{ selector: 'kbq-vertical-navbar', exportAs: 'KbqVerticalNavbar', template: `
331
- <div class="kbq-vertical-navbar__container" [class.kbq-collapsed]="!expanded" [class.kbq-expanded]="expanded">
332
- <ng-content select="[kbq-navbar-container], kbq-navbar-container" />
333
- <ng-content select="[kbq-navbar-toggle], kbq-navbar-toggle" />
334
- </div>
335
- `, host: {
336
- class: 'kbq-vertical-navbar',
337
- '[class.kbq-vertical-navbar_open-over]': 'openOver',
338
- '[attr.tabindex]': 'tabIndex',
339
- '(focus)': 'focus()',
340
- '(blur)': 'blur()',
407
+ args: [{ selector: 'kbq-navbar-item, [kbq-navbar-item]', exportAs: 'kbqNavbarItem', host: {
408
+ class: 'kbq-navbar-item',
409
+ '[class.kbq-navbar-item_collapsed]': 'isCollapsed',
410
+ '[class.kbq-navbar-item_with-title]': '!!title',
341
411
  '(keydown)': 'onKeyDown($event)'
342
- }, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, styles: ["button.kbq-navbar-item,button.kbq-navbar-brand,button.kbq-navbar-toggle{background:transparent;border:none}.kbq-vertical-navbar{min-width:48px;height:100%}.kbq-vertical-navbar .kbq-navbar-container{flex-direction:column;align-items:unset}.kbq-vertical-navbar .kbq-navbar-container+.kbq-navbar-container{padding-top:var(--kbq-size-xxl)}.kbq-vertical-navbar .kbq-vertical-navbar__container{display:flex;flex-direction:column;justify-content:space-between;height:100%}.kbq-vertical-navbar .kbq-vertical-navbar__container.kbq-collapsed{width:var(--kbq-size-5xl)}.kbq-vertical-navbar .kbq-vertical-navbar__container.kbq-expanded{width:240px}.kbq-vertical-navbar.kbq-vertical-navbar_open-over{position:relative}.kbq-vertical-navbar.kbq-vertical-navbar_open-over .kbq-vertical-navbar__container{position:absolute;z-index:998}.kbq-navbar,.kbq-vertical-navbar .kbq-vertical-navbar__container{background-color:var(--kbq-navbar-background)}.kbq-vertical-navbar .kbq-vertical-navbar__container{border-right:1px solid var(--kbq-navbar-border)}.kbq-navbar-item,.kbq-navbar-brand,.kbq-navbar-toggle{cursor:pointer}.kbq-navbar-item:not(.kbq-navbar-item_has-nested):after,.kbq-navbar-brand:not(.kbq-navbar-item_has-nested):after,.kbq-navbar-toggle:not(.kbq-navbar-item_has-nested):after{display:block;background:var(--kbq-navbar-item-default-content-background)}.kbq-navbar-item .kbq-navbar-title,.kbq-navbar-brand .kbq-navbar-title,.kbq-navbar-toggle .kbq-navbar-title{color:var(--kbq-navbar-item-default-content-text)}.kbq-navbar-item>.kbq-icon.kbq-empty,.kbq-navbar-brand>.kbq-icon.kbq-empty,.kbq-navbar-toggle>.kbq-icon.kbq-empty{color:var(--kbq-navbar-item-default-content-icon-left)!important}.kbq-navbar-item .kbq-navbar-item__arrow-icon,.kbq-navbar-brand .kbq-navbar-item__arrow-icon,.kbq-navbar-toggle .kbq-navbar-item__arrow-icon{color:var(--kbq-navbar-item-default-content-icon-right)!important}.kbq-navbar-item:hover:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand):not(.kbq-navbar-item_has-nested):after,.kbq-navbar-brand:hover:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand):not(.kbq-navbar-item_has-nested):after,.kbq-navbar-toggle:hover:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand):not(.kbq-navbar-item_has-nested):after{display:block;background:var(--kbq-navbar-item-states-hover-content-background)}.kbq-navbar-item:hover:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand) .kbq-navbar-title,.kbq-navbar-brand:hover:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand) .kbq-navbar-title,.kbq-navbar-toggle:hover:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand) .kbq-navbar-title{color:var(--kbq-navbar-item-states-hover-content-text)}.kbq-navbar-item:hover:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand)>.kbq-icon.kbq-empty,.kbq-navbar-brand:hover:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand)>.kbq-icon.kbq-empty,.kbq-navbar-toggle:hover:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand)>.kbq-icon.kbq-empty{color:var(--kbq-navbar-item-states-hover-content-icon-left)!important}.kbq-navbar-item:hover:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand) .kbq-navbar-item__arrow-icon,.kbq-navbar-brand:hover:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand) .kbq-navbar-item__arrow-icon,.kbq-navbar-toggle:hover:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand) .kbq-navbar-item__arrow-icon{color:var(--kbq-navbar-item-states-hover-content-icon-right)!important}.kbq-navbar-item.cdk-focused.cdk-keyboard-focused,.kbq-navbar-brand.cdk-focused.cdk-keyboard-focused,.kbq-navbar-toggle.cdk-focused.cdk-keyboard-focused{outline:none}.kbq-navbar-item.cdk-focused.cdk-keyboard-focused:after,.kbq-navbar-brand.cdk-focused.cdk-keyboard-focused:after,.kbq-navbar-toggle.cdk-focused.cdk-keyboard-focused:after{display:block;box-shadow:inset 0 0 0 2px var(--kbq-states-line-focus-theme)}.kbq-navbar-item:active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand):not(.kbq-navbar-item_has-nested):after,.kbq-navbar-item.kbq-active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand):not(.kbq-navbar-item_has-nested):after,.kbq-navbar-brand:active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand):not(.kbq-navbar-item_has-nested):after,.kbq-navbar-brand.kbq-active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand):not(.kbq-navbar-item_has-nested):after,.kbq-navbar-toggle:active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand):not(.kbq-navbar-item_has-nested):after,.kbq-navbar-toggle.kbq-active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand):not(.kbq-navbar-item_has-nested):after{display:block;background:var(--kbq-navbar-item-states-selected-content-background)}.kbq-navbar-item:active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand) .kbq-navbar-title,.kbq-navbar-item.kbq-active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand) .kbq-navbar-title,.kbq-navbar-brand:active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand) .kbq-navbar-title,.kbq-navbar-brand.kbq-active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand) .kbq-navbar-title,.kbq-navbar-toggle:active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand) .kbq-navbar-title,.kbq-navbar-toggle.kbq-active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand) .kbq-navbar-title{color:var(--kbq-navbar-item-states-selected-content-text)}.kbq-navbar-item:active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand)>.kbq-icon.kbq-empty,.kbq-navbar-item.kbq-active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand)>.kbq-icon.kbq-empty,.kbq-navbar-brand:active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand)>.kbq-icon.kbq-empty,.kbq-navbar-brand.kbq-active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand)>.kbq-icon.kbq-empty,.kbq-navbar-toggle:active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand)>.kbq-icon.kbq-empty,.kbq-navbar-toggle.kbq-active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand)>.kbq-icon.kbq-empty{color:var(--kbq-navbar-item-states-selected-content-icon-left)!important}.kbq-navbar-item:active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand) .kbq-navbar-item__arrow-icon,.kbq-navbar-item.kbq-active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand) .kbq-navbar-item__arrow-icon,.kbq-navbar-brand:active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand) .kbq-navbar-item__arrow-icon,.kbq-navbar-brand.kbq-active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand) .kbq-navbar-item__arrow-icon,.kbq-navbar-toggle:active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand) .kbq-navbar-item__arrow-icon,.kbq-navbar-toggle.kbq-active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand) .kbq-navbar-item__arrow-icon{color:var(--kbq-navbar-item-states-selected-content-icon-right)!important}.kbq-navbar-item.kbq-navbar-focusable-item,.kbq-navbar-brand.kbq-navbar-focusable-item,.kbq-navbar-toggle.kbq-navbar-focusable-item{outline:none}.kbq-navbar-item.kbq-disabled,.kbq-navbar-brand.kbq-disabled,.kbq-navbar-toggle.kbq-disabled{pointer-events:none;cursor:default}.kbq-navbar-item.kbq-disabled:not(.kbq-navbar-item_has-nested):after,.kbq-navbar-brand.kbq-disabled:not(.kbq-navbar-item_has-nested):after,.kbq-navbar-toggle.kbq-disabled:not(.kbq-navbar-item_has-nested):after{display:block;background:var(--kbq-navbar-item-states-disabled-content-background)}.kbq-navbar-item.kbq-disabled .kbq-navbar-title,.kbq-navbar-brand.kbq-disabled .kbq-navbar-title,.kbq-navbar-toggle.kbq-disabled .kbq-navbar-title{color:var(--kbq-navbar-item-states-disabled-content-text)}.kbq-navbar-item.kbq-disabled>.kbq-icon.kbq-empty,.kbq-navbar-brand.kbq-disabled>.kbq-icon.kbq-empty,.kbq-navbar-toggle.kbq-disabled>.kbq-icon.kbq-empty{color:var(--kbq-navbar-item-states-disabled-content-icon-left)!important}.kbq-navbar-item.kbq-disabled .kbq-navbar-item__arrow-icon,.kbq-navbar-brand.kbq-disabled .kbq-navbar-item__arrow-icon,.kbq-navbar-toggle.kbq-disabled .kbq-navbar-item__arrow-icon{color:var(--kbq-navbar-item-states-disabled-content-icon-right)!important}.kbq-navbar-brand.kbq-vertical:hover .kbq-navbar-logo{transform:scale(1.06)}.kbq-navbar-brand.kbq-horizontal:hover .kbq-navbar-logo{z-index:1}.kbq-navbar-divider{background:var(--kbq-line-contrast-less)}.kbq-navbar-title{font-size:var(--kbq-typography-text-normal-medium-font-size);font-style:var(--kbq-typography-text-normal-medium-font-style);font-weight:var(--kbq-typography-text-normal-medium-font-weight);line-height:var(--kbq-typography-text-normal-medium-line-height);font-family:var(--kbq-typography-text-normal-medium-font-family);text-transform:var(--kbq-typography-text-normal-medium-text-transform);font-feature-settings:var(--kbq-typography-text-normal-medium-font-feature-settings);letter-spacing:var(--kbq-typography-text-normal-medium-letter-spacing)}.kbq-navbar-brand .kbq-navbar-title{font-size:var(--kbq-typography-navbar-title-font-size);font-style:var(--kbq-typography-navbar-title-font-style);font-weight:var(--kbq-typography-navbar-title-font-weight);line-height:var(--kbq-typography-navbar-title-line-height);font-family:var(--kbq-typography-navbar-title-font-family);text-transform:var(--kbq-typography-navbar-title-text-transform);font-feature-settings:var(--kbq-typography-navbar-title-font-feature-settings);letter-spacing:var(--kbq-typography-navbar-title-letter-spacing)}\n", ".kbq-truncate-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kbq-no-select{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.kbq-navbar-item.kbq-vertical .kbq-navbar-item__container{gap:var(--kbq-size-m)}.kbq-navbar-item.kbq-vertical.kbq-expanded{height:var(--kbq-size-5xl);align-items:center;padding-right:var(--kbq-size-xl);padding-left:var(--kbq-size-xl);gap:var(--kbq-size-m)}.kbq-navbar-item.kbq-vertical.kbq-expanded:after{top:var(--kbq-size-xxs);right:var(--kbq-size-s);bottom:var(--kbq-size-xxs);left:var(--kbq-size-s)}.kbq-navbar-item.kbq-vertical.kbq-expanded.kbq-navbar-bento{position:absolute;display:flex;justify-content:center;align-items:center;top:var(--kbq-size-xxs);right:var(--kbq-size-xxs);z-index:1;padding:var(--kbq-size-s);height:var(--kbq-size-5xl);width:var(--kbq-size-5xl)}.kbq-navbar-item.kbq-vertical.kbq-expanded.kbq-navbar-bento:after{top:var(--kbq-size-s);right:var(--kbq-size-s);bottom:var(--kbq-size-s);left:var(--kbq-size-s)}.kbq-navbar-item.kbq-vertical.kbq-expanded.kbq-navbar-item_has-nested{align-items:center;padding:0 var(--kbq-size-m)}.kbq-navbar-item.kbq-vertical.kbq-collapsed{height:var(--kbq-size-5xl);width:var(--kbq-size-5xl);padding:var(--kbq-size-l);justify-content:center}.kbq-navbar-item.kbq-vertical.kbq-collapsed:after{top:var(--kbq-size-s);right:var(--kbq-size-s);bottom:var(--kbq-size-s);left:var(--kbq-size-s)}.kbq-navbar-item.kbq-vertical.kbq-collapsed .kbq-badge{position:absolute;z-index:1;top:var(--kbq-size-xs);right:var(--kbq-size-xs)}.kbq-navbar-item.kbq-vertical.kbq-collapsed .kbq-navbar-item__container{display:none}.kbq-navbar-item.kbq-vertical>.kbq-icon{display:flex;justify-content:center;align-items:center}.kbq-navbar-item.kbq-horizontal{position:relative;flex-direction:row;box-sizing:border-box;outline:none;-webkit-tap-highlight-color:transparent;min-height:var(--kbq-size-3xl);min-width:var(--kbq-size-3xl);margin:var(--kbq-size-s);justify-content:center}.kbq-navbar-item.kbq-horizontal:before{top:calc(-1 * var(--kbq-size-s));left:calc(-1 * var(--kbq-size-s));right:calc(-1 * var(--kbq-size-s));bottom:calc(-1 * var(--kbq-size-s))}.kbq-navbar-item.kbq-horizontal:after{inset:0}.kbq-navbar-item.kbq-horizontal .kbq-navbar-item__title{padding-left:var(--kbq-size-xxs);padding-right:var(--kbq-size-xxs)}.kbq-navbar-item.kbq-horizontal .kbq-navbar-item__arrow-icon{padding-left:var(--kbq-size-xxs)}.kbq-navbar-item.kbq-horizontal.kbq-navbar-item_with-title:not(.kbq-navbar-item_collapsed){margin-left:0;margin-right:0;padding-right:var(--kbq-size-m);padding-left:var(--kbq-size-m)}.kbq-navbar-item.kbq-horizontal.kbq-navbar-item_with-title:not(.kbq-navbar-item_collapsed):before{left:0;right:0}.kbq-navbar-item.kbq-horizontal.kbq-navbar-item_with-title:not(.kbq-navbar-item_collapsed)>.kbq-icon{align-self:center;padding-right:var(--kbq-size-xxs)}.kbq-navbar-item.kbq-horizontal.kbq-navbar-bento{justify-content:center;margin-right:var(--kbq-size-xxs)}.kbq-navbar-item.kbq-horizontal.kbq-navbar-bento:before{right:calc(-1 * var(--kbq-size-xxs))}.kbq-navbar-item.kbq-horizontal.kbq-navbar-item_collapsed{justify-content:center;padding:var(--kbq-size-s)}.kbq-navbar-item.kbq-horizontal.kbq-navbar-item_collapsed .kbq-navbar-item__container{display:none}.kbq-navbar-item.kbq-horizontal .kbq-badge{position:absolute;z-index:1;top:-2px;right:-2px}.kbq-navbar-item.kbq-horizontal.kbq-navbar-item_has-nested{margin-left:var(--kbq-size-m);margin-right:var(--kbq-size-m)}.kbq-navbar-item.kbq-horizontal.kbq-navbar-item_has-nested:before{left:calc(-1 * var(--kbq-size-m));right:calc(-1 * var(--kbq-size-m))}.kbq-navbar-item{box-sizing:border-box;position:relative;display:flex;align-items:center;border-radius:var(--kbq-navbar-item-size-content-border-radius)}.kbq-navbar-item .kbq-icon{min-width:var(--kbq-size-l);min-height:var(--kbq-size-l)}.kbq-navbar-item .kbq-button-icon{position:absolute;padding-left:var(--kbq-size-xs);padding-right:var(--kbq-size-xs);top:50%;transform:translateY(-50%)}.kbq-navbar-item:before{position:absolute;content:\"\"}.kbq-navbar-item:after{position:absolute;content:\"\";display:none;border-radius:var(--kbq-navbar-item-size-content-border-radius)}.kbq-navbar-title{display:inline-block;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.kbq-navbar-item__title{display:flex;flex-direction:column;align-self:center;min-width:0}.kbq-navbar-item__container{display:flex;flex-direction:row;flex:1 1 auto;justify-content:space-between;min-width:0}.kbq-navbar-item__container .kbq-icon{align-self:center}.kbq-navbar-item.kbq-navbar-item_has-nested .kbq-button{flex:1}.kbq-navbar-item.kbq-navbar-item_has-nested .kbq-button .kbq-button-wrapper{justify-content:center}.kbq-navbar-item.kbq-navbar-item_has-nested .kbq-button .kbq-button-wrapper .kbq-icon.kbq-icon_left{margin-left:unset}.kbq-navbar-item.kbq-navbar-item_has-nested .kbq-button .kbq-button-wrapper .kbq-icon.kbq-icon_right{margin-right:unset}a.kbq-navbar-item,a.kbq-navbar-title{text-decoration:none}.kbq-navbar-item [kbq-button],.kbq-navbar-brand [kbq-button],.kbq-navbar-toggle [kbq-button]{z-index:1}\n", ".kbq-navbar-logo{display:flex}.kbq-navbar-brand{position:relative;display:flex;border-radius:var(--kbq-size-s)}.kbq-navbar-brand:after{position:absolute;content:\"\";display:none;border-radius:var(--kbq-navbar-item-size-content-border-radius)}.kbq-navbar-brand .kbq-navbar-title{cursor:pointer}a.kbq-navbar-brand{text-decoration:none}.kbq-navbar-brand.kbq-horizontal{padding:var(--kbq-size-s) var(--kbq-size-xs) var(--kbq-size-s) var(--kbq-size-xxs);align-items:center;gap:var(--kbq-size-s)}.kbq-navbar-brand.kbq-horizontal:after{top:var(--kbq-size-xxs);right:var(--kbq-size-xxs);bottom:var(--kbq-size-xxs);left:0}.kbq-navbar-brand.kbq-horizontal .kbq-navbar-title{padding-right:var(--kbq-size-m)}.kbq-navbar-brand.kbq-vertical .kbq-navbar-logo{align-items:center}.kbq-navbar-brand.kbq-vertical .kbq-navbar-title{display:block;align-items:center;padding-top:var(--kbq-size-xxs);padding-bottom:var(--kbq-size-xxs);height:var(--kbq-size-3xl);padding-left:0;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.kbq-navbar-brand.kbq-vertical.kbq-expanded{position:relative;height:var(--kbq-size-4xl);width:var(--kbq-size-4xl);margin:var(--kbq-size-l) var(--kbq-size-l) var(--kbq-size-4xl);flex-direction:column}.kbq-navbar-brand.kbq-vertical.kbq-expanded:after{inset:0}.kbq-navbar-brand.kbq-vertical.kbq-expanded .kbq-navbar-logo{min-height:var(--kbq-size-4xl);justify-content:center}.kbq-navbar-brand.kbq-vertical.kbq-expanded .kbq-navbar-title{position:absolute;left:var(--kbq-size-xxs);top:var(--kbq-size-4xl);max-width:200px}.kbq-navbar-brand.kbq-vertical.kbq-collapsed{height:var(--kbq-size-5xl);width:var(--kbq-size-5xl);justify-content:center}.kbq-navbar-brand.kbq-vertical.kbq-collapsed:after{top:var(--kbq-size-xxs);right:var(--kbq-size-xxs);bottom:var(--kbq-size-xxs);left:var(--kbq-size-xxs)}.kbq-navbar-brand.kbq-vertical.kbq-collapsed .kbq-navbar-title{display:none}\n", ".kbq-navbar-divider{display:block}.kbq-navbar-divider.kbq-vertical{height:1px;margin:var(--kbq-size-s) var(--kbq-size-l)}.kbq-navbar-divider.kbq-horizontal{width:1px;height:12px;margin-left:var(--kbq-size-m);margin-right:var(--kbq-size-m)}\n", ".kbq-navbar,.kbq-vertical-navbar{--kbq-navbar-item-size-content-border-radius: var(--kbq-size-border-radius);--kbq-navbar-background: var(--kbq-background-bg);--kbq-navbar-border: var(--kbq-line-contrast-less);--kbq-navbar-item-default-content-text: var(--kbq-foreground-contrast);--kbq-navbar-item-default-content-background: transparent;--kbq-navbar-item-default-content-icon-left: var(--kbq-icon-contrast);--kbq-navbar-item-default-content-icon-right: var(--kbq-icon-contrast);--kbq-navbar-item-states-hover-content-text: var(--kbq-foreground-contrast);--kbq-navbar-item-states-hover-content-background: var(--kbq-states-background-transparent-hover);--kbq-navbar-item-states-hover-content-icon-left: var(--kbq-states-icon-contrast-hover);--kbq-navbar-item-states-hover-content-icon-right: var(--kbq-states-icon-contrast-hover);--kbq-navbar-item-states-selected-content-text: var(--kbq-foreground-contrast);--kbq-navbar-item-states-selected-content-background: var(--kbq-states-background-transparent-active);--kbq-navbar-item-states-selected-content-icon-left: var(--kbq-states-icon-contrast-active);--kbq-navbar-item-states-selected-content-icon-right: var(--kbq-states-icon-contrast-active);--kbq-navbar-item-states-selected-hover-content-text: var(--kbq-foreground-contrast);--kbq-navbar-item-states-selected-hover-content-background: var(--kbq-states-background-transparent-hover);--kbq-navbar-item-states-selected-hover-content-icon-left: var(--kbq-states-icon-contrast-hover);--kbq-navbar-item-states-selected-hover-content-icon-right: var(--kbq-states-icon-contrast-hover);--kbq-navbar-item-states-disabled-content-text: var(--kbq-states-foreground-disabled);--kbq-navbar-item-states-disabled-content-background: transparent;--kbq-navbar-item-states-disabled-content-icon-left: var(--kbq-states-icon-disabled);--kbq-navbar-item-states-disabled-content-icon-right: var(--kbq-states-icon-disabled)}\n"] }]
343
- }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1.FocusMonitor }], propDecorators: { items: [{
344
- type: ContentChildren,
345
- args: [forwardRef(() => KbqNavbarItem), { descendants: true }]
346
- }], bento: [{
412
+ }, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<ng-content select=\"[kbq-icon]\" />\n\n@if (title) {\n <div class=\"kbq-navbar-item__container\">\n <div class=\"kbq-navbar-item__title\">\n <ng-content select=\"kbq-navbar-title, [kbq-navbar-title]\" />\n </div>\n @if (showVerticalDropDownAngle) {\n <i kbq-icon=\"kbq-chevron-right_16\" class=\"kbq-navbar-item__arrow-icon\"></i>\n }\n @if (showHorizontalDropDownAngle) {\n <i kbq-icon=\"kbq-chevron-down-s_16\" class=\"kbq-navbar-item__arrow-icon\"></i>\n }\n </div>\n}\n\n<ng-content />\n" }]
413
+ }], ctorParameters: () => [{ type: KbqNavbarRectangleElement }, { type: KbqNavbarFocusableItem }, { type: i0.ChangeDetectorRef }, { type: i2.KbqDropdownTrigger, decorators: [{
414
+ type: Optional
415
+ }] }, { type: KbqNavbarBento, decorators: [{
416
+ type: Optional
417
+ }] }], propDecorators: { title: [{
347
418
  type: ContentChild,
348
- args: [forwardRef(() => KbqNavbarBento)]
349
- }], openOver: [{
419
+ args: [KbqNavbarTitle]
420
+ }], icon: [{
421
+ type: ContentChild,
422
+ args: [KbqIcon]
423
+ }], collapsedText: [{
350
424
  type: Input
351
- }], expanded: [{
425
+ }], trigger: [{
426
+ type: Input,
427
+ args: ['kbqTrigger']
428
+ }], collapsable: [{
352
429
  type: Input
353
430
  }] } });
354
431
 
355
- class KbqNavbarLogo {
356
- constructor() {
357
- this.hovered = new Subject();
432
+ class KbqNavbarBrand extends KbqTooltipTrigger {
433
+ get isLink() {
434
+ return this.nativeElement.tagName === 'A';
358
435
  }
359
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: KbqNavbarLogo, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
360
- /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.14", type: KbqNavbarLogo, selector: "kbq-navbar-logo, [kbq-navbar-logo]", host: { listeners: { "mouseenter": "hovered.next(true)", "mouseleave": "hovered.next(false)" }, classAttribute: "kbq-navbar-logo" }, ngImport: i0 }); }
361
- }
362
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: KbqNavbarLogo, decorators: [{
363
- type: Directive,
364
- args: [{
365
- selector: 'kbq-navbar-logo, [kbq-navbar-logo]',
366
- host: {
367
- class: 'kbq-navbar-logo',
368
- '(mouseenter)': 'hovered.next(true)',
369
- '(mouseleave)': 'hovered.next(false)'
370
- }
371
- }]
372
- }] });
373
- class KbqNavbarBento {
374
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: KbqNavbarBento, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
375
- /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.14", type: KbqNavbarBento, selector: "kbq-navbar-item[bento], [kbq-navbar-item][bento]", host: { classAttribute: "kbq-navbar-bento" }, ngImport: i0 }); }
376
- }
377
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: KbqNavbarBento, decorators: [{
378
- type: Directive,
379
- args: [{
380
- selector: 'kbq-navbar-item[bento], [kbq-navbar-item][bento]',
381
- host: {
382
- class: 'kbq-navbar-bento'
383
- }
384
- }]
385
- }] });
386
- class KbqNavbarTitle {
387
- constructor() {
388
- this.isBrowser = inject(Platform).isBrowser;
389
- this.nativeElement = kbqInjectNativeElement();
390
- this.window = inject(KBQ_WINDOW);
391
- this.hovered = new Subject();
392
- this.isTextOverflown = false;
436
+ /** @docs-private */
437
+ get croppedText() {
438
+ const croppedTitleText = this.title?.isOverflown ? this.titleText : '';
439
+ return `${croppedTitleText}`;
393
440
  }
394
- get text() {
395
- return this.nativeElement.textContent || '';
441
+ /** @docs-private */
442
+ get hasCroppedText() {
443
+ return !!this.title?.isOverflown;
396
444
  }
397
- get isOverflown() {
398
- return this.nativeElement.scrollWidth > this.nativeElement.clientWidth;
445
+ /** @docs-private */
446
+ get titleText() {
447
+ return this.collapsedText || this.title?.text || null;
399
448
  }
400
- getOuterElementWidth() {
401
- if (!this.isBrowser)
402
- return 0;
403
- const { width, marginLeft, marginRight } = this.window.getComputedStyle(this.nativeElement);
404
- return [width, marginLeft, marginRight].reduce((acc, item) => acc + parseInt(item) || 0, 0);
449
+ /** @docs-private */
450
+ get disabled() {
451
+ if (this._disabled !== undefined) {
452
+ return this._disabled;
453
+ }
454
+ return !this.collapsed && !this.hasCroppedText;
405
455
  }
406
- checkTextOverflown() {
407
- this.isTextOverflown = this.text.length > 18;
456
+ set disabled(value) {
457
+ this._disabled = coerceBooleanProperty(value);
408
458
  }
409
- ngAfterViewInit() {
410
- this.outerElementWidth = this.getOuterElementWidth();
459
+ /** @docs-private */
460
+ get collapsed() {
461
+ return this._collapsed ?? this.rectangleElement.collapsed;
411
462
  }
412
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: KbqNavbarTitle, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
413
- /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.14", type: KbqNavbarTitle, selector: "kbq-navbar-title, [kbq-navbar-title]", host: { listeners: { "mouseenter": "hovered.next(true)", "mouseleave": "hovered.next(false)" }, properties: { "class.kbq-navbar-title_small": "isTextOverflown" }, classAttribute: "kbq-navbar-title" }, ngImport: i0 }); }
414
- }
415
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: KbqNavbarTitle, decorators: [{
416
- type: Directive,
417
- args: [{
418
- selector: 'kbq-navbar-title, [kbq-navbar-title]',
419
- host: {
420
- class: 'kbq-navbar-title',
421
- '[class.kbq-navbar-title_small]': 'isTextOverflown',
422
- '(mouseenter)': 'hovered.next(true)',
423
- '(mouseleave)': 'hovered.next(false)'
424
- }
425
- }]
426
- }] });
427
- class KbqNavbarBrand {
428
- get hasBento() {
429
- return !!this.navbar?.bento;
463
+ set collapsed(value) {
464
+ if (this._collapsed !== value) {
465
+ this._collapsed = value;
466
+ this.updateTooltip();
467
+ }
430
468
  }
431
- constructor(navbar) {
432
- this.navbar = navbar;
433
- this.hovered = false;
434
- this.destroyRef = inject(DestroyRef);
469
+ constructor() {
470
+ super();
471
+ /** @docs-private */
472
+ this.nativeElement = kbqInjectNativeElement();
473
+ /** @docs-private */
474
+ this.changeDetectorRef = inject(ChangeDetectorRef);
475
+ /** @docs-private */
476
+ this.rectangleElement = inject(KbqNavbarRectangleElement);
477
+ /** @docs-private */
478
+ this.navbarFocusableItem = inject(KbqNavbarFocusableItem);
479
+ /** alternative display of the brand name in two lines */
480
+ this.longTitle = false;
481
+ this._collapsed = false;
482
+ this.rectangleElement.state.pipe(takeUntilDestroyed()).subscribe(() => {
483
+ this.collapsed = this.rectangleElement.collapsed;
484
+ this.changeDetectorRef.detectChanges();
485
+ });
486
+ this._trigger = `${PopUpTriggers.Hover}`;
487
+ this.navbarFocusableItem.setTooltip(this);
488
+ this.arrow = false;
489
+ this.offset = 0;
490
+ this.navbarFocusableItem.disabled = !this.isLink;
435
491
  }
436
492
  ngAfterContentInit() {
437
- merge(this.logo ? this.logo.hovered : EMPTY, this.title ? this.title.hovered : EMPTY)
438
- .pipe(takeUntilDestroyed(this.destroyRef))
439
- .subscribe((value) => (this.hovered = !!value));
440
- this.navbar?.animationDone
441
- .pipe(takeUntilDestroyed(this.destroyRef))
442
- .subscribe(() => this.title?.checkTextOverflown());
443
- }
444
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: KbqNavbarBrand, deps: [{ token: KbqVerticalNavbar, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
445
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: KbqNavbarBrand, selector: "kbq-navbar-brand, [kbq-navbar-brand]", host: { properties: { "class.kbq-hovered": "hovered" }, classAttribute: "kbq-navbar-brand" }, queries: [{ propertyName: "logo", first: true, predicate: KbqNavbarLogo, descendants: true }, { propertyName: "title", first: true, predicate: KbqNavbarTitle, descendants: true }], exportAs: ["kbqNavbarBrand"], ngImport: i0, template: `
493
+ this.updateTooltip();
494
+ }
495
+ updateTooltip() {
496
+ if (this.collapsed) {
497
+ this.content = `${this.titleText || ''}`;
498
+ }
499
+ else if (!this.collapsed && this.hasCroppedText) {
500
+ this.content = this.croppedText;
501
+ }
502
+ if (this.rectangleElement.vertical) {
503
+ this.placement = PopUpPlacements.Right;
504
+ }
505
+ this.changeDetectorRef.markForCheck();
506
+ }
507
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: KbqNavbarBrand, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
508
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: KbqNavbarBrand, selector: "kbq-navbar-brand, [kbq-navbar-brand]", inputs: { longTitle: "longTitle", collapsedText: "collapsedText" }, host: { properties: { "class.kbq-navbar-brand_long-title": "longTitle", "class.kbq-navbar-brand_link": "isLink" }, classAttribute: "kbq-navbar-brand" }, queries: [{ propertyName: "title", first: true, predicate: KbqNavbarTitle, descendants: true }], exportAs: ["kbqNavbarBrand"], usesInheritance: true, ngImport: i0, template: `
446
509
  <ng-content />
447
- `, isInline: true }); }
510
+ `, isInline: true, styles: ["button.kbq-navbar-item,button.kbq-navbar-brand{background:transparent;border:none}.kbq-navbar-logo{display:flex}.kbq-navbar-brand{position:relative;display:flex;border-radius:var(--kbq-size-s)}.kbq-navbar-brand:after{position:absolute;content:\"\";display:none;border-radius:var(--kbq-navbar-item-size-content-border-radius)}.kbq-navbar-brand .kbq-navbar-title{cursor:pointer}a.kbq-navbar-brand{text-decoration:none}.kbq-navbar-brand.kbq-horizontal{padding:var(--kbq-size-s) var(--kbq-size-xs) var(--kbq-size-s) var(--kbq-size-xxs);align-items:center;gap:var(--kbq-size-s)}.kbq-navbar-brand.kbq-horizontal:after{top:var(--kbq-size-xxs);right:var(--kbq-size-xxs);bottom:var(--kbq-size-xxs);left:0}.kbq-navbar-brand.kbq-horizontal .kbq-navbar-title{padding-right:var(--kbq-size-m)}.kbq-navbar-brand.kbq-vertical{flex-direction:row;align-items:center;padding:var(--kbq-size-xxs) var(--kbq-size-m) var(--kbq-size-m)}.kbq-navbar-brand.kbq-vertical:after{top:0;right:var(--kbq-size-s);bottom:var(--kbq-size-s);left:var(--kbq-size-s)}.kbq-navbar-brand.kbq-vertical .kbq-navbar-logo{align-items:center}.kbq-navbar-brand.kbq-vertical .kbq-navbar-title{display:block;align-items:center;padding-left:var(--kbq-size-s)}.kbq-navbar-brand.kbq-vertical.kbq-expanded .kbq-navbar-title{max-width:200px}.kbq-navbar-brand.kbq-vertical.kbq-collapsed .kbq-navbar-title{display:none!important}.kbq-navbar-brand.kbq-vertical.kbq-navbar-brand_long-title .kbq-navbar-title{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;white-space:normal}.kbq-navbar-brand:not(.kbq-navbar-item_has-nested):after{display:block;background:var(--kbq-navbar-item-default-content-background)}.kbq-navbar-brand .kbq-navbar-title{color:var(--kbq-navbar-item-default-content-text)}.kbq-navbar-brand>.kbq-icon.kbq-empty{color:var(--kbq-navbar-item-default-content-icon-left)!important}.kbq-navbar-brand .kbq-navbar-item__arrow-icon{color:var(--kbq-navbar-item-default-content-icon-right)!important}.kbq-navbar-brand.kbq-navbar-brand_link{cursor:pointer}.kbq-navbar-brand.kbq-navbar-brand_link:hover:not(.kbq-disabled):not(.kbq-navbar-item_has-nested):after{display:block;background:var(--kbq-navbar-item-states-hover-content-background)}.kbq-navbar-brand.kbq-navbar-brand_link:hover:not(.kbq-disabled) .kbq-navbar-title{color:var(--kbq-navbar-item-states-hover-content-text)}.kbq-navbar-brand.kbq-navbar-brand_link:hover:not(.kbq-disabled)>.kbq-icon.kbq-empty{color:var(--kbq-navbar-item-states-hover-content-icon-left)!important}.kbq-navbar-brand.kbq-navbar-brand_link:hover:not(.kbq-disabled) .kbq-navbar-item__arrow-icon{color:var(--kbq-navbar-item-states-hover-content-icon-right)!important}.kbq-navbar-brand.kbq-navbar-brand_link.cdk-focused.cdk-keyboard-focused{outline:none}.kbq-navbar-brand.kbq-navbar-brand_link.cdk-focused.cdk-keyboard-focused:after{display:block;box-shadow:inset 0 0 0 2px var(--kbq-states-line-focus-theme)}.kbq-navbar-brand.kbq-navbar-brand_link:active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand):not(.kbq-navbar-item_has-nested):after,.kbq-navbar-brand.kbq-navbar-brand_link.kbq-active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand):not(.kbq-navbar-item_has-nested):after{display:block;background:var(--kbq-navbar-item-states-selected-content-background)}.kbq-navbar-brand.kbq-navbar-brand_link:active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand) .kbq-navbar-title,.kbq-navbar-brand.kbq-navbar-brand_link.kbq-active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand) .kbq-navbar-title{color:var(--kbq-navbar-item-states-selected-content-text)}.kbq-navbar-brand.kbq-navbar-brand_link:active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand)>.kbq-icon.kbq-empty,.kbq-navbar-brand.kbq-navbar-brand_link.kbq-active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand)>.kbq-icon.kbq-empty{color:var(--kbq-navbar-item-states-selected-content-icon-left)!important}.kbq-navbar-brand.kbq-navbar-brand_link:active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand) .kbq-navbar-item__arrow-icon,.kbq-navbar-brand.kbq-navbar-brand_link.kbq-active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand) .kbq-navbar-item__arrow-icon{color:var(--kbq-navbar-item-states-selected-content-icon-right)!important}.kbq-navbar-brand.kbq-navbar-brand_link.kbq-vertical:hover .kbq-navbar-logo{transform:scale(1.06)}.kbq-navbar-brand.kbq-navbar-brand_link.kbq-horizontal:hover .kbq-navbar-logo{z-index:1}.kbq-navbar-brand.kbq-navbar-focusable-item{outline:none}.kbq-navbar-brand .kbq-navbar-title{font-size:var(--kbq-typography-navbar-title-font-size);font-style:var(--kbq-typography-navbar-title-font-style);font-weight:var(--kbq-typography-navbar-title-font-weight);line-height:var(--kbq-typography-navbar-title-line-height);font-family:var(--kbq-typography-navbar-title-font-family);text-transform:var(--kbq-typography-navbar-title-text-transform);font-feature-settings:var(--kbq-typography-navbar-title-font-feature-settings);letter-spacing:var(--kbq-typography-navbar-title-letter-spacing)}.kbq-navbar-brand.kbq-navbar-brand_long-title .kbq-navbar-title{font-size:var(--kbq-typography-text-normal-strong-font-size);font-style:var(--kbq-typography-text-normal-strong-font-style);font-weight:var(--kbq-typography-text-normal-strong-font-weight);line-height:var(--kbq-typography-text-normal-strong-line-height);font-family:var(--kbq-typography-text-normal-strong-font-family);text-transform:var(--kbq-typography-text-normal-strong-text-transform);font-feature-settings:var(--kbq-typography-text-normal-strong-font-feature-settings);letter-spacing:var(--kbq-typography-text-normal-strong-letter-spacing)}\n"] }); }
448
511
  }
449
512
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: KbqNavbarBrand, decorators: [{
450
513
  type: Component,
451
- args: [{
452
- selector: 'kbq-navbar-brand, [kbq-navbar-brand]',
453
- exportAs: 'kbqNavbarBrand',
454
- template: `
514
+ args: [{ selector: 'kbq-navbar-brand, [kbq-navbar-brand]', exportAs: 'kbqNavbarBrand', template: `
455
515
  <ng-content />
456
- `,
457
- host: {
516
+ `, host: {
458
517
  class: 'kbq-navbar-brand',
459
- '[class.kbq-hovered]': 'hovered'
460
- }
461
- }]
462
- }], ctorParameters: () => [{ type: KbqVerticalNavbar, decorators: [{
463
- type: Optional
464
- }] }], propDecorators: { logo: [{
465
- type: ContentChild,
466
- args: [KbqNavbarLogo]
467
- }], title: [{
518
+ '[class.kbq-navbar-brand_long-title]': 'longTitle',
519
+ '[class.kbq-navbar-brand_link]': 'isLink'
520
+ }, styles: ["button.kbq-navbar-item,button.kbq-navbar-brand{background:transparent;border:none}.kbq-navbar-logo{display:flex}.kbq-navbar-brand{position:relative;display:flex;border-radius:var(--kbq-size-s)}.kbq-navbar-brand:after{position:absolute;content:\"\";display:none;border-radius:var(--kbq-navbar-item-size-content-border-radius)}.kbq-navbar-brand .kbq-navbar-title{cursor:pointer}a.kbq-navbar-brand{text-decoration:none}.kbq-navbar-brand.kbq-horizontal{padding:var(--kbq-size-s) var(--kbq-size-xs) var(--kbq-size-s) var(--kbq-size-xxs);align-items:center;gap:var(--kbq-size-s)}.kbq-navbar-brand.kbq-horizontal:after{top:var(--kbq-size-xxs);right:var(--kbq-size-xxs);bottom:var(--kbq-size-xxs);left:0}.kbq-navbar-brand.kbq-horizontal .kbq-navbar-title{padding-right:var(--kbq-size-m)}.kbq-navbar-brand.kbq-vertical{flex-direction:row;align-items:center;padding:var(--kbq-size-xxs) var(--kbq-size-m) var(--kbq-size-m)}.kbq-navbar-brand.kbq-vertical:after{top:0;right:var(--kbq-size-s);bottom:var(--kbq-size-s);left:var(--kbq-size-s)}.kbq-navbar-brand.kbq-vertical .kbq-navbar-logo{align-items:center}.kbq-navbar-brand.kbq-vertical .kbq-navbar-title{display:block;align-items:center;padding-left:var(--kbq-size-s)}.kbq-navbar-brand.kbq-vertical.kbq-expanded .kbq-navbar-title{max-width:200px}.kbq-navbar-brand.kbq-vertical.kbq-collapsed .kbq-navbar-title{display:none!important}.kbq-navbar-brand.kbq-vertical.kbq-navbar-brand_long-title .kbq-navbar-title{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;white-space:normal}.kbq-navbar-brand:not(.kbq-navbar-item_has-nested):after{display:block;background:var(--kbq-navbar-item-default-content-background)}.kbq-navbar-brand .kbq-navbar-title{color:var(--kbq-navbar-item-default-content-text)}.kbq-navbar-brand>.kbq-icon.kbq-empty{color:var(--kbq-navbar-item-default-content-icon-left)!important}.kbq-navbar-brand .kbq-navbar-item__arrow-icon{color:var(--kbq-navbar-item-default-content-icon-right)!important}.kbq-navbar-brand.kbq-navbar-brand_link{cursor:pointer}.kbq-navbar-brand.kbq-navbar-brand_link:hover:not(.kbq-disabled):not(.kbq-navbar-item_has-nested):after{display:block;background:var(--kbq-navbar-item-states-hover-content-background)}.kbq-navbar-brand.kbq-navbar-brand_link:hover:not(.kbq-disabled) .kbq-navbar-title{color:var(--kbq-navbar-item-states-hover-content-text)}.kbq-navbar-brand.kbq-navbar-brand_link:hover:not(.kbq-disabled)>.kbq-icon.kbq-empty{color:var(--kbq-navbar-item-states-hover-content-icon-left)!important}.kbq-navbar-brand.kbq-navbar-brand_link:hover:not(.kbq-disabled) .kbq-navbar-item__arrow-icon{color:var(--kbq-navbar-item-states-hover-content-icon-right)!important}.kbq-navbar-brand.kbq-navbar-brand_link.cdk-focused.cdk-keyboard-focused{outline:none}.kbq-navbar-brand.kbq-navbar-brand_link.cdk-focused.cdk-keyboard-focused:after{display:block;box-shadow:inset 0 0 0 2px var(--kbq-states-line-focus-theme)}.kbq-navbar-brand.kbq-navbar-brand_link:active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand):not(.kbq-navbar-item_has-nested):after,.kbq-navbar-brand.kbq-navbar-brand_link.kbq-active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand):not(.kbq-navbar-item_has-nested):after{display:block;background:var(--kbq-navbar-item-states-selected-content-background)}.kbq-navbar-brand.kbq-navbar-brand_link:active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand) .kbq-navbar-title,.kbq-navbar-brand.kbq-navbar-brand_link.kbq-active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand) .kbq-navbar-title{color:var(--kbq-navbar-item-states-selected-content-text)}.kbq-navbar-brand.kbq-navbar-brand_link:active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand)>.kbq-icon.kbq-empty,.kbq-navbar-brand.kbq-navbar-brand_link.kbq-active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand)>.kbq-icon.kbq-empty{color:var(--kbq-navbar-item-states-selected-content-icon-left)!important}.kbq-navbar-brand.kbq-navbar-brand_link:active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand) .kbq-navbar-item__arrow-icon,.kbq-navbar-brand.kbq-navbar-brand_link.kbq-active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand) .kbq-navbar-item__arrow-icon{color:var(--kbq-navbar-item-states-selected-content-icon-right)!important}.kbq-navbar-brand.kbq-navbar-brand_link.kbq-vertical:hover .kbq-navbar-logo{transform:scale(1.06)}.kbq-navbar-brand.kbq-navbar-brand_link.kbq-horizontal:hover .kbq-navbar-logo{z-index:1}.kbq-navbar-brand.kbq-navbar-focusable-item{outline:none}.kbq-navbar-brand .kbq-navbar-title{font-size:var(--kbq-typography-navbar-title-font-size);font-style:var(--kbq-typography-navbar-title-font-style);font-weight:var(--kbq-typography-navbar-title-font-weight);line-height:var(--kbq-typography-navbar-title-line-height);font-family:var(--kbq-typography-navbar-title-font-family);text-transform:var(--kbq-typography-navbar-title-text-transform);font-feature-settings:var(--kbq-typography-navbar-title-font-feature-settings);letter-spacing:var(--kbq-typography-navbar-title-letter-spacing)}.kbq-navbar-brand.kbq-navbar-brand_long-title .kbq-navbar-title{font-size:var(--kbq-typography-text-normal-strong-font-size);font-style:var(--kbq-typography-text-normal-strong-font-style);font-weight:var(--kbq-typography-text-normal-strong-font-weight);line-height:var(--kbq-typography-text-normal-strong-line-height);font-family:var(--kbq-typography-text-normal-strong-font-family);text-transform:var(--kbq-typography-text-normal-strong-text-transform);font-feature-settings:var(--kbq-typography-text-normal-strong-font-feature-settings);letter-spacing:var(--kbq-typography-text-normal-strong-letter-spacing)}\n"] }]
521
+ }], ctorParameters: () => [], propDecorators: { title: [{
468
522
  type: ContentChild,
469
523
  args: [KbqNavbarTitle]
524
+ }], longTitle: [{
525
+ type: Input
526
+ }], collapsedText: [{
527
+ type: Input
470
528
  }] } });
471
- class KbqNavbarDivider {
472
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: KbqNavbarDivider, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
473
- /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.14", type: KbqNavbarDivider, selector: "kbq-navbar-divider", host: { classAttribute: "kbq-navbar-divider" }, ngImport: i0 }); }
474
- }
475
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: KbqNavbarDivider, decorators: [{
476
- type: Directive,
477
- args: [{
478
- selector: 'kbq-navbar-divider',
479
- host: {
480
- class: 'kbq-navbar-divider'
481
- }
482
- }]
483
- }] });
484
- class KbqNavbarFocusableItem {
485
- get nestedElement() {
486
- return this.button || this.formField;
487
- }
488
- get tooltip() {
489
- return this._tooltip;
490
- }
491
- get hasFocus() {
492
- return !!this.nestedElement?.hasFocus || this._hasFocus;
493
- }
494
- set hasFocus(value) {
495
- this._hasFocus = value;
529
+
530
+ class KbqFocusableComponent {
531
+ get tabIndex() {
532
+ return this._tabIndex;
496
533
  }
497
- /** Whether the item is disabled. */
498
- get disabled() {
499
- return this._disabled;
534
+ set tabIndex(value) {
535
+ this._tabIndex = value;
500
536
  }
501
- set disabled(value) {
502
- if (value !== this._disabled) {
503
- this._disabled = value;
504
- this.changeDetector.markForCheck();
505
- }
537
+ get optionFocusChanges() {
538
+ return merge(...this.focusableItems.map((item) => item.onFocus));
506
539
  }
507
- get tabIndex() {
508
- return -1;
540
+ get optionBlurChanges() {
541
+ return merge(...this.focusableItems.map((option) => option.onBlur));
509
542
  }
510
- constructor(elementRef, changeDetector, focusMonitor, ngZone) {
543
+ constructor(changeDetectorRef, elementRef, focusMonitor) {
544
+ this.changeDetectorRef = changeDetectorRef;
511
545
  this.elementRef = elementRef;
512
- this.changeDetector = changeDetector;
513
546
  this.focusMonitor = focusMonitor;
514
- this.ngZone = ngZone;
515
- this.onFocus = new Subject();
516
- this.onBlur = new Subject();
517
- this._hasFocus = false;
518
- this._disabled = false;
519
- }
520
- ngAfterViewInit() {
521
- this.focusMonitor.monitor(this.elementRef);
547
+ this._tabIndex = 0;
548
+ this.destroyRef = inject(DestroyRef);
522
549
  }
523
550
  ngAfterContentInit() {
524
- if (this.button) {
525
- this.button.tabIndex = -1;
526
- }
551
+ this.keyManager = new FocusKeyManager(this.focusableItems).withTypeAhead();
552
+ this.keyManager.tabOut.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => {
553
+ this.tabIndex = -1;
554
+ setTimeout(() => {
555
+ this.tabIndex = 0;
556
+ this.changeDetectorRef.markForCheck();
557
+ });
558
+ });
559
+ this.focusableItems.changes.pipe(startWith(null), takeUntilDestroyed(this.destroyRef)).subscribe(() => {
560
+ this.resetOptions();
561
+ // Check to see if we need to update our tab index
562
+ this.updateTabIndex();
563
+ });
564
+ }
565
+ ngAfterViewInit() {
566
+ this.focusMonitor.monitor(this.elementRef).subscribe((focusOrigin) => {
567
+ this.keyManager.setFocusOrigin(focusOrigin);
568
+ });
527
569
  }
528
570
  ngOnDestroy() {
529
571
  this.focusMonitor.stopMonitoring(this.elementRef);
530
572
  }
531
- setTooltip(value) {
532
- this._tooltip = value;
533
- }
534
- onFocusHandler() {
535
- if (this.disabled || this.hasFocus) {
573
+ focus() {
574
+ if (this.focusableItems.length === 0) {
536
575
  return;
537
576
  }
538
- this.onFocus.next({ item: this });
539
- this.hasFocus = true;
540
- this.changeDetector.markForCheck();
541
- this.elementRef.nativeElement.focus();
577
+ this.keyManager.setFirstItemActive();
542
578
  }
543
- focus(origin) {
544
- if (this.disabled || this.hasFocus) {
545
- return;
579
+ blur() {
580
+ if (!this.hasFocusedItem()) {
581
+ this.keyManager.setActiveItem(-1);
546
582
  }
547
- if (origin === 'keyboard') {
548
- this.focusMonitor.focusVia(this.elementRef, origin);
583
+ this.changeDetectorRef.markForCheck();
584
+ }
585
+ resetOptions() {
586
+ this.dropSubscriptions();
587
+ this.listenToOptionsFocus();
588
+ }
589
+ dropSubscriptions() {
590
+ if (this.optionFocusSubscription) {
591
+ this.optionFocusSubscription.unsubscribe();
592
+ this.optionFocusSubscription = null;
549
593
  }
550
- if (this.nestedElement) {
551
- this.nestedElement.focusViaKeyboard();
552
- this.changeDetector.markForCheck();
553
- return;
594
+ if (this.optionBlurSubscription) {
595
+ this.optionBlurSubscription.unsubscribe();
596
+ this.optionBlurSubscription = null;
554
597
  }
555
- this.tooltip?.show();
556
- this.onFocusHandler();
557
598
  }
558
- blur() {
559
- // When animations are enabled, Angular may end up removing the option from the DOM a little
560
- // earlier than usual, causing it to be blurred and throwing off the logic in the list
561
- // that moves focus not the next item. To work around the issue, we defer marking the option
562
- // as not focused until the next time the zone stabilizes.
563
- this.ngZone.onStable
564
- .asObservable()
565
- .pipe(take(1))
566
- .subscribe(() => {
567
- this.ngZone.run(() => {
568
- this._hasFocus = false;
569
- this.tooltip?.hide();
570
- if (this.button?.hasFocus) {
571
- return;
572
- }
573
- this.onBlur.next({ item: this });
574
- });
599
+ listenToOptionsFocus() {
600
+ this.optionFocusSubscription = this.optionFocusChanges.subscribe((event) => {
601
+ const index = this.focusableItems.toArray().indexOf(event.item);
602
+ if (this.isValidIndex(index)) {
603
+ this.keyManager.updateActiveItem(index);
604
+ }
575
605
  });
606
+ this.optionBlurSubscription = this.optionBlurChanges.subscribe(() => this.blur());
576
607
  }
577
- getLabel() {
578
- return this.title?.text || '';
608
+ updateTabIndex() {
609
+ this.tabIndex = this.focusableItems.length === 0 ? -1 : 0;
579
610
  }
580
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: KbqNavbarFocusableItem, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1.FocusMonitor }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive }); }
581
- /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "18.2.14", type: KbqNavbarFocusableItem, selector: "kbq-navbar-item, [kbq-navbar-item], kbq-navbar-brand, [kbq-navbar-brand], kbq-navbar-toggle", inputs: { disabled: ["disabled", "disabled", booleanAttribute] }, host: { listeners: { "focus": "onFocusHandler()", "blur": "blur()" }, properties: { "attr.tabindex": "tabIndex", "attr.disabled": "disabled || null", "class.kbq-navbar-item_has-nested": "!!nestedElement", "class.kbq-disabled": "disabled" }, classAttribute: "kbq-navbar-focusable-item" }, queries: [{ propertyName: "title", first: true, predicate: KbqNavbarTitle, descendants: true }, { propertyName: "button", first: true, predicate: KbqButton, descendants: true }, { propertyName: "formField", first: true, predicate: KbqFormField, descendants: true }], ngImport: i0 }); }
611
+ isValidIndex(index) {
612
+ return index >= 0 && index < this.focusableItems.length;
613
+ }
614
+ hasFocusedItem() {
615
+ return this.focusableItems.some((item) => item.hasFocus);
616
+ }
617
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: KbqFocusableComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i1.FocusMonitor }], target: i0.ɵɵFactoryTarget.Directive }); }
618
+ /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.14", type: KbqFocusableComponent, inputs: { tabIndex: "tabIndex" }, queries: [{ propertyName: "focusableItems", predicate: i0.forwardRef(() => KbqNavbarFocusableItem), descendants: true }], ngImport: i0 }); }
582
619
  }
583
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: KbqNavbarFocusableItem, decorators: [{
620
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: KbqFocusableComponent, decorators: [{
621
+ type: Directive
622
+ }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i1.FocusMonitor }], propDecorators: { focusableItems: [{
623
+ type: ContentChildren,
624
+ args: [forwardRef(() => KbqNavbarFocusableItem), { descendants: true }]
625
+ }], tabIndex: [{
626
+ type: Input
627
+ }] } });
628
+ class KbqNavbarContainer {
629
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: KbqNavbarContainer, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
630
+ /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.14", type: KbqNavbarContainer, selector: "kbq-navbar-container", host: { classAttribute: "kbq-navbar-container" }, ngImport: i0 }); }
631
+ }
632
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: KbqNavbarContainer, decorators: [{
584
633
  type: Directive,
585
634
  args: [{
586
- selector: 'kbq-navbar-item, [kbq-navbar-item], kbq-navbar-brand, [kbq-navbar-brand], kbq-navbar-toggle',
635
+ selector: 'kbq-navbar-container',
587
636
  host: {
588
- '[attr.tabindex]': 'tabIndex',
589
- '[attr.disabled]': 'disabled || null',
590
- class: 'kbq-navbar-focusable-item',
591
- '[class.kbq-navbar-item_has-nested]': '!!nestedElement',
592
- '[class.kbq-disabled]': 'disabled',
593
- '(focus)': 'onFocusHandler()',
594
- '(blur)': 'blur()'
637
+ class: 'kbq-navbar-container'
595
638
  }
596
639
  }]
597
- }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1.FocusMonitor }, { type: i0.NgZone }], propDecorators: { title: [{
598
- type: ContentChild,
599
- args: [KbqNavbarTitle]
600
- }], button: [{
601
- type: ContentChild,
602
- args: [KbqButton]
603
- }], formField: [{
604
- type: ContentChild,
605
- args: [KbqFormField]
606
- }], disabled: [{
607
- type: Input,
608
- args: [{ transform: booleanAttribute }]
609
- }] } });
610
- class KbqNavbarRectangleElement {
611
- constructor() {
612
- this.isBrowser = inject(Platform).isBrowser;
613
- this.nativeElement = kbqInjectNativeElement();
614
- this.window = inject(KBQ_WINDOW);
615
- this.changeDetectorRef = inject(ChangeDetectorRef);
616
- this.state = new Subject();
617
- this._horizontal = false;
618
- this._vertical = true;
619
- }
620
- get horizontal() {
621
- return this._horizontal;
622
- }
623
- set horizontal(value) {
624
- if (this._horizontal === value)
625
- return;
626
- this._horizontal = value;
627
- this._vertical = !value;
628
- this.state.next();
629
- this.changeDetectorRef.markForCheck();
640
+ }] });
641
+ class KbqNavbar extends KbqFocusableComponent {
642
+ get width() {
643
+ const element = this.elementRef.nativeElement;
644
+ // For SSR compatibility
645
+ if (typeof element.getClientRects !== 'function')
646
+ return 0;
647
+ return element.getBoundingClientRect().width;
630
648
  }
631
- get vertical() {
632
- return this._vertical;
649
+ get totalItemsWidth() {
650
+ return this.rectangleElements().reduce((acc, item) => acc + item.getOuterElementWidth(), 0);
633
651
  }
634
- set vertical(value) {
635
- if (this._vertical === value)
636
- return;
637
- this._vertical = value;
638
- this._horizontal = !value;
639
- this.state.next();
640
- this.changeDetectorRef.markForCheck();
652
+ get collapsableItems() {
653
+ return this.navbarItems
654
+ .toArray()
655
+ .filter((item) => item.icon && item.title && item.collapsable)
656
+ .reverse();
641
657
  }
642
- get collapsed() {
643
- return this._collapsed;
658
+ constructor(elementRef, changeDetectorRef, focusMonitor) {
659
+ super(changeDetectorRef, elementRef, focusMonitor);
660
+ this.elementRef = elementRef;
661
+ this.changeDetectorRef = changeDetectorRef;
662
+ this.focusMonitor = focusMonitor;
663
+ this.rectangleElements = contentChildren(forwardRef(() => KbqNavbarRectangleElement), { descendants: true });
664
+ this.resizeStream = new Subject();
665
+ this.resizeDebounceInterval = 100;
666
+ this.updateExpandedStateForItems = () => {
667
+ const collapseDelta = this.totalItemsWidth - this.width;
668
+ const needCollapse = collapseDelta > 0;
669
+ if (needCollapse) {
670
+ this.collapseItems(collapseDelta);
671
+ }
672
+ else {
673
+ this.expandItems(collapseDelta);
674
+ }
675
+ };
676
+ this.setItemsState = (rectangleElements) => {
677
+ Promise.resolve().then(() => rectangleElements.forEach((item) => (item.horizontal = true)));
678
+ };
679
+ this.resizeSubscription = this.resizeStream
680
+ .pipe(debounceTime(this.resizeDebounceInterval), takeUntilDestroyed())
681
+ .subscribe(this.updateExpandedStateForItems);
682
+ effect(() => this.setItemsState(this.rectangleElements()));
644
683
  }
645
- set collapsed(value) {
646
- this._collapsed = value;
647
- this.state.next();
684
+ ngAfterContentInit() {
685
+ super.ngAfterContentInit();
686
+ this.keyManager.withVerticalOrientation(false).withHorizontalOrientation('ltr');
648
687
  }
649
- getOuterElementWidth() {
650
- if (!this.isBrowser)
651
- return 0;
652
- const { width, marginLeft, marginRight } = this.window.getComputedStyle(this.nativeElement);
653
- return [width, marginLeft, marginRight].reduce((acc, item) => acc + parseInt(item), 0);
688
+ ngAfterViewInit() {
689
+ // Note: this wait is required for loading and rendering fonts for icons;
690
+ // unfortunately we cannot control font rendering
691
+ setTimeout(this.updateExpandedStateForItems);
654
692
  }
655
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: KbqNavbarRectangleElement, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
656
- /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.14", type: KbqNavbarRectangleElement, selector: "kbq-navbar-item, [kbq-navbar-item], kbq-navbar-divider, kbq-navbar-brand, [kbq-navbar-brand]", host: { properties: { "class.kbq-vertical": "vertical", "class.kbq-horizontal": "horizontal", "class.kbq-expanded": "vertical && !collapsed", "class.kbq-collapsed": "vertical && collapsed" } }, queries: [{ propertyName: "button", first: true, predicate: KbqButtonCssStyler, descendants: true }], ngImport: i0 }); }
657
- }
658
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: KbqNavbarRectangleElement, decorators: [{
659
- type: Directive,
660
- args: [{
661
- selector: 'kbq-navbar-item, [kbq-navbar-item], kbq-navbar-divider, kbq-navbar-brand, [kbq-navbar-brand]',
662
- host: {
663
- '[class.kbq-vertical]': 'vertical',
664
- '[class.kbq-horizontal]': 'horizontal',
665
- '[class.kbq-expanded]': 'vertical && !collapsed',
666
- '[class.kbq-collapsed]': 'vertical && collapsed'
667
- }
668
- }]
669
- }], propDecorators: { button: [{
670
- type: ContentChild,
671
- args: [KbqButtonCssStyler]
672
- }] } });
673
- class KbqNavbarItem extends KbqTooltipTrigger {
674
- get trigger() {
675
- return this._trigger;
693
+ ngOnDestroy() {
694
+ this.resizeSubscription.unsubscribe();
695
+ super.ngOnDestroy();
676
696
  }
677
- set trigger(value) {
678
- if (value) {
679
- this._trigger = value;
680
- this.initListeners();
697
+ onKeyDown(event) {
698
+ const keyCode = event.keyCode;
699
+ if (!this.eventFromInput(event) && (isVerticalMovement(event) || isHorizontalMovement(event))) {
700
+ event.preventDefault();
701
+ }
702
+ if (keyCode === TAB) {
703
+ this.keyManager.tabOut.next();
704
+ return;
705
+ }
706
+ else if (this.eventFromInput(event) && this.cursorOnLastPosition(event) && keyCode === RIGHT_ARROW) {
707
+ this.keyManager.setNextItemActive();
681
708
  }
682
- }
683
- set collapsed(value) {
684
- if (this._collapsed !== value) {
685
- this._collapsed = value;
686
- this.updateTooltip();
709
+ else if (this.eventFromInput(event) && this.cursorOnFirstPosition(event) && keyCode === LEFT_ARROW) {
710
+ this.keyManager.setPreviousItemActive();
711
+ }
712
+ else if (!this.eventFromInput(event)) {
713
+ this.keyManager.onKeydown(event);
687
714
  }
688
715
  }
689
- // todo in future need rename to 'collapsed'
690
- get isCollapsed() {
691
- return this._collapsed ?? this.rectangleElement.collapsed;
692
- }
693
- get croppedText() {
694
- const croppedTitleText = this.title?.isOverflown ? this.titleText : '';
695
- return `${croppedTitleText}`;
696
- }
697
- get collapsable() {
698
- return this._collapsable;
716
+ eventFromInput(event) {
717
+ return !!event.target.attributes.getNamedItem('kbqinput');
699
718
  }
700
- set collapsable(value) {
701
- this._collapsable = coerceBooleanProperty(value);
719
+ cursorOnFirstPosition(event) {
720
+ const input = event.target;
721
+ return input.selectionStart === 0;
702
722
  }
703
- get titleText() {
704
- return this.collapsedText || this.title?.text || null;
723
+ cursorOnLastPosition(event) {
724
+ const input = event.target;
725
+ return input.selectionEnd === input.value.length;
705
726
  }
706
- get disabled() {
707
- if (this._disabled !== undefined) {
708
- return this._disabled;
727
+ collapseItems(collapseDelta) {
728
+ let delta = collapseDelta;
729
+ const unCollapsedItems = this.collapsableItems.filter((item) => !item.collapsed);
730
+ for (const item of unCollapsedItems) {
731
+ item.collapsed = true;
732
+ delta -= item.getTitleWidth();
733
+ if (delta < 0) {
734
+ break;
735
+ }
709
736
  }
710
- return !this.isCollapsed && !this.hasCroppedText;
711
- }
712
- set disabled(value) {
713
- this._disabled = coerceBooleanProperty(value);
714
- }
715
- get hasDropDownTrigger() {
716
- return !!this.dropdownTrigger;
717
737
  }
718
- get showVerticalDropDownAngle() {
719
- return !this.bento && this.hasDropDownTrigger && this.rectangleElement.vertical && !this.isCollapsed;
738
+ expandItems(collapseDelta) {
739
+ let delta = collapseDelta;
740
+ this.collapsableItems
741
+ .filter((item) => item.collapsed)
742
+ .forEach((item) => {
743
+ if (delta + item.getTitleWidth() < 0) {
744
+ item.collapsed = false;
745
+ delta += item.getTitleWidth();
746
+ }
747
+ });
720
748
  }
721
- get showHorizontalDropDownAngle() {
722
- return this.hasDropDownTrigger && this.rectangleElement.horizontal && !this.isCollapsed;
749
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: KbqNavbar, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1.FocusMonitor }], target: i0.ɵɵFactoryTarget.Component }); }
750
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.14", type: KbqNavbar, selector: "kbq-navbar", host: { listeners: { "focus": "focus()", "blur": "blur()", "keydown": "onKeyDown($event)", "window:resize": "resizeStream.next($event)" }, properties: { "attr.tabindex": "tabIndex" }, classAttribute: "kbq-navbar" }, queries: [{ propertyName: "rectangleElements", predicate: i0.forwardRef(() => KbqNavbarRectangleElement), descendants: true, isSignal: true }, { propertyName: "navbarItems", predicate: i0.forwardRef(() => KbqNavbarItem), descendants: true }], usesInheritance: true, ngImport: i0, template: `
751
+ <ng-content select="[kbq-navbar-container], kbq-navbar-container" />
752
+ `, isInline: true, styles: ["button.kbq-navbar-item,button.kbq-navbar-brand{background:transparent;border:none}.kbq-navbar{display:flex;flex-direction:row;justify-content:space-between;align-items:center;position:relative}.kbq-navbar-container{display:flex;flex-shrink:0;flex-direction:row;justify-content:space-between;align-items:center;position:relative}.kbq-navbar .kbq-navbar-container+.kbq-navbar-container{margin-left:var(--kbq-size-xxl)}.kbq-navbar{background-color:var(--kbq-navbar-background)}.kbq-vertical-navbar .kbq-vertical-navbar__container{background-color:var(--kbq-navbar-vertical-background);border-right:1px solid var(--kbq-navbar-border)}.kbq-navbar-item{cursor:pointer}.kbq-navbar-item:not(.kbq-navbar-item_has-nested):after{display:block;background:var(--kbq-navbar-item-default-content-background)}.kbq-navbar-item .kbq-navbar-title{color:var(--kbq-navbar-item-default-content-text)}.kbq-navbar-item>.kbq-icon.kbq-empty{color:var(--kbq-navbar-item-default-content-icon-left)!important}.kbq-navbar-item .kbq-navbar-item__arrow-icon{color:var(--kbq-navbar-item-default-content-icon-right)!important}.kbq-navbar-item:hover:not(.kbq-disabled):not(.kbq-navbar-item_has-nested):after{display:block;background:var(--kbq-navbar-item-states-hover-content-background)}.kbq-navbar-item:hover:not(.kbq-disabled) .kbq-navbar-title{color:var(--kbq-navbar-item-states-hover-content-text)}.kbq-navbar-item:hover:not(.kbq-disabled)>.kbq-icon.kbq-empty{color:var(--kbq-navbar-item-states-hover-content-icon-left)!important}.kbq-navbar-item:hover:not(.kbq-disabled) .kbq-navbar-item__arrow-icon{color:var(--kbq-navbar-item-states-hover-content-icon-right)!important}.kbq-navbar-item.cdk-focused.cdk-keyboard-focused{outline:none}.kbq-navbar-item.cdk-focused.cdk-keyboard-focused:after{display:block;box-shadow:inset 0 0 0 2px var(--kbq-states-line-focus-theme)}.kbq-navbar-item:active:not(.kbq-disabled):not(.kbq-navbar-item_has-nested):after,.kbq-navbar-item.kbq-active:not(.kbq-disabled):not(.kbq-navbar-item_has-nested):after{display:block;background:var(--kbq-navbar-item-states-selected-content-background)}.kbq-navbar-item:active:not(.kbq-disabled) .kbq-navbar-title,.kbq-navbar-item.kbq-active:not(.kbq-disabled) .kbq-navbar-title{color:var(--kbq-navbar-item-states-selected-content-text)}.kbq-navbar-item:active:not(.kbq-disabled)>.kbq-icon.kbq-empty,.kbq-navbar-item.kbq-active:not(.kbq-disabled)>.kbq-icon.kbq-empty{color:var(--kbq-navbar-item-states-selected-content-icon-left)!important}.kbq-navbar-item:active:not(.kbq-disabled) .kbq-navbar-item__arrow-icon,.kbq-navbar-item.kbq-active:not(.kbq-disabled) .kbq-navbar-item__arrow-icon{color:var(--kbq-navbar-item-states-selected-content-icon-right)!important}.kbq-navbar-item.kbq-navbar-focusable-item{outline:none}.kbq-navbar-item.kbq-disabled{pointer-events:none;cursor:default}.kbq-navbar-item.kbq-disabled:not(.kbq-navbar-item_has-nested):after{display:block;background:var(--kbq-navbar-item-states-disabled-content-background)}.kbq-navbar-item.kbq-disabled .kbq-navbar-title{color:var(--kbq-navbar-item-states-disabled-content-text)}.kbq-navbar-item.kbq-disabled>.kbq-icon.kbq-empty{color:var(--kbq-navbar-item-states-disabled-content-icon-left)!important}.kbq-navbar-item.kbq-disabled .kbq-navbar-item__arrow-icon{color:var(--kbq-navbar-item-states-disabled-content-icon-right)!important}.kbq-navbar-divider{background:var(--kbq-line-contrast-less)}.kbq-navbar-title{font-size:var(--kbq-typography-text-normal-medium-font-size);font-style:var(--kbq-typography-text-normal-medium-font-style);font-weight:var(--kbq-typography-text-normal-medium-font-weight);line-height:var(--kbq-typography-text-normal-medium-line-height);font-family:var(--kbq-typography-text-normal-medium-font-family);text-transform:var(--kbq-typography-text-normal-medium-text-transform);font-feature-settings:var(--kbq-typography-text-normal-medium-font-feature-settings);letter-spacing:var(--kbq-typography-text-normal-medium-letter-spacing)}\n", ".kbq-truncate-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kbq-no-select{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.kbq-navbar-item.kbq-vertical{height:41px;padding-right:var(--kbq-size-xl);padding-left:var(--kbq-size-xl)}.kbq-navbar-item.kbq-vertical .kbq-navbar-item__container{gap:var(--kbq-size-m)}.kbq-navbar-item.kbq-vertical:after{top:0;right:var(--kbq-size-s);bottom:1px;left:var(--kbq-size-s)}.kbq-navbar-item.kbq-vertical.kbq-navbar-bento{display:flex;justify-content:start;align-items:center;height:var(--kbq-size-5xl);padding-top:var(--kbq-size-s)}.kbq-navbar-item.kbq-vertical.kbq-navbar-bento:after{top:var(--kbq-size-s);bottom:0}.kbq-navbar-item.kbq-vertical.kbq-expanded{align-items:center;gap:var(--kbq-size-m)}.kbq-navbar-item.kbq-vertical.kbq-expanded.kbq-navbar-item_has-nested{align-items:center;padding:0 var(--kbq-size-m)}.kbq-navbar-item.kbq-vertical.kbq-expanded.kbq-navbar-bento .kbq-navbar-item__title{margin-left:-8px;opacity:0}.kbq-navbar-item.kbq-vertical.kbq-expanded.kbq-navbar-bento:hover .kbq-navbar-item__title,.kbq-navbar-item.kbq-vertical.kbq-expanded.kbq-navbar-bento.cdk-keyboard-focused .kbq-navbar-item__title{margin-left:0;opacity:1;transition:opacity .15s ease-out,margin-left .15s ease-out}.kbq-navbar-item.kbq-vertical.kbq-collapsed{width:var(--kbq-size-6xl);justify-content:center}.kbq-navbar-item.kbq-vertical.kbq-collapsed .kbq-badge{position:absolute;z-index:1;top:calc(-1 * var(--kbq-size-3xs));right:var(--kbq-size-xs)}.kbq-navbar-item.kbq-vertical.kbq-collapsed .kbq-navbar-item__container{display:none}.kbq-navbar-item.kbq-vertical>.kbq-icon{display:flex;justify-content:center;align-items:center}button.kbq-navbar-item.kbq-vertical{width:100%}.kbq-navbar-item.kbq-horizontal{position:relative;flex-direction:row;box-sizing:border-box;outline:none;-webkit-tap-highlight-color:transparent;min-height:var(--kbq-size-3xl);min-width:var(--kbq-size-3xl);margin:var(--kbq-size-s);justify-content:center}.kbq-navbar-item.kbq-horizontal:before{top:calc(-1 * var(--kbq-size-s));left:calc(-1 * var(--kbq-size-s));right:calc(-1 * var(--kbq-size-s));bottom:calc(-1 * var(--kbq-size-s))}.kbq-navbar-item.kbq-horizontal:after{inset:0}.kbq-navbar-item.kbq-horizontal .kbq-navbar-item__title{padding-left:var(--kbq-size-xxs);padding-right:var(--kbq-size-xxs)}.kbq-navbar-item.kbq-horizontal .kbq-navbar-item__arrow-icon{padding-left:var(--kbq-size-xxs)}.kbq-navbar-item.kbq-horizontal.kbq-navbar-item_with-title:not(.kbq-navbar-item_collapsed){margin-left:0;margin-right:0;padding-right:var(--kbq-size-m);padding-left:var(--kbq-size-m)}.kbq-navbar-item.kbq-horizontal.kbq-navbar-item_with-title:not(.kbq-navbar-item_collapsed):before{left:0;right:0}.kbq-navbar-item.kbq-horizontal.kbq-navbar-item_with-title:not(.kbq-navbar-item_collapsed)>.kbq-icon{align-self:center;padding-right:var(--kbq-size-xxs)}.kbq-navbar-item.kbq-horizontal.kbq-navbar-bento{justify-content:center;margin-right:var(--kbq-size-xxs)}.kbq-navbar-item.kbq-horizontal.kbq-navbar-bento:before{right:calc(-1 * var(--kbq-size-xxs))}.kbq-navbar-item.kbq-horizontal.kbq-navbar-item_collapsed{justify-content:center;padding:var(--kbq-size-s)}.kbq-navbar-item.kbq-horizontal.kbq-navbar-item_collapsed .kbq-navbar-item__container{display:none}.kbq-navbar-item.kbq-horizontal .kbq-badge{position:absolute;z-index:1;top:-2px;right:-2px}.kbq-navbar-item.kbq-horizontal.kbq-navbar-item_has-nested{margin-left:var(--kbq-size-m);margin-right:var(--kbq-size-m)}.kbq-navbar-item.kbq-horizontal.kbq-navbar-item_has-nested:before{left:calc(-1 * var(--kbq-size-m));right:calc(-1 * var(--kbq-size-m))}.kbq-navbar-item{box-sizing:border-box;position:relative;display:flex;align-items:center;border-radius:var(--kbq-navbar-item-size-content-border-radius)}.kbq-navbar-item .kbq-icon{min-width:var(--kbq-size-l);min-height:var(--kbq-size-l)}.kbq-navbar-item .kbq-button-icon{position:absolute;padding-left:var(--kbq-size-xs);padding-right:var(--kbq-size-xs);top:50%;transform:translateY(-50%)}.kbq-navbar-item:before{position:absolute;content:\"\"}.kbq-navbar-item:after{position:absolute;content:\"\";display:none;border-radius:var(--kbq-navbar-item-size-content-border-radius)}.kbq-navbar-title{display:inline-block;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.kbq-navbar-item__title{display:flex;flex-direction:column;align-self:center;min-width:0}.kbq-navbar-item__container{display:flex;flex-direction:row;flex:1 1 auto;justify-content:space-between;min-width:0}.kbq-navbar-item__container .kbq-icon{align-self:center}.kbq-navbar-item.kbq-navbar-item_has-nested .kbq-button{flex:1}.kbq-navbar-item.kbq-navbar-item_has-nested .kbq-button .kbq-button-wrapper{justify-content:center}.kbq-navbar-item.kbq-navbar-item_has-nested .kbq-button .kbq-button-wrapper .kbq-icon.kbq-icon_left{margin-left:unset}.kbq-navbar-item.kbq-navbar-item_has-nested .kbq-button .kbq-button-wrapper .kbq-icon.kbq-icon_right{margin-right:unset}a.kbq-navbar-item,a.kbq-navbar-title{text-decoration:none}.kbq-navbar-item [kbq-button],.kbq-navbar-brand [kbq-button],.kbq-navbar-toggle [kbq-button]{z-index:1}\n", "button.kbq-navbar-item,button.kbq-navbar-brand{background:transparent;border:none}.kbq-navbar-logo{display:flex}.kbq-navbar-brand{position:relative;display:flex;border-radius:var(--kbq-size-s)}.kbq-navbar-brand:after{position:absolute;content:\"\";display:none;border-radius:var(--kbq-navbar-item-size-content-border-radius)}.kbq-navbar-brand .kbq-navbar-title{cursor:pointer}a.kbq-navbar-brand{text-decoration:none}.kbq-navbar-brand.kbq-horizontal{padding:var(--kbq-size-s) var(--kbq-size-xs) var(--kbq-size-s) var(--kbq-size-xxs);align-items:center;gap:var(--kbq-size-s)}.kbq-navbar-brand.kbq-horizontal:after{top:var(--kbq-size-xxs);right:var(--kbq-size-xxs);bottom:var(--kbq-size-xxs);left:0}.kbq-navbar-brand.kbq-horizontal .kbq-navbar-title{padding-right:var(--kbq-size-m)}.kbq-navbar-brand.kbq-vertical{flex-direction:row;align-items:center;padding:var(--kbq-size-xxs) var(--kbq-size-m) var(--kbq-size-m)}.kbq-navbar-brand.kbq-vertical:after{top:0;right:var(--kbq-size-s);bottom:var(--kbq-size-s);left:var(--kbq-size-s)}.kbq-navbar-brand.kbq-vertical .kbq-navbar-logo{align-items:center}.kbq-navbar-brand.kbq-vertical .kbq-navbar-title{display:block;align-items:center;padding-left:var(--kbq-size-s)}.kbq-navbar-brand.kbq-vertical.kbq-expanded .kbq-navbar-title{max-width:200px}.kbq-navbar-brand.kbq-vertical.kbq-collapsed .kbq-navbar-title{display:none!important}.kbq-navbar-brand.kbq-vertical.kbq-navbar-brand_long-title .kbq-navbar-title{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;white-space:normal}.kbq-navbar-brand:not(.kbq-navbar-item_has-nested):after{display:block;background:var(--kbq-navbar-item-default-content-background)}.kbq-navbar-brand .kbq-navbar-title{color:var(--kbq-navbar-item-default-content-text)}.kbq-navbar-brand>.kbq-icon.kbq-empty{color:var(--kbq-navbar-item-default-content-icon-left)!important}.kbq-navbar-brand .kbq-navbar-item__arrow-icon{color:var(--kbq-navbar-item-default-content-icon-right)!important}.kbq-navbar-brand.kbq-navbar-brand_link{cursor:pointer}.kbq-navbar-brand.kbq-navbar-brand_link:hover:not(.kbq-disabled):not(.kbq-navbar-item_has-nested):after{display:block;background:var(--kbq-navbar-item-states-hover-content-background)}.kbq-navbar-brand.kbq-navbar-brand_link:hover:not(.kbq-disabled) .kbq-navbar-title{color:var(--kbq-navbar-item-states-hover-content-text)}.kbq-navbar-brand.kbq-navbar-brand_link:hover:not(.kbq-disabled)>.kbq-icon.kbq-empty{color:var(--kbq-navbar-item-states-hover-content-icon-left)!important}.kbq-navbar-brand.kbq-navbar-brand_link:hover:not(.kbq-disabled) .kbq-navbar-item__arrow-icon{color:var(--kbq-navbar-item-states-hover-content-icon-right)!important}.kbq-navbar-brand.kbq-navbar-brand_link.cdk-focused.cdk-keyboard-focused{outline:none}.kbq-navbar-brand.kbq-navbar-brand_link.cdk-focused.cdk-keyboard-focused:after{display:block;box-shadow:inset 0 0 0 2px var(--kbq-states-line-focus-theme)}.kbq-navbar-brand.kbq-navbar-brand_link:active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand):not(.kbq-navbar-item_has-nested):after,.kbq-navbar-brand.kbq-navbar-brand_link.kbq-active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand):not(.kbq-navbar-item_has-nested):after{display:block;background:var(--kbq-navbar-item-states-selected-content-background)}.kbq-navbar-brand.kbq-navbar-brand_link:active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand) .kbq-navbar-title,.kbq-navbar-brand.kbq-navbar-brand_link.kbq-active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand) .kbq-navbar-title{color:var(--kbq-navbar-item-states-selected-content-text)}.kbq-navbar-brand.kbq-navbar-brand_link:active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand)>.kbq-icon.kbq-empty,.kbq-navbar-brand.kbq-navbar-brand_link.kbq-active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand)>.kbq-icon.kbq-empty{color:var(--kbq-navbar-item-states-selected-content-icon-left)!important}.kbq-navbar-brand.kbq-navbar-brand_link:active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand) .kbq-navbar-item__arrow-icon,.kbq-navbar-brand.kbq-navbar-brand_link.kbq-active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand) .kbq-navbar-item__arrow-icon{color:var(--kbq-navbar-item-states-selected-content-icon-right)!important}.kbq-navbar-brand.kbq-navbar-brand_link.kbq-vertical:hover .kbq-navbar-logo{transform:scale(1.06)}.kbq-navbar-brand.kbq-navbar-brand_link.kbq-horizontal:hover .kbq-navbar-logo{z-index:1}.kbq-navbar-brand.kbq-navbar-focusable-item{outline:none}.kbq-navbar-brand .kbq-navbar-title{font-size:var(--kbq-typography-navbar-title-font-size);font-style:var(--kbq-typography-navbar-title-font-style);font-weight:var(--kbq-typography-navbar-title-font-weight);line-height:var(--kbq-typography-navbar-title-line-height);font-family:var(--kbq-typography-navbar-title-font-family);text-transform:var(--kbq-typography-navbar-title-text-transform);font-feature-settings:var(--kbq-typography-navbar-title-font-feature-settings);letter-spacing:var(--kbq-typography-navbar-title-letter-spacing)}.kbq-navbar-brand.kbq-navbar-brand_long-title .kbq-navbar-title{font-size:var(--kbq-typography-text-normal-strong-font-size);font-style:var(--kbq-typography-text-normal-strong-font-style);font-weight:var(--kbq-typography-text-normal-strong-font-weight);line-height:var(--kbq-typography-text-normal-strong-line-height);font-family:var(--kbq-typography-text-normal-strong-font-family);text-transform:var(--kbq-typography-text-normal-strong-text-transform);font-feature-settings:var(--kbq-typography-text-normal-strong-font-feature-settings);letter-spacing:var(--kbq-typography-text-normal-strong-letter-spacing)}\n", ".kbq-navbar-divider{display:block}.kbq-navbar-divider.kbq-vertical{height:1px;margin:var(--kbq-size-xs) var(--kbq-size-l)}.kbq-navbar-divider.kbq-horizontal{width:1px;height:12px;margin-left:var(--kbq-size-m);margin-right:var(--kbq-size-m)}\n", ".kbq-navbar,.kbq-vertical-navbar{--kbq-navbar-item-size-content-border-radius: var(--kbq-size-border-radius);--kbq-navbar-background: var(--kbq-background-bg);--kbq-navbar-vertical-background: var(--kbq-background-bg-tertiary);--kbq-navbar-border: var(--kbq-line-contrast-less);--kbq-navbar-item-default-content-text: var(--kbq-foreground-contrast);--kbq-navbar-item-default-content-background: transparent;--kbq-navbar-item-default-content-icon-left: var(--kbq-icon-contrast);--kbq-navbar-item-default-content-icon-right: var(--kbq-icon-contrast);--kbq-navbar-item-states-hover-content-text: var(--kbq-foreground-contrast);--kbq-navbar-item-states-hover-content-background: var(--kbq-states-background-transparent-hover);--kbq-navbar-item-states-hover-content-icon-left: var(--kbq-states-icon-contrast-hover);--kbq-navbar-item-states-hover-content-icon-right: var(--kbq-states-icon-contrast-hover);--kbq-navbar-item-states-selected-content-text: var(--kbq-foreground-contrast);--kbq-navbar-item-states-selected-content-background: var(--kbq-states-background-transparent-active);--kbq-navbar-item-states-selected-content-icon-left: var(--kbq-states-icon-contrast-active);--kbq-navbar-item-states-selected-content-icon-right: var(--kbq-states-icon-contrast-active);--kbq-navbar-item-states-selected-hover-content-text: var(--kbq-foreground-contrast);--kbq-navbar-item-states-selected-hover-content-background: var(--kbq-states-background-transparent-hover);--kbq-navbar-item-states-selected-hover-content-icon-left: var(--kbq-states-icon-contrast-hover);--kbq-navbar-item-states-selected-hover-content-icon-right: var(--kbq-states-icon-contrast-hover);--kbq-navbar-item-states-disabled-content-text: var(--kbq-states-foreground-disabled);--kbq-navbar-item-states-disabled-content-background: transparent;--kbq-navbar-item-states-disabled-content-icon-left: var(--kbq-states-icon-disabled);--kbq-navbar-item-states-disabled-content-icon-right: var(--kbq-states-icon-disabled)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
753
+ }
754
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: KbqNavbar, decorators: [{
755
+ type: Component,
756
+ args: [{ selector: 'kbq-navbar', template: `
757
+ <ng-content select="[kbq-navbar-container], kbq-navbar-container" />
758
+ `, host: {
759
+ class: 'kbq-navbar',
760
+ '[attr.tabindex]': 'tabIndex',
761
+ '(focus)': 'focus()',
762
+ '(blur)': 'blur()',
763
+ '(keydown)': 'onKeyDown($event)',
764
+ '(window:resize)': 'resizeStream.next($event)'
765
+ }, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, styles: ["button.kbq-navbar-item,button.kbq-navbar-brand{background:transparent;border:none}.kbq-navbar{display:flex;flex-direction:row;justify-content:space-between;align-items:center;position:relative}.kbq-navbar-container{display:flex;flex-shrink:0;flex-direction:row;justify-content:space-between;align-items:center;position:relative}.kbq-navbar .kbq-navbar-container+.kbq-navbar-container{margin-left:var(--kbq-size-xxl)}.kbq-navbar{background-color:var(--kbq-navbar-background)}.kbq-vertical-navbar .kbq-vertical-navbar__container{background-color:var(--kbq-navbar-vertical-background);border-right:1px solid var(--kbq-navbar-border)}.kbq-navbar-item{cursor:pointer}.kbq-navbar-item:not(.kbq-navbar-item_has-nested):after{display:block;background:var(--kbq-navbar-item-default-content-background)}.kbq-navbar-item .kbq-navbar-title{color:var(--kbq-navbar-item-default-content-text)}.kbq-navbar-item>.kbq-icon.kbq-empty{color:var(--kbq-navbar-item-default-content-icon-left)!important}.kbq-navbar-item .kbq-navbar-item__arrow-icon{color:var(--kbq-navbar-item-default-content-icon-right)!important}.kbq-navbar-item:hover:not(.kbq-disabled):not(.kbq-navbar-item_has-nested):after{display:block;background:var(--kbq-navbar-item-states-hover-content-background)}.kbq-navbar-item:hover:not(.kbq-disabled) .kbq-navbar-title{color:var(--kbq-navbar-item-states-hover-content-text)}.kbq-navbar-item:hover:not(.kbq-disabled)>.kbq-icon.kbq-empty{color:var(--kbq-navbar-item-states-hover-content-icon-left)!important}.kbq-navbar-item:hover:not(.kbq-disabled) .kbq-navbar-item__arrow-icon{color:var(--kbq-navbar-item-states-hover-content-icon-right)!important}.kbq-navbar-item.cdk-focused.cdk-keyboard-focused{outline:none}.kbq-navbar-item.cdk-focused.cdk-keyboard-focused:after{display:block;box-shadow:inset 0 0 0 2px var(--kbq-states-line-focus-theme)}.kbq-navbar-item:active:not(.kbq-disabled):not(.kbq-navbar-item_has-nested):after,.kbq-navbar-item.kbq-active:not(.kbq-disabled):not(.kbq-navbar-item_has-nested):after{display:block;background:var(--kbq-navbar-item-states-selected-content-background)}.kbq-navbar-item:active:not(.kbq-disabled) .kbq-navbar-title,.kbq-navbar-item.kbq-active:not(.kbq-disabled) .kbq-navbar-title{color:var(--kbq-navbar-item-states-selected-content-text)}.kbq-navbar-item:active:not(.kbq-disabled)>.kbq-icon.kbq-empty,.kbq-navbar-item.kbq-active:not(.kbq-disabled)>.kbq-icon.kbq-empty{color:var(--kbq-navbar-item-states-selected-content-icon-left)!important}.kbq-navbar-item:active:not(.kbq-disabled) .kbq-navbar-item__arrow-icon,.kbq-navbar-item.kbq-active:not(.kbq-disabled) .kbq-navbar-item__arrow-icon{color:var(--kbq-navbar-item-states-selected-content-icon-right)!important}.kbq-navbar-item.kbq-navbar-focusable-item{outline:none}.kbq-navbar-item.kbq-disabled{pointer-events:none;cursor:default}.kbq-navbar-item.kbq-disabled:not(.kbq-navbar-item_has-nested):after{display:block;background:var(--kbq-navbar-item-states-disabled-content-background)}.kbq-navbar-item.kbq-disabled .kbq-navbar-title{color:var(--kbq-navbar-item-states-disabled-content-text)}.kbq-navbar-item.kbq-disabled>.kbq-icon.kbq-empty{color:var(--kbq-navbar-item-states-disabled-content-icon-left)!important}.kbq-navbar-item.kbq-disabled .kbq-navbar-item__arrow-icon{color:var(--kbq-navbar-item-states-disabled-content-icon-right)!important}.kbq-navbar-divider{background:var(--kbq-line-contrast-less)}.kbq-navbar-title{font-size:var(--kbq-typography-text-normal-medium-font-size);font-style:var(--kbq-typography-text-normal-medium-font-style);font-weight:var(--kbq-typography-text-normal-medium-font-weight);line-height:var(--kbq-typography-text-normal-medium-line-height);font-family:var(--kbq-typography-text-normal-medium-font-family);text-transform:var(--kbq-typography-text-normal-medium-text-transform);font-feature-settings:var(--kbq-typography-text-normal-medium-font-feature-settings);letter-spacing:var(--kbq-typography-text-normal-medium-letter-spacing)}\n", ".kbq-truncate-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kbq-no-select{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.kbq-navbar-item.kbq-vertical{height:41px;padding-right:var(--kbq-size-xl);padding-left:var(--kbq-size-xl)}.kbq-navbar-item.kbq-vertical .kbq-navbar-item__container{gap:var(--kbq-size-m)}.kbq-navbar-item.kbq-vertical:after{top:0;right:var(--kbq-size-s);bottom:1px;left:var(--kbq-size-s)}.kbq-navbar-item.kbq-vertical.kbq-navbar-bento{display:flex;justify-content:start;align-items:center;height:var(--kbq-size-5xl);padding-top:var(--kbq-size-s)}.kbq-navbar-item.kbq-vertical.kbq-navbar-bento:after{top:var(--kbq-size-s);bottom:0}.kbq-navbar-item.kbq-vertical.kbq-expanded{align-items:center;gap:var(--kbq-size-m)}.kbq-navbar-item.kbq-vertical.kbq-expanded.kbq-navbar-item_has-nested{align-items:center;padding:0 var(--kbq-size-m)}.kbq-navbar-item.kbq-vertical.kbq-expanded.kbq-navbar-bento .kbq-navbar-item__title{margin-left:-8px;opacity:0}.kbq-navbar-item.kbq-vertical.kbq-expanded.kbq-navbar-bento:hover .kbq-navbar-item__title,.kbq-navbar-item.kbq-vertical.kbq-expanded.kbq-navbar-bento.cdk-keyboard-focused .kbq-navbar-item__title{margin-left:0;opacity:1;transition:opacity .15s ease-out,margin-left .15s ease-out}.kbq-navbar-item.kbq-vertical.kbq-collapsed{width:var(--kbq-size-6xl);justify-content:center}.kbq-navbar-item.kbq-vertical.kbq-collapsed .kbq-badge{position:absolute;z-index:1;top:calc(-1 * var(--kbq-size-3xs));right:var(--kbq-size-xs)}.kbq-navbar-item.kbq-vertical.kbq-collapsed .kbq-navbar-item__container{display:none}.kbq-navbar-item.kbq-vertical>.kbq-icon{display:flex;justify-content:center;align-items:center}button.kbq-navbar-item.kbq-vertical{width:100%}.kbq-navbar-item.kbq-horizontal{position:relative;flex-direction:row;box-sizing:border-box;outline:none;-webkit-tap-highlight-color:transparent;min-height:var(--kbq-size-3xl);min-width:var(--kbq-size-3xl);margin:var(--kbq-size-s);justify-content:center}.kbq-navbar-item.kbq-horizontal:before{top:calc(-1 * var(--kbq-size-s));left:calc(-1 * var(--kbq-size-s));right:calc(-1 * var(--kbq-size-s));bottom:calc(-1 * var(--kbq-size-s))}.kbq-navbar-item.kbq-horizontal:after{inset:0}.kbq-navbar-item.kbq-horizontal .kbq-navbar-item__title{padding-left:var(--kbq-size-xxs);padding-right:var(--kbq-size-xxs)}.kbq-navbar-item.kbq-horizontal .kbq-navbar-item__arrow-icon{padding-left:var(--kbq-size-xxs)}.kbq-navbar-item.kbq-horizontal.kbq-navbar-item_with-title:not(.kbq-navbar-item_collapsed){margin-left:0;margin-right:0;padding-right:var(--kbq-size-m);padding-left:var(--kbq-size-m)}.kbq-navbar-item.kbq-horizontal.kbq-navbar-item_with-title:not(.kbq-navbar-item_collapsed):before{left:0;right:0}.kbq-navbar-item.kbq-horizontal.kbq-navbar-item_with-title:not(.kbq-navbar-item_collapsed)>.kbq-icon{align-self:center;padding-right:var(--kbq-size-xxs)}.kbq-navbar-item.kbq-horizontal.kbq-navbar-bento{justify-content:center;margin-right:var(--kbq-size-xxs)}.kbq-navbar-item.kbq-horizontal.kbq-navbar-bento:before{right:calc(-1 * var(--kbq-size-xxs))}.kbq-navbar-item.kbq-horizontal.kbq-navbar-item_collapsed{justify-content:center;padding:var(--kbq-size-s)}.kbq-navbar-item.kbq-horizontal.kbq-navbar-item_collapsed .kbq-navbar-item__container{display:none}.kbq-navbar-item.kbq-horizontal .kbq-badge{position:absolute;z-index:1;top:-2px;right:-2px}.kbq-navbar-item.kbq-horizontal.kbq-navbar-item_has-nested{margin-left:var(--kbq-size-m);margin-right:var(--kbq-size-m)}.kbq-navbar-item.kbq-horizontal.kbq-navbar-item_has-nested:before{left:calc(-1 * var(--kbq-size-m));right:calc(-1 * var(--kbq-size-m))}.kbq-navbar-item{box-sizing:border-box;position:relative;display:flex;align-items:center;border-radius:var(--kbq-navbar-item-size-content-border-radius)}.kbq-navbar-item .kbq-icon{min-width:var(--kbq-size-l);min-height:var(--kbq-size-l)}.kbq-navbar-item .kbq-button-icon{position:absolute;padding-left:var(--kbq-size-xs);padding-right:var(--kbq-size-xs);top:50%;transform:translateY(-50%)}.kbq-navbar-item:before{position:absolute;content:\"\"}.kbq-navbar-item:after{position:absolute;content:\"\";display:none;border-radius:var(--kbq-navbar-item-size-content-border-radius)}.kbq-navbar-title{display:inline-block;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.kbq-navbar-item__title{display:flex;flex-direction:column;align-self:center;min-width:0}.kbq-navbar-item__container{display:flex;flex-direction:row;flex:1 1 auto;justify-content:space-between;min-width:0}.kbq-navbar-item__container .kbq-icon{align-self:center}.kbq-navbar-item.kbq-navbar-item_has-nested .kbq-button{flex:1}.kbq-navbar-item.kbq-navbar-item_has-nested .kbq-button .kbq-button-wrapper{justify-content:center}.kbq-navbar-item.kbq-navbar-item_has-nested .kbq-button .kbq-button-wrapper .kbq-icon.kbq-icon_left{margin-left:unset}.kbq-navbar-item.kbq-navbar-item_has-nested .kbq-button .kbq-button-wrapper .kbq-icon.kbq-icon_right{margin-right:unset}a.kbq-navbar-item,a.kbq-navbar-title{text-decoration:none}.kbq-navbar-item [kbq-button],.kbq-navbar-brand [kbq-button],.kbq-navbar-toggle [kbq-button]{z-index:1}\n", "button.kbq-navbar-item,button.kbq-navbar-brand{background:transparent;border:none}.kbq-navbar-logo{display:flex}.kbq-navbar-brand{position:relative;display:flex;border-radius:var(--kbq-size-s)}.kbq-navbar-brand:after{position:absolute;content:\"\";display:none;border-radius:var(--kbq-navbar-item-size-content-border-radius)}.kbq-navbar-brand .kbq-navbar-title{cursor:pointer}a.kbq-navbar-brand{text-decoration:none}.kbq-navbar-brand.kbq-horizontal{padding:var(--kbq-size-s) var(--kbq-size-xs) var(--kbq-size-s) var(--kbq-size-xxs);align-items:center;gap:var(--kbq-size-s)}.kbq-navbar-brand.kbq-horizontal:after{top:var(--kbq-size-xxs);right:var(--kbq-size-xxs);bottom:var(--kbq-size-xxs);left:0}.kbq-navbar-brand.kbq-horizontal .kbq-navbar-title{padding-right:var(--kbq-size-m)}.kbq-navbar-brand.kbq-vertical{flex-direction:row;align-items:center;padding:var(--kbq-size-xxs) var(--kbq-size-m) var(--kbq-size-m)}.kbq-navbar-brand.kbq-vertical:after{top:0;right:var(--kbq-size-s);bottom:var(--kbq-size-s);left:var(--kbq-size-s)}.kbq-navbar-brand.kbq-vertical .kbq-navbar-logo{align-items:center}.kbq-navbar-brand.kbq-vertical .kbq-navbar-title{display:block;align-items:center;padding-left:var(--kbq-size-s)}.kbq-navbar-brand.kbq-vertical.kbq-expanded .kbq-navbar-title{max-width:200px}.kbq-navbar-brand.kbq-vertical.kbq-collapsed .kbq-navbar-title{display:none!important}.kbq-navbar-brand.kbq-vertical.kbq-navbar-brand_long-title .kbq-navbar-title{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;white-space:normal}.kbq-navbar-brand:not(.kbq-navbar-item_has-nested):after{display:block;background:var(--kbq-navbar-item-default-content-background)}.kbq-navbar-brand .kbq-navbar-title{color:var(--kbq-navbar-item-default-content-text)}.kbq-navbar-brand>.kbq-icon.kbq-empty{color:var(--kbq-navbar-item-default-content-icon-left)!important}.kbq-navbar-brand .kbq-navbar-item__arrow-icon{color:var(--kbq-navbar-item-default-content-icon-right)!important}.kbq-navbar-brand.kbq-navbar-brand_link{cursor:pointer}.kbq-navbar-brand.kbq-navbar-brand_link:hover:not(.kbq-disabled):not(.kbq-navbar-item_has-nested):after{display:block;background:var(--kbq-navbar-item-states-hover-content-background)}.kbq-navbar-brand.kbq-navbar-brand_link:hover:not(.kbq-disabled) .kbq-navbar-title{color:var(--kbq-navbar-item-states-hover-content-text)}.kbq-navbar-brand.kbq-navbar-brand_link:hover:not(.kbq-disabled)>.kbq-icon.kbq-empty{color:var(--kbq-navbar-item-states-hover-content-icon-left)!important}.kbq-navbar-brand.kbq-navbar-brand_link:hover:not(.kbq-disabled) .kbq-navbar-item__arrow-icon{color:var(--kbq-navbar-item-states-hover-content-icon-right)!important}.kbq-navbar-brand.kbq-navbar-brand_link.cdk-focused.cdk-keyboard-focused{outline:none}.kbq-navbar-brand.kbq-navbar-brand_link.cdk-focused.cdk-keyboard-focused:after{display:block;box-shadow:inset 0 0 0 2px var(--kbq-states-line-focus-theme)}.kbq-navbar-brand.kbq-navbar-brand_link:active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand):not(.kbq-navbar-item_has-nested):after,.kbq-navbar-brand.kbq-navbar-brand_link.kbq-active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand):not(.kbq-navbar-item_has-nested):after{display:block;background:var(--kbq-navbar-item-states-selected-content-background)}.kbq-navbar-brand.kbq-navbar-brand_link:active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand) .kbq-navbar-title,.kbq-navbar-brand.kbq-navbar-brand_link.kbq-active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand) .kbq-navbar-title{color:var(--kbq-navbar-item-states-selected-content-text)}.kbq-navbar-brand.kbq-navbar-brand_link:active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand)>.kbq-icon.kbq-empty,.kbq-navbar-brand.kbq-navbar-brand_link.kbq-active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand)>.kbq-icon.kbq-empty{color:var(--kbq-navbar-item-states-selected-content-icon-left)!important}.kbq-navbar-brand.kbq-navbar-brand_link:active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand) .kbq-navbar-item__arrow-icon,.kbq-navbar-brand.kbq-navbar-brand_link.kbq-active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand) .kbq-navbar-item__arrow-icon{color:var(--kbq-navbar-item-states-selected-content-icon-right)!important}.kbq-navbar-brand.kbq-navbar-brand_link.kbq-vertical:hover .kbq-navbar-logo{transform:scale(1.06)}.kbq-navbar-brand.kbq-navbar-brand_link.kbq-horizontal:hover .kbq-navbar-logo{z-index:1}.kbq-navbar-brand.kbq-navbar-focusable-item{outline:none}.kbq-navbar-brand .kbq-navbar-title{font-size:var(--kbq-typography-navbar-title-font-size);font-style:var(--kbq-typography-navbar-title-font-style);font-weight:var(--kbq-typography-navbar-title-font-weight);line-height:var(--kbq-typography-navbar-title-line-height);font-family:var(--kbq-typography-navbar-title-font-family);text-transform:var(--kbq-typography-navbar-title-text-transform);font-feature-settings:var(--kbq-typography-navbar-title-font-feature-settings);letter-spacing:var(--kbq-typography-navbar-title-letter-spacing)}.kbq-navbar-brand.kbq-navbar-brand_long-title .kbq-navbar-title{font-size:var(--kbq-typography-text-normal-strong-font-size);font-style:var(--kbq-typography-text-normal-strong-font-style);font-weight:var(--kbq-typography-text-normal-strong-font-weight);line-height:var(--kbq-typography-text-normal-strong-line-height);font-family:var(--kbq-typography-text-normal-strong-font-family);text-transform:var(--kbq-typography-text-normal-strong-text-transform);font-feature-settings:var(--kbq-typography-text-normal-strong-font-feature-settings);letter-spacing:var(--kbq-typography-text-normal-strong-letter-spacing)}\n", ".kbq-navbar-divider{display:block}.kbq-navbar-divider.kbq-vertical{height:1px;margin:var(--kbq-size-xs) var(--kbq-size-l)}.kbq-navbar-divider.kbq-horizontal{width:1px;height:12px;margin-left:var(--kbq-size-m);margin-right:var(--kbq-size-m)}\n", ".kbq-navbar,.kbq-vertical-navbar{--kbq-navbar-item-size-content-border-radius: var(--kbq-size-border-radius);--kbq-navbar-background: var(--kbq-background-bg);--kbq-navbar-vertical-background: var(--kbq-background-bg-tertiary);--kbq-navbar-border: var(--kbq-line-contrast-less);--kbq-navbar-item-default-content-text: var(--kbq-foreground-contrast);--kbq-navbar-item-default-content-background: transparent;--kbq-navbar-item-default-content-icon-left: var(--kbq-icon-contrast);--kbq-navbar-item-default-content-icon-right: var(--kbq-icon-contrast);--kbq-navbar-item-states-hover-content-text: var(--kbq-foreground-contrast);--kbq-navbar-item-states-hover-content-background: var(--kbq-states-background-transparent-hover);--kbq-navbar-item-states-hover-content-icon-left: var(--kbq-states-icon-contrast-hover);--kbq-navbar-item-states-hover-content-icon-right: var(--kbq-states-icon-contrast-hover);--kbq-navbar-item-states-selected-content-text: var(--kbq-foreground-contrast);--kbq-navbar-item-states-selected-content-background: var(--kbq-states-background-transparent-active);--kbq-navbar-item-states-selected-content-icon-left: var(--kbq-states-icon-contrast-active);--kbq-navbar-item-states-selected-content-icon-right: var(--kbq-states-icon-contrast-active);--kbq-navbar-item-states-selected-hover-content-text: var(--kbq-foreground-contrast);--kbq-navbar-item-states-selected-hover-content-background: var(--kbq-states-background-transparent-hover);--kbq-navbar-item-states-selected-hover-content-icon-left: var(--kbq-states-icon-contrast-hover);--kbq-navbar-item-states-selected-hover-content-icon-right: var(--kbq-states-icon-contrast-hover);--kbq-navbar-item-states-disabled-content-text: var(--kbq-states-foreground-disabled);--kbq-navbar-item-states-disabled-content-background: transparent;--kbq-navbar-item-states-disabled-content-icon-left: var(--kbq-states-icon-disabled);--kbq-navbar-item-states-disabled-content-icon-right: var(--kbq-states-icon-disabled)}\n"] }]
766
+ }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1.FocusMonitor }], propDecorators: { navbarItems: [{
767
+ type: ContentChildren,
768
+ args: [forwardRef(() => KbqNavbarItem), { descendants: true }]
769
+ }] } });
770
+
771
+ /** default configuration of navbar */
772
+ /** @docs-private */
773
+ const KBQ_VERTICAL_NAVBAR_DEFAULT_CONFIGURATION = ruRULocaleData.navbar;
774
+ /** Injection Token for providing configuration of navbar */
775
+ /** @docs-private */
776
+ const KBQ_VERTICAL_NAVBAR_CONFIGURATION = new InjectionToken('KbqVerticalNavbarConfiguration');
777
+ class KbqVerticalNavbar extends KbqFocusableComponent {
778
+ get expanded() {
779
+ return this._expanded;
723
780
  }
724
- get hasCroppedText() {
725
- return !!this.title?.isOverflown;
781
+ set expanded(value) {
782
+ this._expanded = coerceBooleanProperty(value);
783
+ this.updateExpandedStateForItems();
726
784
  }
727
- constructor(rectangleElement, navbarFocusableItem, changeDetectorRef, dropdownTrigger, bento, tooltip) {
728
- super();
729
- this.rectangleElement = rectangleElement;
730
- this.navbarFocusableItem = navbarFocusableItem;
731
- this.changeDetectorRef = changeDetectorRef;
732
- this.dropdownTrigger = dropdownTrigger;
733
- this.bento = bento;
734
- this.tooltip = tooltip;
735
- this._collapsed = false;
736
- this._collapsable = true;
737
- if (this.hasDropDownTrigger) {
738
- this.dropdownTrigger.openByArrowDown = false;
739
- }
740
- this.rectangleElement.state.subscribe(() => {
741
- this.collapsed = this.rectangleElement.collapsed;
742
- this.changeDetectorRef.detectChanges();
743
- });
744
- this._trigger = `${PopUpTriggers.Hover}`;
745
- this.navbarFocusableItem.setTooltip(this);
746
- if (this.tooltip) {
747
- this.tooltip.arrow = false;
748
- this.tooltip.offset = 0;
749
- this.tooltip['overlayConfig'].panelClass = 'kbq-tooltip-panel_horizontal-navbar';
785
+ constructor(elementRef, changeDetectorRef, focusMonitor) {
786
+ super(changeDetectorRef, elementRef, focusMonitor);
787
+ this.elementRef = elementRef;
788
+ /** @docs-private */
789
+ this.localeService = inject(KBQ_LOCALE_SERVICE, { optional: true });
790
+ this.externalConfiguration = inject(KBQ_VERTICAL_NAVBAR_CONFIGURATION, { optional: true });
791
+ this.rectangleElements = contentChildren(forwardRef(() => KbqNavbarRectangleElement), { descendants: true });
792
+ this.animationDone = new Subject();
793
+ this.openOver = false;
794
+ this._expanded = false;
795
+ this.updateExpandedStateForItems = () => this.rectangleElements().forEach(this.updateItemExpandedState);
796
+ this.updateTooltipForItems = () => this.items.forEach((item) => item.updateTooltip());
797
+ this.setItemsVerticalStateAndUpdateExpandedState = (rectangleElements) => rectangleElements.forEach(this.setItemVerticalStateAndUpdateExpandedState);
798
+ this.setItemVerticalStateAndUpdateExpandedState = (item) => {
799
+ queueMicrotask(() => this.setItemVerticalState(item));
800
+ this.updateItemExpandedState(item);
801
+ };
802
+ this.setItemVerticalState = (item) => {
803
+ item.vertical = true;
804
+ };
805
+ this.updateItemExpandedState = (item) => {
806
+ item.collapsed = !this.expanded;
807
+ setTimeout(() => item.button?.updateClassModifierForIcons());
808
+ };
809
+ this.updateLocaleParams = () => {
810
+ this.configuration = this.externalConfiguration || this.localeService?.getParams('navbar');
811
+ this.changeDetectorRef.markForCheck();
812
+ };
813
+ this.animationDone.pipe(takeUntilDestroyed()).subscribe(this.updateTooltipForItems);
814
+ effect(() => this.setItemsVerticalStateAndUpdateExpandedState(this.rectangleElements()));
815
+ this.localeService?.changes.pipe(takeUntilDestroyed()).subscribe(this.updateLocaleParams);
816
+ if (!this.localeService) {
817
+ this.initDefaultParams();
750
818
  }
751
819
  }
752
820
  ngAfterContentInit() {
753
- this.updateTooltip();
821
+ this.updateTooltipForItems();
822
+ super.ngAfterContentInit();
823
+ this.keyManager.withVerticalOrientation(true);
754
824
  }
755
- updateTooltip() {
756
- if (this.isCollapsed) {
757
- this.content = `${this.titleText || ''}`;
758
- }
759
- else if (!this.isCollapsed && this.hasCroppedText) {
760
- this.content = this.croppedText;
761
- }
762
- if (this.rectangleElement.vertical) {
763
- this.placement = PopUpPlacements.Right;
764
- }
825
+ toggle() {
826
+ this.expanded = !this.expanded;
765
827
  this.changeDetectorRef.markForCheck();
766
828
  }
767
- getTitleWidth() {
768
- return this.title.outerElementWidth;
769
- }
770
- onKeyDown($event) {
771
- if (!this.hasDropDownTrigger) {
829
+ onKeyDown(event) {
830
+ const keyCode = event.keyCode;
831
+ if (!event.target.attributes.getNamedItem('kbqinput') &&
832
+ (isVerticalMovement(event) || isHorizontalMovement(event))) {
833
+ event.preventDefault();
834
+ }
835
+ if (keyCode === TAB) {
836
+ this.keyManager.tabOut.next();
772
837
  return;
773
838
  }
774
- if ((this.rectangleElement.horizontal && $event.keyCode === DOWN_ARROW) ||
775
- (this.rectangleElement.vertical && $event.keyCode === RIGHT_ARROW)) {
776
- this.dropdownTrigger.openedBy = 'keyboard';
777
- this.dropdownTrigger.open();
778
- $event.stopPropagation();
779
- $event.preventDefault();
839
+ else if (keyCode === DOWN_ARROW) {
840
+ this.keyManager.setNextItemActive();
841
+ }
842
+ else if (keyCode === UP_ARROW) {
843
+ this.keyManager.setPreviousItemActive();
780
844
  }
845
+ else {
846
+ this.keyManager.onKeydown(event);
847
+ }
848
+ }
849
+ initDefaultParams() {
850
+ this.configuration = KBQ_VERTICAL_NAVBAR_DEFAULT_CONFIGURATION;
781
851
  }
782
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: KbqNavbarItem, deps: [{ token: KbqNavbarRectangleElement }, { token: KbqNavbarFocusableItem }, { token: i0.ChangeDetectorRef }, { token: i3.KbqDropdownTrigger, optional: true }, { token: KbqNavbarBento, optional: true }, { token: i4.KbqTooltipTrigger, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
783
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: KbqNavbarItem, selector: "kbq-navbar-item, [kbq-navbar-item]", inputs: { collapsedText: "collapsedText", trigger: ["kbqTrigger", "trigger"], collapsable: "collapsable" }, host: { listeners: { "keydown": "onKeyDown($event)" }, properties: { "class.kbq-navbar-item_collapsed": "isCollapsed", "class.kbq-navbar-item_with-title": "!!title" }, classAttribute: "kbq-navbar-item" }, queries: [{ propertyName: "title", first: true, predicate: KbqNavbarTitle, descendants: true }, { propertyName: "icon", first: true, predicate: KbqIcon, descendants: true }], exportAs: ["kbqNavbarItem"], usesInheritance: true, ngImport: i0, template: "<ng-content select=\"[kbq-icon]\" />\n\n@if (title) {\n <div class=\"kbq-navbar-item__container\">\n <div class=\"kbq-navbar-item__title\">\n <ng-content select=\"kbq-navbar-title, [kbq-navbar-title]\" />\n </div>\n @if (showVerticalDropDownAngle) {\n <i kbq-icon=\"kbq-chevron-right_16\" class=\"kbq-navbar-item__arrow-icon\"></i>\n }\n @if (showHorizontalDropDownAngle) {\n <i kbq-icon=\"kbq-chevron-down-s_16\" class=\"kbq-navbar-item__arrow-icon\"></i>\n }\n </div>\n}\n\n<ng-content />\n", dependencies: [{ kind: "component", type: i5.KbqIcon, selector: "[kbq-icon]", inputs: ["small", "autoColor", "kbq-icon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
852
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: KbqVerticalNavbar, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1.FocusMonitor }], target: i0.ɵɵFactoryTarget.Component }); }
853
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.14", type: KbqVerticalNavbar, selector: "kbq-vertical-navbar", inputs: { openOver: "openOver", expanded: "expanded" }, host: { listeners: { "focus": "focus()", "blur": "blur()", "keydown": "onKeyDown($event)" }, properties: { "class.kbq-vertical-navbar_open-over": "openOver", "attr.tabindex": "tabIndex", "attr.cdkMonitorSubtreeFocus": "true" }, classAttribute: "kbq-vertical-navbar" }, queries: [{ propertyName: "rectangleElements", predicate: i0.forwardRef(() => KbqNavbarRectangleElement), descendants: true, isSignal: true }, { propertyName: "bento", first: true, predicate: i0.forwardRef(() => KbqNavbarBento), descendants: true }, { propertyName: "items", predicate: i0.forwardRef(() => KbqNavbarItem), descendants: true }], exportAs: ["KbqVerticalNavbar"], usesInheritance: true, hostDirectives: [{ directive: i1.CdkMonitorFocus }], ngImport: i0, template: `
854
+ <div class="kbq-vertical-navbar__container" [class.kbq-collapsed]="!expanded" [class.kbq-expanded]="expanded">
855
+ <ng-content select="[kbq-navbar-container], kbq-navbar-container" />
856
+ <ng-content select="[kbq-navbar-toggle], kbq-navbar-toggle" />
857
+ </div>
858
+ `, isInline: true, styles: ["button.kbq-navbar-item,button.kbq-navbar-brand{background:transparent;border:none}.kbq-vertical-navbar{position:relative;min-width:var(--kbq-size-5xl);height:100%}.kbq-vertical-navbar:not(:hover,.cdk-keyboard-focused) .kbq-navbar-toggle{display:none}.kbq-vertical-navbar .kbq-navbar-container{flex-direction:column;align-items:unset}.kbq-vertical-navbar .kbq-navbar-container+.kbq-navbar-container{padding-top:var(--kbq-size-xxl);padding-bottom:var(--kbq-size-s)}.kbq-vertical-navbar .kbq-vertical-navbar__container{position:relative;display:flex;flex-direction:column;justify-content:space-between;height:100%}.kbq-vertical-navbar .kbq-vertical-navbar__container.kbq-collapsed{width:var(--kbq-size-6xl)}.kbq-vertical-navbar .kbq-vertical-navbar__container.kbq-expanded{width:240px}.kbq-vertical-navbar.kbq-vertical-navbar_open-over .kbq-vertical-navbar__container{position:absolute;z-index:998}.kbq-navbar{background-color:var(--kbq-navbar-background)}.kbq-vertical-navbar .kbq-vertical-navbar__container{background-color:var(--kbq-navbar-vertical-background);border-right:1px solid var(--kbq-navbar-border)}.kbq-navbar-item{cursor:pointer}.kbq-navbar-item:not(.kbq-navbar-item_has-nested):after{display:block;background:var(--kbq-navbar-item-default-content-background)}.kbq-navbar-item .kbq-navbar-title{color:var(--kbq-navbar-item-default-content-text)}.kbq-navbar-item>.kbq-icon.kbq-empty{color:var(--kbq-navbar-item-default-content-icon-left)!important}.kbq-navbar-item .kbq-navbar-item__arrow-icon{color:var(--kbq-navbar-item-default-content-icon-right)!important}.kbq-navbar-item:hover:not(.kbq-disabled):not(.kbq-navbar-item_has-nested):after{display:block;background:var(--kbq-navbar-item-states-hover-content-background)}.kbq-navbar-item:hover:not(.kbq-disabled) .kbq-navbar-title{color:var(--kbq-navbar-item-states-hover-content-text)}.kbq-navbar-item:hover:not(.kbq-disabled)>.kbq-icon.kbq-empty{color:var(--kbq-navbar-item-states-hover-content-icon-left)!important}.kbq-navbar-item:hover:not(.kbq-disabled) .kbq-navbar-item__arrow-icon{color:var(--kbq-navbar-item-states-hover-content-icon-right)!important}.kbq-navbar-item.cdk-focused.cdk-keyboard-focused{outline:none}.kbq-navbar-item.cdk-focused.cdk-keyboard-focused:after{display:block;box-shadow:inset 0 0 0 2px var(--kbq-states-line-focus-theme)}.kbq-navbar-item:active:not(.kbq-disabled):not(.kbq-navbar-item_has-nested):after,.kbq-navbar-item.kbq-active:not(.kbq-disabled):not(.kbq-navbar-item_has-nested):after{display:block;background:var(--kbq-navbar-item-states-selected-content-background)}.kbq-navbar-item:active:not(.kbq-disabled) .kbq-navbar-title,.kbq-navbar-item.kbq-active:not(.kbq-disabled) .kbq-navbar-title{color:var(--kbq-navbar-item-states-selected-content-text)}.kbq-navbar-item:active:not(.kbq-disabled)>.kbq-icon.kbq-empty,.kbq-navbar-item.kbq-active:not(.kbq-disabled)>.kbq-icon.kbq-empty{color:var(--kbq-navbar-item-states-selected-content-icon-left)!important}.kbq-navbar-item:active:not(.kbq-disabled) .kbq-navbar-item__arrow-icon,.kbq-navbar-item.kbq-active:not(.kbq-disabled) .kbq-navbar-item__arrow-icon{color:var(--kbq-navbar-item-states-selected-content-icon-right)!important}.kbq-navbar-item.kbq-navbar-focusable-item{outline:none}.kbq-navbar-item.kbq-disabled{pointer-events:none;cursor:default}.kbq-navbar-item.kbq-disabled:not(.kbq-navbar-item_has-nested):after{display:block;background:var(--kbq-navbar-item-states-disabled-content-background)}.kbq-navbar-item.kbq-disabled .kbq-navbar-title{color:var(--kbq-navbar-item-states-disabled-content-text)}.kbq-navbar-item.kbq-disabled>.kbq-icon.kbq-empty{color:var(--kbq-navbar-item-states-disabled-content-icon-left)!important}.kbq-navbar-item.kbq-disabled .kbq-navbar-item__arrow-icon{color:var(--kbq-navbar-item-states-disabled-content-icon-right)!important}.kbq-navbar-divider{background:var(--kbq-line-contrast-less)}.kbq-navbar-title{font-size:var(--kbq-typography-text-normal-medium-font-size);font-style:var(--kbq-typography-text-normal-medium-font-style);font-weight:var(--kbq-typography-text-normal-medium-font-weight);line-height:var(--kbq-typography-text-normal-medium-line-height);font-family:var(--kbq-typography-text-normal-medium-font-family);text-transform:var(--kbq-typography-text-normal-medium-text-transform);font-feature-settings:var(--kbq-typography-text-normal-medium-font-feature-settings);letter-spacing:var(--kbq-typography-text-normal-medium-letter-spacing)}\n", ".kbq-truncate-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kbq-no-select{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.kbq-navbar-item.kbq-vertical{height:41px;padding-right:var(--kbq-size-xl);padding-left:var(--kbq-size-xl)}.kbq-navbar-item.kbq-vertical .kbq-navbar-item__container{gap:var(--kbq-size-m)}.kbq-navbar-item.kbq-vertical:after{top:0;right:var(--kbq-size-s);bottom:1px;left:var(--kbq-size-s)}.kbq-navbar-item.kbq-vertical.kbq-navbar-bento{display:flex;justify-content:start;align-items:center;height:var(--kbq-size-5xl);padding-top:var(--kbq-size-s)}.kbq-navbar-item.kbq-vertical.kbq-navbar-bento:after{top:var(--kbq-size-s);bottom:0}.kbq-navbar-item.kbq-vertical.kbq-expanded{align-items:center;gap:var(--kbq-size-m)}.kbq-navbar-item.kbq-vertical.kbq-expanded.kbq-navbar-item_has-nested{align-items:center;padding:0 var(--kbq-size-m)}.kbq-navbar-item.kbq-vertical.kbq-expanded.kbq-navbar-bento .kbq-navbar-item__title{margin-left:-8px;opacity:0}.kbq-navbar-item.kbq-vertical.kbq-expanded.kbq-navbar-bento:hover .kbq-navbar-item__title,.kbq-navbar-item.kbq-vertical.kbq-expanded.kbq-navbar-bento.cdk-keyboard-focused .kbq-navbar-item__title{margin-left:0;opacity:1;transition:opacity .15s ease-out,margin-left .15s ease-out}.kbq-navbar-item.kbq-vertical.kbq-collapsed{width:var(--kbq-size-6xl);justify-content:center}.kbq-navbar-item.kbq-vertical.kbq-collapsed .kbq-badge{position:absolute;z-index:1;top:calc(-1 * var(--kbq-size-3xs));right:var(--kbq-size-xs)}.kbq-navbar-item.kbq-vertical.kbq-collapsed .kbq-navbar-item__container{display:none}.kbq-navbar-item.kbq-vertical>.kbq-icon{display:flex;justify-content:center;align-items:center}button.kbq-navbar-item.kbq-vertical{width:100%}.kbq-navbar-item.kbq-horizontal{position:relative;flex-direction:row;box-sizing:border-box;outline:none;-webkit-tap-highlight-color:transparent;min-height:var(--kbq-size-3xl);min-width:var(--kbq-size-3xl);margin:var(--kbq-size-s);justify-content:center}.kbq-navbar-item.kbq-horizontal:before{top:calc(-1 * var(--kbq-size-s));left:calc(-1 * var(--kbq-size-s));right:calc(-1 * var(--kbq-size-s));bottom:calc(-1 * var(--kbq-size-s))}.kbq-navbar-item.kbq-horizontal:after{inset:0}.kbq-navbar-item.kbq-horizontal .kbq-navbar-item__title{padding-left:var(--kbq-size-xxs);padding-right:var(--kbq-size-xxs)}.kbq-navbar-item.kbq-horizontal .kbq-navbar-item__arrow-icon{padding-left:var(--kbq-size-xxs)}.kbq-navbar-item.kbq-horizontal.kbq-navbar-item_with-title:not(.kbq-navbar-item_collapsed){margin-left:0;margin-right:0;padding-right:var(--kbq-size-m);padding-left:var(--kbq-size-m)}.kbq-navbar-item.kbq-horizontal.kbq-navbar-item_with-title:not(.kbq-navbar-item_collapsed):before{left:0;right:0}.kbq-navbar-item.kbq-horizontal.kbq-navbar-item_with-title:not(.kbq-navbar-item_collapsed)>.kbq-icon{align-self:center;padding-right:var(--kbq-size-xxs)}.kbq-navbar-item.kbq-horizontal.kbq-navbar-bento{justify-content:center;margin-right:var(--kbq-size-xxs)}.kbq-navbar-item.kbq-horizontal.kbq-navbar-bento:before{right:calc(-1 * var(--kbq-size-xxs))}.kbq-navbar-item.kbq-horizontal.kbq-navbar-item_collapsed{justify-content:center;padding:var(--kbq-size-s)}.kbq-navbar-item.kbq-horizontal.kbq-navbar-item_collapsed .kbq-navbar-item__container{display:none}.kbq-navbar-item.kbq-horizontal .kbq-badge{position:absolute;z-index:1;top:-2px;right:-2px}.kbq-navbar-item.kbq-horizontal.kbq-navbar-item_has-nested{margin-left:var(--kbq-size-m);margin-right:var(--kbq-size-m)}.kbq-navbar-item.kbq-horizontal.kbq-navbar-item_has-nested:before{left:calc(-1 * var(--kbq-size-m));right:calc(-1 * var(--kbq-size-m))}.kbq-navbar-item{box-sizing:border-box;position:relative;display:flex;align-items:center;border-radius:var(--kbq-navbar-item-size-content-border-radius)}.kbq-navbar-item .kbq-icon{min-width:var(--kbq-size-l);min-height:var(--kbq-size-l)}.kbq-navbar-item .kbq-button-icon{position:absolute;padding-left:var(--kbq-size-xs);padding-right:var(--kbq-size-xs);top:50%;transform:translateY(-50%)}.kbq-navbar-item:before{position:absolute;content:\"\"}.kbq-navbar-item:after{position:absolute;content:\"\";display:none;border-radius:var(--kbq-navbar-item-size-content-border-radius)}.kbq-navbar-title{display:inline-block;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.kbq-navbar-item__title{display:flex;flex-direction:column;align-self:center;min-width:0}.kbq-navbar-item__container{display:flex;flex-direction:row;flex:1 1 auto;justify-content:space-between;min-width:0}.kbq-navbar-item__container .kbq-icon{align-self:center}.kbq-navbar-item.kbq-navbar-item_has-nested .kbq-button{flex:1}.kbq-navbar-item.kbq-navbar-item_has-nested .kbq-button .kbq-button-wrapper{justify-content:center}.kbq-navbar-item.kbq-navbar-item_has-nested .kbq-button .kbq-button-wrapper .kbq-icon.kbq-icon_left{margin-left:unset}.kbq-navbar-item.kbq-navbar-item_has-nested .kbq-button .kbq-button-wrapper .kbq-icon.kbq-icon_right{margin-right:unset}a.kbq-navbar-item,a.kbq-navbar-title{text-decoration:none}.kbq-navbar-item [kbq-button],.kbq-navbar-brand [kbq-button],.kbq-navbar-toggle [kbq-button]{z-index:1}\n", "button.kbq-navbar-item,button.kbq-navbar-brand{background:transparent;border:none}.kbq-navbar-logo{display:flex}.kbq-navbar-brand{position:relative;display:flex;border-radius:var(--kbq-size-s)}.kbq-navbar-brand:after{position:absolute;content:\"\";display:none;border-radius:var(--kbq-navbar-item-size-content-border-radius)}.kbq-navbar-brand .kbq-navbar-title{cursor:pointer}a.kbq-navbar-brand{text-decoration:none}.kbq-navbar-brand.kbq-horizontal{padding:var(--kbq-size-s) var(--kbq-size-xs) var(--kbq-size-s) var(--kbq-size-xxs);align-items:center;gap:var(--kbq-size-s)}.kbq-navbar-brand.kbq-horizontal:after{top:var(--kbq-size-xxs);right:var(--kbq-size-xxs);bottom:var(--kbq-size-xxs);left:0}.kbq-navbar-brand.kbq-horizontal .kbq-navbar-title{padding-right:var(--kbq-size-m)}.kbq-navbar-brand.kbq-vertical{flex-direction:row;align-items:center;padding:var(--kbq-size-xxs) var(--kbq-size-m) var(--kbq-size-m)}.kbq-navbar-brand.kbq-vertical:after{top:0;right:var(--kbq-size-s);bottom:var(--kbq-size-s);left:var(--kbq-size-s)}.kbq-navbar-brand.kbq-vertical .kbq-navbar-logo{align-items:center}.kbq-navbar-brand.kbq-vertical .kbq-navbar-title{display:block;align-items:center;padding-left:var(--kbq-size-s)}.kbq-navbar-brand.kbq-vertical.kbq-expanded .kbq-navbar-title{max-width:200px}.kbq-navbar-brand.kbq-vertical.kbq-collapsed .kbq-navbar-title{display:none!important}.kbq-navbar-brand.kbq-vertical.kbq-navbar-brand_long-title .kbq-navbar-title{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;white-space:normal}.kbq-navbar-brand:not(.kbq-navbar-item_has-nested):after{display:block;background:var(--kbq-navbar-item-default-content-background)}.kbq-navbar-brand .kbq-navbar-title{color:var(--kbq-navbar-item-default-content-text)}.kbq-navbar-brand>.kbq-icon.kbq-empty{color:var(--kbq-navbar-item-default-content-icon-left)!important}.kbq-navbar-brand .kbq-navbar-item__arrow-icon{color:var(--kbq-navbar-item-default-content-icon-right)!important}.kbq-navbar-brand.kbq-navbar-brand_link{cursor:pointer}.kbq-navbar-brand.kbq-navbar-brand_link:hover:not(.kbq-disabled):not(.kbq-navbar-item_has-nested):after{display:block;background:var(--kbq-navbar-item-states-hover-content-background)}.kbq-navbar-brand.kbq-navbar-brand_link:hover:not(.kbq-disabled) .kbq-navbar-title{color:var(--kbq-navbar-item-states-hover-content-text)}.kbq-navbar-brand.kbq-navbar-brand_link:hover:not(.kbq-disabled)>.kbq-icon.kbq-empty{color:var(--kbq-navbar-item-states-hover-content-icon-left)!important}.kbq-navbar-brand.kbq-navbar-brand_link:hover:not(.kbq-disabled) .kbq-navbar-item__arrow-icon{color:var(--kbq-navbar-item-states-hover-content-icon-right)!important}.kbq-navbar-brand.kbq-navbar-brand_link.cdk-focused.cdk-keyboard-focused{outline:none}.kbq-navbar-brand.kbq-navbar-brand_link.cdk-focused.cdk-keyboard-focused:after{display:block;box-shadow:inset 0 0 0 2px var(--kbq-states-line-focus-theme)}.kbq-navbar-brand.kbq-navbar-brand_link:active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand):not(.kbq-navbar-item_has-nested):after,.kbq-navbar-brand.kbq-navbar-brand_link.kbq-active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand):not(.kbq-navbar-item_has-nested):after{display:block;background:var(--kbq-navbar-item-states-selected-content-background)}.kbq-navbar-brand.kbq-navbar-brand_link:active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand) .kbq-navbar-title,.kbq-navbar-brand.kbq-navbar-brand_link.kbq-active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand) .kbq-navbar-title{color:var(--kbq-navbar-item-states-selected-content-text)}.kbq-navbar-brand.kbq-navbar-brand_link:active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand)>.kbq-icon.kbq-empty,.kbq-navbar-brand.kbq-navbar-brand_link.kbq-active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand)>.kbq-icon.kbq-empty{color:var(--kbq-navbar-item-states-selected-content-icon-left)!important}.kbq-navbar-brand.kbq-navbar-brand_link:active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand) .kbq-navbar-item__arrow-icon,.kbq-navbar-brand.kbq-navbar-brand_link.kbq-active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand) .kbq-navbar-item__arrow-icon{color:var(--kbq-navbar-item-states-selected-content-icon-right)!important}.kbq-navbar-brand.kbq-navbar-brand_link.kbq-vertical:hover .kbq-navbar-logo{transform:scale(1.06)}.kbq-navbar-brand.kbq-navbar-brand_link.kbq-horizontal:hover .kbq-navbar-logo{z-index:1}.kbq-navbar-brand.kbq-navbar-focusable-item{outline:none}.kbq-navbar-brand .kbq-navbar-title{font-size:var(--kbq-typography-navbar-title-font-size);font-style:var(--kbq-typography-navbar-title-font-style);font-weight:var(--kbq-typography-navbar-title-font-weight);line-height:var(--kbq-typography-navbar-title-line-height);font-family:var(--kbq-typography-navbar-title-font-family);text-transform:var(--kbq-typography-navbar-title-text-transform);font-feature-settings:var(--kbq-typography-navbar-title-font-feature-settings);letter-spacing:var(--kbq-typography-navbar-title-letter-spacing)}.kbq-navbar-brand.kbq-navbar-brand_long-title .kbq-navbar-title{font-size:var(--kbq-typography-text-normal-strong-font-size);font-style:var(--kbq-typography-text-normal-strong-font-style);font-weight:var(--kbq-typography-text-normal-strong-font-weight);line-height:var(--kbq-typography-text-normal-strong-line-height);font-family:var(--kbq-typography-text-normal-strong-font-family);text-transform:var(--kbq-typography-text-normal-strong-text-transform);font-feature-settings:var(--kbq-typography-text-normal-strong-font-feature-settings);letter-spacing:var(--kbq-typography-text-normal-strong-letter-spacing)}\n", ".kbq-navbar-divider{display:block}.kbq-navbar-divider.kbq-vertical{height:1px;margin:var(--kbq-size-xs) var(--kbq-size-l)}.kbq-navbar-divider.kbq-horizontal{width:1px;height:12px;margin-left:var(--kbq-size-m);margin-right:var(--kbq-size-m)}\n", ".kbq-navbar,.kbq-vertical-navbar{--kbq-navbar-item-size-content-border-radius: var(--kbq-size-border-radius);--kbq-navbar-background: var(--kbq-background-bg);--kbq-navbar-vertical-background: var(--kbq-background-bg-tertiary);--kbq-navbar-border: var(--kbq-line-contrast-less);--kbq-navbar-item-default-content-text: var(--kbq-foreground-contrast);--kbq-navbar-item-default-content-background: transparent;--kbq-navbar-item-default-content-icon-left: var(--kbq-icon-contrast);--kbq-navbar-item-default-content-icon-right: var(--kbq-icon-contrast);--kbq-navbar-item-states-hover-content-text: var(--kbq-foreground-contrast);--kbq-navbar-item-states-hover-content-background: var(--kbq-states-background-transparent-hover);--kbq-navbar-item-states-hover-content-icon-left: var(--kbq-states-icon-contrast-hover);--kbq-navbar-item-states-hover-content-icon-right: var(--kbq-states-icon-contrast-hover);--kbq-navbar-item-states-selected-content-text: var(--kbq-foreground-contrast);--kbq-navbar-item-states-selected-content-background: var(--kbq-states-background-transparent-active);--kbq-navbar-item-states-selected-content-icon-left: var(--kbq-states-icon-contrast-active);--kbq-navbar-item-states-selected-content-icon-right: var(--kbq-states-icon-contrast-active);--kbq-navbar-item-states-selected-hover-content-text: var(--kbq-foreground-contrast);--kbq-navbar-item-states-selected-hover-content-background: var(--kbq-states-background-transparent-hover);--kbq-navbar-item-states-selected-hover-content-icon-left: var(--kbq-states-icon-contrast-hover);--kbq-navbar-item-states-selected-hover-content-icon-right: var(--kbq-states-icon-contrast-hover);--kbq-navbar-item-states-disabled-content-text: var(--kbq-states-foreground-disabled);--kbq-navbar-item-states-disabled-content-background: transparent;--kbq-navbar-item-states-disabled-content-icon-left: var(--kbq-states-icon-disabled);--kbq-navbar-item-states-disabled-content-icon-right: var(--kbq-states-icon-disabled)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
784
859
  }
785
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: KbqNavbarItem, decorators: [{
860
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: KbqVerticalNavbar, decorators: [{
786
861
  type: Component,
787
- args: [{ selector: 'kbq-navbar-item, [kbq-navbar-item]', exportAs: 'kbqNavbarItem', host: {
788
- class: 'kbq-navbar-item',
789
- '[class.kbq-navbar-item_collapsed]': 'isCollapsed',
790
- '[class.kbq-navbar-item_with-title]': '!!title',
862
+ args: [{ selector: 'kbq-vertical-navbar', exportAs: 'KbqVerticalNavbar', template: `
863
+ <div class="kbq-vertical-navbar__container" [class.kbq-collapsed]="!expanded" [class.kbq-expanded]="expanded">
864
+ <ng-content select="[kbq-navbar-container], kbq-navbar-container" />
865
+ <ng-content select="[kbq-navbar-toggle], kbq-navbar-toggle" />
866
+ </div>
867
+ `, host: {
868
+ class: 'kbq-vertical-navbar',
869
+ '[class.kbq-vertical-navbar_open-over]': 'openOver',
870
+ '[attr.tabindex]': 'tabIndex',
871
+ '[attr.cdkMonitorSubtreeFocus]': 'true',
872
+ '(focus)': 'focus()',
873
+ '(blur)': 'blur()',
791
874
  '(keydown)': 'onKeyDown($event)'
792
- }, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<ng-content select=\"[kbq-icon]\" />\n\n@if (title) {\n <div class=\"kbq-navbar-item__container\">\n <div class=\"kbq-navbar-item__title\">\n <ng-content select=\"kbq-navbar-title, [kbq-navbar-title]\" />\n </div>\n @if (showVerticalDropDownAngle) {\n <i kbq-icon=\"kbq-chevron-right_16\" class=\"kbq-navbar-item__arrow-icon\"></i>\n }\n @if (showHorizontalDropDownAngle) {\n <i kbq-icon=\"kbq-chevron-down-s_16\" class=\"kbq-navbar-item__arrow-icon\"></i>\n }\n </div>\n}\n\n<ng-content />\n" }]
793
- }], ctorParameters: () => [{ type: KbqNavbarRectangleElement }, { type: KbqNavbarFocusableItem }, { type: i0.ChangeDetectorRef }, { type: i3.KbqDropdownTrigger, decorators: [{
794
- type: Optional
795
- }] }, { type: KbqNavbarBento, decorators: [{
796
- type: Optional
797
- }] }, { type: i4.KbqTooltipTrigger, decorators: [{
798
- type: Optional
799
- }] }], propDecorators: { title: [{
800
- type: ContentChild,
801
- args: [KbqNavbarTitle]
802
- }], icon: [{
875
+ }, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, hostDirectives: [CdkMonitorFocus], styles: ["button.kbq-navbar-item,button.kbq-navbar-brand{background:transparent;border:none}.kbq-vertical-navbar{position:relative;min-width:var(--kbq-size-5xl);height:100%}.kbq-vertical-navbar:not(:hover,.cdk-keyboard-focused) .kbq-navbar-toggle{display:none}.kbq-vertical-navbar .kbq-navbar-container{flex-direction:column;align-items:unset}.kbq-vertical-navbar .kbq-navbar-container+.kbq-navbar-container{padding-top:var(--kbq-size-xxl);padding-bottom:var(--kbq-size-s)}.kbq-vertical-navbar .kbq-vertical-navbar__container{position:relative;display:flex;flex-direction:column;justify-content:space-between;height:100%}.kbq-vertical-navbar .kbq-vertical-navbar__container.kbq-collapsed{width:var(--kbq-size-6xl)}.kbq-vertical-navbar .kbq-vertical-navbar__container.kbq-expanded{width:240px}.kbq-vertical-navbar.kbq-vertical-navbar_open-over .kbq-vertical-navbar__container{position:absolute;z-index:998}.kbq-navbar{background-color:var(--kbq-navbar-background)}.kbq-vertical-navbar .kbq-vertical-navbar__container{background-color:var(--kbq-navbar-vertical-background);border-right:1px solid var(--kbq-navbar-border)}.kbq-navbar-item{cursor:pointer}.kbq-navbar-item:not(.kbq-navbar-item_has-nested):after{display:block;background:var(--kbq-navbar-item-default-content-background)}.kbq-navbar-item .kbq-navbar-title{color:var(--kbq-navbar-item-default-content-text)}.kbq-navbar-item>.kbq-icon.kbq-empty{color:var(--kbq-navbar-item-default-content-icon-left)!important}.kbq-navbar-item .kbq-navbar-item__arrow-icon{color:var(--kbq-navbar-item-default-content-icon-right)!important}.kbq-navbar-item:hover:not(.kbq-disabled):not(.kbq-navbar-item_has-nested):after{display:block;background:var(--kbq-navbar-item-states-hover-content-background)}.kbq-navbar-item:hover:not(.kbq-disabled) .kbq-navbar-title{color:var(--kbq-navbar-item-states-hover-content-text)}.kbq-navbar-item:hover:not(.kbq-disabled)>.kbq-icon.kbq-empty{color:var(--kbq-navbar-item-states-hover-content-icon-left)!important}.kbq-navbar-item:hover:not(.kbq-disabled) .kbq-navbar-item__arrow-icon{color:var(--kbq-navbar-item-states-hover-content-icon-right)!important}.kbq-navbar-item.cdk-focused.cdk-keyboard-focused{outline:none}.kbq-navbar-item.cdk-focused.cdk-keyboard-focused:after{display:block;box-shadow:inset 0 0 0 2px var(--kbq-states-line-focus-theme)}.kbq-navbar-item:active:not(.kbq-disabled):not(.kbq-navbar-item_has-nested):after,.kbq-navbar-item.kbq-active:not(.kbq-disabled):not(.kbq-navbar-item_has-nested):after{display:block;background:var(--kbq-navbar-item-states-selected-content-background)}.kbq-navbar-item:active:not(.kbq-disabled) .kbq-navbar-title,.kbq-navbar-item.kbq-active:not(.kbq-disabled) .kbq-navbar-title{color:var(--kbq-navbar-item-states-selected-content-text)}.kbq-navbar-item:active:not(.kbq-disabled)>.kbq-icon.kbq-empty,.kbq-navbar-item.kbq-active:not(.kbq-disabled)>.kbq-icon.kbq-empty{color:var(--kbq-navbar-item-states-selected-content-icon-left)!important}.kbq-navbar-item:active:not(.kbq-disabled) .kbq-navbar-item__arrow-icon,.kbq-navbar-item.kbq-active:not(.kbq-disabled) .kbq-navbar-item__arrow-icon{color:var(--kbq-navbar-item-states-selected-content-icon-right)!important}.kbq-navbar-item.kbq-navbar-focusable-item{outline:none}.kbq-navbar-item.kbq-disabled{pointer-events:none;cursor:default}.kbq-navbar-item.kbq-disabled:not(.kbq-navbar-item_has-nested):after{display:block;background:var(--kbq-navbar-item-states-disabled-content-background)}.kbq-navbar-item.kbq-disabled .kbq-navbar-title{color:var(--kbq-navbar-item-states-disabled-content-text)}.kbq-navbar-item.kbq-disabled>.kbq-icon.kbq-empty{color:var(--kbq-navbar-item-states-disabled-content-icon-left)!important}.kbq-navbar-item.kbq-disabled .kbq-navbar-item__arrow-icon{color:var(--kbq-navbar-item-states-disabled-content-icon-right)!important}.kbq-navbar-divider{background:var(--kbq-line-contrast-less)}.kbq-navbar-title{font-size:var(--kbq-typography-text-normal-medium-font-size);font-style:var(--kbq-typography-text-normal-medium-font-style);font-weight:var(--kbq-typography-text-normal-medium-font-weight);line-height:var(--kbq-typography-text-normal-medium-line-height);font-family:var(--kbq-typography-text-normal-medium-font-family);text-transform:var(--kbq-typography-text-normal-medium-text-transform);font-feature-settings:var(--kbq-typography-text-normal-medium-font-feature-settings);letter-spacing:var(--kbq-typography-text-normal-medium-letter-spacing)}\n", ".kbq-truncate-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kbq-no-select{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.kbq-navbar-item.kbq-vertical{height:41px;padding-right:var(--kbq-size-xl);padding-left:var(--kbq-size-xl)}.kbq-navbar-item.kbq-vertical .kbq-navbar-item__container{gap:var(--kbq-size-m)}.kbq-navbar-item.kbq-vertical:after{top:0;right:var(--kbq-size-s);bottom:1px;left:var(--kbq-size-s)}.kbq-navbar-item.kbq-vertical.kbq-navbar-bento{display:flex;justify-content:start;align-items:center;height:var(--kbq-size-5xl);padding-top:var(--kbq-size-s)}.kbq-navbar-item.kbq-vertical.kbq-navbar-bento:after{top:var(--kbq-size-s);bottom:0}.kbq-navbar-item.kbq-vertical.kbq-expanded{align-items:center;gap:var(--kbq-size-m)}.kbq-navbar-item.kbq-vertical.kbq-expanded.kbq-navbar-item_has-nested{align-items:center;padding:0 var(--kbq-size-m)}.kbq-navbar-item.kbq-vertical.kbq-expanded.kbq-navbar-bento .kbq-navbar-item__title{margin-left:-8px;opacity:0}.kbq-navbar-item.kbq-vertical.kbq-expanded.kbq-navbar-bento:hover .kbq-navbar-item__title,.kbq-navbar-item.kbq-vertical.kbq-expanded.kbq-navbar-bento.cdk-keyboard-focused .kbq-navbar-item__title{margin-left:0;opacity:1;transition:opacity .15s ease-out,margin-left .15s ease-out}.kbq-navbar-item.kbq-vertical.kbq-collapsed{width:var(--kbq-size-6xl);justify-content:center}.kbq-navbar-item.kbq-vertical.kbq-collapsed .kbq-badge{position:absolute;z-index:1;top:calc(-1 * var(--kbq-size-3xs));right:var(--kbq-size-xs)}.kbq-navbar-item.kbq-vertical.kbq-collapsed .kbq-navbar-item__container{display:none}.kbq-navbar-item.kbq-vertical>.kbq-icon{display:flex;justify-content:center;align-items:center}button.kbq-navbar-item.kbq-vertical{width:100%}.kbq-navbar-item.kbq-horizontal{position:relative;flex-direction:row;box-sizing:border-box;outline:none;-webkit-tap-highlight-color:transparent;min-height:var(--kbq-size-3xl);min-width:var(--kbq-size-3xl);margin:var(--kbq-size-s);justify-content:center}.kbq-navbar-item.kbq-horizontal:before{top:calc(-1 * var(--kbq-size-s));left:calc(-1 * var(--kbq-size-s));right:calc(-1 * var(--kbq-size-s));bottom:calc(-1 * var(--kbq-size-s))}.kbq-navbar-item.kbq-horizontal:after{inset:0}.kbq-navbar-item.kbq-horizontal .kbq-navbar-item__title{padding-left:var(--kbq-size-xxs);padding-right:var(--kbq-size-xxs)}.kbq-navbar-item.kbq-horizontal .kbq-navbar-item__arrow-icon{padding-left:var(--kbq-size-xxs)}.kbq-navbar-item.kbq-horizontal.kbq-navbar-item_with-title:not(.kbq-navbar-item_collapsed){margin-left:0;margin-right:0;padding-right:var(--kbq-size-m);padding-left:var(--kbq-size-m)}.kbq-navbar-item.kbq-horizontal.kbq-navbar-item_with-title:not(.kbq-navbar-item_collapsed):before{left:0;right:0}.kbq-navbar-item.kbq-horizontal.kbq-navbar-item_with-title:not(.kbq-navbar-item_collapsed)>.kbq-icon{align-self:center;padding-right:var(--kbq-size-xxs)}.kbq-navbar-item.kbq-horizontal.kbq-navbar-bento{justify-content:center;margin-right:var(--kbq-size-xxs)}.kbq-navbar-item.kbq-horizontal.kbq-navbar-bento:before{right:calc(-1 * var(--kbq-size-xxs))}.kbq-navbar-item.kbq-horizontal.kbq-navbar-item_collapsed{justify-content:center;padding:var(--kbq-size-s)}.kbq-navbar-item.kbq-horizontal.kbq-navbar-item_collapsed .kbq-navbar-item__container{display:none}.kbq-navbar-item.kbq-horizontal .kbq-badge{position:absolute;z-index:1;top:-2px;right:-2px}.kbq-navbar-item.kbq-horizontal.kbq-navbar-item_has-nested{margin-left:var(--kbq-size-m);margin-right:var(--kbq-size-m)}.kbq-navbar-item.kbq-horizontal.kbq-navbar-item_has-nested:before{left:calc(-1 * var(--kbq-size-m));right:calc(-1 * var(--kbq-size-m))}.kbq-navbar-item{box-sizing:border-box;position:relative;display:flex;align-items:center;border-radius:var(--kbq-navbar-item-size-content-border-radius)}.kbq-navbar-item .kbq-icon{min-width:var(--kbq-size-l);min-height:var(--kbq-size-l)}.kbq-navbar-item .kbq-button-icon{position:absolute;padding-left:var(--kbq-size-xs);padding-right:var(--kbq-size-xs);top:50%;transform:translateY(-50%)}.kbq-navbar-item:before{position:absolute;content:\"\"}.kbq-navbar-item:after{position:absolute;content:\"\";display:none;border-radius:var(--kbq-navbar-item-size-content-border-radius)}.kbq-navbar-title{display:inline-block;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.kbq-navbar-item__title{display:flex;flex-direction:column;align-self:center;min-width:0}.kbq-navbar-item__container{display:flex;flex-direction:row;flex:1 1 auto;justify-content:space-between;min-width:0}.kbq-navbar-item__container .kbq-icon{align-self:center}.kbq-navbar-item.kbq-navbar-item_has-nested .kbq-button{flex:1}.kbq-navbar-item.kbq-navbar-item_has-nested .kbq-button .kbq-button-wrapper{justify-content:center}.kbq-navbar-item.kbq-navbar-item_has-nested .kbq-button .kbq-button-wrapper .kbq-icon.kbq-icon_left{margin-left:unset}.kbq-navbar-item.kbq-navbar-item_has-nested .kbq-button .kbq-button-wrapper .kbq-icon.kbq-icon_right{margin-right:unset}a.kbq-navbar-item,a.kbq-navbar-title{text-decoration:none}.kbq-navbar-item [kbq-button],.kbq-navbar-brand [kbq-button],.kbq-navbar-toggle [kbq-button]{z-index:1}\n", "button.kbq-navbar-item,button.kbq-navbar-brand{background:transparent;border:none}.kbq-navbar-logo{display:flex}.kbq-navbar-brand{position:relative;display:flex;border-radius:var(--kbq-size-s)}.kbq-navbar-brand:after{position:absolute;content:\"\";display:none;border-radius:var(--kbq-navbar-item-size-content-border-radius)}.kbq-navbar-brand .kbq-navbar-title{cursor:pointer}a.kbq-navbar-brand{text-decoration:none}.kbq-navbar-brand.kbq-horizontal{padding:var(--kbq-size-s) var(--kbq-size-xs) var(--kbq-size-s) var(--kbq-size-xxs);align-items:center;gap:var(--kbq-size-s)}.kbq-navbar-brand.kbq-horizontal:after{top:var(--kbq-size-xxs);right:var(--kbq-size-xxs);bottom:var(--kbq-size-xxs);left:0}.kbq-navbar-brand.kbq-horizontal .kbq-navbar-title{padding-right:var(--kbq-size-m)}.kbq-navbar-brand.kbq-vertical{flex-direction:row;align-items:center;padding:var(--kbq-size-xxs) var(--kbq-size-m) var(--kbq-size-m)}.kbq-navbar-brand.kbq-vertical:after{top:0;right:var(--kbq-size-s);bottom:var(--kbq-size-s);left:var(--kbq-size-s)}.kbq-navbar-brand.kbq-vertical .kbq-navbar-logo{align-items:center}.kbq-navbar-brand.kbq-vertical .kbq-navbar-title{display:block;align-items:center;padding-left:var(--kbq-size-s)}.kbq-navbar-brand.kbq-vertical.kbq-expanded .kbq-navbar-title{max-width:200px}.kbq-navbar-brand.kbq-vertical.kbq-collapsed .kbq-navbar-title{display:none!important}.kbq-navbar-brand.kbq-vertical.kbq-navbar-brand_long-title .kbq-navbar-title{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;white-space:normal}.kbq-navbar-brand:not(.kbq-navbar-item_has-nested):after{display:block;background:var(--kbq-navbar-item-default-content-background)}.kbq-navbar-brand .kbq-navbar-title{color:var(--kbq-navbar-item-default-content-text)}.kbq-navbar-brand>.kbq-icon.kbq-empty{color:var(--kbq-navbar-item-default-content-icon-left)!important}.kbq-navbar-brand .kbq-navbar-item__arrow-icon{color:var(--kbq-navbar-item-default-content-icon-right)!important}.kbq-navbar-brand.kbq-navbar-brand_link{cursor:pointer}.kbq-navbar-brand.kbq-navbar-brand_link:hover:not(.kbq-disabled):not(.kbq-navbar-item_has-nested):after{display:block;background:var(--kbq-navbar-item-states-hover-content-background)}.kbq-navbar-brand.kbq-navbar-brand_link:hover:not(.kbq-disabled) .kbq-navbar-title{color:var(--kbq-navbar-item-states-hover-content-text)}.kbq-navbar-brand.kbq-navbar-brand_link:hover:not(.kbq-disabled)>.kbq-icon.kbq-empty{color:var(--kbq-navbar-item-states-hover-content-icon-left)!important}.kbq-navbar-brand.kbq-navbar-brand_link:hover:not(.kbq-disabled) .kbq-navbar-item__arrow-icon{color:var(--kbq-navbar-item-states-hover-content-icon-right)!important}.kbq-navbar-brand.kbq-navbar-brand_link.cdk-focused.cdk-keyboard-focused{outline:none}.kbq-navbar-brand.kbq-navbar-brand_link.cdk-focused.cdk-keyboard-focused:after{display:block;box-shadow:inset 0 0 0 2px var(--kbq-states-line-focus-theme)}.kbq-navbar-brand.kbq-navbar-brand_link:active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand):not(.kbq-navbar-item_has-nested):after,.kbq-navbar-brand.kbq-navbar-brand_link.kbq-active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand):not(.kbq-navbar-item_has-nested):after{display:block;background:var(--kbq-navbar-item-states-selected-content-background)}.kbq-navbar-brand.kbq-navbar-brand_link:active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand) .kbq-navbar-title,.kbq-navbar-brand.kbq-navbar-brand_link.kbq-active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand) .kbq-navbar-title{color:var(--kbq-navbar-item-states-selected-content-text)}.kbq-navbar-brand.kbq-navbar-brand_link:active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand)>.kbq-icon.kbq-empty,.kbq-navbar-brand.kbq-navbar-brand_link.kbq-active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand)>.kbq-icon.kbq-empty{color:var(--kbq-navbar-item-states-selected-content-icon-left)!important}.kbq-navbar-brand.kbq-navbar-brand_link:active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand) .kbq-navbar-item__arrow-icon,.kbq-navbar-brand.kbq-navbar-brand_link.kbq-active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand) .kbq-navbar-item__arrow-icon{color:var(--kbq-navbar-item-states-selected-content-icon-right)!important}.kbq-navbar-brand.kbq-navbar-brand_link.kbq-vertical:hover .kbq-navbar-logo{transform:scale(1.06)}.kbq-navbar-brand.kbq-navbar-brand_link.kbq-horizontal:hover .kbq-navbar-logo{z-index:1}.kbq-navbar-brand.kbq-navbar-focusable-item{outline:none}.kbq-navbar-brand .kbq-navbar-title{font-size:var(--kbq-typography-navbar-title-font-size);font-style:var(--kbq-typography-navbar-title-font-style);font-weight:var(--kbq-typography-navbar-title-font-weight);line-height:var(--kbq-typography-navbar-title-line-height);font-family:var(--kbq-typography-navbar-title-font-family);text-transform:var(--kbq-typography-navbar-title-text-transform);font-feature-settings:var(--kbq-typography-navbar-title-font-feature-settings);letter-spacing:var(--kbq-typography-navbar-title-letter-spacing)}.kbq-navbar-brand.kbq-navbar-brand_long-title .kbq-navbar-title{font-size:var(--kbq-typography-text-normal-strong-font-size);font-style:var(--kbq-typography-text-normal-strong-font-style);font-weight:var(--kbq-typography-text-normal-strong-font-weight);line-height:var(--kbq-typography-text-normal-strong-line-height);font-family:var(--kbq-typography-text-normal-strong-font-family);text-transform:var(--kbq-typography-text-normal-strong-text-transform);font-feature-settings:var(--kbq-typography-text-normal-strong-font-feature-settings);letter-spacing:var(--kbq-typography-text-normal-strong-letter-spacing)}\n", ".kbq-navbar-divider{display:block}.kbq-navbar-divider.kbq-vertical{height:1px;margin:var(--kbq-size-xs) var(--kbq-size-l)}.kbq-navbar-divider.kbq-horizontal{width:1px;height:12px;margin-left:var(--kbq-size-m);margin-right:var(--kbq-size-m)}\n", ".kbq-navbar,.kbq-vertical-navbar{--kbq-navbar-item-size-content-border-radius: var(--kbq-size-border-radius);--kbq-navbar-background: var(--kbq-background-bg);--kbq-navbar-vertical-background: var(--kbq-background-bg-tertiary);--kbq-navbar-border: var(--kbq-line-contrast-less);--kbq-navbar-item-default-content-text: var(--kbq-foreground-contrast);--kbq-navbar-item-default-content-background: transparent;--kbq-navbar-item-default-content-icon-left: var(--kbq-icon-contrast);--kbq-navbar-item-default-content-icon-right: var(--kbq-icon-contrast);--kbq-navbar-item-states-hover-content-text: var(--kbq-foreground-contrast);--kbq-navbar-item-states-hover-content-background: var(--kbq-states-background-transparent-hover);--kbq-navbar-item-states-hover-content-icon-left: var(--kbq-states-icon-contrast-hover);--kbq-navbar-item-states-hover-content-icon-right: var(--kbq-states-icon-contrast-hover);--kbq-navbar-item-states-selected-content-text: var(--kbq-foreground-contrast);--kbq-navbar-item-states-selected-content-background: var(--kbq-states-background-transparent-active);--kbq-navbar-item-states-selected-content-icon-left: var(--kbq-states-icon-contrast-active);--kbq-navbar-item-states-selected-content-icon-right: var(--kbq-states-icon-contrast-active);--kbq-navbar-item-states-selected-hover-content-text: var(--kbq-foreground-contrast);--kbq-navbar-item-states-selected-hover-content-background: var(--kbq-states-background-transparent-hover);--kbq-navbar-item-states-selected-hover-content-icon-left: var(--kbq-states-icon-contrast-hover);--kbq-navbar-item-states-selected-hover-content-icon-right: var(--kbq-states-icon-contrast-hover);--kbq-navbar-item-states-disabled-content-text: var(--kbq-states-foreground-disabled);--kbq-navbar-item-states-disabled-content-background: transparent;--kbq-navbar-item-states-disabled-content-icon-left: var(--kbq-states-icon-disabled);--kbq-navbar-item-states-disabled-content-icon-right: var(--kbq-states-icon-disabled)}\n"] }]
876
+ }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1.FocusMonitor }], propDecorators: { items: [{
877
+ type: ContentChildren,
878
+ args: [forwardRef(() => KbqNavbarItem), { descendants: true }]
879
+ }], bento: [{
803
880
  type: ContentChild,
804
- args: [KbqIcon]
805
- }], collapsedText: [{
881
+ args: [forwardRef(() => KbqNavbarBento)]
882
+ }], openOver: [{
806
883
  type: Input
807
- }], trigger: [{
808
- type: Input,
809
- args: ['kbqTrigger']
810
- }], collapsable: [{
884
+ }], expanded: [{
811
885
  type: Input
812
886
  }] } });
813
- class KbqNavbarToggle extends KbqTooltipTrigger {
814
- get content() {
815
- return this._content;
816
- }
817
- set content(content) {
818
- this._content = content;
819
- this.updateData();
820
- }
821
- get disabled() {
822
- return this.navbar.expanded;
823
- }
824
- constructor(navbar, changeDetectorRef) {
825
- super();
826
- this.navbar = navbar;
827
- this.changeDetectorRef = changeDetectorRef;
828
- this.document = inject(DOCUMENT);
887
+
888
+ class KbqNavbarToggle {
889
+ constructor() {
829
890
  this.window = inject(KBQ_WINDOW);
830
- this.modifier = TooltipModifier.Default;
831
- this.toggle = () => {
832
- this.navbar.toggle();
833
- this.changeDetectorRef.markForCheck();
834
- this.hide();
891
+ this.ngZone = inject(NgZone);
892
+ this.changeDetectorRef = inject(ChangeDetectorRef);
893
+ this.tooltip = inject(KbqTooltipTrigger, { self: true });
894
+ /** @docs-private */
895
+ this.navbar = inject(KbqVerticalNavbar);
896
+ this.updateTooltipContent = () => {
897
+ this.tooltip.content = this.navbar.expanded
898
+ ? this.navbar.configuration.toggle.collapse
899
+ : this.navbar.configuration.toggle.expand;
835
900
  };
836
901
  this.windowToggleHandler = (event) => {
837
902
  if (event.ctrlKey && [NUMPAD_DIVIDE, SLASH].includes(event.keyCode)) {
838
- this.ngZone.run(this.toggle);
903
+ this.ngZone.run(this.navbar.toggle);
839
904
  }
840
905
  };
841
- this.placement = PopUpPlacements.Right;
842
- if (this.window) {
843
- this.ngZone.runOutsideAngular(() => {
844
- this.window.addEventListener('keydown', this.windowToggleHandler);
845
- });
846
- }
906
+ afterNextRender(() => {
907
+ this.ngZone.runOutsideAngular(() => this.window.addEventListener('keydown', this.windowToggleHandler));
908
+ });
909
+ this.tooltip.arrow = false;
910
+ this.updateTooltipContent();
911
+ this.tooltip.tooltipPlacement = PopUpPlacements.Right;
912
+ this.tooltip.visibleChange.pipe(takeUntilDestroyed()).subscribe(this.updateTooltipContent);
913
+ }
914
+ ngOnDestroy() {
915
+ this.window.removeEventListener('keydown', this.windowToggleHandler);
847
916
  }
848
- onKeydown($event) {
917
+ /** @docs-private */
918
+ keydownHandler($event) {
849
919
  if ([SPACE, ENTER].includes($event.keyCode)) {
850
920
  this.toggle();
851
921
  $event.stopPropagation();
852
922
  $event.preventDefault();
853
923
  }
854
- super.keydownHandler($event);
855
924
  }
856
- ngOnDestroy() {
857
- this.window.removeEventListener('keydown', this.windowToggleHandler);
858
- }
859
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: KbqNavbarToggle, deps: [{ token: KbqVerticalNavbar }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
860
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: KbqNavbarToggle, selector: "kbq-navbar-toggle", inputs: { content: ["kbqCollapsedTooltip", "content"] }, host: { listeners: { "keydown": "onKeydown($event)", "click": "toggle()", "touchend": "touchendHandler()" }, properties: { "class.kbq-tooltip_open": "isOpen", "class.kbq-collapsed": "!navbar.expanded", "class.kbq-expanded": "navbar.expanded" }, classAttribute: "kbq-navbar-item kbq-navbar-toggle kbq-vertical" }, queries: [{ propertyName: "customIcon", first: true, predicate: KbqIcon, descendants: true }], usesInheritance: true, ngImport: i0, template: `
861
- @if (!customIcon) {
862
- <i
863
- kbq-icon
864
- [class.kbq-bars-arrow-left_16]="navbar.expanded"
865
- [class.kbq-bars-arrow-right_16]="!navbar.expanded"
866
- ></i>
867
- }
868
-
869
- <ng-content select="[kbq-icon]" />
870
-
871
- @if (navbar.expanded) {
872
- <div class="kbq-navbar-item__title">
873
- <ng-content select="kbq-navbar-title" />
874
- </div>
875
- }
876
- `, isInline: true, styles: ["button.kbq-navbar-item,button.kbq-navbar-brand,button.kbq-navbar-toggle{background:transparent;border:none}.kbq-navbar{display:flex;flex-direction:row;justify-content:space-between;align-items:center;position:relative}.kbq-navbar-container{display:flex;flex-shrink:0;flex-direction:row;justify-content:space-between;align-items:center;position:relative}.kbq-navbar .kbq-navbar-container+.kbq-navbar-container{margin-left:var(--kbq-size-xxl)}.kbq-navbar,.kbq-vertical-navbar .kbq-vertical-navbar__container{background-color:var(--kbq-navbar-background)}.kbq-vertical-navbar .kbq-vertical-navbar__container{border-right:1px solid var(--kbq-navbar-border)}.kbq-navbar-item,.kbq-navbar-brand,.kbq-navbar-toggle{cursor:pointer}.kbq-navbar-item:not(.kbq-navbar-item_has-nested):after,.kbq-navbar-brand:not(.kbq-navbar-item_has-nested):after,.kbq-navbar-toggle:not(.kbq-navbar-item_has-nested):after{display:block;background:var(--kbq-navbar-item-default-content-background)}.kbq-navbar-item .kbq-navbar-title,.kbq-navbar-brand .kbq-navbar-title,.kbq-navbar-toggle .kbq-navbar-title{color:var(--kbq-navbar-item-default-content-text)}.kbq-navbar-item>.kbq-icon.kbq-empty,.kbq-navbar-brand>.kbq-icon.kbq-empty,.kbq-navbar-toggle>.kbq-icon.kbq-empty{color:var(--kbq-navbar-item-default-content-icon-left)!important}.kbq-navbar-item .kbq-navbar-item__arrow-icon,.kbq-navbar-brand .kbq-navbar-item__arrow-icon,.kbq-navbar-toggle .kbq-navbar-item__arrow-icon{color:var(--kbq-navbar-item-default-content-icon-right)!important}.kbq-navbar-item:hover:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand):not(.kbq-navbar-item_has-nested):after,.kbq-navbar-brand:hover:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand):not(.kbq-navbar-item_has-nested):after,.kbq-navbar-toggle:hover:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand):not(.kbq-navbar-item_has-nested):after{display:block;background:var(--kbq-navbar-item-states-hover-content-background)}.kbq-navbar-item:hover:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand) .kbq-navbar-title,.kbq-navbar-brand:hover:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand) .kbq-navbar-title,.kbq-navbar-toggle:hover:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand) .kbq-navbar-title{color:var(--kbq-navbar-item-states-hover-content-text)}.kbq-navbar-item:hover:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand)>.kbq-icon.kbq-empty,.kbq-navbar-brand:hover:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand)>.kbq-icon.kbq-empty,.kbq-navbar-toggle:hover:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand)>.kbq-icon.kbq-empty{color:var(--kbq-navbar-item-states-hover-content-icon-left)!important}.kbq-navbar-item:hover:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand) .kbq-navbar-item__arrow-icon,.kbq-navbar-brand:hover:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand) .kbq-navbar-item__arrow-icon,.kbq-navbar-toggle:hover:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand) .kbq-navbar-item__arrow-icon{color:var(--kbq-navbar-item-states-hover-content-icon-right)!important}.kbq-navbar-item.cdk-focused.cdk-keyboard-focused,.kbq-navbar-brand.cdk-focused.cdk-keyboard-focused,.kbq-navbar-toggle.cdk-focused.cdk-keyboard-focused{outline:none}.kbq-navbar-item.cdk-focused.cdk-keyboard-focused:after,.kbq-navbar-brand.cdk-focused.cdk-keyboard-focused:after,.kbq-navbar-toggle.cdk-focused.cdk-keyboard-focused:after{display:block;box-shadow:inset 0 0 0 2px var(--kbq-states-line-focus-theme)}.kbq-navbar-item:active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand):not(.kbq-navbar-item_has-nested):after,.kbq-navbar-item.kbq-active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand):not(.kbq-navbar-item_has-nested):after,.kbq-navbar-brand:active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand):not(.kbq-navbar-item_has-nested):after,.kbq-navbar-brand.kbq-active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand):not(.kbq-navbar-item_has-nested):after,.kbq-navbar-toggle:active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand):not(.kbq-navbar-item_has-nested):after,.kbq-navbar-toggle.kbq-active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand):not(.kbq-navbar-item_has-nested):after{display:block;background:var(--kbq-navbar-item-states-selected-content-background)}.kbq-navbar-item:active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand) .kbq-navbar-title,.kbq-navbar-item.kbq-active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand) .kbq-navbar-title,.kbq-navbar-brand:active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand) .kbq-navbar-title,.kbq-navbar-brand.kbq-active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand) .kbq-navbar-title,.kbq-navbar-toggle:active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand) .kbq-navbar-title,.kbq-navbar-toggle.kbq-active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand) .kbq-navbar-title{color:var(--kbq-navbar-item-states-selected-content-text)}.kbq-navbar-item:active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand)>.kbq-icon.kbq-empty,.kbq-navbar-item.kbq-active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand)>.kbq-icon.kbq-empty,.kbq-navbar-brand:active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand)>.kbq-icon.kbq-empty,.kbq-navbar-brand.kbq-active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand)>.kbq-icon.kbq-empty,.kbq-navbar-toggle:active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand)>.kbq-icon.kbq-empty,.kbq-navbar-toggle.kbq-active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand)>.kbq-icon.kbq-empty{color:var(--kbq-navbar-item-states-selected-content-icon-left)!important}.kbq-navbar-item:active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand) .kbq-navbar-item__arrow-icon,.kbq-navbar-item.kbq-active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand) .kbq-navbar-item__arrow-icon,.kbq-navbar-brand:active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand) .kbq-navbar-item__arrow-icon,.kbq-navbar-brand.kbq-active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand) .kbq-navbar-item__arrow-icon,.kbq-navbar-toggle:active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand) .kbq-navbar-item__arrow-icon,.kbq-navbar-toggle.kbq-active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand) .kbq-navbar-item__arrow-icon{color:var(--kbq-navbar-item-states-selected-content-icon-right)!important}.kbq-navbar-item.kbq-navbar-focusable-item,.kbq-navbar-brand.kbq-navbar-focusable-item,.kbq-navbar-toggle.kbq-navbar-focusable-item{outline:none}.kbq-navbar-item.kbq-disabled,.kbq-navbar-brand.kbq-disabled,.kbq-navbar-toggle.kbq-disabled{pointer-events:none;cursor:default}.kbq-navbar-item.kbq-disabled:not(.kbq-navbar-item_has-nested):after,.kbq-navbar-brand.kbq-disabled:not(.kbq-navbar-item_has-nested):after,.kbq-navbar-toggle.kbq-disabled:not(.kbq-navbar-item_has-nested):after{display:block;background:var(--kbq-navbar-item-states-disabled-content-background)}.kbq-navbar-item.kbq-disabled .kbq-navbar-title,.kbq-navbar-brand.kbq-disabled .kbq-navbar-title,.kbq-navbar-toggle.kbq-disabled .kbq-navbar-title{color:var(--kbq-navbar-item-states-disabled-content-text)}.kbq-navbar-item.kbq-disabled>.kbq-icon.kbq-empty,.kbq-navbar-brand.kbq-disabled>.kbq-icon.kbq-empty,.kbq-navbar-toggle.kbq-disabled>.kbq-icon.kbq-empty{color:var(--kbq-navbar-item-states-disabled-content-icon-left)!important}.kbq-navbar-item.kbq-disabled .kbq-navbar-item__arrow-icon,.kbq-navbar-brand.kbq-disabled .kbq-navbar-item__arrow-icon,.kbq-navbar-toggle.kbq-disabled .kbq-navbar-item__arrow-icon{color:var(--kbq-navbar-item-states-disabled-content-icon-right)!important}.kbq-navbar-brand.kbq-vertical:hover .kbq-navbar-logo{transform:scale(1.06)}.kbq-navbar-brand.kbq-horizontal:hover .kbq-navbar-logo{z-index:1}.kbq-navbar-divider{background:var(--kbq-line-contrast-less)}.kbq-navbar-title{font-size:var(--kbq-typography-text-normal-medium-font-size);font-style:var(--kbq-typography-text-normal-medium-font-style);font-weight:var(--kbq-typography-text-normal-medium-font-weight);line-height:var(--kbq-typography-text-normal-medium-line-height);font-family:var(--kbq-typography-text-normal-medium-font-family);text-transform:var(--kbq-typography-text-normal-medium-text-transform);font-feature-settings:var(--kbq-typography-text-normal-medium-font-feature-settings);letter-spacing:var(--kbq-typography-text-normal-medium-letter-spacing)}.kbq-navbar-brand .kbq-navbar-title{font-size:var(--kbq-typography-navbar-title-font-size);font-style:var(--kbq-typography-navbar-title-font-style);font-weight:var(--kbq-typography-navbar-title-font-weight);line-height:var(--kbq-typography-navbar-title-line-height);font-family:var(--kbq-typography-navbar-title-font-family);text-transform:var(--kbq-typography-navbar-title-text-transform);font-feature-settings:var(--kbq-typography-navbar-title-font-feature-settings);letter-spacing:var(--kbq-typography-navbar-title-letter-spacing)}\n"], dependencies: [{ kind: "component", type: i5.KbqIcon, selector: "[kbq-icon]", inputs: ["small", "autoColor", "kbq-icon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
925
+ /** toggles the state of the navbar */
926
+ toggle() {
927
+ this.navbar.toggle();
928
+ this.tooltip.hide();
929
+ this.changeDetectorRef.detectChanges();
930
+ }
931
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: KbqNavbarToggle, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
932
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: KbqNavbarToggle, selector: "kbq-navbar-toggle, [kbq-navbar-toggle]", host: { listeners: { "keydown": "keydownHandler($event)", "click": "toggle()" }, properties: { "class.kbq-collapsed": "!navbar.expanded", "class.kbq-expanded": "navbar.expanded" }, classAttribute: "kbq-navbar-toggle kbq-vertical" }, hostDirectives: [{ directive: i1.CdkMonitorFocus }, { directive: i2$1.KbqTooltipTrigger }], ngImport: i0, template: `
933
+ <span class="kbq-navbar-toggle__circle">
934
+ <ng-content select="[kbq-icon]">
935
+ <i
936
+ kbq-icon
937
+ [class.kbq-chevron-double-left-s_16]="navbar.expanded"
938
+ [class.kbq-chevron-double-right-s_16]="!navbar.expanded"
939
+ ></i>
940
+ </ng-content>
941
+ </span>
942
+ `, isInline: true, styles: [".kbq-navbar-toggle{position:absolute;top:var(--kbq-size-3xl);right:calc(-1 * var(--kbq-size-l));z-index:1;display:flex;justify-content:center;align-items:center;padding:var(--kbq-size-3xs);border-width:0;cursor:pointer}.kbq-navbar-toggle .kbq-navbar-toggle__circle{display:flex;justify-content:center;align-items:center;width:28px;height:28px;border-radius:50%}.kbq-navbar-toggle{outline:none;border-color:transparent;background:transparent}.kbq-navbar-toggle .kbq-navbar-toggle__circle{background:var(--kbq-background-card);box-shadow:0 3px 8px 0 var(--kbq-shadow-ambient),0 2px 8px 0 var(--kbq-shadow-key),0 0 0 1px var(--kbq-shadow-outline)}.kbq-navbar-toggle .kbq-icon{color:var(--kbq-icon-contrast-fade)}.kbq-navbar-toggle:hover .kbq-icon,.kbq-navbar-toggle:active .kbq-icon,.kbq-navbar-toggle.kbq-hover .kbq-icon,.kbq-navbar-toggle.kbq-active .kbq-icon{color:var(--kbq-states-icon-contrast-hover)}.kbq-navbar-toggle.cdk-keyboard-focused .kbq-navbar-toggle__circle{box-shadow:0 0 0 2px var(--kbq-states-line-focus-theme)}\n"], dependencies: [{ kind: "component", type: i3.KbqIcon, selector: "[kbq-icon]", inputs: ["small", "autoColor", "kbq-icon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
877
943
  }
878
944
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: KbqNavbarToggle, decorators: [{
879
945
  type: Component,
880
- args: [{ selector: 'kbq-navbar-toggle', template: `
881
- @if (!customIcon) {
882
- <i
883
- kbq-icon
884
- [class.kbq-bars-arrow-left_16]="navbar.expanded"
885
- [class.kbq-bars-arrow-right_16]="!navbar.expanded"
886
- ></i>
887
- }
888
-
889
- <ng-content select="[kbq-icon]" />
890
-
891
- @if (navbar.expanded) {
892
- <div class="kbq-navbar-item__title">
893
- <ng-content select="kbq-navbar-title" />
894
- </div>
895
- }
946
+ args: [{ selector: 'kbq-navbar-toggle, [kbq-navbar-toggle]', template: `
947
+ <span class="kbq-navbar-toggle__circle">
948
+ <ng-content select="[kbq-icon]">
949
+ <i
950
+ kbq-icon
951
+ [class.kbq-chevron-double-left-s_16]="navbar.expanded"
952
+ [class.kbq-chevron-double-right-s_16]="!navbar.expanded"
953
+ ></i>
954
+ </ng-content>
955
+ </span>
896
956
  `, host: {
897
- class: 'kbq-navbar-item kbq-navbar-toggle kbq-vertical',
898
- '[class.kbq-tooltip_open]': 'isOpen',
957
+ class: 'kbq-navbar-toggle kbq-vertical',
899
958
  '[class.kbq-collapsed]': '!navbar.expanded',
900
959
  '[class.kbq-expanded]': 'navbar.expanded',
901
- '(keydown)': 'onKeydown($event)',
902
- '(click)': 'toggle()',
903
- '(touchend)': 'touchendHandler()'
904
- }, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, styles: ["button.kbq-navbar-item,button.kbq-navbar-brand,button.kbq-navbar-toggle{background:transparent;border:none}.kbq-navbar{display:flex;flex-direction:row;justify-content:space-between;align-items:center;position:relative}.kbq-navbar-container{display:flex;flex-shrink:0;flex-direction:row;justify-content:space-between;align-items:center;position:relative}.kbq-navbar .kbq-navbar-container+.kbq-navbar-container{margin-left:var(--kbq-size-xxl)}.kbq-navbar,.kbq-vertical-navbar .kbq-vertical-navbar__container{background-color:var(--kbq-navbar-background)}.kbq-vertical-navbar .kbq-vertical-navbar__container{border-right:1px solid var(--kbq-navbar-border)}.kbq-navbar-item,.kbq-navbar-brand,.kbq-navbar-toggle{cursor:pointer}.kbq-navbar-item:not(.kbq-navbar-item_has-nested):after,.kbq-navbar-brand:not(.kbq-navbar-item_has-nested):after,.kbq-navbar-toggle:not(.kbq-navbar-item_has-nested):after{display:block;background:var(--kbq-navbar-item-default-content-background)}.kbq-navbar-item .kbq-navbar-title,.kbq-navbar-brand .kbq-navbar-title,.kbq-navbar-toggle .kbq-navbar-title{color:var(--kbq-navbar-item-default-content-text)}.kbq-navbar-item>.kbq-icon.kbq-empty,.kbq-navbar-brand>.kbq-icon.kbq-empty,.kbq-navbar-toggle>.kbq-icon.kbq-empty{color:var(--kbq-navbar-item-default-content-icon-left)!important}.kbq-navbar-item .kbq-navbar-item__arrow-icon,.kbq-navbar-brand .kbq-navbar-item__arrow-icon,.kbq-navbar-toggle .kbq-navbar-item__arrow-icon{color:var(--kbq-navbar-item-default-content-icon-right)!important}.kbq-navbar-item:hover:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand):not(.kbq-navbar-item_has-nested):after,.kbq-navbar-brand:hover:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand):not(.kbq-navbar-item_has-nested):after,.kbq-navbar-toggle:hover:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand):not(.kbq-navbar-item_has-nested):after{display:block;background:var(--kbq-navbar-item-states-hover-content-background)}.kbq-navbar-item:hover:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand) .kbq-navbar-title,.kbq-navbar-brand:hover:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand) .kbq-navbar-title,.kbq-navbar-toggle:hover:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand) .kbq-navbar-title{color:var(--kbq-navbar-item-states-hover-content-text)}.kbq-navbar-item:hover:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand)>.kbq-icon.kbq-empty,.kbq-navbar-brand:hover:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand)>.kbq-icon.kbq-empty,.kbq-navbar-toggle:hover:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand)>.kbq-icon.kbq-empty{color:var(--kbq-navbar-item-states-hover-content-icon-left)!important}.kbq-navbar-item:hover:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand) .kbq-navbar-item__arrow-icon,.kbq-navbar-brand:hover:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand) .kbq-navbar-item__arrow-icon,.kbq-navbar-toggle:hover:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand) .kbq-navbar-item__arrow-icon{color:var(--kbq-navbar-item-states-hover-content-icon-right)!important}.kbq-navbar-item.cdk-focused.cdk-keyboard-focused,.kbq-navbar-brand.cdk-focused.cdk-keyboard-focused,.kbq-navbar-toggle.cdk-focused.cdk-keyboard-focused{outline:none}.kbq-navbar-item.cdk-focused.cdk-keyboard-focused:after,.kbq-navbar-brand.cdk-focused.cdk-keyboard-focused:after,.kbq-navbar-toggle.cdk-focused.cdk-keyboard-focused:after{display:block;box-shadow:inset 0 0 0 2px var(--kbq-states-line-focus-theme)}.kbq-navbar-item:active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand):not(.kbq-navbar-item_has-nested):after,.kbq-navbar-item.kbq-active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand):not(.kbq-navbar-item_has-nested):after,.kbq-navbar-brand:active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand):not(.kbq-navbar-item_has-nested):after,.kbq-navbar-brand.kbq-active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand):not(.kbq-navbar-item_has-nested):after,.kbq-navbar-toggle:active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand):not(.kbq-navbar-item_has-nested):after,.kbq-navbar-toggle.kbq-active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand):not(.kbq-navbar-item_has-nested):after{display:block;background:var(--kbq-navbar-item-states-selected-content-background)}.kbq-navbar-item:active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand) .kbq-navbar-title,.kbq-navbar-item.kbq-active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand) .kbq-navbar-title,.kbq-navbar-brand:active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand) .kbq-navbar-title,.kbq-navbar-brand.kbq-active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand) .kbq-navbar-title,.kbq-navbar-toggle:active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand) .kbq-navbar-title,.kbq-navbar-toggle.kbq-active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand) .kbq-navbar-title{color:var(--kbq-navbar-item-states-selected-content-text)}.kbq-navbar-item:active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand)>.kbq-icon.kbq-empty,.kbq-navbar-item.kbq-active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand)>.kbq-icon.kbq-empty,.kbq-navbar-brand:active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand)>.kbq-icon.kbq-empty,.kbq-navbar-brand.kbq-active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand)>.kbq-icon.kbq-empty,.kbq-navbar-toggle:active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand)>.kbq-icon.kbq-empty,.kbq-navbar-toggle.kbq-active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand)>.kbq-icon.kbq-empty{color:var(--kbq-navbar-item-states-selected-content-icon-left)!important}.kbq-navbar-item:active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand) .kbq-navbar-item__arrow-icon,.kbq-navbar-item.kbq-active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand) .kbq-navbar-item__arrow-icon,.kbq-navbar-brand:active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand) .kbq-navbar-item__arrow-icon,.kbq-navbar-brand.kbq-active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand) .kbq-navbar-item__arrow-icon,.kbq-navbar-toggle:active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand) .kbq-navbar-item__arrow-icon,.kbq-navbar-toggle.kbq-active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand) .kbq-navbar-item__arrow-icon{color:var(--kbq-navbar-item-states-selected-content-icon-right)!important}.kbq-navbar-item.kbq-navbar-focusable-item,.kbq-navbar-brand.kbq-navbar-focusable-item,.kbq-navbar-toggle.kbq-navbar-focusable-item{outline:none}.kbq-navbar-item.kbq-disabled,.kbq-navbar-brand.kbq-disabled,.kbq-navbar-toggle.kbq-disabled{pointer-events:none;cursor:default}.kbq-navbar-item.kbq-disabled:not(.kbq-navbar-item_has-nested):after,.kbq-navbar-brand.kbq-disabled:not(.kbq-navbar-item_has-nested):after,.kbq-navbar-toggle.kbq-disabled:not(.kbq-navbar-item_has-nested):after{display:block;background:var(--kbq-navbar-item-states-disabled-content-background)}.kbq-navbar-item.kbq-disabled .kbq-navbar-title,.kbq-navbar-brand.kbq-disabled .kbq-navbar-title,.kbq-navbar-toggle.kbq-disabled .kbq-navbar-title{color:var(--kbq-navbar-item-states-disabled-content-text)}.kbq-navbar-item.kbq-disabled>.kbq-icon.kbq-empty,.kbq-navbar-brand.kbq-disabled>.kbq-icon.kbq-empty,.kbq-navbar-toggle.kbq-disabled>.kbq-icon.kbq-empty{color:var(--kbq-navbar-item-states-disabled-content-icon-left)!important}.kbq-navbar-item.kbq-disabled .kbq-navbar-item__arrow-icon,.kbq-navbar-brand.kbq-disabled .kbq-navbar-item__arrow-icon,.kbq-navbar-toggle.kbq-disabled .kbq-navbar-item__arrow-icon{color:var(--kbq-navbar-item-states-disabled-content-icon-right)!important}.kbq-navbar-brand.kbq-vertical:hover .kbq-navbar-logo{transform:scale(1.06)}.kbq-navbar-brand.kbq-horizontal:hover .kbq-navbar-logo{z-index:1}.kbq-navbar-divider{background:var(--kbq-line-contrast-less)}.kbq-navbar-title{font-size:var(--kbq-typography-text-normal-medium-font-size);font-style:var(--kbq-typography-text-normal-medium-font-style);font-weight:var(--kbq-typography-text-normal-medium-font-weight);line-height:var(--kbq-typography-text-normal-medium-line-height);font-family:var(--kbq-typography-text-normal-medium-font-family);text-transform:var(--kbq-typography-text-normal-medium-text-transform);font-feature-settings:var(--kbq-typography-text-normal-medium-font-feature-settings);letter-spacing:var(--kbq-typography-text-normal-medium-letter-spacing)}.kbq-navbar-brand .kbq-navbar-title{font-size:var(--kbq-typography-navbar-title-font-size);font-style:var(--kbq-typography-navbar-title-font-style);font-weight:var(--kbq-typography-navbar-title-font-weight);line-height:var(--kbq-typography-navbar-title-line-height);font-family:var(--kbq-typography-navbar-title-font-family);text-transform:var(--kbq-typography-navbar-title-text-transform);font-feature-settings:var(--kbq-typography-navbar-title-font-feature-settings);letter-spacing:var(--kbq-typography-navbar-title-letter-spacing)}\n"] }]
905
- }], ctorParameters: () => [{ type: KbqVerticalNavbar }, { type: i0.ChangeDetectorRef }], propDecorators: { customIcon: [{
906
- type: ContentChild,
907
- args: [KbqIcon]
908
- }], content: [{
909
- type: Input,
910
- args: ['kbqCollapsedTooltip']
911
- }] } });
960
+ '(keydown)': 'keydownHandler($event)',
961
+ '(click)': 'toggle()'
962
+ }, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, hostDirectives: [CdkMonitorFocus, KbqTooltipTrigger], styles: [".kbq-navbar-toggle{position:absolute;top:var(--kbq-size-3xl);right:calc(-1 * var(--kbq-size-l));z-index:1;display:flex;justify-content:center;align-items:center;padding:var(--kbq-size-3xs);border-width:0;cursor:pointer}.kbq-navbar-toggle .kbq-navbar-toggle__circle{display:flex;justify-content:center;align-items:center;width:28px;height:28px;border-radius:50%}.kbq-navbar-toggle{outline:none;border-color:transparent;background:transparent}.kbq-navbar-toggle .kbq-navbar-toggle__circle{background:var(--kbq-background-card);box-shadow:0 3px 8px 0 var(--kbq-shadow-ambient),0 2px 8px 0 var(--kbq-shadow-key),0 0 0 1px var(--kbq-shadow-outline)}.kbq-navbar-toggle .kbq-icon{color:var(--kbq-icon-contrast-fade)}.kbq-navbar-toggle:hover .kbq-icon,.kbq-navbar-toggle:active .kbq-icon,.kbq-navbar-toggle.kbq-hover .kbq-icon,.kbq-navbar-toggle.kbq-active .kbq-icon{color:var(--kbq-states-icon-contrast-hover)}.kbq-navbar-toggle.cdk-keyboard-focused .kbq-navbar-toggle__circle{box-shadow:0 0 0 2px var(--kbq-states-line-focus-theme)}\n"] }]
963
+ }], ctorParameters: () => [] });
912
964
 
913
965
  class KbqNavbarModule {
914
966
  /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: KbqNavbarModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
@@ -987,5 +1039,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
987
1039
  * Generated bundle index. Do not edit.
988
1040
  */
989
1041
 
990
- export { KbqFocusableComponent, KbqNavbar, KbqNavbarBento, KbqNavbarBrand, KbqNavbarContainer, KbqNavbarDivider, KbqNavbarFocusableItem, KbqNavbarItem, KbqNavbarLogo, KbqNavbarModule, KbqNavbarRectangleElement, KbqNavbarTitle, KbqNavbarToggle, KbqVerticalNavbar };
1042
+ export { KBQ_VERTICAL_NAVBAR_CONFIGURATION, KBQ_VERTICAL_NAVBAR_DEFAULT_CONFIGURATION, KbqFocusableComponent, KbqNavbar, KbqNavbarBento, KbqNavbarBrand, KbqNavbarContainer, KbqNavbarDivider, KbqNavbarFocusableItem, KbqNavbarItem, KbqNavbarLogo, KbqNavbarModule, KbqNavbarRectangleElement, KbqNavbarTitle, KbqNavbarToggle, KbqVerticalNavbar };
991
1043
  //# sourceMappingURL=koobiq-components-navbar.mjs.map