@koobiq/components 20.4.1 → 21.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/accordion/accordion-trigger.scss +3 -10
- package/accordion/accordion.scss +4 -6
- package/actions-panel/actions-panel-container.scss +45 -1
- package/alert/alert.component.scss +3 -2
- package/app-switcher/_app-switcher-theme.scss +0 -4
- package/app-switcher/app-switcher-dropdown-app.scss +3 -2
- package/app-switcher/app-switcher-dropdown-site.scss +2 -1
- package/app-switcher/{kbq-app-switcher-list-item.scss → app-switcher-list-item.scss} +18 -4
- package/app-switcher/app-switcher-tokens.scss +15 -0
- package/app-switcher/app-switcher.scss +14 -4
- package/autocomplete/autocomplete.scss +7 -6
- package/badge/badge.component.scss +5 -8
- package/breadcrumbs/breadcrumbs.scss +25 -10
- package/button/_button-base.scss +30 -7
- package/button/_button-theme.scss +16 -0
- package/button/button-group.scss +7 -0
- package/button/button-tokens.scss +0 -2
- package/button/button.scss +34 -2
- package/button-toggle/_button-toggle-theme.scss +7 -2
- package/button-toggle/button-toggle.scss +65 -15
- package/checkbox/_checkbox-theme.scss +4 -3
- package/checkbox/checkbox.scss +3 -6
- package/clamped-text/clamped-text.scss +6 -2
- package/code-block/code-block-tokens.scss +0 -224
- package/code-block/code-block.scss +20 -9
- package/content-panel/content-panel-aside.scss +3 -2
- package/content-panel/content-panel-container.scss +37 -0
- package/content-panel/content-panel.scss +4 -3
- package/core/highlight/_highlight-theme.scss +3 -1
- package/core/option/action-container.scss +2 -2
- package/core/option/action.scss +2 -1
- package/core/option/option.scss +2 -1
- package/core/pop-up/_pop-up.scss +0 -37
- package/core/selection/pseudo-checkbox/pseudo-checkbox.scss +5 -10
- package/core/styles/_core.scss +3 -0
- package/core/styles/_koobiq-theme.scss +5 -6
- package/core/styles/common/_animation.scss +44 -16
- package/core/styles/common/_groups-mixins.scss +21 -19
- package/core/styles/common/_groups.scss +4 -32
- package/core/styles/common/_index.scss +0 -2
- package/core/styles/common/_link.scss +117 -0
- package/core/styles/common/_list.scss +0 -26
- package/core/styles/common/_overlay.scss +8 -10
- package/core/styles/common/_rtl.scss +0 -14
- package/core/styles/common/_select.scss +33 -15
- package/core/styles/common/_squircle.scss +63 -0
- package/core/styles/common/_tokens.scss +0 -11
- package/core/styles/common/_vendor-prefixes.scss +0 -20
- package/core/styles/functions/_timing.scss +0 -22
- package/core/styles/theming/_scrollbar-theme.scss +6 -1
- package/core/styles/theming/_theming.scss +13 -65
- package/core/styles/typography/_index.scss +0 -1
- package/core/styles/typography/_typography.scss +0 -143
- package/core/styles/visual/_body.scss +1 -6
- package/core/styles/visual/_layout.scss +0 -12
- package/datepicker/calendar-body.scss +3 -1
- package/datepicker/calendar-header.scss +0 -1
- package/datepicker/datepicker-content.scss +33 -1
- package/datepicker/datepicker-toggle.scss +0 -38
- package/dl/dl-tokens.scss +10 -0
- package/dl/dl.scss +113 -13
- package/dropdown/_dropdown-theme.scss +4 -16
- package/dropdown/dropdown-item.scss +4 -10
- package/dropdown/dropdown.scss +2 -1
- package/empty-state/_empty-state-theme.scss +10 -4
- package/empty-state/empty-state-tokens.scss +4 -4
- package/empty-state/empty-state.scss +4 -0
- package/fesm2022/koobiq-components-accordion.mjs +347 -229
- package/fesm2022/koobiq-components-accordion.mjs.map +1 -1
- package/fesm2022/koobiq-components-actions-panel.mjs +302 -187
- package/fesm2022/koobiq-components-actions-panel.mjs.map +1 -1
- package/fesm2022/koobiq-components-alert.mjs +39 -39
- package/fesm2022/koobiq-components-alert.mjs.map +1 -1
- package/fesm2022/koobiq-components-app-switcher.mjs +677 -367
- package/fesm2022/koobiq-components-app-switcher.mjs.map +1 -1
- package/fesm2022/koobiq-components-autocomplete.mjs +620 -253
- package/fesm2022/koobiq-components-autocomplete.mjs.map +1 -1
- package/fesm2022/koobiq-components-badge.mjs +46 -48
- package/fesm2022/koobiq-components-badge.mjs.map +1 -1
- package/fesm2022/koobiq-components-breadcrumbs.mjs +221 -169
- package/fesm2022/koobiq-components-breadcrumbs.mjs.map +1 -1
- package/fesm2022/koobiq-components-button-toggle.mjs +565 -196
- package/fesm2022/koobiq-components-button-toggle.mjs.map +1 -1
- package/fesm2022/koobiq-components-button.mjs +332 -116
- package/fesm2022/koobiq-components-button.mjs.map +1 -1
- package/fesm2022/koobiq-components-checkbox.mjs +172 -132
- package/fesm2022/koobiq-components-checkbox.mjs.map +1 -1
- package/fesm2022/koobiq-components-clamped-text.mjs +165 -158
- package/fesm2022/koobiq-components-clamped-text.mjs.map +1 -1
- package/fesm2022/koobiq-components-code-block.mjs +755 -601
- package/fesm2022/koobiq-components-code-block.mjs.map +1 -1
- package/fesm2022/koobiq-components-content-panel.mjs +260 -143
- package/fesm2022/koobiq-components-content-panel.mjs.map +1 -1
- package/fesm2022/koobiq-components-core.mjs +4342 -1595
- package/fesm2022/koobiq-components-core.mjs.map +1 -1
- package/fesm2022/koobiq-components-datepicker.mjs +1713 -1606
- package/fesm2022/koobiq-components-datepicker.mjs.map +1 -1
- package/fesm2022/koobiq-components-divider.mjs +73 -36
- package/fesm2022/koobiq-components-divider.mjs.map +1 -1
- package/fesm2022/koobiq-components-dl.mjs +447 -89
- package/fesm2022/koobiq-components-dl.mjs.map +1 -1
- package/fesm2022/koobiq-components-dropdown.mjs +703 -599
- package/fesm2022/koobiq-components-dropdown.mjs.map +1 -1
- package/fesm2022/koobiq-components-dynamic-translation.mjs +20 -20
- package/fesm2022/koobiq-components-dynamic-translation.mjs.map +1 -1
- package/fesm2022/koobiq-components-ellipsis-center.mjs +46 -31
- package/fesm2022/koobiq-components-ellipsis-center.mjs.map +1 -1
- package/fesm2022/koobiq-components-empty-state.mjs +116 -60
- package/fesm2022/koobiq-components-empty-state.mjs.map +1 -1
- package/fesm2022/koobiq-components-file-upload.mjs +550 -290
- package/fesm2022/koobiq-components-file-upload.mjs.map +1 -1
- package/fesm2022/koobiq-components-filter-bar.mjs +2810 -2538
- package/fesm2022/koobiq-components-filter-bar.mjs.map +1 -1
- package/fesm2022/koobiq-components-flag.mjs +79 -24
- package/fesm2022/koobiq-components-flag.mjs.map +1 -1
- package/fesm2022/koobiq-components-form-field.mjs +389 -525
- package/fesm2022/koobiq-components-form-field.mjs.map +1 -1
- package/fesm2022/koobiq-components-icon.mjs +366 -136
- package/fesm2022/koobiq-components-icon.mjs.map +1 -1
- package/fesm2022/koobiq-components-inline-edit.mjs +429 -212
- package/fesm2022/koobiq-components-inline-edit.mjs.map +1 -1
- package/fesm2022/koobiq-components-input.mjs +601 -459
- package/fesm2022/koobiq-components-input.mjs.map +1 -1
- package/fesm2022/koobiq-components-link-deprecated.mjs +196 -0
- package/fesm2022/koobiq-components-link-deprecated.mjs.map +1 -0
- package/fesm2022/koobiq-components-link.mjs +328 -125
- package/fesm2022/koobiq-components-link.mjs.map +1 -1
- package/fesm2022/koobiq-components-list.mjs +583 -433
- package/fesm2022/koobiq-components-list.mjs.map +1 -1
- package/fesm2022/koobiq-components-loader-overlay.mjs +167 -68
- package/fesm2022/koobiq-components-loader-overlay.mjs.map +1 -1
- package/fesm2022/koobiq-components-markdown.mjs +55 -78
- package/fesm2022/koobiq-components-markdown.mjs.map +1 -1
- package/fesm2022/koobiq-components-modal.mjs +853 -475
- package/fesm2022/koobiq-components-modal.mjs.map +1 -1
- package/fesm2022/koobiq-components-navbar.mjs +895 -556
- package/fesm2022/koobiq-components-navbar.mjs.map +1 -1
- package/fesm2022/koobiq-components-notification-center.mjs +680 -310
- package/fesm2022/koobiq-components-notification-center.mjs.map +1 -1
- package/fesm2022/koobiq-components-overflow-items.mjs +46 -64
- package/fesm2022/koobiq-components-overflow-items.mjs.map +1 -1
- package/fesm2022/koobiq-components-popover.mjs +684 -285
- package/fesm2022/koobiq-components-popover.mjs.map +1 -1
- package/fesm2022/koobiq-components-progress-bar.mjs +87 -33
- package/fesm2022/koobiq-components-progress-bar.mjs.map +1 -1
- package/fesm2022/koobiq-components-progress-spinner.mjs +52 -43
- package/fesm2022/koobiq-components-progress-spinner.mjs.map +1 -1
- package/fesm2022/koobiq-components-radio.mjs +450 -231
- package/fesm2022/koobiq-components-radio.mjs.map +1 -1
- package/fesm2022/koobiq-components-resizer.mjs +127 -21
- package/fesm2022/koobiq-components-resizer.mjs.map +1 -1
- package/fesm2022/koobiq-components-scrollbar-deprecated.mjs +299 -0
- package/fesm2022/koobiq-components-scrollbar-deprecated.mjs.map +1 -0
- package/fesm2022/koobiq-components-scrollbar.mjs +745 -222
- package/fesm2022/koobiq-components-scrollbar.mjs.map +1 -1
- package/fesm2022/koobiq-components-search-expandable.mjs +288 -126
- package/fesm2022/koobiq-components-search-expandable.mjs.map +1 -1
- package/fesm2022/koobiq-components-select.mjs +883 -693
- package/fesm2022/koobiq-components-select.mjs.map +1 -1
- package/fesm2022/koobiq-components-sidebar.mjs +207 -88
- package/fesm2022/koobiq-components-sidebar.mjs.map +1 -1
- package/fesm2022/koobiq-components-sidepanel.mjs +689 -296
- package/fesm2022/koobiq-components-sidepanel.mjs.map +1 -1
- package/fesm2022/koobiq-components-skeleton.mjs +815 -41
- package/fesm2022/koobiq-components-skeleton.mjs.map +1 -1
- package/fesm2022/koobiq-components-split-button.mjs +109 -88
- package/fesm2022/koobiq-components-split-button.mjs.map +1 -1
- package/fesm2022/koobiq-components-splitter-deprecated.mjs +591 -0
- package/fesm2022/koobiq-components-splitter-deprecated.mjs.map +1 -0
- package/fesm2022/koobiq-components-splitter.mjs +890 -501
- package/fesm2022/koobiq-components-splitter.mjs.map +1 -1
- package/fesm2022/koobiq-components-table.mjs +63 -49
- package/fesm2022/koobiq-components-table.mjs.map +1 -1
- package/fesm2022/koobiq-components-tabs.mjs +1062 -603
- package/fesm2022/koobiq-components-tabs.mjs.map +1 -1
- package/fesm2022/koobiq-components-tags.mjs +886 -733
- package/fesm2022/koobiq-components-tags.mjs.map +1 -1
- package/fesm2022/koobiq-components-textarea.mjs +213 -185
- package/fesm2022/koobiq-components-textarea.mjs.map +1 -1
- package/fesm2022/koobiq-components-time-range.mjs +299 -147
- package/fesm2022/koobiq-components-time-range.mjs.map +1 -1
- package/fesm2022/koobiq-components-timepicker.mjs +233 -245
- package/fesm2022/koobiq-components-timepicker.mjs.map +1 -1
- package/fesm2022/koobiq-components-timezone.mjs +344 -142
- package/fesm2022/koobiq-components-timezone.mjs.map +1 -1
- package/fesm2022/koobiq-components-title.mjs +229 -145
- package/fesm2022/koobiq-components-title.mjs.map +1 -1
- package/fesm2022/koobiq-components-toast.mjs +486 -165
- package/fesm2022/koobiq-components-toast.mjs.map +1 -1
- package/fesm2022/koobiq-components-toggle.mjs +177 -130
- package/fesm2022/koobiq-components-toggle.mjs.map +1 -1
- package/fesm2022/koobiq-components-tooltip.mjs +657 -214
- package/fesm2022/koobiq-components-tooltip.mjs.map +1 -1
- package/fesm2022/koobiq-components-top-bar.mjs +61 -32
- package/fesm2022/koobiq-components-top-bar.mjs.map +1 -1
- package/fesm2022/koobiq-components-tree-select.mjs +719 -488
- package/fesm2022/koobiq-components-tree-select.mjs.map +1 -1
- package/fesm2022/koobiq-components-tree.mjs +1506 -558
- package/fesm2022/koobiq-components-tree.mjs.map +1 -1
- package/fesm2022/koobiq-components-username.mjs +290 -135
- package/fesm2022/koobiq-components-username.mjs.map +1 -1
- package/file-upload/dropzone.scss +31 -3
- package/file-upload/file-upload-tokens.scss +2 -22
- package/file-upload/file-upload.scss +6 -0
- package/file-upload/multiple-file-upload.component.scss +14 -12
- package/file-upload/single-file-upload.component.scss +3 -2
- package/filter-bar/filters.scss +7 -0
- package/filter-bar/pipes/base-pipe.scss +3 -3
- package/filter-bar/pipes/pipe-date.scss +8 -1
- package/flag/flag-tokens.scss +22 -0
- package/flag/flag.scss +34 -21
- package/form-field/{_fiedset-theme.scss → _fieldset-theme.scss} +1 -5
- package/form-field/_form-field-theme.scss +4 -9
- package/form-field/cleaner.scss +3 -1
- package/form-field/fieldset.scss +3 -4
- package/form-field/form-field.scss +26 -21
- package/form-field/password-toggle.scss +3 -1
- package/icon/_icon-button-theme.scss +7 -0
- package/icon/_icon-theme.scss +10 -7
- package/icon/icon-button.scss +0 -2
- package/icon/icon-tokens.scss +12 -9
- package/inline-edit/inline-edit.scss +40 -54
- package/input/input.scss +4 -0
- package/link/{_link-theme.scss → deprecated/_link-theme.scss} +11 -6
- package/link/deprecated/link-tokens.scss +27 -0
- package/link/link-tokens.scss +6 -25
- package/link/link.scss +137 -0
- package/list/list.scss +3 -2
- package/loader-overlay/_loader-overlay-theme.scss +19 -10
- package/loader-overlay/loader-overlay-tokens.scss +0 -2
- package/loader-overlay/loader-overlay.scss +7 -1
- package/markdown/_markdown-theme.scss +16 -0
- package/markdown/markdown-tokens.scss +5 -0
- package/markdown/markdown.scss +2 -1
- package/modal/_modal-animation.scss +23 -14
- package/modal/modal-tokens.scss +2 -1
- package/modal/modal.scss +35 -31
- package/navbar/_navbar-item_horizontal.scss +8 -6
- package/navbar/_navbar-item_vertical.scss +18 -6
- package/navbar/_navbar-theme.scss +9 -1
- package/navbar/navbar-brand.scss +8 -6
- package/navbar/navbar-divider.scss +1 -1
- package/navbar/navbar-item.scss +8 -9
- package/navbar/navbar-toggle.scss +3 -3
- package/navbar/navbar-tokens.scss +14 -0
- package/navbar/navbar.scss +1 -2
- package/navbar/vertical-navbar.scss +2 -2
- package/notification-center/_notification-center-theme.scss +11 -6
- package/notification-center/notification-center-tokens.scss +33 -0
- package/notification-center/notification-center.scss +58 -20
- package/notification-center/notification-item.scss +15 -6
- package/package.json +112 -81
- package/popover/popover-tokens.scss +0 -2
- package/popover/popover.scss +41 -19
- package/prebuilt-themes/theme.css +1 -1
- package/progress-bar/_progress-bar-theme.scss +20 -3
- package/progress-bar/progress-bar-tokens.scss +3 -0
- package/progress-bar/progress-bar.scss +36 -8
- package/progress-spinner/progress-spinner.scss +4 -3
- package/radio/_radio-theme.scss +21 -4
- package/radio/radio-tokens.scss +7 -3
- package/radio/radio.scss +55 -8
- package/schematics/collection.json +399 -7
- package/schematics/migrations/accordion-state-saving-default/README.md +60 -0
- package/schematics/migrations/accordion-state-saving-default/data.js +75 -0
- package/schematics/migrations/accordion-state-saving-default/index.js +60 -0
- package/schematics/migrations/accordion-state-saving-default/schema.json +15 -0
- package/schematics/migrations/actions-panel-overlay-container/README.md +35 -0
- package/schematics/migrations/actions-panel-overlay-container/data.js +47 -0
- package/schematics/migrations/actions-panel-overlay-container/index.js +54 -0
- package/schematics/migrations/actions-panel-overlay-container/schema.json +15 -0
- package/schematics/migrations/alert-signals/README.md +13 -7
- package/schematics/migrations/alert-signals/data.js +3 -0
- package/schematics/migrations/alert-signals/index.js +70 -203
- package/schematics/migrations/angular-animations-removal/README.md +46 -0
- package/schematics/migrations/angular-animations-removal/data.js +150 -0
- package/schematics/migrations/angular-animations-removal/index.js +20 -0
- package/schematics/migrations/angular-animations-removal/schema.json +15 -0
- package/schematics/migrations/app-switcher-signals/README.md +88 -0
- package/schematics/migrations/app-switcher-signals/data.js +136 -0
- package/schematics/migrations/app-switcher-signals/index.js +365 -0
- package/schematics/migrations/app-switcher-signals/schema.json +20 -0
- package/schematics/migrations/autocomplete-panel-width-auto/README.md +2 -2
- package/schematics/migrations/autocomplete-panel-width-auto/index.js +1 -1
- package/schematics/migrations/autocomplete-signals/README.md +92 -0
- package/schematics/migrations/autocomplete-signals/data.js +149 -0
- package/schematics/migrations/autocomplete-signals/index.js +706 -0
- package/schematics/migrations/autocomplete-signals/schema.json +20 -0
- package/schematics/migrations/badge-signals/README.md +77 -0
- package/schematics/migrations/badge-signals/data.js +109 -0
- package/schematics/migrations/badge-signals/index.js +693 -0
- package/schematics/migrations/badge-signals/schema.json +20 -0
- package/schematics/migrations/button-state-and-styles/README.md +129 -0
- package/schematics/migrations/button-state-and-styles/data.js +136 -0
- package/schematics/migrations/button-state-and-styles/index.js +220 -0
- package/schematics/migrations/button-state-and-styles/schema.json +20 -0
- package/schematics/migrations/button-supported-colors/README.md +73 -0
- package/schematics/migrations/button-supported-colors/data.js +106 -0
- package/schematics/migrations/button-supported-colors/index.js +260 -0
- package/schematics/migrations/button-supported-colors/schema.json +20 -0
- package/schematics/migrations/button-toggle-signals-and-aria/README.md +137 -0
- package/schematics/migrations/button-toggle-signals-and-aria/data.js +200 -0
- package/schematics/migrations/button-toggle-signals-and-aria/index.js +496 -0
- package/schematics/migrations/button-toggle-signals-and-aria/schema.json +20 -0
- package/schematics/migrations/button-truncation/README.md +110 -0
- package/schematics/migrations/button-truncation/data.js +88 -0
- package/schematics/migrations/button-truncation/index.js +269 -0
- package/schematics/migrations/button-truncation/schema.json +20 -0
- package/schematics/migrations/checkbox-signals/README.md +76 -0
- package/schematics/migrations/checkbox-signals/data.js +114 -0
- package/schematics/migrations/checkbox-signals/index.js +634 -0
- package/schematics/migrations/checkbox-signals/schema.json +20 -0
- package/schematics/migrations/clamped-text-disclosure/README.md +62 -0
- package/schematics/migrations/clamped-text-disclosure/data.js +101 -0
- package/schematics/migrations/clamped-text-disclosure/index.js +59 -0
- package/schematics/migrations/clamped-text-disclosure/schema.json +15 -0
- package/schematics/migrations/code-block-signals/README.md +84 -0
- package/schematics/migrations/code-block-signals/data.js +121 -0
- package/schematics/migrations/code-block-signals/index.js +700 -0
- package/schematics/migrations/code-block-signals/schema.json +20 -0
- package/schematics/migrations/color-signals/README.md +46 -0
- package/schematics/migrations/color-signals/data.js +131 -0
- package/schematics/migrations/color-signals/index.js +19 -0
- package/schematics/migrations/color-signals/schema.json +20 -0
- package/schematics/migrations/core-mixins-removal/README.md +20 -0
- package/schematics/migrations/core-mixins-removal/data.js +27 -0
- package/schematics/migrations/core-mixins-removal/index.js +17 -0
- package/schematics/migrations/core-mixins-removal/schema.json +15 -0
- package/schematics/migrations/css-selectors/README.md +2 -2
- package/schematics/migrations/css-selectors/index.js +1 -1
- package/schematics/migrations/datepicker-signals/README.md +24 -0
- package/schematics/migrations/datepicker-signals/data.js +49 -0
- package/schematics/migrations/datepicker-signals/index.js +17 -0
- package/schematics/migrations/datepicker-signals/schema.json +15 -0
- package/schematics/migrations/deprecated-icons/README.md +2 -2
- package/schematics/migrations/deprecated-icons/index.js +1 -1
- package/schematics/migrations/design-tokens-v4/README.md +75 -0
- package/schematics/migrations/design-tokens-v4/index.js +59 -0
- package/schematics/migrations/design-tokens-v4/schema.json +15 -0
- package/schematics/migrations/divider-signals-and-aria/README.md +47 -0
- package/schematics/migrations/divider-signals-and-aria/data.js +62 -0
- package/schematics/migrations/divider-signals-and-aria/index.js +211 -0
- package/schematics/migrations/divider-signals-and-aria/schema.json +15 -0
- package/schematics/migrations/dl-attribute-coercion/README.md +59 -0
- package/schematics/migrations/dl-attribute-coercion/data.js +85 -0
- package/schematics/migrations/dl-attribute-coercion/index.js +161 -0
- package/schematics/migrations/dl-attribute-coercion/schema.json +15 -0
- package/schematics/migrations/dl-standalone-names/README.md +49 -0
- package/schematics/migrations/dl-standalone-names/data.js +44 -0
- package/schematics/migrations/dl-standalone-names/index.js +321 -0
- package/schematics/migrations/dl-standalone-names/schema.json +20 -0
- package/schematics/migrations/dropdown-demote-overlay/README.md +137 -0
- package/schematics/migrations/dropdown-demote-overlay/data.js +84 -0
- package/schematics/migrations/dropdown-demote-overlay/index.js +288 -0
- package/schematics/migrations/dropdown-demote-overlay/schema.json +20 -0
- package/schematics/migrations/dropdown-signals/README.md +83 -0
- package/schematics/migrations/dropdown-signals/data.js +152 -0
- package/schematics/migrations/dropdown-signals/index.js +19 -0
- package/schematics/migrations/dropdown-signals/schema.json +20 -0
- package/schematics/migrations/empty-state-error-color/README.md +84 -0
- package/schematics/migrations/empty-state-error-color/data.js +85 -0
- package/schematics/migrations/empty-state-error-color/index.js +71 -0
- package/schematics/migrations/empty-state-error-color/schema.json +15 -0
- package/schematics/migrations/empty-state-size-attr/README.md +2 -2
- package/schematics/migrations/empty-state-size-attr/index.js +1 -1
- package/schematics/migrations/file-upload-cva-and-primitives/README.md +70 -0
- package/schematics/migrations/file-upload-cva-and-primitives/data.js +97 -0
- package/schematics/migrations/file-upload-cva-and-primitives/index.js +60 -0
- package/schematics/migrations/file-upload-cva-and-primitives/schema.json +15 -0
- package/schematics/migrations/file-upload-deprecated-outputs/README.md +90 -0
- package/schematics/migrations/file-upload-deprecated-outputs/data.js +20 -0
- package/schematics/migrations/file-upload-deprecated-outputs/index.js +70 -0
- package/schematics/migrations/file-upload-deprecated-outputs/schema.json +20 -0
- package/schematics/migrations/filter-bar-rename-action/README.md +183 -0
- package/schematics/migrations/filter-bar-rename-action/data.js +151 -0
- package/schematics/migrations/filter-bar-rename-action/index.js +177 -0
- package/schematics/migrations/filter-bar-rename-action/schema.json +20 -0
- package/schematics/migrations/filter-bar-signals/README.md +27 -16
- package/schematics/migrations/filter-bar-signals/data.js +1 -2
- package/schematics/migrations/filter-bar-signals/index.js +100 -195
- package/schematics/migrations/filter-bar-state-saving-default/README.md +53 -0
- package/schematics/migrations/filter-bar-state-saving-default/data.js +87 -0
- package/schematics/migrations/filter-bar-state-saving-default/index.js +61 -0
- package/schematics/migrations/filter-bar-state-saving-default/schema.json +15 -0
- package/schematics/migrations/flag-inner-html/README.md +67 -0
- package/schematics/migrations/flag-inner-html/data.js +58 -0
- package/schematics/migrations/flag-inner-html/index.js +61 -0
- package/schematics/migrations/flag-inner-html/schema.json +15 -0
- package/schematics/migrations/form-field-signals/README.md +125 -0
- package/schematics/migrations/form-field-signals/data.js +288 -0
- package/schematics/migrations/form-field-signals/index.js +382 -0
- package/schematics/migrations/form-field-signals/schema.json +20 -0
- package/schematics/migrations/icon-semantics-and-api/README.md +65 -0
- package/schematics/migrations/icon-semantics-and-api/data.js +97 -0
- package/schematics/migrations/icon-semantics-and-api/index.js +64 -0
- package/schematics/migrations/icon-semantics-and-api/schema.json +15 -0
- package/schematics/migrations/icons-replacement/README.md +5 -5
- package/schematics/migrations/icons-replacement/index.js +1 -1
- package/schematics/migrations/inline-edit-a11y-and-types/README.md +82 -0
- package/schematics/migrations/inline-edit-a11y-and-types/data.js +117 -0
- package/schematics/migrations/inline-edit-a11y-and-types/index.js +97 -0
- package/schematics/migrations/inline-edit-a11y-and-types/schema.json +20 -0
- package/schematics/migrations/input-number-surface/README.md +140 -0
- package/schematics/migrations/input-number-surface/data.js +135 -0
- package/schematics/migrations/input-number-surface/index.js +292 -0
- package/schematics/migrations/input-number-surface/schema.json +20 -0
- package/schematics/migrations/input-signals/README.md +20 -0
- package/schematics/migrations/input-signals/data.js +30 -0
- package/schematics/migrations/input-signals/index.js +17 -0
- package/schematics/migrations/input-signals/schema.json +15 -0
- package/schematics/migrations/link-deprecated-path/README.md +144 -0
- package/schematics/migrations/link-deprecated-path/index.js +19 -0
- package/schematics/migrations/link-deprecated-path/schema.json +20 -0
- package/schematics/migrations/link-signals/README.md +71 -0
- package/schematics/migrations/link-signals/data.js +116 -0
- package/schematics/migrations/link-signals/index.js +415 -0
- package/schematics/migrations/link-signals/schema.json +20 -0
- package/schematics/migrations/list-signals/README.md +22 -0
- package/schematics/migrations/list-signals/data.js +35 -0
- package/schematics/migrations/list-signals/index.js +17 -0
- package/schematics/migrations/list-signals/schema.json +15 -0
- package/schematics/migrations/list-tree-multiple-input/README.md +105 -0
- package/schematics/migrations/list-tree-multiple-input/data.js +74 -0
- package/schematics/migrations/list-tree-multiple-input/index.js +221 -0
- package/schematics/migrations/list-tree-multiple-input/schema.json +20 -0
- package/schematics/migrations/loader-overlay-signals/README.md +62 -0
- package/schematics/migrations/loader-overlay-signals/data.js +101 -0
- package/schematics/migrations/loader-overlay-signals/index.js +697 -0
- package/schematics/migrations/loader-overlay-signals/schema.json +20 -0
- package/schematics/migrations/loader-overlay-size-attr/README.md +2 -2
- package/schematics/migrations/loader-overlay-size-attr/index.js +1 -1
- package/schematics/migrations/locale-configuration-providers/README.md +163 -0
- package/schematics/migrations/locale-configuration-providers/data.js +257 -0
- package/schematics/migrations/locale-configuration-providers/index.js +294 -0
- package/schematics/migrations/locale-configuration-providers/schema.json +20 -0
- package/schematics/migrations/mandatory-peer-dependencies/README.md +70 -0
- package/schematics/migrations/mandatory-peer-dependencies/index.js +42 -0
- package/schematics/migrations/mandatory-peer-dependencies/schema.json +15 -0
- package/schematics/migrations/markdown-signals/README.md +58 -0
- package/schematics/migrations/markdown-signals/data.js +79 -0
- package/schematics/migrations/markdown-signals/index.js +639 -0
- package/schematics/migrations/markdown-signals/schema.json +20 -0
- package/schematics/migrations/modal-dialog-semantics/README.md +106 -0
- package/schematics/migrations/modal-dialog-semantics/data.js +110 -0
- package/schematics/migrations/modal-dialog-semantics/index.js +58 -0
- package/schematics/migrations/modal-dialog-semantics/schema.json +15 -0
- package/schematics/migrations/modal-signals/README.md +88 -0
- package/schematics/migrations/modal-signals/data.js +132 -0
- package/schematics/migrations/modal-signals/index.js +19 -0
- package/schematics/migrations/modal-signals/schema.json +20 -0
- package/schematics/migrations/navbar-signals-and-aria/README.md +111 -0
- package/schematics/migrations/navbar-signals-and-aria/data.js +198 -0
- package/schematics/migrations/navbar-signals-and-aria/index.js +568 -0
- package/schematics/migrations/navbar-signals-and-aria/schema.json +20 -0
- package/schematics/migrations/new-icons-pack/README.md +10 -10
- package/schematics/migrations/new-icons-pack/index.js +1 -1
- package/schematics/migrations/notification-center-signals/README.md +67 -0
- package/schematics/migrations/notification-center-signals/data.js +66 -0
- package/schematics/migrations/notification-center-signals/index.js +61 -0
- package/schematics/migrations/notification-center-signals/schema.json +15 -0
- package/schematics/migrations/option-signals/README.md +37 -0
- package/schematics/migrations/option-signals/data.js +86 -0
- package/schematics/migrations/option-signals/index.js +19 -0
- package/schematics/migrations/option-signals/schema.json +20 -0
- package/schematics/migrations/popover-leave-delay/README.md +51 -0
- package/schematics/migrations/popover-leave-delay/data.js +61 -0
- package/schematics/migrations/popover-leave-delay/index.js +54 -0
- package/schematics/migrations/popover-leave-delay/schema.json +15 -0
- package/schematics/migrations/progress-bar-percentage-and-aria/README.md +54 -0
- package/schematics/migrations/progress-bar-percentage-and-aria/data.js +76 -0
- package/schematics/migrations/progress-bar-percentage-and-aria/index.js +58 -0
- package/schematics/migrations/progress-bar-percentage-and-aria/schema.json +15 -0
- package/schematics/migrations/progress-spinner-signals/README.md +72 -0
- package/schematics/migrations/progress-spinner-signals/data.js +83 -0
- package/schematics/migrations/progress-spinner-signals/index.js +694 -0
- package/schematics/migrations/progress-spinner-signals/schema.json +20 -0
- package/schematics/migrations/query-list-signals/README.md +32 -0
- package/schematics/migrations/query-list-signals/data.js +70 -0
- package/schematics/migrations/query-list-signals/index.js +17 -0
- package/schematics/migrations/query-list-signals/schema.json +15 -0
- package/schematics/migrations/radio-signals-and-aria/README.md +82 -0
- package/schematics/migrations/radio-signals-and-aria/data.js +163 -0
- package/schematics/migrations/radio-signals-and-aria/index.js +39 -0
- package/schematics/migrations/radio-signals-and-aria/schema.json +20 -0
- package/schematics/migrations/read-state-dwell-handlers/README.md +125 -0
- package/schematics/migrations/read-state-dwell-handlers/data.js +45 -0
- package/schematics/migrations/read-state-dwell-handlers/index.js +215 -0
- package/schematics/migrations/read-state-dwell-handlers/schema.json +20 -0
- package/schematics/migrations/scrollbar-deprecated-path/README.md +128 -0
- package/schematics/migrations/scrollbar-deprecated-path/index.js +20 -0
- package/schematics/migrations/scrollbar-deprecated-path/schema.json +20 -0
- package/schematics/migrations/select-signal-inputs/README.md +61 -0
- package/schematics/migrations/select-signal-inputs/data.js +99 -0
- package/schematics/migrations/select-signal-inputs/index.js +57 -0
- package/schematics/migrations/select-signal-inputs/schema.json +15 -0
- package/schematics/migrations/sidepanel-non-modal-behavior/README.md +57 -0
- package/schematics/migrations/sidepanel-non-modal-behavior/data.js +111 -0
- package/schematics/migrations/sidepanel-non-modal-behavior/index.js +57 -0
- package/schematics/migrations/sidepanel-non-modal-behavior/schema.json +15 -0
- package/schematics/migrations/signal-inputs-subclasses/README.md +28 -0
- package/schematics/migrations/signal-inputs-subclasses/data.js +69 -0
- package/schematics/migrations/signal-inputs-subclasses/index.js +17 -0
- package/schematics/migrations/signal-inputs-subclasses/schema.json +15 -0
- package/schematics/migrations/split-button-optional-disabled/README.md +47 -0
- package/schematics/migrations/split-button-optional-disabled/data.js +53 -0
- package/schematics/migrations/split-button-optional-disabled/index.js +57 -0
- package/schematics/migrations/split-button-optional-disabled/schema.json +15 -0
- package/schematics/migrations/splitter-deprecated-path/README.md +136 -0
- package/schematics/migrations/splitter-deprecated-path/index.js +20 -0
- package/schematics/migrations/splitter-deprecated-path/schema.json +20 -0
- package/schematics/migrations/state-saving-default/README.md +67 -0
- package/schematics/migrations/state-saving-default/data.js +88 -0
- package/schematics/migrations/state-saving-default/index.js +62 -0
- package/schematics/migrations/state-saving-default/schema.json +15 -0
- package/schematics/migrations/table-cell-content/README.md +55 -0
- package/schematics/migrations/table-cell-content/data.js +66 -0
- package/schematics/migrations/table-cell-content/index.js +66 -0
- package/schematics/migrations/table-cell-content/schema.json +15 -0
- package/schematics/migrations/tabs-signals-and-aria/README.md +93 -0
- package/schematics/migrations/tabs-signals-and-aria/data.js +139 -0
- package/schematics/migrations/tabs-signals-and-aria/index.js +65 -0
- package/schematics/migrations/tabs-signals-and-aria/schema.json +15 -0
- package/schematics/migrations/tag-list-cleaner/README.md +58 -0
- package/schematics/migrations/tag-list-cleaner/data.js +42 -0
- package/schematics/migrations/tag-list-cleaner/index.js +196 -0
- package/schematics/migrations/tag-list-cleaner/schema.json +20 -0
- package/schematics/migrations/tag-slots/README.md +41 -0
- package/schematics/migrations/tag-slots/index.js +190 -0
- package/schematics/migrations/tag-slots/schema.json +20 -0
- package/schematics/migrations/tags-signals/README.md +85 -0
- package/schematics/migrations/tags-signals/data.js +103 -0
- package/schematics/migrations/tags-signals/index.js +673 -0
- package/schematics/migrations/tags-signals/schema.json +20 -0
- package/schematics/migrations/textarea-signals/README.md +72 -0
- package/schematics/migrations/textarea-signals/data.js +121 -0
- package/schematics/migrations/textarea-signals/index.js +379 -0
- package/schematics/migrations/textarea-signals/schema.json +20 -0
- package/schematics/migrations/time-range-title-for/README.md +164 -0
- package/schematics/migrations/time-range-title-for/data.js +139 -0
- package/schematics/migrations/time-range-title-for/index.js +163 -0
- package/schematics/migrations/time-range-title-for/schema.json +20 -0
- package/schematics/migrations/timepicker-signals/README.md +78 -0
- package/schematics/migrations/timepicker-signals/data.js +82 -0
- package/schematics/migrations/timepicker-signals/index.js +709 -0
- package/schematics/migrations/timepicker-signals/schema.json +20 -0
- package/schematics/migrations/timezone-grouping-utils/README.md +73 -0
- package/schematics/migrations/timezone-grouping-utils/data.js +101 -0
- package/schematics/migrations/timezone-grouping-utils/index.js +64 -0
- package/schematics/migrations/timezone-grouping-utils/schema.json +15 -0
- package/schematics/migrations/title-encapsulation/README.md +49 -0
- package/schematics/migrations/title-encapsulation/data.js +69 -0
- package/schematics/migrations/title-encapsulation/index.js +57 -0
- package/schematics/migrations/title-encapsulation/schema.json +15 -0
- package/schematics/migrations/toast-stack-and-defaults/README.md +102 -0
- package/schematics/migrations/toast-stack-and-defaults/data.js +79 -0
- package/schematics/migrations/toast-stack-and-defaults/index.js +53 -0
- package/schematics/migrations/toast-stack-and-defaults/schema.json +15 -0
- package/schematics/migrations/tooltip-pointer-events-and-types/README.md +53 -0
- package/schematics/migrations/tooltip-pointer-events-and-types/data.js +89 -0
- package/schematics/migrations/tooltip-pointer-events-and-types/index.js +60 -0
- package/schematics/migrations/tooltip-pointer-events-and-types/schema.json +15 -0
- package/schematics/migrations/top-bar-container-selectors/README.md +111 -0
- package/schematics/migrations/top-bar-container-selectors/data.js +56 -0
- package/schematics/migrations/top-bar-container-selectors/index.js +84 -0
- package/schematics/migrations/top-bar-container-selectors/schema.json +20 -0
- package/schematics/migrations/tree-select-signals/README.md +61 -0
- package/schematics/migrations/tree-select-signals/data.js +106 -0
- package/schematics/migrations/tree-select-signals/index.js +58 -0
- package/schematics/migrations/tree-select-signals/schema.json +15 -0
- package/schematics/migrations/tree-signals/README.md +82 -0
- package/schematics/migrations/tree-signals/data.js +123 -0
- package/schematics/migrations/tree-signals/index.js +54 -0
- package/schematics/migrations/tree-signals/schema.json +15 -0
- package/schematics/migrations/tree-state-saving-default/README.md +66 -0
- package/schematics/migrations/tree-state-saving-default/data.js +78 -0
- package/schematics/migrations/tree-state-saving-default/index.js +60 -0
- package/schematics/migrations/tree-state-saving-default/schema.json +15 -0
- package/schematics/migrations/username-pipe-injection/README.md +59 -0
- package/schematics/migrations/username-pipe-injection/data.js +78 -0
- package/schematics/migrations/username-pipe-injection/index.js +58 -0
- package/schematics/migrations/username-pipe-injection/schema.json +15 -0
- package/schematics/migrations/v20-upgrade/README.md +36 -16
- package/schematics/migrations/v20-upgrade/data.js +124 -77
- package/schematics/migrations/v20-upgrade/index.js +6 -213
- package/schematics/migrations/v21-upgrade/README.md +271 -0
- package/schematics/migrations/v21-upgrade/data.js +1371 -0
- package/schematics/migrations/v21-upgrade/index.js +94 -0
- package/schematics/migrations/v21-upgrade/schema.json +20 -0
- package/schematics/migrations/zoneless-change-detection/README.md +30 -0
- package/schematics/migrations/zoneless-change-detection/data.js +29 -0
- package/schematics/migrations/zoneless-change-detection/index.js +20 -0
- package/schematics/migrations/zoneless-change-detection/schema.json +15 -0
- package/schematics/migrations.json +392 -2
- package/schematics/ng-add/index.js +515 -14
- package/schematics/ng-add/schema.json +15 -0
- package/schematics/utils/deprecated-path-migration.js +61 -0
- package/schematics/utils/package-config.js +9 -105
- package/scrollbar/{_scrollbar-component-theme.scss → deprecated/_scrollbar-component-theme.scss} +1 -1
- package/scrollbar/{scrollbar.component.scss → deprecated/scrollbar.component.scss} +1 -1
- package/scrollbar/native-scrollbar.scss +68 -0
- package/scrollbar/scrollbar-tokens.scss +13 -22
- package/scrollbar/scrollbar-track.scss +94 -0
- package/scrollbar/scrollbar-viewport.scss +33 -0
- package/scrollbar/scrollbar.scss +24 -0
- package/search-expandable/search-expandable-tokens.scss +4 -0
- package/search-expandable/search-expandable.scss +4 -2
- package/select/_select-theme.scss +3 -16
- package/select/select.scss +0 -6
- package/sidebar/sidebar.scss +20 -0
- package/sidepanel/_sidepanel-theme.scss +1 -1
- package/sidepanel/sidepanel-tokens.scss +7 -1
- package/sidepanel/sidepanel.scss +41 -5
- package/skeleton/skeleton-presets.scss +350 -0
- package/skeleton/skeleton-tokens.scss +127 -0
- package/skeleton/skeleton.scss +53 -45
- package/split-button/_split-button-theme.scss +4 -4
- package/split-button/split-button.scss +2 -6
- package/splitter/{_splitter-theme.scss → deprecated/_splitter-theme.scss} +1 -1
- package/splitter/deprecated/splitter.scss +51 -0
- package/splitter/splitter-tokens.scss +19 -0
- package/splitter/splitter.scss +148 -28
- package/table/_table-theme.scss +13 -12
- package/table/table-tokens.scss +8 -0
- package/table/table.scss +47 -22
- package/tabs/_tabs-common.scss +14 -14
- package/tabs/_tabs-theme.scss +4 -5
- package/tabs/tab-body.scss +49 -1
- package/tabs/tab-header.scss +2 -1
- package/tags/tag-list.scss +4 -0
- package/tags/tag.scss +19 -1
- package/time-range/time-range.scss +9 -0
- package/timezone/timezone-option.component.scss +4 -7
- package/timezone/timezone-select.component.scss +3 -0
- package/toast/_toast-theme.scss +1 -4
- package/toast/toast-container.component.scss +19 -13
- package/toast/toast-tokens.scss +12 -6
- package/toast/toast.component.scss +42 -19
- package/toggle/_toggle-theme.scss +4 -10
- package/toggle/toggle.scss +67 -26
- package/tooltip/_tooltip-theme.scss +7 -1
- package/tooltip/tooltip-tokens.scss +1 -2
- package/tooltip/tooltip.scss +55 -9
- package/top-bar/top-bar-tokens.scss +13 -2
- package/top-bar/top-bar.scss +24 -19
- package/tree/_tree-theme.scss +0 -1
- package/tree/toggle.scss +5 -9
- package/tree/tree-option.scss +2 -4
- package/tree/tree-tokens.scss +2 -1
- package/tree/tree.scss +3 -5
- package/tree-select/_tree-select-theme.scss +4 -15
- package/tree-select/tree-select-tokens.scss +16 -0
- package/tree-select/tree-select.scss +0 -6
- package/{accordion/index.d.ts → types/koobiq-components-accordion.d.ts} +102 -84
- package/{actions-panel/index.d.ts → types/koobiq-components-actions-panel.d.ts} +44 -59
- package/{alert/index.d.ts → types/koobiq-components-alert.d.ts} +8 -3
- package/types/koobiq-components-app-switcher.d.ts +406 -0
- package/types/koobiq-components-autocomplete.d.ts +443 -0
- package/{badge/index.d.ts → types/koobiq-components-badge.d.ts} +25 -20
- package/{breadcrumbs/index.d.ts → types/koobiq-components-breadcrumbs.d.ts} +97 -46
- package/types/koobiq-components-button-toggle.d.ts +340 -0
- package/types/koobiq-components-button.d.ts +296 -0
- package/types/koobiq-components-checkbox.d.ts +172 -0
- package/types/koobiq-components-clamped-text.d.ts +184 -0
- package/{code-block/index.d.ts → types/koobiq-components-code-block.d.ts} +114 -79
- package/{content-panel/index.d.ts → types/koobiq-components-content-panel.d.ts} +81 -25
- package/{core/index.d.ts → types/koobiq-components-core.d.ts} +2827 -865
- package/{datepicker/index.d.ts → types/koobiq-components-datepicker.d.ts} +161 -116
- package/types/koobiq-components-divider.d.ts +43 -0
- package/types/koobiq-components-dl.d.ts +235 -0
- package/{dropdown/index.d.ts → types/koobiq-components-dropdown.d.ts} +245 -239
- package/types/koobiq-components-ellipsis-center.d.ts +85 -0
- package/types/koobiq-components-empty-state.d.ts +106 -0
- package/{file-upload/index.d.ts → types/koobiq-components-file-upload.d.ts} +214 -107
- package/{filter-bar/index.d.ts → types/koobiq-components-filter-bar.d.ts} +410 -495
- package/types/koobiq-components-flag.d.ts +68 -0
- package/{form-field/index.d.ts → types/koobiq-components-form-field.d.ts} +167 -191
- package/types/koobiq-components-icon.d.ts +333 -0
- package/{inline-edit/index.d.ts → types/koobiq-components-inline-edit.d.ts} +109 -46
- package/types/koobiq-components-input.d.ts +477 -0
- package/types/koobiq-components-link-deprecated.d.ts +101 -0
- package/types/koobiq-components-link.d.ts +176 -0
- package/{list/index.d.ts → types/koobiq-components-list.d.ts} +162 -99
- package/types/koobiq-components-loader-overlay.d.ts +101 -0
- package/{markdown/index.d.ts → types/koobiq-components-markdown.d.ts} +16 -24
- package/types/koobiq-components-modal.d.ts +666 -0
- package/types/koobiq-components-navbar.d.ts +569 -0
- package/types/koobiq-components-notification-center.d.ts +500 -0
- package/{overflow-items/index.d.ts → types/koobiq-components-overflow-items.d.ts} +8 -22
- package/types/koobiq-components-popover.d.ts +468 -0
- package/types/koobiq-components-progress-bar.d.ts +67 -0
- package/{progress-spinner/index.d.ts → types/koobiq-components-progress-spinner.d.ts} +33 -10
- package/types/koobiq-components-radio.d.ts +294 -0
- package/{resizer/index.d.ts → types/koobiq-components-resizer.d.ts} +37 -2
- package/{scrollbar/index.d.ts → types/koobiq-components-scrollbar-deprecated.d.ts} +18 -1
- package/types/koobiq-components-scrollbar.d.ts +154 -0
- package/types/koobiq-components-search-expandable.d.ts +164 -0
- package/{select/index.d.ts → types/koobiq-components-select.d.ts} +360 -167
- package/types/koobiq-components-sidebar.d.ts +152 -0
- package/types/koobiq-components-sidepanel.d.ts +436 -0
- package/types/koobiq-components-skeleton.d.ts +234 -0
- package/types/koobiq-components-split-button.d.ts +65 -0
- package/{splitter/index.d.ts → types/koobiq-components-splitter-deprecated.d.ts} +44 -1
- package/types/koobiq-components-splitter.d.ts +406 -0
- package/types/koobiq-components-table.d.ts +44 -0
- package/types/koobiq-components-tabs.d.ts +888 -0
- package/{tags/index.d.ts → types/koobiq-components-tags.d.ts} +249 -133
- package/types/koobiq-components-textarea.d.ts +178 -0
- package/{time-range/index.d.ts → types/koobiq-components-time-range.d.ts} +135 -62
- package/types/koobiq-components-timepicker.d.ts +223 -0
- package/types/koobiq-components-timezone.d.ts +266 -0
- package/types/koobiq-components-title.d.ts +184 -0
- package/types/koobiq-components-toast.d.ts +289 -0
- package/types/koobiq-components-toggle.d.ts +121 -0
- package/types/koobiq-components-tooltip.d.ts +610 -0
- package/types/koobiq-components-top-bar.d.ts +61 -0
- package/types/koobiq-components-tree-select.d.ts +667 -0
- package/types/koobiq-components-tree.d.ts +1290 -0
- package/types/koobiq-components-username.d.ts +340 -0
- package/username/_username-theme.scss +35 -0
- package/username/username.scss +10 -34
- package/app-switcher/index.d.ts +0 -276
- package/autocomplete/index.d.ts +0 -286
- package/button/index.d.ts +0 -153
- package/button-toggle/index.d.ts +0 -162
- package/checkbox/index.d.ts +0 -163
- package/clamped-text/index.d.ts +0 -146
- package/core/styles/_tokens.scss +0 -7
- package/core/styles/common/_clearfix.scss +0 -13
- package/core/styles/common/_popup.scss +0 -6
- package/core/styles/functions/_index.scss +0 -3
- package/core/styles/functions/_number.scss +0 -60
- package/core/styles/functions/_string.scss +0 -18
- package/core/styles/theming/scrollbar-tokens.scss +0 -25
- package/core/styles/typography/_typography-utils.scss +0 -84
- package/divider/index.d.ts +0 -20
- package/dl/index.d.ts +0 -45
- package/ellipsis-center/index.d.ts +0 -71
- package/empty-state/index.d.ts +0 -45
- package/flag/index.d.ts +0 -44
- package/icon/index.d.ts +0 -200
- package/input/index.d.ts +0 -354
- package/link/index.d.ts +0 -56
- package/loader-overlay/index.d.ts +0 -57
- package/modal/index.d.ts +0 -339
- package/navbar/index.d.ts +0 -372
- package/notification-center/index.d.ts +0 -323
- package/popover/index.d.ts +0 -182
- package/prebuilt-themes/dark-theme.css +0 -1
- package/prebuilt-themes/light-theme.css +0 -1
- package/progress-bar/index.d.ts +0 -31
- package/radio/index.d.ts +0 -203
- package/search-expandable/index.d.ts +0 -101
- package/sidebar/index.d.ts +0 -94
- package/sidepanel/index.d.ts +0 -272
- package/skeleton/index.d.ts +0 -26
- package/split-button/index.d.ts +0 -46
- package/table/index.d.ts +0 -25
- package/tabs/index.d.ts +0 -677
- package/textarea/index.d.ts +0 -138
- package/timepicker/index.d.ts +0 -197
- package/timezone/index.d.ts +0 -125
- package/title/index.d.ts +0 -139
- package/toast/index.d.ts +0 -187
- package/toggle/index.d.ts +0 -104
- package/tooltip/index.d.ts +0 -335
- package/top-bar/index.d.ts +0 -33
- package/tree/index.d.ts +0 -802
- package/tree-select/index.d.ts +0 -475
- package/username/index.d.ts +0 -194
- /package/{dynamic-translation/index.d.ts → types/koobiq-components-dynamic-translation.d.ts} +0 -0
- /package/{index.d.ts → types/koobiq-components.d.ts} +0 -0
|
@@ -1,47 +1,61 @@
|
|
|
1
|
-
import { coerceBooleanProperty } from '@angular/cdk/coercion';
|
|
2
1
|
import { ContentObserver } from '@angular/cdk/observers';
|
|
3
2
|
import { SharedResizeObserver } from '@angular/cdk/observers/private';
|
|
4
|
-
import { Platform, PlatformModule } from '@angular/cdk/platform';
|
|
3
|
+
import { Platform, _getFocusedElementPierceShadowDom, PlatformModule } from '@angular/cdk/platform';
|
|
5
4
|
import { DOCUMENT } from '@angular/common';
|
|
6
5
|
import * as i0 from '@angular/core';
|
|
7
|
-
import { Directive, inject, ElementRef, ChangeDetectorRef,
|
|
6
|
+
import { Directive, inject, ElementRef, ChangeDetectorRef, Injector, DestroyRef, contentChild, signal, input, booleanAttribute, afterNextRender, computed, contentChildren, effect, ViewEncapsulation, ChangeDetectionStrategy, Component, Renderer2, forwardRef, model, NgZone, untracked, InjectionToken, Injectable, NgModule } from '@angular/core';
|
|
8
7
|
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
9
|
-
import
|
|
10
|
-
import
|
|
8
|
+
import * as i2 from '@koobiq/components/core';
|
|
9
|
+
import { kbqInjectNativeElement, KBQ_WINDOW, kbqAnimationsDisabled, PopUpTriggers, PopUpPlacements, ENTER, SPACE, DOWN_ARROW, RIGHT_ARROW, kbqQueryListFrom, FocusKeyManager, kbqLeaveTabOrderOnTabOut, isVerticalMovement, isHorizontalMovement, TAB, LEFT_ARROW, KbqOverlayLayerExclude, ruRULocaleData, kbqLocaleConfigurationOverrideProvider, KbqLocaleOverridesDirective, UP_ARROW, NUMPAD_DIVIDE, SLASH } from '@koobiq/components/core';
|
|
10
|
+
import * as i1 from '@koobiq/components/tooltip';
|
|
11
11
|
import { KbqTooltipTrigger, KbqToolTipModule } from '@koobiq/components/tooltip';
|
|
12
|
-
import { Subject, map, distinctUntilChanged, from, EMPTY, merge } from 'rxjs';
|
|
13
|
-
import {
|
|
14
|
-
import * as i1 from '@angular/cdk/a11y';
|
|
12
|
+
import { Subject, map, distinctUntilChanged, from, EMPTY, merge, fromEvent } from 'rxjs';
|
|
13
|
+
import { debounceTime, startWith } from 'rxjs/operators';
|
|
14
|
+
import * as i1$1 from '@angular/cdk/a11y';
|
|
15
15
|
import { FocusMonitor, CdkMonitorFocus, A11yModule } from '@angular/cdk/a11y';
|
|
16
16
|
import { KbqButton, KbqButtonCssStyler } from '@koobiq/components/button';
|
|
17
|
-
import { KbqDropdownTrigger
|
|
17
|
+
import { KbqDropdownTrigger } from '@koobiq/components/dropdown';
|
|
18
18
|
import { KbqFormField } from '@koobiq/components/form-field';
|
|
19
19
|
import * as i3 from '@koobiq/components/icon';
|
|
20
20
|
import { KbqIcon, KbqIconModule } from '@koobiq/components/icon';
|
|
21
21
|
|
|
22
|
+
/**
|
|
23
|
+
* Outer width of an element: its border box plus horizontal margins.
|
|
24
|
+
*
|
|
25
|
+
* Measured with `getBoundingClientRect()` rather than `getComputedStyle().width`, which resolves to the used
|
|
26
|
+
* content-box width whatever `box-sizing` says: `.kbq-navbar-item` is `border-box` with horizontal padding, and
|
|
27
|
+
* the navbar compares these sums against its own border box.
|
|
28
|
+
*/
|
|
29
|
+
const getOuterWidth = (element, window) => {
|
|
30
|
+
const { marginLeft, marginRight } = window.getComputedStyle(element);
|
|
31
|
+
return [marginLeft, marginRight].reduce((acc, item) => acc + (parseFloat(item) || 0), element.getBoundingClientRect().width);
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* Elements that already turn Enter/Space into a `click` on their own. Items authored on top of them must not
|
|
36
|
+
* get a synthetic activation on the same key, or the handler runs twice.
|
|
37
|
+
*/
|
|
38
|
+
const NATIVELY_ACTIONABLE_TAGS = new Set(['A', 'BUTTON', 'INPUT', 'SELECT', 'TEXTAREA']);
|
|
39
|
+
/** Switches an item to its collapsed, icon-only presentation. */
|
|
40
|
+
const COLLAPSED_ITEM_CLASS = 'kbq-navbar-item_collapsed';
|
|
22
41
|
class KbqNavbarLogo {
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
}
|
|
26
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.30", ngImport: i0, type: KbqNavbarLogo, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
27
|
-
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.30", type: KbqNavbarLogo, isStandalone: true, selector: "kbq-navbar-logo, [kbq-navbar-logo]", host: { listeners: { "mouseenter": "hovered.next(true)", "mouseleave": "hovered.next(false)" }, classAttribute: "kbq-navbar-logo" }, ngImport: i0 }); }
|
|
42
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: KbqNavbarLogo, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
43
|
+
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.25", type: KbqNavbarLogo, isStandalone: true, selector: "kbq-navbar-logo, [kbq-navbar-logo]", host: { classAttribute: "kbq-navbar-logo" }, ngImport: i0 }); }
|
|
28
44
|
}
|
|
29
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
45
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: KbqNavbarLogo, decorators: [{
|
|
30
46
|
type: Directive,
|
|
31
47
|
args: [{
|
|
32
48
|
selector: 'kbq-navbar-logo, [kbq-navbar-logo]',
|
|
33
49
|
host: {
|
|
34
|
-
class: 'kbq-navbar-logo'
|
|
35
|
-
'(mouseenter)': 'hovered.next(true)',
|
|
36
|
-
'(mouseleave)': 'hovered.next(false)'
|
|
50
|
+
class: 'kbq-navbar-logo'
|
|
37
51
|
}
|
|
38
52
|
}]
|
|
39
53
|
}] });
|
|
40
54
|
class KbqNavbarBento {
|
|
41
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
42
|
-
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
55
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: KbqNavbarBento, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
56
|
+
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.25", type: KbqNavbarBento, isStandalone: true, selector: "kbq-navbar-item[bento], [kbq-navbar-item][bento]", host: { classAttribute: "kbq-navbar-bento" }, ngImport: i0 }); }
|
|
43
57
|
}
|
|
44
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
58
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: KbqNavbarBento, decorators: [{
|
|
45
59
|
type: Directive,
|
|
46
60
|
args: [{
|
|
47
61
|
selector: 'kbq-navbar-item[bento], [kbq-navbar-item][bento]',
|
|
@@ -50,13 +64,29 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.30", ngImpo
|
|
|
50
64
|
}
|
|
51
65
|
}]
|
|
52
66
|
}] });
|
|
67
|
+
/** Marks content to be projected after the title of a navbar item. */
|
|
68
|
+
class KbqNavbarItemSuffix {
|
|
69
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: KbqNavbarItemSuffix, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
70
|
+
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.25", type: KbqNavbarItemSuffix, isStandalone: true, selector: "[kbqNavbarItemSuffix]", host: { classAttribute: "kbq-navbar-item-suffix" }, ngImport: i0 }); }
|
|
71
|
+
}
|
|
72
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: KbqNavbarItemSuffix, decorators: [{
|
|
73
|
+
type: Directive,
|
|
74
|
+
args: [{
|
|
75
|
+
selector: '[kbqNavbarItemSuffix]',
|
|
76
|
+
host: {
|
|
77
|
+
class: 'kbq-navbar-item-suffix'
|
|
78
|
+
}
|
|
79
|
+
}]
|
|
80
|
+
}] });
|
|
53
81
|
class KbqNavbarTitle {
|
|
54
82
|
constructor() {
|
|
83
|
+
/** @docs-private */
|
|
55
84
|
this.isBrowser = inject(Platform).isBrowser;
|
|
85
|
+
/** @docs-private */
|
|
56
86
|
this.nativeElement = kbqInjectNativeElement();
|
|
57
87
|
this.window = inject(KBQ_WINDOW);
|
|
58
|
-
this.hovered = new Subject();
|
|
59
88
|
}
|
|
89
|
+
/** Text content of the title element. */
|
|
60
90
|
get text() {
|
|
61
91
|
return this.nativeElement.textContent || '';
|
|
62
92
|
}
|
|
@@ -79,96 +109,73 @@ class KbqNavbarTitle {
|
|
|
79
109
|
return false;
|
|
80
110
|
return this.nativeElement.scrollHeight > this.nativeElement.clientHeight;
|
|
81
111
|
}
|
|
82
|
-
/**
|
|
83
|
-
* Outer width of the title: its border box plus horizontal margins.
|
|
84
|
-
*
|
|
85
|
-
* Measured with `getBoundingClientRect()` rather than `getComputedStyle().width`, which resolves
|
|
86
|
-
* to the used content-box width whatever `box-sizing` says and would drop the title's padding.
|
|
87
|
-
*/
|
|
112
|
+
/** Outer width of the title: its border box plus horizontal margins. */
|
|
88
113
|
getOuterElementWidth() {
|
|
89
|
-
|
|
90
|
-
return 0;
|
|
91
|
-
const { marginLeft, marginRight } = this.window.getComputedStyle(this.nativeElement);
|
|
92
|
-
return [marginLeft, marginRight].reduce((acc, item) => acc + (parseFloat(item) || 0), this.nativeElement.getBoundingClientRect().width);
|
|
114
|
+
return this.isBrowser ? getOuterWidth(this.nativeElement, this.window) : 0;
|
|
93
115
|
}
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
}
|
|
97
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.30", ngImport: i0, type: KbqNavbarTitle, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
98
|
-
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.30", type: KbqNavbarTitle, isStandalone: true, selector: "kbq-navbar-title, [kbq-navbar-title]", host: { listeners: { "mouseenter": "hovered.next(true)", "mouseleave": "hovered.next(false)" }, classAttribute: "kbq-navbar-title" }, ngImport: i0 }); }
|
|
116
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: KbqNavbarTitle, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
117
|
+
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.25", type: KbqNavbarTitle, isStandalone: true, selector: "kbq-navbar-title, [kbq-navbar-title]", host: { classAttribute: "kbq-navbar-title" }, ngImport: i0 }); }
|
|
99
118
|
}
|
|
100
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
119
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: KbqNavbarTitle, decorators: [{
|
|
101
120
|
type: Directive,
|
|
102
121
|
args: [{
|
|
103
122
|
selector: 'kbq-navbar-title, [kbq-navbar-title]',
|
|
104
123
|
host: {
|
|
105
|
-
class: 'kbq-navbar-title'
|
|
106
|
-
'(mouseenter)': 'hovered.next(true)',
|
|
107
|
-
'(mouseleave)': 'hovered.next(false)'
|
|
124
|
+
class: 'kbq-navbar-title'
|
|
108
125
|
}
|
|
109
126
|
}]
|
|
110
127
|
}] });
|
|
111
128
|
class KbqNavbarDivider {
|
|
112
|
-
|
|
113
|
-
|
|
129
|
+
constructor() {
|
|
130
|
+
// Optional: the divider only picks up a rectangle element when both directives are imported, which is
|
|
131
|
+
// what `KbqNavbarModule` does but a hand-rolled standalone import need not.
|
|
132
|
+
this.rectangleElement = inject(KbqNavbarRectangleElement, { optional: true });
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* The separator runs across the navbar, so it is oriented the other way round: a horizontal navbar gets a
|
|
136
|
+
* vertical rule and vice versa.
|
|
137
|
+
*/
|
|
138
|
+
get ariaOrientation() {
|
|
139
|
+
return this.rectangleElement?.isHorizontal() ? 'vertical' : 'horizontal';
|
|
140
|
+
}
|
|
141
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: KbqNavbarDivider, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
142
|
+
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.25", type: KbqNavbarDivider, isStandalone: true, selector: "kbq-navbar-divider", host: { attributes: { "role": "separator" }, properties: { "attr.aria-orientation": "ariaOrientation" }, classAttribute: "kbq-navbar-divider" }, ngImport: i0 }); }
|
|
114
143
|
}
|
|
115
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
144
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: KbqNavbarDivider, decorators: [{
|
|
116
145
|
type: Directive,
|
|
117
146
|
args: [{
|
|
118
147
|
selector: 'kbq-navbar-divider',
|
|
119
148
|
host: {
|
|
120
|
-
class: 'kbq-navbar-divider'
|
|
149
|
+
class: 'kbq-navbar-divider',
|
|
150
|
+
role: 'separator',
|
|
151
|
+
'[attr.aria-orientation]': 'ariaOrientation'
|
|
121
152
|
}
|
|
122
153
|
}]
|
|
123
154
|
}] });
|
|
124
155
|
class KbqNavbarFocusableItem {
|
|
125
|
-
|
|
126
|
-
this.elementRef = inject(ElementRef);
|
|
127
|
-
this.changeDetector = inject(ChangeDetectorRef);
|
|
128
|
-
this.focusMonitor = inject(FocusMonitor);
|
|
129
|
-
this.ngZone = inject(NgZone);
|
|
130
|
-
this.title = contentChild(KbqNavbarTitle, ...(ngDevMode ? [{ debugName: "title" }] : []));
|
|
131
|
-
this.button = contentChild(KbqButton, ...(ngDevMode ? [{ debugName: "button" }] : []));
|
|
132
|
-
this.formField = contentChild(KbqFormField, ...(ngDevMode ? [{ debugName: "formField" }] : []));
|
|
133
|
-
this.onFocus = new Subject();
|
|
134
|
-
this.onBlur = new Subject();
|
|
135
|
-
this._hasFocus = false;
|
|
136
|
-
this._disabled = false;
|
|
137
|
-
/**
|
|
138
|
-
* Keeps an element with nothing to interact with out of the roving focus order, without announcing or
|
|
139
|
-
* styling it as disabled.
|
|
140
|
-
*
|
|
141
|
-
* @internal
|
|
142
|
-
*/
|
|
143
|
-
this.decorative = false;
|
|
144
|
-
}
|
|
156
|
+
/** Interactive element projected into the item, if any. */
|
|
145
157
|
get nestedElement() {
|
|
146
158
|
return this.button() || this.formField();
|
|
147
159
|
}
|
|
160
|
+
/** @docs-private */
|
|
148
161
|
get tooltip() {
|
|
149
162
|
return this._tooltip;
|
|
150
163
|
}
|
|
164
|
+
/** @docs-private */
|
|
151
165
|
get hasFocus() {
|
|
152
|
-
return !!this.nestedElement?.hasFocus || this.
|
|
166
|
+
return !!this.nestedElement?.hasFocus || this.hasFocusState();
|
|
153
167
|
}
|
|
154
168
|
set hasFocus(value) {
|
|
155
|
-
this.
|
|
169
|
+
this.hasFocusState.set(value);
|
|
156
170
|
}
|
|
157
|
-
/**
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
* Also reads `true` for a decorative element, which the key manager has to skip just the same.
|
|
161
|
-
*/
|
|
162
|
-
// TODO: Skipped for migration because:
|
|
163
|
-
// Accessor inputs cannot be migrated as they are too complex.
|
|
171
|
+
/** Whether the item is disabled. Also `true` for a decorative element, which the key manager skips as well. */
|
|
172
|
+
// An accessor, not a signal: `FocusKeyManager` reads it as a boolean through its default skip predicate, where a
|
|
173
|
+
// signal would always read truthy — the manager would skip every item and arrow navigation would stop working.
|
|
164
174
|
get disabled() {
|
|
165
|
-
return this.
|
|
175
|
+
return this.disabledState() || this.decorative();
|
|
166
176
|
}
|
|
167
177
|
set disabled(value) {
|
|
168
|
-
|
|
169
|
-
this._disabled = value;
|
|
170
|
-
this.changeDetector.markForCheck();
|
|
171
|
-
}
|
|
178
|
+
this.disabledState.set(value);
|
|
172
179
|
}
|
|
173
180
|
/**
|
|
174
181
|
* Whether the item was disabled through `disabled`, as opposed to being decorative.
|
|
@@ -176,92 +183,148 @@ class KbqNavbarFocusableItem {
|
|
|
176
183
|
* @internal
|
|
177
184
|
*/
|
|
178
185
|
get explicitlyDisabled() {
|
|
179
|
-
return this.
|
|
186
|
+
return this.disabledState();
|
|
180
187
|
}
|
|
188
|
+
/**
|
|
189
|
+
* Items are never in the tab order themselves: the navbar host owns the single tab stop and moves focus
|
|
190
|
+
* between items with the arrow keys (roving tabindex).
|
|
191
|
+
*/
|
|
181
192
|
get tabIndex() {
|
|
182
193
|
return -1;
|
|
183
194
|
}
|
|
195
|
+
ngOnChanges(changes) {
|
|
196
|
+
// A bound input is handed to its member; unbound, it leaves what code wrote.
|
|
197
|
+
if (changes['disabledInput']) {
|
|
198
|
+
const disabled = this.disabledInput();
|
|
199
|
+
if (disabled !== undefined)
|
|
200
|
+
this.disabled = disabled;
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
constructor() {
|
|
204
|
+
this.elementRef = inject(ElementRef);
|
|
205
|
+
this.changeDetector = inject(ChangeDetectorRef);
|
|
206
|
+
this.focusMonitor = inject(FocusMonitor);
|
|
207
|
+
this.injector = inject(Injector);
|
|
208
|
+
this.destroyRef = inject(DestroyRef);
|
|
209
|
+
/** @docs-private */
|
|
210
|
+
this.title = contentChild(KbqNavbarTitle, ...(ngDevMode ? [{ debugName: "title" }] : /* istanbul ignore next */ []));
|
|
211
|
+
/** @docs-private */
|
|
212
|
+
this.button = contentChild(KbqButton, ...(ngDevMode ? [{ debugName: "button" }] : /* istanbul ignore next */ []));
|
|
213
|
+
/** @docs-private */
|
|
214
|
+
this.formField = contentChild(KbqFormField, ...(ngDevMode ? [{ debugName: "formField" }] : /* istanbul ignore next */ []));
|
|
215
|
+
/** @docs-private */
|
|
216
|
+
this.onFocus = new Subject();
|
|
217
|
+
/** @docs-private */
|
|
218
|
+
this.onBlur = new Subject();
|
|
219
|
+
this.hasFocusState = signal(false, ...(ngDevMode ? [{ debugName: "hasFocusState" }] : /* istanbul ignore next */ []));
|
|
220
|
+
this.disabledState = signal(false, ...(ngDevMode ? [{ debugName: "disabledState" }] : /* istanbul ignore next */ []));
|
|
221
|
+
/**
|
|
222
|
+
* Keeps an element with nothing to interact with out of the roving focus order, without announcing or
|
|
223
|
+
* styling it as disabled.
|
|
224
|
+
*
|
|
225
|
+
* @internal
|
|
226
|
+
*/
|
|
227
|
+
this.decorative = signal(false, ...(ngDevMode ? [{ debugName: "decorative" }] : /* istanbul ignore next */ []));
|
|
228
|
+
/** @docs-private */
|
|
229
|
+
this.disabledInput = input(undefined, { ...(ngDevMode ? { debugName: "disabledInput" } : /* istanbul ignore next */ {}), alias: 'disabled',
|
|
230
|
+
transform: booleanAttribute });
|
|
231
|
+
this.destroyRef.onDestroy(() => {
|
|
232
|
+
this.onFocus.complete();
|
|
233
|
+
this.onBlur.complete();
|
|
234
|
+
});
|
|
235
|
+
}
|
|
236
|
+
/** @docs-private */
|
|
184
237
|
ngAfterViewInit() {
|
|
185
238
|
this.focusMonitor.monitor(this.elementRef);
|
|
186
239
|
}
|
|
240
|
+
/** @docs-private */
|
|
187
241
|
ngAfterContentInit() {
|
|
188
242
|
const button = this.button();
|
|
189
243
|
if (button) {
|
|
190
244
|
button.tabIndex = -1;
|
|
191
245
|
}
|
|
192
246
|
}
|
|
247
|
+
/** @docs-private */
|
|
193
248
|
ngOnDestroy() {
|
|
194
249
|
this.focusMonitor.stopMonitoring(this.elementRef);
|
|
195
250
|
}
|
|
251
|
+
/** @docs-private */
|
|
196
252
|
setTooltip(value) {
|
|
197
253
|
this._tooltip = value;
|
|
198
254
|
}
|
|
255
|
+
/** @docs-private */
|
|
199
256
|
onFocusHandler() {
|
|
200
257
|
if (this.disabled || this.hasFocus) {
|
|
201
258
|
return;
|
|
202
259
|
}
|
|
203
260
|
this.onFocus.next({ item: this });
|
|
204
261
|
this.hasFocus = true;
|
|
205
|
-
this.changeDetector.markForCheck();
|
|
206
262
|
this.elementRef.nativeElement.focus();
|
|
207
263
|
}
|
|
264
|
+
/** @docs-private */
|
|
208
265
|
focus(origin) {
|
|
209
266
|
if (this.disabled || this.hasFocus) {
|
|
210
267
|
return;
|
|
211
268
|
}
|
|
212
|
-
|
|
213
|
-
|
|
269
|
+
// A pointer focuses what it lands on by itself; moving the focus for it would surface a focus ring and a
|
|
270
|
+
// tooltip. Focus set by code still has to reach the item, or the host keeps it while this item is active.
|
|
271
|
+
const movesFocus = origin !== 'mouse' && origin !== 'touch';
|
|
272
|
+
if (movesFocus) {
|
|
273
|
+
this.focusMonitor.focusVia(this.elementRef, origin ?? 'program');
|
|
214
274
|
}
|
|
215
275
|
if (this.nestedElement) {
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
this.nestedElement.focus();
|
|
223
|
-
}
|
|
276
|
+
// KbqButton tracks focus via FocusMonitor; KbqFormField just delegates to control.focus.
|
|
277
|
+
if (origin === 'keyboard' && 'focusViaKeyboard' in this.nestedElement) {
|
|
278
|
+
this.nestedElement.focusViaKeyboard();
|
|
279
|
+
}
|
|
280
|
+
else if (movesFocus) {
|
|
281
|
+
this.nestedElement.focus();
|
|
224
282
|
}
|
|
225
283
|
this.changeDetector.markForCheck();
|
|
226
284
|
return;
|
|
227
285
|
}
|
|
228
|
-
if (
|
|
229
|
-
|
|
286
|
+
if (movesFocus) {
|
|
287
|
+
if (origin === 'keyboard')
|
|
288
|
+
this.tooltip?.show();
|
|
230
289
|
this.onFocusHandler();
|
|
231
290
|
}
|
|
232
291
|
}
|
|
292
|
+
/** @docs-private */
|
|
233
293
|
blur() {
|
|
234
|
-
//
|
|
235
|
-
//
|
|
236
|
-
// that
|
|
237
|
-
//
|
|
238
|
-
this.
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
});
|
|
250
|
-
});
|
|
294
|
+
// Deferred until the focus has settled: an item hands its focus to its nested button or form field, which
|
|
295
|
+
// registers its focus only after this blur, and the item gets no focus event of its own afterwards. A blur
|
|
296
|
+
// reported before that would read as no item being focused and clear the navbar's active item. An item
|
|
297
|
+
// blurred by its own destruction has nothing to update.
|
|
298
|
+
if (this.destroyRef.destroyed)
|
|
299
|
+
return;
|
|
300
|
+
afterNextRender(() => {
|
|
301
|
+
// Focus can be back by the time this runs (a blur and a focus in the same task): then nothing was lost.
|
|
302
|
+
if (_getFocusedElementPierceShadowDom() === this.elementRef.nativeElement)
|
|
303
|
+
return;
|
|
304
|
+
this.hasFocusState.set(false);
|
|
305
|
+
this.tooltip?.hide();
|
|
306
|
+
if (this.button()?.hasFocus) {
|
|
307
|
+
return;
|
|
308
|
+
}
|
|
309
|
+
this.onBlur.next({ item: this });
|
|
310
|
+
}, { injector: this.injector });
|
|
251
311
|
}
|
|
312
|
+
/** @docs-private */
|
|
252
313
|
getLabel() {
|
|
253
314
|
return this.title()?.text || '';
|
|
254
315
|
}
|
|
255
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
256
|
-
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "
|
|
316
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: KbqNavbarFocusableItem, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
317
|
+
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "21.2.25", type: KbqNavbarFocusableItem, isStandalone: true, selector: "kbq-navbar-item, [kbq-navbar-item], kbq-navbar-brand, [kbq-navbar-brand], kbq-navbar-toggle", inputs: { disabledInput: { classPropertyName: "disabledInput", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "focus": "onFocusHandler()", "blur": "blur()" }, properties: { "attr.tabindex": "tabIndex", "attr.aria-disabled": "explicitlyDisabled || null", "class.kbq-navbar-item_has-nested": "!!nestedElement", "class.kbq-disabled": "explicitlyDisabled" }, classAttribute: "kbq-navbar-focusable-item" }, queries: [{ propertyName: "title", first: true, predicate: KbqNavbarTitle, descendants: true, isSignal: true }, { propertyName: "button", first: true, predicate: KbqButton, descendants: true, isSignal: true }, { propertyName: "formField", first: true, predicate: KbqFormField, descendants: true, isSignal: true }], usesOnChanges: true, ngImport: i0 }); }
|
|
257
318
|
}
|
|
258
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
319
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: KbqNavbarFocusableItem, decorators: [{
|
|
259
320
|
type: Directive,
|
|
260
321
|
args: [{
|
|
261
322
|
selector: 'kbq-navbar-item, [kbq-navbar-item], kbq-navbar-brand, [kbq-navbar-brand], kbq-navbar-toggle',
|
|
262
323
|
host: {
|
|
263
324
|
'[attr.tabindex]': 'tabIndex',
|
|
264
|
-
|
|
325
|
+
// `aria-disabled` and not the `disabled` content attribute: these are custom elements, not form
|
|
326
|
+
// controls, so the browser and assistive technology both ignore `disabled` on them.
|
|
327
|
+
'[attr.aria-disabled]': 'explicitlyDisabled || null',
|
|
265
328
|
class: 'kbq-navbar-focusable-item',
|
|
266
329
|
'[class.kbq-navbar-item_has-nested]': '!!nestedElement',
|
|
267
330
|
'[class.kbq-disabled]': 'explicitlyDisabled',
|
|
@@ -269,250 +332,342 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.30", ngImpo
|
|
|
269
332
|
'(blur)': 'blur()'
|
|
270
333
|
}
|
|
271
334
|
}]
|
|
272
|
-
}], propDecorators: { title: [{ type: i0.ContentChild, args: [i0.forwardRef(() => KbqNavbarTitle), { isSignal: true }] }], button: [{ type: i0.ContentChild, args: [i0.forwardRef(() => KbqButton), { isSignal: true }] }], formField: [{ type: i0.ContentChild, args: [i0.forwardRef(() => KbqFormField), { isSignal: true }] }],
|
|
273
|
-
type: Input,
|
|
274
|
-
args: [{ transform: booleanAttribute }]
|
|
275
|
-
}] } });
|
|
335
|
+
}], ctorParameters: () => [], propDecorators: { title: [{ type: i0.ContentChild, args: [i0.forwardRef(() => KbqNavbarTitle), { isSignal: true }] }], button: [{ type: i0.ContentChild, args: [i0.forwardRef(() => KbqButton), { isSignal: true }] }], formField: [{ type: i0.ContentChild, args: [i0.forwardRef(() => KbqFormField), { isSignal: true }] }], disabledInput: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }] } });
|
|
276
336
|
class KbqNavbarRectangleElement {
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
this.
|
|
283
|
-
this._horizontal = false;
|
|
284
|
-
this._vertical = true;
|
|
285
|
-
this.button = contentChild(KbqButtonCssStyler, ...(ngDevMode ? [{ debugName: "button" }] : []));
|
|
286
|
-
}
|
|
287
|
-
get horizontal() {
|
|
288
|
-
return this._horizontal;
|
|
337
|
+
/**
|
|
338
|
+
* Orientation of the navbar this element belongs to. Written by the ambient `KbqNavbar` /
|
|
339
|
+
* `KbqVerticalNavbar`; the element itself only reads it.
|
|
340
|
+
*/
|
|
341
|
+
get orientation() {
|
|
342
|
+
return this._orientation();
|
|
289
343
|
}
|
|
290
|
-
set
|
|
291
|
-
if (this.
|
|
344
|
+
set orientation(value) {
|
|
345
|
+
if (this._orientation() === value)
|
|
292
346
|
return;
|
|
293
|
-
this.
|
|
294
|
-
this._vertical = !value;
|
|
347
|
+
this._orientation.set(value);
|
|
295
348
|
this.state.next();
|
|
296
|
-
this.changeDetectorRef.markForCheck();
|
|
297
|
-
}
|
|
298
|
-
get vertical() {
|
|
299
|
-
return this._vertical;
|
|
300
|
-
}
|
|
301
|
-
set vertical(value) {
|
|
302
|
-
if (this._vertical === value)
|
|
303
|
-
return;
|
|
304
|
-
this._vertical = value;
|
|
305
|
-
this._horizontal = !value;
|
|
306
|
-
this.state.next();
|
|
307
|
-
this.changeDetectorRef.markForCheck();
|
|
308
349
|
}
|
|
350
|
+
/** Whether the element is rendered in its collapsed (icon-only) form. @docs-private */
|
|
309
351
|
get collapsed() {
|
|
310
|
-
return this._collapsed;
|
|
352
|
+
return !!this._collapsed();
|
|
311
353
|
}
|
|
312
354
|
set collapsed(value) {
|
|
313
|
-
if (this._collapsed === value)
|
|
355
|
+
if (this._collapsed() === value)
|
|
314
356
|
return;
|
|
315
|
-
this._collapsed
|
|
357
|
+
this._collapsed.set(value);
|
|
316
358
|
this.state.next();
|
|
317
359
|
}
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
360
|
+
constructor() {
|
|
361
|
+
/** @docs-private */
|
|
362
|
+
this.isBrowser = inject(Platform).isBrowser;
|
|
363
|
+
/** @docs-private */
|
|
364
|
+
this.nativeElement = kbqInjectNativeElement();
|
|
365
|
+
this.window = inject(KBQ_WINDOW);
|
|
366
|
+
this.destroyRef = inject(DestroyRef);
|
|
367
|
+
/** Emits whenever the orientation or the collapsed state of the element changes. @docs-private */
|
|
368
|
+
this.state = new Subject();
|
|
369
|
+
this._orientation = signal('vertical', ...(ngDevMode ? [{ debugName: "_orientation" }] : /* istanbul ignore next */ []));
|
|
370
|
+
/** Whether the ambient navbar is horizontal. @docs-private */
|
|
371
|
+
this.isHorizontal = computed(() => this._orientation() === 'horizontal', ...(ngDevMode ? [{ debugName: "isHorizontal" }] : /* istanbul ignore next */ []));
|
|
372
|
+
/** Whether the ambient navbar is vertical. @docs-private */
|
|
373
|
+
this.isVertical = computed(() => this._orientation() === 'vertical', ...(ngDevMode ? [{ debugName: "isVertical" }] : /* istanbul ignore next */ []));
|
|
374
|
+
// Deliberately left `undefined`: it is not equal to either boolean, so the guard below always lets the
|
|
375
|
+
// first assignment through. Initializing it to `false` would swallow the initial `collapsed = false` of a
|
|
376
|
+
// navbar that starts expanded, and with it the `updateDropdown()` that rides on that emission.
|
|
377
|
+
this._collapsed = signal(undefined, ...(ngDevMode ? [{ debugName: "_collapsed" }] : /* istanbul ignore next */ []));
|
|
378
|
+
/** Signal mirror of `collapsed`, for `computed()` consumers. @docs-private */
|
|
379
|
+
this.collapsedState = computed(() => !!this._collapsed(), ...(ngDevMode ? [{ debugName: "collapsedState" }] : /* istanbul ignore next */ []));
|
|
380
|
+
/** @docs-private */
|
|
381
|
+
this.button = contentChild(KbqButtonCssStyler, ...(ngDevMode ? [{ debugName: "button" }] : /* istanbul ignore next */ []));
|
|
382
|
+
this.destroyRef.onDestroy(() => this.state.complete());
|
|
383
|
+
}
|
|
384
|
+
/** Outer width of the element: its border box plus horizontal margins. */
|
|
327
385
|
getOuterElementWidth() {
|
|
328
|
-
|
|
329
|
-
return 0;
|
|
330
|
-
const { marginLeft, marginRight } = this.window.getComputedStyle(this.nativeElement);
|
|
331
|
-
return [marginLeft, marginRight].reduce((acc, item) => acc + (parseFloat(item) || 0), this.nativeElement.getBoundingClientRect().width);
|
|
386
|
+
return this.isBrowser ? getOuterWidth(this.nativeElement, this.window) : 0;
|
|
332
387
|
}
|
|
333
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
334
|
-
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "
|
|
388
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: KbqNavbarRectangleElement, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
389
|
+
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "21.2.25", type: KbqNavbarRectangleElement, isStandalone: true, selector: "kbq-navbar-item, [kbq-navbar-item], kbq-navbar-divider, kbq-navbar-brand, [kbq-navbar-brand]", host: { properties: { "class.kbq-vertical": "isVertical()", "class.kbq-horizontal": "isHorizontal()", "class.kbq-expanded": "isVertical() && !collapsed", "class.kbq-collapsed": "isVertical() && collapsed" } }, queries: [{ propertyName: "button", first: true, predicate: KbqButtonCssStyler, descendants: true, isSignal: true }], ngImport: i0 }); }
|
|
335
390
|
}
|
|
336
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
391
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: KbqNavbarRectangleElement, decorators: [{
|
|
337
392
|
type: Directive,
|
|
338
393
|
args: [{
|
|
339
394
|
selector: 'kbq-navbar-item, [kbq-navbar-item], kbq-navbar-divider, kbq-navbar-brand, [kbq-navbar-brand]',
|
|
340
395
|
host: {
|
|
341
|
-
'[class.kbq-vertical]': '
|
|
342
|
-
'[class.kbq-horizontal]': '
|
|
343
|
-
'[class.kbq-expanded]': '
|
|
344
|
-
'[class.kbq-collapsed]': '
|
|
396
|
+
'[class.kbq-vertical]': 'isVertical()',
|
|
397
|
+
'[class.kbq-horizontal]': 'isHorizontal()',
|
|
398
|
+
'[class.kbq-expanded]': 'isVertical() && !collapsed',
|
|
399
|
+
'[class.kbq-collapsed]': 'isVertical() && collapsed'
|
|
345
400
|
}
|
|
346
401
|
}]
|
|
347
|
-
}], propDecorators: { button: [{ type: i0.ContentChild, args: [i0.forwardRef(() => KbqButtonCssStyler), { isSignal: true }] }] } });
|
|
348
|
-
class KbqNavbarItem
|
|
349
|
-
|
|
350
|
-
// Accessor inputs cannot be migrated as they are too complex.
|
|
351
|
-
get collapsedText() {
|
|
352
|
-
return this._collapsedText;
|
|
353
|
-
}
|
|
354
|
-
set collapsedText(value) {
|
|
355
|
-
this._collapsedText = value;
|
|
356
|
-
this.updateTooltip();
|
|
357
|
-
}
|
|
358
|
-
// TODO: Skipped for migration because:
|
|
359
|
-
// Accessor inputs cannot be migrated as they are too complex.
|
|
360
|
-
get trigger() {
|
|
361
|
-
return this._trigger;
|
|
362
|
-
}
|
|
363
|
-
set trigger(value) {
|
|
364
|
-
if (value) {
|
|
365
|
-
this._trigger = value;
|
|
366
|
-
this.initListeners();
|
|
367
|
-
}
|
|
368
|
-
}
|
|
402
|
+
}], ctorParameters: () => [], propDecorators: { button: [{ type: i0.ContentChild, args: [i0.forwardRef(() => KbqButtonCssStyler), { isSignal: true }] }] } });
|
|
403
|
+
class KbqNavbarItem {
|
|
404
|
+
/** Collapses the item regardless of what the ambient navbar decided. */
|
|
369
405
|
set collapsed(value) {
|
|
370
|
-
|
|
371
|
-
this._collapsed = value;
|
|
372
|
-
this.updateTooltip();
|
|
373
|
-
}
|
|
374
|
-
}
|
|
375
|
-
// todo in future need rename to 'collapsed'
|
|
376
|
-
get isCollapsed() {
|
|
377
|
-
return this._collapsed ?? this.rectangleElement.collapsed;
|
|
406
|
+
this.ownCollapsed.set(value);
|
|
378
407
|
}
|
|
408
|
+
/** @docs-private */
|
|
379
409
|
get croppedText() {
|
|
380
410
|
const croppedTitleText = this.title()?.isOverflown ? this.titleText : '';
|
|
381
411
|
return `${croppedTitleText}`;
|
|
382
412
|
}
|
|
383
|
-
|
|
384
|
-
// Accessor inputs cannot be migrated as they are too complex.
|
|
385
|
-
get collapsable() {
|
|
386
|
-
return this._collapsable;
|
|
387
|
-
}
|
|
388
|
-
set collapsable(value) {
|
|
389
|
-
this._collapsable = coerceBooleanProperty(value);
|
|
390
|
-
}
|
|
413
|
+
/** Text used for the tooltip and for the accessible name of a collapsed item. */
|
|
391
414
|
get titleText() {
|
|
392
|
-
return this.
|
|
393
|
-
}
|
|
394
|
-
get disabled() {
|
|
395
|
-
if (this._disabled !== undefined) {
|
|
396
|
-
return this._disabled;
|
|
397
|
-
}
|
|
398
|
-
return !this.isCollapsed && !this.hasCroppedText;
|
|
399
|
-
}
|
|
400
|
-
set disabled(value) {
|
|
401
|
-
this._disabled = coerceBooleanProperty(value);
|
|
415
|
+
return this.collapsedText() || this.title()?.text || null;
|
|
402
416
|
}
|
|
417
|
+
/** @docs-private */
|
|
403
418
|
get hasDropDownTrigger() {
|
|
404
419
|
return !!this.dropdownTrigger;
|
|
405
420
|
}
|
|
406
|
-
|
|
407
|
-
return !this.bento && this.hasDropDownTrigger && this.rectangleElement.vertical && !this.isCollapsed;
|
|
408
|
-
}
|
|
409
|
-
get showHorizontalDropDownAngle() {
|
|
410
|
-
return this.hasDropDownTrigger && this.rectangleElement.horizontal && !this.isCollapsed;
|
|
411
|
-
}
|
|
421
|
+
/** @docs-private */
|
|
412
422
|
get hasCroppedText() {
|
|
413
423
|
return !!this.title()?.isOverflown;
|
|
414
424
|
}
|
|
425
|
+
/**
|
|
426
|
+
* A collapsed item shows nothing but its icon, and a tooltip is a transient overlay — never an accessible
|
|
427
|
+
* name. The name is therefore published on the element itself, unless the consumer named it already.
|
|
428
|
+
*/
|
|
429
|
+
get resolvedAriaLabel() {
|
|
430
|
+
return this.ariaLabel() ?? (this.isCollapsed() ? this.titleText : null);
|
|
431
|
+
}
|
|
432
|
+
/**
|
|
433
|
+
* Items authored as `<kbq-navbar-item>` are custom elements with no implicit role, so they are announced as
|
|
434
|
+
* plain content. Anything already actionable — a native element, or a projected button/form field that owns
|
|
435
|
+
* the interaction — keeps its own semantics.
|
|
436
|
+
*
|
|
437
|
+
* No `aria-haspopup` for dropdown-trigger items on purpose: `KbqDropdownTrigger` deliberately omits it
|
|
438
|
+
* because the panel carries no menu semantics; it does publish `aria-expanded` itself.
|
|
439
|
+
*/
|
|
440
|
+
get role() {
|
|
441
|
+
if (NATIVELY_ACTIONABLE_TAGS.has(this.nativeElement.tagName) || this.navbarFocusableItem.nestedElement) {
|
|
442
|
+
return null;
|
|
443
|
+
}
|
|
444
|
+
return 'button';
|
|
445
|
+
}
|
|
446
|
+
/** Whether Enter/Space has to be turned into a click by hand. */
|
|
447
|
+
get needsSyntheticActivation() {
|
|
448
|
+
return this.role === 'button' && !this.hasDropDownTrigger;
|
|
449
|
+
}
|
|
415
450
|
constructor() {
|
|
416
|
-
|
|
451
|
+
/** @docs-private */
|
|
417
452
|
this.rectangleElement = inject(KbqNavbarRectangleElement);
|
|
453
|
+
/** @docs-private */
|
|
418
454
|
this.navbarFocusableItem = inject(KbqNavbarFocusableItem);
|
|
455
|
+
/** @docs-private */
|
|
456
|
+
this.tooltip = inject(KbqTooltipTrigger, { self: true });
|
|
457
|
+
this.nativeElement = kbqInjectNativeElement();
|
|
419
458
|
this.changeDetectorRef = inject(ChangeDetectorRef);
|
|
420
459
|
this.dropdownTrigger = inject(KbqDropdownTrigger, { optional: true });
|
|
421
460
|
this.bento = inject(KbqNavbarBento, { optional: true });
|
|
422
|
-
this.
|
|
423
|
-
this.
|
|
424
|
-
this.
|
|
425
|
-
|
|
461
|
+
this.contentObserver = inject(ContentObserver);
|
|
462
|
+
this.injector = inject(Injector);
|
|
463
|
+
this.destroyRef = inject(DestroyRef);
|
|
464
|
+
// Outer widths recorded by `measureWidths()`, 0 while unknown.
|
|
465
|
+
this.expandedWidth = 0;
|
|
466
|
+
this.collapsedWidth = 0;
|
|
467
|
+
/** @docs-private */
|
|
468
|
+
this.title = contentChild(KbqNavbarTitle, ...(ngDevMode ? [{ debugName: "title" }] : /* istanbul ignore next */ []));
|
|
469
|
+
this.icons = contentChildren(KbqIcon, { ...(ngDevMode ? { debugName: "icons" } : /* istanbul ignore next */ {}), descendants: true });
|
|
470
|
+
/** Icon shown before the title; it stays visible when the item collapses. @docs-private */
|
|
471
|
+
this.icon = computed(() => this.icons().find((icon) => !icon.getHostElement().closest('[kbqNavbarItemSuffix]')), ...(ngDevMode ? [{ debugName: "icon" }] : /* istanbul ignore next */ []));
|
|
472
|
+
/** Text shown in the tooltip of a collapsed item. Defaults to the text of the projected `kbq-navbar-title`. */
|
|
473
|
+
this.collapsedText = input('', ...(ngDevMode ? [{ debugName: "collapsedText" }] : /* istanbul ignore next */ []));
|
|
474
|
+
/** Whether the item may be collapsed when the horizontal navbar runs out of room. */
|
|
475
|
+
this.collapsable = input(true, { ...(ngDevMode ? { debugName: "collapsable" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
476
|
+
/**
|
|
477
|
+
* Explicitly enables or disables the item's tooltip.
|
|
478
|
+
*
|
|
479
|
+
* Left unset, the tooltip is enabled exactly when the title cannot be read from the item itself — the item
|
|
480
|
+
* is collapsed, its title is clipped, or it has no title at all.
|
|
481
|
+
*/
|
|
482
|
+
this.tooltipDisabled = input(undefined, { ...(ngDevMode ? { debugName: "tooltipDisabled" } : /* istanbul ignore next */ {}), alias: 'kbqTooltipDisabled',
|
|
483
|
+
transform: (value) => (value === undefined ? undefined : booleanAttribute(value)) });
|
|
484
|
+
this.ownCollapsed = signal(undefined, ...(ngDevMode ? [{ debugName: "ownCollapsed" }] : /* istanbul ignore next */ []));
|
|
485
|
+
/** Whether the item is rendered in its collapsed (icon-only) form. */
|
|
486
|
+
// todo in future need rename to 'collapsed'
|
|
487
|
+
this.isCollapsed = computed(() => this.ownCollapsed() ?? this.rectangleElement.collapsedState(), ...(ngDevMode ? [{ debugName: "isCollapsed" }] : /* istanbul ignore next */ []));
|
|
488
|
+
/** @docs-private */
|
|
489
|
+
this.showVerticalDropDownAngle = computed(() => !this.bento && this.hasDropDownTrigger && this.rectangleElement.isVertical() && !this.isCollapsed(), ...(ngDevMode ? [{ debugName: "showVerticalDropDownAngle" }] : /* istanbul ignore next */ []));
|
|
490
|
+
/** @docs-private */
|
|
491
|
+
this.showHorizontalDropDownAngle = computed(() => this.hasDropDownTrigger && this.rectangleElement.isHorizontal() && !this.isCollapsed(), ...(ngDevMode ? [{ debugName: "showHorizontalDropDownAngle" }] : /* istanbul ignore next */ []));
|
|
492
|
+
/**
|
|
493
|
+
* Whether the title of a vertical bento item slides in without motion.
|
|
494
|
+
*
|
|
495
|
+
* @docs-private
|
|
496
|
+
*/
|
|
497
|
+
this.animationsDisabled = kbqAnimationsDisabled();
|
|
498
|
+
/**
|
|
499
|
+
* Accessible name of the item. Needed for an icon-only item, which has no visible label of its own; an
|
|
500
|
+
* item that renders a title is named by it.
|
|
501
|
+
*/
|
|
502
|
+
this.ariaLabel = input(null, { ...(ngDevMode ? { debugName: "ariaLabel" } : /* istanbul ignore next */ {}), alias: 'aria-label' });
|
|
426
503
|
if (this.hasDropDownTrigger) {
|
|
427
|
-
this.dropdownTrigger.openByArrowDown
|
|
504
|
+
this.dropdownTrigger.openByArrowDown.set(false);
|
|
428
505
|
}
|
|
429
506
|
this.rectangleElement.state.pipe(takeUntilDestroyed()).subscribe(() => {
|
|
430
|
-
this.collapsed = this.rectangleElement.collapsed;
|
|
431
507
|
this.updateDropdown();
|
|
432
|
-
this.
|
|
508
|
+
this.updateTooltip();
|
|
509
|
+
});
|
|
510
|
+
this.navbarFocusableItem.setTooltip(this.tooltip);
|
|
511
|
+
this.tooltip.arrow = false;
|
|
512
|
+
this.tooltip.offset = 0;
|
|
513
|
+
this.tooltip.setOverlayPanelClass('kbq-tooltip-panel_horizontal-navbar');
|
|
514
|
+
// The tooltip of a collapsed item stands in for its missing title, so it must not also open on focus:
|
|
515
|
+
// `KbqNavbarFocusableItem.focus()` shows it explicitly, and only for keyboard focus.
|
|
516
|
+
this.tooltip.trigger = `${PopUpTriggers.Hover}`;
|
|
517
|
+
effect(() => {
|
|
518
|
+
// Re-read the reactive inputs the tooltip content depends on.
|
|
519
|
+
this.collapsedText();
|
|
520
|
+
this.tooltipDisabled();
|
|
521
|
+
this.isCollapsed();
|
|
522
|
+
this.updateTooltip();
|
|
523
|
+
// Whether the title is clipped can only be measured once this change is rendered.
|
|
524
|
+
afterNextRender(() => this.updateTooltip(), { injector: this.injector });
|
|
433
525
|
});
|
|
434
|
-
|
|
435
|
-
this.
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
526
|
+
// Content changes, such as a new title text, can clip the title too.
|
|
527
|
+
afterNextRender(() => this.contentObserver
|
|
528
|
+
.observe(this.nativeElement)
|
|
529
|
+
.pipe(takeUntilDestroyed(this.destroyRef))
|
|
530
|
+
.subscribe(() => this.updateTooltip()));
|
|
439
531
|
}
|
|
532
|
+
/** @docs-private */
|
|
440
533
|
ngAfterContentInit() {
|
|
441
534
|
this.updateTooltip();
|
|
442
535
|
}
|
|
443
|
-
|
|
444
|
-
if (!this.dropdownTrigger?.dropdown)
|
|
445
|
-
return;
|
|
446
|
-
if (this.rectangleElement.vertical) {
|
|
447
|
-
this.dropdownTrigger.dropdown.overlapTriggerX = false;
|
|
448
|
-
this.dropdownTrigger.dropdown.overlapTriggerY = true;
|
|
449
|
-
// needs to shift dropdown to the left by 8 pixels
|
|
450
|
-
this.dropdownTrigger.offsetX = -8;
|
|
451
|
-
}
|
|
452
|
-
}
|
|
536
|
+
/** @docs-private */
|
|
453
537
|
updateTooltip() {
|
|
454
|
-
|
|
455
|
-
|
|
538
|
+
const titleText = this.titleText;
|
|
539
|
+
// With no title or `collapsedText` to stand in, a collapsed item keeps the content bound as `tooltipText`.
|
|
540
|
+
if (this.isCollapsed() && titleText) {
|
|
541
|
+
this.tooltip.content = titleText;
|
|
456
542
|
}
|
|
457
|
-
else if (
|
|
458
|
-
this.content = this.croppedText;
|
|
543
|
+
else if (this.hasCroppedText) {
|
|
544
|
+
this.tooltip.content = this.croppedText;
|
|
459
545
|
}
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
this.
|
|
546
|
+
// A fully visible title needs no tooltip; for a collapsed, clipped or missing one it is the only label.
|
|
547
|
+
this.tooltip.disabled =
|
|
548
|
+
this.tooltipDisabled() ?? (!!this.title() && !this.isCollapsed() && !this.hasCroppedText);
|
|
549
|
+
if (this.rectangleElement.isVertical()) {
|
|
550
|
+
this.tooltip.tooltipPlacement = PopUpPlacements.Right;
|
|
551
|
+
this.tooltip.tooltipPlacementPriority = PopUpPlacements.Right;
|
|
463
552
|
}
|
|
464
553
|
this.changeDetectorRef.markForCheck();
|
|
465
554
|
}
|
|
466
|
-
|
|
467
|
-
|
|
555
|
+
/**
|
|
556
|
+
* Records the outer width of the item in the presentation it is shown in, and measures the other one only while
|
|
557
|
+
* it is still unknown.
|
|
558
|
+
*
|
|
559
|
+
* The other presentation is read by toggling the collapse class around the measurement. Restoring it within
|
|
560
|
+
* the same task is safe: the browser does not paint mid-task, and the host binding only writes to the DOM when
|
|
561
|
+
* its value changes. Both rely on the item having no CSS transition. A width seen in the real presentation is
|
|
562
|
+
* preferred because a collapsed item does not render its dropdown chevron, so toggling it back undercounts.
|
|
563
|
+
*
|
|
564
|
+
* @docs-private
|
|
565
|
+
*/
|
|
566
|
+
measureWidths() {
|
|
567
|
+
// A hidden item has no box, and its margins alone would be recorded as a width.
|
|
568
|
+
if (!this.nativeElement.getClientRects().length)
|
|
569
|
+
return;
|
|
570
|
+
const classList = this.nativeElement.classList;
|
|
571
|
+
const collapsed = classList.contains(COLLAPSED_ITEM_CLASS);
|
|
572
|
+
if (collapsed) {
|
|
573
|
+
this.collapsedWidth = this.rectangleElement.getOuterElementWidth();
|
|
574
|
+
}
|
|
575
|
+
else {
|
|
576
|
+
this.expandedWidth = this.rectangleElement.getOuterElementWidth();
|
|
577
|
+
}
|
|
578
|
+
if (collapsed ? this.expandedWidth : this.collapsedWidth)
|
|
579
|
+
return;
|
|
580
|
+
classList.toggle(COLLAPSED_ITEM_CLASS);
|
|
581
|
+
const otherWidth = this.rectangleElement.getOuterElementWidth();
|
|
582
|
+
classList.toggle(COLLAPSED_ITEM_CLASS);
|
|
583
|
+
if (collapsed) {
|
|
584
|
+
this.expandedWidth = otherWidth;
|
|
585
|
+
}
|
|
586
|
+
else {
|
|
587
|
+
this.collapsedWidth = otherWidth;
|
|
588
|
+
}
|
|
589
|
+
}
|
|
590
|
+
/**
|
|
591
|
+
* Width the item gives back by collapsing: its expanded outer width less its collapsed one, as last recorded by
|
|
592
|
+
* `measureWidths()`. It covers everything the collapse removes or changes — the title, a suffix, the dropdown
|
|
593
|
+
* chevron and the padding and margins that differ between the two presentations.
|
|
594
|
+
*
|
|
595
|
+
* @docs-private
|
|
596
|
+
*/
|
|
597
|
+
getCollapsibleWidth() {
|
|
598
|
+
return Math.max(this.expandedWidth - this.collapsedWidth, 0);
|
|
468
599
|
}
|
|
600
|
+
/** @docs-private */
|
|
469
601
|
onKeyDown($event) {
|
|
602
|
+
if (this.needsSyntheticActivation && [ENTER, SPACE].includes($event.keyCode)) {
|
|
603
|
+
this.nativeElement.click();
|
|
604
|
+
$event.preventDefault();
|
|
605
|
+
return;
|
|
606
|
+
}
|
|
470
607
|
if (!this.hasDropDownTrigger) {
|
|
471
608
|
return;
|
|
472
609
|
}
|
|
473
|
-
if ((this.rectangleElement.
|
|
474
|
-
(this.rectangleElement.
|
|
610
|
+
if ((this.rectangleElement.isHorizontal() && $event.keyCode === DOWN_ARROW) ||
|
|
611
|
+
(this.rectangleElement.isVertical() && $event.keyCode === RIGHT_ARROW)) {
|
|
475
612
|
this.dropdownTrigger.openedBy = 'keyboard';
|
|
476
613
|
this.dropdownTrigger.open();
|
|
477
614
|
$event.stopPropagation();
|
|
478
615
|
$event.preventDefault();
|
|
479
616
|
}
|
|
480
617
|
}
|
|
481
|
-
|
|
482
|
-
|
|
618
|
+
updateDropdown() {
|
|
619
|
+
const dropdown = this.dropdownTrigger?.dropdown();
|
|
620
|
+
if (!dropdown)
|
|
621
|
+
return;
|
|
622
|
+
if (this.rectangleElement.isVertical()) {
|
|
623
|
+
dropdown.overlapTriggerX.set(false);
|
|
624
|
+
dropdown.overlapTriggerY.set(true);
|
|
625
|
+
// needs to shift dropdown to the left by 8 pixels
|
|
626
|
+
this.dropdownTrigger.offsetX.set(-8);
|
|
627
|
+
}
|
|
628
|
+
}
|
|
629
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: KbqNavbarItem, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
630
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.25", type: KbqNavbarItem, isStandalone: true, selector: "kbq-navbar-item, [kbq-navbar-item]", inputs: { collapsedText: { classPropertyName: "collapsedText", publicName: "collapsedText", isSignal: true, isRequired: false, transformFunction: null }, collapsable: { classPropertyName: "collapsable", publicName: "collapsable", isSignal: true, isRequired: false, transformFunction: null }, tooltipDisabled: { classPropertyName: "tooltipDisabled", publicName: "kbqTooltipDisabled", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "aria-label", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "keydown": "onKeyDown($event)" }, properties: { "class.kbq-navbar-item_collapsed": "isCollapsed()", "class.kbq-navbar-item_with-title": "!!title()", "attr.role": "role", "attr.aria-label": "resolvedAriaLabel" }, classAttribute: "kbq-navbar-item" }, queries: [{ propertyName: "title", first: true, predicate: KbqNavbarTitle, descendants: true, isSignal: true }, { propertyName: "icons", predicate: KbqIcon, descendants: true, isSignal: true }], exportAs: ["kbqNavbarItem"], hostDirectives: [{ directive: i1.KbqTooltipTrigger, inputs: ["kbqTooltip", "tooltipText", "kbqTooltipClass", "kbqTooltipClass", "kbqTooltipColor", "kbqTooltipColor", "kbqTooltipContext", "kbqTooltipContext", "kbqTooltipOffset", "kbqTooltipOffset", "kbqTrigger", "kbqTrigger", "kbqPlacement", "kbqPlacement", "kbqPlacementPriority", "kbqPlacementPriority", "kbqEnterDelay", "kbqEnterDelay", "kbqLeaveDelay", "kbqLeaveDelay", "kbqVisible", "kbqVisible"], outputs: ["kbqVisibleChange", "kbqVisibleChange", "kbqPlacementChange", "kbqPlacementChange"] }], ngImport: i0, template: "<ng-content select=\"[kbq-icon]:not([kbqNavbarItemSuffix])\" />\n\n@if (title()) {\n <div class=\"kbq-navbar-item__container\">\n <div class=\"kbq-navbar-item__title\" [class.kbq-animations-disabled]=\"animationsDisabled\">\n <ng-content select=\"kbq-navbar-title, [kbq-navbar-title]\" />\n </div>\n <ng-content select=\"[kbqNavbarItemSuffix]\" />\n @if (showVerticalDropDownAngle()) {\n <i class=\"kbq-navbar-item__arrow-icon\" kbq-icon=\"kbq-chevron-right_16\" color=\"contrast\"></i>\n }\n @if (showHorizontalDropDownAngle()) {\n <i class=\"kbq-navbar-item__arrow-icon\" kbq-icon=\"kbq-chevron-down-s_16\" color=\"contrast\"></i>\n }\n </div>\n}\n\n<ng-content />\n", dependencies: [{ kind: "component", type: KbqIcon, selector: "[kbq-icon]", inputs: ["aria-hidden", "iconSize", "autoColor", "kbq-icon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
483
631
|
}
|
|
484
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
632
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: KbqNavbarItem, decorators: [{
|
|
485
633
|
type: Component,
|
|
486
634
|
args: [{ selector: 'kbq-navbar-item, [kbq-navbar-item]', imports: [
|
|
487
635
|
KbqIcon
|
|
488
636
|
], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
|
|
489
637
|
class: 'kbq-navbar-item',
|
|
490
|
-
|
|
638
|
+
[`[class.${COLLAPSED_ITEM_CLASS}]`]: 'isCollapsed()',
|
|
491
639
|
'[class.kbq-navbar-item_with-title]': '!!title()',
|
|
640
|
+
'[attr.role]': 'role',
|
|
641
|
+
'[attr.aria-label]': 'resolvedAriaLabel',
|
|
492
642
|
'(keydown)': 'onKeyDown($event)'
|
|
493
|
-
},
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
643
|
+
}, hostDirectives: [
|
|
644
|
+
{
|
|
645
|
+
directive: KbqTooltipTrigger,
|
|
646
|
+
inputs: [
|
|
647
|
+
'kbqTooltip: tooltipText',
|
|
648
|
+
'kbqTooltipClass',
|
|
649
|
+
'kbqTooltipColor',
|
|
650
|
+
'kbqTooltipContext',
|
|
651
|
+
'kbqTooltipOffset',
|
|
652
|
+
'kbqTrigger',
|
|
653
|
+
'kbqPlacement',
|
|
654
|
+
'kbqPlacementPriority',
|
|
655
|
+
'kbqEnterDelay',
|
|
656
|
+
'kbqLeaveDelay',
|
|
657
|
+
'kbqVisible'
|
|
658
|
+
],
|
|
659
|
+
outputs: [
|
|
660
|
+
'kbqVisibleChange',
|
|
661
|
+
'kbqPlacementChange'
|
|
662
|
+
]
|
|
663
|
+
}
|
|
664
|
+
], exportAs: 'kbqNavbarItem', template: "<ng-content select=\"[kbq-icon]:not([kbqNavbarItemSuffix])\" />\n\n@if (title()) {\n <div class=\"kbq-navbar-item__container\">\n <div class=\"kbq-navbar-item__title\" [class.kbq-animations-disabled]=\"animationsDisabled\">\n <ng-content select=\"kbq-navbar-title, [kbq-navbar-title]\" />\n </div>\n <ng-content select=\"[kbqNavbarItemSuffix]\" />\n @if (showVerticalDropDownAngle()) {\n <i class=\"kbq-navbar-item__arrow-icon\" kbq-icon=\"kbq-chevron-right_16\" color=\"contrast\"></i>\n }\n @if (showHorizontalDropDownAngle()) {\n <i class=\"kbq-navbar-item__arrow-icon\" kbq-icon=\"kbq-chevron-down-s_16\" color=\"contrast\"></i>\n }\n </div>\n}\n\n<ng-content />\n" }]
|
|
665
|
+
}], ctorParameters: () => [], propDecorators: { title: [{ type: i0.ContentChild, args: [i0.forwardRef(() => KbqNavbarTitle), { isSignal: true }] }], icons: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => KbqIcon), { ...{ descendants: true }, isSignal: true }] }], collapsedText: [{ type: i0.Input, args: [{ isSignal: true, alias: "collapsedText", required: false }] }], collapsable: [{ type: i0.Input, args: [{ isSignal: true, alias: "collapsable", required: false }] }], tooltipDisabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "kbqTooltipDisabled", required: false }] }], ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "aria-label", required: false }] }] } });
|
|
502
666
|
|
|
503
667
|
/** Switches the brand title to the compact two-line presentation. */
|
|
504
668
|
const LONG_TITLE_CLASS = 'kbq-navbar-brand_long-title';
|
|
505
|
-
class KbqNavbarBrand
|
|
506
|
-
/**
|
|
507
|
-
// TODO: Skipped for migration because:
|
|
508
|
-
// Accessor inputs cannot be migrated as they are too complex.
|
|
509
|
-
get collapsedText() {
|
|
510
|
-
return this._collapsedText;
|
|
511
|
-
}
|
|
512
|
-
set collapsedText(value) {
|
|
513
|
-
this._collapsedText = value;
|
|
514
|
-
this.updateTooltip();
|
|
515
|
-
}
|
|
669
|
+
class KbqNavbarBrand {
|
|
670
|
+
/** Whether the brand is rendered as a native link. */
|
|
516
671
|
get isLink() {
|
|
517
672
|
return this.nativeElement.tagName === 'A';
|
|
518
673
|
}
|
|
@@ -528,30 +683,16 @@ class KbqNavbarBrand extends KbqTooltipTrigger {
|
|
|
528
683
|
}
|
|
529
684
|
/** @docs-private */
|
|
530
685
|
get titleText() {
|
|
531
|
-
return this.collapsedText || this.title()?.text || null;
|
|
532
|
-
}
|
|
533
|
-
/** @docs-private */
|
|
534
|
-
get disabled() {
|
|
535
|
-
if (this._disabled !== undefined) {
|
|
536
|
-
return this._disabled;
|
|
537
|
-
}
|
|
538
|
-
return !this.collapsed && !this.hasCroppedText;
|
|
539
|
-
}
|
|
540
|
-
set disabled(value) {
|
|
541
|
-
this._disabled = coerceBooleanProperty(value);
|
|
542
|
-
}
|
|
543
|
-
/** @docs-private */
|
|
544
|
-
get collapsed() {
|
|
545
|
-
return this._collapsed ?? this.rectangleElement.collapsed;
|
|
686
|
+
return this.collapsedText() || this.title()?.text || null;
|
|
546
687
|
}
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
688
|
+
/**
|
|
689
|
+
* A collapsed brand shows nothing but its logo, and a tooltip is a transient overlay — never an accessible
|
|
690
|
+
* name. The name is therefore published on the element itself, unless the consumer named it already.
|
|
691
|
+
*/
|
|
692
|
+
get resolvedAriaLabel() {
|
|
693
|
+
return this.ariaLabel() ?? (this.collapsed() ? this.titleText : null);
|
|
552
694
|
}
|
|
553
695
|
constructor() {
|
|
554
|
-
super();
|
|
555
696
|
/** @docs-private */
|
|
556
697
|
this.nativeElement = kbqInjectNativeElement();
|
|
557
698
|
/** @docs-private */
|
|
@@ -560,50 +701,67 @@ class KbqNavbarBrand extends KbqTooltipTrigger {
|
|
|
560
701
|
this.rectangleElement = inject(KbqNavbarRectangleElement);
|
|
561
702
|
/** @docs-private */
|
|
562
703
|
this.navbarFocusableItem = inject(KbqNavbarFocusableItem);
|
|
704
|
+
/** @docs-private */
|
|
705
|
+
this.tooltip = inject(KbqTooltipTrigger, { self: true });
|
|
563
706
|
this.isBrowser = inject(Platform).isBrowser;
|
|
564
707
|
this.resizeObserver = inject(SharedResizeObserver);
|
|
565
708
|
this.contentObserver = inject(ContentObserver);
|
|
566
709
|
this.document = inject(DOCUMENT);
|
|
567
710
|
this.injector = inject(Injector);
|
|
711
|
+
this.destroyRef = inject(DestroyRef);
|
|
712
|
+
this.renderer = inject(Renderer2);
|
|
568
713
|
this.debounceInterval = 100;
|
|
569
714
|
/** @docs-private */
|
|
570
|
-
this.title = contentChild(KbqNavbarTitle, ...(ngDevMode ? [{ debugName: "title" }] : []));
|
|
571
|
-
/** Whether the title has been measured as not fitting into a single line. */
|
|
572
|
-
this.autoLongTitle = signal(false, ...(ngDevMode ? [{ debugName: "autoLongTitle" }] : []));
|
|
715
|
+
this.title = contentChild(KbqNavbarTitle, ...(ngDevMode ? [{ debugName: "title" }] : /* istanbul ignore next */ []));
|
|
573
716
|
/**
|
|
574
|
-
*
|
|
717
|
+
* Whether the title has been measured as not fitting into a single line, which switches it to the compact
|
|
718
|
+
* two-line presentation.
|
|
575
719
|
*
|
|
576
|
-
* @
|
|
577
|
-
* Leave unset for auto-detection; `true` and `false` force the mode on and off respectively.
|
|
578
|
-
* Will be removed in the next major release.
|
|
720
|
+
* @docs-private
|
|
579
721
|
*/
|
|
580
|
-
this.
|
|
581
|
-
/**
|
|
582
|
-
this.
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
this.
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
this.
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
722
|
+
this.longTitleEnabled = signal(false, ...(ngDevMode ? [{ debugName: "longTitleEnabled" }] : /* istanbul ignore next */ []));
|
|
723
|
+
/** text that will be displayed in the tooltip. By default, the text is taken from kbq-navbar-title. */
|
|
724
|
+
this.collapsedText = input('', ...(ngDevMode ? [{ debugName: "collapsedText" }] : /* istanbul ignore next */ []));
|
|
725
|
+
/**
|
|
726
|
+
* Explicitly enables or disables the brand's tooltip.
|
|
727
|
+
*
|
|
728
|
+
* Left unset, the tooltip is enabled exactly when the title cannot be read from the brand itself — the
|
|
729
|
+
* navbar is collapsed, the title is clipped, or there is no title at all.
|
|
730
|
+
*/
|
|
731
|
+
this.tooltipDisabled = input(undefined, { ...(ngDevMode ? { debugName: "tooltipDisabled" } : /* istanbul ignore next */ {}), alias: 'kbqTooltipDisabled',
|
|
732
|
+
transform: (value) => (value === undefined ? undefined : booleanAttribute(value)) });
|
|
733
|
+
/** Whether the brand is rendered in its collapsed (logo-only) form. @docs-private */
|
|
734
|
+
this.collapsed = this.rectangleElement.collapsedState;
|
|
735
|
+
/** Accessible name of the brand. Needed when the brand renders nothing but a logo. */
|
|
736
|
+
this.ariaLabel = input(null, { ...(ngDevMode ? { debugName: "ariaLabel" } : /* istanbul ignore next */ {}), alias: 'aria-label' });
|
|
737
|
+
this.rectangleElement.state.pipe(takeUntilDestroyed()).subscribe(() => this.updateTooltip());
|
|
738
|
+
this.tooltip.arrow = false;
|
|
739
|
+
this.tooltip.offset = 0;
|
|
740
|
+
// A brand tooltip stands in for a title that cannot be read from the element itself, so it opens on
|
|
741
|
+
// hover only; keyboard focus surfaces it through `KbqNavbarFocusableItem.focus()`.
|
|
742
|
+
this.tooltip.trigger = `${PopUpTriggers.Hover}`;
|
|
743
|
+
this.navbarFocusableItem.setTooltip(this.tooltip);
|
|
744
|
+
effect(() => {
|
|
745
|
+
// Re-read the reactive inputs the tooltip content depends on.
|
|
746
|
+
this.collapsedText();
|
|
747
|
+
this.tooltipDisabled();
|
|
748
|
+
this.collapsed();
|
|
749
|
+
this.updateTooltip();
|
|
599
750
|
});
|
|
751
|
+
afterNextRender(() => this.observeLongTitle());
|
|
600
752
|
// A disabled navbar item takes `pointer-events: none`, which on a brand would also stop the tooltip a
|
|
601
753
|
// collapsed brand depends on. Capturing on the host runs ahead of every listener of the link, `RouterLink`
|
|
602
754
|
// included.
|
|
603
755
|
const unlisten = this.renderer.listen(this.nativeElement, 'click', (event) => this.preventDisabledActivation(event), { capture: true });
|
|
604
756
|
this.destroyRef.onDestroy(unlisten);
|
|
605
757
|
}
|
|
758
|
+
/** @docs-private */
|
|
606
759
|
ngAfterContentInit() {
|
|
760
|
+
// A brand that is neither a link nor a wrapper around something interactive is decorative, and only
|
|
761
|
+
// then is it kept out of the roving focus order. Deciding this here and not in the constructor is what
|
|
762
|
+
// makes the projected content visible at all; deciding it from `isLink` alone used to disable every
|
|
763
|
+
// `<div kbq-navbar-brand>`, however interactive its content was.
|
|
764
|
+
this.navbarFocusableItem.decorative.set(!this.isLink && !this.navbarFocusableItem.nestedElement);
|
|
607
765
|
this.updateTooltip();
|
|
608
766
|
}
|
|
609
767
|
preventDisabledActivation(event) {
|
|
@@ -613,14 +771,18 @@ class KbqNavbarBrand extends KbqTooltipTrigger {
|
|
|
613
771
|
event.stopImmediatePropagation();
|
|
614
772
|
}
|
|
615
773
|
updateTooltip() {
|
|
616
|
-
|
|
617
|
-
|
|
774
|
+
const titleText = this.titleText;
|
|
775
|
+
// With no title or `collapsedText` to stand in, a collapsed brand keeps the content bound as `tooltipText`.
|
|
776
|
+
if (this.collapsed() && titleText) {
|
|
777
|
+
this.tooltip.content = titleText;
|
|
618
778
|
}
|
|
619
|
-
else if (
|
|
620
|
-
this.content = this.croppedText;
|
|
779
|
+
else if (this.hasCroppedText) {
|
|
780
|
+
this.tooltip.content = this.croppedText;
|
|
621
781
|
}
|
|
622
|
-
|
|
623
|
-
|
|
782
|
+
// A fully visible title needs no tooltip; for a collapsed, clipped or missing one it is the only label.
|
|
783
|
+
this.tooltip.disabled = this.tooltipDisabled() ?? (!!this.title() && !this.collapsed() && !this.hasCroppedText);
|
|
784
|
+
if (this.rectangleElement.isVertical()) {
|
|
785
|
+
this.tooltip.tooltipPlacement = PopUpPlacements.Right;
|
|
624
786
|
}
|
|
625
787
|
this.changeDetectorRef.markForCheck();
|
|
626
788
|
}
|
|
@@ -652,7 +814,7 @@ class KbqNavbarBrand extends KbqTooltipTrigger {
|
|
|
652
814
|
.subscribe(() => afterNextRender({ mixedReadWrite: () => this.updateAutoLongTitle() }, { injector: this.injector }));
|
|
653
815
|
}
|
|
654
816
|
updateAutoLongTitle() {
|
|
655
|
-
this.
|
|
817
|
+
this.longTitleEnabled.set(this.measureNeedsLongTitle());
|
|
656
818
|
// The clamp state feeds into `hasCroppedText`, which the tooltip's content depends on - refresh it
|
|
657
819
|
// so a title that becomes clamped after the initial render doesn't show stale/empty tooltip content.
|
|
658
820
|
this.updateTooltip();
|
|
@@ -668,7 +830,7 @@ class KbqNavbarBrand extends KbqTooltipTrigger {
|
|
|
668
830
|
const title = this.title();
|
|
669
831
|
// A collapsed title is `display: none`, so it measures as 0 - keep the last known value instead.
|
|
670
832
|
if (!title || this.rectangleElement.collapsed) {
|
|
671
|
-
return this.
|
|
833
|
+
return this.longTitleEnabled();
|
|
672
834
|
}
|
|
673
835
|
const host = this.nativeElement;
|
|
674
836
|
const applied = host.classList.contains(LONG_TITLE_CLASS);
|
|
@@ -679,71 +841,131 @@ class KbqNavbarBrand extends KbqTooltipTrigger {
|
|
|
679
841
|
host.classList.add(LONG_TITLE_CLASS);
|
|
680
842
|
return overflown;
|
|
681
843
|
}
|
|
682
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
683
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "
|
|
844
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: KbqNavbarBrand, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
845
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.2.25", type: KbqNavbarBrand, isStandalone: true, selector: "kbq-navbar-brand, [kbq-navbar-brand]", inputs: { collapsedText: { classPropertyName: "collapsedText", publicName: "collapsedText", isSignal: true, isRequired: false, transformFunction: null }, tooltipDisabled: { classPropertyName: "tooltipDisabled", publicName: "kbqTooltipDisabled", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "aria-label", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.kbq-navbar-brand_long-title": "longTitleEnabled()", "class.kbq-navbar-brand_link": "isLink", "attr.aria-label": "resolvedAriaLabel" }, classAttribute: "kbq-navbar-brand" }, queries: [{ propertyName: "title", first: true, predicate: KbqNavbarTitle, descendants: true, isSignal: true }], exportAs: ["kbqNavbarBrand"], hostDirectives: [{ directive: i1.KbqTooltipTrigger, inputs: ["kbqTooltip", "tooltipText", "kbqTooltipClass", "kbqTooltipClass", "kbqTooltipColor", "kbqTooltipColor", "kbqTooltipOffset", "kbqTooltipOffset", "kbqTrigger", "kbqTrigger", "kbqPlacement", "kbqPlacement", "kbqEnterDelay", "kbqEnterDelay", "kbqLeaveDelay", "kbqLeaveDelay", "kbqVisible", "kbqVisible"], outputs: ["kbqVisibleChange", "kbqVisibleChange", "kbqPlacementChange", "kbqPlacementChange"] }], ngImport: i0, template: `
|
|
684
846
|
<ng-content />
|
|
685
|
-
`, 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:not(.kbq-disabled) .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{box-sizing:content-box;max-width:154px;padding-right:var(--kbq-size-m)}.kbq-navbar-brand.kbq-vertical{flex-direction:row;align-items:center;padding:var(--kbq-size-m)}.kbq-navbar-brand.kbq-vertical:after{top:var(--kbq-size-s);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:
|
|
847
|
+
`, 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)}@supports (corner-shape: squircle){.kbq-navbar-brand{corner-shape:squircle;border-radius:clamp(var(--kbq-size-s) * 1.85,var(--kbq-size-s) * 2.3 - 3.6px,var(--kbq-size-s) * 2)}}.kbq-navbar-brand:after{position:absolute;content:\"\";display:none;border-radius:var(--kbq-navbar-item-size-content-border-radius)}@supports (corner-shape: squircle){.kbq-navbar-brand:after{corner-shape:squircle;border-radius:clamp(var(--kbq-navbar-item-size-content-border-radius) * 1.85,var(--kbq-navbar-item-size-content-border-radius) * 2.3 - 3.6px,var(--kbq-navbar-item-size-content-border-radius) * 2)}}.kbq-navbar-brand:not(.kbq-disabled) .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{box-sizing:content-box;max-width:154px;padding-right:var(--kbq-size-m)}.kbq-navbar-brand.kbq-vertical{flex-direction:row;align-items:center;padding:var(--kbq-size-m)}.kbq-navbar-brand.kbq-vertical:after{top:var(--kbq-size-s);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:var(--kbq-navbar-brand-vertical-size-title-max-width)}.kbq-navbar-brand.kbq-vertical.kbq-collapsed .kbq-navbar-title{display:none}.kbq-navbar-brand.kbq-navbar-brand_long-title .kbq-navbar-title{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;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)}.kbq-navbar-brand .kbq-navbar-item-suffix.kbq-icon.kbq-empty,.kbq-navbar-brand .kbq-navbar-item-suffix .kbq-icon.kbq-empty{color:var(--kbq-navbar-item-default-content-icon-right)}.kbq-navbar-brand.kbq-disabled{cursor:default}.kbq-navbar-brand.kbq-navbar-brand_link:not(.kbq-disabled){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)}.kbq-navbar-brand.kbq-navbar-brand_link:hover:not(.kbq-disabled) .kbq-navbar-item-suffix.kbq-icon.kbq-empty,.kbq-navbar-brand.kbq-navbar-brand_link:hover:not(.kbq-disabled) .kbq-navbar-item-suffix .kbq-icon.kbq-empty{color:var(--kbq-navbar-item-states-hover-content-icon-right)}.kbq-navbar-brand.kbq-navbar-brand_link.cdk-focused.cdk-keyboard-focused:not(.kbq-disabled){outline:none}.kbq-navbar-brand.kbq-navbar-brand_link.cdk-focused.cdk-keyboard-focused:not(.kbq-disabled):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)}.kbq-navbar-brand.kbq-navbar-brand_link:active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand) .kbq-navbar-item-suffix.kbq-icon.kbq-empty,.kbq-navbar-brand.kbq-navbar-brand_link:active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand) .kbq-navbar-item-suffix .kbq-icon.kbq-empty,.kbq-navbar-brand.kbq-navbar-brand_link.kbq-active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand) .kbq-navbar-item-suffix.kbq-icon.kbq-empty,.kbq-navbar-brand.kbq-navbar-brand_link.kbq-active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand) .kbq-navbar-item-suffix .kbq-icon.kbq-empty{color:var(--kbq-navbar-item-states-selected-content-icon-right)}.kbq-navbar-brand.kbq-navbar-brand_link.kbq-vertical:hover:not(.kbq-disabled) .kbq-navbar-logo{transform:scale(1.06)}.kbq-navbar-brand.kbq-navbar-brand_link.kbq-horizontal:hover:not(.kbq-disabled) .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);line-height:16px}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
686
848
|
}
|
|
687
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
849
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: KbqNavbarBrand, decorators: [{
|
|
688
850
|
type: Component,
|
|
689
851
|
args: [{ selector: 'kbq-navbar-brand, [kbq-navbar-brand]', template: `
|
|
690
852
|
<ng-content />
|
|
691
|
-
`, host: {
|
|
853
|
+
`, changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
692
854
|
class: 'kbq-navbar-brand',
|
|
693
855
|
[`[class.${LONG_TITLE_CLASS}]`]: 'longTitleEnabled()',
|
|
694
|
-
'[class.kbq-navbar-brand_link]': 'isLink'
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
|
|
856
|
+
'[class.kbq-navbar-brand_link]': 'isLink',
|
|
857
|
+
'[attr.aria-label]': 'resolvedAriaLabel'
|
|
858
|
+
}, hostDirectives: [
|
|
859
|
+
{
|
|
860
|
+
directive: KbqTooltipTrigger,
|
|
861
|
+
inputs: [
|
|
862
|
+
'kbqTooltip: tooltipText',
|
|
863
|
+
'kbqTooltipClass',
|
|
864
|
+
'kbqTooltipColor',
|
|
865
|
+
'kbqTooltipOffset',
|
|
866
|
+
'kbqTrigger',
|
|
867
|
+
'kbqPlacement',
|
|
868
|
+
'kbqEnterDelay',
|
|
869
|
+
'kbqLeaveDelay',
|
|
870
|
+
'kbqVisible'
|
|
871
|
+
],
|
|
872
|
+
outputs: [
|
|
873
|
+
'kbqVisibleChange',
|
|
874
|
+
'kbqPlacementChange'
|
|
875
|
+
]
|
|
876
|
+
}
|
|
877
|
+
], exportAs: 'kbqNavbarBrand', 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)}@supports (corner-shape: squircle){.kbq-navbar-brand{corner-shape:squircle;border-radius:clamp(var(--kbq-size-s) * 1.85,var(--kbq-size-s) * 2.3 - 3.6px,var(--kbq-size-s) * 2)}}.kbq-navbar-brand:after{position:absolute;content:\"\";display:none;border-radius:var(--kbq-navbar-item-size-content-border-radius)}@supports (corner-shape: squircle){.kbq-navbar-brand:after{corner-shape:squircle;border-radius:clamp(var(--kbq-navbar-item-size-content-border-radius) * 1.85,var(--kbq-navbar-item-size-content-border-radius) * 2.3 - 3.6px,var(--kbq-navbar-item-size-content-border-radius) * 2)}}.kbq-navbar-brand:not(.kbq-disabled) .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{box-sizing:content-box;max-width:154px;padding-right:var(--kbq-size-m)}.kbq-navbar-brand.kbq-vertical{flex-direction:row;align-items:center;padding:var(--kbq-size-m)}.kbq-navbar-brand.kbq-vertical:after{top:var(--kbq-size-s);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:var(--kbq-navbar-brand-vertical-size-title-max-width)}.kbq-navbar-brand.kbq-vertical.kbq-collapsed .kbq-navbar-title{display:none}.kbq-navbar-brand.kbq-navbar-brand_long-title .kbq-navbar-title{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;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)}.kbq-navbar-brand .kbq-navbar-item-suffix.kbq-icon.kbq-empty,.kbq-navbar-brand .kbq-navbar-item-suffix .kbq-icon.kbq-empty{color:var(--kbq-navbar-item-default-content-icon-right)}.kbq-navbar-brand.kbq-disabled{cursor:default}.kbq-navbar-brand.kbq-navbar-brand_link:not(.kbq-disabled){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)}.kbq-navbar-brand.kbq-navbar-brand_link:hover:not(.kbq-disabled) .kbq-navbar-item-suffix.kbq-icon.kbq-empty,.kbq-navbar-brand.kbq-navbar-brand_link:hover:not(.kbq-disabled) .kbq-navbar-item-suffix .kbq-icon.kbq-empty{color:var(--kbq-navbar-item-states-hover-content-icon-right)}.kbq-navbar-brand.kbq-navbar-brand_link.cdk-focused.cdk-keyboard-focused:not(.kbq-disabled){outline:none}.kbq-navbar-brand.kbq-navbar-brand_link.cdk-focused.cdk-keyboard-focused:not(.kbq-disabled):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)}.kbq-navbar-brand.kbq-navbar-brand_link:active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand) .kbq-navbar-item-suffix.kbq-icon.kbq-empty,.kbq-navbar-brand.kbq-navbar-brand_link:active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand) .kbq-navbar-item-suffix .kbq-icon.kbq-empty,.kbq-navbar-brand.kbq-navbar-brand_link.kbq-active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand) .kbq-navbar-item-suffix.kbq-icon.kbq-empty,.kbq-navbar-brand.kbq-navbar-brand_link.kbq-active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand) .kbq-navbar-item-suffix .kbq-icon.kbq-empty{color:var(--kbq-navbar-item-states-selected-content-icon-right)}.kbq-navbar-brand.kbq-navbar-brand_link.kbq-vertical:hover:not(.kbq-disabled) .kbq-navbar-logo{transform:scale(1.06)}.kbq-navbar-brand.kbq-navbar-brand_link.kbq-horizontal:hover:not(.kbq-disabled) .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);line-height:16px}\n"] }]
|
|
878
|
+
}], ctorParameters: () => [], propDecorators: { title: [{ type: i0.ContentChild, args: [i0.forwardRef(() => KbqNavbarTitle), { isSignal: true }] }], collapsedText: [{ type: i0.Input, args: [{ isSignal: true, alias: "collapsedText", required: false }] }], tooltipDisabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "kbqTooltipDisabled", required: false }] }], ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "aria-label", required: false }] }] } });
|
|
699
879
|
|
|
700
880
|
class KbqFocusableComponent {
|
|
701
881
|
constructor() {
|
|
882
|
+
/** @docs-private */
|
|
702
883
|
this.changeDetectorRef = inject(ChangeDetectorRef);
|
|
884
|
+
/** @docs-private */
|
|
703
885
|
this.elementRef = inject(ElementRef);
|
|
886
|
+
/** @docs-private */
|
|
704
887
|
this.focusMonitor = inject(FocusMonitor);
|
|
705
|
-
|
|
706
|
-
this.lastFocusOrigin = null;
|
|
888
|
+
/** @docs-private */
|
|
707
889
|
this.destroyRef = inject(DestroyRef);
|
|
890
|
+
this.focusableItemsQuery = contentChildren(forwardRef(() => KbqNavbarFocusableItem), { ...(ngDevMode ? { debugName: "focusableItemsQuery" } : /* istanbul ignore next */ {}), descendants: true });
|
|
891
|
+
this.focusableItemsList = kbqQueryListFrom(this.focusableItemsQuery);
|
|
892
|
+
/**
|
|
893
|
+
* Tab index of the navbar host. The navbar owns the single tab stop of the whole widget and moves focus
|
|
894
|
+
* between its items with the arrow keys. A navbar without a focusable item stays out of the tab order.
|
|
895
|
+
*/
|
|
896
|
+
this.tabIndex = model(0, ...(ngDevMode ? [{ debugName: "tabIndex" }] : /* istanbul ignore next */ []));
|
|
897
|
+
/**
|
|
898
|
+
* Tab index the host renders: {@link tabIndex}, or `-1` while there is no item to hand the focus to. Derived
|
|
899
|
+
* rather than written to the model, which a consumer may bind.
|
|
900
|
+
*
|
|
901
|
+
* @docs-private
|
|
902
|
+
*/
|
|
903
|
+
this.renderedTabIndex = computed(() => this.focusableItemsQuery().length === 0 ? -1 : this.tabIndex(), ...(ngDevMode ? [{ debugName: "renderedTabIndex" }] : /* istanbul ignore next */ []));
|
|
904
|
+
/**
|
|
905
|
+
* Accessible name of the navigation landmark. Set it whenever a page renders more than one navbar, so
|
|
906
|
+
* assistive technology can tell them apart.
|
|
907
|
+
*/
|
|
908
|
+
this.ariaLabel = input(null, { ...(ngDevMode ? { debugName: "ariaLabel" } : /* istanbul ignore next */ {}), alias: 'aria-label' });
|
|
909
|
+
this.lastFocusOrigin = null;
|
|
910
|
+
this.cachedOptionFocusChanges = null;
|
|
911
|
+
this.cachedOptionBlurChanges = null;
|
|
912
|
+
this.optionFocusSubscription = null;
|
|
913
|
+
this.optionBlurSubscription = null;
|
|
708
914
|
}
|
|
709
|
-
|
|
710
|
-
|
|
711
|
-
|
|
712
|
-
return this._tabIndex;
|
|
713
|
-
}
|
|
714
|
-
set tabIndex(value) {
|
|
715
|
-
this._tabIndex = value;
|
|
915
|
+
/** @docs-private */
|
|
916
|
+
get focusableItems() {
|
|
917
|
+
return this.focusableItemsList();
|
|
716
918
|
}
|
|
919
|
+
/** Focus events of every focusable item, merged once per change of the item set. @docs-private */
|
|
717
920
|
get optionFocusChanges() {
|
|
718
|
-
return merge(...this.focusableItems.map((item) => item.onFocus));
|
|
921
|
+
return (this.cachedOptionFocusChanges ??= merge(...this.focusableItems.map((item) => item.onFocus)));
|
|
719
922
|
}
|
|
923
|
+
/** Blur events of every focusable item, merged once per change of the item set. @docs-private */
|
|
720
924
|
get optionBlurChanges() {
|
|
721
|
-
return merge(...this.focusableItems.map((option) => option.onBlur));
|
|
925
|
+
return (this.cachedOptionBlurChanges ??= merge(...this.focusableItems.map((option) => option.onBlur)));
|
|
722
926
|
}
|
|
927
|
+
/** @docs-private */
|
|
723
928
|
ngAfterContentInit() {
|
|
724
929
|
this.keyManager = new FocusKeyManager(this.focusableItems).withTypeAhead();
|
|
725
|
-
this.keyManager.tabOut
|
|
726
|
-
|
|
727
|
-
|
|
728
|
-
|
|
729
|
-
this.changeDetectorRef.markForCheck();
|
|
730
|
-
});
|
|
731
|
-
});
|
|
732
|
-
this.focusableItems.changes.pipe(startWith(null), takeUntilDestroyed(this.destroyRef)).subscribe(() => {
|
|
733
|
-
this.resetOptions();
|
|
734
|
-
// Check to see if we need to update our tab index
|
|
735
|
-
this.updateTabIndex();
|
|
736
|
-
});
|
|
930
|
+
kbqLeaveTabOrderOnTabOut(this.keyManager.tabOut, this.elementRef.nativeElement, () => this.renderedTabIndex(), this.destroyRef);
|
|
931
|
+
this.focusableItems.changes
|
|
932
|
+
.pipe(startWith(null), takeUntilDestroyed(this.destroyRef))
|
|
933
|
+
.subscribe(() => this.resetOptions());
|
|
737
934
|
}
|
|
935
|
+
/** @docs-private */
|
|
936
|
+
ngAfterContentChecked() {
|
|
937
|
+
// Syncs the list here so `changes` emits after the projected items are bound and before the host bindings.
|
|
938
|
+
this.focusableItemsList();
|
|
939
|
+
}
|
|
940
|
+
/**
|
|
941
|
+
* Monitored with `checkChildren`, because the navbar is one composite widget: the host owns the tab stop
|
|
942
|
+
* but hands focus straight to an item, and without it that hand-off reads as the navbar being blurred.
|
|
943
|
+
*
|
|
944
|
+
* @docs-private
|
|
945
|
+
*/
|
|
738
946
|
ngAfterViewInit() {
|
|
739
|
-
this.focusMonitor
|
|
947
|
+
this.focusMonitor
|
|
948
|
+
.monitor(this.elementRef, true)
|
|
949
|
+
.pipe(takeUntilDestroyed(this.destroyRef))
|
|
950
|
+
.subscribe((focusOrigin) => {
|
|
951
|
+
// A child losing focus to another child reports `null` in between; keep the origin the arrow
|
|
952
|
+
// keys travel on, and let a real blur of the whole navbar be handled by `blur()`.
|
|
953
|
+
if (focusOrigin === null)
|
|
954
|
+
return;
|
|
740
955
|
this.lastFocusOrigin = focusOrigin;
|
|
741
956
|
this.keyManager.setFocusOrigin(focusOrigin);
|
|
742
957
|
});
|
|
743
958
|
}
|
|
959
|
+
/** @docs-private */
|
|
744
960
|
ngOnDestroy() {
|
|
961
|
+
this.dropSubscriptions();
|
|
745
962
|
this.focusMonitor.stopMonitoring(this.elementRef);
|
|
746
963
|
}
|
|
964
|
+
/** Host element of the navbar. @docs-private */
|
|
965
|
+
getNativeElement() {
|
|
966
|
+
return this.elementRef.nativeElement;
|
|
967
|
+
}
|
|
968
|
+
/** @docs-private */
|
|
747
969
|
focus() {
|
|
748
970
|
if (this.focusableItems.length === 0) {
|
|
749
971
|
return;
|
|
@@ -755,25 +977,26 @@ class KbqFocusableComponent {
|
|
|
755
977
|
}
|
|
756
978
|
this.keyManager.setFirstItemActive();
|
|
757
979
|
}
|
|
980
|
+
/** @docs-private */
|
|
758
981
|
blur() {
|
|
759
982
|
if (!this.hasFocusedItem()) {
|
|
760
983
|
this.keyManager.setActiveItem(-1);
|
|
761
984
|
}
|
|
762
985
|
this.changeDetectorRef.markForCheck();
|
|
763
986
|
}
|
|
987
|
+
/** @docs-private */
|
|
764
988
|
resetOptions() {
|
|
765
989
|
this.dropSubscriptions();
|
|
766
990
|
this.listenToOptionsFocus();
|
|
767
991
|
}
|
|
992
|
+
/** @docs-private */
|
|
768
993
|
dropSubscriptions() {
|
|
769
|
-
|
|
770
|
-
|
|
771
|
-
|
|
772
|
-
|
|
773
|
-
|
|
774
|
-
|
|
775
|
-
this.optionBlurSubscription = null;
|
|
776
|
-
}
|
|
994
|
+
this.optionFocusSubscription?.unsubscribe();
|
|
995
|
+
this.optionFocusSubscription = null;
|
|
996
|
+
this.optionBlurSubscription?.unsubscribe();
|
|
997
|
+
this.optionBlurSubscription = null;
|
|
998
|
+
this.cachedOptionFocusChanges = null;
|
|
999
|
+
this.cachedOptionBlurChanges = null;
|
|
777
1000
|
}
|
|
778
1001
|
listenToOptionsFocus() {
|
|
779
1002
|
this.optionFocusSubscription = this.optionFocusChanges.subscribe((event) => {
|
|
@@ -784,31 +1007,23 @@ class KbqFocusableComponent {
|
|
|
784
1007
|
});
|
|
785
1008
|
this.optionBlurSubscription = this.optionBlurChanges.subscribe(() => this.blur());
|
|
786
1009
|
}
|
|
787
|
-
updateTabIndex() {
|
|
788
|
-
this.tabIndex = this.focusableItems.length === 0 ? -1 : 0;
|
|
789
|
-
}
|
|
790
1010
|
isValidIndex(index) {
|
|
791
1011
|
return index >= 0 && index < this.focusableItems.length;
|
|
792
1012
|
}
|
|
793
1013
|
hasFocusedItem() {
|
|
794
1014
|
return this.focusableItems.some((item) => item.hasFocus);
|
|
795
1015
|
}
|
|
796
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
797
|
-
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "
|
|
1016
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: KbqFocusableComponent, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
1017
|
+
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "21.2.25", type: KbqFocusableComponent, isStandalone: true, inputs: { tabIndex: { classPropertyName: "tabIndex", publicName: "tabIndex", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "aria-label", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { tabIndex: "tabIndexChange" }, queries: [{ propertyName: "focusableItemsQuery", predicate: i0.forwardRef(() => KbqNavbarFocusableItem), descendants: true, isSignal: true }], ngImport: i0 }); }
|
|
798
1018
|
}
|
|
799
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1019
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: KbqFocusableComponent, decorators: [{
|
|
800
1020
|
type: Directive
|
|
801
|
-
}], propDecorators: {
|
|
802
|
-
type: ContentChildren,
|
|
803
|
-
args: [forwardRef(() => KbqNavbarFocusableItem), { descendants: true }]
|
|
804
|
-
}], tabIndex: [{
|
|
805
|
-
type: Input
|
|
806
|
-
}] } });
|
|
1021
|
+
}], propDecorators: { focusableItemsQuery: [{ type: i0.ContentChildren, args: [forwardRef(() => KbqNavbarFocusableItem), { ...{ descendants: true }, isSignal: true }] }], tabIndex: [{ type: i0.Input, args: [{ isSignal: true, alias: "tabIndex", required: false }] }, { type: i0.Output, args: ["tabIndexChange"] }], ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "aria-label", required: false }] }] } });
|
|
807
1022
|
class KbqNavbarContainer {
|
|
808
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
809
|
-
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
1023
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: KbqNavbarContainer, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
1024
|
+
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.25", type: KbqNavbarContainer, isStandalone: true, selector: "kbq-navbar-container", host: { classAttribute: "kbq-navbar-container" }, ngImport: i0 }); }
|
|
810
1025
|
}
|
|
811
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1026
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: KbqNavbarContainer, decorators: [{
|
|
812
1027
|
type: Directive,
|
|
813
1028
|
args: [{
|
|
814
1029
|
selector: 'kbq-navbar-container',
|
|
@@ -821,63 +1036,95 @@ class KbqNavbar extends KbqFocusableComponent {
|
|
|
821
1036
|
get width() {
|
|
822
1037
|
return this.elementRef.nativeElement.getBoundingClientRect().width;
|
|
823
1038
|
}
|
|
824
|
-
|
|
825
|
-
|
|
1039
|
+
/**
|
|
1040
|
+
* Room the content needs: the outer widths of the containers' children plus the containers' own margins, which
|
|
1041
|
+
* hold the gap between them. The containers' boxes are not measured whole, so a container styled to grow still
|
|
1042
|
+
* reports what it needs rather than what it was given.
|
|
1043
|
+
*/
|
|
1044
|
+
get contentWidth() {
|
|
1045
|
+
return Array.from(this.elementRef.nativeElement.children).reduce((total, container) => {
|
|
1046
|
+
const { marginLeft, marginRight } = this.window.getComputedStyle(container);
|
|
1047
|
+
return Array.from(container.children).reduce((acc, child) => acc + getOuterWidth(child, this.window), total + (parseFloat(marginLeft) || 0) + (parseFloat(marginRight) || 0));
|
|
1048
|
+
}, 0);
|
|
826
1049
|
}
|
|
827
1050
|
get collapsableItems() {
|
|
828
1051
|
return this.navbarItems()
|
|
829
|
-
.filter((item) => item.icon() && item.title() && item.collapsable)
|
|
1052
|
+
.filter((item) => item.icon() && item.title() && item.collapsable())
|
|
830
1053
|
.reverse();
|
|
831
1054
|
}
|
|
832
1055
|
constructor() {
|
|
833
|
-
const elementRef = inject(ElementRef);
|
|
834
|
-
const changeDetectorRef = inject(ChangeDetectorRef);
|
|
835
|
-
const focusMonitor = inject(FocusMonitor);
|
|
836
1056
|
super();
|
|
837
1057
|
this.platform = inject(Platform);
|
|
838
|
-
this.
|
|
839
|
-
this.
|
|
1058
|
+
this.ngZone = inject(NgZone);
|
|
1059
|
+
this.window = inject(KBQ_WINDOW);
|
|
1060
|
+
/** @docs-private */
|
|
1061
|
+
this.rectangleElements = contentChildren(forwardRef(() => KbqNavbarRectangleElement), { ...(ngDevMode ? { debugName: "rectangleElements" } : /* istanbul ignore next */ {}), descendants: true });
|
|
1062
|
+
/** @docs-private */
|
|
1063
|
+
this.navbarItems = contentChildren(forwardRef(() => KbqNavbarItem), { ...(ngDevMode ? { debugName: "navbarItems" } : /* istanbul ignore next */ {}), descendants: true });
|
|
1064
|
+
/** Raw `resize` events of the window, fed from outside the Angular zone. @docs-private */
|
|
840
1065
|
this.resizeStream = new Subject();
|
|
841
1066
|
this.resizeDebounceInterval = 100;
|
|
1067
|
+
/**
|
|
1068
|
+
* Recomputes which collapsable items fit into the current navbar width.
|
|
1069
|
+
*
|
|
1070
|
+
* Every measurement is taken up front, and only then is anything written: collapsing an item invalidates
|
|
1071
|
+
* layout, so a measurement taken afterwards forces a synchronous reflow for each of the remaining items. The
|
|
1072
|
+
* width an item frees by collapsing comes from its own record of both presentations, see
|
|
1073
|
+
* `KbqNavbarItem.measureWidths()`.
|
|
1074
|
+
*
|
|
1075
|
+
* @docs-private
|
|
1076
|
+
*/
|
|
842
1077
|
this.updateExpandedStateForItems = () => {
|
|
843
|
-
|
|
844
|
-
|
|
845
|
-
|
|
846
|
-
this.collapseItems(collapseDelta);
|
|
847
|
-
}
|
|
848
|
-
else {
|
|
849
|
-
this.expandItems(collapseDelta);
|
|
850
|
-
}
|
|
851
|
-
};
|
|
852
|
-
this.setItemsState = (rectangleElements) => {
|
|
853
|
-
Promise.resolve().then(() => rectangleElements.forEach((item) => (item.horizontal = true)));
|
|
1078
|
+
// Untracked: called from a consumer's `effect()`, the items and their collapsed state read here would make the
|
|
1079
|
+
// effect run again on every collapse it makes.
|
|
1080
|
+
untracked(() => this.fitItems());
|
|
854
1081
|
};
|
|
855
|
-
this.
|
|
856
|
-
|
|
857
|
-
|
|
858
|
-
this.
|
|
1082
|
+
this.destroyRef.onDestroy(() => this.resizeStream.complete());
|
|
1083
|
+
// Raw resize events must not enter the zone: a single drag fires hundreds of them, and only the
|
|
1084
|
+
// debounced recompute at the end of the burst is worth a change detection pass.
|
|
1085
|
+
if (this.platform.isBrowser) {
|
|
1086
|
+
this.ngZone.runOutsideAngular(() => {
|
|
1087
|
+
fromEvent(this.window, 'resize')
|
|
1088
|
+
.pipe(takeUntilDestroyed(this.destroyRef))
|
|
1089
|
+
.subscribe((event) => this.resizeStream.next(event));
|
|
1090
|
+
});
|
|
1091
|
+
}
|
|
1092
|
+
this.resizeStream
|
|
859
1093
|
.pipe(debounceTime(this.resizeDebounceInterval), takeUntilDestroyed())
|
|
860
|
-
.subscribe(this.updateExpandedStateForItems);
|
|
861
|
-
effect(() => this.
|
|
1094
|
+
.subscribe(() => this.ngZone.run(this.updateExpandedStateForItems));
|
|
1095
|
+
effect(() => this.rectangleElements().forEach((item) => (item.orientation = 'horizontal')));
|
|
1096
|
+
// Note: this wait is required for loading and rendering fonts for icons;
|
|
1097
|
+
// unfortunately we cannot control font rendering. Bound to the component's lifetime, unlike a bare
|
|
1098
|
+
// `setTimeout`, so it can never run against a destroyed view.
|
|
1099
|
+
afterNextRender(() => this.updateExpandedStateForItems());
|
|
862
1100
|
}
|
|
1101
|
+
/** @docs-private */
|
|
863
1102
|
ngAfterContentInit() {
|
|
864
1103
|
super.ngAfterContentInit();
|
|
865
1104
|
this.keyManager.withVerticalOrientation(false).withHorizontalOrientation('ltr');
|
|
866
1105
|
}
|
|
867
|
-
|
|
868
|
-
|
|
869
|
-
|
|
1106
|
+
/** Body of `updateExpandedStateForItems()`. */
|
|
1107
|
+
fitItems() {
|
|
1108
|
+
const availableWidth = this.width;
|
|
1109
|
+
// A navbar that is not rendered, e.g. hidden in an inactive tab, has nothing to measure yet.
|
|
1110
|
+
if (!availableWidth)
|
|
870
1111
|
return;
|
|
871
|
-
|
|
872
|
-
//
|
|
873
|
-
|
|
874
|
-
|
|
875
|
-
|
|
876
|
-
|
|
877
|
-
|
|
1112
|
+
const items = this.collapsableItems;
|
|
1113
|
+
// Before the content is read, because an item seen in one presentation measures the other by toggling a class.
|
|
1114
|
+
items.forEach((item) => item.measureWidths());
|
|
1115
|
+
const collapseDelta = this.contentWidth - availableWidth;
|
|
1116
|
+
if (collapseDelta > 0) {
|
|
1117
|
+
this.collapseItems(items, collapseDelta);
|
|
1118
|
+
}
|
|
1119
|
+
else {
|
|
1120
|
+
this.expandItems(items, collapseDelta);
|
|
1121
|
+
}
|
|
878
1122
|
}
|
|
1123
|
+
/** @docs-private */
|
|
879
1124
|
onKeyDown(event) {
|
|
880
1125
|
const keyCode = event.keyCode;
|
|
1126
|
+
// The origin of the last focus event may be a click, and an item takes no DOM focus for a pointer origin.
|
|
1127
|
+
this.keyManager.setFocusOrigin('keyboard');
|
|
881
1128
|
if (!this.eventFromInput(event) && (isVerticalMovement(event) || isHorizontalMovement(event))) {
|
|
882
1129
|
event.preventDefault();
|
|
883
1130
|
}
|
|
@@ -906,116 +1153,109 @@ class KbqNavbar extends KbqFocusableComponent {
|
|
|
906
1153
|
const input = event.target;
|
|
907
1154
|
return input.selectionEnd === input.value.length;
|
|
908
1155
|
}
|
|
909
|
-
collapseItems(collapseDelta) {
|
|
1156
|
+
collapseItems(items, collapseDelta) {
|
|
910
1157
|
let delta = collapseDelta;
|
|
911
|
-
|
|
912
|
-
for (const item of
|
|
1158
|
+
// An item that frees nothing has not been measured, because it is hidden, and collapsing it gains nothing.
|
|
1159
|
+
for (const item of items.filter((item) => !item.isCollapsed() && item.getCollapsibleWidth() > 0)) {
|
|
913
1160
|
item.collapsed = true;
|
|
914
|
-
delta -= item.
|
|
915
|
-
if (delta
|
|
1161
|
+
delta -= item.getCollapsibleWidth();
|
|
1162
|
+
if (delta <= 0)
|
|
916
1163
|
break;
|
|
917
|
-
}
|
|
918
1164
|
}
|
|
919
1165
|
}
|
|
920
|
-
expandItems(collapseDelta) {
|
|
1166
|
+
expandItems(items, collapseDelta) {
|
|
921
1167
|
let delta = collapseDelta;
|
|
922
|
-
|
|
923
|
-
|
|
924
|
-
.forEach((item) => {
|
|
925
|
-
if (delta + item.getTitleWidth() < 0) {
|
|
1168
|
+
for (const item of items.filter((item) => item.isCollapsed())) {
|
|
1169
|
+
if (delta + item.getCollapsibleWidth() <= 0) {
|
|
926
1170
|
item.collapsed = false;
|
|
927
|
-
delta += item.
|
|
1171
|
+
delta += item.getCollapsibleWidth();
|
|
928
1172
|
}
|
|
929
|
-
}
|
|
1173
|
+
}
|
|
930
1174
|
}
|
|
931
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
932
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "
|
|
933
|
-
{ provide: KBQ_DROPDOWN_HOST, useExisting: KbqNavbar }
|
|
934
|
-
], queries: [{ propertyName: "rectangleElements", predicate: i0.forwardRef(() => KbqNavbarRectangleElement), descendants: true, isSignal: true }, { propertyName: "navbarItems", predicate: i0.forwardRef(() => KbqNavbarItem), descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: `
|
|
1175
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: KbqNavbar, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1176
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.2.25", type: KbqNavbar, isStandalone: true, selector: "kbq-navbar", host: { attributes: { "role": "navigation" }, listeners: { "focus": "focus()", "blur": "blur()", "keydown": "onKeyDown($event)" }, properties: { "attr.aria-label": "ariaLabel()", "attr.tabindex": "renderedTabIndex()" }, classAttribute: "kbq-navbar" }, queries: [{ propertyName: "rectangleElements", predicate: i0.forwardRef(() => KbqNavbarRectangleElement), descendants: true, isSignal: true }, { propertyName: "navbarItems", predicate: i0.forwardRef(() => KbqNavbarItem), descendants: true, isSignal: true }], usesInheritance: true, hostDirectives: [{ directive: i2.KbqOverlayLayerExclude }], ngImport: i0, template: `
|
|
935
1177
|
<ng-content select="[kbq-navbar-container], kbq-navbar-container" />
|
|
936
|
-
`, isInline: true, styles: ["button.kbq-navbar-item,button.kbq-navbar-brand{background:transparent;border:none}.kbq-navbar{z-index:1000;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-hovered:not(.kbq-disabled):not(.kbq-navbar-item_has-nested):after,.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.kbq-hovered:not(.kbq-disabled) .kbq-navbar-title,.kbq-navbar-item:hover:not(.kbq-disabled) .kbq-navbar-title{color:var(--kbq-navbar-item-states-hover-content-text)}.kbq-navbar-item.kbq-hovered:not(.kbq-disabled)>.kbq-icon.kbq-empty,.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.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.kbq-navbar-focusable-item{outline:none}.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{pointer-events:none;cursor:default}.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}.kbq-navbar-item.kbq-vertical .kbq-navbar-item__container{gap:var(--kbq-size-m)}.kbq-navbar-item.kbq-vertical{padding-right:var(--kbq-size-xl);padding-left:var(--kbq-size-xl)}.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-navbar-bento+.kbq-navbar-brand.kbq-vertical{padding:var(--kbq-size-xxs) var(--kbq-size-m) var(--kbq-size-m)}.kbq-navbar-item.kbq-vertical.kbq-navbar-bento+.kbq-navbar-brand.kbq-vertical:after{top: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;transition:opacity .15s ease-out,margin-left .15s ease-out}.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,.kbq-navbar-item.kbq-vertical.kbq-expanded.kbq-navbar-bento.kbq-active .kbq-navbar-item__title,.kbq-navbar-item.kbq-vertical.kbq-expanded.kbq-navbar-bento.kbq-pressed .kbq-navbar-item__title{margin-left:0;opacity:1}.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-badge-filled.kbq-badge_fade-contrast{background:linear-gradient(var(--kbq-background-contrast-fade),var(--kbq-background-contrast-fade)),var(--kbq-background-bg-tertiary)}.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:not(.kbq-disabled) .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{box-sizing:content-box;max-width:154px;padding-right:var(--kbq-size-m)}.kbq-navbar-brand.kbq-vertical{flex-direction:row;align-items:center;padding:var(--kbq-size-m)}.kbq-navbar-brand.kbq-vertical:after{top:var(--kbq-size-s);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-navbar-brand_long-title .kbq-navbar-title{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;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-disabled{cursor:default}.kbq-navbar-brand.kbq-navbar-brand_link:not(.kbq-disabled){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.cdk-focused.cdk-keyboard-focused:not(.kbq-disabled){outline:none}.kbq-navbar-brand.kbq-navbar-brand_link.cdk-focused.cdk-keyboard-focused:not(.kbq-disabled):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.kbq-vertical:hover:not(.kbq-disabled) .kbq-navbar-logo{transform:scale(1.06)}.kbq-navbar-brand.kbq-navbar-brand_link.kbq-horizontal:hover:not(.kbq-disabled) .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);line-height:16px}\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 }); }
|
|
1178
|
+
`, isInline: true, styles: ["button.kbq-navbar-item,button.kbq-navbar-brand{background:transparent;border:none}.kbq-navbar{z-index:var(--kbq-navbar-z-index);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)}.kbq-navbar-item .kbq-navbar-item-suffix.kbq-icon.kbq-empty,.kbq-navbar-item .kbq-navbar-item-suffix .kbq-icon.kbq-empty{color:var(--kbq-navbar-item-default-content-icon-right)}.kbq-navbar-item.kbq-hovered:not(.kbq-disabled):not(.kbq-navbar-item_has-nested):after,.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.kbq-hovered:not(.kbq-disabled) .kbq-navbar-title,.kbq-navbar-item:hover:not(.kbq-disabled) .kbq-navbar-title{color:var(--kbq-navbar-item-states-hover-content-text)}.kbq-navbar-item.kbq-hovered:not(.kbq-disabled)>.kbq-icon.kbq-empty,.kbq-navbar-item:hover:not(.kbq-disabled)>.kbq-icon.kbq-empty{color:var(--kbq-navbar-item-states-hover-content-icon-left)}.kbq-navbar-item.kbq-hovered:not(.kbq-disabled) .kbq-navbar-item-suffix.kbq-icon.kbq-empty,.kbq-navbar-item.kbq-hovered:not(.kbq-disabled) .kbq-navbar-item-suffix .kbq-icon.kbq-empty,.kbq-navbar-item:hover:not(.kbq-disabled) .kbq-navbar-item-suffix.kbq-icon.kbq-empty,.kbq-navbar-item:hover:not(.kbq-disabled) .kbq-navbar-item-suffix .kbq-icon.kbq-empty{color:var(--kbq-navbar-item-states-hover-content-icon-right)}.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)}.kbq-navbar-item:active:not(.kbq-disabled) .kbq-navbar-item-suffix.kbq-icon.kbq-empty,.kbq-navbar-item:active:not(.kbq-disabled) .kbq-navbar-item-suffix .kbq-icon.kbq-empty,.kbq-navbar-item.kbq-active:not(.kbq-disabled) .kbq-navbar-item-suffix.kbq-icon.kbq-empty,.kbq-navbar-item.kbq-active:not(.kbq-disabled) .kbq-navbar-item-suffix .kbq-icon.kbq-empty{color:var(--kbq-navbar-item-states-selected-content-icon-right)}.kbq-navbar-item.kbq-navbar-focusable-item{outline:none}.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)}.kbq-navbar-item.kbq-disabled .kbq-navbar-item-suffix.kbq-icon.kbq-empty,.kbq-navbar-item.kbq-disabled .kbq-navbar-item-suffix .kbq-icon.kbq-empty{color:var(--kbq-navbar-item-states-disabled-content-icon-right)}.kbq-navbar-item.kbq-disabled{pointer-events:none;cursor:default}.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", "@charset \"UTF-8\";.kbq-truncate-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kbq-navbar-item.kbq-vertical{height:var(--kbq-navbar-item-vertical-size-height)}.kbq-navbar-item.kbq-vertical .kbq-navbar-item__container{gap:var(--kbq-size-m)}.kbq-navbar-item.kbq-vertical .kbq-navbar-item-suffix{margin-left:auto}.kbq-navbar-item.kbq-vertical{padding-right:var(--kbq-size-xl);padding-left:var(--kbq-size-xl)}.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-navbar-bento+.kbq-navbar-brand.kbq-vertical{padding:var(--kbq-size-xxs) var(--kbq-size-m) var(--kbq-size-m)}.kbq-navbar-item.kbq-vertical.kbq-navbar-bento+.kbq-navbar-brand.kbq-vertical:after{top:0}.kbq-navbar-item.kbq-vertical.kbq-expanded{align-items:center;gap:var(--kbq-size-m)}.kbq-navbar-item.kbq-vertical.kbq-expanded .kbq-badge{position:static}.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:calc(-1 * var(--kbq-size-s));opacity:0;transition:opacity .15s ease-out,margin-left .15s ease-out}.kbq-navbar-item.kbq-vertical.kbq-expanded.kbq-navbar-bento .kbq-navbar-item__title.kbq-animations-disabled{animation:none;transition:none}@media(prefers-reduced-motion:reduce){.kbq-navbar-item.kbq-vertical.kbq-expanded.kbq-navbar-bento .kbq-navbar-item__title{animation:none;transition:none}}.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,.kbq-navbar-item.kbq-vertical.kbq-expanded.kbq-navbar-bento.kbq-active .kbq-navbar-item__title,.kbq-navbar-item.kbq-vertical.kbq-expanded.kbq-navbar-bento.kbq-pressed .kbq-navbar-item__title{margin-left:0;opacity:1}.kbq-navbar-item.kbq-vertical.kbq-collapsed{width:var(--kbq-size-6xl);justify-content:center}.kbq-navbar-item.kbq-vertical.kbq-collapsed .kbq-badge{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-suffix{margin-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{top:calc(-1 * var(--kbq-size-3xs));right:calc(-1 * var(--kbq-size-3xs))}.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)}@supports (corner-shape: squircle){.kbq-navbar-item{corner-shape:squircle;border-radius:clamp(var(--kbq-navbar-item-size-content-border-radius) * 1.85,var(--kbq-navbar-item-size-content-border-radius) * 2.3 - 3.6px,var(--kbq-navbar-item-size-content-border-radius) * 2)}}.kbq-navbar-item .kbq-icon{min-width:var(--kbq-size-l);min-height:var(--kbq-size-l)}.kbq-navbar-item .kbq-badge-filled.kbq-badge_fade-contrast{background:linear-gradient(var(--kbq-background-contrast-fade),var(--kbq-background-contrast-fade)),var(--kbq-background-bg-tertiary)}.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)}@supports (corner-shape: squircle){.kbq-navbar-item:after{corner-shape:squircle;border-radius:clamp(var(--kbq-navbar-item-size-content-border-radius) * 1.85,var(--kbq-navbar-item-size-content-border-radius) * 2.3 - 3.6px,var(--kbq-navbar-item-size-content-border-radius) * 2)}}.kbq-navbar-item .kbq-badge{position:absolute;z-index:1}.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)}@supports (corner-shape: squircle){.kbq-navbar-brand{corner-shape:squircle;border-radius:clamp(var(--kbq-size-s) * 1.85,var(--kbq-size-s) * 2.3 - 3.6px,var(--kbq-size-s) * 2)}}.kbq-navbar-brand:after{position:absolute;content:\"\";display:none;border-radius:var(--kbq-navbar-item-size-content-border-radius)}@supports (corner-shape: squircle){.kbq-navbar-brand:after{corner-shape:squircle;border-radius:clamp(var(--kbq-navbar-item-size-content-border-radius) * 1.85,var(--kbq-navbar-item-size-content-border-radius) * 2.3 - 3.6px,var(--kbq-navbar-item-size-content-border-radius) * 2)}}.kbq-navbar-brand:not(.kbq-disabled) .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{box-sizing:content-box;max-width:154px;padding-right:var(--kbq-size-m)}.kbq-navbar-brand.kbq-vertical{flex-direction:row;align-items:center;padding:var(--kbq-size-m)}.kbq-navbar-brand.kbq-vertical:after{top:var(--kbq-size-s);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:var(--kbq-navbar-brand-vertical-size-title-max-width)}.kbq-navbar-brand.kbq-vertical.kbq-collapsed .kbq-navbar-title{display:none}.kbq-navbar-brand.kbq-navbar-brand_long-title .kbq-navbar-title{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;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)}.kbq-navbar-brand .kbq-navbar-item-suffix.kbq-icon.kbq-empty,.kbq-navbar-brand .kbq-navbar-item-suffix .kbq-icon.kbq-empty{color:var(--kbq-navbar-item-default-content-icon-right)}.kbq-navbar-brand.kbq-disabled{cursor:default}.kbq-navbar-brand.kbq-navbar-brand_link:not(.kbq-disabled){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)}.kbq-navbar-brand.kbq-navbar-brand_link:hover:not(.kbq-disabled) .kbq-navbar-item-suffix.kbq-icon.kbq-empty,.kbq-navbar-brand.kbq-navbar-brand_link:hover:not(.kbq-disabled) .kbq-navbar-item-suffix .kbq-icon.kbq-empty{color:var(--kbq-navbar-item-states-hover-content-icon-right)}.kbq-navbar-brand.kbq-navbar-brand_link.cdk-focused.cdk-keyboard-focused:not(.kbq-disabled){outline:none}.kbq-navbar-brand.kbq-navbar-brand_link.cdk-focused.cdk-keyboard-focused:not(.kbq-disabled):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)}.kbq-navbar-brand.kbq-navbar-brand_link:active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand) .kbq-navbar-item-suffix.kbq-icon.kbq-empty,.kbq-navbar-brand.kbq-navbar-brand_link:active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand) .kbq-navbar-item-suffix .kbq-icon.kbq-empty,.kbq-navbar-brand.kbq-navbar-brand_link.kbq-active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand) .kbq-navbar-item-suffix.kbq-icon.kbq-empty,.kbq-navbar-brand.kbq-navbar-brand_link.kbq-active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand) .kbq-navbar-item-suffix .kbq-icon.kbq-empty{color:var(--kbq-navbar-item-states-selected-content-icon-right)}.kbq-navbar-brand.kbq-navbar-brand_link.kbq-vertical:hover:not(.kbq-disabled) .kbq-navbar-logo{transform:scale(1.06)}.kbq-navbar-brand.kbq-navbar-brand_link.kbq-horizontal:hover:not(.kbq-disabled) .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);line-height:16px}\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:var(--kbq-size-m);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-item-vertical-size-height: 41px;--kbq-navbar-vertical-size-expanded-width: 240px;--kbq-navbar-brand-vertical-size-title-max-width: 200px;--kbq-navbar-toggle-size-circle: 28px;--kbq-navbar-z-index: 990;--kbq-navbar-vertical-open-over-z-index: 989;--kbq-navbar-toggle-z-index: 991;--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 }); }
|
|
937
1179
|
}
|
|
938
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1180
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: KbqNavbar, decorators: [{
|
|
939
1181
|
type: Component,
|
|
940
1182
|
args: [{ selector: 'kbq-navbar', template: `
|
|
941
1183
|
<ng-content select="[kbq-navbar-container], kbq-navbar-container" />
|
|
942
|
-
`,
|
|
943
|
-
{ provide: KBQ_DROPDOWN_HOST, useExisting: KbqNavbar }
|
|
944
|
-
], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
|
|
1184
|
+
`, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
|
|
945
1185
|
class: 'kbq-navbar',
|
|
946
|
-
|
|
1186
|
+
role: 'navigation',
|
|
1187
|
+
'[attr.aria-label]': 'ariaLabel()',
|
|
1188
|
+
'[attr.tabindex]': 'renderedTabIndex()',
|
|
947
1189
|
'(focus)': 'focus()',
|
|
948
1190
|
'(blur)': 'blur()',
|
|
949
|
-
'(keydown)': 'onKeyDown($event)'
|
|
950
|
-
'(window:resize)': 'resizeStream.next($event)'
|
|
951
|
-
}, styles: ["button.kbq-navbar-item,button.kbq-navbar-brand{background:transparent;border:none}.kbq-navbar{z-index:1000;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-hovered:not(.kbq-disabled):not(.kbq-navbar-item_has-nested):after,.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.kbq-hovered:not(.kbq-disabled) .kbq-navbar-title,.kbq-navbar-item:hover:not(.kbq-disabled) .kbq-navbar-title{color:var(--kbq-navbar-item-states-hover-content-text)}.kbq-navbar-item.kbq-hovered:not(.kbq-disabled)>.kbq-icon.kbq-empty,.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.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.kbq-navbar-focusable-item{outline:none}.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{pointer-events:none;cursor:default}.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}.kbq-navbar-item.kbq-vertical .kbq-navbar-item__container{gap:var(--kbq-size-m)}.kbq-navbar-item.kbq-vertical{padding-right:var(--kbq-size-xl);padding-left:var(--kbq-size-xl)}.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-navbar-bento+.kbq-navbar-brand.kbq-vertical{padding:var(--kbq-size-xxs) var(--kbq-size-m) var(--kbq-size-m)}.kbq-navbar-item.kbq-vertical.kbq-navbar-bento+.kbq-navbar-brand.kbq-vertical:after{top: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;transition:opacity .15s ease-out,margin-left .15s ease-out}.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,.kbq-navbar-item.kbq-vertical.kbq-expanded.kbq-navbar-bento.kbq-active .kbq-navbar-item__title,.kbq-navbar-item.kbq-vertical.kbq-expanded.kbq-navbar-bento.kbq-pressed .kbq-navbar-item__title{margin-left:0;opacity:1}.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-badge-filled.kbq-badge_fade-contrast{background:linear-gradient(var(--kbq-background-contrast-fade),var(--kbq-background-contrast-fade)),var(--kbq-background-bg-tertiary)}.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:not(.kbq-disabled) .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{box-sizing:content-box;max-width:154px;padding-right:var(--kbq-size-m)}.kbq-navbar-brand.kbq-vertical{flex-direction:row;align-items:center;padding:var(--kbq-size-m)}.kbq-navbar-brand.kbq-vertical:after{top:var(--kbq-size-s);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-navbar-brand_long-title .kbq-navbar-title{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;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-disabled{cursor:default}.kbq-navbar-brand.kbq-navbar-brand_link:not(.kbq-disabled){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.cdk-focused.cdk-keyboard-focused:not(.kbq-disabled){outline:none}.kbq-navbar-brand.kbq-navbar-brand_link.cdk-focused.cdk-keyboard-focused:not(.kbq-disabled):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.kbq-vertical:hover:not(.kbq-disabled) .kbq-navbar-logo{transform:scale(1.06)}.kbq-navbar-brand.kbq-navbar-brand_link.kbq-horizontal:hover:not(.kbq-disabled) .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);line-height:16px}\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"] }]
|
|
1191
|
+
'(keydown)': 'onKeyDown($event)'
|
|
1192
|
+
}, hostDirectives: [KbqOverlayLayerExclude], styles: ["button.kbq-navbar-item,button.kbq-navbar-brand{background:transparent;border:none}.kbq-navbar{z-index:var(--kbq-navbar-z-index);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)}.kbq-navbar-item .kbq-navbar-item-suffix.kbq-icon.kbq-empty,.kbq-navbar-item .kbq-navbar-item-suffix .kbq-icon.kbq-empty{color:var(--kbq-navbar-item-default-content-icon-right)}.kbq-navbar-item.kbq-hovered:not(.kbq-disabled):not(.kbq-navbar-item_has-nested):after,.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.kbq-hovered:not(.kbq-disabled) .kbq-navbar-title,.kbq-navbar-item:hover:not(.kbq-disabled) .kbq-navbar-title{color:var(--kbq-navbar-item-states-hover-content-text)}.kbq-navbar-item.kbq-hovered:not(.kbq-disabled)>.kbq-icon.kbq-empty,.kbq-navbar-item:hover:not(.kbq-disabled)>.kbq-icon.kbq-empty{color:var(--kbq-navbar-item-states-hover-content-icon-left)}.kbq-navbar-item.kbq-hovered:not(.kbq-disabled) .kbq-navbar-item-suffix.kbq-icon.kbq-empty,.kbq-navbar-item.kbq-hovered:not(.kbq-disabled) .kbq-navbar-item-suffix .kbq-icon.kbq-empty,.kbq-navbar-item:hover:not(.kbq-disabled) .kbq-navbar-item-suffix.kbq-icon.kbq-empty,.kbq-navbar-item:hover:not(.kbq-disabled) .kbq-navbar-item-suffix .kbq-icon.kbq-empty{color:var(--kbq-navbar-item-states-hover-content-icon-right)}.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)}.kbq-navbar-item:active:not(.kbq-disabled) .kbq-navbar-item-suffix.kbq-icon.kbq-empty,.kbq-navbar-item:active:not(.kbq-disabled) .kbq-navbar-item-suffix .kbq-icon.kbq-empty,.kbq-navbar-item.kbq-active:not(.kbq-disabled) .kbq-navbar-item-suffix.kbq-icon.kbq-empty,.kbq-navbar-item.kbq-active:not(.kbq-disabled) .kbq-navbar-item-suffix .kbq-icon.kbq-empty{color:var(--kbq-navbar-item-states-selected-content-icon-right)}.kbq-navbar-item.kbq-navbar-focusable-item{outline:none}.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)}.kbq-navbar-item.kbq-disabled .kbq-navbar-item-suffix.kbq-icon.kbq-empty,.kbq-navbar-item.kbq-disabled .kbq-navbar-item-suffix .kbq-icon.kbq-empty{color:var(--kbq-navbar-item-states-disabled-content-icon-right)}.kbq-navbar-item.kbq-disabled{pointer-events:none;cursor:default}.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", "@charset \"UTF-8\";.kbq-truncate-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kbq-navbar-item.kbq-vertical{height:var(--kbq-navbar-item-vertical-size-height)}.kbq-navbar-item.kbq-vertical .kbq-navbar-item__container{gap:var(--kbq-size-m)}.kbq-navbar-item.kbq-vertical .kbq-navbar-item-suffix{margin-left:auto}.kbq-navbar-item.kbq-vertical{padding-right:var(--kbq-size-xl);padding-left:var(--kbq-size-xl)}.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-navbar-bento+.kbq-navbar-brand.kbq-vertical{padding:var(--kbq-size-xxs) var(--kbq-size-m) var(--kbq-size-m)}.kbq-navbar-item.kbq-vertical.kbq-navbar-bento+.kbq-navbar-brand.kbq-vertical:after{top:0}.kbq-navbar-item.kbq-vertical.kbq-expanded{align-items:center;gap:var(--kbq-size-m)}.kbq-navbar-item.kbq-vertical.kbq-expanded .kbq-badge{position:static}.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:calc(-1 * var(--kbq-size-s));opacity:0;transition:opacity .15s ease-out,margin-left .15s ease-out}.kbq-navbar-item.kbq-vertical.kbq-expanded.kbq-navbar-bento .kbq-navbar-item__title.kbq-animations-disabled{animation:none;transition:none}@media(prefers-reduced-motion:reduce){.kbq-navbar-item.kbq-vertical.kbq-expanded.kbq-navbar-bento .kbq-navbar-item__title{animation:none;transition:none}}.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,.kbq-navbar-item.kbq-vertical.kbq-expanded.kbq-navbar-bento.kbq-active .kbq-navbar-item__title,.kbq-navbar-item.kbq-vertical.kbq-expanded.kbq-navbar-bento.kbq-pressed .kbq-navbar-item__title{margin-left:0;opacity:1}.kbq-navbar-item.kbq-vertical.kbq-collapsed{width:var(--kbq-size-6xl);justify-content:center}.kbq-navbar-item.kbq-vertical.kbq-collapsed .kbq-badge{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-suffix{margin-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{top:calc(-1 * var(--kbq-size-3xs));right:calc(-1 * var(--kbq-size-3xs))}.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)}@supports (corner-shape: squircle){.kbq-navbar-item{corner-shape:squircle;border-radius:clamp(var(--kbq-navbar-item-size-content-border-radius) * 1.85,var(--kbq-navbar-item-size-content-border-radius) * 2.3 - 3.6px,var(--kbq-navbar-item-size-content-border-radius) * 2)}}.kbq-navbar-item .kbq-icon{min-width:var(--kbq-size-l);min-height:var(--kbq-size-l)}.kbq-navbar-item .kbq-badge-filled.kbq-badge_fade-contrast{background:linear-gradient(var(--kbq-background-contrast-fade),var(--kbq-background-contrast-fade)),var(--kbq-background-bg-tertiary)}.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)}@supports (corner-shape: squircle){.kbq-navbar-item:after{corner-shape:squircle;border-radius:clamp(var(--kbq-navbar-item-size-content-border-radius) * 1.85,var(--kbq-navbar-item-size-content-border-radius) * 2.3 - 3.6px,var(--kbq-navbar-item-size-content-border-radius) * 2)}}.kbq-navbar-item .kbq-badge{position:absolute;z-index:1}.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)}@supports (corner-shape: squircle){.kbq-navbar-brand{corner-shape:squircle;border-radius:clamp(var(--kbq-size-s) * 1.85,var(--kbq-size-s) * 2.3 - 3.6px,var(--kbq-size-s) * 2)}}.kbq-navbar-brand:after{position:absolute;content:\"\";display:none;border-radius:var(--kbq-navbar-item-size-content-border-radius)}@supports (corner-shape: squircle){.kbq-navbar-brand:after{corner-shape:squircle;border-radius:clamp(var(--kbq-navbar-item-size-content-border-radius) * 1.85,var(--kbq-navbar-item-size-content-border-radius) * 2.3 - 3.6px,var(--kbq-navbar-item-size-content-border-radius) * 2)}}.kbq-navbar-brand:not(.kbq-disabled) .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{box-sizing:content-box;max-width:154px;padding-right:var(--kbq-size-m)}.kbq-navbar-brand.kbq-vertical{flex-direction:row;align-items:center;padding:var(--kbq-size-m)}.kbq-navbar-brand.kbq-vertical:after{top:var(--kbq-size-s);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:var(--kbq-navbar-brand-vertical-size-title-max-width)}.kbq-navbar-brand.kbq-vertical.kbq-collapsed .kbq-navbar-title{display:none}.kbq-navbar-brand.kbq-navbar-brand_long-title .kbq-navbar-title{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;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)}.kbq-navbar-brand .kbq-navbar-item-suffix.kbq-icon.kbq-empty,.kbq-navbar-brand .kbq-navbar-item-suffix .kbq-icon.kbq-empty{color:var(--kbq-navbar-item-default-content-icon-right)}.kbq-navbar-brand.kbq-disabled{cursor:default}.kbq-navbar-brand.kbq-navbar-brand_link:not(.kbq-disabled){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)}.kbq-navbar-brand.kbq-navbar-brand_link:hover:not(.kbq-disabled) .kbq-navbar-item-suffix.kbq-icon.kbq-empty,.kbq-navbar-brand.kbq-navbar-brand_link:hover:not(.kbq-disabled) .kbq-navbar-item-suffix .kbq-icon.kbq-empty{color:var(--kbq-navbar-item-states-hover-content-icon-right)}.kbq-navbar-brand.kbq-navbar-brand_link.cdk-focused.cdk-keyboard-focused:not(.kbq-disabled){outline:none}.kbq-navbar-brand.kbq-navbar-brand_link.cdk-focused.cdk-keyboard-focused:not(.kbq-disabled):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)}.kbq-navbar-brand.kbq-navbar-brand_link:active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand) .kbq-navbar-item-suffix.kbq-icon.kbq-empty,.kbq-navbar-brand.kbq-navbar-brand_link:active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand) .kbq-navbar-item-suffix .kbq-icon.kbq-empty,.kbq-navbar-brand.kbq-navbar-brand_link.kbq-active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand) .kbq-navbar-item-suffix.kbq-icon.kbq-empty,.kbq-navbar-brand.kbq-navbar-brand_link.kbq-active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand) .kbq-navbar-item-suffix .kbq-icon.kbq-empty{color:var(--kbq-navbar-item-states-selected-content-icon-right)}.kbq-navbar-brand.kbq-navbar-brand_link.kbq-vertical:hover:not(.kbq-disabled) .kbq-navbar-logo{transform:scale(1.06)}.kbq-navbar-brand.kbq-navbar-brand_link.kbq-horizontal:hover:not(.kbq-disabled) .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);line-height:16px}\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:var(--kbq-size-m);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-item-vertical-size-height: 41px;--kbq-navbar-vertical-size-expanded-width: 240px;--kbq-navbar-brand-vertical-size-title-max-width: 200px;--kbq-navbar-toggle-size-circle: 28px;--kbq-navbar-z-index: 990;--kbq-navbar-vertical-open-over-z-index: 989;--kbq-navbar-toggle-z-index: 991;--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"] }]
|
|
952
1193
|
}], ctorParameters: () => [], propDecorators: { rectangleElements: [{ type: i0.ContentChildren, args: [forwardRef(() => KbqNavbarRectangleElement), { ...{ descendants: true }, isSignal: true }] }], navbarItems: [{ type: i0.ContentChildren, args: [forwardRef(() => KbqNavbarItem), { ...{ descendants: true }, isSignal: true }] }] } });
|
|
953
1194
|
|
|
954
1195
|
/** default configuration of navbar */
|
|
955
1196
|
/** @docs-private */
|
|
956
|
-
const
|
|
1197
|
+
const KBQ_NAVBAR_DEFAULT_LOCALE_CONFIGURATION = ruRULocaleData.navbar;
|
|
957
1198
|
/** Injection Token for providing configuration of navbar */
|
|
958
1199
|
/** @docs-private */
|
|
959
|
-
const
|
|
1200
|
+
const KBQ_NAVBAR_LOCALE_CONFIGURATION = new InjectionToken('KbqNavbarLocaleConfiguration', { factory: () => KBQ_NAVBAR_DEFAULT_LOCALE_CONFIGURATION });
|
|
1201
|
+
/**
|
|
1202
|
+
* Utility provider for `KBQ_NAVBAR_LOCALE_CONFIGURATION`. Only the strings you pass are overridden; the
|
|
1203
|
+
* rest keep following the active locale.
|
|
1204
|
+
*/
|
|
1205
|
+
const kbqNavbarLocaleConfigurationProvider = (configuration) => kbqLocaleConfigurationOverrideProvider('navbar', configuration);
|
|
1206
|
+
/** @deprecated Use {@link KBQ_NAVBAR_DEFAULT_LOCALE_CONFIGURATION}. Will be removed in 22.0.0. */
|
|
1207
|
+
const KBQ_VERTICAL_NAVBAR_DEFAULT_CONFIGURATION = KBQ_NAVBAR_DEFAULT_LOCALE_CONFIGURATION;
|
|
1208
|
+
/** @deprecated Use {@link KBQ_NAVBAR_LOCALE_CONFIGURATION}. Will be removed in 22.0.0. */
|
|
1209
|
+
const KBQ_VERTICAL_NAVBAR_CONFIGURATION = KBQ_NAVBAR_LOCALE_CONFIGURATION;
|
|
960
1210
|
class KbqVerticalNavbar extends KbqFocusableComponent {
|
|
961
|
-
// TODO: Skipped for migration because:
|
|
962
|
-
// Accessor inputs cannot be migrated as they are too complex.
|
|
963
|
-
get expanded() {
|
|
964
|
-
return this._expanded;
|
|
965
|
-
}
|
|
966
|
-
set expanded(value) {
|
|
967
|
-
this._expanded = coerceBooleanProperty(value);
|
|
968
|
-
this.updateExpandedStateForItems();
|
|
969
|
-
}
|
|
970
1211
|
constructor() {
|
|
971
|
-
const elementRef = inject(ElementRef);
|
|
972
1212
|
super();
|
|
1213
|
+
/**
|
|
1214
|
+
* Localized strings of the navbar.
|
|
1215
|
+
*
|
|
1216
|
+
* A signal, so that a locale change reaches the `OnPush` descendants that render these strings — a plain
|
|
1217
|
+
* field would leave them showing the previous locale until something else marked them dirty. It also keeps
|
|
1218
|
+
* the value observable from outside: `KbqNavbarToggle` reads it in an `effect` to refresh its tooltip,
|
|
1219
|
+
* which a `markForCheck()` here could never have reached in that separate `OnPush` view.
|
|
1220
|
+
*/
|
|
1221
|
+
this.localeConfiguration = inject(KbqLocaleOverridesDirective, { self: true }).read('navbar', KBQ_NAVBAR_LOCALE_CONFIGURATION);
|
|
973
1222
|
/** @docs-private */
|
|
974
|
-
this.
|
|
975
|
-
|
|
976
|
-
this.
|
|
977
|
-
|
|
978
|
-
this.bento = contentChild(forwardRef(() => KbqNavbarBento), ...(ngDevMode ? [{ debugName: "bento" }] : []));
|
|
979
|
-
|
|
980
|
-
this.openOver = input(false, ...(ngDevMode ? [{ debugName: "openOver" }] : []));
|
|
981
|
-
|
|
982
|
-
this.
|
|
983
|
-
this.
|
|
984
|
-
|
|
985
|
-
|
|
986
|
-
|
|
987
|
-
this.
|
|
988
|
-
|
|
989
|
-
|
|
990
|
-
|
|
991
|
-
|
|
992
|
-
|
|
993
|
-
item.collapsed = !this.expanded;
|
|
994
|
-
setTimeout(() => item.button()?.updateClassModifierForIcons());
|
|
995
|
-
};
|
|
996
|
-
this.updateLocaleParams = () => {
|
|
997
|
-
this.configuration = this.externalConfiguration || this.localeService?.getParams('navbar');
|
|
998
|
-
this.changeDetectorRef.markForCheck();
|
|
999
|
-
};
|
|
1000
|
-
this.elementRef = elementRef;
|
|
1001
|
-
this.animationDone.pipe(takeUntilDestroyed()).subscribe(this.updateTooltipForItems);
|
|
1002
|
-
effect(() => this.setItemsVerticalStateAndUpdateExpandedState(this.rectangleElements()));
|
|
1003
|
-
this.localeService?.changes.pipe(takeUntilDestroyed()).subscribe(this.updateLocaleParams);
|
|
1004
|
-
if (!this.localeService) {
|
|
1005
|
-
this.initDefaultParams();
|
|
1006
|
-
}
|
|
1223
|
+
this.rectangleElements = contentChildren(forwardRef(() => KbqNavbarRectangleElement), { ...(ngDevMode ? { debugName: "rectangleElements" } : /* istanbul ignore next */ {}), descendants: true });
|
|
1224
|
+
/** @docs-private */
|
|
1225
|
+
this.items = contentChildren(forwardRef(() => KbqNavbarItem), { ...(ngDevMode ? { debugName: "items" } : /* istanbul ignore next */ {}), descendants: true });
|
|
1226
|
+
/** @docs-private */
|
|
1227
|
+
this.bento = contentChild(forwardRef(() => KbqNavbarBento), ...(ngDevMode ? [{ debugName: "bento" }] : /* istanbul ignore next */ []));
|
|
1228
|
+
/** Whether the expanded navbar overlays the page content instead of taking room from it. */
|
|
1229
|
+
this.openOver = input(false, ...(ngDevMode ? [{ debugName: "openOver" }] : /* istanbul ignore next */ []));
|
|
1230
|
+
/** Whether the navbar is expanded. */
|
|
1231
|
+
this.expanded = model(false, ...(ngDevMode ? [{ debugName: "expanded" }] : /* istanbul ignore next */ []));
|
|
1232
|
+
this.destroyRef.onDestroy(() => clearTimeout(this.buttonIconsRefresh));
|
|
1233
|
+
effect(() => {
|
|
1234
|
+
// Re-runs both when the projected elements change and when the navbar is expanded or collapsed.
|
|
1235
|
+
const expanded = this.expanded();
|
|
1236
|
+
this.rectangleElements().forEach((item) => {
|
|
1237
|
+
item.orientation = 'vertical';
|
|
1238
|
+
item.collapsed = !expanded;
|
|
1239
|
+
});
|
|
1240
|
+
this.refreshButtonIcons();
|
|
1241
|
+
});
|
|
1007
1242
|
}
|
|
1243
|
+
/** @docs-private */
|
|
1008
1244
|
ngAfterContentInit() {
|
|
1009
|
-
this.updateTooltipForItems();
|
|
1010
1245
|
super.ngAfterContentInit();
|
|
1011
1246
|
this.keyManager.withVerticalOrientation(true);
|
|
1012
1247
|
}
|
|
1248
|
+
/** Expands a collapsed navbar and collapses an expanded one. */
|
|
1013
1249
|
toggle() {
|
|
1014
|
-
|
|
1015
|
-
|
|
1250
|
+
// Untracked: called from a consumer's `effect()`, `expanded` read here would make the effect run again on every
|
|
1251
|
+
// expand and collapse.
|
|
1252
|
+
this.expanded.set(!untracked(this.expanded));
|
|
1016
1253
|
}
|
|
1254
|
+
/** @docs-private */
|
|
1017
1255
|
onKeyDown(event) {
|
|
1018
1256
|
const keyCode = event.keyCode;
|
|
1257
|
+
// The origin of the last focus event may be a click, and an item takes no DOM focus for a pointer origin.
|
|
1258
|
+
this.keyManager.setFocusOrigin('keyboard');
|
|
1019
1259
|
if (!event.target.attributes.getNamedItem('kbqinput') &&
|
|
1020
1260
|
(isVerticalMovement(event) || isHorizontalMovement(event))) {
|
|
1021
1261
|
event.preventDefault();
|
|
@@ -1034,65 +1274,159 @@ class KbqVerticalNavbar extends KbqFocusableComponent {
|
|
|
1034
1274
|
this.keyManager.onKeydown(event);
|
|
1035
1275
|
}
|
|
1036
1276
|
}
|
|
1037
|
-
|
|
1038
|
-
|
|
1039
|
-
|
|
1040
|
-
|
|
1041
|
-
|
|
1042
|
-
|
|
1277
|
+
/**
|
|
1278
|
+
* Buttons projected into the items re-pick their icon-only modifier from the rendered width, so the pass
|
|
1279
|
+
* has to wait for the collapsed/expanded classes to reach the DOM. One deferred pass over every item, not
|
|
1280
|
+
* one timer per item.
|
|
1281
|
+
*/
|
|
1282
|
+
refreshButtonIcons() {
|
|
1283
|
+
const elements = this.rectangleElements();
|
|
1284
|
+
// A pending pass is replaced: every element of it that is still projected is among these.
|
|
1285
|
+
clearTimeout(this.buttonIconsRefresh);
|
|
1286
|
+
if (!elements.length)
|
|
1287
|
+
return;
|
|
1288
|
+
this.buttonIconsRefresh = setTimeout(() => elements.forEach((item) => item.button()?.updateClassModifierForIcons()));
|
|
1289
|
+
}
|
|
1290
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: KbqVerticalNavbar, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1291
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.2.25", type: KbqVerticalNavbar, isStandalone: true, selector: "kbq-vertical-navbar", inputs: { openOver: { classPropertyName: "openOver", publicName: "openOver", isSignal: true, isRequired: false, transformFunction: null }, expanded: { classPropertyName: "expanded", publicName: "expanded", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { expanded: "expandedChange" }, host: { attributes: { "role": "navigation" }, listeners: { "focus": "focus()", "blur": "blur()", "keydown": "onKeyDown($event)" }, properties: { "attr.aria-label": "ariaLabel()", "class.kbq-vertical-navbar_open-over": "openOver()", "attr.tabindex": "renderedTabIndex()", "attr.cdkMonitorSubtreeFocus": "true" }, classAttribute: "kbq-vertical-navbar" }, queries: [{ propertyName: "rectangleElements", predicate: i0.forwardRef(() => KbqNavbarRectangleElement), descendants: true, isSignal: true }, { propertyName: "items", predicate: i0.forwardRef(() => KbqNavbarItem), descendants: true, isSignal: true }, { propertyName: "bento", first: true, predicate: i0.forwardRef(() => KbqNavbarBento), descendants: true, isSignal: true }], exportAs: ["KbqVerticalNavbar"], usesInheritance: true, hostDirectives: [{ directive: i1$1.CdkMonitorFocus }, { directive: i2.KbqLocaleOverridesDirective, inputs: ["kbqLocaleOverrides", "localeOverrides"] }, { directive: i2.KbqOverlayLayerExclude }], ngImport: i0, template: `
|
|
1292
|
+
<div
|
|
1293
|
+
class="kbq-vertical-navbar__container"
|
|
1294
|
+
[class.kbq-collapsed]="!expanded()"
|
|
1295
|
+
[class.kbq-expanded]="expanded()"
|
|
1296
|
+
>
|
|
1043
1297
|
<ng-content select="[kbq-navbar-container], kbq-navbar-container" />
|
|
1044
1298
|
<ng-content select="[kbq-navbar-toggle], kbq-navbar-toggle" />
|
|
1045
1299
|
</div>
|
|
1046
|
-
`, isInline: true, styles: ["button.kbq-navbar-item,button.kbq-navbar-brand{background:transparent;border:none}.kbq-vertical-navbar{display:flex;flex-shrink:0;position:relative;min-width:var(--kbq-size-6xl);height:100%}.kbq-vertical-navbar:not(:hover,.kbq-hovered,.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{box-sizing:border-box;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-hovered:not(.kbq-disabled):not(.kbq-navbar-item_has-nested):after,.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.kbq-hovered:not(.kbq-disabled) .kbq-navbar-title,.kbq-navbar-item:hover:not(.kbq-disabled) .kbq-navbar-title{color:var(--kbq-navbar-item-states-hover-content-text)}.kbq-navbar-item.kbq-hovered:not(.kbq-disabled)>.kbq-icon.kbq-empty,.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.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.kbq-navbar-focusable-item{outline:none}.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{pointer-events:none;cursor:default}.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}.kbq-navbar-item.kbq-vertical .kbq-navbar-item__container{gap:var(--kbq-size-m)}.kbq-navbar-item.kbq-vertical{padding-right:var(--kbq-size-xl);padding-left:var(--kbq-size-xl)}.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-navbar-bento+.kbq-navbar-brand.kbq-vertical{padding:var(--kbq-size-xxs) var(--kbq-size-m) var(--kbq-size-m)}.kbq-navbar-item.kbq-vertical.kbq-navbar-bento+.kbq-navbar-brand.kbq-vertical:after{top: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;transition:opacity .15s ease-out,margin-left .15s ease-out}.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,.kbq-navbar-item.kbq-vertical.kbq-expanded.kbq-navbar-bento.kbq-active .kbq-navbar-item__title,.kbq-navbar-item.kbq-vertical.kbq-expanded.kbq-navbar-bento.kbq-pressed .kbq-navbar-item__title{margin-left:0;opacity:1}.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-badge-filled.kbq-badge_fade-contrast{background:linear-gradient(var(--kbq-background-contrast-fade),var(--kbq-background-contrast-fade)),var(--kbq-background-bg-tertiary)}.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:not(.kbq-disabled) .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{box-sizing:content-box;max-width:154px;padding-right:var(--kbq-size-m)}.kbq-navbar-brand.kbq-vertical{flex-direction:row;align-items:center;padding:var(--kbq-size-m)}.kbq-navbar-brand.kbq-vertical:after{top:var(--kbq-size-s);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-navbar-brand_long-title .kbq-navbar-title{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;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-disabled{cursor:default}.kbq-navbar-brand.kbq-navbar-brand_link:not(.kbq-disabled){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.cdk-focused.cdk-keyboard-focused:not(.kbq-disabled){outline:none}.kbq-navbar-brand.kbq-navbar-brand_link.cdk-focused.cdk-keyboard-focused:not(.kbq-disabled):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.kbq-vertical:hover:not(.kbq-disabled) .kbq-navbar-logo{transform:scale(1.06)}.kbq-navbar-brand.kbq-navbar-brand_link.kbq-horizontal:hover:not(.kbq-disabled) .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);line-height:16px}\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 }); }
|
|
1300
|
+
`, isInline: true, styles: ["button.kbq-navbar-item,button.kbq-navbar-brand{background:transparent;border:none}.kbq-vertical-navbar{display:flex;flex-shrink:0;position:relative;min-width:var(--kbq-size-6xl);height:100%}.kbq-vertical-navbar:not(:hover,.kbq-hovered,.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{box-sizing:border-box;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:var(--kbq-navbar-vertical-size-expanded-width)}.kbq-vertical-navbar.kbq-vertical-navbar_open-over .kbq-vertical-navbar__container{position:absolute;z-index:var(--kbq-navbar-vertical-open-over-z-index)}.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)}.kbq-navbar-item .kbq-navbar-item-suffix.kbq-icon.kbq-empty,.kbq-navbar-item .kbq-navbar-item-suffix .kbq-icon.kbq-empty{color:var(--kbq-navbar-item-default-content-icon-right)}.kbq-navbar-item.kbq-hovered:not(.kbq-disabled):not(.kbq-navbar-item_has-nested):after,.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.kbq-hovered:not(.kbq-disabled) .kbq-navbar-title,.kbq-navbar-item:hover:not(.kbq-disabled) .kbq-navbar-title{color:var(--kbq-navbar-item-states-hover-content-text)}.kbq-navbar-item.kbq-hovered:not(.kbq-disabled)>.kbq-icon.kbq-empty,.kbq-navbar-item:hover:not(.kbq-disabled)>.kbq-icon.kbq-empty{color:var(--kbq-navbar-item-states-hover-content-icon-left)}.kbq-navbar-item.kbq-hovered:not(.kbq-disabled) .kbq-navbar-item-suffix.kbq-icon.kbq-empty,.kbq-navbar-item.kbq-hovered:not(.kbq-disabled) .kbq-navbar-item-suffix .kbq-icon.kbq-empty,.kbq-navbar-item:hover:not(.kbq-disabled) .kbq-navbar-item-suffix.kbq-icon.kbq-empty,.kbq-navbar-item:hover:not(.kbq-disabled) .kbq-navbar-item-suffix .kbq-icon.kbq-empty{color:var(--kbq-navbar-item-states-hover-content-icon-right)}.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)}.kbq-navbar-item:active:not(.kbq-disabled) .kbq-navbar-item-suffix.kbq-icon.kbq-empty,.kbq-navbar-item:active:not(.kbq-disabled) .kbq-navbar-item-suffix .kbq-icon.kbq-empty,.kbq-navbar-item.kbq-active:not(.kbq-disabled) .kbq-navbar-item-suffix.kbq-icon.kbq-empty,.kbq-navbar-item.kbq-active:not(.kbq-disabled) .kbq-navbar-item-suffix .kbq-icon.kbq-empty{color:var(--kbq-navbar-item-states-selected-content-icon-right)}.kbq-navbar-item.kbq-navbar-focusable-item{outline:none}.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)}.kbq-navbar-item.kbq-disabled .kbq-navbar-item-suffix.kbq-icon.kbq-empty,.kbq-navbar-item.kbq-disabled .kbq-navbar-item-suffix .kbq-icon.kbq-empty{color:var(--kbq-navbar-item-states-disabled-content-icon-right)}.kbq-navbar-item.kbq-disabled{pointer-events:none;cursor:default}.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", "@charset \"UTF-8\";.kbq-truncate-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kbq-navbar-item.kbq-vertical{height:var(--kbq-navbar-item-vertical-size-height)}.kbq-navbar-item.kbq-vertical .kbq-navbar-item__container{gap:var(--kbq-size-m)}.kbq-navbar-item.kbq-vertical .kbq-navbar-item-suffix{margin-left:auto}.kbq-navbar-item.kbq-vertical{padding-right:var(--kbq-size-xl);padding-left:var(--kbq-size-xl)}.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-navbar-bento+.kbq-navbar-brand.kbq-vertical{padding:var(--kbq-size-xxs) var(--kbq-size-m) var(--kbq-size-m)}.kbq-navbar-item.kbq-vertical.kbq-navbar-bento+.kbq-navbar-brand.kbq-vertical:after{top:0}.kbq-navbar-item.kbq-vertical.kbq-expanded{align-items:center;gap:var(--kbq-size-m)}.kbq-navbar-item.kbq-vertical.kbq-expanded .kbq-badge{position:static}.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:calc(-1 * var(--kbq-size-s));opacity:0;transition:opacity .15s ease-out,margin-left .15s ease-out}.kbq-navbar-item.kbq-vertical.kbq-expanded.kbq-navbar-bento .kbq-navbar-item__title.kbq-animations-disabled{animation:none;transition:none}@media(prefers-reduced-motion:reduce){.kbq-navbar-item.kbq-vertical.kbq-expanded.kbq-navbar-bento .kbq-navbar-item__title{animation:none;transition:none}}.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,.kbq-navbar-item.kbq-vertical.kbq-expanded.kbq-navbar-bento.kbq-active .kbq-navbar-item__title,.kbq-navbar-item.kbq-vertical.kbq-expanded.kbq-navbar-bento.kbq-pressed .kbq-navbar-item__title{margin-left:0;opacity:1}.kbq-navbar-item.kbq-vertical.kbq-collapsed{width:var(--kbq-size-6xl);justify-content:center}.kbq-navbar-item.kbq-vertical.kbq-collapsed .kbq-badge{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-suffix{margin-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{top:calc(-1 * var(--kbq-size-3xs));right:calc(-1 * var(--kbq-size-3xs))}.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)}@supports (corner-shape: squircle){.kbq-navbar-item{corner-shape:squircle;border-radius:clamp(var(--kbq-navbar-item-size-content-border-radius) * 1.85,var(--kbq-navbar-item-size-content-border-radius) * 2.3 - 3.6px,var(--kbq-navbar-item-size-content-border-radius) * 2)}}.kbq-navbar-item .kbq-icon{min-width:var(--kbq-size-l);min-height:var(--kbq-size-l)}.kbq-navbar-item .kbq-badge-filled.kbq-badge_fade-contrast{background:linear-gradient(var(--kbq-background-contrast-fade),var(--kbq-background-contrast-fade)),var(--kbq-background-bg-tertiary)}.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)}@supports (corner-shape: squircle){.kbq-navbar-item:after{corner-shape:squircle;border-radius:clamp(var(--kbq-navbar-item-size-content-border-radius) * 1.85,var(--kbq-navbar-item-size-content-border-radius) * 2.3 - 3.6px,var(--kbq-navbar-item-size-content-border-radius) * 2)}}.kbq-navbar-item .kbq-badge{position:absolute;z-index:1}.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)}@supports (corner-shape: squircle){.kbq-navbar-brand{corner-shape:squircle;border-radius:clamp(var(--kbq-size-s) * 1.85,var(--kbq-size-s) * 2.3 - 3.6px,var(--kbq-size-s) * 2)}}.kbq-navbar-brand:after{position:absolute;content:\"\";display:none;border-radius:var(--kbq-navbar-item-size-content-border-radius)}@supports (corner-shape: squircle){.kbq-navbar-brand:after{corner-shape:squircle;border-radius:clamp(var(--kbq-navbar-item-size-content-border-radius) * 1.85,var(--kbq-navbar-item-size-content-border-radius) * 2.3 - 3.6px,var(--kbq-navbar-item-size-content-border-radius) * 2)}}.kbq-navbar-brand:not(.kbq-disabled) .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{box-sizing:content-box;max-width:154px;padding-right:var(--kbq-size-m)}.kbq-navbar-brand.kbq-vertical{flex-direction:row;align-items:center;padding:var(--kbq-size-m)}.kbq-navbar-brand.kbq-vertical:after{top:var(--kbq-size-s);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:var(--kbq-navbar-brand-vertical-size-title-max-width)}.kbq-navbar-brand.kbq-vertical.kbq-collapsed .kbq-navbar-title{display:none}.kbq-navbar-brand.kbq-navbar-brand_long-title .kbq-navbar-title{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;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)}.kbq-navbar-brand .kbq-navbar-item-suffix.kbq-icon.kbq-empty,.kbq-navbar-brand .kbq-navbar-item-suffix .kbq-icon.kbq-empty{color:var(--kbq-navbar-item-default-content-icon-right)}.kbq-navbar-brand.kbq-disabled{cursor:default}.kbq-navbar-brand.kbq-navbar-brand_link:not(.kbq-disabled){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)}.kbq-navbar-brand.kbq-navbar-brand_link:hover:not(.kbq-disabled) .kbq-navbar-item-suffix.kbq-icon.kbq-empty,.kbq-navbar-brand.kbq-navbar-brand_link:hover:not(.kbq-disabled) .kbq-navbar-item-suffix .kbq-icon.kbq-empty{color:var(--kbq-navbar-item-states-hover-content-icon-right)}.kbq-navbar-brand.kbq-navbar-brand_link.cdk-focused.cdk-keyboard-focused:not(.kbq-disabled){outline:none}.kbq-navbar-brand.kbq-navbar-brand_link.cdk-focused.cdk-keyboard-focused:not(.kbq-disabled):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)}.kbq-navbar-brand.kbq-navbar-brand_link:active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand) .kbq-navbar-item-suffix.kbq-icon.kbq-empty,.kbq-navbar-brand.kbq-navbar-brand_link:active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand) .kbq-navbar-item-suffix .kbq-icon.kbq-empty,.kbq-navbar-brand.kbq-navbar-brand_link.kbq-active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand) .kbq-navbar-item-suffix.kbq-icon.kbq-empty,.kbq-navbar-brand.kbq-navbar-brand_link.kbq-active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand) .kbq-navbar-item-suffix .kbq-icon.kbq-empty{color:var(--kbq-navbar-item-states-selected-content-icon-right)}.kbq-navbar-brand.kbq-navbar-brand_link.kbq-vertical:hover:not(.kbq-disabled) .kbq-navbar-logo{transform:scale(1.06)}.kbq-navbar-brand.kbq-navbar-brand_link.kbq-horizontal:hover:not(.kbq-disabled) .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);line-height:16px}\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:var(--kbq-size-m);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-item-vertical-size-height: 41px;--kbq-navbar-vertical-size-expanded-width: 240px;--kbq-navbar-brand-vertical-size-title-max-width: 200px;--kbq-navbar-toggle-size-circle: 28px;--kbq-navbar-z-index: 990;--kbq-navbar-vertical-open-over-z-index: 989;--kbq-navbar-toggle-z-index: 991;--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 }); }
|
|
1047
1301
|
}
|
|
1048
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1302
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: KbqVerticalNavbar, decorators: [{
|
|
1049
1303
|
type: Component,
|
|
1050
1304
|
args: [{ selector: 'kbq-vertical-navbar', template: `
|
|
1051
|
-
<div
|
|
1305
|
+
<div
|
|
1306
|
+
class="kbq-vertical-navbar__container"
|
|
1307
|
+
[class.kbq-collapsed]="!expanded()"
|
|
1308
|
+
[class.kbq-expanded]="expanded()"
|
|
1309
|
+
>
|
|
1052
1310
|
<ng-content select="[kbq-navbar-container], kbq-navbar-container" />
|
|
1053
1311
|
<ng-content select="[kbq-navbar-toggle], kbq-navbar-toggle" />
|
|
1054
1312
|
</div>
|
|
1055
1313
|
`, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
|
|
1056
1314
|
class: 'kbq-vertical-navbar',
|
|
1315
|
+
role: 'navigation',
|
|
1316
|
+
'[attr.aria-label]': 'ariaLabel()',
|
|
1057
1317
|
'[class.kbq-vertical-navbar_open-over]': 'openOver()',
|
|
1058
|
-
'[attr.tabindex]': '
|
|
1318
|
+
'[attr.tabindex]': 'renderedTabIndex()',
|
|
1059
1319
|
'[attr.cdkMonitorSubtreeFocus]': 'true',
|
|
1060
1320
|
'(focus)': 'focus()',
|
|
1061
1321
|
'(blur)': 'blur()',
|
|
1062
1322
|
'(keydown)': 'onKeyDown($event)'
|
|
1063
|
-
}, hostDirectives: [CdkMonitorFocus], exportAs: 'KbqVerticalNavbar', styles: ["button.kbq-navbar-item,button.kbq-navbar-brand{background:transparent;border:none}.kbq-vertical-navbar{display:flex;flex-shrink:0;position:relative;min-width:var(--kbq-size-6xl);height:100%}.kbq-vertical-navbar:not(:hover,.kbq-hovered,.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{box-sizing:border-box;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-hovered:not(.kbq-disabled):not(.kbq-navbar-item_has-nested):after,.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.kbq-hovered:not(.kbq-disabled) .kbq-navbar-title,.kbq-navbar-item:hover:not(.kbq-disabled) .kbq-navbar-title{color:var(--kbq-navbar-item-states-hover-content-text)}.kbq-navbar-item.kbq-hovered:not(.kbq-disabled)>.kbq-icon.kbq-empty,.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.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.kbq-navbar-focusable-item{outline:none}.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{pointer-events:none;cursor:default}.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}.kbq-navbar-item.kbq-vertical .kbq-navbar-item__container{gap:var(--kbq-size-m)}.kbq-navbar-item.kbq-vertical{padding-right:var(--kbq-size-xl);padding-left:var(--kbq-size-xl)}.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-navbar-bento+.kbq-navbar-brand.kbq-vertical{padding:var(--kbq-size-xxs) var(--kbq-size-m) var(--kbq-size-m)}.kbq-navbar-item.kbq-vertical.kbq-navbar-bento+.kbq-navbar-brand.kbq-vertical:after{top: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;transition:opacity .15s ease-out,margin-left .15s ease-out}.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,.kbq-navbar-item.kbq-vertical.kbq-expanded.kbq-navbar-bento.kbq-active .kbq-navbar-item__title,.kbq-navbar-item.kbq-vertical.kbq-expanded.kbq-navbar-bento.kbq-pressed .kbq-navbar-item__title{margin-left:0;opacity:1}.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-badge-filled.kbq-badge_fade-contrast{background:linear-gradient(var(--kbq-background-contrast-fade),var(--kbq-background-contrast-fade)),var(--kbq-background-bg-tertiary)}.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:not(.kbq-disabled) .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{box-sizing:content-box;max-width:154px;padding-right:var(--kbq-size-m)}.kbq-navbar-brand.kbq-vertical{flex-direction:row;align-items:center;padding:var(--kbq-size-m)}.kbq-navbar-brand.kbq-vertical:after{top:var(--kbq-size-s);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-navbar-brand_long-title .kbq-navbar-title{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;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-disabled{cursor:default}.kbq-navbar-brand.kbq-navbar-brand_link:not(.kbq-disabled){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.cdk-focused.cdk-keyboard-focused:not(.kbq-disabled){outline:none}.kbq-navbar-brand.kbq-navbar-brand_link.cdk-focused.cdk-keyboard-focused:not(.kbq-disabled):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.kbq-vertical:hover:not(.kbq-disabled) .kbq-navbar-logo{transform:scale(1.06)}.kbq-navbar-brand.kbq-navbar-brand_link.kbq-horizontal:hover:not(.kbq-disabled) .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);line-height:16px}\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"] }]
|
|
1064
|
-
|
|
1065
|
-
|
|
1066
|
-
|
|
1323
|
+
}, hostDirectives: [
|
|
1324
|
+
CdkMonitorFocus,
|
|
1325
|
+
{ directive: KbqLocaleOverridesDirective, inputs: ['kbqLocaleOverrides: localeOverrides'] },
|
|
1326
|
+
KbqOverlayLayerExclude
|
|
1327
|
+
], exportAs: 'KbqVerticalNavbar', styles: ["button.kbq-navbar-item,button.kbq-navbar-brand{background:transparent;border:none}.kbq-vertical-navbar{display:flex;flex-shrink:0;position:relative;min-width:var(--kbq-size-6xl);height:100%}.kbq-vertical-navbar:not(:hover,.kbq-hovered,.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{box-sizing:border-box;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:var(--kbq-navbar-vertical-size-expanded-width)}.kbq-vertical-navbar.kbq-vertical-navbar_open-over .kbq-vertical-navbar__container{position:absolute;z-index:var(--kbq-navbar-vertical-open-over-z-index)}.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)}.kbq-navbar-item .kbq-navbar-item-suffix.kbq-icon.kbq-empty,.kbq-navbar-item .kbq-navbar-item-suffix .kbq-icon.kbq-empty{color:var(--kbq-navbar-item-default-content-icon-right)}.kbq-navbar-item.kbq-hovered:not(.kbq-disabled):not(.kbq-navbar-item_has-nested):after,.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.kbq-hovered:not(.kbq-disabled) .kbq-navbar-title,.kbq-navbar-item:hover:not(.kbq-disabled) .kbq-navbar-title{color:var(--kbq-navbar-item-states-hover-content-text)}.kbq-navbar-item.kbq-hovered:not(.kbq-disabled)>.kbq-icon.kbq-empty,.kbq-navbar-item:hover:not(.kbq-disabled)>.kbq-icon.kbq-empty{color:var(--kbq-navbar-item-states-hover-content-icon-left)}.kbq-navbar-item.kbq-hovered:not(.kbq-disabled) .kbq-navbar-item-suffix.kbq-icon.kbq-empty,.kbq-navbar-item.kbq-hovered:not(.kbq-disabled) .kbq-navbar-item-suffix .kbq-icon.kbq-empty,.kbq-navbar-item:hover:not(.kbq-disabled) .kbq-navbar-item-suffix.kbq-icon.kbq-empty,.kbq-navbar-item:hover:not(.kbq-disabled) .kbq-navbar-item-suffix .kbq-icon.kbq-empty{color:var(--kbq-navbar-item-states-hover-content-icon-right)}.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)}.kbq-navbar-item:active:not(.kbq-disabled) .kbq-navbar-item-suffix.kbq-icon.kbq-empty,.kbq-navbar-item:active:not(.kbq-disabled) .kbq-navbar-item-suffix .kbq-icon.kbq-empty,.kbq-navbar-item.kbq-active:not(.kbq-disabled) .kbq-navbar-item-suffix.kbq-icon.kbq-empty,.kbq-navbar-item.kbq-active:not(.kbq-disabled) .kbq-navbar-item-suffix .kbq-icon.kbq-empty{color:var(--kbq-navbar-item-states-selected-content-icon-right)}.kbq-navbar-item.kbq-navbar-focusable-item{outline:none}.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)}.kbq-navbar-item.kbq-disabled .kbq-navbar-item-suffix.kbq-icon.kbq-empty,.kbq-navbar-item.kbq-disabled .kbq-navbar-item-suffix .kbq-icon.kbq-empty{color:var(--kbq-navbar-item-states-disabled-content-icon-right)}.kbq-navbar-item.kbq-disabled{pointer-events:none;cursor:default}.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", "@charset \"UTF-8\";.kbq-truncate-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kbq-navbar-item.kbq-vertical{height:var(--kbq-navbar-item-vertical-size-height)}.kbq-navbar-item.kbq-vertical .kbq-navbar-item__container{gap:var(--kbq-size-m)}.kbq-navbar-item.kbq-vertical .kbq-navbar-item-suffix{margin-left:auto}.kbq-navbar-item.kbq-vertical{padding-right:var(--kbq-size-xl);padding-left:var(--kbq-size-xl)}.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-navbar-bento+.kbq-navbar-brand.kbq-vertical{padding:var(--kbq-size-xxs) var(--kbq-size-m) var(--kbq-size-m)}.kbq-navbar-item.kbq-vertical.kbq-navbar-bento+.kbq-navbar-brand.kbq-vertical:after{top:0}.kbq-navbar-item.kbq-vertical.kbq-expanded{align-items:center;gap:var(--kbq-size-m)}.kbq-navbar-item.kbq-vertical.kbq-expanded .kbq-badge{position:static}.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:calc(-1 * var(--kbq-size-s));opacity:0;transition:opacity .15s ease-out,margin-left .15s ease-out}.kbq-navbar-item.kbq-vertical.kbq-expanded.kbq-navbar-bento .kbq-navbar-item__title.kbq-animations-disabled{animation:none;transition:none}@media(prefers-reduced-motion:reduce){.kbq-navbar-item.kbq-vertical.kbq-expanded.kbq-navbar-bento .kbq-navbar-item__title{animation:none;transition:none}}.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,.kbq-navbar-item.kbq-vertical.kbq-expanded.kbq-navbar-bento.kbq-active .kbq-navbar-item__title,.kbq-navbar-item.kbq-vertical.kbq-expanded.kbq-navbar-bento.kbq-pressed .kbq-navbar-item__title{margin-left:0;opacity:1}.kbq-navbar-item.kbq-vertical.kbq-collapsed{width:var(--kbq-size-6xl);justify-content:center}.kbq-navbar-item.kbq-vertical.kbq-collapsed .kbq-badge{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-suffix{margin-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{top:calc(-1 * var(--kbq-size-3xs));right:calc(-1 * var(--kbq-size-3xs))}.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)}@supports (corner-shape: squircle){.kbq-navbar-item{corner-shape:squircle;border-radius:clamp(var(--kbq-navbar-item-size-content-border-radius) * 1.85,var(--kbq-navbar-item-size-content-border-radius) * 2.3 - 3.6px,var(--kbq-navbar-item-size-content-border-radius) * 2)}}.kbq-navbar-item .kbq-icon{min-width:var(--kbq-size-l);min-height:var(--kbq-size-l)}.kbq-navbar-item .kbq-badge-filled.kbq-badge_fade-contrast{background:linear-gradient(var(--kbq-background-contrast-fade),var(--kbq-background-contrast-fade)),var(--kbq-background-bg-tertiary)}.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)}@supports (corner-shape: squircle){.kbq-navbar-item:after{corner-shape:squircle;border-radius:clamp(var(--kbq-navbar-item-size-content-border-radius) * 1.85,var(--kbq-navbar-item-size-content-border-radius) * 2.3 - 3.6px,var(--kbq-navbar-item-size-content-border-radius) * 2)}}.kbq-navbar-item .kbq-badge{position:absolute;z-index:1}.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)}@supports (corner-shape: squircle){.kbq-navbar-brand{corner-shape:squircle;border-radius:clamp(var(--kbq-size-s) * 1.85,var(--kbq-size-s) * 2.3 - 3.6px,var(--kbq-size-s) * 2)}}.kbq-navbar-brand:after{position:absolute;content:\"\";display:none;border-radius:var(--kbq-navbar-item-size-content-border-radius)}@supports (corner-shape: squircle){.kbq-navbar-brand:after{corner-shape:squircle;border-radius:clamp(var(--kbq-navbar-item-size-content-border-radius) * 1.85,var(--kbq-navbar-item-size-content-border-radius) * 2.3 - 3.6px,var(--kbq-navbar-item-size-content-border-radius) * 2)}}.kbq-navbar-brand:not(.kbq-disabled) .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{box-sizing:content-box;max-width:154px;padding-right:var(--kbq-size-m)}.kbq-navbar-brand.kbq-vertical{flex-direction:row;align-items:center;padding:var(--kbq-size-m)}.kbq-navbar-brand.kbq-vertical:after{top:var(--kbq-size-s);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:var(--kbq-navbar-brand-vertical-size-title-max-width)}.kbq-navbar-brand.kbq-vertical.kbq-collapsed .kbq-navbar-title{display:none}.kbq-navbar-brand.kbq-navbar-brand_long-title .kbq-navbar-title{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;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)}.kbq-navbar-brand .kbq-navbar-item-suffix.kbq-icon.kbq-empty,.kbq-navbar-brand .kbq-navbar-item-suffix .kbq-icon.kbq-empty{color:var(--kbq-navbar-item-default-content-icon-right)}.kbq-navbar-brand.kbq-disabled{cursor:default}.kbq-navbar-brand.kbq-navbar-brand_link:not(.kbq-disabled){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)}.kbq-navbar-brand.kbq-navbar-brand_link:hover:not(.kbq-disabled) .kbq-navbar-item-suffix.kbq-icon.kbq-empty,.kbq-navbar-brand.kbq-navbar-brand_link:hover:not(.kbq-disabled) .kbq-navbar-item-suffix .kbq-icon.kbq-empty{color:var(--kbq-navbar-item-states-hover-content-icon-right)}.kbq-navbar-brand.kbq-navbar-brand_link.cdk-focused.cdk-keyboard-focused:not(.kbq-disabled){outline:none}.kbq-navbar-brand.kbq-navbar-brand_link.cdk-focused.cdk-keyboard-focused:not(.kbq-disabled):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)}.kbq-navbar-brand.kbq-navbar-brand_link:active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand) .kbq-navbar-item-suffix.kbq-icon.kbq-empty,.kbq-navbar-brand.kbq-navbar-brand_link:active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand) .kbq-navbar-item-suffix .kbq-icon.kbq-empty,.kbq-navbar-brand.kbq-navbar-brand_link.kbq-active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand) .kbq-navbar-item-suffix.kbq-icon.kbq-empty,.kbq-navbar-brand.kbq-navbar-brand_link.kbq-active:not(.kbq-disabled,.kbq-vertical.kbq-navbar-brand) .kbq-navbar-item-suffix .kbq-icon.kbq-empty{color:var(--kbq-navbar-item-states-selected-content-icon-right)}.kbq-navbar-brand.kbq-navbar-brand_link.kbq-vertical:hover:not(.kbq-disabled) .kbq-navbar-logo{transform:scale(1.06)}.kbq-navbar-brand.kbq-navbar-brand_link.kbq-horizontal:hover:not(.kbq-disabled) .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);line-height:16px}\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:var(--kbq-size-m);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-item-vertical-size-height: 41px;--kbq-navbar-vertical-size-expanded-width: 240px;--kbq-navbar-brand-vertical-size-title-max-width: 200px;--kbq-navbar-toggle-size-circle: 28px;--kbq-navbar-z-index: 990;--kbq-navbar-vertical-open-over-z-index: 989;--kbq-navbar-toggle-z-index: 991;--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"] }]
|
|
1328
|
+
}], ctorParameters: () => [], propDecorators: { rectangleElements: [{ type: i0.ContentChildren, args: [forwardRef(() => KbqNavbarRectangleElement), { ...{ descendants: true }, isSignal: true }] }], items: [{ type: i0.ContentChildren, args: [forwardRef(() => KbqNavbarItem), { ...{ descendants: true }, isSignal: true }] }], bento: [{ type: i0.ContentChild, args: [forwardRef(() => KbqNavbarBento), { isSignal: true }] }], openOver: [{ type: i0.Input, args: [{ isSignal: true, alias: "openOver", required: false }] }], expanded: [{ type: i0.Input, args: [{ isSignal: true, alias: "expanded", required: false }] }, { type: i0.Output, args: ["expandedChange"] }] } });
|
|
1067
1329
|
|
|
1068
|
-
|
|
1330
|
+
/**
|
|
1331
|
+
* Dispatches the global `Ctrl+/` shortcut to exactly one navbar toggle.
|
|
1332
|
+
*
|
|
1333
|
+
* Every toggle used to bind its own window listener and call `toggle()` unconditionally, so a single keypress
|
|
1334
|
+
* collapsed *every* vertical navbar on the page. One shared listener instead picks the toggle whose navbar
|
|
1335
|
+
* currently holds focus, and falls back to the first registered one so the shortcut still works from anywhere.
|
|
1336
|
+
*
|
|
1337
|
+
* @docs-private
|
|
1338
|
+
*/
|
|
1339
|
+
class KbqNavbarToggleRegistry {
|
|
1069
1340
|
constructor() {
|
|
1070
1341
|
this.window = inject(KBQ_WINDOW);
|
|
1342
|
+
this.document = inject(DOCUMENT);
|
|
1071
1343
|
this.ngZone = inject(NgZone);
|
|
1072
|
-
this.
|
|
1344
|
+
this.toggles = new Set();
|
|
1345
|
+
this.handleKeydown = (event) => {
|
|
1346
|
+
if (!event.ctrlKey || ![NUMPAD_DIVIDE, SLASH].includes(event.keyCode))
|
|
1347
|
+
return;
|
|
1348
|
+
const target = this.resolveTarget();
|
|
1349
|
+
if (!target)
|
|
1350
|
+
return;
|
|
1351
|
+
this.ngZone.run(() => target.toggle());
|
|
1352
|
+
};
|
|
1353
|
+
}
|
|
1354
|
+
/** Starts listening for the shortcut on behalf of the given toggle. */
|
|
1355
|
+
add(toggle) {
|
|
1356
|
+
if (this.toggles.size === 0) {
|
|
1357
|
+
this.ngZone.runOutsideAngular(() => this.window.addEventListener('keydown', this.handleKeydown));
|
|
1358
|
+
}
|
|
1359
|
+
this.toggles.add(toggle);
|
|
1360
|
+
}
|
|
1361
|
+
/** Stops dispatching the shortcut to the given toggle. */
|
|
1362
|
+
remove(toggle) {
|
|
1363
|
+
this.toggles.delete(toggle);
|
|
1364
|
+
if (this.toggles.size === 0) {
|
|
1365
|
+
this.window.removeEventListener('keydown', this.handleKeydown);
|
|
1366
|
+
}
|
|
1367
|
+
}
|
|
1368
|
+
ngOnDestroy() {
|
|
1369
|
+
this.window.removeEventListener('keydown', this.handleKeydown);
|
|
1370
|
+
this.toggles.clear();
|
|
1371
|
+
}
|
|
1372
|
+
resolveTarget() {
|
|
1373
|
+
const toggles = [...this.toggles];
|
|
1374
|
+
const activeElement = this.document.activeElement;
|
|
1375
|
+
const focused = activeElement && toggles.find((toggle) => toggle.contains(activeElement));
|
|
1376
|
+
return focused || toggles[0];
|
|
1377
|
+
}
|
|
1378
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: KbqNavbarToggleRegistry, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
1379
|
+
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: KbqNavbarToggleRegistry, providedIn: 'root' }); }
|
|
1380
|
+
}
|
|
1381
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: KbqNavbarToggleRegistry, decorators: [{
|
|
1382
|
+
type: Injectable,
|
|
1383
|
+
args: [{ providedIn: 'root' }]
|
|
1384
|
+
}] });
|
|
1385
|
+
class KbqNavbarToggle {
|
|
1386
|
+
/** Accessible name of the toggle; it names the action the toggle performs. @docs-private */
|
|
1387
|
+
get label() {
|
|
1388
|
+
return this.navbar.expanded()
|
|
1389
|
+
? this.navbar.localeConfiguration().toggle.collapse
|
|
1390
|
+
: this.navbar.localeConfiguration().toggle.expand;
|
|
1391
|
+
}
|
|
1392
|
+
constructor() {
|
|
1393
|
+
this.nativeElement = kbqInjectNativeElement();
|
|
1394
|
+
this.registry = inject(KbqNavbarToggleRegistry);
|
|
1395
|
+
this.isBrowser = inject(Platform).isBrowser;
|
|
1073
1396
|
this.tooltip = inject(KbqTooltipTrigger, { self: true });
|
|
1074
1397
|
/** @docs-private */
|
|
1075
1398
|
this.navbar = inject(KbqVerticalNavbar);
|
|
1076
1399
|
this.updateTooltipContent = () => {
|
|
1077
|
-
this.tooltip.content = this.
|
|
1078
|
-
? this.navbar.configuration.toggle.collapse
|
|
1079
|
-
: this.navbar.configuration.toggle.expand;
|
|
1400
|
+
this.tooltip.content = this.label;
|
|
1080
1401
|
};
|
|
1081
|
-
this.
|
|
1082
|
-
|
|
1083
|
-
|
|
1084
|
-
}
|
|
1085
|
-
};
|
|
1086
|
-
afterNextRender(() => {
|
|
1087
|
-
this.ngZone.runOutsideAngular(() => this.window.addEventListener('keydown', this.windowToggleHandler));
|
|
1088
|
-
});
|
|
1402
|
+
if (this.isBrowser) {
|
|
1403
|
+
this.registry.add(this);
|
|
1404
|
+
}
|
|
1089
1405
|
this.tooltip.arrow = false;
|
|
1090
1406
|
this.updateTooltipContent();
|
|
1091
1407
|
this.tooltip.tooltipPlacement = PopUpPlacements.Right;
|
|
1092
1408
|
this.tooltip.visibleChange.pipe(takeUntilDestroyed()).subscribe(this.updateTooltipContent);
|
|
1409
|
+
// `content` is a plain property, so a tooltip that is already open keeps the string it was given.
|
|
1410
|
+
// Reading the navbar's signal-backed configuration here re-applies it on a locale change instead
|
|
1411
|
+
// of leaving the previous locale on screen until the next show.
|
|
1412
|
+
effect(() => this.updateTooltipContent());
|
|
1093
1413
|
}
|
|
1414
|
+
/** @docs-private */
|
|
1094
1415
|
ngOnDestroy() {
|
|
1095
|
-
this.
|
|
1416
|
+
this.registry.remove(this);
|
|
1417
|
+
}
|
|
1418
|
+
/** Whether the given element sits inside the navbar this toggle belongs to. @docs-private */
|
|
1419
|
+
contains(element) {
|
|
1420
|
+
return this.navbar.getNativeElement().contains(element) || this.nativeElement.contains(element);
|
|
1421
|
+
}
|
|
1422
|
+
/** toggles the state of the navbar */
|
|
1423
|
+
toggle() {
|
|
1424
|
+
// Untracked: called from a consumer's `effect()`, the state read on the way — `expanded`, the tooltip's — would
|
|
1425
|
+
// make the effect run again on every expand and collapse.
|
|
1426
|
+
untracked(() => {
|
|
1427
|
+
this.navbar.toggle();
|
|
1428
|
+
this.tooltip.hide();
|
|
1429
|
+
});
|
|
1096
1430
|
}
|
|
1097
1431
|
/** @docs-private */
|
|
1098
1432
|
keydownHandler($event) {
|
|
@@ -1102,26 +1436,20 @@ class KbqNavbarToggle {
|
|
|
1102
1436
|
$event.preventDefault();
|
|
1103
1437
|
}
|
|
1104
1438
|
}
|
|
1105
|
-
/**
|
|
1106
|
-
toggle() {
|
|
1107
|
-
this.navbar.toggle();
|
|
1108
|
-
this.tooltip.hide();
|
|
1109
|
-
this.changeDetectorRef.detectChanges();
|
|
1110
|
-
}
|
|
1111
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.30", ngImport: i0, type: KbqNavbarToggle, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1112
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.30", type: KbqNavbarToggle, isStandalone: true, 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.KbqTooltipTrigger }], ngImport: i0, template: `
|
|
1439
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: KbqNavbarToggle, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1440
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.25", type: KbqNavbarToggle, isStandalone: true, selector: "kbq-navbar-toggle, [kbq-navbar-toggle]", host: { attributes: { "role": "button", "aria-keyshortcuts": "Control+/" }, listeners: { "keydown": "keydownHandler($event)", "click": "toggle()" }, properties: { "class.kbq-collapsed": "!navbar.expanded()", "class.kbq-expanded": "navbar.expanded()", "attr.aria-expanded": "navbar.expanded()", "attr.aria-label": "label" }, classAttribute: "kbq-navbar-toggle kbq-vertical" }, hostDirectives: [{ directive: i1$1.CdkMonitorFocus }, { directive: i1.KbqTooltipTrigger }], ngImport: i0, template: `
|
|
1113
1441
|
<span class="kbq-navbar-toggle__circle">
|
|
1114
1442
|
<ng-content select="[kbq-icon]">
|
|
1115
1443
|
<i
|
|
1116
1444
|
kbq-icon
|
|
1117
|
-
[class.kbq-chevron-double-left-s_16]="navbar.expanded"
|
|
1118
|
-
[class.kbq-chevron-double-right-s_16]="!navbar.expanded"
|
|
1445
|
+
[class.kbq-chevron-double-left-s_16]="navbar.expanded()"
|
|
1446
|
+
[class.kbq-chevron-double-right-s_16]="!navbar.expanded()"
|
|
1119
1447
|
></i>
|
|
1120
1448
|
</ng-content>
|
|
1121
1449
|
</span>
|
|
1122
|
-
`, isInline: true, styles: [".kbq-navbar-toggle{position:absolute;top:var(--kbq-size-3xl);right:calc(-1 * var(--kbq-size-l));z-index:
|
|
1450
|
+
`, isInline: true, styles: [".kbq-navbar-toggle{position:absolute;top:var(--kbq-size-3xl);right:calc(-1 * var(--kbq-size-l));z-index:var(--kbq-navbar-toggle-z-index);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:var(--kbq-navbar-toggle-size-circle);height:var(--kbq-navbar-toggle-size-circle);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: "ngmodule", type: KbqIconModule }, { kind: "component", type: i3.KbqIcon, selector: "[kbq-icon]", inputs: ["aria-hidden", "iconSize", "autoColor", "kbq-icon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
1123
1451
|
}
|
|
1124
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1452
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: KbqNavbarToggle, decorators: [{
|
|
1125
1453
|
type: Component,
|
|
1126
1454
|
args: [{ selector: 'kbq-navbar-toggle, [kbq-navbar-toggle]', imports: [
|
|
1127
1455
|
KbqIconModule
|
|
@@ -1130,23 +1458,30 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.30", ngImpo
|
|
|
1130
1458
|
<ng-content select="[kbq-icon]">
|
|
1131
1459
|
<i
|
|
1132
1460
|
kbq-icon
|
|
1133
|
-
[class.kbq-chevron-double-left-s_16]="navbar.expanded"
|
|
1134
|
-
[class.kbq-chevron-double-right-s_16]="!navbar.expanded"
|
|
1461
|
+
[class.kbq-chevron-double-left-s_16]="navbar.expanded()"
|
|
1462
|
+
[class.kbq-chevron-double-right-s_16]="!navbar.expanded()"
|
|
1135
1463
|
></i>
|
|
1136
1464
|
</ng-content>
|
|
1137
1465
|
</span>
|
|
1138
1466
|
`, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
|
|
1139
1467
|
class: 'kbq-navbar-toggle kbq-vertical',
|
|
1140
|
-
'[class.kbq-collapsed]': '!navbar.expanded',
|
|
1141
|
-
'[class.kbq-expanded]': 'navbar.expanded',
|
|
1468
|
+
'[class.kbq-collapsed]': '!navbar.expanded()',
|
|
1469
|
+
'[class.kbq-expanded]': 'navbar.expanded()',
|
|
1470
|
+
// The toggle is icon-only and its tooltip is a transient overlay, never an accessible name. Role, name
|
|
1471
|
+
// and state are published on the host so assistive technology announces an expand/collapse control
|
|
1472
|
+
// instead of an unlabelled element.
|
|
1473
|
+
role: 'button',
|
|
1474
|
+
'[attr.aria-expanded]': 'navbar.expanded()',
|
|
1475
|
+
'[attr.aria-label]': 'label',
|
|
1476
|
+
'aria-keyshortcuts': 'Control+/',
|
|
1142
1477
|
'(keydown)': 'keydownHandler($event)',
|
|
1143
1478
|
'(click)': 'toggle()'
|
|
1144
|
-
}, hostDirectives: [CdkMonitorFocus, KbqTooltipTrigger], styles: [".kbq-navbar-toggle{position:absolute;top:var(--kbq-size-3xl);right:calc(-1 * var(--kbq-size-l));z-index:
|
|
1479
|
+
}, hostDirectives: [CdkMonitorFocus, KbqTooltipTrigger], styles: [".kbq-navbar-toggle{position:absolute;top:var(--kbq-size-3xl);right:calc(-1 * var(--kbq-size-l));z-index:var(--kbq-navbar-toggle-z-index);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:var(--kbq-navbar-toggle-size-circle);height:var(--kbq-navbar-toggle-size-circle);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"] }]
|
|
1145
1480
|
}], ctorParameters: () => [] });
|
|
1146
1481
|
|
|
1147
1482
|
class KbqNavbarModule {
|
|
1148
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1149
|
-
/** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
1483
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: KbqNavbarModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
1484
|
+
/** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.25", ngImport: i0, type: KbqNavbarModule, imports: [A11yModule,
|
|
1150
1485
|
PlatformModule,
|
|
1151
1486
|
KbqIconModule,
|
|
1152
1487
|
KbqToolTipModule,
|
|
@@ -1161,7 +1496,8 @@ class KbqNavbarModule {
|
|
|
1161
1496
|
KbqNavbarDivider,
|
|
1162
1497
|
KbqNavbarFocusableItem,
|
|
1163
1498
|
KbqNavbarRectangleElement,
|
|
1164
|
-
KbqNavbarBento
|
|
1499
|
+
KbqNavbarBento,
|
|
1500
|
+
KbqNavbarItemSuffix], exports: [KbqNavbar,
|
|
1165
1501
|
KbqNavbarContainer,
|
|
1166
1502
|
KbqNavbarTitle,
|
|
1167
1503
|
KbqNavbarItem,
|
|
@@ -1172,15 +1508,16 @@ class KbqNavbarModule {
|
|
|
1172
1508
|
KbqNavbarDivider,
|
|
1173
1509
|
KbqNavbarFocusableItem,
|
|
1174
1510
|
KbqNavbarRectangleElement,
|
|
1175
|
-
KbqNavbarBento
|
|
1176
|
-
|
|
1511
|
+
KbqNavbarBento,
|
|
1512
|
+
KbqNavbarItemSuffix] }); }
|
|
1513
|
+
/** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: KbqNavbarModule, imports: [A11yModule,
|
|
1177
1514
|
PlatformModule,
|
|
1178
1515
|
KbqIconModule,
|
|
1179
1516
|
KbqToolTipModule,
|
|
1180
1517
|
KbqNavbarItem,
|
|
1181
1518
|
KbqNavbarToggle] }); }
|
|
1182
1519
|
}
|
|
1183
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1520
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: KbqNavbarModule, decorators: [{
|
|
1184
1521
|
type: NgModule,
|
|
1185
1522
|
args: [{
|
|
1186
1523
|
imports: [
|
|
@@ -1199,7 +1536,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.30", ngImpo
|
|
|
1199
1536
|
KbqNavbarDivider,
|
|
1200
1537
|
KbqNavbarFocusableItem,
|
|
1201
1538
|
KbqNavbarRectangleElement,
|
|
1202
|
-
KbqNavbarBento
|
|
1539
|
+
KbqNavbarBento,
|
|
1540
|
+
KbqNavbarItemSuffix
|
|
1203
1541
|
],
|
|
1204
1542
|
exports: [
|
|
1205
1543
|
KbqNavbar,
|
|
@@ -1213,7 +1551,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.30", ngImpo
|
|
|
1213
1551
|
KbqNavbarDivider,
|
|
1214
1552
|
KbqNavbarFocusableItem,
|
|
1215
1553
|
KbqNavbarRectangleElement,
|
|
1216
|
-
KbqNavbarBento
|
|
1554
|
+
KbqNavbarBento,
|
|
1555
|
+
KbqNavbarItemSuffix
|
|
1217
1556
|
]
|
|
1218
1557
|
}]
|
|
1219
1558
|
}] });
|
|
@@ -1222,5 +1561,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.30", ngImpo
|
|
|
1222
1561
|
* Generated bundle index. Do not edit.
|
|
1223
1562
|
*/
|
|
1224
1563
|
|
|
1225
|
-
export { KBQ_VERTICAL_NAVBAR_CONFIGURATION, KBQ_VERTICAL_NAVBAR_DEFAULT_CONFIGURATION, KbqFocusableComponent, KbqNavbar, KbqNavbarBento, KbqNavbarBrand, KbqNavbarContainer, KbqNavbarDivider, KbqNavbarFocusableItem, KbqNavbarItem, KbqNavbarLogo, KbqNavbarModule, KbqNavbarRectangleElement, KbqNavbarTitle, KbqNavbarToggle, KbqVerticalNavbar };
|
|
1564
|
+
export { KBQ_NAVBAR_DEFAULT_LOCALE_CONFIGURATION, KBQ_NAVBAR_LOCALE_CONFIGURATION, KBQ_VERTICAL_NAVBAR_CONFIGURATION, KBQ_VERTICAL_NAVBAR_DEFAULT_CONFIGURATION, KbqFocusableComponent, KbqNavbar, KbqNavbarBento, KbqNavbarBrand, KbqNavbarContainer, KbqNavbarDivider, KbqNavbarFocusableItem, KbqNavbarItem, KbqNavbarItemSuffix, KbqNavbarLogo, KbqNavbarModule, KbqNavbarRectangleElement, KbqNavbarTitle, KbqNavbarToggle, KbqNavbarToggleRegistry, KbqVerticalNavbar, kbqNavbarLocaleConfigurationProvider };
|
|
1226
1565
|
//# sourceMappingURL=koobiq-components-navbar.mjs.map
|