@koobiq/components 21.0.0 → 21.1.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/badge/_badge-theme.scss +31 -0
- package/breadcrumbs/breadcrumbs.scss +5 -1
- package/checkbox/_checkbox-theme.scss +0 -17
- package/checkbox/checkbox-tokens.scss +0 -4
- package/code-block/_code-block-theme.scss +7 -6
- package/code-block/code-block-tokens.scss +8 -4
- package/code-block/code-block.scss +54 -32
- package/content-panel/content-panel-header.scss +2 -3
- package/content-panel/content-panel.scss +3 -0
- package/core/selection/pseudo-checkbox/pseudo-checkbox-tokens.scss +0 -2
- package/fesm2022/koobiq-components-accordion.mjs +4 -4
- package/fesm2022/koobiq-components-accordion.mjs.map +1 -1
- package/fesm2022/koobiq-components-actions-panel.mjs +10 -2
- package/fesm2022/koobiq-components-actions-panel.mjs.map +1 -1
- package/fesm2022/koobiq-components-app-switcher.mjs +1 -1
- package/fesm2022/koobiq-components-app-switcher.mjs.map +1 -1
- package/fesm2022/koobiq-components-badge.mjs +2 -2
- package/fesm2022/koobiq-components-badge.mjs.map +1 -1
- package/fesm2022/koobiq-components-breadcrumbs.mjs +2 -2
- package/fesm2022/koobiq-components-breadcrumbs.mjs.map +1 -1
- package/fesm2022/koobiq-components-button-toggle.mjs +1 -1
- package/fesm2022/koobiq-components-button-toggle.mjs.map +1 -1
- package/fesm2022/koobiq-components-checkbox.mjs +18 -8
- package/fesm2022/koobiq-components-checkbox.mjs.map +1 -1
- package/fesm2022/koobiq-components-clamped-text.mjs +78 -10
- package/fesm2022/koobiq-components-clamped-text.mjs.map +1 -1
- package/fesm2022/koobiq-components-code-block.mjs +106 -394
- package/fesm2022/koobiq-components-code-block.mjs.map +1 -1
- package/fesm2022/koobiq-components-content-panel.mjs +4 -4
- package/fesm2022/koobiq-components-content-panel.mjs.map +1 -1
- package/fesm2022/koobiq-components-core.mjs +300 -37
- package/fesm2022/koobiq-components-core.mjs.map +1 -1
- package/fesm2022/koobiq-components-datepicker.mjs +151 -60
- package/fesm2022/koobiq-components-datepicker.mjs.map +1 -1
- package/fesm2022/koobiq-components-divider.mjs +3 -3
- package/fesm2022/koobiq-components-divider.mjs.map +1 -1
- package/fesm2022/koobiq-components-dropdown.mjs +3 -3
- package/fesm2022/koobiq-components-dropdown.mjs.map +1 -1
- package/fesm2022/koobiq-components-file-upload.mjs +17 -8
- package/fesm2022/koobiq-components-file-upload.mjs.map +1 -1
- package/fesm2022/koobiq-components-filter-bar.mjs +124 -41
- package/fesm2022/koobiq-components-filter-bar.mjs.map +1 -1
- package/fesm2022/koobiq-components-flag.mjs +3 -3
- package/fesm2022/koobiq-components-flag.mjs.map +1 -1
- package/fesm2022/koobiq-components-form-field.mjs +90 -27
- package/fesm2022/koobiq-components-form-field.mjs.map +1 -1
- package/fesm2022/koobiq-components-icon.mjs +38 -17
- package/fesm2022/koobiq-components-icon.mjs.map +1 -1
- package/fesm2022/koobiq-components-inline-edit.mjs +19 -2
- package/fesm2022/koobiq-components-inline-edit.mjs.map +1 -1
- package/fesm2022/koobiq-components-input.mjs +76 -17
- package/fesm2022/koobiq-components-input.mjs.map +1 -1
- package/fesm2022/koobiq-components-list.mjs +1 -1
- package/fesm2022/koobiq-components-list.mjs.map +1 -1
- package/fesm2022/koobiq-components-modal.mjs +3 -3
- package/fesm2022/koobiq-components-modal.mjs.map +1 -1
- package/fesm2022/koobiq-components-navbar.mjs +86 -25
- package/fesm2022/koobiq-components-navbar.mjs.map +1 -1
- package/fesm2022/koobiq-components-notification-center.mjs +4 -4
- package/fesm2022/koobiq-components-notification-center.mjs.map +1 -1
- package/fesm2022/koobiq-components-overflow-items.mjs +116 -38
- package/fesm2022/koobiq-components-overflow-items.mjs.map +1 -1
- package/fesm2022/koobiq-components-popover.mjs +86 -7
- package/fesm2022/koobiq-components-popover.mjs.map +1 -1
- package/fesm2022/koobiq-components-radio.mjs +41 -19
- package/fesm2022/koobiq-components-radio.mjs.map +1 -1
- package/fesm2022/koobiq-components-search-expandable.mjs +29 -17
- package/fesm2022/koobiq-components-search-expandable.mjs.map +1 -1
- package/fesm2022/koobiq-components-select.mjs +49 -12
- package/fesm2022/koobiq-components-select.mjs.map +1 -1
- package/fesm2022/koobiq-components-sidepanel.mjs +198 -186
- package/fesm2022/koobiq-components-sidepanel.mjs.map +1 -1
- package/fesm2022/koobiq-components-splitter.mjs +49 -25
- package/fesm2022/koobiq-components-splitter.mjs.map +1 -1
- package/fesm2022/koobiq-components-tabs.mjs +30 -11
- package/fesm2022/koobiq-components-tabs.mjs.map +1 -1
- package/fesm2022/koobiq-components-tags.mjs +1 -1
- package/fesm2022/koobiq-components-tags.mjs.map +1 -1
- package/fesm2022/koobiq-components-textarea.mjs +28 -11
- package/fesm2022/koobiq-components-textarea.mjs.map +1 -1
- package/fesm2022/koobiq-components-time-range.mjs +2 -2
- package/fesm2022/koobiq-components-time-range.mjs.map +1 -1
- package/fesm2022/koobiq-components-timepicker.mjs +71 -16
- package/fesm2022/koobiq-components-timepicker.mjs.map +1 -1
- package/fesm2022/koobiq-components-timezone.mjs +2 -2
- package/fesm2022/koobiq-components-timezone.mjs.map +1 -1
- package/fesm2022/koobiq-components-toast.mjs +2 -2
- package/fesm2022/koobiq-components-toast.mjs.map +1 -1
- package/fesm2022/koobiq-components-toggle.mjs +25 -9
- package/fesm2022/koobiq-components-toggle.mjs.map +1 -1
- package/fesm2022/koobiq-components-tooltip.mjs +90 -17
- package/fesm2022/koobiq-components-tooltip.mjs.map +1 -1
- package/fesm2022/koobiq-components-top-bar.mjs +27 -7
- package/fesm2022/koobiq-components-top-bar.mjs.map +1 -1
- package/fesm2022/koobiq-components-tree-select.mjs +24 -9
- package/fesm2022/koobiq-components-tree-select.mjs.map +1 -1
- package/fesm2022/koobiq-components-tree.mjs +288 -109
- package/fesm2022/koobiq-components-tree.mjs.map +1 -1
- package/file-upload/_file-upload-theme.scss +0 -12
- package/file-upload/file-upload-tokens.scss +0 -1
- package/file-upload/file-upload.scss +0 -1
- package/filter-bar/_filter-bar-theme.scss +7 -8
- package/filter-bar/filter-bar.scss +0 -1
- package/filter-bar/pipes/base-pipe.scss +36 -2
- package/filter-bar/pipes/pipe-multi-tree-select.scss +27 -0
- package/form-field/_fieldset-theme.scss +2 -7
- package/form-field/_form-field-theme.scss +9 -22
- package/form-field/_hint-theme.scss +20 -0
- package/form-field/fieldset-tokens.scss +0 -1
- package/form-field/fieldset.scss +0 -3
- package/form-field/form-field-tokens.scss +1 -1
- package/form-field/form-field.scss +9 -0
- package/form-field/hint-tokens.scss +3 -0
- package/modal/modal.scss +2 -0
- package/navbar/_navbar-item_vertical.scss +48 -2
- package/navbar/_navbar-theme.scss +11 -3
- package/navbar/navbar-item.scss +17 -0
- package/navbar/navbar-tokens.scss +3 -0
- package/package.json +4 -4
- package/popover/popover.scss +1 -1
- package/radio/_radio-theme.scss +0 -30
- package/radio/radio-tokens.scss +0 -2
- package/schematics/collection.json +94 -89
- package/schematics/migrations/accordion-state-saving-default/{index.js → index.cjs} +5 -4
- package/schematics/migrations/actions-panel-overlay-container/{index.js → index.cjs} +5 -4
- package/schematics/migrations/alert-signals/{index.js → index.cjs} +14 -13
- package/schematics/migrations/angular-animations-removal/index.cjs +21 -0
- package/schematics/migrations/app-switcher-signals/{index.js → index.cjs} +7 -6
- package/schematics/migrations/autocomplete-panel-width-auto/{index.js → index.cjs} +6 -5
- package/schematics/migrations/autocomplete-signals/{index.js → index.cjs} +7 -6
- package/schematics/migrations/badge-signals/{index.js → index.cjs} +7 -6
- package/schematics/migrations/button-state-and-styles/{index.js → index.cjs} +7 -6
- package/schematics/migrations/button-supported-colors/{index.js → index.cjs} +7 -6
- package/schematics/migrations/button-toggle-signals-and-aria/{index.js → index.cjs} +7 -6
- package/schematics/migrations/button-truncation/{index.js → index.cjs} +7 -6
- package/schematics/migrations/checkbox-signals/{index.js → index.cjs} +9 -8
- package/schematics/migrations/clamped-text-disclosure/{index.js → index.cjs} +5 -4
- package/schematics/migrations/code-block-highlight-js-core/README.md +53 -0
- package/schematics/migrations/code-block-highlight-js-core/data.cjs +64 -0
- package/schematics/migrations/code-block-highlight-js-core/index.cjs +319 -0
- package/schematics/migrations/code-block-highlight-js-core/schema.json +20 -0
- package/schematics/migrations/code-block-signals/{index.js → index.cjs} +7 -6
- package/schematics/migrations/color-signals/index.cjs +20 -0
- package/schematics/migrations/core-mixins-removal/index.cjs +18 -0
- package/schematics/migrations/css-selectors/{index.js → index.cjs} +4 -3
- package/schematics/migrations/datepicker-signals/index.cjs +18 -0
- package/schematics/migrations/deprecated-icons/README.md +21 -5
- package/schematics/migrations/deprecated-icons/{index.js → index.cjs} +15 -28
- package/schematics/migrations/deprecated-icons/schema.json +1 -1
- package/schematics/migrations/design-tokens-v4/{index.js → index.cjs} +3 -2
- package/schematics/migrations/divider-signals-and-aria/{index.js → index.cjs} +5 -4
- package/schematics/migrations/dl-attribute-coercion/{index.js → index.cjs} +7 -6
- package/schematics/migrations/dl-standalone-names/{index.js → index.cjs} +11 -10
- package/schematics/migrations/dropdown-demote-overlay/{index.js → index.cjs} +7 -6
- package/schematics/migrations/dropdown-signals/index.cjs +20 -0
- package/schematics/migrations/empty-state-error-color/{index.js → index.cjs} +5 -4
- package/schematics/migrations/empty-state-size-attr/{index.js → index.cjs} +6 -5
- package/schematics/migrations/file-upload-cva-and-primitives/{index.js → index.cjs} +5 -4
- package/schematics/migrations/file-upload-deprecated-outputs/{index.js → index.cjs} +5 -4
- package/schematics/migrations/filter-bar-rename-action/{index.js → index.cjs} +5 -4
- package/schematics/migrations/filter-bar-signals/{index.js → index.cjs} +16 -15
- package/schematics/migrations/filter-bar-state-saving-default/{index.js → index.cjs} +5 -4
- package/schematics/migrations/flag-inner-html/{index.js → index.cjs} +5 -4
- package/schematics/migrations/form-field-signals/{index.js → index.cjs} +18 -17
- package/schematics/migrations/icon-semantics-and-api/{data.js → data.cjs} +4 -4
- package/schematics/migrations/icon-semantics-and-api/{index.js → index.cjs} +6 -5
- package/schematics/migrations/icons-replacement/README.md +16 -2
- package/schematics/migrations/icons-replacement/{index.js → index.cjs} +21 -18
- package/schematics/migrations/icons-replacement/schema.json +12 -3
- package/schematics/migrations/inline-edit-a11y-and-types/{index.js → index.cjs} +5 -4
- package/schematics/migrations/input-number-surface/{index.js → index.cjs} +5 -4
- package/schematics/migrations/input-signals/index.cjs +18 -0
- package/schematics/migrations/link-deprecated-path/{index.js → index.cjs} +4 -3
- package/schematics/migrations/link-signals/{index.js → index.cjs} +5 -4
- package/schematics/migrations/list-signals/index.cjs +18 -0
- package/schematics/migrations/list-tree-multiple-input/{index.js → index.cjs} +7 -6
- package/schematics/migrations/loader-overlay-signals/{index.js → index.cjs} +7 -6
- package/schematics/migrations/loader-overlay-size-attr/{index.js → index.cjs} +6 -5
- package/schematics/migrations/locale-configuration-providers/{index.js → index.cjs} +5 -4
- package/schematics/migrations/mandatory-peer-dependencies/{index.js → index.cjs} +3 -2
- package/schematics/migrations/markdown-signals/{index.js → index.cjs} +7 -6
- package/schematics/migrations/modal-dialog-semantics/{index.js → index.cjs} +5 -4
- package/schematics/migrations/modal-signals/index.cjs +20 -0
- package/schematics/migrations/navbar-signals-and-aria/{index.js → index.cjs} +7 -6
- package/schematics/migrations/new-icons-pack/README.md +37 -25
- package/schematics/migrations/new-icons-pack/{index.js → index.cjs} +29 -38
- package/schematics/migrations/new-icons-pack/replacement.json +2 -14
- package/schematics/migrations/new-icons-pack/schema.json +3 -3
- package/schematics/migrations/notification-center-signals/{index.js → index.cjs} +5 -4
- package/schematics/migrations/option-signals/index.cjs +20 -0
- package/schematics/migrations/popover-leave-delay/{index.js → index.cjs} +5 -4
- package/schematics/migrations/progress-bar-percentage-and-aria/{index.js → index.cjs} +5 -4
- package/schematics/migrations/progress-spinner-signals/{index.js → index.cjs} +7 -6
- package/schematics/migrations/query-list-signals/index.cjs +18 -0
- package/schematics/migrations/radio-signals-and-aria/{index.js → index.cjs} +9 -8
- package/schematics/migrations/read-state-dwell-handlers/{index.js → index.cjs} +5 -4
- package/schematics/migrations/scrollbar-deprecated-path/{index.js → index.cjs} +4 -3
- package/schematics/migrations/select-signal-inputs/{index.js → index.cjs} +5 -4
- package/schematics/migrations/sidepanel-non-modal-behavior/{index.js → index.cjs} +5 -4
- package/schematics/migrations/signal-inputs-subclasses/index.cjs +18 -0
- package/schematics/migrations/split-button-optional-disabled/{index.js → index.cjs} +5 -4
- package/schematics/migrations/splitter-deprecated-path/{index.js → index.cjs} +4 -3
- package/schematics/migrations/state-saving-default/{index.js → index.cjs} +5 -4
- package/schematics/migrations/table-cell-content/{index.js → index.cjs} +5 -4
- package/schematics/migrations/tabs-signals-and-aria/{index.js → index.cjs} +5 -4
- package/schematics/migrations/tag-list-cleaner/{index.js → index.cjs} +7 -6
- package/schematics/migrations/tag-slots/{index.js → index.cjs} +6 -5
- package/schematics/migrations/tags-signals/{index.js → index.cjs} +7 -6
- package/schematics/migrations/textarea-signals/{index.js → index.cjs} +7 -6
- package/schematics/migrations/time-range-title-for/{index.js → index.cjs} +5 -4
- package/schematics/migrations/timepicker-signals/{index.js → index.cjs} +7 -6
- package/schematics/migrations/timezone-grouping-utils/{index.js → index.cjs} +5 -4
- package/schematics/migrations/title-encapsulation/{index.js → index.cjs} +5 -4
- package/schematics/migrations/toast-stack-and-defaults/{index.js → index.cjs} +5 -4
- package/schematics/migrations/tooltip-pointer-events-and-types/{index.js → index.cjs} +5 -4
- package/schematics/migrations/top-bar-container-selectors/{index.js → index.cjs} +5 -4
- package/schematics/migrations/tree-select-signals/{index.js → index.cjs} +5 -4
- package/schematics/migrations/tree-signals/{index.js → index.cjs} +5 -4
- package/schematics/migrations/tree-state-saving-default/{index.js → index.cjs} +5 -4
- package/schematics/migrations/username-pipe-injection/{index.js → index.cjs} +5 -4
- package/schematics/migrations/v20-upgrade/{data.js → data.cjs} +7 -7
- package/schematics/migrations/v20-upgrade/index.cjs +19 -0
- package/schematics/migrations/v21-upgrade/{data.js → data.cjs} +22 -22
- package/schematics/migrations/v21-upgrade/{index.js → index.cjs} +11 -10
- package/schematics/migrations/zoneless-change-detection/index.cjs +21 -0
- package/schematics/migrations.json +87 -82
- package/schematics/ng-add/{index.js → index.cjs} +15 -289
- package/schematics/utils/{angular-parsing.js → angular-parsing.cjs} +2 -2
- package/schematics/utils/custom-data.cjs +64 -0
- package/schematics/utils/{deprecated-path-migration.js → deprecated-path-migration.cjs} +4 -3
- package/schematics/utils/html-config.cjs +148 -0
- package/schematics/utils/{icon-migration.js → icon-migration.cjs} +11 -5
- package/schematics/utils/list-item-pattern.cjs +16 -0
- package/schematics/utils/{messages.js → messages.cjs} +4 -0
- package/schematics/utils/package-config.cjs +99 -0
- package/schematics/utils/project-files.cjs +25 -0
- package/schematics/utils/replacement-driver.cjs +337 -0
- package/schematics/utils/safe-rule.cjs +23 -0
- package/schematics/utils/signal-members-migration.cjs +779 -0
- package/schematics/utils/tag-patterns.cjs +21 -0
- package/schematics/utils/template-ref-access.cjs +155 -0
- package/schematics/utils/{typescript.js → typescript.cjs} +1 -1
- package/schematics/utils/warn-only-migration.cjs +52 -0
- package/schematics/utils/workspace-styles.cjs +123 -0
- package/select/select.scss +7 -0
- package/tabs/_tabs-common.scss +23 -0
- package/textarea/textarea-tokens.scss +4 -1
- package/toast/toast.component.scss +1 -0
- package/toggle/_toggle-theme.scss +0 -17
- package/tooltip/tooltip.scss +1 -1
- package/top-bar/top-bar-tokens.scss +1 -0
- package/top-bar/top-bar.scss +10 -0
- package/types/koobiq-components-accordion.d.ts +25 -0
- package/types/koobiq-components-button-toggle.d.ts +6 -0
- package/types/koobiq-components-checkbox.d.ts +30 -0
- package/types/koobiq-components-clamped-text.d.ts +16 -3
- package/types/koobiq-components-code-block.d.ts +55 -14
- package/types/koobiq-components-core.d.ts +226 -13
- package/types/koobiq-components-datepicker.d.ts +28 -1
- package/types/koobiq-components-divider.d.ts +28 -10
- package/types/koobiq-components-dropdown.d.ts +19 -0
- package/types/koobiq-components-filter-bar.d.ts +79 -6
- package/types/koobiq-components-flag.d.ts +18 -0
- package/types/koobiq-components-form-field.d.ts +87 -6
- package/types/koobiq-components-icon.d.ts +15 -0
- package/types/koobiq-components-inline-edit.d.ts +8 -1
- package/types/koobiq-components-input.d.ts +22 -3
- package/types/koobiq-components-list.d.ts +6 -0
- package/types/koobiq-components-modal.d.ts +7 -0
- package/types/koobiq-components-navbar.d.ts +71 -7
- package/types/koobiq-components-notification-center.d.ts +13 -0
- package/types/koobiq-components-overflow-items.d.ts +26 -2
- package/types/koobiq-components-popover.d.ts +38 -3
- package/types/koobiq-components-radio.d.ts +30 -0
- package/types/koobiq-components-search-expandable.d.ts +10 -0
- package/types/koobiq-components-select.d.ts +36 -4
- package/types/koobiq-components-sidepanel.d.ts +52 -1
- package/types/koobiq-components-splitter.d.ts +13 -4
- package/types/koobiq-components-tabs.d.ts +4 -0
- package/types/koobiq-components-tags.d.ts +6 -0
- package/types/koobiq-components-textarea.d.ts +9 -2
- package/types/koobiq-components-timepicker.d.ts +15 -0
- package/types/koobiq-components-toggle.d.ts +30 -0
- package/types/koobiq-components-tooltip.d.ts +55 -10
- package/types/koobiq-components-top-bar.d.ts +11 -3
- package/types/koobiq-components-tree-select.d.ts +23 -8
- package/types/koobiq-components-tree.d.ts +144 -60
- package/schematics/migrations/angular-animations-removal/index.js +0 -20
- package/schematics/migrations/color-signals/index.js +0 -19
- package/schematics/migrations/core-mixins-removal/index.js +0 -17
- package/schematics/migrations/datepicker-signals/index.js +0 -17
- package/schematics/migrations/dropdown-signals/index.js +0 -19
- package/schematics/migrations/input-signals/index.js +0 -17
- package/schematics/migrations/list-signals/index.js +0 -17
- package/schematics/migrations/modal-signals/index.js +0 -19
- package/schematics/migrations/option-signals/index.js +0 -19
- package/schematics/migrations/query-list-signals/index.js +0 -17
- package/schematics/migrations/signal-inputs-subclasses/index.js +0 -17
- package/schematics/migrations/v20-upgrade/index.js +0 -18
- package/schematics/migrations/zoneless-change-detection/index.js +0 -20
- package/schematics/utils/package-config.js +0 -13
- /package/schematics/migrations/accordion-state-saving-default/{data.js → data.cjs} +0 -0
- /package/schematics/migrations/actions-panel-overlay-container/{data.js → data.cjs} +0 -0
- /package/schematics/migrations/alert-signals/{data.js → data.cjs} +0 -0
- /package/schematics/migrations/angular-animations-removal/{data.js → data.cjs} +0 -0
- /package/schematics/migrations/app-switcher-signals/{data.js → data.cjs} +0 -0
- /package/schematics/migrations/autocomplete-signals/{data.js → data.cjs} +0 -0
- /package/schematics/migrations/badge-signals/{data.js → data.cjs} +0 -0
- /package/schematics/migrations/button-state-and-styles/{data.js → data.cjs} +0 -0
- /package/schematics/migrations/button-supported-colors/{data.js → data.cjs} +0 -0
- /package/schematics/migrations/button-toggle-signals-and-aria/{data.js → data.cjs} +0 -0
- /package/schematics/migrations/button-truncation/{data.js → data.cjs} +0 -0
- /package/schematics/migrations/checkbox-signals/{data.js → data.cjs} +0 -0
- /package/schematics/migrations/clamped-text-disclosure/{data.js → data.cjs} +0 -0
- /package/schematics/migrations/code-block-signals/{data.js → data.cjs} +0 -0
- /package/schematics/migrations/color-signals/{data.js → data.cjs} +0 -0
- /package/schematics/migrations/core-mixins-removal/{data.js → data.cjs} +0 -0
- /package/schematics/migrations/css-selectors/{data.js → data.cjs} +0 -0
- /package/schematics/migrations/datepicker-signals/{data.js → data.cjs} +0 -0
- /package/schematics/migrations/deprecated-icons/{data.js → data.cjs} +0 -0
- /package/schematics/migrations/divider-signals-and-aria/{data.js → data.cjs} +0 -0
- /package/schematics/migrations/dl-attribute-coercion/{data.js → data.cjs} +0 -0
- /package/schematics/migrations/dl-standalone-names/{data.js → data.cjs} +0 -0
- /package/schematics/migrations/dropdown-demote-overlay/{data.js → data.cjs} +0 -0
- /package/schematics/migrations/dropdown-signals/{data.js → data.cjs} +0 -0
- /package/schematics/migrations/empty-state-error-color/{data.js → data.cjs} +0 -0
- /package/schematics/migrations/file-upload-cva-and-primitives/{data.js → data.cjs} +0 -0
- /package/schematics/migrations/file-upload-deprecated-outputs/{data.js → data.cjs} +0 -0
- /package/schematics/migrations/filter-bar-rename-action/{data.js → data.cjs} +0 -0
- /package/schematics/migrations/filter-bar-signals/{data.js → data.cjs} +0 -0
- /package/schematics/migrations/filter-bar-state-saving-default/{data.js → data.cjs} +0 -0
- /package/schematics/migrations/flag-inner-html/{data.js → data.cjs} +0 -0
- /package/schematics/migrations/form-field-signals/{data.js → data.cjs} +0 -0
- /package/schematics/migrations/icons-replacement/{data.js → data.cjs} +0 -0
- /package/schematics/migrations/inline-edit-a11y-and-types/{data.js → data.cjs} +0 -0
- /package/schematics/migrations/input-number-surface/{data.js → data.cjs} +0 -0
- /package/schematics/migrations/input-signals/{data.js → data.cjs} +0 -0
- /package/schematics/migrations/link-signals/{data.js → data.cjs} +0 -0
- /package/schematics/migrations/list-signals/{data.js → data.cjs} +0 -0
- /package/schematics/migrations/list-tree-multiple-input/{data.js → data.cjs} +0 -0
- /package/schematics/migrations/loader-overlay-signals/{data.js → data.cjs} +0 -0
- /package/schematics/migrations/locale-configuration-providers/{data.js → data.cjs} +0 -0
- /package/schematics/migrations/markdown-signals/{data.js → data.cjs} +0 -0
- /package/schematics/migrations/modal-dialog-semantics/{data.js → data.cjs} +0 -0
- /package/schematics/migrations/modal-signals/{data.js → data.cjs} +0 -0
- /package/schematics/migrations/navbar-signals-and-aria/{data.js → data.cjs} +0 -0
- /package/schematics/migrations/new-icons-pack/{data.js → data.cjs} +0 -0
- /package/schematics/migrations/notification-center-signals/{data.js → data.cjs} +0 -0
- /package/schematics/migrations/option-signals/{data.js → data.cjs} +0 -0
- /package/schematics/migrations/popover-leave-delay/{data.js → data.cjs} +0 -0
- /package/schematics/migrations/progress-bar-percentage-and-aria/{data.js → data.cjs} +0 -0
- /package/schematics/migrations/progress-spinner-signals/{data.js → data.cjs} +0 -0
- /package/schematics/migrations/query-list-signals/{data.js → data.cjs} +0 -0
- /package/schematics/migrations/radio-signals-and-aria/{data.js → data.cjs} +0 -0
- /package/schematics/migrations/read-state-dwell-handlers/{data.js → data.cjs} +0 -0
- /package/schematics/migrations/select-signal-inputs/{data.js → data.cjs} +0 -0
- /package/schematics/migrations/sidepanel-non-modal-behavior/{data.js → data.cjs} +0 -0
- /package/schematics/migrations/signal-inputs-subclasses/{data.js → data.cjs} +0 -0
- /package/schematics/migrations/split-button-optional-disabled/{data.js → data.cjs} +0 -0
- /package/schematics/migrations/state-saving-default/{data.js → data.cjs} +0 -0
- /package/schematics/migrations/table-cell-content/{data.js → data.cjs} +0 -0
- /package/schematics/migrations/tabs-signals-and-aria/{data.js → data.cjs} +0 -0
- /package/schematics/migrations/tag-list-cleaner/{data.js → data.cjs} +0 -0
- /package/schematics/migrations/tags-signals/{data.js → data.cjs} +0 -0
- /package/schematics/migrations/textarea-signals/{data.js → data.cjs} +0 -0
- /package/schematics/migrations/time-range-title-for/{data.js → data.cjs} +0 -0
- /package/schematics/migrations/timepicker-signals/{data.js → data.cjs} +0 -0
- /package/schematics/migrations/timezone-grouping-utils/{data.js → data.cjs} +0 -0
- /package/schematics/migrations/title-encapsulation/{data.js → data.cjs} +0 -0
- /package/schematics/migrations/toast-stack-and-defaults/{data.js → data.cjs} +0 -0
- /package/schematics/migrations/tooltip-pointer-events-and-types/{data.js → data.cjs} +0 -0
- /package/schematics/migrations/top-bar-container-selectors/{data.js → data.cjs} +0 -0
- /package/schematics/migrations/tree-select-signals/{data.js → data.cjs} +0 -0
- /package/schematics/migrations/tree-signals/{data.js → data.cjs} +0 -0
- /package/schematics/migrations/tree-state-saving-default/{data.js → data.cjs} +0 -0
- /package/schematics/migrations/username-pipe-injection/{data.js → data.cjs} +0 -0
- /package/schematics/migrations/zoneless-change-detection/{data.js → data.cjs} +0 -0
- /package/schematics/utils/{ast.js → ast.cjs} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"koobiq-components-breadcrumbs.mjs","sources":["../../../packages/components/breadcrumbs/utils.ts","../../../packages/components/breadcrumbs/roving-focus-group.directive.ts","../../../packages/components/breadcrumbs/roving-focus-item.directive.ts","../../../packages/components/breadcrumbs/breadcrumbs.ts","../../../packages/components/breadcrumbs/breadcrumbs.html","../../../packages/components/breadcrumbs/breadcrumbs.module.ts","../../../packages/components/breadcrumbs/koobiq-components-breadcrumbs.ts"],"sourcesContent":["import { Direction } from '@angular/cdk/bidi';\nimport { _getFocusedElementPierceShadowDom } from '@angular/cdk/platform';\n\n/** Axis a roving-focus group navigates along. */\nexport type KbqRovingFocusOrientation = 'horizontal' | 'vertical';\n\nexport const ENTRY_FOCUS = 'rovingFocusGroup.onEntryFocus';\nexport const EVENT_OPTIONS = { bubbles: false, cancelable: true };\n\ntype FocusIntent = 'first' | 'last' | 'prev' | 'next';\n\n/**\n * `PageUp`/`PageDown` are deliberately absent: the primitive is used by navigation trails rather than by\n * composite widgets, and swallowing the paging keys stops the document from scrolling.\n */\nexport const MAP_KEY_TO_FOCUS_INTENT: Record<string, FocusIntent> = {\n ArrowLeft: 'prev',\n ArrowUp: 'prev',\n ArrowRight: 'next',\n ArrowDown: 'next',\n Home: 'first',\n End: 'last'\n};\n\nexport function getDirectionAwareKey(key: string, dir?: Direction) {\n if (dir !== 'rtl') return key;\n\n return key === 'ArrowLeft' ? 'ArrowRight' : key === 'ArrowRight' ? 'ArrowLeft' : key;\n}\n\nexport function getFocusIntent(event: KeyboardEvent, orientation?: KbqRovingFocusOrientation, dir?: Direction) {\n const key = getDirectionAwareKey(event.key, dir);\n\n if (orientation === 'vertical' && ['ArrowLeft', 'ArrowRight'].includes(key)) return undefined;\n if (orientation === 'horizontal' && ['ArrowUp', 'ArrowDown'].includes(key)) return undefined;\n\n return MAP_KEY_TO_FOCUS_INTENT[key];\n}\n\nexport function focusFirst(candidates: HTMLElement[], preventScroll = false) {\n const previouslyFocusedElement = _getFocusedElementPierceShadowDom();\n\n for (const candidate of candidates) {\n // if focus is already where we want to go, we don't want to keep going through the candidates\n if (candidate === previouslyFocusedElement) return;\n candidate.focus({ preventScroll });\n if (_getFocusedElementPierceShadowDom() !== previouslyFocusedElement) return;\n }\n}\n\n/**\n * Wraps an array around itself at a given start index\n * Example: `wrapArray(['a', 'b', 'c', 'd'], 2) === ['c', 'd', 'a', 'b']`\n */\nexport function wrapArray<T>(array: T[], startIndex: number) {\n return array.map((_, index) => array[(startIndex + index) % array.length]);\n}\n\nexport function generateId(): string {\n return `rf-item-${Math.random().toString(36).slice(2, 11)}`;\n}\n","import { Direction, Directionality } from '@angular/cdk/bidi';\nimport {\n booleanAttribute,\n computed,\n Directive,\n ElementRef,\n inject,\n input,\n OnChanges,\n output,\n signal,\n SimpleChanges\n} from '@angular/core';\nimport { ENTRY_FOCUS, EVENT_OPTIONS, focusFirst, KbqRovingFocusOrientation } from './utils';\n\n/**\n * Moves the focus between the items of `KbqBreadcrumbs` with the arrow keys, keeping one of them in the tab\n * order. The breadcrumbs apply it themselves, as a host directive.\n *\n * @docs-private\n */\n@Directive({\n selector: '[rdxRovingFocusGroup]',\n host: {\n '[attr.data-orientation]': 'dataOrientation',\n '[attr.tabindex]': 'tabIndex',\n '[attr.dir]': 'dir()',\n '(focus)': 'handleFocus($event)',\n '(focusout)': 'handleBlur()'\n }\n})\nexport class RdxRovingFocusGroupDirective implements OnChanges {\n private readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly directionality = inject(Directionality, { optional: true });\n\n /** @docs-private */\n readonly orientationInput = input<KbqRovingFocusOrientation | undefined>(undefined, { alias: 'orientation' });\n\n /**\n * Axis the arrow keys navigate along. A plain field the input feeds: the host component also writes it\n * directly, once, from its own constructor.\n */\n orientation: KbqRovingFocusOrientation | undefined;\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['orientationInput']) {\n this.orientation = this.orientationInput();\n }\n }\n\n /**\n * Reading direction the arrow keys are mapped against, written onto the host as `dir`. Left unset,\n * no attribute is emitted — the element inherits the document direction, and the key mapping follows\n * the ambient CDK `Directionality`.\n */\n readonly dir = input<Direction | null>(null);\n /** Whether the arrow keys wrap around, from the last item to the first and back. */\n readonly loop = input<boolean, unknown>(true, { transform: booleanAttribute });\n readonly preventScrollOnEntryFocus = input<boolean, unknown>(false, { transform: booleanAttribute });\n\n readonly entryFocus = output<Event>();\n readonly currentTabStopIdChange = output<string | null>();\n\n /** @docs-private */\n readonly currentTabStopId = signal<string | null>(null);\n\n /** @docs-private */\n readonly focusableItems = signal<HTMLElement[]>([]);\n\n /** Tab stop id of each registered element, so the current tab stop can be resolved back to its node. */\n private readonly itemIds = new WeakMap<HTMLElement, string>();\n\n private readonly isTabbingBackOut = signal(false);\n\n /**\n * Reading direction the arrow keys are actually mapped against: the input when it is set, the\n * ambient `Directionality` otherwise.\n *\n * @docs-private\n */\n readonly resolvedDir = computed<Direction>(() => this.dir() ?? this.directionality?.valueSignal() ?? 'ltr');\n\n /** @docs-private */\n get dataOrientation() {\n return this.orientation || 'horizontal';\n }\n\n /** @docs-private */\n get tabIndex() {\n return this.isTabbingBackOut() || this.getFocusableItemsCount() === 0 ? -1 : 0;\n }\n\n /** @docs-private */\n handleBlur() {\n if (!this.isTabbingBackOut()) return;\n\n this.isTabbingBackOut.set(false);\n this.syncTabIndex();\n }\n\n /** @docs-private */\n handleFocus(event: FocusEvent) {\n // Forwarded regardless of what moved the focus here: a click on the group's own padding lands on\n // the host, which is a tab stop with nothing to do, and the trail would otherwise hold an\n // invisible focus that the next Tab leaves altogether. A click on an item is unaffected — the\n // item records itself as the current tab stop on `mousedown`, so the forward returns to it.\n if (\n event.currentTarget === this.elementRef.nativeElement &&\n event.target === event.currentTarget &&\n !this.isTabbingBackOut()\n ) {\n const entryFocusEvent = new CustomEvent(ENTRY_FOCUS, EVENT_OPTIONS);\n\n this.elementRef.nativeElement.dispatchEvent(entryFocusEvent);\n this.entryFocus.emit(entryFocusEvent);\n\n if (!entryFocusEvent.defaultPrevented) {\n const items = this.focusableItems().filter((item) => item.dataset['disabled'] !== '');\n const activeItem = items.find((item) => item.getAttribute('data-active') === 'true');\n const currentItem = items.find((item) => this.itemIds.get(item) === this.currentTabStopId());\n const candidateItems = [activeItem, currentItem, ...items].filter(Boolean) as HTMLElement[];\n\n focusFirst(candidateItems, this.preventScrollOnEntryFocus());\n }\n }\n }\n\n /** @docs-private */\n onItemFocus(tabStopId: string) {\n this.currentTabStopId.set(tabStopId);\n this.currentTabStopIdChange.emit(tabStopId);\n }\n\n /** @docs-private */\n onItemShiftTab() {\n this.isTabbingBackOut.set(true);\n this.syncTabIndex();\n }\n\n // The browser picks the Shift+Tab target right after the keydown, and the `focusout` that follows also\n // comes before the host binding renders, so each latch transition writes the attribute at once.\n private syncTabIndex(): void {\n this.elementRef.nativeElement.setAttribute('tabindex', String(this.tabIndex));\n }\n\n /**\n * Registers `item` as a focusable member of the group, ignoring one that is not actually a\n * descendant of the group's own host. A `TemplateRef` declared inside the group (a `kbqBreadcrumbView`,\n * say) keeps resolving an injected group through its declaration-site injector even when something\n * outside the group's DOM subtree — a dropdown replaying a hidden item's template, for instance —\n * instantiates it a second time via `ngTemplateOutlet`. That copy is not reachable by this group's\n * arrow keys and must not register, or the trail ends up with a phantom, unfocusable duplicate.\n *\n * @docs-private\n */\n registerItem(item: HTMLElement, tabStopId?: string) {\n if (!this.elementRef.nativeElement.contains(item)) return;\n\n if (tabStopId !== undefined) {\n this.itemIds.set(item, tabStopId);\n }\n\n this.focusableItems.update((items) => {\n if (items.includes(item)) return items;\n\n // Sorted by actual DOM position rather than appended: registration order follows when each\n // item's effect happens to run, which does not track document order (a static element and\n // one rendered through `NgTemplateOutlet` can register in either order regardless of where\n // they end up in the tree). Arrow-key traversal has to follow the visual order instead.\n return [...items, item].sort((a, b) =>\n a.compareDocumentPosition(b) & Node.DOCUMENT_POSITION_FOLLOWING ? -1 : 1\n );\n });\n }\n\n /** @docs-private */\n unregisterItem(item: HTMLElement) {\n if (this.itemIds.get(item) === this.currentTabStopId()) {\n this.currentTabStopId.set(null);\n }\n\n this.itemIds.delete(item);\n this.focusableItems.update((items) => items.filter((el) => el !== item));\n }\n\n /** @docs-private */\n getFocusableItemsCount() {\n return this.focusableItems().length;\n }\n}\n","import {\n booleanAttribute,\n computed,\n Directive,\n effect,\n ElementRef,\n inject,\n input,\n NgZone,\n OnDestroy\n} from '@angular/core';\nimport { RdxRovingFocusGroupDirective } from './roving-focus-group.directive';\nimport { focusFirst, generateId, getFocusIntent, wrapArray } from './utils';\n\n/**\n * An item of the roving focus of `KbqBreadcrumbs`. `KbqBreadcrumbButton` applies it itself, as a host directive.\n *\n * @docs-private\n */\n@Directive({\n selector: '[rdxRovingFocusItem]',\n host: {\n '[attr.tabindex]': 'tabIndex',\n '[attr.data-orientation]': 'parent.orientation',\n '[attr.data-active]': 'active()',\n '[attr.data-disabled]': '!focusable() ? \"\" : undefined',\n '(mousedown)': 'handleMouseDown($event)',\n '(keydown)': 'handleKeydown($event)',\n '(focus)': 'onFocus()'\n }\n})\nexport class RdxRovingFocusItemDirective implements OnDestroy {\n private readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly ngZone = inject(NgZone);\n protected readonly parent = inject(RdxRovingFocusGroupDirective);\n\n /**\n * Whether the item takes part in the roving focus. The arrow keys skip an item that does not, and a click\n * does not focus it.\n */\n readonly focusable = input<boolean, unknown>(true, { transform: booleanAttribute });\n\n /**\n * Whether the item is the one focus returns to when the group is re-entered. Defaults to `false`, so\n * that `data-active` discriminates: with every item active the lookup degenerates to the first one.\n */\n readonly active = input<boolean, unknown>(false, { transform: booleanAttribute });\n readonly tabStopId = input<string>('');\n readonly allowShiftKey = input<boolean, unknown>(false, { transform: booleanAttribute });\n\n private readonly id = computed(() => this.tabStopId() || generateId());\n\n /** @docs-private */\n readonly isCurrentTabStop = computed(() => this.parent.currentTabStopId() === this.id());\n\n constructor() {\n // Registration follows `focusable`, which the host binds to a derived expression: an item that\n // becomes focusable after creation has to join the group, and one that stops being focusable has\n // to leave it, or the group keeps counting an element the arrow keys can no longer reach.\n effect((onCleanup) => {\n if (!this.focusable()) return;\n\n const element = this.elementRef.nativeElement;\n\n this.parent.registerItem(element, this.id());\n\n onCleanup(() => this.parent.unregisterItem(element));\n });\n }\n\n /**\n * Lifecycle hook triggered on destruction.\n * Unregisters the element from the parent roving focus group.\n *\n * @docs-private\n */\n ngOnDestroy() {\n this.parent.unregisterItem(this.elementRef.nativeElement);\n }\n\n /**\n * Determines the `tabIndex` of the element.\n * Returns `0` if the element is the current tab stop; otherwise, returns `-1`.\n *\n * @docs-private\n */\n get tabIndex() {\n return this.isCurrentTabStop() ? 0 : -1;\n }\n\n /** @docs-private */\n handleMouseDown(event: MouseEvent) {\n if (!this.focusable()) {\n // We prevent focusing non-focusable items on `mousedown`.\n // Even though the item has tabIndex={-1}, that only means take it out of the tab order.\n event.preventDefault();\n } else {\n // Safari doesn't focus a button when clicked so we run our logic on mousedown also\n this.parent.onItemFocus(this.id());\n }\n }\n\n /** @docs-private */\n onFocus() {\n this.parent.onItemFocus(this.id());\n }\n\n /**\n * Handles the `keydown` event for keyboard navigation within the roving focus group.\n * Supports navigation based on orientation and direction, and focuses appropriate elements.\n *\n * @param event The `KeyboardEvent` object.\n *\n * @docs-private\n */\n handleKeydown(event: KeyboardEvent) {\n if (event.key === 'Tab' && event.shiftKey) {\n this.parent.onItemShiftTab();\n\n return;\n }\n\n if (event.target !== this.elementRef.nativeElement) return;\n\n const focusIntent = getFocusIntent(event, this.parent.orientation, this.parent.resolvedDir());\n\n if (focusIntent !== undefined) {\n if (event.metaKey || event.ctrlKey || event.altKey || (this.allowShiftKey() ? false : event.shiftKey)) {\n return;\n }\n\n event.preventDefault();\n\n let candidateNodes = this.parent.focusableItems().filter((item) => item.dataset['disabled'] !== '');\n\n if (focusIntent === 'last') {\n candidateNodes.reverse();\n } else if (focusIntent === 'prev' || focusIntent === 'next') {\n if (focusIntent === 'prev') candidateNodes.reverse();\n const currentIndex = candidateNodes.indexOf(this.elementRef.nativeElement);\n\n candidateNodes = this.parent.loop()\n ? wrapArray(candidateNodes, currentIndex + 1)\n : candidateNodes.slice(currentIndex + 1);\n }\n\n this.ngZone.runOutsideAngular(() => {\n Promise.resolve().then(() => {\n focusFirst(candidateNodes, false);\n });\n });\n }\n }\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n contentChild,\n contentChildren,\n Directive,\n forwardRef,\n inject,\n InjectionToken,\n input,\n OnInit,\n Provider,\n TemplateRef,\n viewChild,\n viewChildren,\n ViewEncapsulation\n} from '@angular/core';\nimport { outputToObservable, takeUntilDestroyed, toObservable } from '@angular/core/rxjs-interop';\nimport { RouterLink } from '@angular/router';\nimport { KbqButton, KbqButtonModule, KbqButtonStyles } from '@koobiq/components/button';\nimport {\n KBQ_A11Y_LOCALE_CONFIGURATION,\n KbqComponentColors,\n KbqDefaultSizes,\n kbqInjectNativeElement,\n KbqLocaleOverridesDirective,\n PopUpPlacements\n} from '@koobiq/components/core';\nimport { KbqDropdownModule, KbqDropdownTrigger } from '@koobiq/components/dropdown';\nimport { KbqIconModule } from '@koobiq/components/icon';\nimport {\n KbqOverflowItem,\n KbqOverflowItems,\n KbqOverflowItemsModule,\n KbqOverflowItemsResult\n} from '@koobiq/components/overflow-items';\nimport { KbqTitleModule } from '@koobiq/components/title';\nimport { EMPTY, merge, skip, switchMap } from 'rxjs';\nimport { KbqBreadcrumbsConfiguration, KbqBreadcrumbsWrapMode } from './breadcrumbs.types';\nimport { RdxRovingFocusGroupDirective } from './roving-focus-group.directive';\nimport { RdxRovingFocusItemDirective } from './roving-focus-item.directive';\n\nconst KBQ_BREADCRUMBS_DEFAULT_CONFIGURATION: KbqBreadcrumbsConfiguration = {\n max: 4,\n size: 'normal',\n firstItemNegativeMargin: true,\n wrapMode: 'auto'\n};\n\n/** Breadcrumbs options global configuration provider. */\nexport const KBQ_BREADCRUMBS_CONFIGURATION = new InjectionToken<KbqBreadcrumbsConfiguration>(\n 'KBQ_BREADCRUMBS_CONFIGURATION',\n { factory: () => KBQ_BREADCRUMBS_DEFAULT_CONFIGURATION }\n);\n\n/** Utility provider for `KBQ_BREADCRUMBS_CONFIGURATION`. */\nexport const kbqBreadcrumbsConfigurationProvider = (configuration: Partial<KbqBreadcrumbsConfiguration>): Provider => ({\n provide: KBQ_BREADCRUMBS_CONFIGURATION,\n useValue: { ...KBQ_BREADCRUMBS_DEFAULT_CONFIGURATION, ...configuration }\n});\n\n@Directive({\n selector: 'ng-template[kbqBreadcrumbsSeparator]',\n host: {\n class: 'kbq-breadcrumbs-separator'\n }\n})\nexport class KbqBreadcrumbsSeparator {\n // TODO: the library reads the template with `{ read: TemplateRef }`; kept as public API at the DS-2196 review.\n readonly templateRef = inject<TemplateRef<unknown>>(TemplateRef);\n}\n\n/**\n * Directive to style and configure buttons used as breadcrumb items.\n * - Takes part in the roving focus of `KbqBreadcrumbs`: the arrow keys move between the items.\n * - Optionally injects `KbqButton` to customize its style for breadcrumb usage.\n * - Sets `type=\"button\"` on a `<button>` host, so a breadcrumb never submits a surrounding form.\n */\n@Directive({\n selector: '[kbq-button][kbqBreadcrumb]',\n host: {\n class: 'kbq-breadcrumb-item',\n '[attr.type]': 'element.nodeName === \"BUTTON\" ? \"button\" : null'\n },\n hostDirectives: [\n {\n directive: RdxRovingFocusItemDirective,\n inputs: ['focusable']\n }\n ]\n})\nexport class KbqBreadcrumbButton implements OnInit {\n private readonly button = inject(KbqButton, { optional: true, self: true });\n protected readonly element = kbqInjectNativeElement();\n\n ngOnInit() {\n // Applied through the seams that yield to the consumer: writing `color`/`kbqStyle` directly marks\n // the value as owned by the button, which overwrites a binding the consumer authored and opts the\n // button out of a surrounding `KbqButtonGroupRoot` for good.\n this.button?.setKbqStyleFromGroup(KbqButtonStyles.Transparent);\n this.button?.setColorFromGroup(KbqComponentColors.Contrast);\n }\n}\n\n/**\n * Directive provides a way to define a custom template for breadcrumb rendering, leveraging TemplateRef\n *\n */\n@Directive({\n selector: '[kbqBreadcrumbView]'\n})\nexport class KbqBreadcrumbView {\n // TODO: the library reads the template with `{ read: TemplateRef }`; kept as public API at the DS-2196 review.\n readonly templateRef = inject<TemplateRef<unknown>>(TemplateRef);\n}\n\n/**\n * Component represents an individual breadcrumb item with optional support for router navigation and styling.\n */\n@Component({\n selector: 'kbq-breadcrumb-item',\n template: `\n <ng-content />\n `,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class KbqBreadcrumbItem {\n /**\n * The text displayed for the breadcrumb item.\n * This text will be shown if breadcrumb item is hidden in dropdown.\n */\n readonly text = input<string>('');\n\n /**\n * Indicates whether the breadcrumb item is disabled.\n */\n readonly disabled = input<boolean, unknown>(false, { transform: booleanAttribute });\n\n /**\n * Indicates whether the breadcrumb item is the current/active item, which the trail exposes as\n * `aria-current=\"page\"`. The last item of a trail is current regardless of this input.\n */\n readonly current = input<boolean, unknown>(false, { transform: booleanAttribute });\n\n /**\n * A reference to a custom template provided for the breadcrumb item content.\n * The template can be used to override the default appearance of the breadcrumb.\n */\n readonly customTemplateRef = contentChild<KbqBreadcrumbView, TemplateRef<unknown>>(KbqBreadcrumbView, {\n read: TemplateRef\n });\n\n /**\n * An optional `RouterLink` instance for navigating to a specific route.\n * Injected from the host element, if available and projecting to the hidden breadcrumb item in dropdown.\n */\n readonly routerLink = inject(RouterLink, { optional: true, host: true });\n}\n\n@Component({\n selector: 'kbq-breadcrumbs,[kbq-breadcrumbs]',\n imports: [\n NgTemplateOutlet,\n RouterLink,\n KbqIconModule,\n KbqButtonModule,\n KbqDropdownModule,\n KbqBreadcrumbButton,\n KbqTitleModule,\n KbqOverflowItemsModule\n ],\n templateUrl: './breadcrumbs.html',\n styleUrls: ['./breadcrumbs.scss', './breadcrumbs-tokens.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'kbq-breadcrumbs',\n '[class.kbq-breadcrumbs_compact]': 'size() === \"compact\"',\n '[class.kbq-breadcrumbs_normal]': 'size() === \"normal\"',\n '[class.kbq-breadcrumbs_big]': 'size() === \"big\"',\n '[class.kbq-breadcrumbs_wrap]': 'wrapMode() === \"wrap\"',\n '[class.kbq-breadcrumbs_first-item-negative-margin]': 'firstItemNegativeMargin()',\n '[class.kbq-disabled]': 'disabled()',\n '[attr.role]': 'hostRole',\n '[attr.aria-label]': 'resolvedAriaLabel()'\n },\n hostDirectives: [\n {\n directive: RdxRovingFocusGroupDirective,\n inputs: ['dir', 'loop']\n },\n { directive: KbqLocaleOverridesDirective, inputs: ['kbqLocaleOverrides: localeOverrides'] }\n ]\n})\nexport class KbqBreadcrumbs {\n protected readonly configuration = inject(KBQ_BREADCRUMBS_CONFIGURATION);\n /** Accessible names of the landmark itself and of the icon-only button revealing the collapsed items. */\n protected readonly a11yLocaleConfiguration = inject(KbqLocaleOverridesDirective, { self: true }).read(\n 'a11y',\n KBQ_A11Y_LOCALE_CONFIGURATION\n );\n\n /**\n * Accessible name of the navigation landmark. Set it whenever a page renders more than one trail, so\n * assistive technology can tell them apart. Left unset, the name comes from the active locale.\n */\n readonly ariaLabel = input<string | null>(null, { alias: 'aria-label' });\n\n /**\n * Determines if a negative margin should be applied to the first breadcrumb item. The default comes from\n * {@link KbqBreadcrumbsConfiguration}.\n */\n readonly firstItemNegativeMargin = input<boolean, unknown>(this.configuration.firstItemNegativeMargin, {\n transform: booleanAttribute\n });\n\n /**\n * Size of the breadcrumbs. Affects font size.\n * Default value is taken from the global configuration.\n */\n readonly size = input<KbqDefaultSizes>(this.configuration.size);\n\n /**\n * Maximum number of visible breadcrumb items.\n * Remaining items are collapsed into a dropdown if the total exceeds this value.\n * Default value is taken from the global configuration.\n */\n readonly max = input<number | null>(this.configuration.max);\n\n /**\n * Indicates whether the breadcrumbs are disabled.\n * When disabled, every item and the expand button stop navigating and leave the tab order.\n */\n readonly disabled = input<boolean, unknown>(false, { transform: booleanAttribute });\n\n /**\n * Wrapping behavior of the breadcrumb items.\n */\n readonly wrapMode = input<KbqBreadcrumbsWrapMode>(this.configuration.wrapMode);\n\n protected readonly separator = contentChild<KbqBreadcrumbsSeparator, TemplateRef<unknown>>(\n KbqBreadcrumbsSeparator,\n { read: TemplateRef }\n );\n\n protected readonly items = contentChildren<KbqBreadcrumbItem>(forwardRef(() => KbqBreadcrumbItem));\n\n private readonly resultDropdownTrigger = viewChild('breadcrumbsResult', { read: KbqDropdownTrigger });\n private readonly result = viewChild(KbqOverflowItemsResult);\n private readonly overflowItems = viewChildren<KbqOverflowItem>(forwardRef(() => KbqOverflowItem));\n private readonly overflowItemsDir = viewChild(KbqOverflowItems);\n\n /**\n * Ensures at least minimum number of breadcrumb items are shown.\n */\n protected readonly minVisibleItems = 2;\n protected readonly KbqComponentColors = KbqComponentColors;\n protected readonly PopUpPlacements = PopUpPlacements;\n\n /**\n * `<nav>` is a landmark already, so the role is written only onto the other host forms. Resolved once:\n * the tag name of a host element never changes.\n */\n protected readonly hostRole = kbqInjectNativeElement().tagName === 'NAV' ? null : 'navigation';\n\n /** Consumer-authored name of the landmark, falling back to the active locale. */\n protected readonly resolvedAriaLabel = computed(\n () => this.ariaLabel() ?? this.a11yLocaleConfiguration().breadcrumbs\n );\n\n /** @docs-private */\n protected readonly itemsExcludingEdges = computed(() => this.items().slice(1, -1));\n protected readonly hiddenItemIDs = computed(\n () =>\n new Set(\n this.overflowItems()\n .filter((item) => item.hidden())\n .map((item) => item.id())\n )\n );\n\n /** @docs-private */\n protected readonly maxVisibleItems = computed((): number | null => {\n const max = this.max();\n const count = this.items().length;\n\n if (max === null || max >= count || max < this.minVisibleItems) return null;\n\n return max - 1;\n });\n\n private readonly maxHiddenItems = new Set<KbqOverflowItem>();\n\n constructor() {\n const group = inject(RdxRovingFocusGroupDirective, { self: true });\n\n group.orientation = 'horizontal';\n\n merge(\n toObservable(this.overflowItemsDir).pipe(\n switchMap((dir) => (dir ? outputToObservable(dir.changes) : EMPTY))\n ),\n toObservable(this.max).pipe(skip(1))\n )\n .pipe(takeUntilDestroyed())\n .subscribe(() => this.enforceMaxVisible());\n }\n\n private enforceMaxVisible(): void {\n const max = this.maxVisibleItems();\n const items = this.overflowItems();\n const result = this.result();\n const overflowHiddenIds = this.overflowItemsDir()?.hiddenItemIDs() ?? new Set();\n\n this.maxHiddenItems.forEach((item) => {\n if (!overflowHiddenIds.has(item.id())) {\n item.show();\n }\n });\n this.maxHiddenItems.clear();\n\n const allVisibleItems = items\n .map((item, index) => ({ item, order: item.order() ?? index }))\n .filter(({ item }) => !item.hidden());\n\n const extraToHide = max === null ? 0 : allVisibleItems.length - max;\n\n const hideResultIfAllVisible = () => {\n if (allVisibleItems.length === items.length) {\n result?.hide();\n this.resultDropdownTrigger()?.close();\n }\n };\n\n if (extraToHide <= 0) {\n hideResultIfAllVisible();\n\n return;\n }\n\n const hideable = allVisibleItems\n .filter(({ item }) => !item.alwaysVisible())\n .sort((a, b) => a.order - b.order)\n .map(({ item }) => item);\n\n for (let i = 0; i < extraToHide && i < hideable.length; i++) {\n hideable[i].hide();\n this.maxHiddenItems.add(hideable[i]);\n result?.show();\n }\n }\n}\n","@let allItems = items();\n@if (allItems.length < minVisibleItems || wrapMode() !== 'auto') {\n <div class=\"kbq-breadcrumbs__list\" role=\"list\">\n @for (item of allItems; track item) {\n <div class=\"kbq-breadcrumb-item__container\" role=\"listitem\">\n <ng-container\n [ngTemplateOutlet]=\"breadcrumbTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: item, last: $last }\"\n />\n @if (!$last) {\n <ng-container [ngTemplateOutlet]=\"separatorTemplate\" />\n }\n </div>\n }\n </div>\n} @else {\n <div\n #kbqOverflowItems=\"kbqOverflowItems\"\n kbqOverflowItems\n reverseOverflowOrder\n role=\"list\"\n class=\"layout-align-start-center\"\n >\n <div class=\"kbq-breadcrumb-item__container\" role=\"listitem\" [kbqOverflowItem]=\"0\" [order]=\"allItems.length\">\n <ng-container\n [ngTemplateOutlet]=\"breadcrumbTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: allItems[0], last: false }\"\n />\n <ng-container [ngTemplateOutlet]=\"separatorTemplate\" />\n </div>\n <div kbqOverflowItemsResult class=\"kbq-breadcrumb-item__container\" role=\"listitem\">\n <button\n #breadcrumbsResult\n kbq-button\n kbqBreadcrumb\n class=\"kbq-breadcrumb__expand\"\n [attr.aria-label]=\"a11yLocaleConfiguration().expandBreadcrumbs\"\n [focusable]=\"!disabled()\"\n [disabled]=\"disabled()\"\n [kbqDropdownTriggerFor]=\"hiddenBreadcrumbsDropdown\"\n >\n <i kbq-icon=\"kbq-ellipsis-horizontal_16\" [color]=\"KbqComponentColors.ContrastFade\"></i>\n </button>\n <ng-container [ngTemplateOutlet]=\"separatorTemplate\" />\n\n <kbq-dropdown #hiddenBreadcrumbsDropdown=\"kbqDropdown\">\n @for (item of allItems; track item) {\n @if (hiddenItemIDs().has($index)) {\n <a\n kbq-dropdown-item\n [routerLink]=\"item.routerLink?.urlTree\"\n [attr.aria-current]=\"item.current() ? 'page' : null\"\n [disabled]=\"disabled() || item.disabled()\"\n >\n @if (item.customTemplateRef(); as customTemplateRef) {\n <ng-container [ngTemplateOutlet]=\"customTemplateRef\" />\n } @else {\n {{ item.text() }}\n }\n </a>\n }\n }\n </kbq-dropdown>\n </div>\n @for (item of itemsExcludingEdges(); track item) {\n <div class=\"kbq-breadcrumb-item__container\" role=\"listitem\" [kbqOverflowItem]=\"$index + 1\">\n <ng-container\n [ngTemplateOutlet]=\"breadcrumbTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: item, last: false }\"\n />\n <ng-container [ngTemplateOutlet]=\"separatorTemplate\" />\n </div>\n }\n <div\n alwaysVisible\n class=\"kbq-breadcrumb-item__container\"\n role=\"listitem\"\n [kbqOverflowItem]=\"allItems.length - 1\"\n >\n <ng-container\n [ngTemplateOutlet]=\"breadcrumbTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: allItems[allItems.length - 1], last: true }\"\n />\n </div>\n </div>\n}\n\n<ng-template #breadcrumbTemplate let-item let-last=\"last\">\n @if (item.customTemplateRef()) {\n <ng-container [ngTemplateOutlet]=\"item.customTemplateRef()!\" />\n } @else {\n <a\n kbq-button\n kbq-title\n kbqBreadcrumb\n [focusable]=\"!disabled() && !item.disabled() && !last\"\n [routerLink]=\"item.routerLink?.urlTree\"\n [attr.aria-current]=\"item.current() || last ? 'page' : null\"\n [disabled]=\"disabled() || item.disabled() || last\"\n [kbqPlacementPriority]=\"PopUpPlacements.Bottom\"\n [kbqTooltipArrow]=\"false\"\n >\n {{ item.text() }}\n </a>\n }\n</ng-template>\n\n<ng-template #separatorTemplate>\n @if (separator(); as separatorTemplateRef) {\n <ng-container [ngTemplateOutlet]=\"separatorTemplateRef\" />\n } @else {\n <i aria-hidden=\"true\" class=\"kbq-breadcrumb__separator\"> / </i>\n }\n</ng-template>\n","import { NgModule } from '@angular/core';\nimport {\n KbqBreadcrumbButton,\n KbqBreadcrumbItem,\n KbqBreadcrumbs,\n KbqBreadcrumbsSeparator,\n KbqBreadcrumbView\n} from './breadcrumbs';\n\nconst COMPONENTS = [\n KbqBreadcrumbs,\n KbqBreadcrumbItem,\n KbqBreadcrumbView,\n KbqBreadcrumbsSeparator,\n KbqBreadcrumbButton\n];\n\n@NgModule({\n imports: COMPONENTS,\n exports: COMPONENTS\n})\nexport class KbqBreadcrumbsModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.RdxRovingFocusItemDirective","i2.RdxRovingFocusGroupDirective"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"koobiq-components-breadcrumbs.mjs","sources":["../../../packages/components/breadcrumbs/utils.ts","../../../packages/components/breadcrumbs/roving-focus-group.directive.ts","../../../packages/components/breadcrumbs/roving-focus-item.directive.ts","../../../packages/components/breadcrumbs/breadcrumbs.ts","../../../packages/components/breadcrumbs/breadcrumbs.html","../../../packages/components/breadcrumbs/breadcrumbs.module.ts","../../../packages/components/breadcrumbs/koobiq-components-breadcrumbs.ts"],"sourcesContent":["import { Direction } from '@angular/cdk/bidi';\nimport { _getFocusedElementPierceShadowDom } from '@angular/cdk/platform';\n\n/** Axis a roving-focus group navigates along. */\nexport type KbqRovingFocusOrientation = 'horizontal' | 'vertical';\n\nexport const ENTRY_FOCUS = 'rovingFocusGroup.onEntryFocus';\nexport const EVENT_OPTIONS = { bubbles: false, cancelable: true };\n\ntype FocusIntent = 'first' | 'last' | 'prev' | 'next';\n\n/**\n * `PageUp`/`PageDown` are deliberately absent: the primitive is used by navigation trails rather than by\n * composite widgets, and swallowing the paging keys stops the document from scrolling.\n */\nexport const MAP_KEY_TO_FOCUS_INTENT: Record<string, FocusIntent> = {\n ArrowLeft: 'prev',\n ArrowUp: 'prev',\n ArrowRight: 'next',\n ArrowDown: 'next',\n Home: 'first',\n End: 'last'\n};\n\nexport function getDirectionAwareKey(key: string, dir?: Direction) {\n if (dir !== 'rtl') return key;\n\n return key === 'ArrowLeft' ? 'ArrowRight' : key === 'ArrowRight' ? 'ArrowLeft' : key;\n}\n\nexport function getFocusIntent(event: KeyboardEvent, orientation?: KbqRovingFocusOrientation, dir?: Direction) {\n const key = getDirectionAwareKey(event.key, dir);\n\n if (orientation === 'vertical' && ['ArrowLeft', 'ArrowRight'].includes(key)) return undefined;\n if (orientation === 'horizontal' && ['ArrowUp', 'ArrowDown'].includes(key)) return undefined;\n\n return MAP_KEY_TO_FOCUS_INTENT[key];\n}\n\nexport function focusFirst(candidates: HTMLElement[], preventScroll = false) {\n const previouslyFocusedElement = _getFocusedElementPierceShadowDom();\n\n for (const candidate of candidates) {\n // if focus is already where we want to go, we don't want to keep going through the candidates\n if (candidate === previouslyFocusedElement) return;\n candidate.focus({ preventScroll });\n if (_getFocusedElementPierceShadowDom() !== previouslyFocusedElement) return;\n }\n}\n\n/**\n * Wraps an array around itself at a given start index\n * Example: `wrapArray(['a', 'b', 'c', 'd'], 2) === ['c', 'd', 'a', 'b']`\n */\nexport function wrapArray<T>(array: T[], startIndex: number) {\n return array.map((_, index) => array[(startIndex + index) % array.length]);\n}\n\nexport function generateId(): string {\n return `rf-item-${Math.random().toString(36).slice(2, 11)}`;\n}\n","import { Direction, Directionality } from '@angular/cdk/bidi';\nimport {\n booleanAttribute,\n computed,\n Directive,\n ElementRef,\n inject,\n input,\n OnChanges,\n output,\n signal,\n SimpleChanges\n} from '@angular/core';\nimport { ENTRY_FOCUS, EVENT_OPTIONS, focusFirst, KbqRovingFocusOrientation } from './utils';\n\n/**\n * Moves the focus between the items of `KbqBreadcrumbs` with the arrow keys, keeping one of them in the tab\n * order. The breadcrumbs apply it themselves, as a host directive.\n *\n * @docs-private\n */\n@Directive({\n selector: '[rdxRovingFocusGroup]',\n host: {\n '[attr.data-orientation]': 'dataOrientation',\n '[attr.tabindex]': 'tabIndex',\n '[attr.dir]': 'dir()',\n '(focus)': 'handleFocus($event)',\n '(focusout)': 'handleBlur()'\n }\n})\nexport class RdxRovingFocusGroupDirective implements OnChanges {\n private readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly directionality = inject(Directionality, { optional: true });\n\n /** @docs-private */\n readonly orientationInput = input<KbqRovingFocusOrientation | undefined>(undefined, { alias: 'orientation' });\n\n /**\n * Axis the arrow keys navigate along. A plain field the input feeds: the host component also writes it\n * directly, once, from its own constructor.\n */\n orientation: KbqRovingFocusOrientation | undefined;\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['orientationInput']) {\n this.orientation = this.orientationInput();\n }\n }\n\n /**\n * Reading direction the arrow keys are mapped against, written onto the host as `dir`. Left unset,\n * no attribute is emitted — the element inherits the document direction, and the key mapping follows\n * the ambient CDK `Directionality`.\n */\n readonly dir = input<Direction | null>(null);\n /** Whether the arrow keys wrap around, from the last item to the first and back. */\n readonly loop = input<boolean, unknown>(true, { transform: booleanAttribute });\n readonly preventScrollOnEntryFocus = input<boolean, unknown>(false, { transform: booleanAttribute });\n\n readonly entryFocus = output<Event>();\n readonly currentTabStopIdChange = output<string | null>();\n\n /** @docs-private */\n readonly currentTabStopId = signal<string | null>(null);\n\n /** @docs-private */\n readonly focusableItems = signal<HTMLElement[]>([]);\n\n /** Tab stop id of each registered element, so the current tab stop can be resolved back to its node. */\n private readonly itemIds = new WeakMap<HTMLElement, string>();\n\n private readonly isTabbingBackOut = signal(false);\n\n /**\n * Reading direction the arrow keys are actually mapped against: the input when it is set, the\n * ambient `Directionality` otherwise.\n *\n * @docs-private\n */\n readonly resolvedDir = computed<Direction>(() => this.dir() ?? this.directionality?.valueSignal() ?? 'ltr');\n\n /** @docs-private */\n get dataOrientation() {\n return this.orientation || 'horizontal';\n }\n\n /** @docs-private */\n get tabIndex() {\n return this.isTabbingBackOut() || this.getFocusableItemsCount() === 0 ? -1 : 0;\n }\n\n /** @docs-private */\n handleBlur() {\n if (!this.isTabbingBackOut()) return;\n\n this.isTabbingBackOut.set(false);\n this.syncTabIndex();\n }\n\n /** @docs-private */\n handleFocus(event: FocusEvent) {\n // Forwarded regardless of what moved the focus here: a click on the group's own padding lands on\n // the host, which is a tab stop with nothing to do, and the trail would otherwise hold an\n // invisible focus that the next Tab leaves altogether. A click on an item is unaffected — the\n // item records itself as the current tab stop on `mousedown`, so the forward returns to it.\n if (\n event.currentTarget === this.elementRef.nativeElement &&\n event.target === event.currentTarget &&\n !this.isTabbingBackOut()\n ) {\n const entryFocusEvent = new CustomEvent(ENTRY_FOCUS, EVENT_OPTIONS);\n\n this.elementRef.nativeElement.dispatchEvent(entryFocusEvent);\n this.entryFocus.emit(entryFocusEvent);\n\n if (!entryFocusEvent.defaultPrevented) {\n const items = this.focusableItems().filter((item) => item.dataset['disabled'] !== '');\n const activeItem = items.find((item) => item.getAttribute('data-active') === 'true');\n const currentItem = items.find((item) => this.itemIds.get(item) === this.currentTabStopId());\n const candidateItems = [activeItem, currentItem, ...items].filter(Boolean) as HTMLElement[];\n\n focusFirst(candidateItems, this.preventScrollOnEntryFocus());\n }\n }\n }\n\n /** @docs-private */\n onItemFocus(tabStopId: string) {\n this.currentTabStopId.set(tabStopId);\n this.currentTabStopIdChange.emit(tabStopId);\n }\n\n /** @docs-private */\n onItemShiftTab() {\n this.isTabbingBackOut.set(true);\n this.syncTabIndex();\n }\n\n // The browser picks the Shift+Tab target right after the keydown, and the `focusout` that follows also\n // comes before the host binding renders, so each latch transition writes the attribute at once.\n private syncTabIndex(): void {\n this.elementRef.nativeElement.setAttribute('tabindex', String(this.tabIndex));\n }\n\n /**\n * Registers `item` as a focusable member of the group, ignoring one that is not actually a\n * descendant of the group's own host. A `TemplateRef` declared inside the group (a `kbqBreadcrumbView`,\n * say) keeps resolving an injected group through its declaration-site injector even when something\n * outside the group's DOM subtree — a dropdown replaying a hidden item's template, for instance —\n * instantiates it a second time via `ngTemplateOutlet`. That copy is not reachable by this group's\n * arrow keys and must not register, or the trail ends up with a phantom, unfocusable duplicate.\n *\n * @docs-private\n */\n registerItem(item: HTMLElement, tabStopId?: string) {\n if (!this.elementRef.nativeElement.contains(item)) return;\n\n if (tabStopId !== undefined) {\n this.itemIds.set(item, tabStopId);\n }\n\n this.focusableItems.update((items) => {\n if (items.includes(item)) return items;\n\n // Sorted by actual DOM position rather than appended: registration order follows when each\n // item's effect happens to run, which does not track document order (a static element and\n // one rendered through `NgTemplateOutlet` can register in either order regardless of where\n // they end up in the tree). Arrow-key traversal has to follow the visual order instead.\n return [...items, item].sort((a, b) =>\n a.compareDocumentPosition(b) & Node.DOCUMENT_POSITION_FOLLOWING ? -1 : 1\n );\n });\n }\n\n /** @docs-private */\n unregisterItem(item: HTMLElement) {\n if (this.itemIds.get(item) === this.currentTabStopId()) {\n this.currentTabStopId.set(null);\n }\n\n this.itemIds.delete(item);\n this.focusableItems.update((items) => items.filter((el) => el !== item));\n }\n\n /** @docs-private */\n getFocusableItemsCount() {\n return this.focusableItems().length;\n }\n}\n","import {\n booleanAttribute,\n computed,\n Directive,\n effect,\n ElementRef,\n inject,\n input,\n NgZone,\n OnDestroy\n} from '@angular/core';\nimport { RdxRovingFocusGroupDirective } from './roving-focus-group.directive';\nimport { focusFirst, generateId, getFocusIntent, wrapArray } from './utils';\n\n/**\n * An item of the roving focus of `KbqBreadcrumbs`. `KbqBreadcrumbButton` applies it itself, as a host directive.\n *\n * @docs-private\n */\n@Directive({\n selector: '[rdxRovingFocusItem]',\n host: {\n '[attr.tabindex]': 'tabIndex',\n '[attr.data-orientation]': 'parent.orientation',\n '[attr.data-active]': 'active()',\n '[attr.data-disabled]': '!focusable() ? \"\" : undefined',\n '(mousedown)': 'handleMouseDown($event)',\n '(keydown)': 'handleKeydown($event)',\n '(focus)': 'onFocus()'\n }\n})\nexport class RdxRovingFocusItemDirective implements OnDestroy {\n private readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly ngZone = inject(NgZone);\n protected readonly parent = inject(RdxRovingFocusGroupDirective);\n\n /**\n * Whether the item takes part in the roving focus. The arrow keys skip an item that does not, and a click\n * does not focus it.\n */\n readonly focusable = input<boolean, unknown>(true, { transform: booleanAttribute });\n\n /**\n * Whether the item is the one focus returns to when the group is re-entered. Defaults to `false`, so\n * that `data-active` discriminates: with every item active the lookup degenerates to the first one.\n */\n readonly active = input<boolean, unknown>(false, { transform: booleanAttribute });\n readonly tabStopId = input<string>('');\n readonly allowShiftKey = input<boolean, unknown>(false, { transform: booleanAttribute });\n\n private readonly id = computed(() => this.tabStopId() || generateId());\n\n /** @docs-private */\n readonly isCurrentTabStop = computed(() => this.parent.currentTabStopId() === this.id());\n\n constructor() {\n // Registration follows `focusable`, which the host binds to a derived expression: an item that\n // becomes focusable after creation has to join the group, and one that stops being focusable has\n // to leave it, or the group keeps counting an element the arrow keys can no longer reach.\n effect((onCleanup) => {\n if (!this.focusable()) return;\n\n const element = this.elementRef.nativeElement;\n\n this.parent.registerItem(element, this.id());\n\n onCleanup(() => this.parent.unregisterItem(element));\n });\n }\n\n /**\n * Lifecycle hook triggered on destruction.\n * Unregisters the element from the parent roving focus group.\n *\n * @docs-private\n */\n ngOnDestroy() {\n this.parent.unregisterItem(this.elementRef.nativeElement);\n }\n\n /**\n * Determines the `tabIndex` of the element.\n * Returns `0` if the element is the current tab stop; otherwise, returns `-1`.\n *\n * @docs-private\n */\n get tabIndex() {\n return this.isCurrentTabStop() ? 0 : -1;\n }\n\n /** @docs-private */\n handleMouseDown(event: MouseEvent) {\n if (!this.focusable()) {\n // We prevent focusing non-focusable items on `mousedown`.\n // Even though the item has tabIndex={-1}, that only means take it out of the tab order.\n event.preventDefault();\n } else {\n // Safari doesn't focus a button when clicked so we run our logic on mousedown also\n this.parent.onItemFocus(this.id());\n }\n }\n\n /** @docs-private */\n onFocus() {\n this.parent.onItemFocus(this.id());\n }\n\n /**\n * Handles the `keydown` event for keyboard navigation within the roving focus group.\n * Supports navigation based on orientation and direction, and focuses appropriate elements.\n *\n * @param event The `KeyboardEvent` object.\n *\n * @docs-private\n */\n handleKeydown(event: KeyboardEvent) {\n if (event.key === 'Tab' && event.shiftKey) {\n this.parent.onItemShiftTab();\n\n return;\n }\n\n if (event.target !== this.elementRef.nativeElement) return;\n\n const focusIntent = getFocusIntent(event, this.parent.orientation, this.parent.resolvedDir());\n\n if (focusIntent !== undefined) {\n if (event.metaKey || event.ctrlKey || event.altKey || (this.allowShiftKey() ? false : event.shiftKey)) {\n return;\n }\n\n event.preventDefault();\n\n let candidateNodes = this.parent.focusableItems().filter((item) => item.dataset['disabled'] !== '');\n\n if (focusIntent === 'last') {\n candidateNodes.reverse();\n } else if (focusIntent === 'prev' || focusIntent === 'next') {\n if (focusIntent === 'prev') candidateNodes.reverse();\n const currentIndex = candidateNodes.indexOf(this.elementRef.nativeElement);\n\n candidateNodes = this.parent.loop()\n ? wrapArray(candidateNodes, currentIndex + 1)\n : candidateNodes.slice(currentIndex + 1);\n }\n\n this.ngZone.runOutsideAngular(() => {\n Promise.resolve().then(() => {\n focusFirst(candidateNodes, false);\n });\n });\n }\n }\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n contentChild,\n contentChildren,\n Directive,\n forwardRef,\n inject,\n InjectionToken,\n input,\n OnInit,\n Provider,\n TemplateRef,\n viewChild,\n viewChildren,\n ViewEncapsulation\n} from '@angular/core';\nimport { outputToObservable, takeUntilDestroyed, toObservable } from '@angular/core/rxjs-interop';\nimport { RouterLink } from '@angular/router';\nimport { KbqButton, KbqButtonModule, KbqButtonStyles } from '@koobiq/components/button';\nimport {\n KBQ_A11Y_LOCALE_CONFIGURATION,\n KbqComponentColors,\n KbqDefaultSizes,\n kbqInjectNativeElement,\n KbqLocaleOverridesDirective,\n PopUpPlacements\n} from '@koobiq/components/core';\nimport { KbqDropdownModule, KbqDropdownTrigger } from '@koobiq/components/dropdown';\nimport { KbqIconModule } from '@koobiq/components/icon';\nimport {\n KbqOverflowItem,\n KbqOverflowItems,\n KbqOverflowItemsModule,\n KbqOverflowItemsResult\n} from '@koobiq/components/overflow-items';\nimport { KbqTitleModule } from '@koobiq/components/title';\nimport { EMPTY, merge, skip, switchMap } from 'rxjs';\nimport { KbqBreadcrumbsConfiguration, KbqBreadcrumbsWrapMode } from './breadcrumbs.types';\nimport { RdxRovingFocusGroupDirective } from './roving-focus-group.directive';\nimport { RdxRovingFocusItemDirective } from './roving-focus-item.directive';\n\nconst KBQ_BREADCRUMBS_DEFAULT_CONFIGURATION: KbqBreadcrumbsConfiguration = {\n max: 4,\n size: 'normal',\n firstItemNegativeMargin: true,\n wrapMode: 'auto'\n};\n\n/** Breadcrumbs options global configuration provider. */\nexport const KBQ_BREADCRUMBS_CONFIGURATION = new InjectionToken<KbqBreadcrumbsConfiguration>(\n 'KBQ_BREADCRUMBS_CONFIGURATION',\n { factory: () => KBQ_BREADCRUMBS_DEFAULT_CONFIGURATION }\n);\n\n/** Utility provider for `KBQ_BREADCRUMBS_CONFIGURATION`. */\nexport const kbqBreadcrumbsConfigurationProvider = (configuration: Partial<KbqBreadcrumbsConfiguration>): Provider => ({\n provide: KBQ_BREADCRUMBS_CONFIGURATION,\n useValue: { ...KBQ_BREADCRUMBS_DEFAULT_CONFIGURATION, ...configuration }\n});\n\n@Directive({\n selector: 'ng-template[kbqBreadcrumbsSeparator]',\n host: {\n class: 'kbq-breadcrumbs-separator'\n }\n})\nexport class KbqBreadcrumbsSeparator {\n // TODO: the library reads the template with `{ read: TemplateRef }`; kept as public API at the DS-2196 review.\n readonly templateRef = inject<TemplateRef<unknown>>(TemplateRef);\n}\n\n/**\n * Directive to style and configure buttons used as breadcrumb items.\n * - Takes part in the roving focus of `KbqBreadcrumbs`: the arrow keys move between the items.\n * - Optionally injects `KbqButton` to customize its style for breadcrumb usage.\n * - Sets `type=\"button\"` on a `<button>` host, so a breadcrumb never submits a surrounding form.\n */\n@Directive({\n selector: '[kbq-button][kbqBreadcrumb]',\n host: {\n class: 'kbq-breadcrumb-item',\n '[attr.type]': 'element.nodeName === \"BUTTON\" ? \"button\" : null'\n },\n hostDirectives: [\n {\n directive: RdxRovingFocusItemDirective,\n inputs: ['focusable']\n }\n ]\n})\nexport class KbqBreadcrumbButton implements OnInit {\n private readonly button = inject(KbqButton, { optional: true, self: true });\n protected readonly element = kbqInjectNativeElement();\n\n ngOnInit() {\n // Applied through the seams that yield to the consumer: writing `color`/`kbqStyle` directly marks\n // the value as owned by the button, which overwrites a binding the consumer authored and opts the\n // button out of a surrounding `KbqButtonGroupRoot` for good.\n this.button?.setKbqStyleFromGroup(KbqButtonStyles.Transparent);\n this.button?.setColorFromGroup(KbqComponentColors.Contrast);\n }\n}\n\n/**\n * Directive provides a way to define a custom template for breadcrumb rendering, leveraging TemplateRef\n *\n */\n@Directive({\n selector: '[kbqBreadcrumbView]'\n})\nexport class KbqBreadcrumbView {\n // TODO: the library reads the template with `{ read: TemplateRef }`; kept as public API at the DS-2196 review.\n readonly templateRef = inject<TemplateRef<unknown>>(TemplateRef);\n}\n\n/**\n * Component represents an individual breadcrumb item with optional support for router navigation and styling.\n */\n@Component({\n selector: 'kbq-breadcrumb-item',\n template: `\n <ng-content />\n `,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class KbqBreadcrumbItem {\n /**\n * The text displayed for the breadcrumb item.\n * This text will be shown if breadcrumb item is hidden in dropdown.\n */\n readonly text = input<string>('');\n\n /**\n * Indicates whether the breadcrumb item is disabled.\n */\n readonly disabled = input<boolean, unknown>(false, { transform: booleanAttribute });\n\n /**\n * Indicates whether the breadcrumb item is the current/active item, which the trail exposes as\n * `aria-current=\"page\"`. The last item of a trail is current regardless of this input.\n */\n readonly current = input<boolean, unknown>(false, { transform: booleanAttribute });\n\n /**\n * A reference to a custom template provided for the breadcrumb item content.\n * The template can be used to override the default appearance of the breadcrumb.\n */\n readonly customTemplateRef = contentChild<KbqBreadcrumbView, TemplateRef<unknown>>(KbqBreadcrumbView, {\n read: TemplateRef\n });\n\n /**\n * An optional `RouterLink` instance for navigating to a specific route.\n * Injected from the host element, if available and projecting to the hidden breadcrumb item in dropdown.\n */\n readonly routerLink = inject(RouterLink, { optional: true, host: true });\n}\n\n@Component({\n selector: 'kbq-breadcrumbs,[kbq-breadcrumbs]',\n imports: [\n NgTemplateOutlet,\n RouterLink,\n KbqIconModule,\n KbqButtonModule,\n KbqDropdownModule,\n KbqBreadcrumbButton,\n KbqTitleModule,\n KbqOverflowItemsModule\n ],\n templateUrl: './breadcrumbs.html',\n styleUrls: ['./breadcrumbs.scss', './breadcrumbs-tokens.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'kbq-breadcrumbs',\n '[class.kbq-breadcrumbs_compact]': 'size() === \"compact\"',\n '[class.kbq-breadcrumbs_normal]': 'size() === \"normal\"',\n '[class.kbq-breadcrumbs_big]': 'size() === \"big\"',\n '[class.kbq-breadcrumbs_wrap]': 'wrapMode() === \"wrap\"',\n '[class.kbq-breadcrumbs_first-item-negative-margin]': 'firstItemNegativeMargin()',\n '[class.kbq-disabled]': 'disabled()',\n '[attr.role]': 'hostRole',\n '[attr.aria-label]': 'resolvedAriaLabel()'\n },\n hostDirectives: [\n {\n directive: RdxRovingFocusGroupDirective,\n inputs: ['dir', 'loop']\n },\n { directive: KbqLocaleOverridesDirective, inputs: ['kbqLocaleOverrides: localeOverrides'] }\n ]\n})\nexport class KbqBreadcrumbs {\n protected readonly configuration = inject(KBQ_BREADCRUMBS_CONFIGURATION);\n /** Accessible names of the landmark itself and of the icon-only button revealing the collapsed items. */\n protected readonly a11yLocaleConfiguration = inject(KbqLocaleOverridesDirective, { self: true }).read(\n 'a11y',\n KBQ_A11Y_LOCALE_CONFIGURATION\n );\n\n /**\n * Accessible name of the navigation landmark. Set it whenever a page renders more than one trail, so\n * assistive technology can tell them apart. Left unset, the name comes from the active locale.\n */\n readonly ariaLabel = input<string | null>(null, { alias: 'aria-label' });\n\n /**\n * Determines if a negative margin should be applied to the first breadcrumb item. The default comes from\n * {@link KbqBreadcrumbsConfiguration}.\n */\n readonly firstItemNegativeMargin = input<boolean, unknown>(this.configuration.firstItemNegativeMargin, {\n transform: booleanAttribute\n });\n\n /**\n * Size of the breadcrumbs. Affects font size.\n * Default value is taken from the global configuration.\n */\n readonly size = input<KbqDefaultSizes>(this.configuration.size);\n\n /**\n * Maximum number of visible breadcrumb items.\n * Remaining items are collapsed into a dropdown if the total exceeds this value.\n * Default value is taken from the global configuration.\n */\n readonly max = input<number | null>(this.configuration.max);\n\n /**\n * Indicates whether the breadcrumbs are disabled.\n * When disabled, every item and the expand button stop navigating and leave the tab order.\n */\n readonly disabled = input<boolean, unknown>(false, { transform: booleanAttribute });\n\n /**\n * Wrapping behavior of the breadcrumb items.\n */\n readonly wrapMode = input<KbqBreadcrumbsWrapMode>(this.configuration.wrapMode);\n\n protected readonly separator = contentChild<KbqBreadcrumbsSeparator, TemplateRef<unknown>>(\n KbqBreadcrumbsSeparator,\n { read: TemplateRef }\n );\n\n protected readonly items = contentChildren<KbqBreadcrumbItem>(forwardRef(() => KbqBreadcrumbItem));\n\n private readonly resultDropdownTrigger = viewChild('breadcrumbsResult', { read: KbqDropdownTrigger });\n private readonly result = viewChild(KbqOverflowItemsResult);\n private readonly overflowItems = viewChildren<KbqOverflowItem>(forwardRef(() => KbqOverflowItem));\n private readonly overflowItemsDir = viewChild(KbqOverflowItems);\n\n /**\n * Ensures at least minimum number of breadcrumb items are shown.\n */\n protected readonly minVisibleItems = 2;\n protected readonly KbqComponentColors = KbqComponentColors;\n protected readonly PopUpPlacements = PopUpPlacements;\n\n /**\n * `<nav>` is a landmark already, so the role is written only onto the other host forms. Resolved once:\n * the tag name of a host element never changes.\n */\n protected readonly hostRole = kbqInjectNativeElement().tagName === 'NAV' ? null : 'navigation';\n\n /** Consumer-authored name of the landmark, falling back to the active locale. */\n protected readonly resolvedAriaLabel = computed(\n () => this.ariaLabel() ?? this.a11yLocaleConfiguration().breadcrumbs\n );\n\n /** @docs-private */\n protected readonly itemsExcludingEdges = computed(() => this.items().slice(1, -1));\n protected readonly hiddenItemIDs = computed(\n () =>\n new Set(\n this.overflowItems()\n .filter((item) => item.hidden())\n .map((item) => item.id())\n )\n );\n\n /** @docs-private */\n protected readonly maxVisibleItems = computed((): number | null => {\n const max = this.max();\n const count = this.items().length;\n\n if (max === null || max >= count || max < this.minVisibleItems) return null;\n\n return max - 1;\n });\n\n private readonly maxHiddenItems = new Set<KbqOverflowItem>();\n\n constructor() {\n const group = inject(RdxRovingFocusGroupDirective, { self: true });\n\n group.orientation = 'horizontal';\n\n merge(\n toObservable(this.overflowItemsDir).pipe(\n switchMap((dir) => (dir ? outputToObservable(dir.changes) : EMPTY))\n ),\n toObservable(this.max).pipe(skip(1))\n )\n .pipe(takeUntilDestroyed())\n .subscribe(() => this.enforceMaxVisible());\n }\n\n private enforceMaxVisible(): void {\n const max = this.maxVisibleItems();\n const items = this.overflowItems();\n const result = this.result();\n const overflowHiddenIds = this.overflowItemsDir()?.hiddenItemIDs() ?? new Set();\n\n this.maxHiddenItems.forEach((item) => {\n if (!overflowHiddenIds.has(item.id())) {\n item.show();\n }\n });\n this.maxHiddenItems.clear();\n\n const allVisibleItems = items\n .map((item, index) => ({ item, order: item.order() ?? index }))\n .filter(({ item }) => !item.hidden());\n\n const extraToHide = max === null ? 0 : allVisibleItems.length - max;\n\n const hideResultIfAllVisible = () => {\n if (allVisibleItems.length === items.length) {\n result?.hide();\n this.resultDropdownTrigger()?.close();\n }\n };\n\n if (extraToHide <= 0) {\n hideResultIfAllVisible();\n\n return;\n }\n\n const hideable = allVisibleItems\n .filter(({ item }) => !item.alwaysVisible())\n .sort((a, b) => a.order - b.order)\n .map(({ item }) => item);\n\n for (let i = 0; i < extraToHide && i < hideable.length; i++) {\n hideable[i].hide();\n this.maxHiddenItems.add(hideable[i]);\n result?.show();\n }\n }\n}\n","@let allItems = items();\n@if (allItems.length < minVisibleItems || wrapMode() !== 'auto') {\n <div class=\"kbq-breadcrumbs__list\" role=\"list\">\n @for (item of allItems; track item) {\n <div class=\"kbq-breadcrumb-item__container\" role=\"listitem\">\n <ng-container\n [ngTemplateOutlet]=\"breadcrumbTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: item, last: $last }\"\n />\n @if (!$last) {\n <ng-container [ngTemplateOutlet]=\"separatorTemplate\" />\n }\n </div>\n }\n </div>\n} @else {\n <div\n #kbqOverflowItems=\"kbqOverflowItems\"\n kbqOverflowItems\n reverseOverflowOrder\n role=\"list\"\n class=\"layout-align-start-center\"\n >\n <div class=\"kbq-breadcrumb-item__container\" role=\"listitem\" [kbqOverflowItem]=\"0\" [order]=\"allItems.length\">\n <ng-container\n [ngTemplateOutlet]=\"breadcrumbTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: allItems[0], last: false }\"\n />\n <ng-container [ngTemplateOutlet]=\"separatorTemplate\" />\n </div>\n <div kbqOverflowItemsResult class=\"kbq-breadcrumb-item__container\" role=\"listitem\">\n <button\n #breadcrumbsResult\n kbq-button\n kbqBreadcrumb\n class=\"kbq-breadcrumb__expand\"\n [attr.aria-label]=\"a11yLocaleConfiguration().expandBreadcrumbs\"\n [focusable]=\"!disabled()\"\n [disabled]=\"disabled()\"\n [kbqDropdownTriggerFor]=\"hiddenBreadcrumbsDropdown\"\n >\n <i kbq-icon=\"kbq-ellipsis-horizontal_16\" [color]=\"KbqComponentColors.ContrastFade\"></i>\n </button>\n <ng-container [ngTemplateOutlet]=\"separatorTemplate\" />\n\n <kbq-dropdown #hiddenBreadcrumbsDropdown=\"kbqDropdown\">\n @for (item of allItems; track item) {\n @if (hiddenItemIDs().has($index)) {\n <a\n kbq-dropdown-item\n [routerLink]=\"item.routerLink?.urlTree\"\n [attr.aria-current]=\"item.current() ? 'page' : null\"\n [disabled]=\"disabled() || item.disabled()\"\n >\n @if (item.customTemplateRef(); as customTemplateRef) {\n <ng-container [ngTemplateOutlet]=\"customTemplateRef\" />\n } @else {\n {{ item.text() }}\n }\n </a>\n }\n }\n </kbq-dropdown>\n </div>\n @for (item of itemsExcludingEdges(); track item) {\n <div class=\"kbq-breadcrumb-item__container\" role=\"listitem\" [kbqOverflowItem]=\"$index + 1\">\n <ng-container\n [ngTemplateOutlet]=\"breadcrumbTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: item, last: false }\"\n />\n <ng-container [ngTemplateOutlet]=\"separatorTemplate\" />\n </div>\n }\n <div\n alwaysVisible\n class=\"kbq-breadcrumb-item__container\"\n role=\"listitem\"\n [kbqOverflowItem]=\"allItems.length - 1\"\n >\n <ng-container\n [ngTemplateOutlet]=\"breadcrumbTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: allItems[allItems.length - 1], last: true }\"\n />\n </div>\n </div>\n}\n\n<ng-template #breadcrumbTemplate let-item let-last=\"last\">\n @if (item.customTemplateRef()) {\n <ng-container [ngTemplateOutlet]=\"item.customTemplateRef()!\" />\n } @else {\n <a\n kbq-button\n kbq-title\n kbqBreadcrumb\n [focusable]=\"!disabled() && !item.disabled() && !last\"\n [routerLink]=\"item.routerLink?.urlTree\"\n [attr.aria-current]=\"item.current() || last ? 'page' : null\"\n [disabled]=\"disabled() || item.disabled() || last\"\n [kbqPlacementPriority]=\"PopUpPlacements.Bottom\"\n [kbqTooltipArrow]=\"false\"\n >\n {{ item.text() }}\n </a>\n }\n</ng-template>\n\n<ng-template #separatorTemplate>\n @if (separator(); as separatorTemplateRef) {\n <ng-container [ngTemplateOutlet]=\"separatorTemplateRef\" />\n } @else {\n <i aria-hidden=\"true\" class=\"kbq-breadcrumb__separator\"> / </i>\n }\n</ng-template>\n","import { NgModule } from '@angular/core';\nimport {\n KbqBreadcrumbButton,\n KbqBreadcrumbItem,\n KbqBreadcrumbs,\n KbqBreadcrumbsSeparator,\n KbqBreadcrumbView\n} from './breadcrumbs';\n\nconst COMPONENTS = [\n KbqBreadcrumbs,\n KbqBreadcrumbItem,\n KbqBreadcrumbView,\n KbqBreadcrumbsSeparator,\n KbqBreadcrumbButton\n];\n\n@NgModule({\n imports: COMPONENTS,\n exports: COMPONENTS\n})\nexport class KbqBreadcrumbsModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.RdxRovingFocusItemDirective","i2.RdxRovingFocusGroupDirective"],"mappings":"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"}
|
|
@@ -311,7 +311,7 @@ class KbqButtonToggleGroup {
|
|
|
311
311
|
/**
|
|
312
312
|
* Reports the new value of a selected toggle, which changes the value of the group, as an interaction would.
|
|
313
313
|
*
|
|
314
|
-
* @
|
|
314
|
+
* @docs-private
|
|
315
315
|
*/
|
|
316
316
|
followToggleValue(toggle, previous) {
|
|
317
317
|
if (this.destroyed || !this.selectionModel?.isSelected(toggle))
|