From 6a2ade9696e7f42de9bb1777c46def8e55e70b10 Mon Sep 17 00:00:00 2001 From: m2rt Date: Fri, 19 Jun 2026 11:55:53 +0300 Subject: [PATCH 1/3] chore: moved tedi and community to src dir #166 --- .../contributing/references/best-practices.md | 30 +- .../contributing/references/new-component.md | 8 +- .../skills/contributing/references/stories.md | 76 +++- .storybook/main.ts | 6 +- .storybook/preview.tsx | 4 +- CLAUDE.md | 26 +- angular.json | 10 +- community/ng-package.json | 6 - jest.config.ts | 2 +- package.json | 4 +- .../floating-button.component.scss | 0 .../floating-button.component.ts | 0 .../floating-button.stories.ts | 2 +- .../buttons/floating-button/index.ts | 0 .../community}/components/buttons/index.ts | 0 .../accordion-icon.component.html | 0 .../accordion-icon.component.scss | 0 .../accordion-icon.component.ts | 0 .../accordion-item-content.component.html | 0 .../accordion-item-content.component.scss | 0 .../accordion-item-content.component.ts | 0 .../accordion-item-header.component.html | 0 .../accordion-item-header.component.scss | 0 .../accordion-item-header.component.ts | 0 .../accordion-item.component.html | 0 .../accordion-item.component.scss | 0 .../accordion-item.component.ts | 0 .../cards/accordion/accordion.stories.ts | 0 .../accordion/accordion.component.html | 0 .../accordion/accordion.component.scss | 0 .../accordion/accordion.component.ts | 0 .../components/cards/accordion/index.ts | 0 .../components/cards/card/_card-mixins.scss | 0 .../cards/card/card-colors.directive.ts | 0 .../card-content/card-content.component.html | 0 .../card-content/card-content.component.scss | 0 .../card-content/card-content.component.ts | 0 .../card-header/card-header.component.html | 0 .../card-header/card-header.component.scss | 0 .../card/card-header/card-header.component.ts | 0 .../cards/card/card-padding.directive.ts | 0 .../card/card-row/card-row.component.html | 0 .../card/card-row/card-row.component.scss | 0 .../cards/card/card-row/card-row.component.ts | 0 .../components/cards/card/card.component.html | 0 .../components/cards/card/card.component.scss | 0 .../components/cards/card/card.component.ts | 0 .../community}/components/cards/card/index.ts | 0 .../card/stories/card-story-templates.ts | 0 .../cards/card/stories/card.stories.ts | 0 .../community}/components/cards/index.ts | 0 .../checkbox-card-group.component.ts | 0 .../checkbox-group.component.html | 0 .../checkbox-group.component.scss | 0 .../checkbox-group.component.ts | 0 .../form/checkbox/checkbox.stories.ts | 0 .../checkbox/checkbox/checkbox.component.html | 0 .../checkbox/checkbox/checkbox.component.scss | 0 .../checkbox/checkbox/checkbox.component.ts | 0 .../components/form/checkbox/index.ts | 0 .../choicegroup/_choicegroup-card-mixins.scss | 0 .../form/choicegroup/choicegroup.directive.ts | 0 .../form/choicegroup/choicegroup.styles.scss | 0 .../form/file-dropzone/constants.ts | 0 .../file-dropzone.component.html | 0 .../file-dropzone.component.scss | 0 .../file-dropzone/file-dropzone.component.ts | 0 .../file-dropzone/file-dropzone.react.scss | 0 .../file-dropzone/file-dropzone.stories.ts | 4 +- .../form/file-dropzone/file.service.ts | 0 .../components/form/file-dropzone/index.ts | 0 .../components/form/file-dropzone/types.ts | 0 .../components/form/file-dropzone/utils.ts | 0 .../form/form-field/form-field.component.scss | 0 .../form/form-field/form-field.component.ts | 0 .../form/form-field/form-field.stories.ts | 0 .../community}/components/form/index.ts | 0 .../input-group/input-group.component.html | 0 .../input-group/input-group.component.scss | 0 .../form/input-group/input-group.component.ts | 0 .../form/input-group/input-group.stories.ts | 2 +- .../form/input/input.component.scss | 0 .../components/form/input/input.component.ts | 0 .../form/input/textfield.stories.ts | 0 .../community}/components/form/radio/index.ts | 0 .../radio-card-group.component.ts | 0 .../radio-group/radio-group.component.html | 0 .../radio-group/radio-group.component.scss | 0 .../radio-group/radio-group.component.ts | 0 .../components/form/radio/radio.stories.ts | 0 .../form/radio/radio/radio.component.html | 0 .../form/radio/radio/radio.component.scss | 0 .../form/radio/radio/radio.component.ts | 0 .../form/search/search.component.html | 0 .../form/search/search.component.scss | 0 .../form/search/search.component.ts | 0 .../components/form/search/search.stories.ts | 0 .../components/form/select/index.ts | 0 .../form/select/multiselect.component.html | 0 .../form/select/multiselect.component.ts | 0 .../form/select/multiselect.stories.ts | 0 .../form/select/select-option.component.ts | 0 .../form/select/select.component.html | 0 .../form/select/select.component.scss | 0 .../form/select/select.component.ts | 0 .../components/form/select/select.stories.ts | 0 .../form/textarea/textarea.component.scss | 0 .../form/textarea/textarea.component.ts | 0 .../form/textarea/textarea.stories.ts | 0 .../community}/components/helpers/index.ts | 0 .../components/helpers/progress-bar/index.ts | 0 .../progress-bar/progress-bar.component.html | 0 .../progress-bar/progress-bar.component.scss | 0 .../progress-bar/progress-bar.component.ts | 0 .../progress-bar/progress-bar.stories.ts | 0 .../breadcrumbs/breadcrumbs.component.html | 0 .../breadcrumbs/breadcrumbs.component.scss | 0 .../breadcrumbs/breadcrumbs.component.spec.ts | 0 .../breadcrumbs/breadcrumbs.component.ts | 0 .../breadcrumbs/breadcrumbs.stories.ts | 2 +- .../community}/components/navigation/index.ts | 0 .../pagination-page.component.html | 0 .../pagination-page.component.scss | 0 .../pagination-page.component.ts | 0 .../pagination/pagination.component.html | 0 .../pagination/pagination.component.scss | 0 .../pagination/pagination.component.ts | 0 .../pagination/pagination.stories.ts | 0 .../navigation/pagination/pagination.utils.ts | 0 .../navigation/table-of-contents/index.ts | 0 .../table-of-contents-item.component.html | 0 .../table-of-contents-item.component.scss | 0 .../table-of-contents-item.component.ts | 0 ...le-of-contents-nested-wrapper.component.ts | 0 .../table-of-contents.component.html | 0 .../table-of-contents.component.scss | 0 .../table-of-contents.component.ts | 0 .../table-of-contents.stories.ts | 0 .../components/navigation/tabs/index.ts | 0 .../tab-content/tab-content.component.html | 0 .../tabs/tab-content/tab-content.component.ts | 0 .../navigation/tabs/tab/tab.component.html | 0 .../navigation/tabs/tab/tab.component.scss | 0 .../navigation/tabs/tab/tab.component.ts | 0 .../navigation/tabs/tabs.component.html | 0 .../navigation/tabs/tabs.component.scss | 0 .../navigation/tabs/tabs.component.ts | 0 .../navigation/tabs/tabs.stories.ts | 0 .../navigation/vertical-stepper/index.ts | 0 .../vertical-stepper-item.component.html | 0 .../vertical-stepper-item.component.scss | 0 .../vertical-stepper-item.component.ts | 0 .../vertical-stepper.component.html | 0 .../vertical-stepper.component.scss | 0 .../vertical-stepper.component.ts | 0 .../vertical-stepper.stories.ts | 0 .../dropdown-item.component.scss | 0 .../dropdown-item/dropdown-item.component.ts | 0 .../dropdown-item/dropdown-item.stories.ts | 0 .../dropdown-trigger.directive.ts | 0 .../overlay/dropdown/dropdown.component.html | 0 .../overlay/dropdown/dropdown.component.scss | 0 .../overlay/dropdown/dropdown.component.ts | 0 .../overlay/dropdown/dropdown.stories.ts | 0 .../community}/components/overlay/index.ts | 0 .../modal/footer/modal-footer.component.html | 0 .../modal/footer/modal-footer.component.scss | 0 .../modal/footer/modal-footer.component.ts | 0 .../modal/header/modal-header.component.html | 0 .../modal/header/modal-header.component.scss | 0 .../modal/header/modal-header.component.ts | 0 .../components/overlay/modal/index.ts | 0 .../overlay/modal/modal.component.html | 0 .../overlay/modal/modal.component.scss | 0 .../overlay/modal/modal.component.ts | 0 .../components/overlay/modal/modal.stories.ts | 2 +- .../community}/components/table/index.ts | 0 .../components/table/table-styles.stories.ts | 0 .../table-styles/table-styles.component.html | 0 .../table-styles/table-styles.component.scss | 0 .../table-styles/table-styles.component.ts | 0 .../community}/components/tags/index.ts | 0 .../status-badge/status-badge.component.html | 0 .../status-badge/status-badge.component.scss | 0 .../status-badge/status-badge.component.ts | 0 .../tags/status-badge/status-badge.stories.ts | 0 .../components/tags/tag/tag.component.html | 0 .../components/tags/tag/tag.component.scss | 0 .../components/tags/tag/tag.component.ts | 0 .../components/tags/tag/tag.stories.ts | 0 .../community}/helpers/unique-id.ts | 0 {community => src/community}/index.ts | 0 src/community/ng-package.json | 6 + ng-package.json => src/ng-package.json | 4 +- src/package.json | 30 ++ public-api.ts => src/public-api.ts | 0 .../components/base/icon/icon.component.html | 1 + .../components/base/icon/icon.component.scss | 0 .../base/icon/icon.component.spec.ts | 2 +- .../components/base/icon/icon.component.ts | 6 +- .../components/base/icon/icon.stories.ts | 2 +- {tedi => src/tedi}/components/base/index.ts | 2 +- .../components/base/text/text.component.html | 0 .../base/text/text.component.spec.ts | 13 +- .../components/base/text/text.component.ts | 3 +- .../components/base/text/text.stories.ts | 0 .../buttons/button/base-button.directive.ts | 4 +- .../buttons/button/button.component.scss | 0 .../buttons/button/button.component.spec.ts | 0 .../buttons/button/button.component.ts | 0 .../buttons/button/button.stories.ts | 24 +- .../card-button/card-button.component.html | 0 .../card-button/card-button.component.scss | 0 .../card-button/card-button.component.spec.ts | 0 .../card-button/card-button.component.ts | 0 .../card-button/card-button.stories.ts | 0 .../components/buttons/card-button/index.ts | 0 .../closing-button.component.html | 0 .../closing-button.component.scss | 0 .../closing-button.component.ts | 0 .../closing-button/closing-button.spec.ts | 0 .../closing-button/closing-button.stories.ts | 0 .../collapse-button.component.html | 0 .../collapse-button.component.scss | 0 .../collapse-button.component.spec.ts | 4 +- .../collapse-button.component.ts | 0 .../collapse-button.stories.ts | 0 .../buttons/collapse/collapse.component.html | 0 .../buttons/collapse/collapse.component.scss | 0 .../collapse/collapse.component.spec.ts | 0 .../buttons/collapse/collapse.component.ts | 0 .../buttons/collapse/collapse.stories.ts | 8 +- .../tedi}/components/buttons/index.ts | 0 .../info-button/info-button.component.scss | 0 .../info-button/info-button.component.spec.ts | 11 +- .../info-button/info-button.component.ts | 19 +- .../info-button/info-button.stories.ts | 2 +- .../accordion-item-content.component.html | 0 .../accordion-item-content.component.scss | 0 .../accordion-item-content.component.spec.ts | 0 .../accordion-item-content.component.ts | 3 +- .../accordion/accordion-item-content/index.ts | 0 .../accordion-item-header.component.html | 0 .../accordion-item-header.component.scss | 0 .../accordion-item-header.component.spec.ts | 0 .../accordion-item-header.component.ts | 3 +- .../accordion/accordion-item-header/index.ts | 0 .../accordion-item.component.html | 0 .../accordion-item.component.scss | 0 .../accordion-item.component.spec.ts | 0 .../accordion-item.component.ts | 0 .../cards/accordion/accordion-item/index.ts | 0 .../cards/accordion/accordion.stories.ts | 0 .../accordion/accordion.component.scss | 0 .../accordion/accordion.component.spec.ts | 0 .../accordion/accordion.component.ts | 0 .../cards/accordion/accordion/index.ts | 0 .../tedi}/components/cards/accordion/index.ts | 0 {tedi => src/tedi}/components/cards/index.ts | 0 .../components/content/card/_card-mixins.scss | 0 .../card-content/card-content.component.html | 0 .../card-content/card-content.component.scss | 0 .../card-content.component.spec.ts | 24 +- .../card-content/card-content.component.ts | 16 +- .../content/card/card-content/index.ts | 0 .../card-header/card-header.component.html | 0 .../card-header/card-header.component.scss | 0 .../card-header/card-header.component.spec.ts | 0 .../card/card-header/card-header.component.ts | 0 .../content/card/card-header/index.ts | 0 .../card/card-icon/card-icon.component.html | 0 .../card/card-icon/card-icon.component.scss | 0 .../card-icon/card-icon.component.spec.ts | 7 +- .../card/card-icon/card-icon.component.ts | 0 .../content/card/card-icon/index.ts | 0 .../card/card-row/card-row.component.html | 0 .../card/card-row/card-row.component.scss | 0 .../card/card-row/card-row.component.spec.ts | 0 .../card/card-row/card-row.component.ts | 0 .../components/content/card/card-row/index.ts | 0 .../content/card/card.component.html | 1 + .../content/card/card.component.scss | 0 .../content/card/card.component.spec.ts | 8 +- .../components/content/card/card.component.ts | 0 .../components/content/card/card.stories.ts | 50 ++- .../components/content/card/card.utils.ts | 12 +- .../tedi}/components/content/card/index.ts | 0 .../carousel-content.component.html | 0 .../carousel-content.component.scss | 0 .../carousel-content.component.ts | 12 +- .../carousel-footer.component.scss | 0 .../carousel-footer.component.ts | 0 .../carousel-header.component.scss | 0 .../carousel-header.component.ts | 0 .../carousel-indicators.component.html | 0 .../carousel-indicators.component.scss | 0 .../carousel-indicators.component.ts | 0 .../carousel-navigation.component.html | 0 .../carousel-navigation.component.scss | 0 .../carousel-navigation.component.ts | 0 .../carousel/carousel-slide.directive.ts | 0 .../carousel-slide.component.scss | 0 .../content/carousel/carousel.component.html | 0 .../content/carousel/carousel.component.scss | 0 .../carousel/carousel.component.spec.ts | 25 +- .../content/carousel/carousel.component.ts | 0 .../content/carousel/carousel.stories.ts | 0 .../components/content/carousel/index.ts | 0 .../tedi}/components/content/index.ts | 0 .../content/list/list.component.html | 1 + .../content/list/list.component.scss | 0 .../content/list/list.component.spec.ts | 0 .../components/content/list/list.component.ts | 0 .../components/content/list/list.stories.ts | 0 .../content/table/cells-and-templates.mdx | 0 .../tedi}/components/content/table/index.ts | 0 .../content/table/row-span.utils.ts | 0 .../table/state-management-validation.spec.ts | 8 +- .../content/table/state-management.mdx | 0 .../content/table/table-columns-menu/index.ts | 0 .../table-columns-menu.component.html | 0 .../table-columns-menu.component.scss | 0 .../table-columns-menu.component.ts | 0 .../table/table-header-button/index.ts | 0 .../table-header-button.component.scss | 0 .../table-header-button.component.spec.ts | 0 .../table-header-button.component.ts | 0 .../content/table/table-toolbar/index.ts | 0 .../table-toolbar.component.scss | 0 .../table-toolbar.component.spec.ts | 4 +- .../table-toolbar/table-toolbar.component.ts | 0 .../content/table/table.component.html | 5 +- .../content/table/table.component.scss | 0 .../content/table/table.component.spec.ts | 351 ++++++++++------ .../content/table/table.component.ts | 77 ++-- .../components/content/table/table.context.ts | 0 .../content/table/table.persistence.ts | 0 .../components/content/table/table.stories.ts | 390 +++++++++++++----- .../components/content/table/table.types.ts | 10 +- .../components/content/text-group/index.ts | 0 .../text-group/text-group-label.component.ts | 0 .../text-group/text-group-value.component.ts | 0 .../text-group/text-group.component.html | 0 .../text-group/text-group.component.scss | 0 .../text-group/text-group.component.spec.ts | 0 .../text-group/text-group.component.ts | 17 +- .../content/text-group/text-group.stories.ts | 6 +- .../filter/filter-content.directive.ts | 0 .../filter/filter-group.component.scss | 0 .../filter/filter-group.component.spec.ts | 12 +- .../filter/filter-group.component.ts | 0 .../filter/filter-prepend.directive.ts | 0 .../components/filter/filter.component.html | 70 +++- .../components/filter/filter.component.scss | 0 .../filter/filter.component.spec.ts | 161 +++----- .../components/filter/filter.component.ts | 34 +- .../tedi}/components/filter/filter.stories.ts | 93 +++-- {tedi => src/tedi}/components/filter/index.ts | 0 .../checkbox-card-group.component.scss | 0 .../checkbox-card-group.component.spec.ts | 8 +- .../checkbox-card-group.component.ts | 0 .../checkbox-card.component.html | 0 .../checkbox-card.component.scss | 0 .../checkbox-card.component.spec.ts | 16 +- .../checkbox-card/checkbox-card.component.ts | 0 .../checkbox-group.component.html | 19 + .../checkbox-group.component.scss | 0 .../checkbox-group.component.spec.ts | 36 +- .../checkbox-group.component.ts | 4 +- .../form/checkbox/checkbox.component.scss | 0 .../form/checkbox/checkbox.component.spec.ts | 0 .../form/checkbox/checkbox.component.ts | 0 .../form/checkbox/checkbox.stories.ts | 33 +- .../date-picker-calendar-grid.component.html | 0 ...ate-picker-calendar-grid.component.spec.ts | 0 .../date-picker-calendar-grid.component.ts | 0 .../date-picker-header.component.html | 28 +- .../date-picker-header.component.spec.ts | 10 +- .../date-picker-header.component.ts | 5 +- .../date-picker-month-grid.component.html | 0 .../date-picker-month-grid.component.spec.ts | 0 .../date-picker-month-grid.component.ts | 0 .../date-picker-year-grid.component.html | 4 +- .../date-picker-year-grid.component.spec.ts | 5 +- .../date-picker-year-grid.component.ts | 0 .../date-picker/date-picker.component.html | 0 .../date-picker/date-picker.component.scss | 0 .../date-picker/date-picker.component.spec.ts | 25 +- .../form/date-picker/date-picker.component.ts | 41 +- .../form/date-picker/date-picker.stories.ts | 7 +- .../feedback-text.component.html | 0 .../feedback-text.component.scss | 0 .../feedback-text.component.spec.ts | 6 +- .../feedback-text/feedback-text.component.ts | 0 .../feedback-text/feedback-text.stories.ts | 0 .../form/form-field/form-field-control.ts | 0 .../form/form-field/form-field.component.html | 0 .../form/form-field/form-field.component.scss | 0 .../form-field/form-field.component.spec.ts | 0 .../form/form-field/form-field.component.ts | 0 {tedi => src/tedi}/components/form/index.ts | 0 .../form/label/label.component.html | 2 +- .../form/label/label.component.scss | 0 .../form/label/label.component.spec.ts | 0 .../components/form/label/label.component.ts | 4 +- .../components/form/label/label.stories.ts | 0 .../number-field/number-field.component.html | 0 .../number-field/number-field.component.scss | 0 .../number-field.component.spec.ts | 4 +- .../number-field/number-field.component.ts | 8 +- .../form/number-field/number-field.stories.ts | 0 .../radio-card-group.component.scss | 0 .../radio-card-group.component.spec.ts | 14 +- .../radio-card-group.component.ts | 0 .../form/radio-card/radio-card.component.html | 0 .../form/radio-card/radio-card.component.scss | 0 .../radio-card/radio-card.component.spec.ts | 30 +- .../form/radio-card/radio-card.component.ts | 0 .../radio-group/radio-group.component.html | 9 +- .../radio-group/radio-group.component.scss | 0 .../radio-group/radio-group.component.spec.ts | 28 +- .../form/radio-group/radio-group.component.ts | 4 +- .../form/radio/radio.component.scss | 0 .../form/radio/radio.component.spec.ts | 0 .../components/form/radio/radio.component.ts | 0 .../components/form/radio/radio.stories.ts | 3 +- .../tedi}/components/form/select/index.ts | 0 .../form/select/select-templates.directive.ts | 0 .../form/select/select.component.html | 28 +- .../form/select/select.component.scss | 0 .../form/select/select.component.spec.ts | 246 +++++++---- .../form/select/select.component.ts | 100 +++-- .../components/form/select/select.stories.ts | 154 +++++-- .../form/text-field/text-field.component.scss | 0 .../text-field/text-field.component.spec.ts | 0 .../form/text-field/text-field.component.ts | 0 .../form/text-field/text-field.stories.ts | 0 .../tedi}/components/form/time-field/index.ts | 0 .../form/time-field/time-field.component.html | 10 +- .../form/time-field/time-field.component.scss | 0 .../time-field/time-field.component.spec.ts | 95 +++-- .../form/time-field/time-field.component.ts | 11 +- .../form/time-field/time-field.stories.ts | 30 +- .../time-picker-modal.component.html | 0 .../time-picker-modal.component.scss | 0 .../time-picker-modal.component.spec.ts | 0 .../time-field/time-picker-modal.component.ts | 15 +- .../components/form/time-picker/index.ts | 0 .../time-picker/time-picker.component.html | 26 +- .../time-picker/time-picker.component.scss | 0 .../time-picker/time-picker.component.spec.ts | 76 +++- .../form/time-picker/time-picker.component.ts | 88 +++- .../form/time-picker/time-picker.stories.ts | 30 +- .../form/toggle/toggle.component.html | 2 +- .../form/toggle/toggle.component.scss | 0 .../form/toggle/toggle.component.spec.ts | 11 +- .../form/toggle/toggle.component.ts | 18 +- .../components/form/toggle/toggle.stories.ts | 0 .../attachment-actions.component.scss | 0 .../attachment-actions.component.ts | 0 .../attachment/attachment.component.html | 6 +- .../attachment/attachment.component.scss | 0 .../attachment/attachment.component.spec.ts | 21 +- .../attachment/attachment.component.ts | 4 +- .../helpers/attachment/attachment.stories.ts | 2 +- .../components/helpers/attachment/index.ts | 0 .../helpers/ellipsis/ellipsis.component.html | 0 .../helpers/ellipsis/ellipsis.component.scss | 0 .../ellipsis/ellipsis.component.spec.ts | 36 +- .../helpers/ellipsis/ellipsis.component.ts | 13 +- .../helpers/ellipsis/ellipsis.stories.ts | 5 +- .../components/helpers/ellipsis/index.ts | 0 .../empty-state/empty-state.component.html | 13 +- .../empty-state/empty-state.component.scss | 0 .../empty-state/empty-state.component.spec.ts | 30 +- .../empty-state/empty-state.component.ts | 6 +- .../empty-state/empty-state.stories.ts | 14 +- .../components/helpers/empty-state/index.ts | 0 .../helpers/grid/col/col.component.html | 1 + .../helpers/grid/col/col.component.scss | 0 .../helpers/grid/col/col.component.spec.ts | 10 +- .../helpers/grid/col/col.component.ts | 13 +- .../helpers/grid/col/col.stories.ts | 2 +- .../tedi}/components/helpers/grid/index.ts | 2 +- .../helpers/grid/row/row.component.html | 1 + .../helpers/grid/row/row.component.scss | 0 .../helpers/grid/row/row.component.spec.ts | 17 +- .../helpers/grid/row/row.component.ts | 19 +- .../helpers/grid/row/row.stories.ts | 2 +- .../tedi}/components/helpers/index.ts | 0 .../components/helpers/scroll-fade/index.ts | 6 + .../scroll-fade/scroll-fade.component.html | 0 .../scroll-fade/scroll-fade.component.scss | 0 .../scroll-fade/scroll-fade.component.spec.ts | 131 ++++-- .../scroll-fade/scroll-fade.component.ts | 9 +- .../scroll-fade/scroll-fade.stories.ts | 0 .../separator/separator.component.scss | 0 .../separator/separator.component.spec.ts | 0 .../helpers/separator/separator.component.ts | 0 .../helpers/separator/separator.stories.ts | 0 .../components/helpers/timeline/index.ts | 0 .../timeline-description.component.scss | 0 .../timeline-description.component.ts | 0 .../timeline-item.component.html | 0 .../timeline-item.component.scss | 0 .../timeline-item/timeline-item.component.ts | 3 +- .../timeline-timings-bottom.directive.ts | 0 .../timeline-title.component.scss | 0 .../timeline-title.component.ts | 0 .../helpers/timeline/timeline.component.scss | 0 .../timeline/timeline.component.spec.ts | 0 .../helpers/timeline/timeline.component.ts | 0 .../helpers/timeline/timeline.stories.ts | 0 {tedi => src/tedi}/components/index.ts | 0 .../footer-body/footer-body.component.scss | 0 .../footer-body/footer-body.component.spec.ts | 0 .../footer-body/footer-body.component.ts | 0 .../footer-bottom.component.html | 0 .../footer-bottom.component.scss | 0 .../footer-bottom.component.spec.ts | 0 .../footer-bottom/footer-bottom.component.ts | 0 .../footer-section.component.html | 0 .../footer-section.component.scss | 0 .../footer-section.component.spec.ts | 0 .../footer-section.component.ts | 0 .../footer-side/footer-side.component.scss | 0 .../footer-side/footer-side.component.spec.ts | 0 .../footer-side/footer-side.component.ts | 0 .../layout/footer/footer.component.html | 0 .../layout/footer/footer.component.scss | 0 .../layout/footer/footer.component.spec.ts | 0 .../layout/footer/footer.component.ts | 0 .../layout/footer/footer.stories.ts | 0 .../tedi}/components/layout/footer/index.ts | 0 .../header-actions.component.scss | 0 .../header-actions.component.ts | 6 +- .../header-content.component.scss | 0 .../header-content.component.ts | 15 + .../header-language.component.html | 0 .../header-language.component.scss | 0 .../header-language.component.spec.ts | 35 +- .../header-language.component.ts | 0 .../header-login/header-login.component.html | 13 + .../header-login/header-login.component.scss | 0 .../header-login.component.spec.ts | 58 +++ .../header-login/header-login.component.ts | 24 +- .../header-logout.component.html | 4 + .../header-logout.component.scss | 0 .../header-logout.component.spec.ts | 49 +++ .../header-logout/header-logout.component.ts | 22 +- .../header-profile.component.html | 6 +- .../header-profile.component.scss | 0 .../header-profile.component.spec.ts | 0 .../header-profile.component.ts | 0 .../header-role/header-role.component.html | 6 +- .../header-role/header-role.component.scss | 0 .../header-role/header-role.component.spec.ts | 58 +-- .../header-role/header-role.component.ts | 0 .../layout/header/header.component.html | 4 +- .../layout/header/header.component.scss | 0 .../layout/header/header.component.ts | 6 +- .../layout/header/header.stories.ts | 0 .../tedi}/components/layout/header/index.ts | 2 +- {tedi => src/tedi}/components/layout/index.ts | 0 .../tedi}/components/layout/sidenav/index.ts | 2 +- .../sidenav-dropdown-group.component.html | 15 +- .../sidenav-dropdown-group.component.scss | 0 .../sidenav-dropdown-group.component.spec.ts | 15 +- .../sidenav-dropdown-group.component.ts | 6 +- .../sidenav-dropdown-item.component.html | 0 .../sidenav-dropdown-item.component.scss | 0 .../sidenav-dropdown-item.component.spec.ts | 9 +- .../sidenav-dropdown-item.component.ts | 4 +- .../sidenav-dropdown.component.html | 0 .../sidenav-dropdown.component.scss | 0 .../sidenav-dropdown.component.spec.ts | 58 +-- .../sidenav-dropdown.component.ts | 2 +- .../sidenav-group-title.component.html | 0 .../sidenav-group-title.component.scss | 0 .../sidenav-group-title.component.spec.ts | 4 +- .../sidenav-group-title.component.ts | 2 +- .../sidenav-item/sidenav-item.component.html | 17 +- .../sidenav-item/sidenav-item.component.scss | 0 .../sidenav-item.component.spec.ts | 66 +-- .../sidenav-item/sidenav-item.component.ts | 59 ++- .../sidenav-overlay.component.scss | 0 .../sidenav-overlay.component.spec.ts | 68 +-- .../sidenav-overlay.component.ts | 0 .../sidenav-toggle.component.html | 0 .../sidenav-toggle.component.scss | 0 .../sidenav-toggle.component.spec.ts | 46 ++- .../sidenav-toggle.component.ts | 2 +- .../layout/sidenav/sidenav.component.html | 5 +- .../layout/sidenav/sidenav.component.scss | 0 .../layout/sidenav/sidenav.component.spec.ts | 4 +- .../layout/sidenav/sidenav.component.ts | 0 .../layout/sidenav/sidenav.stories.ts | 0 src/tedi/components/loader/index.ts | 2 + .../components/loader/progress-bar/index.ts | 0 .../progress-bar/progress-bar.component.html | 9 +- .../progress-bar/progress-bar.component.scss | 0 .../progress-bar.component.spec.ts | 0 .../progress-bar/progress-bar.component.ts | 0 .../progress-bar/progress-bar.stories.ts | 41 +- .../loader/spinner/spinner.component.html | 2 +- .../loader/spinner/spinner.component.scss | 0 .../loader/spinner/spinner.component.spec.ts | 6 +- .../loader/spinner/spinner.component.ts | 11 +- .../loader/spinner/spinner.stories.ts | 0 .../horizontal-stepper-item.component.html | 8 +- .../horizontal-stepper-item.component.scss | 0 .../horizontal-stepper-item.component.spec.ts | 0 .../horizontal-stepper-item.component.ts | 0 .../horizontal-stepper-item/index.ts | 0 .../horizontal-stepper.component.html | 0 .../horizontal-stepper.component.scss | 0 .../horizontal-stepper.component.spec.ts | 4 +- .../horizontal-stepper.component.ts | 0 .../horizontal-stepper.stories.ts | 21 +- .../navigation/horizontal-stepper/index.ts | 0 .../tedi}/components/navigation/index.ts | 0 .../navigation/link/link.component.html | 0 .../navigation/link/link.component.scss | 0 .../navigation/link/link.component.spec.ts | 6 +- .../navigation/link/link.component.ts | 0 .../navigation/link/link.stories.ts | 18 +- .../components/navigation/pagination/index.ts | 0 ...ination-option-picker-modal.component.html | 22 +- ...ination-option-picker-modal.component.scss | 0 ...tion-option-picker-modal.component.spec.ts | 27 +- ...agination-option-picker-modal.component.ts | 10 +- .../pagination-results.directive.ts | 0 .../pagination/pagination.component.html | 15 +- .../pagination/pagination.component.scss | 0 .../pagination/pagination.component.spec.ts | 76 +++- .../pagination/pagination.component.ts | 50 ++- .../pagination/pagination.stories.ts | 27 +- .../navigation/pagination/pagination.types.ts | 0 .../pagination/pagination.utils.spec.ts | 29 +- .../navigation/pagination/pagination.utils.ts | 0 .../notifications/alert/alert.component.html | 6 +- .../notifications/alert/alert.component.scss | 0 .../alert/alert.component.spec.ts | 37 +- .../notifications/alert/alert.component.ts | 0 .../notifications/alert/alert.stories.ts | 0 .../tedi}/components/notifications/index.ts | 0 .../toast/toast-container.component.spec.ts | 28 +- .../toast/toast-container.component.ts | 6 +- .../notifications/toast/toast.component.html | 0 .../notifications/toast/toast.component.scss | 0 .../toast/toast.component.spec.ts | 45 +- .../notifications/toast/toast.component.ts | 0 .../notifications/toast/toast.stories.ts | 101 +++-- .../dropdown-content.component.html | 0 .../dropdown-content.component.scss | 0 .../dropdown-content.component.ts | 0 .../dropdown-item-value-label.component.ts | 0 .../dropdown-item-value-meta.component.ts | 0 .../dropdown-item-value.component.html | 4 +- .../dropdown-item-value.component.scss | 0 .../dropdown-item-value.component.ts | 0 .../dropdown-item-value.stories.ts | 3 +- .../dropdown/dropdown-item-value/index.ts | 0 .../dropdown-item.component.html | 0 .../dropdown-item.component.scss | 0 .../dropdown-item/dropdown-item.component.ts | 0 .../dropdown-trigger.component.scss | 0 .../dropdown-trigger.directive.ts | 12 +- .../overlay/dropdown/dropdown.component.html | 0 .../overlay/dropdown/dropdown.component.scss | 0 .../dropdown/dropdown.component.spec.ts | 0 .../overlay/dropdown/dropdown.component.ts | 0 .../overlay/dropdown/dropdown.stories.ts | 0 .../overlay/dropdown/dropdown.tokens.ts | 0 .../components/overlay/dropdown/index.ts | 0 .../tedi}/components/overlay/index.ts | 0 .../tedi}/components/overlay/modal/index.ts | 0 .../modal-content.component.html | 0 .../modal-content/modal-content.component.ts | 0 .../modal-footer/modal-footer.component.ts | 0 .../modal-header/modal-header.component.html | 0 .../modal-header.component.spec.ts | 0 .../modal-header/modal-header.component.ts | 12 +- .../components/overlay/modal/modal-ref.ts | 0 .../overlay/modal/modal.component.html | 0 .../overlay/modal/modal.component.scss | 0 .../overlay/modal/modal.component.spec.ts | 0 .../overlay/modal/modal.component.ts | 11 +- .../overlay/modal/modal.service.spec.ts | 89 ++-- .../components/overlay/modal/modal.service.ts | 30 +- .../components/overlay/modal/modal.stories.ts | 300 ++++++++++---- .../components/overlay/modal/modal.types.ts | 4 +- .../overlay/overlay-position.util.ts | 0 .../tedi}/components/overlay/popover/index.ts | 0 .../popover-content.component.html | 0 .../popover-content.component.spec.ts | 0 .../popover-content.component.ts | 0 .../popover-trigger.directive.ts | 0 .../overlay/popover/popover.component.html | 0 .../overlay/popover/popover.component.scss | 0 .../overlay/popover/popover.component.spec.ts | 0 .../overlay/popover/popover.component.ts | 10 +- .../overlay/popover/popover.stories.ts | 0 .../tedi}/components/overlay/tooltip/index.ts | 0 .../tooltip-content.component.spec.ts | 0 .../tooltip-content.component.ts | 2 +- .../tooltip-trigger.component.spec.ts | 0 .../tooltip-trigger.component.ts | 0 .../overlay/tooltip/tooltip.component.html | 6 +- .../overlay/tooltip/tooltip.component.scss | 0 .../overlay/tooltip/tooltip.component.spec.ts | 0 .../overlay/tooltip/tooltip.component.ts | 4 +- .../overlay/tooltip/tooltip.stories.ts | 0 {tedi => src/tedi}/components/tags/index.ts | 0 .../status-badge/status-badge.component.html | 0 .../status-badge/status-badge.component.scss | 0 .../status-badge.component.spec.ts | 6 +- .../status-badge/status-badge.component.ts | 0 .../tags/status-badge/status-badge.stories.ts | 0 .../components/tags/status-indicator/index.ts | 0 .../status-indicator.component.scss | 0 .../status-indicator.component.spec.ts | 0 .../status-indicator.component.ts | 0 .../status-indicator.stories.ts | 7 +- .../components/tags/tag/tag.component.html | 3 +- .../components/tags/tag/tag.component.scss | 0 .../components/tags/tag/tag.component.spec.ts | 23 +- .../components/tags/tag/tag.component.ts | 4 +- .../tedi}/components/tags/tag/tag.stories.ts | 8 +- .../hide-at/hide-at.directive.spec.ts | 0 .../directives/hide-at/hide-at.directive.ts | 56 +++ {tedi => src/tedi}/directives/index.ts | 0 .../show-at/show-at.directive.spec.ts | 0 .../directives/show-at/show-at.directive.ts | 56 +++ .../directives/vertical-spacing/index.ts | 0 .../vertical-spacing-item.directive.spec.ts | 0 .../vertical-spacing-item.directive.ts | 0 .../vertical-spacing-item.stories.ts | 0 .../vertical-spacing.directive.spec.ts | 0 .../vertical-spacing.directive.ts | 0 .../vertical-spacing.stories.ts | 0 {tedi => src/tedi}/helpers/generate-uuid.ts | 0 {tedi => src/tedi}/helpers/index.ts | 0 {tedi => src/tedi}/index.ts | 0 src/tedi/ng-package.json | 6 + {tedi => src/tedi}/providers/index.ts | 0 {tedi => src/tedi}/providers/tedi.provider.ts | 12 +- .../breakpoint/breakpoint.service.spec.ts | 0 .../services/breakpoint/breakpoint.service.ts | 0 {tedi => src/tedi}/services/index.ts | 0 .../services/sidenav/sidenav.service.spec.ts | 28 +- .../tedi}/services/sidenav/sidenav.service.ts | 11 +- .../tedi}/services/theme/theme.service.ts | 7 +- .../toast/toast-announcer.service.spec.ts | 26 +- .../services/toast/toast-announcer.service.ts | 15 +- .../services/toast/toast.service.spec.ts | 2 +- .../tedi}/services/toast/toast.service.ts | 61 ++- .../services/translation/translation.pipe.ts | 15 + .../translation/translation.service.ts | 0 .../services/translation/translations.ts | 48 ++- {tedi => src/tedi}/tokens/index.ts | 0 {tedi => src/tedi}/tokens/theme.token.ts | 0 .../tedi}/tokens/translation.token.ts | 0 src/tedi/types/index.ts | 1 + {tedi => src/tedi}/types/inputs.type.ts | 7 +- {tedi => src/tedi}/utils/cookies.util.ts | 0 {tedi => src/tedi}/utils/date.util.spec.ts | 0 {tedi => src/tedi}/utils/date.util.ts | 0 {tedi => src/tedi}/utils/elements.util.ts | 0 {tedi => src/tedi}/utils/time.util.spec.ts | 18 +- {tedi => src/tedi}/utils/time.util.ts | 9 +- tedi/components/base/icon/icon.component.html | 1 - tedi/components/base/text/text.component.html | 1 - .../content/list/list.component.html | 1 - .../checkbox-group.component.html | 9 - .../helpers/grid/col/col.component.html | 1 - .../helpers/grid/row/row.component.html | 1 - tedi/components/helpers/scroll-fade/index.ts | 2 - .../header-content.component.ts | 11 - .../header-login/header-login.component.html | 10 - .../header-login.component.spec.ts | 56 --- .../header-logout.component.html | 4 - .../header-logout.component.spec.ts | 54 --- tedi/components/loader/index.ts | 2 - tedi/directives/hide-at/hide-at.directive.ts | 53 --- tedi/directives/show-at/show-at.directive.ts | 53 --- tedi/ng-package.json | 6 - tedi/services/translation/translation.pipe.ts | 15 - tedi/types/index.ts | 1 - tsconfig.base.json | 4 +- tsconfig.json | 6 +- tsconfig.lib.json | 2 +- 792 files changed, 3753 insertions(+), 2139 deletions(-) delete mode 100644 community/ng-package.json rename {community => src/community}/components/buttons/floating-button/floating-button.component.scss (100%) rename {community => src/community}/components/buttons/floating-button/floating-button.component.ts (100%) rename {community => src/community}/components/buttons/floating-button/floating-button.stories.ts (98%) rename {community => src/community}/components/buttons/floating-button/index.ts (100%) rename {community => src/community}/components/buttons/index.ts (100%) rename {community => src/community}/components/cards/accordion/accordion-icon/accordion-icon.component.html (100%) rename {community => src/community}/components/cards/accordion/accordion-icon/accordion-icon.component.scss (100%) rename {community => src/community}/components/cards/accordion/accordion-icon/accordion-icon.component.ts (100%) rename {community => src/community}/components/cards/accordion/accordion-item-content/accordion-item-content.component.html (100%) rename {community => src/community}/components/cards/accordion/accordion-item-content/accordion-item-content.component.scss (100%) rename {community => src/community}/components/cards/accordion/accordion-item-content/accordion-item-content.component.ts (100%) rename {community => src/community}/components/cards/accordion/accordion-item-header/accordion-item-header.component.html (100%) rename {community => src/community}/components/cards/accordion/accordion-item-header/accordion-item-header.component.scss (100%) rename {community => src/community}/components/cards/accordion/accordion-item-header/accordion-item-header.component.ts (100%) rename {community => src/community}/components/cards/accordion/accordion-item/accordion-item.component.html (100%) rename {community => src/community}/components/cards/accordion/accordion-item/accordion-item.component.scss (100%) rename {community => src/community}/components/cards/accordion/accordion-item/accordion-item.component.ts (100%) rename {community => src/community}/components/cards/accordion/accordion.stories.ts (100%) rename {community => src/community}/components/cards/accordion/accordion/accordion.component.html (100%) rename {community => src/community}/components/cards/accordion/accordion/accordion.component.scss (100%) rename {community => src/community}/components/cards/accordion/accordion/accordion.component.ts (100%) rename {community => src/community}/components/cards/accordion/index.ts (100%) rename {community => src/community}/components/cards/card/_card-mixins.scss (100%) rename {community => src/community}/components/cards/card/card-colors.directive.ts (100%) rename {community => src/community}/components/cards/card/card-content/card-content.component.html (100%) rename {community => src/community}/components/cards/card/card-content/card-content.component.scss (100%) rename {community => src/community}/components/cards/card/card-content/card-content.component.ts (100%) rename {community => src/community}/components/cards/card/card-header/card-header.component.html (100%) rename {community => src/community}/components/cards/card/card-header/card-header.component.scss (100%) rename {community => src/community}/components/cards/card/card-header/card-header.component.ts (100%) rename {community => src/community}/components/cards/card/card-padding.directive.ts (100%) rename {community => src/community}/components/cards/card/card-row/card-row.component.html (100%) rename {community => src/community}/components/cards/card/card-row/card-row.component.scss (100%) rename {community => src/community}/components/cards/card/card-row/card-row.component.ts (100%) rename {community => src/community}/components/cards/card/card.component.html (100%) rename {community => src/community}/components/cards/card/card.component.scss (100%) rename {community => src/community}/components/cards/card/card.component.ts (100%) rename {community => src/community}/components/cards/card/index.ts (100%) rename {community => src/community}/components/cards/card/stories/card-story-templates.ts (100%) rename {community => src/community}/components/cards/card/stories/card.stories.ts (100%) rename {community => src/community}/components/cards/index.ts (100%) rename {community => src/community}/components/form/checkbox/checkbox-card-group/checkbox-card-group.component.ts (100%) rename {community => src/community}/components/form/checkbox/checkbox-group/checkbox-group.component.html (100%) rename {community => src/community}/components/form/checkbox/checkbox-group/checkbox-group.component.scss (100%) rename {community => src/community}/components/form/checkbox/checkbox-group/checkbox-group.component.ts (100%) rename {community => src/community}/components/form/checkbox/checkbox.stories.ts (100%) rename {community => src/community}/components/form/checkbox/checkbox/checkbox.component.html (100%) rename {community => src/community}/components/form/checkbox/checkbox/checkbox.component.scss (100%) rename {community => src/community}/components/form/checkbox/checkbox/checkbox.component.ts (100%) rename {community => src/community}/components/form/checkbox/index.ts (100%) rename {community => src/community}/components/form/choicegroup/_choicegroup-card-mixins.scss (100%) rename {community => src/community}/components/form/choicegroup/choicegroup.directive.ts (100%) rename {community => src/community}/components/form/choicegroup/choicegroup.styles.scss (100%) rename {community => src/community}/components/form/file-dropzone/constants.ts (100%) rename {community => src/community}/components/form/file-dropzone/file-dropzone.component.html (100%) rename {community => src/community}/components/form/file-dropzone/file-dropzone.component.scss (100%) rename {community => src/community}/components/form/file-dropzone/file-dropzone.component.ts (100%) rename {community => src/community}/components/form/file-dropzone/file-dropzone.react.scss (100%) rename {community => src/community}/components/form/file-dropzone/file-dropzone.stories.ts (98%) rename {community => src/community}/components/form/file-dropzone/file.service.ts (100%) rename {community => src/community}/components/form/file-dropzone/index.ts (100%) rename {community => src/community}/components/form/file-dropzone/types.ts (100%) rename {community => src/community}/components/form/file-dropzone/utils.ts (100%) rename {community => src/community}/components/form/form-field/form-field.component.scss (100%) rename {community => src/community}/components/form/form-field/form-field.component.ts (100%) rename {community => src/community}/components/form/form-field/form-field.stories.ts (100%) rename {community => src/community}/components/form/index.ts (100%) rename {community => src/community}/components/form/input-group/input-group.component.html (100%) rename {community => src/community}/components/form/input-group/input-group.component.scss (100%) rename {community => src/community}/components/form/input-group/input-group.component.ts (100%) rename {community => src/community}/components/form/input-group/input-group.stories.ts (99%) rename {community => src/community}/components/form/input/input.component.scss (100%) rename {community => src/community}/components/form/input/input.component.ts (100%) rename {community => src/community}/components/form/input/textfield.stories.ts (100%) rename {community => src/community}/components/form/radio/index.ts (100%) rename {community => src/community}/components/form/radio/radio-card-group/radio-card-group.component.ts (100%) rename {community => src/community}/components/form/radio/radio-group/radio-group.component.html (100%) rename {community => src/community}/components/form/radio/radio-group/radio-group.component.scss (100%) rename {community => src/community}/components/form/radio/radio-group/radio-group.component.ts (100%) rename {community => src/community}/components/form/radio/radio.stories.ts (100%) rename {community => src/community}/components/form/radio/radio/radio.component.html (100%) rename {community => src/community}/components/form/radio/radio/radio.component.scss (100%) rename {community => src/community}/components/form/radio/radio/radio.component.ts (100%) rename {community => src/community}/components/form/search/search.component.html (100%) rename {community => src/community}/components/form/search/search.component.scss (100%) rename {community => src/community}/components/form/search/search.component.ts (100%) rename {community => src/community}/components/form/search/search.stories.ts (100%) rename {community => src/community}/components/form/select/index.ts (100%) rename {community => src/community}/components/form/select/multiselect.component.html (100%) rename {community => src/community}/components/form/select/multiselect.component.ts (100%) rename {community => src/community}/components/form/select/multiselect.stories.ts (100%) rename {community => src/community}/components/form/select/select-option.component.ts (100%) rename {community => src/community}/components/form/select/select.component.html (100%) rename {community => src/community}/components/form/select/select.component.scss (100%) rename {community => src/community}/components/form/select/select.component.ts (100%) rename {community => src/community}/components/form/select/select.stories.ts (100%) rename {community => src/community}/components/form/textarea/textarea.component.scss (100%) rename {community => src/community}/components/form/textarea/textarea.component.ts (100%) rename {community => src/community}/components/form/textarea/textarea.stories.ts (100%) rename {community => src/community}/components/helpers/index.ts (100%) rename {community => src/community}/components/helpers/progress-bar/index.ts (100%) rename {community => src/community}/components/helpers/progress-bar/progress-bar.component.html (100%) rename {community => src/community}/components/helpers/progress-bar/progress-bar.component.scss (100%) rename {community => src/community}/components/helpers/progress-bar/progress-bar.component.ts (100%) rename {community => src/community}/components/helpers/progress-bar/progress-bar.stories.ts (100%) rename {community => src/community}/components/navigation/breadcrumbs/breadcrumbs.component.html (100%) rename {community => src/community}/components/navigation/breadcrumbs/breadcrumbs.component.scss (100%) rename {community => src/community}/components/navigation/breadcrumbs/breadcrumbs.component.spec.ts (100%) rename {community => src/community}/components/navigation/breadcrumbs/breadcrumbs.component.ts (100%) rename {community => src/community}/components/navigation/breadcrumbs/breadcrumbs.stories.ts (96%) rename {community => src/community}/components/navigation/index.ts (100%) rename {community => src/community}/components/navigation/pagination/pagination-page/pagination-page.component.html (100%) rename {community => src/community}/components/navigation/pagination/pagination-page/pagination-page.component.scss (100%) rename {community => src/community}/components/navigation/pagination/pagination-page/pagination-page.component.ts (100%) rename {community => src/community}/components/navigation/pagination/pagination.component.html (100%) rename {community => src/community}/components/navigation/pagination/pagination.component.scss (100%) rename {community => src/community}/components/navigation/pagination/pagination.component.ts (100%) rename {community => src/community}/components/navigation/pagination/pagination.stories.ts (100%) rename {community => src/community}/components/navigation/pagination/pagination.utils.ts (100%) rename {community => src/community}/components/navigation/table-of-contents/index.ts (100%) rename {community => src/community}/components/navigation/table-of-contents/table-of-contents-item/table-of-contents-item.component.html (100%) rename {community => src/community}/components/navigation/table-of-contents/table-of-contents-item/table-of-contents-item.component.scss (100%) rename {community => src/community}/components/navigation/table-of-contents/table-of-contents-item/table-of-contents-item.component.ts (100%) rename {community => src/community}/components/navigation/table-of-contents/table-of-contents-nested-wrapper.component.ts (100%) rename {community => src/community}/components/navigation/table-of-contents/table-of-contents.component.html (100%) rename {community => src/community}/components/navigation/table-of-contents/table-of-contents.component.scss (100%) rename {community => src/community}/components/navigation/table-of-contents/table-of-contents.component.ts (100%) rename {community => src/community}/components/navigation/table-of-contents/table-of-contents.stories.ts (100%) rename {community => src/community}/components/navigation/tabs/index.ts (100%) rename {community => src/community}/components/navigation/tabs/tab-content/tab-content.component.html (100%) rename {community => src/community}/components/navigation/tabs/tab-content/tab-content.component.ts (100%) rename {community => src/community}/components/navigation/tabs/tab/tab.component.html (100%) rename {community => src/community}/components/navigation/tabs/tab/tab.component.scss (100%) rename {community => src/community}/components/navigation/tabs/tab/tab.component.ts (100%) rename {community => src/community}/components/navigation/tabs/tabs.component.html (100%) rename {community => src/community}/components/navigation/tabs/tabs.component.scss (100%) rename {community => src/community}/components/navigation/tabs/tabs.component.ts (100%) rename {community => src/community}/components/navigation/tabs/tabs.stories.ts (100%) rename {community => src/community}/components/navigation/vertical-stepper/index.ts (100%) rename {community => src/community}/components/navigation/vertical-stepper/vertical-stepper-item/vertical-stepper-item.component.html (100%) rename {community => src/community}/components/navigation/vertical-stepper/vertical-stepper-item/vertical-stepper-item.component.scss (100%) rename {community => src/community}/components/navigation/vertical-stepper/vertical-stepper-item/vertical-stepper-item.component.ts (100%) rename {community => src/community}/components/navigation/vertical-stepper/vertical-stepper.component.html (100%) rename {community => src/community}/components/navigation/vertical-stepper/vertical-stepper.component.scss (100%) rename {community => src/community}/components/navigation/vertical-stepper/vertical-stepper.component.ts (100%) rename {community => src/community}/components/navigation/vertical-stepper/vertical-stepper.stories.ts (100%) rename {community => src/community}/components/overlay/dropdown-item/dropdown-item.component.scss (100%) rename {community => src/community}/components/overlay/dropdown-item/dropdown-item.component.ts (100%) rename {community => src/community}/components/overlay/dropdown-item/dropdown-item.stories.ts (100%) rename {community => src/community}/components/overlay/dropdown/dropdown-trigger/dropdown-trigger.directive.ts (100%) rename {community => src/community}/components/overlay/dropdown/dropdown.component.html (100%) rename {community => src/community}/components/overlay/dropdown/dropdown.component.scss (100%) rename {community => src/community}/components/overlay/dropdown/dropdown.component.ts (100%) rename {community => src/community}/components/overlay/dropdown/dropdown.stories.ts (100%) rename {community => src/community}/components/overlay/index.ts (100%) rename {community => src/community}/components/overlay/modal/footer/modal-footer.component.html (100%) rename {community => src/community}/components/overlay/modal/footer/modal-footer.component.scss (100%) rename {community => src/community}/components/overlay/modal/footer/modal-footer.component.ts (100%) rename {community => src/community}/components/overlay/modal/header/modal-header.component.html (100%) rename {community => src/community}/components/overlay/modal/header/modal-header.component.scss (100%) rename {community => src/community}/components/overlay/modal/header/modal-header.component.ts (100%) rename {community => src/community}/components/overlay/modal/index.ts (100%) rename {community => src/community}/components/overlay/modal/modal.component.html (100%) rename {community => src/community}/components/overlay/modal/modal.component.scss (100%) rename {community => src/community}/components/overlay/modal/modal.component.ts (100%) rename {community => src/community}/components/overlay/modal/modal.stories.ts (99%) rename {community => src/community}/components/table/index.ts (100%) rename {community => src/community}/components/table/table-styles.stories.ts (100%) rename {community => src/community}/components/table/table-styles/table-styles.component.html (100%) rename {community => src/community}/components/table/table-styles/table-styles.component.scss (100%) rename {community => src/community}/components/table/table-styles/table-styles.component.ts (100%) rename {community => src/community}/components/tags/index.ts (100%) rename {community => src/community}/components/tags/status-badge/status-badge.component.html (100%) rename {community => src/community}/components/tags/status-badge/status-badge.component.scss (100%) rename {community => src/community}/components/tags/status-badge/status-badge.component.ts (100%) rename {community => src/community}/components/tags/status-badge/status-badge.stories.ts (100%) rename {community => src/community}/components/tags/tag/tag.component.html (100%) rename {community => src/community}/components/tags/tag/tag.component.scss (100%) rename {community => src/community}/components/tags/tag/tag.component.ts (100%) rename {community => src/community}/components/tags/tag/tag.stories.ts (100%) rename {community => src/community}/helpers/unique-id.ts (100%) rename {community => src/community}/index.ts (100%) create mode 100644 src/community/ng-package.json rename ng-package.json => src/ng-package.json (61%) create mode 100644 src/package.json rename public-api.ts => src/public-api.ts (100%) create mode 100644 src/tedi/components/base/icon/icon.component.html rename {tedi => src/tedi}/components/base/icon/icon.component.scss (100%) rename {tedi => src/tedi}/components/base/icon/icon.component.spec.ts (99%) rename {tedi => src/tedi}/components/base/icon/icon.component.ts (97%) rename {tedi => src/tedi}/components/base/icon/icon.stories.ts (99%) rename {tedi => src/tedi}/components/base/index.ts (50%) rename tedi/components/content/card/card-content/card-content.component.html => src/tedi/components/base/text/text.component.html (100%) rename {tedi => src/tedi}/components/base/text/text.component.spec.ts (95%) rename {tedi => src/tedi}/components/base/text/text.component.ts (98%) rename {tedi => src/tedi}/components/base/text/text.stories.ts (100%) rename {tedi => src/tedi}/components/buttons/button/base-button.directive.ts (96%) rename {tedi => src/tedi}/components/buttons/button/button.component.scss (100%) rename {tedi => src/tedi}/components/buttons/button/button.component.spec.ts (100%) rename {tedi => src/tedi}/components/buttons/button/button.component.ts (100%) rename {tedi => src/tedi}/components/buttons/button/button.stories.ts (98%) rename {tedi => src/tedi}/components/buttons/card-button/card-button.component.html (100%) rename {tedi => src/tedi}/components/buttons/card-button/card-button.component.scss (100%) rename {tedi => src/tedi}/components/buttons/card-button/card-button.component.spec.ts (100%) rename {tedi => src/tedi}/components/buttons/card-button/card-button.component.ts (100%) rename {tedi => src/tedi}/components/buttons/card-button/card-button.stories.ts (100%) rename {tedi => src/tedi}/components/buttons/card-button/index.ts (100%) rename {tedi => src/tedi}/components/buttons/closing-button/closing-button.component.html (100%) rename {tedi => src/tedi}/components/buttons/closing-button/closing-button.component.scss (100%) rename {tedi => src/tedi}/components/buttons/closing-button/closing-button.component.ts (100%) rename {tedi => src/tedi}/components/buttons/closing-button/closing-button.spec.ts (100%) rename {tedi => src/tedi}/components/buttons/closing-button/closing-button.stories.ts (100%) rename {tedi => src/tedi}/components/buttons/collapse-button/collapse-button.component.html (100%) rename {tedi => src/tedi}/components/buttons/collapse-button/collapse-button.component.scss (100%) rename {tedi => src/tedi}/components/buttons/collapse-button/collapse-button.component.spec.ts (99%) rename {tedi => src/tedi}/components/buttons/collapse-button/collapse-button.component.ts (100%) rename {tedi => src/tedi}/components/buttons/collapse-button/collapse-button.stories.ts (100%) rename {tedi => src/tedi}/components/buttons/collapse/collapse.component.html (100%) rename {tedi => src/tedi}/components/buttons/collapse/collapse.component.scss (100%) rename {tedi => src/tedi}/components/buttons/collapse/collapse.component.spec.ts (100%) rename {tedi => src/tedi}/components/buttons/collapse/collapse.component.ts (100%) rename {tedi => src/tedi}/components/buttons/collapse/collapse.stories.ts (98%) rename {tedi => src/tedi}/components/buttons/index.ts (100%) rename {tedi => src/tedi}/components/buttons/info-button/info-button.component.scss (100%) rename {tedi => src/tedi}/components/buttons/info-button/info-button.component.spec.ts (93%) rename {tedi => src/tedi}/components/buttons/info-button/info-button.component.ts (60%) rename {tedi => src/tedi}/components/buttons/info-button/info-button.stories.ts (98%) rename {tedi => src/tedi}/components/cards/accordion/accordion-item-content/accordion-item-content.component.html (100%) rename {tedi => src/tedi}/components/cards/accordion/accordion-item-content/accordion-item-content.component.scss (100%) rename {tedi => src/tedi}/components/cards/accordion/accordion-item-content/accordion-item-content.component.spec.ts (100%) rename {tedi => src/tedi}/components/cards/accordion/accordion-item-content/accordion-item-content.component.ts (92%) rename {tedi => src/tedi}/components/cards/accordion/accordion-item-content/index.ts (100%) rename {tedi => src/tedi}/components/cards/accordion/accordion-item-header/accordion-item-header.component.html (100%) rename {tedi => src/tedi}/components/cards/accordion/accordion-item-header/accordion-item-header.component.scss (100%) rename {tedi => src/tedi}/components/cards/accordion/accordion-item-header/accordion-item-header.component.spec.ts (100%) rename {tedi => src/tedi}/components/cards/accordion/accordion-item-header/accordion-item-header.component.ts (97%) rename {tedi => src/tedi}/components/cards/accordion/accordion-item-header/index.ts (100%) rename {tedi => src/tedi}/components/cards/accordion/accordion-item/accordion-item.component.html (100%) rename {tedi => src/tedi}/components/cards/accordion/accordion-item/accordion-item.component.scss (100%) rename {tedi => src/tedi}/components/cards/accordion/accordion-item/accordion-item.component.spec.ts (100%) rename {tedi => src/tedi}/components/cards/accordion/accordion-item/accordion-item.component.ts (100%) rename {tedi => src/tedi}/components/cards/accordion/accordion-item/index.ts (100%) rename {tedi => src/tedi}/components/cards/accordion/accordion.stories.ts (100%) rename {tedi => src/tedi}/components/cards/accordion/accordion/accordion.component.scss (100%) rename {tedi => src/tedi}/components/cards/accordion/accordion/accordion.component.spec.ts (100%) rename {tedi => src/tedi}/components/cards/accordion/accordion/accordion.component.ts (100%) rename {tedi => src/tedi}/components/cards/accordion/accordion/index.ts (100%) rename {tedi => src/tedi}/components/cards/accordion/index.ts (100%) rename {tedi => src/tedi}/components/cards/index.ts (100%) rename {tedi => src/tedi}/components/content/card/_card-mixins.scss (100%) rename tedi/components/content/card/card-header/card-header.component.html => src/tedi/components/content/card/card-content/card-content.component.html (100%) rename {tedi => src/tedi}/components/content/card/card-content/card-content.component.scss (100%) rename {tedi => src/tedi}/components/content/card/card-content/card-content.component.spec.ts (96%) rename {tedi => src/tedi}/components/content/card/card-content/card-content.component.ts (92%) rename {tedi => src/tedi}/components/content/card/card-content/index.ts (100%) rename tedi/components/content/card/card-icon/card-icon.component.html => src/tedi/components/content/card/card-header/card-header.component.html (100%) rename {tedi => src/tedi}/components/content/card/card-header/card-header.component.scss (100%) rename {tedi => src/tedi}/components/content/card/card-header/card-header.component.spec.ts (100%) rename {tedi => src/tedi}/components/content/card/card-header/card-header.component.ts (100%) rename {tedi => src/tedi}/components/content/card/card-header/index.ts (100%) rename tedi/components/content/card/card-row/card-row.component.html => src/tedi/components/content/card/card-icon/card-icon.component.html (100%) rename {tedi => src/tedi}/components/content/card/card-icon/card-icon.component.scss (100%) rename {tedi => src/tedi}/components/content/card/card-icon/card-icon.component.spec.ts (96%) rename {tedi => src/tedi}/components/content/card/card-icon/card-icon.component.ts (100%) rename {tedi => src/tedi}/components/content/card/card-icon/index.ts (100%) rename tedi/components/content/card/card.component.html => src/tedi/components/content/card/card-row/card-row.component.html (100%) rename {tedi => src/tedi}/components/content/card/card-row/card-row.component.scss (100%) rename {tedi => src/tedi}/components/content/card/card-row/card-row.component.spec.ts (100%) rename {tedi => src/tedi}/components/content/card/card-row/card-row.component.ts (100%) rename {tedi => src/tedi}/components/content/card/card-row/index.ts (100%) create mode 100644 src/tedi/components/content/card/card.component.html rename {tedi => src/tedi}/components/content/card/card.component.scss (100%) rename {tedi => src/tedi}/components/content/card/card.component.spec.ts (97%) rename {tedi => src/tedi}/components/content/card/card.component.ts (100%) rename {tedi => src/tedi}/components/content/card/card.stories.ts (97%) rename {tedi => src/tedi}/components/content/card/card.utils.ts (96%) rename {tedi => src/tedi}/components/content/card/index.ts (100%) rename {tedi => src/tedi}/components/content/carousel/carousel-content/carousel-content.component.html (100%) rename {tedi => src/tedi}/components/content/carousel/carousel-content/carousel-content.component.scss (100%) rename {tedi => src/tedi}/components/content/carousel/carousel-content/carousel-content.component.ts (98%) rename {tedi => src/tedi}/components/content/carousel/carousel-footer/carousel-footer.component.scss (100%) rename {tedi => src/tedi}/components/content/carousel/carousel-footer/carousel-footer.component.ts (100%) rename {tedi => src/tedi}/components/content/carousel/carousel-header/carousel-header.component.scss (100%) rename {tedi => src/tedi}/components/content/carousel/carousel-header/carousel-header.component.ts (100%) rename {tedi => src/tedi}/components/content/carousel/carousel-indicators/carousel-indicators.component.html (100%) rename {tedi => src/tedi}/components/content/carousel/carousel-indicators/carousel-indicators.component.scss (100%) rename {tedi => src/tedi}/components/content/carousel/carousel-indicators/carousel-indicators.component.ts (100%) rename {tedi => src/tedi}/components/content/carousel/carousel-navigation/carousel-navigation.component.html (100%) rename {tedi => src/tedi}/components/content/carousel/carousel-navigation/carousel-navigation.component.scss (100%) rename {tedi => src/tedi}/components/content/carousel/carousel-navigation/carousel-navigation.component.ts (100%) rename {tedi => src/tedi}/components/content/carousel/carousel-slide.directive.ts (100%) rename {tedi => src/tedi}/components/content/carousel/carousel-slide/carousel-slide.component.scss (100%) rename {tedi => src/tedi}/components/content/carousel/carousel.component.html (100%) rename {tedi => src/tedi}/components/content/carousel/carousel.component.scss (100%) rename {tedi => src/tedi}/components/content/carousel/carousel.component.spec.ts (98%) rename {tedi => src/tedi}/components/content/carousel/carousel.component.ts (100%) rename {tedi => src/tedi}/components/content/carousel/carousel.stories.ts (100%) rename {tedi => src/tedi}/components/content/carousel/index.ts (100%) rename {tedi => src/tedi}/components/content/index.ts (100%) create mode 100644 src/tedi/components/content/list/list.component.html rename {tedi => src/tedi}/components/content/list/list.component.scss (100%) rename {tedi => src/tedi}/components/content/list/list.component.spec.ts (100%) rename {tedi => src/tedi}/components/content/list/list.component.ts (100%) rename {tedi => src/tedi}/components/content/list/list.stories.ts (100%) rename {tedi => src/tedi}/components/content/table/cells-and-templates.mdx (100%) rename {tedi => src/tedi}/components/content/table/index.ts (100%) rename {tedi => src/tedi}/components/content/table/row-span.utils.ts (100%) rename {tedi => src/tedi}/components/content/table/state-management-validation.spec.ts (98%) rename {tedi => src/tedi}/components/content/table/state-management.mdx (100%) rename {tedi => src/tedi}/components/content/table/table-columns-menu/index.ts (100%) rename {tedi => src/tedi}/components/content/table/table-columns-menu/table-columns-menu.component.html (100%) rename {tedi => src/tedi}/components/content/table/table-columns-menu/table-columns-menu.component.scss (100%) rename {tedi => src/tedi}/components/content/table/table-columns-menu/table-columns-menu.component.ts (100%) rename {tedi => src/tedi}/components/content/table/table-header-button/index.ts (100%) rename {tedi => src/tedi}/components/content/table/table-header-button/table-header-button.component.scss (100%) rename {tedi => src/tedi}/components/content/table/table-header-button/table-header-button.component.spec.ts (100%) rename {tedi => src/tedi}/components/content/table/table-header-button/table-header-button.component.ts (100%) rename {tedi => src/tedi}/components/content/table/table-toolbar/index.ts (100%) rename {tedi => src/tedi}/components/content/table/table-toolbar/table-toolbar.component.scss (100%) rename {tedi => src/tedi}/components/content/table/table-toolbar/table-toolbar.component.spec.ts (86%) rename {tedi => src/tedi}/components/content/table/table-toolbar/table-toolbar.component.ts (100%) rename {tedi => src/tedi}/components/content/table/table.component.html (99%) rename {tedi => src/tedi}/components/content/table/table.component.scss (100%) rename {tedi => src/tedi}/components/content/table/table.component.spec.ts (90%) rename {tedi => src/tedi}/components/content/table/table.component.ts (98%) rename {tedi => src/tedi}/components/content/table/table.context.ts (100%) rename {tedi => src/tedi}/components/content/table/table.persistence.ts (100%) rename {tedi => src/tedi}/components/content/table/table.stories.ts (95%) rename {tedi => src/tedi}/components/content/table/table.types.ts (98%) rename {tedi => src/tedi}/components/content/text-group/index.ts (100%) rename {tedi => src/tedi}/components/content/text-group/text-group-label.component.ts (100%) rename {tedi => src/tedi}/components/content/text-group/text-group-value.component.ts (100%) rename {tedi => src/tedi}/components/content/text-group/text-group.component.html (100%) rename {tedi => src/tedi}/components/content/text-group/text-group.component.scss (100%) rename {tedi => src/tedi}/components/content/text-group/text-group.component.spec.ts (100%) rename {tedi => src/tedi}/components/content/text-group/text-group.component.ts (88%) rename {tedi => src/tedi}/components/content/text-group/text-group.stories.ts (98%) rename {tedi => src/tedi}/components/filter/filter-content.directive.ts (100%) rename {tedi => src/tedi}/components/filter/filter-group.component.scss (100%) rename {tedi => src/tedi}/components/filter/filter-group.component.spec.ts (97%) rename {tedi => src/tedi}/components/filter/filter-group.component.ts (100%) rename {tedi => src/tedi}/components/filter/filter-prepend.directive.ts (100%) rename {tedi => src/tedi}/components/filter/filter.component.html (79%) rename {tedi => src/tedi}/components/filter/filter.component.scss (100%) rename {tedi => src/tedi}/components/filter/filter.component.spec.ts (94%) rename {tedi => src/tedi}/components/filter/filter.component.ts (95%) rename {tedi => src/tedi}/components/filter/filter.stories.ts (94%) rename {tedi => src/tedi}/components/filter/index.ts (100%) rename {tedi => src/tedi}/components/form/checkbox-card-group/checkbox-card-group.component.scss (100%) rename {tedi => src/tedi}/components/form/checkbox-card-group/checkbox-card-group.component.spec.ts (91%) rename {tedi => src/tedi}/components/form/checkbox-card-group/checkbox-card-group.component.ts (100%) rename {tedi => src/tedi}/components/form/checkbox-card/checkbox-card.component.html (100%) rename {tedi => src/tedi}/components/form/checkbox-card/checkbox-card.component.scss (100%) rename {tedi => src/tedi}/components/form/checkbox-card/checkbox-card.component.spec.ts (89%) rename {tedi => src/tedi}/components/form/checkbox-card/checkbox-card.component.ts (100%) create mode 100644 src/tedi/components/form/checkbox-group/checkbox-group.component.html rename {tedi => src/tedi}/components/form/checkbox-group/checkbox-group.component.scss (100%) rename {tedi => src/tedi}/components/form/checkbox-group/checkbox-group.component.spec.ts (96%) rename {tedi => src/tedi}/components/form/checkbox-group/checkbox-group.component.ts (98%) rename {tedi => src/tedi}/components/form/checkbox/checkbox.component.scss (100%) rename {tedi => src/tedi}/components/form/checkbox/checkbox.component.spec.ts (100%) rename {tedi => src/tedi}/components/form/checkbox/checkbox.component.ts (100%) rename {tedi => src/tedi}/components/form/checkbox/checkbox.stories.ts (98%) rename {tedi => src/tedi}/components/form/date-picker/date-picker-calendar-grid/date-picker-calendar-grid.component.html (100%) rename {tedi => src/tedi}/components/form/date-picker/date-picker-calendar-grid/date-picker-calendar-grid.component.spec.ts (100%) rename {tedi => src/tedi}/components/form/date-picker/date-picker-calendar-grid/date-picker-calendar-grid.component.ts (100%) rename {tedi => src/tedi}/components/form/date-picker/date-picker-header/date-picker-header.component.html (86%) rename {tedi => src/tedi}/components/form/date-picker/date-picker-header/date-picker-header.component.spec.ts (95%) rename {tedi => src/tedi}/components/form/date-picker/date-picker-header/date-picker-header.component.ts (97%) rename {tedi => src/tedi}/components/form/date-picker/date-picker-month-grid/date-picker-month-grid.component.html (100%) rename {tedi => src/tedi}/components/form/date-picker/date-picker-month-grid/date-picker-month-grid.component.spec.ts (100%) rename {tedi => src/tedi}/components/form/date-picker/date-picker-month-grid/date-picker-month-grid.component.ts (100%) rename {tedi => src/tedi}/components/form/date-picker/date-picker-year-grid/date-picker-year-grid.component.html (72%) rename {tedi => src/tedi}/components/form/date-picker/date-picker-year-grid/date-picker-year-grid.component.spec.ts (93%) rename {tedi => src/tedi}/components/form/date-picker/date-picker-year-grid/date-picker-year-grid.component.ts (100%) rename {tedi => src/tedi}/components/form/date-picker/date-picker.component.html (100%) rename {tedi => src/tedi}/components/form/date-picker/date-picker.component.scss (100%) rename {tedi => src/tedi}/components/form/date-picker/date-picker.component.spec.ts (98%) rename {tedi => src/tedi}/components/form/date-picker/date-picker.component.ts (95%) rename {tedi => src/tedi}/components/form/date-picker/date-picker.stories.ts (98%) rename {tedi => src/tedi}/components/form/feedback-text/feedback-text.component.html (100%) rename {tedi => src/tedi}/components/form/feedback-text/feedback-text.component.scss (100%) rename {tedi => src/tedi}/components/form/feedback-text/feedback-text.component.spec.ts (96%) rename {tedi => src/tedi}/components/form/feedback-text/feedback-text.component.ts (100%) rename {tedi => src/tedi}/components/form/feedback-text/feedback-text.stories.ts (100%) rename {tedi => src/tedi}/components/form/form-field/form-field-control.ts (100%) rename {tedi => src/tedi}/components/form/form-field/form-field.component.html (100%) rename {tedi => src/tedi}/components/form/form-field/form-field.component.scss (100%) rename {tedi => src/tedi}/components/form/form-field/form-field.component.spec.ts (100%) rename {tedi => src/tedi}/components/form/form-field/form-field.component.ts (100%) rename {tedi => src/tedi}/components/form/index.ts (100%) rename {tedi => src/tedi}/components/form/label/label.component.html (61%) rename {tedi => src/tedi}/components/form/label/label.component.scss (100%) rename {tedi => src/tedi}/components/form/label/label.component.spec.ts (100%) rename {tedi => src/tedi}/components/form/label/label.component.ts (96%) rename {tedi => src/tedi}/components/form/label/label.stories.ts (100%) rename {tedi => src/tedi}/components/form/number-field/number-field.component.html (100%) rename {tedi => src/tedi}/components/form/number-field/number-field.component.scss (100%) rename {tedi => src/tedi}/components/form/number-field/number-field.component.spec.ts (99%) rename {tedi => src/tedi}/components/form/number-field/number-field.component.ts (96%) rename {tedi => src/tedi}/components/form/number-field/number-field.stories.ts (100%) rename {tedi => src/tedi}/components/form/radio-card-group/radio-card-group.component.scss (100%) rename {tedi => src/tedi}/components/form/radio-card-group/radio-card-group.component.spec.ts (86%) rename {tedi => src/tedi}/components/form/radio-card-group/radio-card-group.component.ts (100%) rename {tedi => src/tedi}/components/form/radio-card/radio-card.component.html (100%) rename {tedi => src/tedi}/components/form/radio-card/radio-card.component.scss (100%) rename {tedi => src/tedi}/components/form/radio-card/radio-card.component.spec.ts (88%) rename {tedi => src/tedi}/components/form/radio-card/radio-card.component.ts (100%) rename {tedi => src/tedi}/components/form/radio-group/radio-group.component.html (55%) rename {tedi => src/tedi}/components/form/radio-group/radio-group.component.scss (100%) rename {tedi => src/tedi}/components/form/radio-group/radio-group.component.spec.ts (96%) rename {tedi => src/tedi}/components/form/radio-group/radio-group.component.ts (98%) rename {tedi => src/tedi}/components/form/radio/radio.component.scss (100%) rename {tedi => src/tedi}/components/form/radio/radio.component.spec.ts (100%) rename {tedi => src/tedi}/components/form/radio/radio.component.ts (100%) rename {tedi => src/tedi}/components/form/radio/radio.stories.ts (99%) rename {tedi => src/tedi}/components/form/select/index.ts (100%) rename {tedi => src/tedi}/components/form/select/select-templates.directive.ts (100%) rename {tedi => src/tedi}/components/form/select/select.component.html (90%) rename {tedi => src/tedi}/components/form/select/select.component.scss (100%) rename {tedi => src/tedi}/components/form/select/select.component.spec.ts (92%) rename {tedi => src/tedi}/components/form/select/select.component.ts (92%) rename {tedi => src/tedi}/components/form/select/select.stories.ts (88%) rename {tedi => src/tedi}/components/form/text-field/text-field.component.scss (100%) rename {tedi => src/tedi}/components/form/text-field/text-field.component.spec.ts (100%) rename {tedi => src/tedi}/components/form/text-field/text-field.component.ts (100%) rename {tedi => src/tedi}/components/form/text-field/text-field.stories.ts (100%) rename {tedi => src/tedi}/components/form/time-field/index.ts (100%) rename {tedi => src/tedi}/components/form/time-field/time-field.component.html (94%) rename {tedi => src/tedi}/components/form/time-field/time-field.component.scss (100%) rename {tedi => src/tedi}/components/form/time-field/time-field.component.spec.ts (93%) rename {tedi => src/tedi}/components/form/time-field/time-field.component.ts (98%) rename {tedi => src/tedi}/components/form/time-field/time-field.stories.ts (91%) rename {tedi => src/tedi}/components/form/time-field/time-picker-modal.component.html (100%) rename {tedi => src/tedi}/components/form/time-field/time-picker-modal.component.scss (100%) rename {tedi => src/tedi}/components/form/time-field/time-picker-modal.component.spec.ts (100%) rename {tedi => src/tedi}/components/form/time-field/time-picker-modal.component.ts (91%) rename {tedi => src/tedi}/components/form/time-picker/index.ts (100%) rename {tedi => src/tedi}/components/form/time-picker/time-picker.component.html (83%) rename {tedi => src/tedi}/components/form/time-picker/time-picker.component.scss (100%) rename {tedi => src/tedi}/components/form/time-picker/time-picker.component.spec.ts (93%) rename {tedi => src/tedi}/components/form/time-picker/time-picker.component.ts (88%) rename {tedi => src/tedi}/components/form/time-picker/time-picker.stories.ts (88%) rename {tedi => src/tedi}/components/form/toggle/toggle.component.html (92%) rename {tedi => src/tedi}/components/form/toggle/toggle.component.scss (100%) rename {tedi => src/tedi}/components/form/toggle/toggle.component.spec.ts (97%) rename {tedi => src/tedi}/components/form/toggle/toggle.component.ts (91%) rename {tedi => src/tedi}/components/form/toggle/toggle.stories.ts (100%) rename {tedi => src/tedi}/components/helpers/attachment/attachment-actions.component.scss (100%) rename {tedi => src/tedi}/components/helpers/attachment/attachment-actions.component.ts (100%) rename {tedi => src/tedi}/components/helpers/attachment/attachment.component.html (89%) rename {tedi => src/tedi}/components/helpers/attachment/attachment.component.scss (100%) rename {tedi => src/tedi}/components/helpers/attachment/attachment.component.spec.ts (93%) rename {tedi => src/tedi}/components/helpers/attachment/attachment.component.ts (96%) rename {tedi => src/tedi}/components/helpers/attachment/attachment.stories.ts (99%) rename {tedi => src/tedi}/components/helpers/attachment/index.ts (100%) rename {tedi => src/tedi}/components/helpers/ellipsis/ellipsis.component.html (100%) rename {tedi => src/tedi}/components/helpers/ellipsis/ellipsis.component.scss (100%) rename {tedi => src/tedi}/components/helpers/ellipsis/ellipsis.component.spec.ts (85%) rename {tedi => src/tedi}/components/helpers/ellipsis/ellipsis.component.ts (89%) rename {tedi => src/tedi}/components/helpers/ellipsis/ellipsis.stories.ts (93%) rename {tedi => src/tedi}/components/helpers/ellipsis/index.ts (100%) rename {tedi => src/tedi}/components/helpers/empty-state/empty-state.component.html (71%) rename {tedi => src/tedi}/components/helpers/empty-state/empty-state.component.scss (100%) rename {tedi => src/tedi}/components/helpers/empty-state/empty-state.component.spec.ts (88%) rename {tedi => src/tedi}/components/helpers/empty-state/empty-state.component.ts (96%) rename {tedi => src/tedi}/components/helpers/empty-state/empty-state.stories.ts (96%) rename {tedi => src/tedi}/components/helpers/empty-state/index.ts (100%) create mode 100644 src/tedi/components/helpers/grid/col/col.component.html rename {tedi => src/tedi}/components/helpers/grid/col/col.component.scss (100%) rename {tedi => src/tedi}/components/helpers/grid/col/col.component.spec.ts (89%) rename {tedi => src/tedi}/components/helpers/grid/col/col.component.ts (89%) rename {tedi => src/tedi}/components/helpers/grid/col/col.stories.ts (96%) rename {tedi => src/tedi}/components/helpers/grid/index.ts (50%) create mode 100644 src/tedi/components/helpers/grid/row/row.component.html rename {tedi => src/tedi}/components/helpers/grid/row/row.component.scss (100%) rename {tedi => src/tedi}/components/helpers/grid/row/row.component.spec.ts (88%) rename {tedi => src/tedi}/components/helpers/grid/row/row.component.ts (87%) rename {tedi => src/tedi}/components/helpers/grid/row/row.stories.ts (97%) rename {tedi => src/tedi}/components/helpers/index.ts (100%) create mode 100644 src/tedi/components/helpers/scroll-fade/index.ts rename {tedi => src/tedi}/components/helpers/scroll-fade/scroll-fade.component.html (100%) rename {tedi => src/tedi}/components/helpers/scroll-fade/scroll-fade.component.scss (100%) rename {tedi => src/tedi}/components/helpers/scroll-fade/scroll-fade.component.spec.ts (70%) rename {tedi => src/tedi}/components/helpers/scroll-fade/scroll-fade.component.ts (93%) rename {tedi => src/tedi}/components/helpers/scroll-fade/scroll-fade.stories.ts (100%) rename {tedi => src/tedi}/components/helpers/separator/separator.component.scss (100%) rename {tedi => src/tedi}/components/helpers/separator/separator.component.spec.ts (100%) rename {tedi => src/tedi}/components/helpers/separator/separator.component.ts (100%) rename {tedi => src/tedi}/components/helpers/separator/separator.stories.ts (100%) rename {tedi => src/tedi}/components/helpers/timeline/index.ts (100%) rename {tedi => src/tedi}/components/helpers/timeline/timeline-description/timeline-description.component.scss (100%) rename {tedi => src/tedi}/components/helpers/timeline/timeline-description/timeline-description.component.ts (100%) rename {tedi => src/tedi}/components/helpers/timeline/timeline-item/timeline-item.component.html (100%) rename {tedi => src/tedi}/components/helpers/timeline/timeline-item/timeline-item.component.scss (100%) rename {tedi => src/tedi}/components/helpers/timeline/timeline-item/timeline-item.component.ts (96%) rename {tedi => src/tedi}/components/helpers/timeline/timeline-timings-bottom.directive.ts (100%) rename {tedi => src/tedi}/components/helpers/timeline/timeline-title/timeline-title.component.scss (100%) rename {tedi => src/tedi}/components/helpers/timeline/timeline-title/timeline-title.component.ts (100%) rename {tedi => src/tedi}/components/helpers/timeline/timeline.component.scss (100%) rename {tedi => src/tedi}/components/helpers/timeline/timeline.component.spec.ts (100%) rename {tedi => src/tedi}/components/helpers/timeline/timeline.component.ts (100%) rename {tedi => src/tedi}/components/helpers/timeline/timeline.stories.ts (100%) rename {tedi => src/tedi}/components/index.ts (100%) rename {tedi => src/tedi}/components/layout/footer/footer-body/footer-body.component.scss (100%) rename {tedi => src/tedi}/components/layout/footer/footer-body/footer-body.component.spec.ts (100%) rename {tedi => src/tedi}/components/layout/footer/footer-body/footer-body.component.ts (100%) rename {tedi => src/tedi}/components/layout/footer/footer-bottom/footer-bottom.component.html (100%) rename {tedi => src/tedi}/components/layout/footer/footer-bottom/footer-bottom.component.scss (100%) rename {tedi => src/tedi}/components/layout/footer/footer-bottom/footer-bottom.component.spec.ts (100%) rename {tedi => src/tedi}/components/layout/footer/footer-bottom/footer-bottom.component.ts (100%) rename {tedi => src/tedi}/components/layout/footer/footer-section/footer-section.component.html (100%) rename {tedi => src/tedi}/components/layout/footer/footer-section/footer-section.component.scss (100%) rename {tedi => src/tedi}/components/layout/footer/footer-section/footer-section.component.spec.ts (100%) rename {tedi => src/tedi}/components/layout/footer/footer-section/footer-section.component.ts (100%) rename {tedi => src/tedi}/components/layout/footer/footer-side/footer-side.component.scss (100%) rename {tedi => src/tedi}/components/layout/footer/footer-side/footer-side.component.spec.ts (100%) rename {tedi => src/tedi}/components/layout/footer/footer-side/footer-side.component.ts (100%) rename {tedi => src/tedi}/components/layout/footer/footer.component.html (100%) rename {tedi => src/tedi}/components/layout/footer/footer.component.scss (100%) rename {tedi => src/tedi}/components/layout/footer/footer.component.spec.ts (100%) rename {tedi => src/tedi}/components/layout/footer/footer.component.ts (100%) rename {tedi => src/tedi}/components/layout/footer/footer.stories.ts (100%) rename {tedi => src/tedi}/components/layout/footer/index.ts (100%) rename {tedi => src/tedi}/components/layout/header/header-actions/header-actions.component.scss (100%) rename {tedi => src/tedi}/components/layout/header/header-actions/header-actions.component.ts (81%) rename {tedi => src/tedi}/components/layout/header/header-content/header-content.component.scss (100%) create mode 100644 src/tedi/components/layout/header/header-content/header-content.component.ts rename {tedi => src/tedi}/components/layout/header/header-language/header-language.component.html (100%) rename {tedi => src/tedi}/components/layout/header/header-language/header-language.component.scss (100%) rename {tedi => src/tedi}/components/layout/header/header-language/header-language.component.spec.ts (50%) rename {tedi => src/tedi}/components/layout/header/header-language/header-language.component.ts (100%) create mode 100644 src/tedi/components/layout/header/header-login/header-login.component.html rename {tedi => src/tedi}/components/layout/header/header-login/header-login.component.scss (100%) create mode 100644 src/tedi/components/layout/header/header-login/header-login.component.spec.ts rename {tedi => src/tedi}/components/layout/header/header-login/header-login.component.ts (51%) create mode 100644 src/tedi/components/layout/header/header-logout/header-logout.component.html rename {tedi => src/tedi}/components/layout/header/header-logout/header-logout.component.scss (100%) create mode 100644 src/tedi/components/layout/header/header-logout/header-logout.component.spec.ts rename {tedi => src/tedi}/components/layout/header/header-logout/header-logout.component.ts (63%) rename {tedi => src/tedi}/components/layout/header/header-profile/header-profile.component.html (96%) rename {tedi => src/tedi}/components/layout/header/header-profile/header-profile.component.scss (100%) rename {tedi => src/tedi}/components/layout/header/header-profile/header-profile.component.spec.ts (100%) rename {tedi => src/tedi}/components/layout/header/header-profile/header-profile.component.ts (100%) rename {tedi => src/tedi}/components/layout/header/header-role/header-role.component.html (96%) rename {tedi => src/tedi}/components/layout/header/header-role/header-role.component.scss (100%) rename {tedi => src/tedi}/components/layout/header/header-role/header-role.component.spec.ts (53%) rename {tedi => src/tedi}/components/layout/header/header-role/header-role.component.ts (100%) rename {tedi => src/tedi}/components/layout/header/header.component.html (72%) rename {tedi => src/tedi}/components/layout/header/header.component.scss (100%) rename {tedi => src/tedi}/components/layout/header/header.component.ts (84%) rename {tedi => src/tedi}/components/layout/header/header.stories.ts (100%) rename {tedi => src/tedi}/components/layout/header/index.ts (87%) rename {tedi => src/tedi}/components/layout/index.ts (100%) rename {tedi => src/tedi}/components/layout/sidenav/index.ts (88%) rename {tedi => src/tedi}/components/layout/sidenav/sidenav-dropdown-group/sidenav-dropdown-group.component.html (79%) rename {tedi => src/tedi}/components/layout/sidenav/sidenav-dropdown-group/sidenav-dropdown-group.component.scss (100%) rename {tedi => src/tedi}/components/layout/sidenav/sidenav-dropdown-group/sidenav-dropdown-group.component.spec.ts (87%) rename {tedi => src/tedi}/components/layout/sidenav/sidenav-dropdown-group/sidenav-dropdown-group.component.ts (92%) rename {tedi => src/tedi}/components/layout/sidenav/sidenav-dropdown-item/sidenav-dropdown-item.component.html (100%) rename {tedi => src/tedi}/components/layout/sidenav/sidenav-dropdown-item/sidenav-dropdown-item.component.scss (100%) rename {tedi => src/tedi}/components/layout/sidenav/sidenav-dropdown-item/sidenav-dropdown-item.component.spec.ts (90%) rename {tedi => src/tedi}/components/layout/sidenav/sidenav-dropdown-item/sidenav-dropdown-item.component.ts (95%) rename {tedi => src/tedi}/components/layout/sidenav/sidenav-dropdown/sidenav-dropdown.component.html (100%) rename {tedi => src/tedi}/components/layout/sidenav/sidenav-dropdown/sidenav-dropdown.component.scss (100%) rename {tedi => src/tedi}/components/layout/sidenav/sidenav-dropdown/sidenav-dropdown.component.spec.ts (62%) rename {tedi => src/tedi}/components/layout/sidenav/sidenav-dropdown/sidenav-dropdown.component.ts (96%) rename {tedi => src/tedi}/components/layout/sidenav/sidenav-group-title/sidenav-group-title.component.html (100%) rename {tedi => src/tedi}/components/layout/sidenav/sidenav-group-title/sidenav-group-title.component.scss (100%) rename {tedi => src/tedi}/components/layout/sidenav/sidenav-group-title/sidenav-group-title.component.spec.ts (87%) rename {tedi => src/tedi}/components/layout/sidenav/sidenav-group-title/sidenav-group-title.component.ts (91%) rename {tedi => src/tedi}/components/layout/sidenav/sidenav-item/sidenav-item.component.html (89%) rename {tedi => src/tedi}/components/layout/sidenav/sidenav-item/sidenav-item.component.scss (100%) rename {tedi => src/tedi}/components/layout/sidenav/sidenav-item/sidenav-item.component.spec.ts (88%) rename {tedi => src/tedi}/components/layout/sidenav/sidenav-item/sidenav-item.component.ts (76%) rename {tedi => src/tedi}/components/layout/sidenav/sidenav-overlay/sidenav-overlay.component.scss (100%) rename {tedi => src/tedi}/components/layout/sidenav/sidenav-overlay/sidenav-overlay.component.spec.ts (59%) rename {tedi => src/tedi}/components/layout/sidenav/sidenav-overlay/sidenav-overlay.component.ts (100%) rename {tedi => src/tedi}/components/layout/sidenav/sidenav-toggle/sidenav-toggle.component.html (100%) rename {tedi => src/tedi}/components/layout/sidenav/sidenav-toggle/sidenav-toggle.component.scss (100%) rename {tedi => src/tedi}/components/layout/sidenav/sidenav-toggle/sidenav-toggle.component.spec.ts (69%) rename {tedi => src/tedi}/components/layout/sidenav/sidenav-toggle/sidenav-toggle.component.ts (99%) rename {tedi => src/tedi}/components/layout/sidenav/sidenav.component.html (88%) rename {tedi => src/tedi}/components/layout/sidenav/sidenav.component.scss (100%) rename {tedi => src/tedi}/components/layout/sidenav/sidenav.component.spec.ts (98%) rename {tedi => src/tedi}/components/layout/sidenav/sidenav.component.ts (100%) rename {tedi => src/tedi}/components/layout/sidenav/sidenav.stories.ts (100%) create mode 100644 src/tedi/components/loader/index.ts rename {tedi => src/tedi}/components/loader/progress-bar/index.ts (100%) rename {tedi => src/tedi}/components/loader/progress-bar/progress-bar.component.html (86%) rename {tedi => src/tedi}/components/loader/progress-bar/progress-bar.component.scss (100%) rename {tedi => src/tedi}/components/loader/progress-bar/progress-bar.component.spec.ts (100%) rename {tedi => src/tedi}/components/loader/progress-bar/progress-bar.component.ts (100%) rename {tedi => src/tedi}/components/loader/progress-bar/progress-bar.stories.ts (92%) rename {tedi => src/tedi}/components/loader/spinner/spinner.component.html (95%) rename {tedi => src/tedi}/components/loader/spinner/spinner.component.scss (100%) rename {tedi => src/tedi}/components/loader/spinner/spinner.component.spec.ts (95%) rename {tedi => src/tedi}/components/loader/spinner/spinner.component.ts (89%) rename {tedi => src/tedi}/components/loader/spinner/spinner.stories.ts (100%) rename {tedi => src/tedi}/components/navigation/horizontal-stepper/horizontal-stepper-item/horizontal-stepper-item.component.html (86%) rename {tedi => src/tedi}/components/navigation/horizontal-stepper/horizontal-stepper-item/horizontal-stepper-item.component.scss (100%) rename {tedi => src/tedi}/components/navigation/horizontal-stepper/horizontal-stepper-item/horizontal-stepper-item.component.spec.ts (100%) rename {tedi => src/tedi}/components/navigation/horizontal-stepper/horizontal-stepper-item/horizontal-stepper-item.component.ts (100%) rename {tedi => src/tedi}/components/navigation/horizontal-stepper/horizontal-stepper-item/index.ts (100%) rename {tedi => src/tedi}/components/navigation/horizontal-stepper/horizontal-stepper.component.html (100%) rename {tedi => src/tedi}/components/navigation/horizontal-stepper/horizontal-stepper.component.scss (100%) rename {tedi => src/tedi}/components/navigation/horizontal-stepper/horizontal-stepper.component.spec.ts (97%) rename {tedi => src/tedi}/components/navigation/horizontal-stepper/horizontal-stepper.component.ts (100%) rename {tedi => src/tedi}/components/navigation/horizontal-stepper/horizontal-stepper.stories.ts (96%) rename {tedi => src/tedi}/components/navigation/horizontal-stepper/index.ts (100%) rename {tedi => src/tedi}/components/navigation/index.ts (100%) rename {tedi => src/tedi}/components/navigation/link/link.component.html (100%) rename {tedi => src/tedi}/components/navigation/link/link.component.scss (100%) rename {tedi => src/tedi}/components/navigation/link/link.component.spec.ts (99%) rename {tedi => src/tedi}/components/navigation/link/link.component.ts (100%) rename {tedi => src/tedi}/components/navigation/link/link.stories.ts (98%) rename {tedi => src/tedi}/components/navigation/pagination/index.ts (100%) rename {tedi => src/tedi}/components/navigation/pagination/pagination-option-picker-modal/pagination-option-picker-modal.component.html (73%) rename {tedi => src/tedi}/components/navigation/pagination/pagination-option-picker-modal/pagination-option-picker-modal.component.scss (100%) rename {tedi => src/tedi}/components/navigation/pagination/pagination-option-picker-modal/pagination-option-picker-modal.component.spec.ts (94%) rename {tedi => src/tedi}/components/navigation/pagination/pagination-option-picker-modal/pagination-option-picker-modal.component.ts (95%) rename {tedi => src/tedi}/components/navigation/pagination/pagination-results.directive.ts (100%) rename {tedi => src/tedi}/components/navigation/pagination/pagination.component.html (93%) rename {tedi => src/tedi}/components/navigation/pagination/pagination.component.scss (100%) rename {tedi => src/tedi}/components/navigation/pagination/pagination.component.spec.ts (94%) rename {tedi => src/tedi}/components/navigation/pagination/pagination.component.ts (92%) rename {tedi => src/tedi}/components/navigation/pagination/pagination.stories.ts (93%) rename {tedi => src/tedi}/components/navigation/pagination/pagination.types.ts (100%) rename {tedi => src/tedi}/components/navigation/pagination/pagination.utils.spec.ts (81%) rename {tedi => src/tedi}/components/navigation/pagination/pagination.utils.ts (100%) rename {tedi => src/tedi}/components/notifications/alert/alert.component.html (92%) rename {tedi => src/tedi}/components/notifications/alert/alert.component.scss (100%) rename {tedi => src/tedi}/components/notifications/alert/alert.component.spec.ts (94%) rename {tedi => src/tedi}/components/notifications/alert/alert.component.ts (100%) rename {tedi => src/tedi}/components/notifications/alert/alert.stories.ts (100%) rename {tedi => src/tedi}/components/notifications/index.ts (100%) rename {tedi => src/tedi}/components/notifications/toast/toast-container.component.spec.ts (93%) rename {tedi => src/tedi}/components/notifications/toast/toast-container.component.ts (95%) rename {tedi => src/tedi}/components/notifications/toast/toast.component.html (100%) rename {tedi => src/tedi}/components/notifications/toast/toast.component.scss (100%) rename {tedi => src/tedi}/components/notifications/toast/toast.component.spec.ts (82%) rename {tedi => src/tedi}/components/notifications/toast/toast.component.ts (100%) rename {tedi => src/tedi}/components/notifications/toast/toast.stories.ts (87%) rename {tedi => src/tedi}/components/overlay/dropdown/dropdown-content/dropdown-content.component.html (100%) rename {tedi => src/tedi}/components/overlay/dropdown/dropdown-content/dropdown-content.component.scss (100%) rename {tedi => src/tedi}/components/overlay/dropdown/dropdown-content/dropdown-content.component.ts (100%) rename {tedi => src/tedi}/components/overlay/dropdown/dropdown-item-value/dropdown-item-value-label.component.ts (100%) rename {tedi => src/tedi}/components/overlay/dropdown/dropdown-item-value/dropdown-item-value-meta.component.ts (100%) rename {tedi => src/tedi}/components/overlay/dropdown/dropdown-item-value/dropdown-item-value.component.html (91%) rename {tedi => src/tedi}/components/overlay/dropdown/dropdown-item-value/dropdown-item-value.component.scss (100%) rename {tedi => src/tedi}/components/overlay/dropdown/dropdown-item-value/dropdown-item-value.component.ts (100%) rename {tedi => src/tedi}/components/overlay/dropdown/dropdown-item-value/dropdown-item-value.stories.ts (99%) rename {tedi => src/tedi}/components/overlay/dropdown/dropdown-item-value/index.ts (100%) rename {tedi => src/tedi}/components/overlay/dropdown/dropdown-item/dropdown-item.component.html (100%) rename {tedi => src/tedi}/components/overlay/dropdown/dropdown-item/dropdown-item.component.scss (100%) rename {tedi => src/tedi}/components/overlay/dropdown/dropdown-item/dropdown-item.component.ts (100%) rename {tedi => src/tedi}/components/overlay/dropdown/dropdown-trigger/dropdown-trigger.component.scss (100%) rename {tedi => src/tedi}/components/overlay/dropdown/dropdown-trigger/dropdown-trigger.directive.ts (94%) rename {tedi => src/tedi}/components/overlay/dropdown/dropdown.component.html (100%) rename {tedi => src/tedi}/components/overlay/dropdown/dropdown.component.scss (100%) rename {tedi => src/tedi}/components/overlay/dropdown/dropdown.component.spec.ts (100%) rename {tedi => src/tedi}/components/overlay/dropdown/dropdown.component.ts (100%) rename {tedi => src/tedi}/components/overlay/dropdown/dropdown.stories.ts (100%) rename {tedi => src/tedi}/components/overlay/dropdown/dropdown.tokens.ts (100%) rename {tedi => src/tedi}/components/overlay/dropdown/index.ts (100%) rename {tedi => src/tedi}/components/overlay/index.ts (100%) rename {tedi => src/tedi}/components/overlay/modal/index.ts (100%) rename {tedi => src/tedi}/components/overlay/modal/modal-content/modal-content.component.html (100%) rename {tedi => src/tedi}/components/overlay/modal/modal-content/modal-content.component.ts (100%) rename {tedi => src/tedi}/components/overlay/modal/modal-footer/modal-footer.component.ts (100%) rename {tedi => src/tedi}/components/overlay/modal/modal-header/modal-header.component.html (100%) rename {tedi => src/tedi}/components/overlay/modal/modal-header/modal-header.component.spec.ts (100%) rename {tedi => src/tedi}/components/overlay/modal/modal-header/modal-header.component.ts (91%) rename {tedi => src/tedi}/components/overlay/modal/modal-ref.ts (100%) rename {tedi => src/tedi}/components/overlay/modal/modal.component.html (100%) rename {tedi => src/tedi}/components/overlay/modal/modal.component.scss (100%) rename {tedi => src/tedi}/components/overlay/modal/modal.component.spec.ts (100%) rename {tedi => src/tedi}/components/overlay/modal/modal.component.ts (96%) rename {tedi => src/tedi}/components/overlay/modal/modal.service.spec.ts (83%) rename {tedi => src/tedi}/components/overlay/modal/modal.service.ts (89%) rename {tedi => src/tedi}/components/overlay/modal/modal.stories.ts (86%) rename {tedi => src/tedi}/components/overlay/modal/modal.types.ts (99%) rename {tedi => src/tedi}/components/overlay/overlay-position.util.ts (100%) rename {tedi => src/tedi}/components/overlay/popover/index.ts (100%) rename {tedi => src/tedi}/components/overlay/popover/popover-content/popover-content.component.html (100%) rename {tedi => src/tedi}/components/overlay/popover/popover-content/popover-content.component.spec.ts (100%) rename {tedi => src/tedi}/components/overlay/popover/popover-content/popover-content.component.ts (100%) rename {tedi => src/tedi}/components/overlay/popover/popover-trigger/popover-trigger.directive.ts (100%) rename {tedi => src/tedi}/components/overlay/popover/popover.component.html (100%) rename {tedi => src/tedi}/components/overlay/popover/popover.component.scss (100%) rename {tedi => src/tedi}/components/overlay/popover/popover.component.spec.ts (100%) rename {tedi => src/tedi}/components/overlay/popover/popover.component.ts (98%) rename {tedi => src/tedi}/components/overlay/popover/popover.stories.ts (100%) rename {tedi => src/tedi}/components/overlay/tooltip/index.ts (100%) rename {tedi => src/tedi}/components/overlay/tooltip/tooltip-content/tooltip-content.component.spec.ts (100%) rename {tedi => src/tedi}/components/overlay/tooltip/tooltip-content/tooltip-content.component.ts (97%) rename {tedi => src/tedi}/components/overlay/tooltip/tooltip-trigger/tooltip-trigger.component.spec.ts (100%) rename {tedi => src/tedi}/components/overlay/tooltip/tooltip-trigger/tooltip-trigger.component.ts (100%) rename {tedi => src/tedi}/components/overlay/tooltip/tooltip.component.html (83%) rename {tedi => src/tedi}/components/overlay/tooltip/tooltip.component.scss (100%) rename {tedi => src/tedi}/components/overlay/tooltip/tooltip.component.spec.ts (100%) rename {tedi => src/tedi}/components/overlay/tooltip/tooltip.component.ts (97%) rename {tedi => src/tedi}/components/overlay/tooltip/tooltip.stories.ts (100%) rename {tedi => src/tedi}/components/tags/index.ts (100%) rename {tedi => src/tedi}/components/tags/status-badge/status-badge.component.html (100%) rename {tedi => src/tedi}/components/tags/status-badge/status-badge.component.scss (100%) rename {tedi => src/tedi}/components/tags/status-badge/status-badge.component.spec.ts (97%) rename {tedi => src/tedi}/components/tags/status-badge/status-badge.component.ts (100%) rename {tedi => src/tedi}/components/tags/status-badge/status-badge.stories.ts (100%) rename {tedi => src/tedi}/components/tags/status-indicator/index.ts (100%) rename {tedi => src/tedi}/components/tags/status-indicator/status-indicator.component.scss (100%) rename {tedi => src/tedi}/components/tags/status-indicator/status-indicator.component.spec.ts (100%) rename {tedi => src/tedi}/components/tags/status-indicator/status-indicator.component.ts (100%) rename {tedi => src/tedi}/components/tags/status-indicator/status-indicator.stories.ts (95%) rename {tedi => src/tedi}/components/tags/tag/tag.component.html (98%) rename {tedi => src/tedi}/components/tags/tag/tag.component.scss (100%) rename {tedi => src/tedi}/components/tags/tag/tag.component.spec.ts (86%) rename {tedi => src/tedi}/components/tags/tag/tag.component.ts (96%) rename {tedi => src/tedi}/components/tags/tag/tag.stories.ts (97%) rename {tedi => src/tedi}/directives/hide-at/hide-at.directive.spec.ts (100%) create mode 100644 src/tedi/directives/hide-at/hide-at.directive.ts rename {tedi => src/tedi}/directives/index.ts (100%) rename {tedi => src/tedi}/directives/show-at/show-at.directive.spec.ts (100%) create mode 100644 src/tedi/directives/show-at/show-at.directive.ts rename {tedi => src/tedi}/directives/vertical-spacing/index.ts (100%) rename {tedi => src/tedi}/directives/vertical-spacing/vertical-spacing-item.directive.spec.ts (100%) rename {tedi => src/tedi}/directives/vertical-spacing/vertical-spacing-item.directive.ts (100%) rename {tedi => src/tedi}/directives/vertical-spacing/vertical-spacing-item.stories.ts (100%) rename {tedi => src/tedi}/directives/vertical-spacing/vertical-spacing.directive.spec.ts (100%) rename {tedi => src/tedi}/directives/vertical-spacing/vertical-spacing.directive.ts (100%) rename {tedi => src/tedi}/directives/vertical-spacing/vertical-spacing.stories.ts (100%) rename {tedi => src/tedi}/helpers/generate-uuid.ts (100%) rename {tedi => src/tedi}/helpers/index.ts (100%) rename {tedi => src/tedi}/index.ts (100%) create mode 100644 src/tedi/ng-package.json rename {tedi => src/tedi}/providers/index.ts (100%) rename {tedi => src/tedi}/providers/tedi.provider.ts (78%) rename {tedi => src/tedi}/services/breakpoint/breakpoint.service.spec.ts (100%) rename {tedi => src/tedi}/services/breakpoint/breakpoint.service.ts (100%) rename {tedi => src/tedi}/services/index.ts (100%) rename {tedi => src/tedi}/services/sidenav/sidenav.service.spec.ts (85%) rename {tedi => src/tedi}/services/sidenav/sidenav.service.ts (86%) rename {tedi => src/tedi}/services/theme/theme.service.ts (92%) rename {tedi => src/tedi}/services/toast/toast-announcer.service.spec.ts (95%) rename {tedi => src/tedi}/services/toast/toast-announcer.service.ts (88%) rename {tedi => src/tedi}/services/toast/toast.service.spec.ts (99%) rename {tedi => src/tedi}/services/toast/toast.service.ts (88%) create mode 100644 src/tedi/services/translation/translation.pipe.ts rename {tedi => src/tedi}/services/translation/translation.service.ts (100%) rename {tedi => src/tedi}/services/translation/translations.ts (96%) rename {tedi => src/tedi}/tokens/index.ts (100%) rename {tedi => src/tedi}/tokens/theme.token.ts (100%) rename {tedi => src/tedi}/tokens/translation.token.ts (100%) create mode 100644 src/tedi/types/index.ts rename {tedi => src/tedi}/types/inputs.type.ts (63%) rename {tedi => src/tedi}/utils/cookies.util.ts (100%) rename {tedi => src/tedi}/utils/date.util.spec.ts (100%) rename {tedi => src/tedi}/utils/date.util.ts (100%) rename {tedi => src/tedi}/utils/elements.util.ts (100%) rename {tedi => src/tedi}/utils/time.util.spec.ts (91%) rename {tedi => src/tedi}/utils/time.util.ts (92%) delete mode 100644 tedi/components/base/icon/icon.component.html delete mode 100644 tedi/components/base/text/text.component.html delete mode 100644 tedi/components/content/list/list.component.html delete mode 100644 tedi/components/form/checkbox-group/checkbox-group.component.html delete mode 100644 tedi/components/helpers/grid/col/col.component.html delete mode 100644 tedi/components/helpers/grid/row/row.component.html delete mode 100644 tedi/components/helpers/scroll-fade/index.ts delete mode 100644 tedi/components/layout/header/header-content/header-content.component.ts delete mode 100644 tedi/components/layout/header/header-login/header-login.component.html delete mode 100644 tedi/components/layout/header/header-login/header-login.component.spec.ts delete mode 100644 tedi/components/layout/header/header-logout/header-logout.component.html delete mode 100644 tedi/components/layout/header/header-logout/header-logout.component.spec.ts delete mode 100644 tedi/components/loader/index.ts delete mode 100644 tedi/directives/hide-at/hide-at.directive.ts delete mode 100644 tedi/directives/show-at/show-at.directive.ts delete mode 100644 tedi/ng-package.json delete mode 100644 tedi/services/translation/translation.pipe.ts delete mode 100644 tedi/types/index.ts diff --git a/.claude/skills/contributing/references/best-practices.md b/.claude/skills/contributing/references/best-practices.md index dbf74bd95..a761035bc 100644 --- a/.claude/skills/contributing/references/best-practices.md +++ b/.claude/skills/contributing/references/best-practices.md @@ -77,7 +77,7 @@ Two patterns exist for this — pick by need: ### Pattern A: Per-input `BreakpointInput` (preferred when one or two inputs need to be responsive) -Use this when a single input (e.g., a flag, count, or variant) should vary by breakpoint without restating sibling inputs. Reference: `tedi/components/content/carousel/carousel-content/carousel-content.component.ts:46-55`, `tedi/components/form/time-field/time-field.component.ts` (`useNativePicker`). +Use this when a single input (e.g., a flag, count, or variant) should vary by breakpoint without restating sibling inputs. Reference: `src/tedi/components/content/carousel/carousel-content/carousel-content.component.ts:46-55`, `src/tedi/components/form/time-field/time-field.component.ts` (`useNativePicker`). ```typescript import { @@ -118,7 +118,7 @@ Notes: ### Pattern B: Per-component breakpoint inputs (preferred when many inputs need to be responsive together) -Use this when several inputs commonly change together at a given breakpoint and consumers benefit from grouping them. Reference: `tedi/components/navigation/link/link.component.ts:55-105`. +Use this when several inputs commonly change together at a given breakpoint and consumers benefit from grouping them. Reference: `src/tedi/components/navigation/link/link.component.ts:55-105`. ```typescript export type LinkInputs = { @@ -429,27 +429,27 @@ export { ComponentNameType } from './component-name.types'; // if applicable ``` ### Register in Category `index.ts` -Add the new component export to the parent category barrel file (e.g., `tedi/components/form/index.ts`). +Add the new component export to the parent category barrel file (e.g., `src/tedi/components/form/index.ts`). ## Key File Locations ### Services -- Translation: `tedi/services/translation/translation.service.ts` (root-provided) -- Theme: `tedi/services/theme/theme.service.ts` (root-provided) -- Toast: `tedi/services/toast/toast.service.ts` (root-provided, has static state) -- Breakpoint: `tedi/services/breakpoint/breakpoint.service.ts` +- Translation: `src/tedi/services/translation/translation.service.ts` (root-provided) +- Theme: `src/tedi/services/theme/theme.service.ts` (root-provided) +- Toast: `src/tedi/services/toast/toast.service.ts` (root-provided, has static state) +- Breakpoint: `src/tedi/services/breakpoint/breakpoint.service.ts` ### Configuration -- App-level provider: `tedi/providers/tedi.provider.ts` → `provideTedi(config)` -- Translation token: `tedi/tokens/translation.token.ts` -- Theme token: `tedi/tokens/theme.token.ts` -- Translations map: `tedi/services/translation/translations.ts` (et, en, ru) +- App-level provider: `src/tedi/providers/tedi.provider.ts` → `provideTedi(config)` +- Translation token: `src/tedi/tokens/translation.token.ts` +- Theme token: `src/tedi/tokens/theme.token.ts` +- Translations map: `src/tedi/services/translation/translations.ts` (et, en, ru) ### Utilities -- Date formatting: `tedi/utils/date.util.ts` -- Cookie signal: `tedi/utils/cookies.util.ts` -- DOM helpers: `tedi/utils/elements.util.ts` -- UUID generation: `tedi/helpers/generate-uuid.ts` +- Date formatting: `src/tedi/utils/date.util.ts` +- Cookie signal: `src/tedi/utils/cookies.util.ts` +- DOM helpers: `src/tedi/utils/elements.util.ts` +- UUID generation: `src/tedi/helpers/generate-uuid.ts` ## Known Quirks - `toggle.component.ts` still uses old `@ViewChild` decorator — should be migrated to `viewChild()` signal diff --git a/.claude/skills/contributing/references/new-component.md b/.claude/skills/contributing/references/new-component.md index 9af1ba95f..f620115df 100644 --- a/.claude/skills/contributing/references/new-component.md +++ b/.claude/skills/contributing/references/new-component.md @@ -17,7 +17,7 @@ If no Figma link was provided, stop immediately and ask the user for one. Do not Enter plan mode and create a detailed plan covering: - **Component name** and selector (`tedi-` prefix) -- **Category** — which folder under `tedi/components/` it belongs to +- **Category** — which folder under `src/tedi/components/` it belongs to - **API design** — all inputs (with types and defaults), outputs, content projection slots - **Responsive inputs** — for each input, check if the React equivalent uses `BreakpointSupport` or `BreakpointInput`. If yes, plan the Angular equivalent (see "Responsive Inputs (Breakpoint Support)" in best-practices.md for pattern A vs B). Even without a React reference, ask: would consumers reasonably need to vary this input per breakpoint? If so, add breakpoint support up front — retrofitting later is a breaking change. - **Accessibility** — ARIA roles, keyboard interactions, screen reader behavior, focus management @@ -30,7 +30,7 @@ If a new dependency is needed, stop and ask the user for permission. ## Step 3: Scaffold Files -Create the following files in `tedi/components///`: +Create the following files in `src/tedi/components///`: ```text component-name.component.ts @@ -53,7 +53,7 @@ Follow all patterns from best-practices: ## Step 5: Export 1. Create barrel export in `index.ts` -2. Add export to the parent category `index.ts` (e.g., `tedi/components/form/index.ts`) +2. Add export to the parent category `index.ts` (e.g., `src/tedi/components/form/index.ts`) ## Step 6: Code Review @@ -63,7 +63,7 @@ A finding is **valid** when it is confirmed against the current code (not stale ## Step 7: Verify -1. Run tests: `npx jest tedi/components///` +1. Run tests: `npx jest src/tedi/components///` 2. Fix any failures. 3. Run lint: `npm run lint` 4. Fix any lint errors. diff --git a/.claude/skills/contributing/references/stories.md b/.claude/skills/contributing/references/stories.md index abb975626..65030ce1b 100644 --- a/.claude/skills/contributing/references/stories.md +++ b/.claude/skills/contributing/references/stories.md @@ -90,14 +90,14 @@ Rules: ### 3. Determine the Story Category -Find where the component lives under `tedi/components/` and map to the Storybook title: +Find where the component lives under `src/tedi/components/` and map to the Storybook title: | Component path | Story title prefix | |---|---| -| `tedi/components/form/` | `TEDI-Ready/Components/Form/` | -| `tedi/components/buttons/` | `TEDI-Ready/Components/Buttons/` | -| `tedi/components/overlay/` | `TEDI-Ready/Components/Overlay/` | -| `tedi/components/navigation/` | `TEDI-Ready/Components/Navigation/` | +| `src/tedi/components/form/` | `TEDI-Ready/Components/Form/` | +| `src/tedi/components/buttons/` | `TEDI-Ready/Components/Buttons/` | +| `src/tedi/components/overlay/` | `TEDI-Ready/Components/Overlay/` | +| `src/tedi/components/navigation/` | `TEDI-Ready/Components/Navigation/` | | Other category | `TEDI-Ready/Components//` | ### 4. Create the Stories File @@ -145,17 +145,73 @@ If the component also has a Zeroheight page, add it on the next line with `
` Applies equally to new components and retrofits — if an existing story lacks the link, add it. -### 5. Story Checklist +### 5. Make the `Default` Story's Controls Functional + +**The `Default` story's controls must actually drive the rendered component — always, including when the component is nested or composed of sub-components.** Changing a control in the panel must visibly change the rendered output. A `Default` story whose template ignores `args` (so the controls do nothing) is wrong, even if it looks correct at a glance. + +**Bind args directly as template props in `render` — never build a host-wrapper component.** Storybook passes args into the `props` object and re-renders on every control change; template expressions reference the arg names directly. + +```typescript +export const Default: StoryObj = { + args: { variant: 'primary', size: 'medium', disabled: false }, + render: (args) => ({ + props: { ...args }, + template: ``, + }), +}; +``` + +Prefer `argsToTemplate(args)` to forward every arg as a binding without restating each one — this keeps the story functional as inputs are added: + +```typescript +import { argsToTemplate } from '@storybook/angular'; + +render: (args) => ({ + props: { ...args }, + template: ``, +}), +``` + +**Nested / composed components.** The args belong to the **outer component under test** (`component:` in the default export). Bind them to that component's element and let it pass them down to its sub-components internally — do **not** redirect the controls to a child. + +- If the rendered example wraps the component or projects content, still bind the args to the component being documented, and bind any arg-dependent projected content too: + + ```typescript + // Component under test is , which composes header/body sub-components. + render: (args) => ({ + props: { ...args }, + template: ` + + +

{{ label }}

+
+
+ `, + }), + ``` + +- For two-way / local state (e.g. selection, open/close), keep a local `signal` in `props` and bind it via `[value]`/`(valueChange)` — leave the rest of the args spread in: + + ```typescript + render: (args) => ({ + props: { ...args, value: signal('2') }, + template: ``, + }), + ``` + +**Showcase stories are the exception.** Stories that render several fixed configurations at once (all variants/sizes/states) should **disable** the panel rather than fake controls: `parameters: { controls: { disable: true } }`. Only the `Default` (single-instance) story must have working controls. + +### 6. Story Checklist - [ ] Every Figma section has a corresponding story export, in the same order - [ ] Example content (labels, data, item count) matches Figma exactly - [ ] Every public input/model has a corresponding `argTypes` entry with description, control, type summary, and default value -- [ ] `Default` story has all controls wired up via `args` +- [ ] `Default` story has all controls wired up via `args` and they **functionally drive the rendered component** — verified by changing a control and seeing the output update, including for nested/composed components (see section 5) - [ ] States story covers all visual states shown in Figma (default, hover, active, focus, disabled) - [ ] Reactive forms example included if the component implements ControlValueAccessor - [ ] Figma link is in the JSDoc comment above `export default` (format: `Figma ↗`) -### 6. argTypes Convention +### 7. argTypes Convention **Every public input/model must have an argTypes entry.** Do not skip any — all props must appear in the Storybook controls panel with correct typing and descriptions. @@ -182,7 +238,7 @@ argTypes: { } ``` -### 7. Verify +### 8. Verify Run Storybook to visually confirm stories render correctly: ```bash @@ -193,5 +249,5 @@ Check that: - All stories appear in the correct category - Story order matches Figma section order - Example content matches Figma -- Controls work interactively +- Controls work interactively — change a control in the `Default` story and confirm the rendered component updates (including nested/composed components) - No console errors diff --git a/.storybook/main.ts b/.storybook/main.ts index 203d007ca..acf08bf1f 100644 --- a/.storybook/main.ts +++ b/.storybook/main.ts @@ -10,9 +10,9 @@ const config: StorybookConfig = { "../src/docs/css-utilities.mdx", "../src/docs/colors/colors.mdx", "../src/docs/**/*.stories.@(js|jsx|mjs|ts|tsx)", - "../tedi/**/*.stories.@(js|jsx|mjs|ts|tsx)", - "../tedi/**/*.mdx", - "../community/**/*.stories.@(js|jsx|mjs|ts|tsx)", + "../src/tedi/**/*.stories.@(js|jsx|mjs|ts|tsx)", + "../src/tedi/**/*.mdx", + "../src/community/**/*.stories.@(js|jsx|mjs|ts|tsx)", ], addons: [ "@storybook/addon-docs", diff --git a/.storybook/preview.tsx b/.storybook/preview.tsx index 626e722cf..76e6e873d 100644 --- a/.storybook/preview.tsx +++ b/.storybook/preview.tsx @@ -1,6 +1,6 @@ import { applicationConfig, Preview, StoryContext } from "@storybook/angular"; import { provideRouter, withDisabledInitialNavigation } from "@angular/router"; -import { Theme } from "../tedi/services/theme/theme.service"; +import { Theme } from "../src/tedi/services/theme/theme.service"; import { Controls, Description, @@ -9,7 +9,7 @@ import { Subtitle, Title, } from "@storybook/addon-docs/blocks"; -import { TEDI_TRANSLATION_DEFAULT_TOKEN } from "../tedi/tokens/translation.token"; +import { TEDI_TRANSLATION_DEFAULT_TOKEN } from "../src/tedi/tokens/translation.token"; export const globalTypes = { theme: { diff --git a/CLAUDE.md b/CLAUDE.md index bff4905b6..bb518c19b 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -21,13 +21,15 @@ npm run build # Build library to dist/ ### Directory Layout -- `tedi/components/` — All UI components, organized by category (form, buttons, overlay, etc.) -- `tedi/directives/` — Attribute/structural directives -- `tedi/services/` — Services (translation, theme, breakpoint, toast) -- `tedi/utils/` — Utility functions (date, cookies, elements) -- `tedi/tokens/` — Injection tokens (theme, translation) -- `tedi/providers/` — Angular providers -- `community/` — Community-contributed components (separate entry point, NOT a reference for TEDI patterns) +- `src/tedi/components/` — All UI components, organized by category (form, buttons, overlay, etc.) +- `src/tedi/directives/` — Attribute/structural directives +- `src/tedi/services/` — Services (translation, theme, breakpoint, toast) +- `src/tedi/utils/` — Utility functions (date, cookies, elements) +- `src/tedi/tokens/` — Injection tokens (theme, translation) +- `src/tedi/providers/` — Angular providers +- `src/community/` — Community-contributed components (separate entry point, NOT a reference for TEDI patterns) + +> The library lives under `src/` (`src/tedi`, `src/community`), with `src/package.json` + `src/ng-package.json` as the ng-packagr primary entry point. The root `package.json` is the workspace/tooling manifest. This mirrors the React repo's `src/` layout — see issue #166. ### Component File Convention @@ -54,11 +56,11 @@ Form controls implement `ControlValueAccessor` with `NG_VALUE_ACCESSOR` provider ### Export Chain -`public-api.ts` → `tedi/index.ts` → category `index.ts` → component `index.ts` +`src/public-api.ts` → `src/tedi/index.ts` → category `index.ts` → component `index.ts` Path aliases: -- `@tedi-design-system/angular/tedi` → `./tedi/index.ts` -- `@tedi-design-system/angular/community` → `./community/index.ts` +- `@tedi-design-system/angular/tedi` → `./src/tedi/index.ts` +- `@tedi-design-system/angular/community` → `./src/community/index.ts` ## Styling @@ -79,7 +81,7 @@ Path aliases: ## Storybook -- Stories at `tedi/**/*.stories.ts` +- Stories at `src/tedi/**/*.stories.ts` - Title format: `"TEDI-Ready/Components/Category/ComponentName"` - Uses `moduleMetadata` decorator for imports - Status parameters: `partiallyTediReady`, `existsInTediReady`, `devComponent`, etc. @@ -117,7 +119,7 @@ Path aliases: - Use regular methods for event handlers that need cleanup — use `handleX = (e: Event) => {}` property syntax - Forget to provide `TediTranslationService` mock and `TEDI_TRANSLATION_DEFAULT_TOKEN` in tests - Use `fakeAsync`/`tick` without cleaning up in `afterEach` -- Use `community/` components as reference for coding patterns or style — they are community-contributed and not always reviewed +- Use `src/community/` components as reference for coding patterns or style — they are community-contributed and not always reviewed - Forget to add `.parent__button:hover .tedi-icon { color: inherit; }` (and similar for selected/active states) in components that contain icons and change text color on state — without this, the icon's color modifier class wins over the parent's color. Use `color="inherit"` for component-owned icons; for projected icons, the CSS override ensures the consumer's color applies in default state but inherits on hover/selected - Style Angular element selectors directly (e.g., `tedi-modal-header { ... }`) — add a CSS class to the host and style the class instead. Exception: third-party elements you can't add classes to (e.g., `cdk-dialog-container`) diff --git a/angular.json b/angular.json index 2a0d8f265..dd628104e 100644 --- a/angular.json +++ b/angular.json @@ -11,7 +11,7 @@ "build": { "builder": "@angular/build:ng-packagr", "options": { - "project": "ng-package.json", + "project": "src/ng-package.json", "tsConfig": "tsconfig.json" }, "configurations": { @@ -63,10 +63,10 @@ "lintFilePatterns": [ "./src/docs/**/*.ts", "./src/docs/**/*.html", - "./tedi/**/*.ts", - "./tedi/**/*.html", - "./community/**/*.ts", - "./community/**/*.html" + "./src/tedi/**/*.ts", + "./src/tedi/**/*.html", + "./src/community/**/*.ts", + "./src/community/**/*.html" ] } } diff --git a/community/ng-package.json b/community/ng-package.json deleted file mode 100644 index cff8cfa13..000000000 --- a/community/ng-package.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "$schema": "../node_modules/ng-packagr/ng-package.schema.json", - "lib": { - "entryFile": "index.ts" - } -} diff --git a/jest.config.ts b/jest.config.ts index 2eea1ad7b..52c7139d6 100644 --- a/jest.config.ts +++ b/jest.config.ts @@ -17,7 +17,7 @@ export default { // in jest 29 workers on recent Node versions workerIdleMemoryLimit: "1GB", collectCoverage: true, - collectCoverageFrom: ["./tedi/components/**/*.{js,ts,tsx}"], + collectCoverageFrom: ["./src/tedi/components/**/*.{js,ts,tsx}"], coveragePathIgnorePatterns: ["\\.stories\\.ts$"], coverageThreshold: { global: { diff --git a/package.json b/package.json index 5ac634271..d40397fdc 100644 --- a/package.json +++ b/package.json @@ -15,7 +15,7 @@ "build": "ng build angular-components --configuration production && sass --load-path=node_modules src/styles/index.scss dist/index.css --style=compressed --no-source-map && replace-in-file //fonts//g \"./fonts/\" dist/index.css --isRegex && mkdir -p dist/fonts && cp -a node_modules/@tedi-design-system/core/fonts/* dist/fonts/", "build:sb": "ng run angular-components:build-storybook && replace-in-file //fonts//g \"./fonts/\" \"dist/storybook-static/*.css\" --isRegex", "build:sb:chromatic": "ng run angular-components:build-storybook", - "lint": "stylelint \"tedi/**/*.scss\" --fix && ng lint angular-components --fix", + "lint": "stylelint \"src/tedi/**/*.scss\" --fix && ng lint angular-components --fix", "test": "jest --passWithNoTests", "test:watch": "jest --watch", "test:coverage": "jest --config ./jest.config.ts --coverage", @@ -117,7 +117,7 @@ } }, "lint-staged": { - "{src,tedi}/**/*.{css,scss}": [ + "src/**/*.{css,scss}": [ "stylelint --fix" ], "src/**/*.{ts,html}": [ diff --git a/community/components/buttons/floating-button/floating-button.component.scss b/src/community/components/buttons/floating-button/floating-button.component.scss similarity index 100% rename from community/components/buttons/floating-button/floating-button.component.scss rename to src/community/components/buttons/floating-button/floating-button.component.scss diff --git a/community/components/buttons/floating-button/floating-button.component.ts b/src/community/components/buttons/floating-button/floating-button.component.ts similarity index 100% rename from community/components/buttons/floating-button/floating-button.component.ts rename to src/community/components/buttons/floating-button/floating-button.component.ts diff --git a/community/components/buttons/floating-button/floating-button.stories.ts b/src/community/components/buttons/floating-button/floating-button.stories.ts similarity index 98% rename from community/components/buttons/floating-button/floating-button.stories.ts rename to src/community/components/buttons/floating-button/floating-button.stories.ts index 64b089780..a9a45faee 100644 --- a/community/components/buttons/floating-button/floating-button.stories.ts +++ b/src/community/components/buttons/floating-button/floating-button.stories.ts @@ -5,7 +5,7 @@ import { StoryObj, } from "@storybook/angular"; import { FloatingButtonComponent } from "./floating-button.component"; -import { IconComponent } from "tedi/components"; +import { IconComponent } from "src/tedi/components"; const buttonSizeArray = ["default", "large"]; const buttonStateArray = ["Default", "Hover", "Active", "Focus"]; diff --git a/community/components/buttons/floating-button/index.ts b/src/community/components/buttons/floating-button/index.ts similarity index 100% rename from community/components/buttons/floating-button/index.ts rename to src/community/components/buttons/floating-button/index.ts diff --git a/community/components/buttons/index.ts b/src/community/components/buttons/index.ts similarity index 100% rename from community/components/buttons/index.ts rename to src/community/components/buttons/index.ts diff --git a/community/components/cards/accordion/accordion-icon/accordion-icon.component.html b/src/community/components/cards/accordion/accordion-icon/accordion-icon.component.html similarity index 100% rename from community/components/cards/accordion/accordion-icon/accordion-icon.component.html rename to src/community/components/cards/accordion/accordion-icon/accordion-icon.component.html diff --git a/community/components/cards/accordion/accordion-icon/accordion-icon.component.scss b/src/community/components/cards/accordion/accordion-icon/accordion-icon.component.scss similarity index 100% rename from community/components/cards/accordion/accordion-icon/accordion-icon.component.scss rename to src/community/components/cards/accordion/accordion-icon/accordion-icon.component.scss diff --git a/community/components/cards/accordion/accordion-icon/accordion-icon.component.ts b/src/community/components/cards/accordion/accordion-icon/accordion-icon.component.ts similarity index 100% rename from community/components/cards/accordion/accordion-icon/accordion-icon.component.ts rename to src/community/components/cards/accordion/accordion-icon/accordion-icon.component.ts diff --git a/community/components/cards/accordion/accordion-item-content/accordion-item-content.component.html b/src/community/components/cards/accordion/accordion-item-content/accordion-item-content.component.html similarity index 100% rename from community/components/cards/accordion/accordion-item-content/accordion-item-content.component.html rename to src/community/components/cards/accordion/accordion-item-content/accordion-item-content.component.html diff --git a/community/components/cards/accordion/accordion-item-content/accordion-item-content.component.scss b/src/community/components/cards/accordion/accordion-item-content/accordion-item-content.component.scss similarity index 100% rename from community/components/cards/accordion/accordion-item-content/accordion-item-content.component.scss rename to src/community/components/cards/accordion/accordion-item-content/accordion-item-content.component.scss diff --git a/community/components/cards/accordion/accordion-item-content/accordion-item-content.component.ts b/src/community/components/cards/accordion/accordion-item-content/accordion-item-content.component.ts similarity index 100% rename from community/components/cards/accordion/accordion-item-content/accordion-item-content.component.ts rename to src/community/components/cards/accordion/accordion-item-content/accordion-item-content.component.ts diff --git a/community/components/cards/accordion/accordion-item-header/accordion-item-header.component.html b/src/community/components/cards/accordion/accordion-item-header/accordion-item-header.component.html similarity index 100% rename from community/components/cards/accordion/accordion-item-header/accordion-item-header.component.html rename to src/community/components/cards/accordion/accordion-item-header/accordion-item-header.component.html diff --git a/community/components/cards/accordion/accordion-item-header/accordion-item-header.component.scss b/src/community/components/cards/accordion/accordion-item-header/accordion-item-header.component.scss similarity index 100% rename from community/components/cards/accordion/accordion-item-header/accordion-item-header.component.scss rename to src/community/components/cards/accordion/accordion-item-header/accordion-item-header.component.scss diff --git a/community/components/cards/accordion/accordion-item-header/accordion-item-header.component.ts b/src/community/components/cards/accordion/accordion-item-header/accordion-item-header.component.ts similarity index 100% rename from community/components/cards/accordion/accordion-item-header/accordion-item-header.component.ts rename to src/community/components/cards/accordion/accordion-item-header/accordion-item-header.component.ts diff --git a/community/components/cards/accordion/accordion-item/accordion-item.component.html b/src/community/components/cards/accordion/accordion-item/accordion-item.component.html similarity index 100% rename from community/components/cards/accordion/accordion-item/accordion-item.component.html rename to src/community/components/cards/accordion/accordion-item/accordion-item.component.html diff --git a/community/components/cards/accordion/accordion-item/accordion-item.component.scss b/src/community/components/cards/accordion/accordion-item/accordion-item.component.scss similarity index 100% rename from community/components/cards/accordion/accordion-item/accordion-item.component.scss rename to src/community/components/cards/accordion/accordion-item/accordion-item.component.scss diff --git a/community/components/cards/accordion/accordion-item/accordion-item.component.ts b/src/community/components/cards/accordion/accordion-item/accordion-item.component.ts similarity index 100% rename from community/components/cards/accordion/accordion-item/accordion-item.component.ts rename to src/community/components/cards/accordion/accordion-item/accordion-item.component.ts diff --git a/community/components/cards/accordion/accordion.stories.ts b/src/community/components/cards/accordion/accordion.stories.ts similarity index 100% rename from community/components/cards/accordion/accordion.stories.ts rename to src/community/components/cards/accordion/accordion.stories.ts diff --git a/community/components/cards/accordion/accordion/accordion.component.html b/src/community/components/cards/accordion/accordion/accordion.component.html similarity index 100% rename from community/components/cards/accordion/accordion/accordion.component.html rename to src/community/components/cards/accordion/accordion/accordion.component.html diff --git a/community/components/cards/accordion/accordion/accordion.component.scss b/src/community/components/cards/accordion/accordion/accordion.component.scss similarity index 100% rename from community/components/cards/accordion/accordion/accordion.component.scss rename to src/community/components/cards/accordion/accordion/accordion.component.scss diff --git a/community/components/cards/accordion/accordion/accordion.component.ts b/src/community/components/cards/accordion/accordion/accordion.component.ts similarity index 100% rename from community/components/cards/accordion/accordion/accordion.component.ts rename to src/community/components/cards/accordion/accordion/accordion.component.ts diff --git a/community/components/cards/accordion/index.ts b/src/community/components/cards/accordion/index.ts similarity index 100% rename from community/components/cards/accordion/index.ts rename to src/community/components/cards/accordion/index.ts diff --git a/community/components/cards/card/_card-mixins.scss b/src/community/components/cards/card/_card-mixins.scss similarity index 100% rename from community/components/cards/card/_card-mixins.scss rename to src/community/components/cards/card/_card-mixins.scss diff --git a/community/components/cards/card/card-colors.directive.ts b/src/community/components/cards/card/card-colors.directive.ts similarity index 100% rename from community/components/cards/card/card-colors.directive.ts rename to src/community/components/cards/card/card-colors.directive.ts diff --git a/community/components/cards/card/card-content/card-content.component.html b/src/community/components/cards/card/card-content/card-content.component.html similarity index 100% rename from community/components/cards/card/card-content/card-content.component.html rename to src/community/components/cards/card/card-content/card-content.component.html diff --git a/community/components/cards/card/card-content/card-content.component.scss b/src/community/components/cards/card/card-content/card-content.component.scss similarity index 100% rename from community/components/cards/card/card-content/card-content.component.scss rename to src/community/components/cards/card/card-content/card-content.component.scss diff --git a/community/components/cards/card/card-content/card-content.component.ts b/src/community/components/cards/card/card-content/card-content.component.ts similarity index 100% rename from community/components/cards/card/card-content/card-content.component.ts rename to src/community/components/cards/card/card-content/card-content.component.ts diff --git a/community/components/cards/card/card-header/card-header.component.html b/src/community/components/cards/card/card-header/card-header.component.html similarity index 100% rename from community/components/cards/card/card-header/card-header.component.html rename to src/community/components/cards/card/card-header/card-header.component.html diff --git a/community/components/cards/card/card-header/card-header.component.scss b/src/community/components/cards/card/card-header/card-header.component.scss similarity index 100% rename from community/components/cards/card/card-header/card-header.component.scss rename to src/community/components/cards/card/card-header/card-header.component.scss diff --git a/community/components/cards/card/card-header/card-header.component.ts b/src/community/components/cards/card/card-header/card-header.component.ts similarity index 100% rename from community/components/cards/card/card-header/card-header.component.ts rename to src/community/components/cards/card/card-header/card-header.component.ts diff --git a/community/components/cards/card/card-padding.directive.ts b/src/community/components/cards/card/card-padding.directive.ts similarity index 100% rename from community/components/cards/card/card-padding.directive.ts rename to src/community/components/cards/card/card-padding.directive.ts diff --git a/community/components/cards/card/card-row/card-row.component.html b/src/community/components/cards/card/card-row/card-row.component.html similarity index 100% rename from community/components/cards/card/card-row/card-row.component.html rename to src/community/components/cards/card/card-row/card-row.component.html diff --git a/community/components/cards/card/card-row/card-row.component.scss b/src/community/components/cards/card/card-row/card-row.component.scss similarity index 100% rename from community/components/cards/card/card-row/card-row.component.scss rename to src/community/components/cards/card/card-row/card-row.component.scss diff --git a/community/components/cards/card/card-row/card-row.component.ts b/src/community/components/cards/card/card-row/card-row.component.ts similarity index 100% rename from community/components/cards/card/card-row/card-row.component.ts rename to src/community/components/cards/card/card-row/card-row.component.ts diff --git a/community/components/cards/card/card.component.html b/src/community/components/cards/card/card.component.html similarity index 100% rename from community/components/cards/card/card.component.html rename to src/community/components/cards/card/card.component.html diff --git a/community/components/cards/card/card.component.scss b/src/community/components/cards/card/card.component.scss similarity index 100% rename from community/components/cards/card/card.component.scss rename to src/community/components/cards/card/card.component.scss diff --git a/community/components/cards/card/card.component.ts b/src/community/components/cards/card/card.component.ts similarity index 100% rename from community/components/cards/card/card.component.ts rename to src/community/components/cards/card/card.component.ts diff --git a/community/components/cards/card/index.ts b/src/community/components/cards/card/index.ts similarity index 100% rename from community/components/cards/card/index.ts rename to src/community/components/cards/card/index.ts diff --git a/community/components/cards/card/stories/card-story-templates.ts b/src/community/components/cards/card/stories/card-story-templates.ts similarity index 100% rename from community/components/cards/card/stories/card-story-templates.ts rename to src/community/components/cards/card/stories/card-story-templates.ts diff --git a/community/components/cards/card/stories/card.stories.ts b/src/community/components/cards/card/stories/card.stories.ts similarity index 100% rename from community/components/cards/card/stories/card.stories.ts rename to src/community/components/cards/card/stories/card.stories.ts diff --git a/community/components/cards/index.ts b/src/community/components/cards/index.ts similarity index 100% rename from community/components/cards/index.ts rename to src/community/components/cards/index.ts diff --git a/community/components/form/checkbox/checkbox-card-group/checkbox-card-group.component.ts b/src/community/components/form/checkbox/checkbox-card-group/checkbox-card-group.component.ts similarity index 100% rename from community/components/form/checkbox/checkbox-card-group/checkbox-card-group.component.ts rename to src/community/components/form/checkbox/checkbox-card-group/checkbox-card-group.component.ts diff --git a/community/components/form/checkbox/checkbox-group/checkbox-group.component.html b/src/community/components/form/checkbox/checkbox-group/checkbox-group.component.html similarity index 100% rename from community/components/form/checkbox/checkbox-group/checkbox-group.component.html rename to src/community/components/form/checkbox/checkbox-group/checkbox-group.component.html diff --git a/community/components/form/checkbox/checkbox-group/checkbox-group.component.scss b/src/community/components/form/checkbox/checkbox-group/checkbox-group.component.scss similarity index 100% rename from community/components/form/checkbox/checkbox-group/checkbox-group.component.scss rename to src/community/components/form/checkbox/checkbox-group/checkbox-group.component.scss diff --git a/community/components/form/checkbox/checkbox-group/checkbox-group.component.ts b/src/community/components/form/checkbox/checkbox-group/checkbox-group.component.ts similarity index 100% rename from community/components/form/checkbox/checkbox-group/checkbox-group.component.ts rename to src/community/components/form/checkbox/checkbox-group/checkbox-group.component.ts diff --git a/community/components/form/checkbox/checkbox.stories.ts b/src/community/components/form/checkbox/checkbox.stories.ts similarity index 100% rename from community/components/form/checkbox/checkbox.stories.ts rename to src/community/components/form/checkbox/checkbox.stories.ts diff --git a/community/components/form/checkbox/checkbox/checkbox.component.html b/src/community/components/form/checkbox/checkbox/checkbox.component.html similarity index 100% rename from community/components/form/checkbox/checkbox/checkbox.component.html rename to src/community/components/form/checkbox/checkbox/checkbox.component.html diff --git a/community/components/form/checkbox/checkbox/checkbox.component.scss b/src/community/components/form/checkbox/checkbox/checkbox.component.scss similarity index 100% rename from community/components/form/checkbox/checkbox/checkbox.component.scss rename to src/community/components/form/checkbox/checkbox/checkbox.component.scss diff --git a/community/components/form/checkbox/checkbox/checkbox.component.ts b/src/community/components/form/checkbox/checkbox/checkbox.component.ts similarity index 100% rename from community/components/form/checkbox/checkbox/checkbox.component.ts rename to src/community/components/form/checkbox/checkbox/checkbox.component.ts diff --git a/community/components/form/checkbox/index.ts b/src/community/components/form/checkbox/index.ts similarity index 100% rename from community/components/form/checkbox/index.ts rename to src/community/components/form/checkbox/index.ts diff --git a/community/components/form/choicegroup/_choicegroup-card-mixins.scss b/src/community/components/form/choicegroup/_choicegroup-card-mixins.scss similarity index 100% rename from community/components/form/choicegroup/_choicegroup-card-mixins.scss rename to src/community/components/form/choicegroup/_choicegroup-card-mixins.scss diff --git a/community/components/form/choicegroup/choicegroup.directive.ts b/src/community/components/form/choicegroup/choicegroup.directive.ts similarity index 100% rename from community/components/form/choicegroup/choicegroup.directive.ts rename to src/community/components/form/choicegroup/choicegroup.directive.ts diff --git a/community/components/form/choicegroup/choicegroup.styles.scss b/src/community/components/form/choicegroup/choicegroup.styles.scss similarity index 100% rename from community/components/form/choicegroup/choicegroup.styles.scss rename to src/community/components/form/choicegroup/choicegroup.styles.scss diff --git a/community/components/form/file-dropzone/constants.ts b/src/community/components/form/file-dropzone/constants.ts similarity index 100% rename from community/components/form/file-dropzone/constants.ts rename to src/community/components/form/file-dropzone/constants.ts diff --git a/community/components/form/file-dropzone/file-dropzone.component.html b/src/community/components/form/file-dropzone/file-dropzone.component.html similarity index 100% rename from community/components/form/file-dropzone/file-dropzone.component.html rename to src/community/components/form/file-dropzone/file-dropzone.component.html diff --git a/community/components/form/file-dropzone/file-dropzone.component.scss b/src/community/components/form/file-dropzone/file-dropzone.component.scss similarity index 100% rename from community/components/form/file-dropzone/file-dropzone.component.scss rename to src/community/components/form/file-dropzone/file-dropzone.component.scss diff --git a/community/components/form/file-dropzone/file-dropzone.component.ts b/src/community/components/form/file-dropzone/file-dropzone.component.ts similarity index 100% rename from community/components/form/file-dropzone/file-dropzone.component.ts rename to src/community/components/form/file-dropzone/file-dropzone.component.ts diff --git a/community/components/form/file-dropzone/file-dropzone.react.scss b/src/community/components/form/file-dropzone/file-dropzone.react.scss similarity index 100% rename from community/components/form/file-dropzone/file-dropzone.react.scss rename to src/community/components/form/file-dropzone/file-dropzone.react.scss diff --git a/community/components/form/file-dropzone/file-dropzone.stories.ts b/src/community/components/form/file-dropzone/file-dropzone.stories.ts similarity index 98% rename from community/components/form/file-dropzone/file-dropzone.stories.ts rename to src/community/components/form/file-dropzone/file-dropzone.stories.ts index d88c94ad4..12d1c20f2 100644 --- a/community/components/form/file-dropzone/file-dropzone.stories.ts +++ b/src/community/components/form/file-dropzone/file-dropzone.stories.ts @@ -1,4 +1,4 @@ -import { ComponentInputs } from "tedi/types"; +import { ComponentInputs } from "src/tedi/types"; import { FileDropzoneComponent } from "./file-dropzone.component"; import { argsToTemplate, @@ -8,7 +8,7 @@ import { } from "@storybook/angular"; import { validateFileSize, validateFileType } from "./utils"; import { FormControl, FormGroup, ReactiveFormsModule } from "@angular/forms"; -import { ButtonComponent } from "tedi/components"; +import { ButtonComponent } from "src/tedi/components"; /** * FileDropzoneComponent is a component that allows users to drag and drop files or select them through a file input. diff --git a/community/components/form/file-dropzone/file.service.ts b/src/community/components/form/file-dropzone/file.service.ts similarity index 100% rename from community/components/form/file-dropzone/file.service.ts rename to src/community/components/form/file-dropzone/file.service.ts diff --git a/community/components/form/file-dropzone/index.ts b/src/community/components/form/file-dropzone/index.ts similarity index 100% rename from community/components/form/file-dropzone/index.ts rename to src/community/components/form/file-dropzone/index.ts diff --git a/community/components/form/file-dropzone/types.ts b/src/community/components/form/file-dropzone/types.ts similarity index 100% rename from community/components/form/file-dropzone/types.ts rename to src/community/components/form/file-dropzone/types.ts diff --git a/community/components/form/file-dropzone/utils.ts b/src/community/components/form/file-dropzone/utils.ts similarity index 100% rename from community/components/form/file-dropzone/utils.ts rename to src/community/components/form/file-dropzone/utils.ts diff --git a/community/components/form/form-field/form-field.component.scss b/src/community/components/form/form-field/form-field.component.scss similarity index 100% rename from community/components/form/form-field/form-field.component.scss rename to src/community/components/form/form-field/form-field.component.scss diff --git a/community/components/form/form-field/form-field.component.ts b/src/community/components/form/form-field/form-field.component.ts similarity index 100% rename from community/components/form/form-field/form-field.component.ts rename to src/community/components/form/form-field/form-field.component.ts diff --git a/community/components/form/form-field/form-field.stories.ts b/src/community/components/form/form-field/form-field.stories.ts similarity index 100% rename from community/components/form/form-field/form-field.stories.ts rename to src/community/components/form/form-field/form-field.stories.ts diff --git a/community/components/form/index.ts b/src/community/components/form/index.ts similarity index 100% rename from community/components/form/index.ts rename to src/community/components/form/index.ts diff --git a/community/components/form/input-group/input-group.component.html b/src/community/components/form/input-group/input-group.component.html similarity index 100% rename from community/components/form/input-group/input-group.component.html rename to src/community/components/form/input-group/input-group.component.html diff --git a/community/components/form/input-group/input-group.component.scss b/src/community/components/form/input-group/input-group.component.scss similarity index 100% rename from community/components/form/input-group/input-group.component.scss rename to src/community/components/form/input-group/input-group.component.scss diff --git a/community/components/form/input-group/input-group.component.ts b/src/community/components/form/input-group/input-group.component.ts similarity index 100% rename from community/components/form/input-group/input-group.component.ts rename to src/community/components/form/input-group/input-group.component.ts diff --git a/community/components/form/input-group/input-group.stories.ts b/src/community/components/form/input-group/input-group.stories.ts similarity index 99% rename from community/components/form/input-group/input-group.stories.ts rename to src/community/components/form/input-group/input-group.stories.ts index 9c1a1c7fe..473527ce4 100644 --- a/community/components/form/input-group/input-group.stories.ts +++ b/src/community/components/form/input-group/input-group.stories.ts @@ -10,7 +10,7 @@ import { FormsModule, ReactiveFormsModule, } from "@angular/forms"; -import { indexId } from "community/helpers/unique-id"; +import { indexId } from "src/community/helpers/unique-id"; interface StoryArgs { disabled: boolean; diff --git a/community/components/form/input/input.component.scss b/src/community/components/form/input/input.component.scss similarity index 100% rename from community/components/form/input/input.component.scss rename to src/community/components/form/input/input.component.scss diff --git a/community/components/form/input/input.component.ts b/src/community/components/form/input/input.component.ts similarity index 100% rename from community/components/form/input/input.component.ts rename to src/community/components/form/input/input.component.ts diff --git a/community/components/form/input/textfield.stories.ts b/src/community/components/form/input/textfield.stories.ts similarity index 100% rename from community/components/form/input/textfield.stories.ts rename to src/community/components/form/input/textfield.stories.ts diff --git a/community/components/form/radio/index.ts b/src/community/components/form/radio/index.ts similarity index 100% rename from community/components/form/radio/index.ts rename to src/community/components/form/radio/index.ts diff --git a/community/components/form/radio/radio-card-group/radio-card-group.component.ts b/src/community/components/form/radio/radio-card-group/radio-card-group.component.ts similarity index 100% rename from community/components/form/radio/radio-card-group/radio-card-group.component.ts rename to src/community/components/form/radio/radio-card-group/radio-card-group.component.ts diff --git a/community/components/form/radio/radio-group/radio-group.component.html b/src/community/components/form/radio/radio-group/radio-group.component.html similarity index 100% rename from community/components/form/radio/radio-group/radio-group.component.html rename to src/community/components/form/radio/radio-group/radio-group.component.html diff --git a/community/components/form/radio/radio-group/radio-group.component.scss b/src/community/components/form/radio/radio-group/radio-group.component.scss similarity index 100% rename from community/components/form/radio/radio-group/radio-group.component.scss rename to src/community/components/form/radio/radio-group/radio-group.component.scss diff --git a/community/components/form/radio/radio-group/radio-group.component.ts b/src/community/components/form/radio/radio-group/radio-group.component.ts similarity index 100% rename from community/components/form/radio/radio-group/radio-group.component.ts rename to src/community/components/form/radio/radio-group/radio-group.component.ts diff --git a/community/components/form/radio/radio.stories.ts b/src/community/components/form/radio/radio.stories.ts similarity index 100% rename from community/components/form/radio/radio.stories.ts rename to src/community/components/form/radio/radio.stories.ts diff --git a/community/components/form/radio/radio/radio.component.html b/src/community/components/form/radio/radio/radio.component.html similarity index 100% rename from community/components/form/radio/radio/radio.component.html rename to src/community/components/form/radio/radio/radio.component.html diff --git a/community/components/form/radio/radio/radio.component.scss b/src/community/components/form/radio/radio/radio.component.scss similarity index 100% rename from community/components/form/radio/radio/radio.component.scss rename to src/community/components/form/radio/radio/radio.component.scss diff --git a/community/components/form/radio/radio/radio.component.ts b/src/community/components/form/radio/radio/radio.component.ts similarity index 100% rename from community/components/form/radio/radio/radio.component.ts rename to src/community/components/form/radio/radio/radio.component.ts diff --git a/community/components/form/search/search.component.html b/src/community/components/form/search/search.component.html similarity index 100% rename from community/components/form/search/search.component.html rename to src/community/components/form/search/search.component.html diff --git a/community/components/form/search/search.component.scss b/src/community/components/form/search/search.component.scss similarity index 100% rename from community/components/form/search/search.component.scss rename to src/community/components/form/search/search.component.scss diff --git a/community/components/form/search/search.component.ts b/src/community/components/form/search/search.component.ts similarity index 100% rename from community/components/form/search/search.component.ts rename to src/community/components/form/search/search.component.ts diff --git a/community/components/form/search/search.stories.ts b/src/community/components/form/search/search.stories.ts similarity index 100% rename from community/components/form/search/search.stories.ts rename to src/community/components/form/search/search.stories.ts diff --git a/community/components/form/select/index.ts b/src/community/components/form/select/index.ts similarity index 100% rename from community/components/form/select/index.ts rename to src/community/components/form/select/index.ts diff --git a/community/components/form/select/multiselect.component.html b/src/community/components/form/select/multiselect.component.html similarity index 100% rename from community/components/form/select/multiselect.component.html rename to src/community/components/form/select/multiselect.component.html diff --git a/community/components/form/select/multiselect.component.ts b/src/community/components/form/select/multiselect.component.ts similarity index 100% rename from community/components/form/select/multiselect.component.ts rename to src/community/components/form/select/multiselect.component.ts diff --git a/community/components/form/select/multiselect.stories.ts b/src/community/components/form/select/multiselect.stories.ts similarity index 100% rename from community/components/form/select/multiselect.stories.ts rename to src/community/components/form/select/multiselect.stories.ts diff --git a/community/components/form/select/select-option.component.ts b/src/community/components/form/select/select-option.component.ts similarity index 100% rename from community/components/form/select/select-option.component.ts rename to src/community/components/form/select/select-option.component.ts diff --git a/community/components/form/select/select.component.html b/src/community/components/form/select/select.component.html similarity index 100% rename from community/components/form/select/select.component.html rename to src/community/components/form/select/select.component.html diff --git a/community/components/form/select/select.component.scss b/src/community/components/form/select/select.component.scss similarity index 100% rename from community/components/form/select/select.component.scss rename to src/community/components/form/select/select.component.scss diff --git a/community/components/form/select/select.component.ts b/src/community/components/form/select/select.component.ts similarity index 100% rename from community/components/form/select/select.component.ts rename to src/community/components/form/select/select.component.ts diff --git a/community/components/form/select/select.stories.ts b/src/community/components/form/select/select.stories.ts similarity index 100% rename from community/components/form/select/select.stories.ts rename to src/community/components/form/select/select.stories.ts diff --git a/community/components/form/textarea/textarea.component.scss b/src/community/components/form/textarea/textarea.component.scss similarity index 100% rename from community/components/form/textarea/textarea.component.scss rename to src/community/components/form/textarea/textarea.component.scss diff --git a/community/components/form/textarea/textarea.component.ts b/src/community/components/form/textarea/textarea.component.ts similarity index 100% rename from community/components/form/textarea/textarea.component.ts rename to src/community/components/form/textarea/textarea.component.ts diff --git a/community/components/form/textarea/textarea.stories.ts b/src/community/components/form/textarea/textarea.stories.ts similarity index 100% rename from community/components/form/textarea/textarea.stories.ts rename to src/community/components/form/textarea/textarea.stories.ts diff --git a/community/components/helpers/index.ts b/src/community/components/helpers/index.ts similarity index 100% rename from community/components/helpers/index.ts rename to src/community/components/helpers/index.ts diff --git a/community/components/helpers/progress-bar/index.ts b/src/community/components/helpers/progress-bar/index.ts similarity index 100% rename from community/components/helpers/progress-bar/index.ts rename to src/community/components/helpers/progress-bar/index.ts diff --git a/community/components/helpers/progress-bar/progress-bar.component.html b/src/community/components/helpers/progress-bar/progress-bar.component.html similarity index 100% rename from community/components/helpers/progress-bar/progress-bar.component.html rename to src/community/components/helpers/progress-bar/progress-bar.component.html diff --git a/community/components/helpers/progress-bar/progress-bar.component.scss b/src/community/components/helpers/progress-bar/progress-bar.component.scss similarity index 100% rename from community/components/helpers/progress-bar/progress-bar.component.scss rename to src/community/components/helpers/progress-bar/progress-bar.component.scss diff --git a/community/components/helpers/progress-bar/progress-bar.component.ts b/src/community/components/helpers/progress-bar/progress-bar.component.ts similarity index 100% rename from community/components/helpers/progress-bar/progress-bar.component.ts rename to src/community/components/helpers/progress-bar/progress-bar.component.ts diff --git a/community/components/helpers/progress-bar/progress-bar.stories.ts b/src/community/components/helpers/progress-bar/progress-bar.stories.ts similarity index 100% rename from community/components/helpers/progress-bar/progress-bar.stories.ts rename to src/community/components/helpers/progress-bar/progress-bar.stories.ts diff --git a/community/components/navigation/breadcrumbs/breadcrumbs.component.html b/src/community/components/navigation/breadcrumbs/breadcrumbs.component.html similarity index 100% rename from community/components/navigation/breadcrumbs/breadcrumbs.component.html rename to src/community/components/navigation/breadcrumbs/breadcrumbs.component.html diff --git a/community/components/navigation/breadcrumbs/breadcrumbs.component.scss b/src/community/components/navigation/breadcrumbs/breadcrumbs.component.scss similarity index 100% rename from community/components/navigation/breadcrumbs/breadcrumbs.component.scss rename to src/community/components/navigation/breadcrumbs/breadcrumbs.component.scss diff --git a/community/components/navigation/breadcrumbs/breadcrumbs.component.spec.ts b/src/community/components/navigation/breadcrumbs/breadcrumbs.component.spec.ts similarity index 100% rename from community/components/navigation/breadcrumbs/breadcrumbs.component.spec.ts rename to src/community/components/navigation/breadcrumbs/breadcrumbs.component.spec.ts diff --git a/community/components/navigation/breadcrumbs/breadcrumbs.component.ts b/src/community/components/navigation/breadcrumbs/breadcrumbs.component.ts similarity index 100% rename from community/components/navigation/breadcrumbs/breadcrumbs.component.ts rename to src/community/components/navigation/breadcrumbs/breadcrumbs.component.ts diff --git a/community/components/navigation/breadcrumbs/breadcrumbs.stories.ts b/src/community/components/navigation/breadcrumbs/breadcrumbs.stories.ts similarity index 96% rename from community/components/navigation/breadcrumbs/breadcrumbs.stories.ts rename to src/community/components/navigation/breadcrumbs/breadcrumbs.stories.ts index bfa9397f1..0d26b3995 100644 --- a/community/components/navigation/breadcrumbs/breadcrumbs.stories.ts +++ b/src/community/components/navigation/breadcrumbs/breadcrumbs.stories.ts @@ -1,7 +1,7 @@ import { argsToTemplate, type Meta, type StoryObj } from "@storybook/angular"; import { BreadcrumbsComponent } from "./breadcrumbs.component"; -import { createBreakpointArgTypes } from "../../../../src/dev-tools/createBreakpointArgTypes"; +import { createBreakpointArgTypes } from "../../../../dev-tools/createBreakpointArgTypes"; /** Figma ↗
* Breadcrumbs provide users with a clear path of where they are within the application. diff --git a/community/components/navigation/index.ts b/src/community/components/navigation/index.ts similarity index 100% rename from community/components/navigation/index.ts rename to src/community/components/navigation/index.ts diff --git a/community/components/navigation/pagination/pagination-page/pagination-page.component.html b/src/community/components/navigation/pagination/pagination-page/pagination-page.component.html similarity index 100% rename from community/components/navigation/pagination/pagination-page/pagination-page.component.html rename to src/community/components/navigation/pagination/pagination-page/pagination-page.component.html diff --git a/community/components/navigation/pagination/pagination-page/pagination-page.component.scss b/src/community/components/navigation/pagination/pagination-page/pagination-page.component.scss similarity index 100% rename from community/components/navigation/pagination/pagination-page/pagination-page.component.scss rename to src/community/components/navigation/pagination/pagination-page/pagination-page.component.scss diff --git a/community/components/navigation/pagination/pagination-page/pagination-page.component.ts b/src/community/components/navigation/pagination/pagination-page/pagination-page.component.ts similarity index 100% rename from community/components/navigation/pagination/pagination-page/pagination-page.component.ts rename to src/community/components/navigation/pagination/pagination-page/pagination-page.component.ts diff --git a/community/components/navigation/pagination/pagination.component.html b/src/community/components/navigation/pagination/pagination.component.html similarity index 100% rename from community/components/navigation/pagination/pagination.component.html rename to src/community/components/navigation/pagination/pagination.component.html diff --git a/community/components/navigation/pagination/pagination.component.scss b/src/community/components/navigation/pagination/pagination.component.scss similarity index 100% rename from community/components/navigation/pagination/pagination.component.scss rename to src/community/components/navigation/pagination/pagination.component.scss diff --git a/community/components/navigation/pagination/pagination.component.ts b/src/community/components/navigation/pagination/pagination.component.ts similarity index 100% rename from community/components/navigation/pagination/pagination.component.ts rename to src/community/components/navigation/pagination/pagination.component.ts diff --git a/community/components/navigation/pagination/pagination.stories.ts b/src/community/components/navigation/pagination/pagination.stories.ts similarity index 100% rename from community/components/navigation/pagination/pagination.stories.ts rename to src/community/components/navigation/pagination/pagination.stories.ts diff --git a/community/components/navigation/pagination/pagination.utils.ts b/src/community/components/navigation/pagination/pagination.utils.ts similarity index 100% rename from community/components/navigation/pagination/pagination.utils.ts rename to src/community/components/navigation/pagination/pagination.utils.ts diff --git a/community/components/navigation/table-of-contents/index.ts b/src/community/components/navigation/table-of-contents/index.ts similarity index 100% rename from community/components/navigation/table-of-contents/index.ts rename to src/community/components/navigation/table-of-contents/index.ts diff --git a/community/components/navigation/table-of-contents/table-of-contents-item/table-of-contents-item.component.html b/src/community/components/navigation/table-of-contents/table-of-contents-item/table-of-contents-item.component.html similarity index 100% rename from community/components/navigation/table-of-contents/table-of-contents-item/table-of-contents-item.component.html rename to src/community/components/navigation/table-of-contents/table-of-contents-item/table-of-contents-item.component.html diff --git a/community/components/navigation/table-of-contents/table-of-contents-item/table-of-contents-item.component.scss b/src/community/components/navigation/table-of-contents/table-of-contents-item/table-of-contents-item.component.scss similarity index 100% rename from community/components/navigation/table-of-contents/table-of-contents-item/table-of-contents-item.component.scss rename to src/community/components/navigation/table-of-contents/table-of-contents-item/table-of-contents-item.component.scss diff --git a/community/components/navigation/table-of-contents/table-of-contents-item/table-of-contents-item.component.ts b/src/community/components/navigation/table-of-contents/table-of-contents-item/table-of-contents-item.component.ts similarity index 100% rename from community/components/navigation/table-of-contents/table-of-contents-item/table-of-contents-item.component.ts rename to src/community/components/navigation/table-of-contents/table-of-contents-item/table-of-contents-item.component.ts diff --git a/community/components/navigation/table-of-contents/table-of-contents-nested-wrapper.component.ts b/src/community/components/navigation/table-of-contents/table-of-contents-nested-wrapper.component.ts similarity index 100% rename from community/components/navigation/table-of-contents/table-of-contents-nested-wrapper.component.ts rename to src/community/components/navigation/table-of-contents/table-of-contents-nested-wrapper.component.ts diff --git a/community/components/navigation/table-of-contents/table-of-contents.component.html b/src/community/components/navigation/table-of-contents/table-of-contents.component.html similarity index 100% rename from community/components/navigation/table-of-contents/table-of-contents.component.html rename to src/community/components/navigation/table-of-contents/table-of-contents.component.html diff --git a/community/components/navigation/table-of-contents/table-of-contents.component.scss b/src/community/components/navigation/table-of-contents/table-of-contents.component.scss similarity index 100% rename from community/components/navigation/table-of-contents/table-of-contents.component.scss rename to src/community/components/navigation/table-of-contents/table-of-contents.component.scss diff --git a/community/components/navigation/table-of-contents/table-of-contents.component.ts b/src/community/components/navigation/table-of-contents/table-of-contents.component.ts similarity index 100% rename from community/components/navigation/table-of-contents/table-of-contents.component.ts rename to src/community/components/navigation/table-of-contents/table-of-contents.component.ts diff --git a/community/components/navigation/table-of-contents/table-of-contents.stories.ts b/src/community/components/navigation/table-of-contents/table-of-contents.stories.ts similarity index 100% rename from community/components/navigation/table-of-contents/table-of-contents.stories.ts rename to src/community/components/navigation/table-of-contents/table-of-contents.stories.ts diff --git a/community/components/navigation/tabs/index.ts b/src/community/components/navigation/tabs/index.ts similarity index 100% rename from community/components/navigation/tabs/index.ts rename to src/community/components/navigation/tabs/index.ts diff --git a/community/components/navigation/tabs/tab-content/tab-content.component.html b/src/community/components/navigation/tabs/tab-content/tab-content.component.html similarity index 100% rename from community/components/navigation/tabs/tab-content/tab-content.component.html rename to src/community/components/navigation/tabs/tab-content/tab-content.component.html diff --git a/community/components/navigation/tabs/tab-content/tab-content.component.ts b/src/community/components/navigation/tabs/tab-content/tab-content.component.ts similarity index 100% rename from community/components/navigation/tabs/tab-content/tab-content.component.ts rename to src/community/components/navigation/tabs/tab-content/tab-content.component.ts diff --git a/community/components/navigation/tabs/tab/tab.component.html b/src/community/components/navigation/tabs/tab/tab.component.html similarity index 100% rename from community/components/navigation/tabs/tab/tab.component.html rename to src/community/components/navigation/tabs/tab/tab.component.html diff --git a/community/components/navigation/tabs/tab/tab.component.scss b/src/community/components/navigation/tabs/tab/tab.component.scss similarity index 100% rename from community/components/navigation/tabs/tab/tab.component.scss rename to src/community/components/navigation/tabs/tab/tab.component.scss diff --git a/community/components/navigation/tabs/tab/tab.component.ts b/src/community/components/navigation/tabs/tab/tab.component.ts similarity index 100% rename from community/components/navigation/tabs/tab/tab.component.ts rename to src/community/components/navigation/tabs/tab/tab.component.ts diff --git a/community/components/navigation/tabs/tabs.component.html b/src/community/components/navigation/tabs/tabs.component.html similarity index 100% rename from community/components/navigation/tabs/tabs.component.html rename to src/community/components/navigation/tabs/tabs.component.html diff --git a/community/components/navigation/tabs/tabs.component.scss b/src/community/components/navigation/tabs/tabs.component.scss similarity index 100% rename from community/components/navigation/tabs/tabs.component.scss rename to src/community/components/navigation/tabs/tabs.component.scss diff --git a/community/components/navigation/tabs/tabs.component.ts b/src/community/components/navigation/tabs/tabs.component.ts similarity index 100% rename from community/components/navigation/tabs/tabs.component.ts rename to src/community/components/navigation/tabs/tabs.component.ts diff --git a/community/components/navigation/tabs/tabs.stories.ts b/src/community/components/navigation/tabs/tabs.stories.ts similarity index 100% rename from community/components/navigation/tabs/tabs.stories.ts rename to src/community/components/navigation/tabs/tabs.stories.ts diff --git a/community/components/navigation/vertical-stepper/index.ts b/src/community/components/navigation/vertical-stepper/index.ts similarity index 100% rename from community/components/navigation/vertical-stepper/index.ts rename to src/community/components/navigation/vertical-stepper/index.ts diff --git a/community/components/navigation/vertical-stepper/vertical-stepper-item/vertical-stepper-item.component.html b/src/community/components/navigation/vertical-stepper/vertical-stepper-item/vertical-stepper-item.component.html similarity index 100% rename from community/components/navigation/vertical-stepper/vertical-stepper-item/vertical-stepper-item.component.html rename to src/community/components/navigation/vertical-stepper/vertical-stepper-item/vertical-stepper-item.component.html diff --git a/community/components/navigation/vertical-stepper/vertical-stepper-item/vertical-stepper-item.component.scss b/src/community/components/navigation/vertical-stepper/vertical-stepper-item/vertical-stepper-item.component.scss similarity index 100% rename from community/components/navigation/vertical-stepper/vertical-stepper-item/vertical-stepper-item.component.scss rename to src/community/components/navigation/vertical-stepper/vertical-stepper-item/vertical-stepper-item.component.scss diff --git a/community/components/navigation/vertical-stepper/vertical-stepper-item/vertical-stepper-item.component.ts b/src/community/components/navigation/vertical-stepper/vertical-stepper-item/vertical-stepper-item.component.ts similarity index 100% rename from community/components/navigation/vertical-stepper/vertical-stepper-item/vertical-stepper-item.component.ts rename to src/community/components/navigation/vertical-stepper/vertical-stepper-item/vertical-stepper-item.component.ts diff --git a/community/components/navigation/vertical-stepper/vertical-stepper.component.html b/src/community/components/navigation/vertical-stepper/vertical-stepper.component.html similarity index 100% rename from community/components/navigation/vertical-stepper/vertical-stepper.component.html rename to src/community/components/navigation/vertical-stepper/vertical-stepper.component.html diff --git a/community/components/navigation/vertical-stepper/vertical-stepper.component.scss b/src/community/components/navigation/vertical-stepper/vertical-stepper.component.scss similarity index 100% rename from community/components/navigation/vertical-stepper/vertical-stepper.component.scss rename to src/community/components/navigation/vertical-stepper/vertical-stepper.component.scss diff --git a/community/components/navigation/vertical-stepper/vertical-stepper.component.ts b/src/community/components/navigation/vertical-stepper/vertical-stepper.component.ts similarity index 100% rename from community/components/navigation/vertical-stepper/vertical-stepper.component.ts rename to src/community/components/navigation/vertical-stepper/vertical-stepper.component.ts diff --git a/community/components/navigation/vertical-stepper/vertical-stepper.stories.ts b/src/community/components/navigation/vertical-stepper/vertical-stepper.stories.ts similarity index 100% rename from community/components/navigation/vertical-stepper/vertical-stepper.stories.ts rename to src/community/components/navigation/vertical-stepper/vertical-stepper.stories.ts diff --git a/community/components/overlay/dropdown-item/dropdown-item.component.scss b/src/community/components/overlay/dropdown-item/dropdown-item.component.scss similarity index 100% rename from community/components/overlay/dropdown-item/dropdown-item.component.scss rename to src/community/components/overlay/dropdown-item/dropdown-item.component.scss diff --git a/community/components/overlay/dropdown-item/dropdown-item.component.ts b/src/community/components/overlay/dropdown-item/dropdown-item.component.ts similarity index 100% rename from community/components/overlay/dropdown-item/dropdown-item.component.ts rename to src/community/components/overlay/dropdown-item/dropdown-item.component.ts diff --git a/community/components/overlay/dropdown-item/dropdown-item.stories.ts b/src/community/components/overlay/dropdown-item/dropdown-item.stories.ts similarity index 100% rename from community/components/overlay/dropdown-item/dropdown-item.stories.ts rename to src/community/components/overlay/dropdown-item/dropdown-item.stories.ts diff --git a/community/components/overlay/dropdown/dropdown-trigger/dropdown-trigger.directive.ts b/src/community/components/overlay/dropdown/dropdown-trigger/dropdown-trigger.directive.ts similarity index 100% rename from community/components/overlay/dropdown/dropdown-trigger/dropdown-trigger.directive.ts rename to src/community/components/overlay/dropdown/dropdown-trigger/dropdown-trigger.directive.ts diff --git a/community/components/overlay/dropdown/dropdown.component.html b/src/community/components/overlay/dropdown/dropdown.component.html similarity index 100% rename from community/components/overlay/dropdown/dropdown.component.html rename to src/community/components/overlay/dropdown/dropdown.component.html diff --git a/community/components/overlay/dropdown/dropdown.component.scss b/src/community/components/overlay/dropdown/dropdown.component.scss similarity index 100% rename from community/components/overlay/dropdown/dropdown.component.scss rename to src/community/components/overlay/dropdown/dropdown.component.scss diff --git a/community/components/overlay/dropdown/dropdown.component.ts b/src/community/components/overlay/dropdown/dropdown.component.ts similarity index 100% rename from community/components/overlay/dropdown/dropdown.component.ts rename to src/community/components/overlay/dropdown/dropdown.component.ts diff --git a/community/components/overlay/dropdown/dropdown.stories.ts b/src/community/components/overlay/dropdown/dropdown.stories.ts similarity index 100% rename from community/components/overlay/dropdown/dropdown.stories.ts rename to src/community/components/overlay/dropdown/dropdown.stories.ts diff --git a/community/components/overlay/index.ts b/src/community/components/overlay/index.ts similarity index 100% rename from community/components/overlay/index.ts rename to src/community/components/overlay/index.ts diff --git a/community/components/overlay/modal/footer/modal-footer.component.html b/src/community/components/overlay/modal/footer/modal-footer.component.html similarity index 100% rename from community/components/overlay/modal/footer/modal-footer.component.html rename to src/community/components/overlay/modal/footer/modal-footer.component.html diff --git a/community/components/overlay/modal/footer/modal-footer.component.scss b/src/community/components/overlay/modal/footer/modal-footer.component.scss similarity index 100% rename from community/components/overlay/modal/footer/modal-footer.component.scss rename to src/community/components/overlay/modal/footer/modal-footer.component.scss diff --git a/community/components/overlay/modal/footer/modal-footer.component.ts b/src/community/components/overlay/modal/footer/modal-footer.component.ts similarity index 100% rename from community/components/overlay/modal/footer/modal-footer.component.ts rename to src/community/components/overlay/modal/footer/modal-footer.component.ts diff --git a/community/components/overlay/modal/header/modal-header.component.html b/src/community/components/overlay/modal/header/modal-header.component.html similarity index 100% rename from community/components/overlay/modal/header/modal-header.component.html rename to src/community/components/overlay/modal/header/modal-header.component.html diff --git a/community/components/overlay/modal/header/modal-header.component.scss b/src/community/components/overlay/modal/header/modal-header.component.scss similarity index 100% rename from community/components/overlay/modal/header/modal-header.component.scss rename to src/community/components/overlay/modal/header/modal-header.component.scss diff --git a/community/components/overlay/modal/header/modal-header.component.ts b/src/community/components/overlay/modal/header/modal-header.component.ts similarity index 100% rename from community/components/overlay/modal/header/modal-header.component.ts rename to src/community/components/overlay/modal/header/modal-header.component.ts diff --git a/community/components/overlay/modal/index.ts b/src/community/components/overlay/modal/index.ts similarity index 100% rename from community/components/overlay/modal/index.ts rename to src/community/components/overlay/modal/index.ts diff --git a/community/components/overlay/modal/modal.component.html b/src/community/components/overlay/modal/modal.component.html similarity index 100% rename from community/components/overlay/modal/modal.component.html rename to src/community/components/overlay/modal/modal.component.html diff --git a/community/components/overlay/modal/modal.component.scss b/src/community/components/overlay/modal/modal.component.scss similarity index 100% rename from community/components/overlay/modal/modal.component.scss rename to src/community/components/overlay/modal/modal.component.scss diff --git a/community/components/overlay/modal/modal.component.ts b/src/community/components/overlay/modal/modal.component.ts similarity index 100% rename from community/components/overlay/modal/modal.component.ts rename to src/community/components/overlay/modal/modal.component.ts diff --git a/community/components/overlay/modal/modal.stories.ts b/src/community/components/overlay/modal/modal.stories.ts similarity index 99% rename from community/components/overlay/modal/modal.stories.ts rename to src/community/components/overlay/modal/modal.stories.ts index d5b97a5bd..d02f56fbe 100644 --- a/community/components/overlay/modal/modal.stories.ts +++ b/src/community/components/overlay/modal/modal.stories.ts @@ -4,7 +4,7 @@ import { ButtonComponent, FeedbackTextComponent, LabelComponent, -} from "tedi/components"; +} from "src/tedi/components"; import { Dialog } from "@angular/cdk/dialog"; import { DialogData, diff --git a/community/components/table/index.ts b/src/community/components/table/index.ts similarity index 100% rename from community/components/table/index.ts rename to src/community/components/table/index.ts diff --git a/community/components/table/table-styles.stories.ts b/src/community/components/table/table-styles.stories.ts similarity index 100% rename from community/components/table/table-styles.stories.ts rename to src/community/components/table/table-styles.stories.ts diff --git a/community/components/table/table-styles/table-styles.component.html b/src/community/components/table/table-styles/table-styles.component.html similarity index 100% rename from community/components/table/table-styles/table-styles.component.html rename to src/community/components/table/table-styles/table-styles.component.html diff --git a/community/components/table/table-styles/table-styles.component.scss b/src/community/components/table/table-styles/table-styles.component.scss similarity index 100% rename from community/components/table/table-styles/table-styles.component.scss rename to src/community/components/table/table-styles/table-styles.component.scss diff --git a/community/components/table/table-styles/table-styles.component.ts b/src/community/components/table/table-styles/table-styles.component.ts similarity index 100% rename from community/components/table/table-styles/table-styles.component.ts rename to src/community/components/table/table-styles/table-styles.component.ts diff --git a/community/components/tags/index.ts b/src/community/components/tags/index.ts similarity index 100% rename from community/components/tags/index.ts rename to src/community/components/tags/index.ts diff --git a/community/components/tags/status-badge/status-badge.component.html b/src/community/components/tags/status-badge/status-badge.component.html similarity index 100% rename from community/components/tags/status-badge/status-badge.component.html rename to src/community/components/tags/status-badge/status-badge.component.html diff --git a/community/components/tags/status-badge/status-badge.component.scss b/src/community/components/tags/status-badge/status-badge.component.scss similarity index 100% rename from community/components/tags/status-badge/status-badge.component.scss rename to src/community/components/tags/status-badge/status-badge.component.scss diff --git a/community/components/tags/status-badge/status-badge.component.ts b/src/community/components/tags/status-badge/status-badge.component.ts similarity index 100% rename from community/components/tags/status-badge/status-badge.component.ts rename to src/community/components/tags/status-badge/status-badge.component.ts diff --git a/community/components/tags/status-badge/status-badge.stories.ts b/src/community/components/tags/status-badge/status-badge.stories.ts similarity index 100% rename from community/components/tags/status-badge/status-badge.stories.ts rename to src/community/components/tags/status-badge/status-badge.stories.ts diff --git a/community/components/tags/tag/tag.component.html b/src/community/components/tags/tag/tag.component.html similarity index 100% rename from community/components/tags/tag/tag.component.html rename to src/community/components/tags/tag/tag.component.html diff --git a/community/components/tags/tag/tag.component.scss b/src/community/components/tags/tag/tag.component.scss similarity index 100% rename from community/components/tags/tag/tag.component.scss rename to src/community/components/tags/tag/tag.component.scss diff --git a/community/components/tags/tag/tag.component.ts b/src/community/components/tags/tag/tag.component.ts similarity index 100% rename from community/components/tags/tag/tag.component.ts rename to src/community/components/tags/tag/tag.component.ts diff --git a/community/components/tags/tag/tag.stories.ts b/src/community/components/tags/tag/tag.stories.ts similarity index 100% rename from community/components/tags/tag/tag.stories.ts rename to src/community/components/tags/tag/tag.stories.ts diff --git a/community/helpers/unique-id.ts b/src/community/helpers/unique-id.ts similarity index 100% rename from community/helpers/unique-id.ts rename to src/community/helpers/unique-id.ts diff --git a/community/index.ts b/src/community/index.ts similarity index 100% rename from community/index.ts rename to src/community/index.ts diff --git a/src/community/ng-package.json b/src/community/ng-package.json new file mode 100644 index 000000000..7e82164ba --- /dev/null +++ b/src/community/ng-package.json @@ -0,0 +1,6 @@ +{ + "$schema": "../../node_modules/ng-packagr/ng-package.schema.json", + "lib": { + "entryFile": "index.ts" + } +} diff --git a/ng-package.json b/src/ng-package.json similarity index 61% rename from ng-package.json rename to src/ng-package.json index 558888fcc..bfc94cd91 100644 --- a/ng-package.json +++ b/src/ng-package.json @@ -1,6 +1,6 @@ { - "$schema": "./node_modules/ng-packagr/ng-package.schema.json", - "dest": "./dist", + "$schema": "../node_modules/ng-packagr/ng-package.schema.json", + "dest": "../dist", "lib": { "entryFile": "public-api.ts" }, diff --git a/src/package.json b/src/package.json new file mode 100644 index 000000000..a940b3611 --- /dev/null +++ b/src/package.json @@ -0,0 +1,30 @@ +{ + "name": "@tedi-design-system/angular", + "version": "0.0.0-semantic-version", + "type": "module", + "main": "community.mjs", + "module": "community.mjs", + "exports": { + "./index.css": { + "default": "./index.css" + } + }, + "peerDependencies": { + "@angular/cdk": "^20.0.0 || ^21.0.0 || ^22.0.0", + "@angular/common": "^20.0.0 || ^21.0.0 || ^22.0.0", + "@angular/core": "^20.0.0 || ^21.0.0 || ^22.0.0", + "@angular/forms": "^20.0.0 || ^21.0.0 || ^22.0.0", + "@angular/platform-browser": "^20.0.0 || ^21.0.0 || ^22.0.0" + }, + "dependencies": { + "@tanstack/angular-table": "^8.21.4", + "@tedi-design-system/core": "^6.2.1" + }, + "publishConfig": { + "access": "public" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/TEDI-Design-System/angular.git" + } +} diff --git a/public-api.ts b/src/public-api.ts similarity index 100% rename from public-api.ts rename to src/public-api.ts diff --git a/src/tedi/components/base/icon/icon.component.html b/src/tedi/components/base/icon/icon.component.html new file mode 100644 index 000000000..421fefe57 --- /dev/null +++ b/src/tedi/components/base/icon/icon.component.html @@ -0,0 +1 @@ +{{ name() }} diff --git a/tedi/components/base/icon/icon.component.scss b/src/tedi/components/base/icon/icon.component.scss similarity index 100% rename from tedi/components/base/icon/icon.component.scss rename to src/tedi/components/base/icon/icon.component.scss diff --git a/tedi/components/base/icon/icon.component.spec.ts b/src/tedi/components/base/icon/icon.component.spec.ts similarity index 99% rename from tedi/components/base/icon/icon.component.spec.ts rename to src/tedi/components/base/icon/icon.component.spec.ts index 6a8b498bd..6f9bcf22e 100644 --- a/tedi/components/base/icon/icon.component.spec.ts +++ b/src/tedi/components/base/icon/icon.component.spec.ts @@ -61,7 +61,7 @@ describe("IconComponent", () => { "warning-dark", "danger", "white", - "inherit" + "inherit", ]; for (const color of colors) { diff --git a/tedi/components/base/icon/icon.component.ts b/src/tedi/components/base/icon/icon.component.ts similarity index 97% rename from tedi/components/base/icon/icon.component.ts rename to src/tedi/components/base/icon/icon.component.ts index d037d679f..b09266795 100644 --- a/tedi/components/base/icon/icon.component.ts +++ b/src/tedi/components/base/icon/icon.component.ts @@ -38,10 +38,10 @@ export type IconBackgroundColor = encapsulation: ViewEncapsulation.None, host: { "[class]": "classes()", - "role": "img", + role: "img", "[attr.aria-label]": "label()", - "[attr.aria-hidden]": "!label()" - } + "[attr.aria-hidden]": "!label()", + }, }) export class IconComponent { /** diff --git a/tedi/components/base/icon/icon.stories.ts b/src/tedi/components/base/icon/icon.stories.ts similarity index 99% rename from tedi/components/base/icon/icon.stories.ts rename to src/tedi/components/base/icon/icon.stories.ts index 8edd2782c..034e23a9f 100644 --- a/tedi/components/base/icon/icon.stories.ts +++ b/src/tedi/components/base/icon/icon.stories.ts @@ -20,7 +20,7 @@ const COLORS = [ "warning-dark", "danger", "white", - "inherit" + "inherit", ]; const BACKGROUNDS = [ "primary", diff --git a/tedi/components/base/index.ts b/src/tedi/components/base/index.ts similarity index 50% rename from tedi/components/base/index.ts rename to src/tedi/components/base/index.ts index 8064bb9ac..85042f047 100644 --- a/tedi/components/base/index.ts +++ b/src/tedi/components/base/index.ts @@ -1,2 +1,2 @@ export * from "./icon/icon.component"; -export * from "./text/text.component"; \ No newline at end of file +export * from "./text/text.component"; diff --git a/tedi/components/content/card/card-content/card-content.component.html b/src/tedi/components/base/text/text.component.html similarity index 100% rename from tedi/components/content/card/card-content/card-content.component.html rename to src/tedi/components/base/text/text.component.html diff --git a/tedi/components/base/text/text.component.spec.ts b/src/tedi/components/base/text/text.component.spec.ts similarity index 95% rename from tedi/components/base/text/text.component.spec.ts rename to src/tedi/components/base/text/text.component.spec.ts index 2dc103655..2a1a98fb9 100644 --- a/tedi/components/base/text/text.component.spec.ts +++ b/src/tedi/components/base/text/text.component.spec.ts @@ -8,7 +8,7 @@ describe("TextComponent", () => { beforeEach(() => { TestBed.configureTestingModule({ imports: [TextComponent], - }) + }); fixture = TestBed.createComponent(TextComponent); textElement = fixture.nativeElement; @@ -58,8 +58,15 @@ describe("TextComponent", () => { }); it("should apply heading modifiers correctly", () => { - const headingModifiers: TextModifiers[] = ["h1", "h2", "h3", "h4", "h5", "h6"]; - + const headingModifiers: TextModifiers[] = [ + "h1", + "h2", + "h3", + "h4", + "h5", + "h6", + ]; + for (const heading of headingModifiers) { fixture.componentRef.setInput("modifiers", heading); fixture.detectChanges(); diff --git a/tedi/components/base/text/text.component.ts b/src/tedi/components/base/text/text.component.ts similarity index 98% rename from tedi/components/base/text/text.component.ts rename to src/tedi/components/base/text/text.component.ts index f3fda95ba..c3e82a86a 100644 --- a/tedi/components/base/text/text.component.ts +++ b/src/tedi/components/base/text/text.component.ts @@ -53,7 +53,7 @@ export type TextColor = templateUrl: "./text.component.html", changeDetection: ChangeDetectionStrategy.OnPush, host: { - "[class]": "classes()" + "[class]": "classes()", }, }) export class TextComponent { @@ -81,7 +81,6 @@ export class TextComponent { : modifiersValue ? [modifiersValue] : []; - modifierClasses.forEach((modifier) => { if (this.isHeadingModifier(modifier)) { diff --git a/tedi/components/base/text/text.stories.ts b/src/tedi/components/base/text/text.stories.ts similarity index 100% rename from tedi/components/base/text/text.stories.ts rename to src/tedi/components/base/text/text.stories.ts diff --git a/tedi/components/buttons/button/base-button.directive.ts b/src/tedi/components/buttons/button/base-button.directive.ts similarity index 96% rename from tedi/components/buttons/button/base-button.directive.ts rename to src/tedi/components/buttons/button/base-button.directive.ts index 5dbfde55f..b85ba5d97 100644 --- a/tedi/components/buttons/button/base-button.directive.ts +++ b/src/tedi/components/buttons/button/base-button.directive.ts @@ -28,7 +28,7 @@ export class BaseButtonDirective implements AfterContentChecked { const nodes = Array.from(hostElement.childNodes).filter( (node) => node.nodeType === Node.ELEMENT_NODE || - (node.nodeType === Node.TEXT_NODE && node.textContent?.trim()) + (node.nodeType === Node.TEXT_NODE && node.textContent?.trim()), ); const nodeCount = nodes.length; const iconIndexes = nodes @@ -36,7 +36,7 @@ export class BaseButtonDirective implements AfterContentChecked { .filter( (x) => x.node.nodeType === Node.ELEMENT_NODE && - x.node.nodeName === "TEDI-ICON" + x.node.nodeName === "TEDI-ICON", ) .map((x) => x.index); diff --git a/tedi/components/buttons/button/button.component.scss b/src/tedi/components/buttons/button/button.component.scss similarity index 100% rename from tedi/components/buttons/button/button.component.scss rename to src/tedi/components/buttons/button/button.component.scss diff --git a/tedi/components/buttons/button/button.component.spec.ts b/src/tedi/components/buttons/button/button.component.spec.ts similarity index 100% rename from tedi/components/buttons/button/button.component.spec.ts rename to src/tedi/components/buttons/button/button.component.spec.ts diff --git a/tedi/components/buttons/button/button.component.ts b/src/tedi/components/buttons/button/button.component.ts similarity index 100% rename from tedi/components/buttons/button/button.component.ts rename to src/tedi/components/buttons/button/button.component.ts diff --git a/tedi/components/buttons/button/button.stories.ts b/src/tedi/components/buttons/button/button.stories.ts similarity index 98% rename from tedi/components/buttons/button/button.stories.ts rename to src/tedi/components/buttons/button/button.stories.ts index 7227de307..3ab05dd43 100644 --- a/tedi/components/buttons/button/button.stories.ts +++ b/src/tedi/components/buttons/button/button.stories.ts @@ -171,7 +171,7 @@ export const PrimaryInverted: StoryObj = { hover: "#Hover", active: "#Active", focusVisible: "#Focus", - } + }, }, args: { @@ -183,9 +183,9 @@ export const PrimaryInverted: StoryObj = { globals: { backgrounds: { - value: "brand" - } - } + value: "brand", + }, + }, }; export const Secondary: StoryObj = { @@ -208,7 +208,7 @@ export const SecondaryInverted: StoryObj = { hover: "#Hover", active: "#Active", focusVisible: "#Focus", - } + }, }, args: { @@ -220,9 +220,9 @@ export const SecondaryInverted: StoryObj = { globals: { backgrounds: { - value: "brand" - } - } + value: "brand", + }, + }, }; export const Neutral: StoryObj = { @@ -245,7 +245,7 @@ export const NeutralInverted: StoryObj = { hover: "#Hover", active: "#Active", focusVisible: "#Focus", - } + }, }, args: { @@ -257,9 +257,9 @@ export const NeutralInverted: StoryObj = { globals: { backgrounds: { - value: "brand" - } - } + value: "brand", + }, + }, }; export const Success: StoryObj = { diff --git a/tedi/components/buttons/card-button/card-button.component.html b/src/tedi/components/buttons/card-button/card-button.component.html similarity index 100% rename from tedi/components/buttons/card-button/card-button.component.html rename to src/tedi/components/buttons/card-button/card-button.component.html diff --git a/tedi/components/buttons/card-button/card-button.component.scss b/src/tedi/components/buttons/card-button/card-button.component.scss similarity index 100% rename from tedi/components/buttons/card-button/card-button.component.scss rename to src/tedi/components/buttons/card-button/card-button.component.scss diff --git a/tedi/components/buttons/card-button/card-button.component.spec.ts b/src/tedi/components/buttons/card-button/card-button.component.spec.ts similarity index 100% rename from tedi/components/buttons/card-button/card-button.component.spec.ts rename to src/tedi/components/buttons/card-button/card-button.component.spec.ts diff --git a/tedi/components/buttons/card-button/card-button.component.ts b/src/tedi/components/buttons/card-button/card-button.component.ts similarity index 100% rename from tedi/components/buttons/card-button/card-button.component.ts rename to src/tedi/components/buttons/card-button/card-button.component.ts diff --git a/tedi/components/buttons/card-button/card-button.stories.ts b/src/tedi/components/buttons/card-button/card-button.stories.ts similarity index 100% rename from tedi/components/buttons/card-button/card-button.stories.ts rename to src/tedi/components/buttons/card-button/card-button.stories.ts diff --git a/tedi/components/buttons/card-button/index.ts b/src/tedi/components/buttons/card-button/index.ts similarity index 100% rename from tedi/components/buttons/card-button/index.ts rename to src/tedi/components/buttons/card-button/index.ts diff --git a/tedi/components/buttons/closing-button/closing-button.component.html b/src/tedi/components/buttons/closing-button/closing-button.component.html similarity index 100% rename from tedi/components/buttons/closing-button/closing-button.component.html rename to src/tedi/components/buttons/closing-button/closing-button.component.html diff --git a/tedi/components/buttons/closing-button/closing-button.component.scss b/src/tedi/components/buttons/closing-button/closing-button.component.scss similarity index 100% rename from tedi/components/buttons/closing-button/closing-button.component.scss rename to src/tedi/components/buttons/closing-button/closing-button.component.scss diff --git a/tedi/components/buttons/closing-button/closing-button.component.ts b/src/tedi/components/buttons/closing-button/closing-button.component.ts similarity index 100% rename from tedi/components/buttons/closing-button/closing-button.component.ts rename to src/tedi/components/buttons/closing-button/closing-button.component.ts diff --git a/tedi/components/buttons/closing-button/closing-button.spec.ts b/src/tedi/components/buttons/closing-button/closing-button.spec.ts similarity index 100% rename from tedi/components/buttons/closing-button/closing-button.spec.ts rename to src/tedi/components/buttons/closing-button/closing-button.spec.ts diff --git a/tedi/components/buttons/closing-button/closing-button.stories.ts b/src/tedi/components/buttons/closing-button/closing-button.stories.ts similarity index 100% rename from tedi/components/buttons/closing-button/closing-button.stories.ts rename to src/tedi/components/buttons/closing-button/closing-button.stories.ts diff --git a/tedi/components/buttons/collapse-button/collapse-button.component.html b/src/tedi/components/buttons/collapse-button/collapse-button.component.html similarity index 100% rename from tedi/components/buttons/collapse-button/collapse-button.component.html rename to src/tedi/components/buttons/collapse-button/collapse-button.component.html diff --git a/tedi/components/buttons/collapse-button/collapse-button.component.scss b/src/tedi/components/buttons/collapse-button/collapse-button.component.scss similarity index 100% rename from tedi/components/buttons/collapse-button/collapse-button.component.scss rename to src/tedi/components/buttons/collapse-button/collapse-button.component.scss diff --git a/tedi/components/buttons/collapse-button/collapse-button.component.spec.ts b/src/tedi/components/buttons/collapse-button/collapse-button.component.spec.ts similarity index 99% rename from tedi/components/buttons/collapse-button/collapse-button.component.spec.ts rename to src/tedi/components/buttons/collapse-button/collapse-button.component.spec.ts index 317d20285..f6cc0dd2c 100644 --- a/tedi/components/buttons/collapse-button/collapse-button.component.spec.ts +++ b/src/tedi/components/buttons/collapse-button/collapse-button.component.spec.ts @@ -106,9 +106,7 @@ describe("CollapseButtonComponent", () => { fixture.componentRef.setInput("size", "small"); fixture.detectChanges(); const button: HTMLButtonElement = fixture.nativeElement; - expect(button.classList.contains("tedi-collapse-button--small")).toBe( - true, - ); + expect(button.classList.contains("tedi-collapse-button--small")).toBe(true); }); it("applies the --neutral modifier on the host when icon-only with arrowType 'default'", () => { diff --git a/tedi/components/buttons/collapse-button/collapse-button.component.ts b/src/tedi/components/buttons/collapse-button/collapse-button.component.ts similarity index 100% rename from tedi/components/buttons/collapse-button/collapse-button.component.ts rename to src/tedi/components/buttons/collapse-button/collapse-button.component.ts diff --git a/tedi/components/buttons/collapse-button/collapse-button.stories.ts b/src/tedi/components/buttons/collapse-button/collapse-button.stories.ts similarity index 100% rename from tedi/components/buttons/collapse-button/collapse-button.stories.ts rename to src/tedi/components/buttons/collapse-button/collapse-button.stories.ts diff --git a/tedi/components/buttons/collapse/collapse.component.html b/src/tedi/components/buttons/collapse/collapse.component.html similarity index 100% rename from tedi/components/buttons/collapse/collapse.component.html rename to src/tedi/components/buttons/collapse/collapse.component.html diff --git a/tedi/components/buttons/collapse/collapse.component.scss b/src/tedi/components/buttons/collapse/collapse.component.scss similarity index 100% rename from tedi/components/buttons/collapse/collapse.component.scss rename to src/tedi/components/buttons/collapse/collapse.component.scss diff --git a/tedi/components/buttons/collapse/collapse.component.spec.ts b/src/tedi/components/buttons/collapse/collapse.component.spec.ts similarity index 100% rename from tedi/components/buttons/collapse/collapse.component.spec.ts rename to src/tedi/components/buttons/collapse/collapse.component.spec.ts diff --git a/tedi/components/buttons/collapse/collapse.component.ts b/src/tedi/components/buttons/collapse/collapse.component.ts similarity index 100% rename from tedi/components/buttons/collapse/collapse.component.ts rename to src/tedi/components/buttons/collapse/collapse.component.ts diff --git a/tedi/components/buttons/collapse/collapse.stories.ts b/src/tedi/components/buttons/collapse/collapse.stories.ts similarity index 98% rename from tedi/components/buttons/collapse/collapse.stories.ts rename to src/tedi/components/buttons/collapse/collapse.stories.ts index 14ad9349e..63e88c34a 100644 --- a/tedi/components/buttons/collapse/collapse.stories.ts +++ b/src/tedi/components/buttons/collapse/collapse.stories.ts @@ -138,8 +138,8 @@ export const WithTextInverted: Story = { }, globals: { backgrounds: { - value: "brand" - } + value: "brand", + }, }, }; @@ -152,7 +152,7 @@ export const IconOnlyInverted: Story = { }, globals: { backgrounds: { - value: "brand" - } + value: "brand", + }, }, }; diff --git a/tedi/components/buttons/index.ts b/src/tedi/components/buttons/index.ts similarity index 100% rename from tedi/components/buttons/index.ts rename to src/tedi/components/buttons/index.ts diff --git a/tedi/components/buttons/info-button/info-button.component.scss b/src/tedi/components/buttons/info-button/info-button.component.scss similarity index 100% rename from tedi/components/buttons/info-button/info-button.component.scss rename to src/tedi/components/buttons/info-button/info-button.component.scss diff --git a/tedi/components/buttons/info-button/info-button.component.spec.ts b/src/tedi/components/buttons/info-button/info-button.component.spec.ts similarity index 93% rename from tedi/components/buttons/info-button/info-button.component.spec.ts rename to src/tedi/components/buttons/info-button/info-button.component.spec.ts index f7474a44d..da9e356d5 100644 --- a/tedi/components/buttons/info-button/info-button.component.spec.ts +++ b/src/tedi/components/buttons/info-button/info-button.component.spec.ts @@ -1,10 +1,9 @@ -import { signal } from '@angular/core'; +import { signal } from "@angular/core"; import { ComponentFixture, TestBed } from "@angular/core/testing"; import { InfoButtonComponent } from "./info-button.component"; import { TediTranslationService } from "@tedi-design-system/angular/tedi"; describe("InfoButtonComponent", () => { - const DEFAULT_LABEL = "More information"; let fixture: ComponentFixture; @@ -17,8 +16,8 @@ describe("InfoButtonComponent", () => { TestBed.configureTestingModule({ imports: [InfoButtonComponent], providers: [ - { provide: TediTranslationService, useValue: translationService } - ] + { provide: TediTranslationService, useValue: translationService }, + ], }); fixture = TestBed.createComponent(InfoButtonComponent); @@ -32,7 +31,9 @@ describe("InfoButtonComponent", () => { it("should render base class and set default aria-label", () => { expect(fixture.nativeElement.classList).toContain("tedi-info-button"); expect(translationTrackSpy).toHaveBeenCalledWith("info-button.label"); - expect(fixture.nativeElement.getAttribute("aria-label")).toBe(DEFAULT_LABEL); + expect(fixture.nativeElement.getAttribute("aria-label")).toBe( + DEFAULT_LABEL, + ); }); it("should set custom aria-label when provided", () => { diff --git a/tedi/components/buttons/info-button/info-button.component.ts b/src/tedi/components/buttons/info-button/info-button.component.ts similarity index 60% rename from tedi/components/buttons/info-button/info-button.component.ts rename to src/tedi/components/buttons/info-button/info-button.component.ts index 40f397eec..22eb23191 100644 --- a/tedi/components/buttons/info-button/info-button.component.ts +++ b/src/tedi/components/buttons/info-button/info-button.component.ts @@ -1,4 +1,10 @@ -import { ChangeDetectionStrategy, Component, inject, input, ViewEncapsulation } from "@angular/core"; +import { + ChangeDetectionStrategy, + Component, + inject, + input, + ViewEncapsulation, +} from "@angular/core"; import { IconComponent } from "../../base/icon/icon.component"; import { TediTranslationService } from "../../../services"; @@ -11,9 +17,9 @@ import { TediTranslationService } from "../../../services"; changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: { - "class": "tedi-info-button", - "[attr.aria-label]": "ariaLabel() || _defaultLabel()" - } + class: "tedi-info-button", + "[attr.aria-label]": "ariaLabel() || _defaultLabel()", + }, }) export class InfoButtonComponent { readonly translationService = inject(TediTranslationService); @@ -21,7 +27,8 @@ export class InfoButtonComponent { /** * InfoButton ARIA label */ - readonly ariaLabel = input(undefined, { alias: 'aria-label' }); + readonly ariaLabel = input(undefined, { alias: "aria-label" }); - private readonly _defaultLabel = this.translationService.track('info-button.label'); + private readonly _defaultLabel = + this.translationService.track("info-button.label"); } diff --git a/tedi/components/buttons/info-button/info-button.stories.ts b/src/tedi/components/buttons/info-button/info-button.stories.ts similarity index 98% rename from tedi/components/buttons/info-button/info-button.stories.ts rename to src/tedi/components/buttons/info-button/info-button.stories.ts index e2ebb3e1c..749220484 100644 --- a/tedi/components/buttons/info-button/info-button.stories.ts +++ b/src/tedi/components/buttons/info-button/info-button.stories.ts @@ -27,7 +27,7 @@ export default { }, }, args: { - "aria-label": undefined + "aria-label": undefined, }, component: InfoButtonComponent, decorators: [ diff --git a/tedi/components/cards/accordion/accordion-item-content/accordion-item-content.component.html b/src/tedi/components/cards/accordion/accordion-item-content/accordion-item-content.component.html similarity index 100% rename from tedi/components/cards/accordion/accordion-item-content/accordion-item-content.component.html rename to src/tedi/components/cards/accordion/accordion-item-content/accordion-item-content.component.html diff --git a/tedi/components/cards/accordion/accordion-item-content/accordion-item-content.component.scss b/src/tedi/components/cards/accordion/accordion-item-content/accordion-item-content.component.scss similarity index 100% rename from tedi/components/cards/accordion/accordion-item-content/accordion-item-content.component.scss rename to src/tedi/components/cards/accordion/accordion-item-content/accordion-item-content.component.scss diff --git a/tedi/components/cards/accordion/accordion-item-content/accordion-item-content.component.spec.ts b/src/tedi/components/cards/accordion/accordion-item-content/accordion-item-content.component.spec.ts similarity index 100% rename from tedi/components/cards/accordion/accordion-item-content/accordion-item-content.component.spec.ts rename to src/tedi/components/cards/accordion/accordion-item-content/accordion-item-content.component.spec.ts diff --git a/tedi/components/cards/accordion/accordion-item-content/accordion-item-content.component.ts b/src/tedi/components/cards/accordion/accordion-item-content/accordion-item-content.component.ts similarity index 92% rename from tedi/components/cards/accordion/accordion-item-content/accordion-item-content.component.ts rename to src/tedi/components/cards/accordion/accordion-item-content/accordion-item-content.component.ts index 30fa9f3ff..33713f357 100644 --- a/tedi/components/cards/accordion/accordion-item-content/accordion-item-content.component.ts +++ b/src/tedi/components/cards/accordion/accordion-item-content/accordion-item-content.component.ts @@ -17,7 +17,8 @@ import { AccordionItemComponent } from "../accordion-item/accordion-item.compone imports: [], host: { "[class.tedi-accordion-item-content]": "true", - "[class.tedi-accordion-item-content--with-icon-card]": "item.showIconCard()", + "[class.tedi-accordion-item-content--with-icon-card]": + "item.showIconCard()", "[class]": "contentClass() ?? ''", "[id]": "contentId", "[attr.role]": "expanded() ? 'region' : null", diff --git a/tedi/components/cards/accordion/accordion-item-content/index.ts b/src/tedi/components/cards/accordion/accordion-item-content/index.ts similarity index 100% rename from tedi/components/cards/accordion/accordion-item-content/index.ts rename to src/tedi/components/cards/accordion/accordion-item-content/index.ts diff --git a/tedi/components/cards/accordion/accordion-item-header/accordion-item-header.component.html b/src/tedi/components/cards/accordion/accordion-item-header/accordion-item-header.component.html similarity index 100% rename from tedi/components/cards/accordion/accordion-item-header/accordion-item-header.component.html rename to src/tedi/components/cards/accordion/accordion-item-header/accordion-item-header.component.html diff --git a/tedi/components/cards/accordion/accordion-item-header/accordion-item-header.component.scss b/src/tedi/components/cards/accordion/accordion-item-header/accordion-item-header.component.scss similarity index 100% rename from tedi/components/cards/accordion/accordion-item-header/accordion-item-header.component.scss rename to src/tedi/components/cards/accordion/accordion-item-header/accordion-item-header.component.scss diff --git a/tedi/components/cards/accordion/accordion-item-header/accordion-item-header.component.spec.ts b/src/tedi/components/cards/accordion/accordion-item-header/accordion-item-header.component.spec.ts similarity index 100% rename from tedi/components/cards/accordion/accordion-item-header/accordion-item-header.component.spec.ts rename to src/tedi/components/cards/accordion/accordion-item-header/accordion-item-header.component.spec.ts diff --git a/tedi/components/cards/accordion/accordion-item-header/accordion-item-header.component.ts b/src/tedi/components/cards/accordion/accordion-item-header/accordion-item-header.component.ts similarity index 97% rename from tedi/components/cards/accordion/accordion-item-header/accordion-item-header.component.ts rename to src/tedi/components/cards/accordion/accordion-item-header/accordion-item-header.component.ts index 54a855a30..1200dc722 100644 --- a/tedi/components/cards/accordion/accordion-item-header/accordion-item-header.component.ts +++ b/src/tedi/components/cards/accordion/accordion-item-header/accordion-item-header.component.ts @@ -31,8 +31,7 @@ import { AccordionItemComponent } from "../accordion-item/accordion-item.compone "[class.tedi-accordion-item-header]": "true", "[class.tedi-accordion-item-header--hoverable]": "headerClickable()", "[class.tedi-accordion-item-header--expanded]": "expanded()", - "[class.tedi-accordion-item-header--with-icon-card]": - "item.showIconCard()", + "[class.tedi-accordion-item-header--with-icon-card]": "item.showIconCard()", "[class]": "headerClass() ?? ''", }, }) diff --git a/tedi/components/cards/accordion/accordion-item-header/index.ts b/src/tedi/components/cards/accordion/accordion-item-header/index.ts similarity index 100% rename from tedi/components/cards/accordion/accordion-item-header/index.ts rename to src/tedi/components/cards/accordion/accordion-item-header/index.ts diff --git a/tedi/components/cards/accordion/accordion-item/accordion-item.component.html b/src/tedi/components/cards/accordion/accordion-item/accordion-item.component.html similarity index 100% rename from tedi/components/cards/accordion/accordion-item/accordion-item.component.html rename to src/tedi/components/cards/accordion/accordion-item/accordion-item.component.html diff --git a/tedi/components/cards/accordion/accordion-item/accordion-item.component.scss b/src/tedi/components/cards/accordion/accordion-item/accordion-item.component.scss similarity index 100% rename from tedi/components/cards/accordion/accordion-item/accordion-item.component.scss rename to src/tedi/components/cards/accordion/accordion-item/accordion-item.component.scss diff --git a/tedi/components/cards/accordion/accordion-item/accordion-item.component.spec.ts b/src/tedi/components/cards/accordion/accordion-item/accordion-item.component.spec.ts similarity index 100% rename from tedi/components/cards/accordion/accordion-item/accordion-item.component.spec.ts rename to src/tedi/components/cards/accordion/accordion-item/accordion-item.component.spec.ts diff --git a/tedi/components/cards/accordion/accordion-item/accordion-item.component.ts b/src/tedi/components/cards/accordion/accordion-item/accordion-item.component.ts similarity index 100% rename from tedi/components/cards/accordion/accordion-item/accordion-item.component.ts rename to src/tedi/components/cards/accordion/accordion-item/accordion-item.component.ts diff --git a/tedi/components/cards/accordion/accordion-item/index.ts b/src/tedi/components/cards/accordion/accordion-item/index.ts similarity index 100% rename from tedi/components/cards/accordion/accordion-item/index.ts rename to src/tedi/components/cards/accordion/accordion-item/index.ts diff --git a/tedi/components/cards/accordion/accordion.stories.ts b/src/tedi/components/cards/accordion/accordion.stories.ts similarity index 100% rename from tedi/components/cards/accordion/accordion.stories.ts rename to src/tedi/components/cards/accordion/accordion.stories.ts diff --git a/tedi/components/cards/accordion/accordion/accordion.component.scss b/src/tedi/components/cards/accordion/accordion/accordion.component.scss similarity index 100% rename from tedi/components/cards/accordion/accordion/accordion.component.scss rename to src/tedi/components/cards/accordion/accordion/accordion.component.scss diff --git a/tedi/components/cards/accordion/accordion/accordion.component.spec.ts b/src/tedi/components/cards/accordion/accordion/accordion.component.spec.ts similarity index 100% rename from tedi/components/cards/accordion/accordion/accordion.component.spec.ts rename to src/tedi/components/cards/accordion/accordion/accordion.component.spec.ts diff --git a/tedi/components/cards/accordion/accordion/accordion.component.ts b/src/tedi/components/cards/accordion/accordion/accordion.component.ts similarity index 100% rename from tedi/components/cards/accordion/accordion/accordion.component.ts rename to src/tedi/components/cards/accordion/accordion/accordion.component.ts diff --git a/tedi/components/cards/accordion/accordion/index.ts b/src/tedi/components/cards/accordion/accordion/index.ts similarity index 100% rename from tedi/components/cards/accordion/accordion/index.ts rename to src/tedi/components/cards/accordion/accordion/index.ts diff --git a/tedi/components/cards/accordion/index.ts b/src/tedi/components/cards/accordion/index.ts similarity index 100% rename from tedi/components/cards/accordion/index.ts rename to src/tedi/components/cards/accordion/index.ts diff --git a/tedi/components/cards/index.ts b/src/tedi/components/cards/index.ts similarity index 100% rename from tedi/components/cards/index.ts rename to src/tedi/components/cards/index.ts diff --git a/tedi/components/content/card/_card-mixins.scss b/src/tedi/components/content/card/_card-mixins.scss similarity index 100% rename from tedi/components/content/card/_card-mixins.scss rename to src/tedi/components/content/card/_card-mixins.scss diff --git a/tedi/components/content/card/card-header/card-header.component.html b/src/tedi/components/content/card/card-content/card-content.component.html similarity index 100% rename from tedi/components/content/card/card-header/card-header.component.html rename to src/tedi/components/content/card/card-content/card-content.component.html diff --git a/tedi/components/content/card/card-content/card-content.component.scss b/src/tedi/components/content/card/card-content/card-content.component.scss similarity index 100% rename from tedi/components/content/card/card-content/card-content.component.scss rename to src/tedi/components/content/card/card-content/card-content.component.scss diff --git a/tedi/components/content/card/card-content/card-content.component.spec.ts b/src/tedi/components/content/card/card-content/card-content.component.spec.ts similarity index 96% rename from tedi/components/content/card/card-content/card-content.component.spec.ts rename to src/tedi/components/content/card/card-content/card-content.component.spec.ts index 95d16e48b..d3a5fa118 100644 --- a/tedi/components/content/card/card-content/card-content.component.spec.ts +++ b/src/tedi/components/content/card/card-content/card-content.component.spec.ts @@ -91,9 +91,15 @@ describe("CardContentComponent", () => { fixture.detectChanges(); const style = contentElement().style; expect(style.getPropertyValue("--card-content-padding-top")).toBe("1.5rem"); - expect(style.getPropertyValue("--card-content-padding-right")).toBe("1.5rem"); - expect(style.getPropertyValue("--card-content-padding-bottom")).toBe("1.5rem"); - expect(style.getPropertyValue("--card-content-padding-left")).toBe("1.5rem"); + expect(style.getPropertyValue("--card-content-padding-right")).toBe( + "1.5rem", + ); + expect(style.getPropertyValue("--card-content-padding-bottom")).toBe( + "1.5rem", + ); + expect(style.getPropertyValue("--card-content-padding-left")).toBe( + "1.5rem", + ); }); it("should apply vertical and horizontal padding", () => { @@ -101,7 +107,9 @@ describe("CardContentComponent", () => { fixture.detectChanges(); const style = contentElement().style; expect(style.getPropertyValue("--card-content-padding-top")).toBe("0.5rem"); - expect(style.getPropertyValue("--card-content-padding-bottom")).toBe("0.5rem"); + expect(style.getPropertyValue("--card-content-padding-bottom")).toBe( + "0.5rem", + ); expect(style.getPropertyValue("--card-content-padding-left")).toBe("2rem"); expect(style.getPropertyValue("--card-content-padding-right")).toBe("2rem"); }); @@ -111,9 +119,13 @@ describe("CardContentComponent", () => { fixture.detectChanges(); const style = contentElement().style; expect(style.getPropertyValue("--card-content-padding-top")).toBe("1rem"); - expect(style.getPropertyValue("--card-content-padding-left")).toBe("0.75rem"); + expect(style.getPropertyValue("--card-content-padding-left")).toBe( + "0.75rem", + ); expect(style.getPropertyValue("--card-content-padding-right")).toBe("0rem"); - expect(style.getPropertyValue("--card-content-padding-bottom")).toBe("0rem"); + expect(style.getPropertyValue("--card-content-padding-bottom")).toBe( + "0rem", + ); }); it("should apply background modifier class", () => { diff --git a/tedi/components/content/card/card-content/card-content.component.ts b/src/tedi/components/content/card/card-content/card-content.component.ts similarity index 92% rename from tedi/components/content/card/card-content/card-content.component.ts rename to src/tedi/components/content/card/card-content/card-content.component.ts index 2b63d30b7..ac5876923 100644 --- a/tedi/components/content/card/card-content/card-content.component.ts +++ b/src/tedi/components/content/card/card-content/card-content.component.ts @@ -43,9 +43,7 @@ export type CardContentInputs = { "[style]": "styles()", }, }) -export class CardContentComponent - implements BreakpointInputs -{ +export class CardContentComponent implements BreakpointInputs { /** * Background color. * @default primary @@ -130,11 +128,17 @@ export class CardContentComponent }); styles = computed(() => { - const { padding, backgroundImage, backgroundPosition, backgroundSize, backgroundRepeat } = - this.breakpointInputs(); + const { + padding, + backgroundImage, + backgroundPosition, + backgroundSize, + backgroundRepeat, + } = this.breakpointInputs(); const resolvedPadding = padding ?? this.card?.breakpointInputs().padding ?? this.defaultPadding(); - const styles: Record = getPaddingCssVariables(resolvedPadding); + const styles: Record = + getPaddingCssVariables(resolvedPadding); if (backgroundImage) { styles["background-image"] = `url(${backgroundImage})`; diff --git a/tedi/components/content/card/card-content/index.ts b/src/tedi/components/content/card/card-content/index.ts similarity index 100% rename from tedi/components/content/card/card-content/index.ts rename to src/tedi/components/content/card/card-content/index.ts diff --git a/tedi/components/content/card/card-icon/card-icon.component.html b/src/tedi/components/content/card/card-header/card-header.component.html similarity index 100% rename from tedi/components/content/card/card-icon/card-icon.component.html rename to src/tedi/components/content/card/card-header/card-header.component.html diff --git a/tedi/components/content/card/card-header/card-header.component.scss b/src/tedi/components/content/card/card-header/card-header.component.scss similarity index 100% rename from tedi/components/content/card/card-header/card-header.component.scss rename to src/tedi/components/content/card/card-header/card-header.component.scss diff --git a/tedi/components/content/card/card-header/card-header.component.spec.ts b/src/tedi/components/content/card/card-header/card-header.component.spec.ts similarity index 100% rename from tedi/components/content/card/card-header/card-header.component.spec.ts rename to src/tedi/components/content/card/card-header/card-header.component.spec.ts diff --git a/tedi/components/content/card/card-header/card-header.component.ts b/src/tedi/components/content/card/card-header/card-header.component.ts similarity index 100% rename from tedi/components/content/card/card-header/card-header.component.ts rename to src/tedi/components/content/card/card-header/card-header.component.ts diff --git a/tedi/components/content/card/card-header/index.ts b/src/tedi/components/content/card/card-header/index.ts similarity index 100% rename from tedi/components/content/card/card-header/index.ts rename to src/tedi/components/content/card/card-header/index.ts diff --git a/tedi/components/content/card/card-row/card-row.component.html b/src/tedi/components/content/card/card-icon/card-icon.component.html similarity index 100% rename from tedi/components/content/card/card-row/card-row.component.html rename to src/tedi/components/content/card/card-icon/card-icon.component.html diff --git a/tedi/components/content/card/card-icon/card-icon.component.scss b/src/tedi/components/content/card/card-icon/card-icon.component.scss similarity index 100% rename from tedi/components/content/card/card-icon/card-icon.component.scss rename to src/tedi/components/content/card/card-icon/card-icon.component.scss diff --git a/tedi/components/content/card/card-icon/card-icon.component.spec.ts b/src/tedi/components/content/card/card-icon/card-icon.component.spec.ts similarity index 96% rename from tedi/components/content/card/card-icon/card-icon.component.spec.ts rename to src/tedi/components/content/card/card-icon/card-icon.component.spec.ts index c733b3b78..1d02f9121 100644 --- a/tedi/components/content/card/card-icon/card-icon.component.spec.ts +++ b/src/tedi/components/content/card/card-icon/card-icon.component.spec.ts @@ -2,7 +2,11 @@ import { Component } from "@angular/core"; import { ComponentFixture, TestBed } from "@angular/core/testing"; import { BreakpointObserver } from "@angular/cdk/layout"; import { of } from "rxjs"; -import { CardIconComponent, CardIconSize, CardIconType } from "./card-icon.component"; +import { + CardIconComponent, + CardIconSize, + CardIconType, +} from "./card-icon.component"; import { CardBackground } from "../card.utils"; @Component({ @@ -81,5 +85,4 @@ describe("CardIconComponent", () => { "tedi-card-icon--background--accent", ); }); - }); diff --git a/tedi/components/content/card/card-icon/card-icon.component.ts b/src/tedi/components/content/card/card-icon/card-icon.component.ts similarity index 100% rename from tedi/components/content/card/card-icon/card-icon.component.ts rename to src/tedi/components/content/card/card-icon/card-icon.component.ts diff --git a/tedi/components/content/card/card-icon/index.ts b/src/tedi/components/content/card/card-icon/index.ts similarity index 100% rename from tedi/components/content/card/card-icon/index.ts rename to src/tedi/components/content/card/card-icon/index.ts diff --git a/tedi/components/content/card/card.component.html b/src/tedi/components/content/card/card-row/card-row.component.html similarity index 100% rename from tedi/components/content/card/card.component.html rename to src/tedi/components/content/card/card-row/card-row.component.html diff --git a/tedi/components/content/card/card-row/card-row.component.scss b/src/tedi/components/content/card/card-row/card-row.component.scss similarity index 100% rename from tedi/components/content/card/card-row/card-row.component.scss rename to src/tedi/components/content/card/card-row/card-row.component.scss diff --git a/tedi/components/content/card/card-row/card-row.component.spec.ts b/src/tedi/components/content/card/card-row/card-row.component.spec.ts similarity index 100% rename from tedi/components/content/card/card-row/card-row.component.spec.ts rename to src/tedi/components/content/card/card-row/card-row.component.spec.ts diff --git a/tedi/components/content/card/card-row/card-row.component.ts b/src/tedi/components/content/card/card-row/card-row.component.ts similarity index 100% rename from tedi/components/content/card/card-row/card-row.component.ts rename to src/tedi/components/content/card/card-row/card-row.component.ts diff --git a/tedi/components/content/card/card-row/index.ts b/src/tedi/components/content/card/card-row/index.ts similarity index 100% rename from tedi/components/content/card/card-row/index.ts rename to src/tedi/components/content/card/card-row/index.ts diff --git a/src/tedi/components/content/card/card.component.html b/src/tedi/components/content/card/card.component.html new file mode 100644 index 000000000..6dbc74306 --- /dev/null +++ b/src/tedi/components/content/card/card.component.html @@ -0,0 +1 @@ + diff --git a/tedi/components/content/card/card.component.scss b/src/tedi/components/content/card/card.component.scss similarity index 100% rename from tedi/components/content/card/card.component.scss rename to src/tedi/components/content/card/card.component.scss diff --git a/tedi/components/content/card/card.component.spec.ts b/src/tedi/components/content/card/card.component.spec.ts similarity index 97% rename from tedi/components/content/card/card.component.spec.ts rename to src/tedi/components/content/card/card.component.spec.ts index ee5444b2b..120982d3f 100644 --- a/tedi/components/content/card/card.component.spec.ts +++ b/src/tedi/components/content/card/card.component.spec.ts @@ -21,9 +21,7 @@ const BREAKPOINT_ORDER: Breakpoint[] = ["xs", "sm", "md", "lg", "xl", "xxl"]; class BreakpointServiceMock { current: Breakpoint = "xs"; - getBreakpointInputs( - inputs: Record, - ): TInputs { + getBreakpointInputs(inputs: Record): TInputs { let resolved: Record = {}; for (const key of Object.keys(inputs)) { @@ -74,9 +72,7 @@ describe("CardComponent", () => { TestBed.configureTestingModule({ imports: [TestHostComponent], - providers: [ - { provide: BreakpointService, useValue: breakpointService }, - ], + providers: [{ provide: BreakpointService, useValue: breakpointService }], }); fixture = TestBed.createComponent(TestHostComponent); diff --git a/tedi/components/content/card/card.component.ts b/src/tedi/components/content/card/card.component.ts similarity index 100% rename from tedi/components/content/card/card.component.ts rename to src/tedi/components/content/card/card.component.ts diff --git a/tedi/components/content/card/card.stories.ts b/src/tedi/components/content/card/card.stories.ts similarity index 97% rename from tedi/components/content/card/card.stories.ts rename to src/tedi/components/content/card/card.stories.ts index ba877596a..6daa0cf87 100644 --- a/tedi/components/content/card/card.stories.ts +++ b/src/tedi/components/content/card/card.stories.ts @@ -60,7 +60,11 @@ const CARD_BORDERS: CardBorderType[] = [ const CABBAGE_TEXT = "Kapsas (Brassica oleracea) on rohelise, punase (lilla) või valge (kahvaturohelise) lehestikuga kaheaastane taim, mida kasvatatakse üheaastase köögiviljana selle tihedate lehtpeade saamiseks."; -const inputArg = (summary: string, description: string, defaultValue?: string) => ({ +const inputArg = ( + summary: string, + description: string, + defaultValue?: string, +) => ({ description, table: { category: "inputs", @@ -90,12 +94,30 @@ const CARD_CONTENT_ARG_TYPES = named({ "Takes only as much width as its content needs instead of growing. Useful for icon or date cells inside tedi-card-row.", "false", ), - xs: inputArg("CardContentInputs", "Overrides inputs on the xs breakpoint (<576px)."), - sm: inputArg("CardContentInputs", "Overrides inputs on the sm breakpoint (≥576px)."), - md: inputArg("CardContentInputs", "Overrides inputs on the md breakpoint (≥768px)."), - lg: inputArg("CardContentInputs", "Overrides inputs on the lg breakpoint (≥992px)."), - xl: inputArg("CardContentInputs", "Overrides inputs on the xl breakpoint (≥1200px)."), - xxl: inputArg("CardContentInputs", "Overrides inputs on the xxl breakpoint (≥1400px)."), + xs: inputArg( + "CardContentInputs", + "Overrides inputs on the xs breakpoint (<576px).", + ), + sm: inputArg( + "CardContentInputs", + "Overrides inputs on the sm breakpoint (≥576px).", + ), + md: inputArg( + "CardContentInputs", + "Overrides inputs on the md breakpoint (≥768px).", + ), + lg: inputArg( + "CardContentInputs", + "Overrides inputs on the lg breakpoint (≥992px).", + ), + xl: inputArg( + "CardContentInputs", + "Overrides inputs on the xl breakpoint (≥1200px).", + ), + xxl: inputArg( + "CardContentInputs", + "Overrides inputs on the xxl breakpoint (≥1400px).", + ), }); const CARD_HEADER_ARG_TYPES = named({ @@ -108,7 +130,11 @@ const CARD_HEADER_ARG_TYPES = named({ }); const CARD_ICON_ARG_TYPES = named({ - type: inputArg('"default" | "brand"', "Visual type of the icon cell.", "default"), + type: inputArg( + '"default" | "brand"', + "Visual type of the icon cell.", + "default", + ), size: inputArg( '"default" | "small"', "Size of the icon cell. Pair the small size with a 16px icon.", @@ -119,7 +145,11 @@ const CARD_ICON_ARG_TYPES = named({ "Background color. Defaults to brand-primary for the brand type, otherwise secondary.", "secondary", ), - padding: inputArg("CardPadding", "Content padding.", "1 (0.75 for the small size)"), + padding: inputArg( + "CardPadding", + "Content padding.", + "1 (0.75 for the small size)", + ), }); const CARD_ROW_ARG_TYPES = named({}); @@ -1151,7 +1181,7 @@ export const SplitCardBody: Story = { docs: { description: { story: - "**Tip**: `tedi-card-row` lays its blocks out in a row by default. Since it is a flex container, you can change its direction at lower breakpoints with flex-direction utility classes. Here `class=\"flex-column flex-sm-row\"` stacks the two content blocks vertically below the `sm` breakpoint", + '**Tip**: `tedi-card-row` lays its blocks out in a row by default. Since it is a flex container, you can change its direction at lower breakpoints with flex-direction utility classes. Here `class="flex-column flex-sm-row"` stacks the two content blocks vertically below the `sm` breakpoint', }, }, }, diff --git a/tedi/components/content/card/card.utils.ts b/src/tedi/components/content/card/card.utils.ts similarity index 96% rename from tedi/components/content/card/card.utils.ts rename to src/tedi/components/content/card/card.utils.ts index e48d1f4c1..48a18bcf2 100644 --- a/tedi/components/content/card/card.utils.ts +++ b/src/tedi/components/content/card/card.utils.ts @@ -126,8 +126,16 @@ export function resolveCardBorderRadius( }; } - const { top, right, bottom, left, topLeft, topRight, bottomRight, bottomLeft } = - config ?? {}; + const { + top, + right, + bottom, + left, + topLeft, + topRight, + bottomRight, + bottomLeft, + } = config ?? {}; const sideTop = top !== false; const sideRight = right !== false; diff --git a/tedi/components/content/card/index.ts b/src/tedi/components/content/card/index.ts similarity index 100% rename from tedi/components/content/card/index.ts rename to src/tedi/components/content/card/index.ts diff --git a/tedi/components/content/carousel/carousel-content/carousel-content.component.html b/src/tedi/components/content/carousel/carousel-content/carousel-content.component.html similarity index 100% rename from tedi/components/content/carousel/carousel-content/carousel-content.component.html rename to src/tedi/components/content/carousel/carousel-content/carousel-content.component.html diff --git a/tedi/components/content/carousel/carousel-content/carousel-content.component.scss b/src/tedi/components/content/carousel/carousel-content/carousel-content.component.scss similarity index 100% rename from tedi/components/content/carousel/carousel-content/carousel-content.component.scss rename to src/tedi/components/content/carousel/carousel-content/carousel-content.component.scss diff --git a/tedi/components/content/carousel/carousel-content/carousel-content.component.ts b/src/tedi/components/content/carousel/carousel-content/carousel-content.component.ts similarity index 98% rename from tedi/components/content/carousel/carousel-content/carousel-content.component.ts rename to src/tedi/components/content/carousel/carousel-content/carousel-content.component.ts index 256d15d9b..271c7936c 100644 --- a/tedi/components/content/carousel/carousel-content/carousel-content.component.ts +++ b/src/tedi/components/content/carousel/carousel-content/carousel-content.component.ts @@ -146,7 +146,6 @@ export class CarouselContentComponent implements AfterViewInit, OnDestroy { return ((i % slidesCount) + slidesCount) % slidesCount; }); - readonly renderedActiveIndex = computed(() => { return this.trackIndex() - this.windowBase() + this.buffer(); }); @@ -158,7 +157,10 @@ export class CarouselContentComponent implements AfterViewInit, OnDestroy { isSlideVisible(renderedIndex: number): boolean { const activeIndex = this.renderedActiveIndex(); const slidesPerView = Math.ceil(this.currentSlidesPerView()); - return renderedIndex >= activeIndex && renderedIndex < activeIndex + slidesPerView; + return ( + renderedIndex >= activeIndex && + renderedIndex < activeIndex + slidesPerView + ); } readonly renderedIndices = computed(() => { @@ -263,7 +265,7 @@ export class CarouselContentComponent implements AfterViewInit, OnDestroy { const cellWidth = (this.viewportWidth() - this.currentGap() * (this.currentSlidesPerView() - 1)) / - this.currentSlidesPerView() + + this.currentSlidesPerView() + this.currentGap(); if (!cellWidth) { @@ -364,7 +366,7 @@ export class CarouselContentComponent implements AfterViewInit, OnDestroy { const cellWidth = (this.viewportWidth() - this.currentGap() * (this.currentSlidesPerView() - 1)) / - this.currentSlidesPerView() + + this.currentSlidesPerView() + this.currentGap(); if (!cellWidth) { @@ -500,7 +502,7 @@ export class CarouselContentComponent implements AfterViewInit, OnDestroy { const message = this.translationService.translate( "carousel.slide", slideNumber, - totalSlides + totalSlides, ); this.liveAnnouncer.announce(message, "polite"); diff --git a/tedi/components/content/carousel/carousel-footer/carousel-footer.component.scss b/src/tedi/components/content/carousel/carousel-footer/carousel-footer.component.scss similarity index 100% rename from tedi/components/content/carousel/carousel-footer/carousel-footer.component.scss rename to src/tedi/components/content/carousel/carousel-footer/carousel-footer.component.scss diff --git a/tedi/components/content/carousel/carousel-footer/carousel-footer.component.ts b/src/tedi/components/content/carousel/carousel-footer/carousel-footer.component.ts similarity index 100% rename from tedi/components/content/carousel/carousel-footer/carousel-footer.component.ts rename to src/tedi/components/content/carousel/carousel-footer/carousel-footer.component.ts diff --git a/tedi/components/content/carousel/carousel-header/carousel-header.component.scss b/src/tedi/components/content/carousel/carousel-header/carousel-header.component.scss similarity index 100% rename from tedi/components/content/carousel/carousel-header/carousel-header.component.scss rename to src/tedi/components/content/carousel/carousel-header/carousel-header.component.scss diff --git a/tedi/components/content/carousel/carousel-header/carousel-header.component.ts b/src/tedi/components/content/carousel/carousel-header/carousel-header.component.ts similarity index 100% rename from tedi/components/content/carousel/carousel-header/carousel-header.component.ts rename to src/tedi/components/content/carousel/carousel-header/carousel-header.component.ts diff --git a/tedi/components/content/carousel/carousel-indicators/carousel-indicators.component.html b/src/tedi/components/content/carousel/carousel-indicators/carousel-indicators.component.html similarity index 100% rename from tedi/components/content/carousel/carousel-indicators/carousel-indicators.component.html rename to src/tedi/components/content/carousel/carousel-indicators/carousel-indicators.component.html diff --git a/tedi/components/content/carousel/carousel-indicators/carousel-indicators.component.scss b/src/tedi/components/content/carousel/carousel-indicators/carousel-indicators.component.scss similarity index 100% rename from tedi/components/content/carousel/carousel-indicators/carousel-indicators.component.scss rename to src/tedi/components/content/carousel/carousel-indicators/carousel-indicators.component.scss diff --git a/tedi/components/content/carousel/carousel-indicators/carousel-indicators.component.ts b/src/tedi/components/content/carousel/carousel-indicators/carousel-indicators.component.ts similarity index 100% rename from tedi/components/content/carousel/carousel-indicators/carousel-indicators.component.ts rename to src/tedi/components/content/carousel/carousel-indicators/carousel-indicators.component.ts diff --git a/tedi/components/content/carousel/carousel-navigation/carousel-navigation.component.html b/src/tedi/components/content/carousel/carousel-navigation/carousel-navigation.component.html similarity index 100% rename from tedi/components/content/carousel/carousel-navigation/carousel-navigation.component.html rename to src/tedi/components/content/carousel/carousel-navigation/carousel-navigation.component.html diff --git a/tedi/components/content/carousel/carousel-navigation/carousel-navigation.component.scss b/src/tedi/components/content/carousel/carousel-navigation/carousel-navigation.component.scss similarity index 100% rename from tedi/components/content/carousel/carousel-navigation/carousel-navigation.component.scss rename to src/tedi/components/content/carousel/carousel-navigation/carousel-navigation.component.scss diff --git a/tedi/components/content/carousel/carousel-navigation/carousel-navigation.component.ts b/src/tedi/components/content/carousel/carousel-navigation/carousel-navigation.component.ts similarity index 100% rename from tedi/components/content/carousel/carousel-navigation/carousel-navigation.component.ts rename to src/tedi/components/content/carousel/carousel-navigation/carousel-navigation.component.ts diff --git a/tedi/components/content/carousel/carousel-slide.directive.ts b/src/tedi/components/content/carousel/carousel-slide.directive.ts similarity index 100% rename from tedi/components/content/carousel/carousel-slide.directive.ts rename to src/tedi/components/content/carousel/carousel-slide.directive.ts diff --git a/tedi/components/content/carousel/carousel-slide/carousel-slide.component.scss b/src/tedi/components/content/carousel/carousel-slide/carousel-slide.component.scss similarity index 100% rename from tedi/components/content/carousel/carousel-slide/carousel-slide.component.scss rename to src/tedi/components/content/carousel/carousel-slide/carousel-slide.component.scss diff --git a/tedi/components/content/carousel/carousel.component.html b/src/tedi/components/content/carousel/carousel.component.html similarity index 100% rename from tedi/components/content/carousel/carousel.component.html rename to src/tedi/components/content/carousel/carousel.component.html diff --git a/tedi/components/content/carousel/carousel.component.scss b/src/tedi/components/content/carousel/carousel.component.scss similarity index 100% rename from tedi/components/content/carousel/carousel.component.scss rename to src/tedi/components/content/carousel/carousel.component.scss diff --git a/tedi/components/content/carousel/carousel.component.spec.ts b/src/tedi/components/content/carousel/carousel.component.spec.ts similarity index 98% rename from tedi/components/content/carousel/carousel.component.spec.ts rename to src/tedi/components/content/carousel/carousel.component.spec.ts index df21b9920..73d3fd8b0 100644 --- a/tedi/components/content/carousel/carousel.component.spec.ts +++ b/src/tedi/components/content/carousel/carousel.component.spec.ts @@ -333,7 +333,13 @@ describe("CarouselContentComponent", () => { it("should return xxl value when above xxl breakpoint", async () => { (mockBreakpointService as any).isAboveBreakpoint = (bp: Breakpoint) => - signal(bp === "xxl" || bp === "xl" || bp === "lg" || bp === "md" || bp === "sm"); + signal( + bp === "xxl" || + bp === "xl" || + bp === "lg" || + bp === "md" || + bp === "sm", + ); fixture.componentRef.setInput("slidesPerView", slidesPerView); fixture.detectChanges(); @@ -409,7 +415,13 @@ describe("CarouselContentComponent", () => { it("should return xxl gap when above xxl breakpoint", async () => { (mockBreakpointService as any).isAboveBreakpoint = (bp: Breakpoint) => - signal(bp === "xxl" || bp === "xl" || bp === "lg" || bp === "md" || bp === "sm"); + signal( + bp === "xxl" || + bp === "xl" || + bp === "lg" || + bp === "md" || + bp === "sm", + ); fixture.componentRef.setInput("gap", gaps); fixture.detectChanges(); @@ -752,7 +764,7 @@ describe("CarouselContentComponent", () => { expect(mockLiveAnnouncer.announce).toHaveBeenCalledWith( "carousel.slide", - "polite" + "polite", ); jest.useRealTimers(); @@ -949,7 +961,6 @@ describe("CarouselContentComponent", () => { }); }); - describe("onTransitionEnd edge cases", () => { it("should ignore transition events from other elements", () => { const fakeNative = {}; @@ -1188,7 +1199,9 @@ describe("CarouselIndicatorsComponent", () => { it("should call carouselContent.goToIndex() with focusSlide when handleIndicatorClick() is triggered", () => { component.handleIndicatorClick(2); - expect(mockCarouselContent.goToIndex).toHaveBeenCalledWith(2, { focusSlide: true }); + expect(mockCarouselContent.goToIndex).toHaveBeenCalledWith(2, { + focusSlide: true, + }); }); }); @@ -1197,7 +1210,7 @@ describe("CarouselIndicatorsComponent", () => { imports: [CarouselNavigationComponent], template: ` `, }) -class TestNavigationHostComponent { } +class TestNavigationHostComponent {} describe("CarouselNavigationComponent", () => { let fixture: ComponentFixture; diff --git a/tedi/components/content/carousel/carousel.component.ts b/src/tedi/components/content/carousel/carousel.component.ts similarity index 100% rename from tedi/components/content/carousel/carousel.component.ts rename to src/tedi/components/content/carousel/carousel.component.ts diff --git a/tedi/components/content/carousel/carousel.stories.ts b/src/tedi/components/content/carousel/carousel.stories.ts similarity index 100% rename from tedi/components/content/carousel/carousel.stories.ts rename to src/tedi/components/content/carousel/carousel.stories.ts diff --git a/tedi/components/content/carousel/index.ts b/src/tedi/components/content/carousel/index.ts similarity index 100% rename from tedi/components/content/carousel/index.ts rename to src/tedi/components/content/carousel/index.ts diff --git a/tedi/components/content/index.ts b/src/tedi/components/content/index.ts similarity index 100% rename from tedi/components/content/index.ts rename to src/tedi/components/content/index.ts diff --git a/src/tedi/components/content/list/list.component.html b/src/tedi/components/content/list/list.component.html new file mode 100644 index 000000000..6dbc74306 --- /dev/null +++ b/src/tedi/components/content/list/list.component.html @@ -0,0 +1 @@ + diff --git a/tedi/components/content/list/list.component.scss b/src/tedi/components/content/list/list.component.scss similarity index 100% rename from tedi/components/content/list/list.component.scss rename to src/tedi/components/content/list/list.component.scss diff --git a/tedi/components/content/list/list.component.spec.ts b/src/tedi/components/content/list/list.component.spec.ts similarity index 100% rename from tedi/components/content/list/list.component.spec.ts rename to src/tedi/components/content/list/list.component.spec.ts diff --git a/tedi/components/content/list/list.component.ts b/src/tedi/components/content/list/list.component.ts similarity index 100% rename from tedi/components/content/list/list.component.ts rename to src/tedi/components/content/list/list.component.ts diff --git a/tedi/components/content/list/list.stories.ts b/src/tedi/components/content/list/list.stories.ts similarity index 100% rename from tedi/components/content/list/list.stories.ts rename to src/tedi/components/content/list/list.stories.ts diff --git a/tedi/components/content/table/cells-and-templates.mdx b/src/tedi/components/content/table/cells-and-templates.mdx similarity index 100% rename from tedi/components/content/table/cells-and-templates.mdx rename to src/tedi/components/content/table/cells-and-templates.mdx diff --git a/tedi/components/content/table/index.ts b/src/tedi/components/content/table/index.ts similarity index 100% rename from tedi/components/content/table/index.ts rename to src/tedi/components/content/table/index.ts diff --git a/tedi/components/content/table/row-span.utils.ts b/src/tedi/components/content/table/row-span.utils.ts similarity index 100% rename from tedi/components/content/table/row-span.utils.ts rename to src/tedi/components/content/table/row-span.utils.ts diff --git a/tedi/components/content/table/state-management-validation.spec.ts b/src/tedi/components/content/table/state-management-validation.spec.ts similarity index 98% rename from tedi/components/content/table/state-management-validation.spec.ts rename to src/tedi/components/content/table/state-management-validation.spec.ts index 67b95c9e3..e97b384da 100644 --- a/tedi/components/content/table/state-management-validation.spec.ts +++ b/src/tedi/components/content/table/state-management-validation.spec.ts @@ -105,13 +105,17 @@ function bodyRowTexts(fixture: ComponentFixture): string[] { ).map((row) => (row as HTMLElement).textContent?.trim() ?? ""); } -function sortButton(fixture: ComponentFixture): HTMLButtonElement { +function sortButton( + fixture: ComponentFixture, +): HTMLButtonElement { return fixture.nativeElement.querySelector( "button.tedi-table-header-button", ) as HTMLButtonElement; } -function headerCellAriaSort(fixture: ComponentFixture): string | null { +function headerCellAriaSort( + fixture: ComponentFixture, +): string | null { return ( fixture.nativeElement.querySelector( ".tedi-table__head .tedi-table__header-cell", diff --git a/tedi/components/content/table/state-management.mdx b/src/tedi/components/content/table/state-management.mdx similarity index 100% rename from tedi/components/content/table/state-management.mdx rename to src/tedi/components/content/table/state-management.mdx diff --git a/tedi/components/content/table/table-columns-menu/index.ts b/src/tedi/components/content/table/table-columns-menu/index.ts similarity index 100% rename from tedi/components/content/table/table-columns-menu/index.ts rename to src/tedi/components/content/table/table-columns-menu/index.ts diff --git a/tedi/components/content/table/table-columns-menu/table-columns-menu.component.html b/src/tedi/components/content/table/table-columns-menu/table-columns-menu.component.html similarity index 100% rename from tedi/components/content/table/table-columns-menu/table-columns-menu.component.html rename to src/tedi/components/content/table/table-columns-menu/table-columns-menu.component.html diff --git a/tedi/components/content/table/table-columns-menu/table-columns-menu.component.scss b/src/tedi/components/content/table/table-columns-menu/table-columns-menu.component.scss similarity index 100% rename from tedi/components/content/table/table-columns-menu/table-columns-menu.component.scss rename to src/tedi/components/content/table/table-columns-menu/table-columns-menu.component.scss diff --git a/tedi/components/content/table/table-columns-menu/table-columns-menu.component.ts b/src/tedi/components/content/table/table-columns-menu/table-columns-menu.component.ts similarity index 100% rename from tedi/components/content/table/table-columns-menu/table-columns-menu.component.ts rename to src/tedi/components/content/table/table-columns-menu/table-columns-menu.component.ts diff --git a/tedi/components/content/table/table-header-button/index.ts b/src/tedi/components/content/table/table-header-button/index.ts similarity index 100% rename from tedi/components/content/table/table-header-button/index.ts rename to src/tedi/components/content/table/table-header-button/index.ts diff --git a/tedi/components/content/table/table-header-button/table-header-button.component.scss b/src/tedi/components/content/table/table-header-button/table-header-button.component.scss similarity index 100% rename from tedi/components/content/table/table-header-button/table-header-button.component.scss rename to src/tedi/components/content/table/table-header-button/table-header-button.component.scss diff --git a/tedi/components/content/table/table-header-button/table-header-button.component.spec.ts b/src/tedi/components/content/table/table-header-button/table-header-button.component.spec.ts similarity index 100% rename from tedi/components/content/table/table-header-button/table-header-button.component.spec.ts rename to src/tedi/components/content/table/table-header-button/table-header-button.component.spec.ts diff --git a/tedi/components/content/table/table-header-button/table-header-button.component.ts b/src/tedi/components/content/table/table-header-button/table-header-button.component.ts similarity index 100% rename from tedi/components/content/table/table-header-button/table-header-button.component.ts rename to src/tedi/components/content/table/table-header-button/table-header-button.component.ts diff --git a/tedi/components/content/table/table-toolbar/index.ts b/src/tedi/components/content/table/table-toolbar/index.ts similarity index 100% rename from tedi/components/content/table/table-toolbar/index.ts rename to src/tedi/components/content/table/table-toolbar/index.ts diff --git a/tedi/components/content/table/table-toolbar/table-toolbar.component.scss b/src/tedi/components/content/table/table-toolbar/table-toolbar.component.scss similarity index 100% rename from tedi/components/content/table/table-toolbar/table-toolbar.component.scss rename to src/tedi/components/content/table/table-toolbar/table-toolbar.component.scss diff --git a/tedi/components/content/table/table-toolbar/table-toolbar.component.spec.ts b/src/tedi/components/content/table/table-toolbar/table-toolbar.component.spec.ts similarity index 86% rename from tedi/components/content/table/table-toolbar/table-toolbar.component.spec.ts rename to src/tedi/components/content/table/table-toolbar/table-toolbar.component.spec.ts index 1a384765b..a36934647 100644 --- a/tedi/components/content/table/table-toolbar/table-toolbar.component.spec.ts +++ b/src/tedi/components/content/table/table-toolbar/table-toolbar.component.spec.ts @@ -5,7 +5,9 @@ import { TediTableToolbarComponent } from "./table-toolbar.component"; @Component({ standalone: true, imports: [TediTableToolbarComponent], - template: `Hi`, + template: `Hi`, }) class HostComponent {} diff --git a/tedi/components/content/table/table-toolbar/table-toolbar.component.ts b/src/tedi/components/content/table/table-toolbar/table-toolbar.component.ts similarity index 100% rename from tedi/components/content/table/table-toolbar/table-toolbar.component.ts rename to src/tedi/components/content/table/table-toolbar/table-toolbar.component.ts diff --git a/tedi/components/content/table/table.component.html b/src/tedi/components/content/table/table.component.html similarity index 99% rename from tedi/components/content/table/table.component.html rename to src/tedi/components/content/table/table.component.html index 63e462497..4faa2aef2 100644 --- a/tedi/components/content/table/table.component.html +++ b/src/tedi/components/content/table/table.component.html @@ -507,7 +507,10 @@
diff --git a/tedi/components/content/table/table.component.scss b/src/tedi/components/content/table/table.component.scss similarity index 100% rename from tedi/components/content/table/table.component.scss rename to src/tedi/components/content/table/table.component.scss diff --git a/tedi/components/content/table/table.component.spec.ts b/src/tedi/components/content/table/table.component.spec.ts similarity index 90% rename from tedi/components/content/table/table.component.spec.ts rename to src/tedi/components/content/table/table.component.spec.ts index 5fcef115c..e61c27dd4 100644 --- a/tedi/components/content/table/table.component.spec.ts +++ b/src/tedi/components/content/table/table.component.spec.ts @@ -1,11 +1,14 @@ -import { Component, signal, TemplateRef, viewChild, input } from "@angular/core"; +import { + Component, + signal, + TemplateRef, + viewChild, + input, +} from "@angular/core"; import { ComponentFixture, TestBed } from "@angular/core/testing"; import { By } from "@angular/platform-browser"; import { booleanAttribute } from "@angular/core"; -import { - type CdkDragDrop, - moveItemInArray, -} from "@angular/cdk/drag-drop"; +import { type CdkDragDrop, moveItemInArray } from "@angular/cdk/drag-drop"; import type { CellContext, Row } from "@tanstack/angular-table"; import { TediTableComponent } from "./table.component"; import { TediTableColumnsMenuComponent } from "./table-columns-menu/table-columns-menu.component"; @@ -45,7 +48,8 @@ const TRANSLATIONS: Record = { `Column ${label ?? ""} dropped at position ${pos ?? ""}`.trim(), "table.reorder.cancel": () => "Column reordering cancelled", "table.row-reorder.pickup": (pos) => `Row ${pos ?? ""} picked up`.trim(), - "table.row-reorder.move": (pos) => `Row moved to position ${pos ?? ""}`.trim(), + "table.row-reorder.move": (pos) => + `Row moved to position ${pos ?? ""}`.trim(), "table.row-reorder.drop": (pos) => `Row dropped at position ${pos ?? ""}`.trim(), "table.row-reorder.cancel": () => "Row reordering cancelled", @@ -125,13 +129,11 @@ const columns: TediColumnDef[] = [ `, }) class HostComponent { - readonly subTemplateRef = viewChild }>>( - "sub", - ); + readonly subTemplateRef = + viewChild }>>("sub"); readonly data = signal(data); - readonly columns = - signal[]>(columns); + readonly columns = signal[]>(columns); readonly size = signal<"medium" | "small">("medium"); readonly striped = signal(false); readonly enableRowSelection = signal< @@ -267,7 +269,8 @@ describe("TediTableComponent", () => { ) as HTMLInputElement; selectAll.click(); fixture.detectChanges(); - const lastEmit = fixture.componentInstance.onStateChange.mock.calls.at(-1); + const lastEmit = + fixture.componentInstance.onStateChange.mock.calls.at(-1); expect(lastEmit?.[0].rowSelection).toEqual({ "0": true, "1": true }); }); @@ -281,13 +284,13 @@ describe("TediTableComponent", () => { selectAll.click(); fixture.detectChanges(); const rows = Array.from( - fixture.nativeElement.querySelectorAll(".tedi-table__row") as NodeListOf< - HTMLTableRowElement - >, - ); - expect(rows.some((r) => r.classList.contains("tedi-table__row--selected"))).toBe( - true, + fixture.nativeElement.querySelectorAll( + ".tedi-table__row", + ) as NodeListOf, ); + expect( + rows.some((r) => r.classList.contains("tedi-table__row--selected")), + ).toBe(true); }); it("omits .tedi-table__row--selected when selectedRowHighlight is false", () => { @@ -301,9 +304,9 @@ describe("TediTableComponent", () => { selectAll.click(); fixture.detectChanges(); const rows = Array.from( - fixture.nativeElement.querySelectorAll(".tedi-table__row") as NodeListOf< - HTMLTableRowElement - >, + fixture.nativeElement.querySelectorAll( + ".tedi-table__row", + ) as NodeListOf, ); expect( rows.some((r) => r.classList.contains("tedi-table__row--selected")), @@ -399,9 +402,9 @@ describe("TediTableComponent", () => { ".tedi-table__body .tedi-table__row--sub-row", ), ) as HTMLElement[]; - expect(subRows.every((r) => r.getAttribute("aria-rowindex") === null)).toBe( - true, - ); + expect( + subRows.every((r) => r.getAttribute("aria-rowindex") === null), + ).toBe(true); }); }); @@ -538,9 +541,9 @@ describe("TediTableComponent", () => { fixture.nativeElement.querySelectorAll("tedi-pagination"); expect(paginators.length).toBe(1); const host = fixture.nativeElement.querySelector("tedi-table"); - expect(host?.classList.contains("tedi-table--has-pagination-bottom")).toBe( - true, - ); + expect( + host?.classList.contains("tedi-table--has-pagination-bottom"), + ).toBe(true); expect(host?.classList.contains("tedi-table--has-pagination-top")).toBe( false, ); @@ -565,9 +568,9 @@ describe("TediTableComponent", () => { expect(host?.classList.contains("tedi-table--has-pagination-top")).toBe( true, ); - expect(host?.classList.contains("tedi-table--has-pagination-bottom")).toBe( - true, - ); + expect( + host?.classList.contains("tedi-table--has-pagination-bottom"), + ).toBe(true); }); it("does not render the top paginator when base pagination is off", () => { @@ -595,12 +598,12 @@ describe("TediTableComponent", () => { }); fixture.detectChanges(); const paginator = fixture.nativeElement.querySelector("tedi-pagination"); - expect(paginator?.classList.contains("tedi-pagination--bg-transparent")).toBe( - true, - ); - expect(paginator?.classList.contains("tedi-pagination--divider-none")).toBe( - true, - ); + expect( + paginator?.classList.contains("tedi-pagination--bg-transparent"), + ).toBe(true); + expect( + paginator?.classList.contains("tedi-pagination--divider-none"), + ).toBe(true); }); it("defaults the top slot divider position to 'bottom'", () => { @@ -636,7 +639,9 @@ describe("TediTableComponent", () => { fixture.componentInstance.pagination.set({ pageSize: 5 }); fixture.componentInstance.paginationTop.set(true); fixture.detectChanges(); - const paginators = fixture.debugElement.queryAll(By.css("tedi-pagination")); + const paginators = fixture.debugElement.queryAll( + By.css("tedi-pagination"), + ); const initialPages = paginators.map((el) => el.componentInstance.page()); expect(initialPages).toEqual([1, 1]); @@ -772,12 +777,10 @@ describe("TediTableComponent", () => { const firstRow = fixture.nativeElement.querySelector( ".tedi-table__body .tedi-table__row", ) as HTMLElement; - const selectionSpy = jest - .spyOn(window, "getSelection") - .mockReturnValue({ - isCollapsed: false, - toString: () => "selected text", - } as unknown as Selection); + const selectionSpy = jest.spyOn(window, "getSelection").mockReturnValue({ + isCollapsed: false, + toString: () => "selected text", + } as unknown as Selection); firstRow.click(); expect(fixture.componentInstance.onRowClick).not.toHaveBeenCalled(); selectionSpy.mockRestore(); @@ -793,9 +796,7 @@ describe("TediTableComponent", () => { const firstRow = fixture.nativeElement.querySelector( ".tedi-table__body .tedi-table__row", ); - expect(firstRow?.getAttribute("aria-label")).toBe( - `Open ${data[0].name}`, - ); + expect(firstRow?.getAttribute("aria-label")).toBe(`Open ${data[0].name}`); }); it("omits aria-label when the row is not interactive", () => { @@ -1073,9 +1074,10 @@ describe("TediTableComponent", () => { }) class FilterableHostComponent { readonly data = signal(data); - readonly textFilterTpl = viewChild< - TemplateRef> - >("textFilter"); + readonly textFilterTpl = + viewChild>>( + "textFilter", + ); readonly filterableOption = signal(true); readonly columns = signal[]>([]); @@ -1222,7 +1224,9 @@ describe("TediTableComponent", () => { expect(rows[0].textContent).toContain("Anna"); // Trigger reports active state. const triggerAfter = findTriggerButton(fixture); - expect(triggerAfter?.classList.contains("tedi-table-header-button--selected")).toBe(true); + expect( + triggerAfter?.classList.contains("tedi-table-header-button--selected"), + ).toBe(true); }); it("resets the filter on Clear and closes the popover", () => { @@ -1254,12 +1258,16 @@ describe("TediTableComponent", () => { const column = table["table"].getColumn("name")!; // Initially neither. let trigger = findTriggerButton(fixture)!; - expect(trigger.classList.contains("tedi-table-header-button--selected")).toBe(false); + expect( + trigger.classList.contains("tedi-table-header-button--selected"), + ).toBe(false); // Apply. column.setFilterValue("Anna"); fixture.detectChanges(); trigger = findTriggerButton(fixture)!; - expect(trigger.classList.contains("tedi-table-header-button--selected")).toBe(true); + expect( + trigger.classList.contains("tedi-table-header-button--selected"), + ).toBe(true); // Filled variant means the icon's filled style is requested; verify // we forwarded the input by inspecting the icon's host class // (`tedi-icon--filled` is added when variant === 'filled'). @@ -1352,7 +1360,7 @@ describe("TediTableComponent", () => { ); // Sort button — whole title is clickable, no aria-label. const sortBtn = headers[0].querySelector( - 'button.tedi-table-header-button:not([aria-label])', + "button.tedi-table-header-button:not([aria-label])", ); // Filter trigger — aria-label set. const filterBtn = headers[0].querySelector( @@ -1392,7 +1400,9 @@ describe("Table: keyboard column reordering", () => { data = signal(data); columns = signal(reorderColumns); reorderableColumns = input(false, { transform: booleanAttribute }); - pagination = signal(undefined); + pagination = signal( + undefined, + ); } beforeEach(async () => { @@ -1406,9 +1416,9 @@ describe("Table: keyboard column reordering", () => { }); function _createFixture() { - fixture = TestBed.createComponent(ReorderTestHostComponent) as ComponentFixture< - ReorderTestHostComponent - >; + fixture = TestBed.createComponent( + ReorderTestHostComponent, + ) as ComponentFixture; return fixture; } @@ -1426,11 +1436,13 @@ describe("Table: keyboard column reordering", () => { `, }, }); - fixture = TestBed.createComponent(ReorderTestHostComponent) as ComponentFixture< - ReorderTestHostComponent - >; + fixture = TestBed.createComponent( + ReorderTestHostComponent, + ) as ComponentFixture; fixture.detectChanges(); - const liveRegion = fixture.nativeElement.querySelector('[aria-live="polite"]'); + const liveRegion = fixture.nativeElement.querySelector( + '[aria-live="polite"]', + ); expect(liveRegion).toBeNull(); }); @@ -1447,11 +1459,13 @@ describe("Table: keyboard column reordering", () => { `, }, }); - fixture = TestBed.createComponent(ReorderTestHostComponent) as ComponentFixture< - ReorderTestHostComponent - >; + fixture = TestBed.createComponent( + ReorderTestHostComponent, + ) as ComponentFixture; fixture.detectChanges(); - const liveRegion = fixture.nativeElement.querySelector('[aria-live="polite"]'); + const liveRegion = fixture.nativeElement.querySelector( + '[aria-live="polite"]', + ); expect(liveRegion).not.toBeNull(); }); @@ -1468,9 +1482,9 @@ describe("Table: keyboard column reordering", () => { `, }, }); - fixture = TestBed.createComponent(ReorderTestHostComponent) as ComponentFixture< - ReorderTestHostComponent - >; + fixture = TestBed.createComponent( + ReorderTestHostComponent, + ) as ComponentFixture; fixture.detectChanges(); await fixture.whenStable(); @@ -1493,9 +1507,9 @@ describe("Table: keyboard column reordering", () => { `, }, }); - fixture = TestBed.createComponent(ReorderTestHostComponent) as ComponentFixture< - ReorderTestHostComponent - >; + fixture = TestBed.createComponent( + ReorderTestHostComponent, + ) as ComponentFixture; fixture.detectChanges(); await fixture.whenStable(); @@ -1521,9 +1535,9 @@ describe("Table: keyboard column reordering", () => { `, }, }); - fixture = TestBed.createComponent(ReorderTestHostComponent) as ComponentFixture< - ReorderTestHostComponent - >; + fixture = TestBed.createComponent( + ReorderTestHostComponent, + ) as ComponentFixture; fixture.detectChanges(); await fixture.whenStable(); @@ -1538,10 +1552,12 @@ describe("Table: keyboard column reordering", () => { fixture.detectChanges(); const pickedCell = fixture.nativeElement.querySelector( - '.tedi-table__header-cell--picked-up', + ".tedi-table__header-cell--picked-up", ); expect(pickedCell).not.toBeNull(); - const pickedHandle = pickedCell?.querySelector(".tedi-table__drag-handle"); + const pickedHandle = pickedCell?.querySelector( + ".tedi-table__drag-handle", + ); expect(pickedHandle?.getAttribute("aria-pressed")).toBe("true"); }); @@ -1559,9 +1575,9 @@ describe("Table: keyboard column reordering", () => { `, }, }); - fixture = TestBed.createComponent(ReorderTestHostComponent) as ComponentFixture< - ReorderTestHostComponent - >; + fixture = TestBed.createComponent( + ReorderTestHostComponent, + ) as ComponentFixture; fixture.componentInstance.columns.set([ { id: "name", header: "Name", accessorKey: "name", sortable: true }, { id: "role", header: "Role", accessorKey: "role" }, @@ -1581,7 +1597,9 @@ describe("Table: keyboard column reordering", () => { // The column must stay un-picked and the default action must survive so // the sort button can activate normally. expect( - fixture.nativeElement.querySelector(".tedi-table__header-cell--picked-up"), + fixture.nativeElement.querySelector( + ".tedi-table__header-cell--picked-up", + ), ).toBeNull(); expect(event.defaultPrevented).toBe(false); }); @@ -1600,20 +1618,25 @@ describe("Table: keyboard column reordering", () => { `, }, }); - fixture = TestBed.createComponent(ReorderTestHostComponent) as ComponentFixture< - ReorderTestHostComponent - >; + fixture = TestBed.createComponent( + ReorderTestHostComponent, + ) as ComponentFixture; fixture.detectChanges(); await fixture.whenStable(); const cells = fixture.nativeElement.querySelectorAll( ".tedi-table__head .tedi-table__header-cell", ); - const event = new KeyboardEvent("keydown", { key: "Enter", bubbles: true }); + const event = new KeyboardEvent("keydown", { + key: "Enter", + bubbles: true, + }); cells[0].dispatchEvent(event); fixture.detectChanges(); - const liveRegion = fixture.nativeElement.querySelector('[aria-live="polite"]'); + const liveRegion = fixture.nativeElement.querySelector( + '[aria-live="polite"]', + ); expect(liveRegion?.textContent).toContain("Name"); }); }); @@ -1633,9 +1656,9 @@ describe("Table: keyboard column reordering", () => { `, }, }); - fixture = TestBed.createComponent(ReorderTestHostComponent) as ComponentFixture< - ReorderTestHostComponent - >; + fixture = TestBed.createComponent( + ReorderTestHostComponent, + ) as ComponentFixture; fixture.detectChanges(); await fixture.whenStable(); @@ -1644,16 +1667,25 @@ describe("Table: keyboard column reordering", () => { ); // Pick up first cell - const pickupEvent = new KeyboardEvent("keydown", { key: " ", bubbles: true }); + const pickupEvent = new KeyboardEvent("keydown", { + key: " ", + bubbles: true, + }); cells[0].dispatchEvent(pickupEvent); fixture.detectChanges(); // Move right twice - const rightEvent1 = new KeyboardEvent("keydown", { key: "ArrowRight", bubbles: true }); + const rightEvent1 = new KeyboardEvent("keydown", { + key: "ArrowRight", + bubbles: true, + }); cells[0].dispatchEvent(rightEvent1); fixture.detectChanges(); - const rightEvent2 = new KeyboardEvent("keydown", { key: "ArrowRight", bubbles: true }); + const rightEvent2 = new KeyboardEvent("keydown", { + key: "ArrowRight", + bubbles: true, + }); cells[0].dispatchEvent(rightEvent2); fixture.detectChanges(); @@ -1676,9 +1708,9 @@ describe("Table: keyboard column reordering", () => { `, }, }); - fixture = TestBed.createComponent(ReorderTestHostComponent) as ComponentFixture< - ReorderTestHostComponent - >; + fixture = TestBed.createComponent( + ReorderTestHostComponent, + ) as ComponentFixture; fixture.detectChanges(); await fixture.whenStable(); @@ -1687,12 +1719,18 @@ describe("Table: keyboard column reordering", () => { ); // Pick up first cell - const pickupEvent = new KeyboardEvent("keydown", { key: " ", bubbles: true }); + const pickupEvent = new KeyboardEvent("keydown", { + key: " ", + bubbles: true, + }); cells[0].dispatchEvent(pickupEvent); fixture.detectChanges(); // Try to move left (should clamp at 0 — column stays picked up) - const leftEvent = new KeyboardEvent("keydown", { key: "ArrowLeft", bubbles: true }); + const leftEvent = new KeyboardEvent("keydown", { + key: "ArrowLeft", + bubbles: true, + }); cells[0].dispatchEvent(leftEvent); fixture.detectChanges(); @@ -1716,9 +1754,9 @@ describe("Table: keyboard column reordering", () => { `, }, }); - fixture = TestBed.createComponent(ReorderTestHostComponent) as ComponentFixture< - ReorderTestHostComponent - >; + fixture = TestBed.createComponent( + ReorderTestHostComponent, + ) as ComponentFixture; fixture.detectChanges(); await fixture.whenStable(); @@ -1727,23 +1765,32 @@ describe("Table: keyboard column reordering", () => { ); // Pick up first cell - const pickupEvent = new KeyboardEvent("keydown", { key: " ", bubbles: true }); + const pickupEvent = new KeyboardEvent("keydown", { + key: " ", + bubbles: true, + }); cells[0].dispatchEvent(pickupEvent); fixture.detectChanges(); // Move right once - const rightEvent = new KeyboardEvent("keydown", { key: "ArrowRight", bubbles: true }); + const rightEvent = new KeyboardEvent("keydown", { + key: "ArrowRight", + bubbles: true, + }); cells[0].dispatchEvent(rightEvent); fixture.detectChanges(); // Drop - const dropEvent = new KeyboardEvent("keydown", { key: "Enter", bubbles: true }); + const dropEvent = new KeyboardEvent("keydown", { + key: "Enter", + bubbles: true, + }); cells[0].dispatchEvent(dropEvent); fixture.detectChanges(); // Should no longer be picked up const pickedCell = fixture.nativeElement.querySelector( - '.tedi-table__header-cell--picked-up', + ".tedi-table__header-cell--picked-up", ); expect(pickedCell).toBeNull(); }); @@ -1762,9 +1809,9 @@ describe("Table: keyboard column reordering", () => { `, }, }); - fixture = TestBed.createComponent(ReorderTestHostComponent) as ComponentFixture< - ReorderTestHostComponent - >; + fixture = TestBed.createComponent( + ReorderTestHostComponent, + ) as ComponentFixture; fixture.detectChanges(); await fixture.whenStable(); @@ -1773,15 +1820,23 @@ describe("Table: keyboard column reordering", () => { ); // Pick up and drop immediately (no move) - const pickupEvent = new KeyboardEvent("keydown", { key: " ", bubbles: true }); + const pickupEvent = new KeyboardEvent("keydown", { + key: " ", + bubbles: true, + }); cells[0].dispatchEvent(pickupEvent); fixture.detectChanges(); - const dropEvent = new KeyboardEvent("keydown", { key: " ", bubbles: true }); + const dropEvent = new KeyboardEvent("keydown", { + key: " ", + bubbles: true, + }); cells[0].dispatchEvent(dropEvent); fixture.detectChanges(); - const liveRegion = fixture.nativeElement.querySelector('[aria-live="polite"]'); + const liveRegion = fixture.nativeElement.querySelector( + '[aria-live="polite"]', + ); expect(liveRegion?.textContent).toContain("drop"); }); }); @@ -1801,9 +1856,9 @@ describe("Table: keyboard column reordering", () => { `, }, }); - fixture = TestBed.createComponent(ReorderTestHostComponent) as ComponentFixture< - ReorderTestHostComponent - >; + fixture = TestBed.createComponent( + ReorderTestHostComponent, + ) as ComponentFixture; fixture.detectChanges(); await fixture.whenStable(); @@ -1812,23 +1867,32 @@ describe("Table: keyboard column reordering", () => { ); // Pick up first cell - const pickupEvent = new KeyboardEvent("keydown", { key: " ", bubbles: true }); + const pickupEvent = new KeyboardEvent("keydown", { + key: " ", + bubbles: true, + }); cells[0].dispatchEvent(pickupEvent); fixture.detectChanges(); // Move right - const rightEvent = new KeyboardEvent("keydown", { key: "ArrowRight", bubbles: true }); + const rightEvent = new KeyboardEvent("keydown", { + key: "ArrowRight", + bubbles: true, + }); cells[0].dispatchEvent(rightEvent); fixture.detectChanges(); // Cancel - const escapeEvent = new KeyboardEvent("keydown", { key: "Escape", bubbles: true }); + const escapeEvent = new KeyboardEvent("keydown", { + key: "Escape", + bubbles: true, + }); cells[0].dispatchEvent(escapeEvent); fixture.detectChanges(); // Should no longer be picked up const pickedCell = fixture.nativeElement.querySelector( - '.tedi-table__header-cell--picked-up', + ".tedi-table__header-cell--picked-up", ); expect(pickedCell).toBeNull(); }); @@ -1847,9 +1911,9 @@ describe("Table: keyboard column reordering", () => { `, }, }); - fixture = TestBed.createComponent(ReorderTestHostComponent) as ComponentFixture< - ReorderTestHostComponent - >; + fixture = TestBed.createComponent( + ReorderTestHostComponent, + ) as ComponentFixture; fixture.detectChanges(); await fixture.whenStable(); @@ -1858,15 +1922,23 @@ describe("Table: keyboard column reordering", () => { ); // Pick up then cancel - const pickupEvent = new KeyboardEvent("keydown", { key: " ", bubbles: true }); + const pickupEvent = new KeyboardEvent("keydown", { + key: " ", + bubbles: true, + }); cells[0].dispatchEvent(pickupEvent); fixture.detectChanges(); - const escapeEvent = new KeyboardEvent("keydown", { key: "Escape", bubbles: true }); + const escapeEvent = new KeyboardEvent("keydown", { + key: "Escape", + bubbles: true, + }); cells[0].dispatchEvent(escapeEvent); fixture.detectChanges(); - const liveRegion = fixture.nativeElement.querySelector('[aria-live="polite"]'); + const liveRegion = fixture.nativeElement.querySelector( + '[aria-live="polite"]', + ); expect(liveRegion?.textContent).toContain("cancel"); }); }); @@ -1886,9 +1958,9 @@ describe("Table: keyboard column reordering", () => { `, }, }); - fixture = TestBed.createComponent(ReorderTestHostComponent) as ComponentFixture< - ReorderTestHostComponent - >; + fixture = TestBed.createComponent( + ReorderTestHostComponent, + ) as ComponentFixture; fixture.detectChanges(); await fixture.whenStable(); @@ -1903,7 +1975,10 @@ describe("Table: keyboard column reordering", () => { expect(handles[0]?.getAttribute("aria-pressed")).toBe("false"); // Pick up first cell - const pickupEvent = new KeyboardEvent("keydown", { key: " ", bubbles: true }); + const pickupEvent = new KeyboardEvent("keydown", { + key: " ", + bubbles: true, + }); cells[0].dispatchEvent(pickupEvent); fixture.detectChanges(); @@ -1929,9 +2004,9 @@ describe("Table: keyboard column reordering", () => { `, }, }); - fixture = TestBed.createComponent(ReorderTestHostComponent) as ComponentFixture< - ReorderTestHostComponent - >; + fixture = TestBed.createComponent( + ReorderTestHostComponent, + ) as ComponentFixture; fixture.detectChanges(); await fixture.whenStable(); @@ -1940,18 +2015,28 @@ describe("Table: keyboard column reordering", () => { ); // Pick up first cell - const pickupEvent = new KeyboardEvent("keydown", { key: " ", bubbles: true }); + const pickupEvent = new KeyboardEvent("keydown", { + key: " ", + bubbles: true, + }); cells[0].dispatchEvent(pickupEvent); fixture.detectChanges(); - expect(cells[0]?.classList.contains("tedi-table__header-cell--picked-up")).toBe(true); + expect( + cells[0]?.classList.contains("tedi-table__header-cell--picked-up"), + ).toBe(true); // Drop - const dropEvent = new KeyboardEvent("keydown", { key: " ", bubbles: true }); + const dropEvent = new KeyboardEvent("keydown", { + key: " ", + bubbles: true, + }); cells[0].dispatchEvent(dropEvent); fixture.detectChanges(); - expect(cells[0]?.classList.contains("tedi-table__header-cell--picked-up")).toBe(false); + expect( + cells[0]?.classList.contains("tedi-table__header-cell--picked-up"), + ).toBe(false); }); }); }); diff --git a/tedi/components/content/table/table.component.ts b/src/tedi/components/content/table/table.component.ts similarity index 98% rename from tedi/components/content/table/table.component.ts rename to src/tedi/components/content/table/table.component.ts index 5ca7f30d7..6c9bd2d3d 100644 --- a/tedi/components/content/table/table.component.ts +++ b/src/tedi/components/content/table/table.component.ts @@ -531,12 +531,10 @@ export class TediTableComponent { ); protected readonly placeholderLabel = this.translation.track("table.no-data"); - protected readonly rowDetailsLabel = this.translation.track( - "table.row-details", - ); - protected readonly dragColumnLabel = this.translation.track( - "table.drag-column", - ); + protected readonly rowDetailsLabel = + this.translation.track("table.row-details"); + protected readonly dragColumnLabel = + this.translation.track("table.drag-column"); protected readonly dragRowLabel = this.translation.track("table.drag-row"); // ── Keyboard column-reorder state machine ────────────────────────────────── @@ -571,8 +569,8 @@ export class TediTableComponent { protected readonly EXPAND_COLUMN_ID = EXPAND_COLUMN_ID; protected readonly DRAG_COLUMN_ID = DRAG_COLUMN_ID; - private readonly paginationOptions = computed( - () => { + private readonly paginationOptions = + computed(() => { const value = this.pagination(); if (!value) return null; if (value === true) @@ -584,8 +582,7 @@ export class TediTableComponent { ? [10, 25, 50] : value.pageSizeOptions, }; - }, - ); + }); protected readonly paginationEnabled = computed( () => this.paginationOptions() !== null, @@ -598,12 +595,11 @@ export class TediTableComponent { return Array.isArray(opts) && opts.length > 0 ? opts : []; }); - protected readonly resolvedBottomSlot = computed( - () => { + protected readonly resolvedBottomSlot = + computed(() => { if (!this.paginationEnabled()) return null; return resolveSlotOptions(this.pagination(), SLOT_DEFAULTS_BOTTOM); - }, - ); + }); protected readonly resolvedTopSlot = computed( () => { @@ -763,15 +759,15 @@ export class TediTableComponent { ), onPaginationChange: paginationEnabled ? (updater: Updater) => - this.applyPatch( - updater, - (prev) => - prev.pagination ?? { - pageIndex: 0, - pageSize: paginationOpts?.pageSize ?? 10, - }, - (next) => ({ pagination: next }), - ) + this.applyPatch( + updater, + (prev) => + prev.pagination ?? { + pageIndex: 0, + pageSize: paginationOpts?.pageSize ?? 10, + }, + (next) => ({ pagination: next }), + ) : undefined, }; } @@ -893,7 +889,10 @@ export class TediTableComponent { [this.fixedLayout(), "tedi-table--fixed-layout"], [this.interactive() || rowExpand, "tedi-table--clickable-rows"], [hoverEnabled, "tedi-table--row-hover"], - [this.reorderableRows() || this.reorderableColumns(), "tedi-table--draggable"], + [ + this.reorderableRows() || this.reorderableColumns(), + "tedi-table--draggable", + ], ]; const classes = ["tedi-table", `tedi-table--${this.size()}`]; for (const [on, name] of flags) if (on) classes.push(name); @@ -1120,7 +1119,8 @@ export class TediTableComponent { for (const def of this.augmentedColumns()) { const col = def as TediColumnDef & { accessorKey?: string }; const id = - col.id ?? (typeof col.accessorKey === "string" ? col.accessorKey : undefined); + col.id ?? + (typeof col.accessorKey === "string" ? col.accessorKey : undefined); if (id === undefined) continue; map.set(id, { hasSize: @@ -1144,7 +1144,10 @@ export class TediTableComponent { id: string; getSize: () => number; }): number | null { - if (this.fixedLayout() && !this.authoredColumnSizing().get(column.id)?.hasSize) + if ( + this.fixedLayout() && + !this.authoredColumnSizing().get(column.id)?.hasSize + ) return null; return column.getSize() || null; } @@ -1207,7 +1210,10 @@ export class TediTableComponent { /** Emit a synthetic `(rowDrop)` carrying source `data` indices, matching the * shape consumers already handle with `moveItemInArray`. */ - private emitRowMove(previousSourceIndex: number, currentSourceIndex: number): void { + private emitRowMove( + previousSourceIndex: number, + currentSourceIndex: number, + ): void { if (previousSourceIndex === currentSourceIndex) return; this.rowDrop.emit({ previousIndex: previousSourceIndex, @@ -1222,7 +1228,10 @@ export class TediTableComponent { } as unknown as CdkDragDrop); } - protected handleRowReorderKeydown(event: KeyboardEvent, row: Row): void { + protected handleRowReorderKeydown( + event: KeyboardEvent, + row: Row, + ): void { if (!this.reorderableRows()) return; const picked = this._pickedUpRow(); @@ -1353,9 +1362,7 @@ export class TediTableComponent { const fullOrder = prev.length > 0 ? [...prev] - : untracked(() => - this.table.getAllLeafColumns().map((c) => c.id), - ); + : untracked(() => this.table.getAllLeafColumns().map((c) => c.id)); const visibleSet = new Set(visibleLeafIds); let visibleCursor = 0; for (let i = 0; i < fullOrder.length; i++) { @@ -1417,9 +1424,7 @@ export class TediTableComponent { const fullOrder = prev.length > 0 ? [...prev] - : untracked(() => - this.table.getAllLeafColumns().map((c) => c.id), - ); + : untracked(() => this.table.getAllLeafColumns().map((c) => c.id)); const visibleSet = new Set(visibleLeafIds); let visibleCursor = 0; for (let i = 0; i < fullOrder.length; i++) { @@ -1437,9 +1442,7 @@ export class TediTableComponent { ); // Resolve the visible label of the moved column for ARIA announcements. - const col = this.table.getVisibleLeafColumns().find( - (c) => c.id === moved, - ); + const col = this.table.getVisibleLeafColumns().find((c) => c.id === moved); return col ? this.resolveColumnLabel(col) : moved; } diff --git a/tedi/components/content/table/table.context.ts b/src/tedi/components/content/table/table.context.ts similarity index 100% rename from tedi/components/content/table/table.context.ts rename to src/tedi/components/content/table/table.context.ts diff --git a/tedi/components/content/table/table.persistence.ts b/src/tedi/components/content/table/table.persistence.ts similarity index 100% rename from tedi/components/content/table/table.persistence.ts rename to src/tedi/components/content/table/table.persistence.ts diff --git a/tedi/components/content/table/table.stories.ts b/src/tedi/components/content/table/table.stories.ts similarity index 95% rename from tedi/components/content/table/table.stories.ts rename to src/tedi/components/content/table/table.stories.ts index bcc833573..817901d4a 100644 --- a/tedi/components/content/table/table.stories.ts +++ b/src/tedi/components/content/table/table.stories.ts @@ -11,10 +11,7 @@ import { viewChild, } from "@angular/core"; import { FormsModule } from "@angular/forms"; -import { - type CdkDragDrop, - moveItemInArray, -} from "@angular/cdk/drag-drop"; +import { type CdkDragDrop, moveItemInArray } from "@angular/cdk/drag-drop"; import { argsToTemplate, Meta, StoryObj } from "@storybook/angular"; import type { CellContext, Row } from "@tanstack/angular-table"; import { TediTableComponent } from "./table.component"; @@ -224,23 +221,62 @@ interface PersonRecord { } const filterablePeopleSeed: Omit[] = [ - { name: "Mari Maasikas", jobStart: "21.08.2019", age: 25, visits: 6, status: "Kehtiv" }, - { name: "Kalle Kapsapea", jobStart: "14.03.2020", age: 35, visits: 13, status: "Kehtiv" }, - { name: "Mart Mägi", jobStart: "02.01.2018", age: 43, visits: 26, status: "Kehtiv" }, - { name: "Meelis Mets", jobStart: "10.07.2021", age: 64, visits: 26, status: "Kehtetu" }, - { name: "Kadri Kask", jobStart: "30.11.2022", age: 32, visits: 4, status: "Aegumas" }, - { name: "Liis Linn", jobStart: "21.08.2019", age: 21, visits: 13, status: "Aegunud" }, + { + name: "Mari Maasikas", + jobStart: "21.08.2019", + age: 25, + visits: 6, + status: "Kehtiv", + }, + { + name: "Kalle Kapsapea", + jobStart: "14.03.2020", + age: 35, + visits: 13, + status: "Kehtiv", + }, + { + name: "Mart Mägi", + jobStart: "02.01.2018", + age: 43, + visits: 26, + status: "Kehtiv", + }, + { + name: "Meelis Mets", + jobStart: "10.07.2021", + age: 64, + visits: 26, + status: "Kehtetu", + }, + { + name: "Kadri Kask", + jobStart: "30.11.2022", + age: 32, + visits: 4, + status: "Aegumas", + }, + { + name: "Liis Linn", + jobStart: "21.08.2019", + age: 21, + visits: 13, + status: "Aegunud", + }, ]; -const filterablePeople: PersonRecord[] = Array.from({ length: 28 }, (_, index) => { - const seed = filterablePeopleSeed[index % filterablePeopleSeed.length]; - const round = Math.floor(index / filterablePeopleSeed.length); - return { - ...seed, - id: String(index + 1), - name: round === 0 ? seed.name : `${seed.name} ${round + 1}`, - }; -}); +const filterablePeople: PersonRecord[] = Array.from( + { length: 28 }, + (_, index) => { + const seed = filterablePeopleSeed[index % filterablePeopleSeed.length]; + const round = Math.floor(index / filterablePeopleSeed.length); + return { + ...seed, + id: String(index + 1), + name: round === 0 ? seed.name : `${seed.name} ${round + 1}`, + }; + }, +); interface CollapsibleRecord { id: string; @@ -260,20 +296,35 @@ const collapsibleSeed: Omit[] = [ { name: "Liis Linn", age: 21, visits: 13, status: "Aegunud" }, ]; -const collapsiblePeople: CollapsibleRecord[] = Array.from({ length: 28 }, (_, index) => { - const seed = collapsibleSeed[index % collapsibleSeed.length]; - const round = Math.floor(index / collapsibleSeed.length); - const name = round === 0 ? seed.name : `${seed.name} ${round + 1}`; - const id = String(index + 1); - const subRows: CollapsibleRecord[] | undefined = - index % 2 === 0 - ? [ - { id: `${id}-1`, name, age: seed.age, visits: Math.floor(seed.visits / 2), status: "Kehtiv" }, - { id: `${id}-2`, name, age: seed.age, visits: seed.visits - Math.floor(seed.visits / 2), status: "Kehtetu" }, - ] - : undefined; - return { ...seed, id, name, ...(subRows ? { subRows } : {}) }; -}); +const collapsiblePeople: CollapsibleRecord[] = Array.from( + { length: 28 }, + (_, index) => { + const seed = collapsibleSeed[index % collapsibleSeed.length]; + const round = Math.floor(index / collapsibleSeed.length); + const name = round === 0 ? seed.name : `${seed.name} ${round + 1}`; + const id = String(index + 1); + const subRows: CollapsibleRecord[] | undefined = + index % 2 === 0 + ? [ + { + id: `${id}-1`, + name, + age: seed.age, + visits: Math.floor(seed.visits / 2), + status: "Kehtiv", + }, + { + id: `${id}-2`, + name, + age: seed.age, + visits: seed.visits - Math.floor(seed.visits / 2), + status: "Kehtetu", + }, + ] + : undefined; + return { ...seed, id, name, ...(subRows ? { subRows } : {}) }; + }, +); interface StickyDoctor extends Doctor { personalId: string; @@ -327,10 +378,13 @@ const stickyDoctorSeed: Omit[] = [ }, ]; -const stickyDoctors: StickyDoctor[] = Array.from({ length: 28 }, (_, index) => ({ - ...stickyDoctorSeed[index % stickyDoctorSeed.length], - id: String(index + 1), -})); +const stickyDoctors: StickyDoctor[] = Array.from( + { length: 28 }, + (_, index) => ({ + ...stickyDoctorSeed[index % stickyDoctorSeed.length], + id: String(index + 1), + }), +); interface Service { id: string; @@ -341,12 +395,42 @@ interface Service { } const serviceSeed: Omit[] = [ - { service: "Vaimse tervise nõustamisteenus", doctor: "Pille Paunküla", price: 45.5, location: "Tallinn" }, - { service: "Hematoloogia", doctor: "Kalle Kuusik", price: 89.99, location: "Tallinn" }, - { service: "Ortopeedia", doctor: "Märt Männimets", price: 110, location: "Tallinn" }, - { service: "Dermatoloogia", doctor: "Anna Tamm", price: 75, location: "Tartu" }, - { service: "Kardioloogia", doctor: "Mati Saar", price: 120.5, location: "Pärnu" }, - { service: "Neuroloogia", doctor: "Liis Põld", price: 95.25, location: "Tallinn" }, + { + service: "Vaimse tervise nõustamisteenus", + doctor: "Pille Paunküla", + price: 45.5, + location: "Tallinn", + }, + { + service: "Hematoloogia", + doctor: "Kalle Kuusik", + price: 89.99, + location: "Tallinn", + }, + { + service: "Ortopeedia", + doctor: "Märt Männimets", + price: 110, + location: "Tallinn", + }, + { + service: "Dermatoloogia", + doctor: "Anna Tamm", + price: 75, + location: "Tartu", + }, + { + service: "Kardioloogia", + doctor: "Mati Saar", + price: 120.5, + location: "Pärnu", + }, + { + service: "Neuroloogia", + doctor: "Liis Põld", + price: 95.25, + location: "Tallinn", + }, { service: "Pediaatria", doctor: "Jaan Lepp", price: 60, location: "Tartu" }, ]; const services: Service[] = Array.from({ length: 28 }, (_, index) => ({ @@ -369,7 +453,12 @@ const customDoctorSeed: Omit[] = [ note: "Esineb maksehäireid", noteColor: "warning", }, - { name: "Mari Maasikas", specialty: "Kopsuarst", experience: "4 a", location: "Tallinn" }, + { + name: "Mari Maasikas", + specialty: "Kopsuarst", + experience: "4 a", + location: "Tallinn", + }, { name: "Vello Vaarikas", specialty: "Kõrva-nina-kurguarst", @@ -380,10 +469,13 @@ const customDoctorSeed: Omit[] = [ }, ]; -const customDoctors: CustomDoctor[] = Array.from({ length: 28 }, (_, index) => ({ - ...customDoctorSeed[index % customDoctorSeed.length], - id: String(index + 1), -})); +const customDoctors: CustomDoctor[] = Array.from( + { length: 28 }, + (_, index) => ({ + ...customDoctorSeed[index % customDoctorSeed.length], + id: String(index + 1), + }), +); const priceFormatter = new Intl.NumberFormat("et-EE", { minimumFractionDigits: 2, @@ -756,7 +848,8 @@ const meta: Meta = { }, }, stickyHeader: { - description: "Pin `` during vertical scroll. Requires `maxHeight`.", + description: + "Pin `` during vertical scroll. Requires `maxHeight`.", control: "boolean", table: { category: "appearance", @@ -996,7 +1089,10 @@ const meta: Meta = { description: "Empty-state content (string or TemplateRef). Defaults to the translated `table.no-data`.", control: false, - table: { category: "behavior", type: { summary: "string | TemplateRef" } }, + table: { + category: "behavior", + type: { summary: "string | TemplateRef" }, + }, }, state: { description: @@ -1050,7 +1146,8 @@ const meta: Meta = { table: { category: "outputs", type: { summary: "TableState" } }, }, rowClick: { - description: "Emits the activated row. Only fires when `interactive` is true.", + description: + "Emits the activated row. Only fires when `interactive` is true.", control: false, table: { category: "outputs", type: { summary: "Row" } }, }, @@ -1085,7 +1182,9 @@ type Story = StoryObj; ${TABLE_APPEARANCE_BINDINGS} /> - +
-
{{ ctx.row.original.name }}
+
+ {{ ctx.row.original.name }} +
- {{ ctx.row.original.specialty }} · {{ ctx.row.original.location }} + {{ ctx.row.original.specialty }} · + {{ ctx.row.original.location }}
- - @@ -3835,7 +3984,12 @@ class WithFooterStoryHostComponent extends TableStoryHostBase { salaryFooterTpl = viewChild>("salaryFooter"); columns = computed[]>(() => [ - { id: "name", header: "Name", accessorKey: "name", footer: `${people.length} people` }, + { + id: "name", + header: "Name", + accessorKey: "name", + footer: `${people.length} people`, + }, { id: "role", header: "Role", accessorKey: "role" }, { id: "location", header: "Location", accessorKey: "location" }, { @@ -3942,11 +4096,13 @@ export const WithColumnsMenu: Story = { selector: "tedi-reorderable-rows-story", imports: [TediTableComponent], template: ` -
+ " + >

Reorder rows two ways — both emit (rowDrop); this story applies it with CDK's moveItemInArray and pipes the new @@ -3958,8 +4114,8 @@ export const WithColumnsMenu: Story = { Keyboard: Tab to a row's handle, Space/Enter to pick it up, / to move (within the page), - Space/Enter to drop, - Escape to cancel. + Space/Enter to drop, Escape to + cancel.

@@ -4036,11 +4192,13 @@ export const ReorderableRows: Story = { selector: "tedi-reorderable-columns-story", imports: [TediTableComponent], template: ` -
+ " + >

Reorder columns two ways — both update the table's own columnOrder state internally: @@ -4050,9 +4208,10 @@ export const ReorderableRows: Story = {

  • Keyboard: Tab to a header, Space/Enter to pick it up, - / to move, - Space/Enter to drop, - Escape to cancel. + / to move, Space/Enter + to drop, Escape to cancel.
  • Persist the order across reloads by adding 'columnOrder' to @@ -4095,7 +4254,7 @@ export const ReorderableColumns: Story = { "a header, `Space`/`Enter` to pick up, Left/Right to move, " + "`Space`/`Enter` to drop, `Escape` to cancel. Both update the table's " + "own `columnOrder` state internally. The picked-up cell gets " + - "`aria-pressed=\"true\"` and a primary highlight, and a live region " + + '`aria-pressed="true"` and a primary highlight, and a live region ' + "announces pickup, drop, and cancel for screen readers.", }, source: { @@ -4137,13 +4296,16 @@ export const ReorderableColumns: Story = {

    Wiring it up in your app -
    {{ snippet }}
    + " + >{{ snippet }}
    ` inside " + "``. The table captures the template and routes it to " + "whichever paginator slot is currently displaying results.", @@ -4494,9 +4656,9 @@ export const PaginationFullyConfigured: Story = { ], template: `

    - Resize the viewport across the md breakpoint to - see the email / role / location columns collapse into an expandable - sub-row. The expand column itself only appears below the breakpoint. + Resize the viewport across the md breakpoint to see the email + / role / location columns collapse into an expandable sub-row. The expand + column itself only appears below the breakpoint.

    { * spanning via the `rowSpan` callback and a one-flag opt-in to the built-in * sort affordance via `sortable`. */ -export type TediColumnDef = ColumnDef & { +export type TediColumnDef = ColumnDef< + TData, + TValue +> & { /** * Body-level row spanning. Return `>1` to emit `rowspan="N"` and skip the * next `N-1` rows in this column; return `0` to skip rendering the cell diff --git a/tedi/components/content/text-group/index.ts b/src/tedi/components/content/text-group/index.ts similarity index 100% rename from tedi/components/content/text-group/index.ts rename to src/tedi/components/content/text-group/index.ts diff --git a/tedi/components/content/text-group/text-group-label.component.ts b/src/tedi/components/content/text-group/text-group-label.component.ts similarity index 100% rename from tedi/components/content/text-group/text-group-label.component.ts rename to src/tedi/components/content/text-group/text-group-label.component.ts diff --git a/tedi/components/content/text-group/text-group-value.component.ts b/src/tedi/components/content/text-group/text-group-value.component.ts similarity index 100% rename from tedi/components/content/text-group/text-group-value.component.ts rename to src/tedi/components/content/text-group/text-group-value.component.ts diff --git a/tedi/components/content/text-group/text-group.component.html b/src/tedi/components/content/text-group/text-group.component.html similarity index 100% rename from tedi/components/content/text-group/text-group.component.html rename to src/tedi/components/content/text-group/text-group.component.html diff --git a/tedi/components/content/text-group/text-group.component.scss b/src/tedi/components/content/text-group/text-group.component.scss similarity index 100% rename from tedi/components/content/text-group/text-group.component.scss rename to src/tedi/components/content/text-group/text-group.component.scss diff --git a/tedi/components/content/text-group/text-group.component.spec.ts b/src/tedi/components/content/text-group/text-group.component.spec.ts similarity index 100% rename from tedi/components/content/text-group/text-group.component.spec.ts rename to src/tedi/components/content/text-group/text-group.component.spec.ts diff --git a/tedi/components/content/text-group/text-group.component.ts b/src/tedi/components/content/text-group/text-group.component.ts similarity index 88% rename from tedi/components/content/text-group/text-group.component.ts rename to src/tedi/components/content/text-group/text-group.component.ts index 4ba27ad1e..17c06b7b3 100644 --- a/tedi/components/content/text-group/text-group.component.ts +++ b/src/tedi/components/content/text-group/text-group.component.ts @@ -35,18 +35,20 @@ export type TextGroupInputs = { selector: "tedi-text-group", templateUrl: "./text-group.component.html", styleUrl: "./text-group.component.scss", - imports: [ - LabelComponent - ], + imports: [LabelComponent], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, }) -export class TextGroupComponent implements BreakpointInputs, AfterContentChecked { +export class TextGroupComponent + implements BreakpointInputs, AfterContentChecked +{ type = input("horizontal"); labelWidth = input(); breakpointService = inject(BreakpointService); - readonly textGroupLabel = contentChild(TextGroupLabelComponent, { read: ElementRef }); + readonly textGroupLabel = contentChild(TextGroupLabelComponent, { + read: ElementRef, + }); readonly labelText = signal(null); xs = input(); @@ -71,7 +73,10 @@ export class TextGroupComponent implements BreakpointInputs, Af }); classes = computed(() => { - const classList = ['tedi-text-group', `tedi-text-group--${this.breakpointInputs().type}`]; + const classList = [ + "tedi-text-group", + `tedi-text-group--${this.breakpointInputs().type}`, + ]; return classList.join(" "); }); diff --git a/tedi/components/content/text-group/text-group.stories.ts b/src/tedi/components/content/text-group/text-group.stories.ts similarity index 98% rename from tedi/components/content/text-group/text-group.stories.ts rename to src/tedi/components/content/text-group/text-group.stories.ts index fa0b362aa..36343dc83 100644 --- a/tedi/components/content/text-group/text-group.stories.ts +++ b/src/tedi/components/content/text-group/text-group.stories.ts @@ -11,7 +11,7 @@ import { TextGroupComponent } from "./text-group.component"; import { IconComponent } from "../../base/icon/icon.component"; import { RowComponent } from "../../helpers/grid/row/row.component"; import { VerticalSpacingDirective } from "../../../directives/vertical-spacing/vertical-spacing.directive"; -import { createBreakpointArgTypes } from "../../../../src/dev-tools/createBreakpointArgTypes"; +import { createBreakpointArgTypes } from "../../../../dev-tools/createBreakpointArgTypes"; import { StatusBadgeComponent } from "@tedi-design-system/angular/community"; /** @@ -39,7 +39,7 @@ export default { TextGroupValueComponent, IconComponent, RowComponent, - StatusBadgeComponent + StatusBadgeComponent, ], }), ], @@ -92,7 +92,7 @@ export const Types: Story = { type: "vertical", label: "Accessibility", value: "Visible to doctor and representative", - statusBadge: 'Submitted' + statusBadge: "Submitted", }, { type: "vertical", diff --git a/tedi/components/filter/filter-content.directive.ts b/src/tedi/components/filter/filter-content.directive.ts similarity index 100% rename from tedi/components/filter/filter-content.directive.ts rename to src/tedi/components/filter/filter-content.directive.ts diff --git a/tedi/components/filter/filter-group.component.scss b/src/tedi/components/filter/filter-group.component.scss similarity index 100% rename from tedi/components/filter/filter-group.component.scss rename to src/tedi/components/filter/filter-group.component.scss diff --git a/tedi/components/filter/filter-group.component.spec.ts b/src/tedi/components/filter/filter-group.component.spec.ts similarity index 97% rename from tedi/components/filter/filter-group.component.spec.ts rename to src/tedi/components/filter/filter-group.component.spec.ts index 43ae51556..4e87e1d05 100644 --- a/tedi/components/filter/filter-group.component.spec.ts +++ b/src/tedi/components/filter/filter-group.component.spec.ts @@ -60,7 +60,9 @@ describe("FilterGroupComponent", () => { beforeEach(() => { TestBed.configureTestingModule({ imports: [SingleSelectGroupHostComponent], - providers: [{ provide: TEDI_TRANSLATION_DEFAULT_TOKEN, useValue: "et" }], + providers: [ + { provide: TEDI_TRANSLATION_DEFAULT_TOKEN, useValue: "et" }, + ], }); fixture = TestBed.createComponent(SingleSelectGroupHostComponent); host = fixture.componentInstance; @@ -262,7 +264,9 @@ describe("FilterGroupComponent", () => { beforeEach(() => { TestBed.configureTestingModule({ imports: [MultiSelectGroupHostComponent], - providers: [{ provide: TEDI_TRANSLATION_DEFAULT_TOKEN, useValue: "et" }], + providers: [ + { provide: TEDI_TRANSLATION_DEFAULT_TOKEN, useValue: "et" }, + ], }); fixture = TestBed.createComponent(MultiSelectGroupHostComponent); host = fixture.componentInstance; @@ -400,7 +404,9 @@ describe("FilterGroupComponent", () => { beforeEach(() => { TestBed.configureTestingModule({ imports: [UnmanagedGroupHostComponent], - providers: [{ provide: TEDI_TRANSLATION_DEFAULT_TOKEN, useValue: "et" }], + providers: [ + { provide: TEDI_TRANSLATION_DEFAULT_TOKEN, useValue: "et" }, + ], }); fixture = TestBed.createComponent(UnmanagedGroupHostComponent); fixture.detectChanges(); diff --git a/tedi/components/filter/filter-group.component.ts b/src/tedi/components/filter/filter-group.component.ts similarity index 100% rename from tedi/components/filter/filter-group.component.ts rename to src/tedi/components/filter/filter-group.component.ts diff --git a/tedi/components/filter/filter-prepend.directive.ts b/src/tedi/components/filter/filter-prepend.directive.ts similarity index 100% rename from tedi/components/filter/filter-prepend.directive.ts rename to src/tedi/components/filter/filter-prepend.directive.ts diff --git a/tedi/components/filter/filter.component.html b/src/tedi/components/filter/filter.component.html similarity index 79% rename from tedi/components/filter/filter.component.html rename to src/tedi/components/filter/filter.component.html index cc17a5ff5..32331cd97 100644 --- a/tedi/components/filter/filter.component.html +++ b/src/tedi/components/filter/filter.component.html @@ -58,12 +58,20 @@ (mousedown)="onOptionsMousedown()" (keydown)="onOptionsKeydown($event)" > - @for (option of filteredOptions(); track option.value; let i = $index) { + @for ( + option of filteredOptions(); + track option.value; + let i = $index + ) {
    - {{ option.label }} + {{ + option.label + }}
    } @@ -104,7 +114,13 @@ @@ -134,11 +152,17 @@ (mousedown)="onOptionsMousedown()" (keydown)="onOptionsKeydown($event)" > - @for (option of filteredOptions(); track option.value; let i = $index) { + @for ( + option of filteredOptions(); + track option.value; + let i = $index + ) {
    - {{ option.label }} + {{ + option.label + }}
    } @@ -191,10 +217,18 @@ @if (!hasDropdown() && isSelected()) { - + } -
    +
    @@ -205,11 +239,21 @@
    @if (isMultiSelect() && isSelected() && selectedCount() > 0) { - + } @if (hasDropdown()) { - + }
    diff --git a/tedi/components/filter/filter.component.scss b/src/tedi/components/filter/filter.component.scss similarity index 100% rename from tedi/components/filter/filter.component.scss rename to src/tedi/components/filter/filter.component.scss diff --git a/tedi/components/filter/filter.component.spec.ts b/src/tedi/components/filter/filter.component.spec.ts similarity index 94% rename from tedi/components/filter/filter.component.spec.ts rename to src/tedi/components/filter/filter.component.spec.ts index a764b16a9..5a0fa648e 100644 --- a/tedi/components/filter/filter.component.spec.ts +++ b/src/tedi/components/filter/filter.component.spec.ts @@ -69,11 +69,7 @@ class FilterWithCustomContentHostComponent { standalone: true, imports: [FilterComponent, ReactiveFormsModule], template: ` - + `, }) class SingleSelectHost2Component { @@ -87,11 +83,7 @@ class SingleSelectHost2Component { @Component({ standalone: true, - imports: [ - FilterComponent, - FilterPrependDirective, - StatusBadgeComponent, - ], + imports: [FilterComponent, FilterPrependDirective, StatusBadgeComponent], template: ` @@ -104,14 +96,15 @@ class PrependDefaultHostComponent { @Component({ standalone: true, - imports: [ - FilterComponent, - FilterPrependDirective, - StatusBadgeComponent, - ], + imports: [FilterComponent, FilterPrependDirective, StatusBadgeComponent], template: ` - + `, }) @@ -211,9 +204,7 @@ describe("FilterComponent", () => { describe("single-select mode", () => { it("should toggle selected state on click", () => { - const button = fixture.debugElement.query( - By.css(".tedi-filter__button"), - ); + const button = fixture.debugElement.query(By.css(".tedi-filter__button")); expect(component.selected()).toBe(false); @@ -240,9 +231,7 @@ describe("FilterComponent", () => { }); it("should set aria-pressed attribute", () => { - const button = fixture.debugElement.query( - By.css(".tedi-filter__button"), - ); + const button = fixture.debugElement.query(By.css(".tedi-filter__button")); expect(button.nativeElement.getAttribute("aria-pressed")).toBe("false"); @@ -270,9 +259,7 @@ describe("FilterComponent", () => { }); it("should not have aria-expanded in single-select mode", () => { - const button = fixture.debugElement.query( - By.css(".tedi-filter__button"), - ); + const button = fixture.debugElement.query(By.css(".tedi-filter__button")); expect(button.nativeElement.getAttribute("aria-expanded")).toBeNull(); }); }); @@ -313,19 +300,13 @@ describe("FilterComponent", () => { }); it("should set aria-expanded on button", () => { - const button = fixture.debugElement.query( - By.css(".tedi-filter__button"), - ); + const button = fixture.debugElement.query(By.css(".tedi-filter__button")); expect(button.nativeElement.getAttribute("aria-expanded")).toBe("false"); }); it("should set aria-haspopup on button", () => { - const button = fixture.debugElement.query( - By.css(".tedi-filter__button"), - ); - expect(button.nativeElement.getAttribute("aria-haspopup")).toBe( - "dialog", - ); + const button = fixture.debugElement.query(By.css(".tedi-filter__button")); + expect(button.nativeElement.getAttribute("aria-haspopup")).toBe("dialog"); }); it("should show selected class when values are present", () => { @@ -460,9 +441,7 @@ describe("FilterComponent", () => { it("should render dropdown-item-value-label for each option", () => { const labels = fixture.debugElement.queryAll( - By.css( - ".tedi-filter-dropdown__options tedi-dropdown-item-value-label", - ), + By.css(".tedi-filter-dropdown__options tedi-dropdown-item-value-label"), ); expect(labels.length).toBe(TEST_OPTIONS.length); expect(labels[0].nativeElement.textContent.trim()).toBe("Option A"); @@ -489,7 +468,9 @@ describe("FilterComponent", () => { it("should render select-all with dropdown-item-value checkbox type", () => { const selectAll = fixture.debugElement.query( - By.css(".tedi-filter-dropdown__item--select-all tedi-dropdown-item-value"), + By.css( + ".tedi-filter-dropdown__item--select-all tedi-dropdown-item-value", + ), ); expect(selectAll).toBeTruthy(); expect(selectAll.componentInstance.type()).toBe("checkbox"); @@ -500,7 +481,9 @@ describe("FilterComponent", () => { fixture.detectChanges(); const selectAll = fixture.debugElement.query( - By.css(".tedi-filter-dropdown__item--select-all tedi-dropdown-item-value"), + By.css( + ".tedi-filter-dropdown__item--select-all tedi-dropdown-item-value", + ), ); expect(selectAll.componentInstance.indeterminate()).toBe(true); expect(selectAll.componentInstance.selected()).toBe(false); @@ -511,7 +494,9 @@ describe("FilterComponent", () => { fixture.detectChanges(); const selectAll = fixture.debugElement.query( - By.css(".tedi-filter-dropdown__item--select-all tedi-dropdown-item-value"), + By.css( + ".tedi-filter-dropdown__item--select-all tedi-dropdown-item-value", + ), ); expect(selectAll.componentInstance.selected()).toBe(true); expect(selectAll.componentInstance.indeterminate()).toBe(false); @@ -690,19 +675,13 @@ describe("FilterComponent", () => { }); it("should have role=dialog on dropdown panel", () => { - const panel = fixture.debugElement.query( - By.css(".tedi-filter-dropdown"), - ); + const panel = fixture.debugElement.query(By.css(".tedi-filter-dropdown")); expect(panel.nativeElement.getAttribute("role")).toBe("dialog"); }); it("should have aria-label on dropdown panel matching text", () => { - const panel = fixture.debugElement.query( - By.css(".tedi-filter-dropdown"), - ); - expect(panel.nativeElement.getAttribute("aria-label")).toBe( - "Raviasutus", - ); + const panel = fixture.debugElement.query(By.css(".tedi-filter-dropdown")); + expect(panel.nativeElement.getAttribute("aria-label")).toBe("Raviasutus"); }); it("should have role=listbox on options container", () => { @@ -746,9 +725,7 @@ describe("FilterComponent", () => { const items = fixture.debugElement.queryAll( By.css(".tedi-filter-dropdown__options [role='option']"), ); - expect(items[0].nativeElement.getAttribute("aria-selected")).toBe( - "true", - ); + expect(items[0].nativeElement.getAttribute("aria-selected")).toBe("true"); expect(items[1].nativeElement.getAttribute("aria-selected")).toBe( "false", ); @@ -758,9 +735,7 @@ describe("FilterComponent", () => { const items = fixture.debugElement.queryAll( By.css(".tedi-filter-dropdown__options [role='option']"), ); - expect(items[3].nativeElement.getAttribute("aria-disabled")).toBe( - "true", - ); + expect(items[3].nativeElement.getAttribute("aria-disabled")).toBe("true"); expect(items[0].nativeElement.getAttribute("aria-disabled")).toBeNull(); }); @@ -809,9 +784,7 @@ describe("FilterComponent", () => { const selectAll = fixture.debugElement.query( By.css(".tedi-filter-dropdown__item--select-all"), ); - expect(selectAll.nativeElement.getAttribute("aria-checked")).toBe( - "true", - ); + expect(selectAll.nativeElement.getAttribute("aria-checked")).toBe("true"); }); it("should have role=searchbox on search input", () => { @@ -847,9 +820,9 @@ describe("FilterComponent", () => { By.css(".tedi-filter-dropdown__options"), ); const firstOptionId = component.getOptionId(0); - expect( - options.nativeElement.getAttribute("aria-activedescendant"), - ).toBe(firstOptionId); + expect(options.nativeElement.getAttribute("aria-activedescendant")).toBe( + firstOptionId, + ); }); it("should clear aria-activedescendant on options blur", () => { @@ -882,9 +855,7 @@ describe("FilterComponent", () => { it("should not have tabbable checkbox inputs inside dropdown-item-value", () => { const checkboxes = fixture.debugElement.queryAll( - By.css( - ".tedi-filter-dropdown__options input[type='checkbox']", - ), + By.css(".tedi-filter-dropdown__options input[type='checkbox']"), ); checkboxes.forEach((cb) => { expect(cb.nativeElement.getAttribute("tabindex")).toBe("-1"); @@ -976,18 +947,14 @@ describe("FilterComponent", () => { ); expect(component.activeOptionIndex()).toBe(2); - component.onOptionsKeydown( - new KeyboardEvent("keydown", { key: "Home" }), - ); + component.onOptionsKeydown(new KeyboardEvent("keydown", { key: "Home" })); expect(component.activeOptionIndex()).toBe(0); }); it("should move to last enabled option on End", () => { component.onOptionsFocus(); - component.onOptionsKeydown( - new KeyboardEvent("keydown", { key: "End" }), - ); + component.onOptionsKeydown(new KeyboardEvent("keydown", { key: "End" })); expect(component.activeOptionIndex()).toBe(2); }); @@ -1004,14 +971,10 @@ describe("FilterComponent", () => { it("should toggle focused option on Space", () => { component.onOptionsFocus(); - component.onOptionsKeydown( - new KeyboardEvent("keydown", { key: " " }), - ); + component.onOptionsKeydown(new KeyboardEvent("keydown", { key: " " })); expect(component.multiValues()).toEqual(["a"]); - component.onOptionsKeydown( - new KeyboardEvent("keydown", { key: " " }), - ); + component.onOptionsKeydown(new KeyboardEvent("keydown", { key: " " })); expect(component.multiValues()).toEqual([]); }); @@ -1135,7 +1098,6 @@ describe("FilterComponent", () => { }); }); - it("should project content via tediFilterPrepend slot", () => { const hostFixture = TestBed.createComponent(FilterWithIconHostComponent); hostFixture.detectChanges(); @@ -1356,12 +1318,8 @@ describe("FilterComponent", () => { fixture.componentRef.setInput("value", "a"); fixture.detectChanges(); - const items = fixture.debugElement.queryAll( - By.css("[role='option']"), - ); - expect(items[0].nativeElement.getAttribute("aria-selected")).toBe( - "true", - ); + const items = fixture.debugElement.queryAll(By.css("[role='option']")); + expect(items[0].nativeElement.getAttribute("aria-selected")).toBe("true"); expect(items[1].nativeElement.getAttribute("aria-selected")).toBe( "false", ); @@ -1405,9 +1363,7 @@ describe("FilterComponent", () => { it("should select option on Space keydown", () => { component.onOptionsFocus(); - component.onOptionsKeydown( - new KeyboardEvent("keydown", { key: " " }), - ); + component.onOptionsKeydown(new KeyboardEvent("keydown", { key: " " })); expect(component.value()).toBe("a"); }); @@ -1543,9 +1499,7 @@ describe("FilterComponent", () => { }); it("should not show count badge", () => { - const badge = hostFixture.debugElement.query( - By.css("tedi-status-badge"), - ); + const badge = hostFixture.debugElement.query(By.css("tedi-status-badge")); expect(badge).toBeNull(); }); @@ -1572,17 +1526,13 @@ describe("FilterComponent", () => { const button = hostFixture.debugElement.query( By.css(".tedi-filter__button"), ); - expect( - button.nativeElement.hasAttribute("aria-haspopup"), - ).toBe(true); + expect(button.nativeElement.hasAttribute("aria-haspopup")).toBe(true); }); }); describe("prepend directive", () => { it("should hide prepend when selected by default", () => { - const hostFixture = TestBed.createComponent( - PrependDefaultHostComponent, - ); + const hostFixture = TestBed.createComponent(PrependDefaultHostComponent); hostFixture.detectChanges(); const prepend = hostFixture.debugElement.query( @@ -1605,9 +1555,7 @@ describe("FilterComponent", () => { }); it("should keep prepend visible when hideWhenSelected is false", () => { - const hostFixture = TestBed.createComponent( - PrependVisibleHostComponent, - ); + const hostFixture = TestBed.createComponent(PrependVisibleHostComponent); hostFixture.detectChanges(); hostFixture.componentInstance.selected = true; @@ -1624,9 +1572,7 @@ describe("FilterComponent", () => { }); it("should show check icon alongside visible prepend when selected", () => { - const hostFixture = TestBed.createComponent( - PrependVisibleHostComponent, - ); + const hostFixture = TestBed.createComponent(PrependVisibleHostComponent); hostFixture.componentInstance.selected = true; hostFixture.detectChanges(); @@ -1645,9 +1591,7 @@ describe("FilterComponent", () => { }); it("should render check icon before prepend in DOM order", () => { - const hostFixture = TestBed.createComponent( - PrependVisibleHostComponent, - ); + const hostFixture = TestBed.createComponent(PrependVisibleHostComponent); hostFixture.componentInstance.selected = true; hostFixture.detectChanges(); @@ -1667,9 +1611,7 @@ describe("FilterComponent", () => { }); it("should hide prepend when no directive is used (backward compat)", () => { - const hostFixture = TestBed.createComponent( - FilterWithIconHostComponent, - ); + const hostFixture = TestBed.createComponent(FilterWithIconHostComponent); hostFixture.detectChanges(); const filter = hostFixture.debugElement.query( @@ -1731,11 +1673,8 @@ describe("FilterComponent", () => { By.css(".tedi-filter__append"), ); expect( - append.nativeElement.classList.contains( - "tedi-filter__append--hidden", - ), + append.nativeElement.classList.contains("tedi-filter__append--hidden"), ).toBe(false); }); - }); }); diff --git a/tedi/components/filter/filter.component.ts b/src/tedi/components/filter/filter.component.ts similarity index 95% rename from tedi/components/filter/filter.component.ts rename to src/tedi/components/filter/filter.component.ts index ac95157cd..c1bf2939f 100644 --- a/tedi/components/filter/filter.component.ts +++ b/src/tedi/components/filter/filter.component.ts @@ -202,9 +202,8 @@ export class FilterComponent implements ControlValueAccessor { return Array.isArray(v) ? v : []; }); - private readonly defaultSelectAllLabel = this.translationService.track( - "select.select-all", - ); + private readonly defaultSelectAllLabel = + this.translationService.track("select.select-all"); private readonly defaultClearLabel = this.translationService.track( "filter.clear-selection", ); @@ -221,9 +220,7 @@ export class FilterComponent implements ControlValueAccessor { private readonly formDisabled = signal(false); readonly isDisabled = computed( () => - this.disabled() || - this.formDisabled() || - !!this.filterGroup?.disabled(), + this.disabled() || this.formDisabled() || !!this.filterGroup?.disabled(), ); readonly searchTerm = signal(""); readonly activeOptionIndex = signal(-1); @@ -232,9 +229,7 @@ export class FilterComponent implements ControlValueAccessor { readonly activeDescendantId = computed(() => { const idx = this.activeOptionIndex(); if (idx === -1) return null; - return idx < this.filteredOptions().length - ? this.getOptionId(idx) - : null; + return idx < this.filteredOptions().length ? this.getOptionId(idx) : null; }); readonly iconSize = computed(() => (this.size() === "large" ? 24 : 18)); @@ -249,8 +244,7 @@ export class FilterComponent implements ControlValueAccessor { readonly hidePrepend = computed( () => - this.isSelected() && - (this.filterPrepend()?.hideWhenSelected() ?? true), + this.isSelected() && (this.filterPrepend()?.hideWhenSelected() ?? true), ); readonly isSelected = computed(() => { @@ -309,8 +303,8 @@ export class FilterComponent implements ControlValueAccessor { return selectedCount > 0 && selectedCount < filtered.length; }); - private onChange: (value: boolean | string | string[]) => void = () => { }; - private onTouched: () => void = () => { }; + private onChange: (value: boolean | string | string[]) => void = () => {}; + private onTouched: () => void = () => {}; writeValue(value: boolean | string | string[]): void { if (this.isMultiSelect()) { @@ -473,20 +467,14 @@ export class FilterComponent implements ControlValueAccessor { switch (event.key) { case "ArrowDown": { event.preventDefault(); - const next = this.findNextEnabledIndex( - this.activeOptionIndex(), - 1, - ); + const next = this.findNextEnabledIndex(this.activeOptionIndex(), 1); if (next !== -1) this.setActiveOption(next); break; } case "ArrowUp": { event.preventDefault(); - const prev = this.findNextEnabledIndex( - this.activeOptionIndex(), - -1, - ); + const prev = this.findNextEnabledIndex(this.activeOptionIndex(), -1); if (prev !== -1) this.setActiveOption(prev); break; } @@ -498,9 +486,7 @@ export class FilterComponent implements ControlValueAccessor { case "End": event.preventDefault(); - this.setActiveOption( - this.findNextEnabledIndex(options.length, -1), - ); + this.setActiveOption(this.findNextEnabledIndex(options.length, -1)); break; case "Enter": diff --git a/tedi/components/filter/filter.stories.ts b/src/tedi/components/filter/filter.stories.ts similarity index 94% rename from tedi/components/filter/filter.stories.ts rename to src/tedi/components/filter/filter.stories.ts index 7605279ce..54e39da23 100644 --- a/tedi/components/filter/filter.stories.ts +++ b/src/tedi/components/filter/filter.stories.ts @@ -79,7 +79,8 @@ export default { }, }, selected: { - description: "Whether the filter is selected (boolean toggle mode, used when no options are provided)", + description: + "Whether the filter is selected (boolean toggle mode, used when no options are provided)", control: { type: "boolean" }, table: { category: "inputs", @@ -108,7 +109,8 @@ export default { }, }, options: { - description: "Options for the dropdown. Enables single-select mode, or multiselect when combined with multiselect input", + description: + "Options for the dropdown. Enables single-select mode, or multiselect when combined with multiselect input", control: { type: "object" }, table: { category: "inputs", @@ -164,7 +166,8 @@ export default { }, }, selectAllLabel: { - description: 'Override for the "Select all" option label. Defaults to the translated string', + description: + 'Override for the "Select all" option label. Defaults to the translated string', control: { type: "text" }, table: { category: "inputs", @@ -173,7 +176,8 @@ export default { }, }, clearLabel: { - description: 'Override for the "Clear selection" action label. Defaults to the translated string', + description: + 'Override for the "Clear selection" action label. Defaults to the translated string', control: { type: "text" }, table: { category: "inputs", @@ -540,7 +544,10 @@ export const CustomDropdownContent: StoryObj = { { value: "month", label: "Kuu" }, { value: "year", label: "Aasta" }, ], - getLabel(periods: { value: string; label: string }[], value: string): string { + getLabel( + periods: { value: string; label: string }[], + value: string, + ): string { return periods.find((p) => p.value === value)?.label ?? "Periood"; }, }, @@ -586,15 +593,15 @@ export const Examples: StoryObj = { const analuusidControl = new FormControl(true); const uuringudControl = new FormControl(false); const uuringControl = new FormControl(""); - const raviasutusControl = new FormControl([ - "ltk", - "perh", - ]); + const raviasutusControl = new FormControl(["ltk", "perh"]); const teenusControl = new FormControl(""); const aegAlatesControl = new FormControl(""); const typeControl = new FormControl("all"); const teenusControl2 = new FormControl(""); - const categoryControl = new FormControl(["vastuvotud", "analuusid"]); + const categoryControl = new FormControl([ + "vastuvotud", + "analuusid", + ]); const typeControl2 = new FormControl("all"); const uuringOptions = [ @@ -652,39 +659,53 @@ export const Examples: StoryObj = { ], radioFilters: [ { - label: "Tüüp", control: typeControl, options: [ + label: "Tüüp", + control: typeControl, + options: [ { label: "Kõik", value: "all" }, { label: "Aktiivsed", value: "active" }, { label: "Lõpetatud", value: "done" }, - ] + ], }, { label: "Teenus", control: teenusControl, options: teenusOptions }, - { label: "Raviasutus", control: raviasutusControl, options: raviasutusOptions }, + { + label: "Raviasutus", + control: raviasutusControl, + options: raviasutusOptions, + }, ], checkboxFilters: [ { - label: "Kategooria", control: categoryControl, options: [ + label: "Kategooria", + control: categoryControl, + options: [ { label: "Vastuvõtud", value: "vastuvotud" }, { label: "Analüüsid", value: "analuusid" }, { label: "Uuringud", value: "uuringud" }, { label: "Vaktsineerimised", value: "vaktsineerimised" }, - ] + ], }, { label: "Teenus", control: teenusControl2, options: teenusOptions }, ], primaryFilters: [ { - label: "Tüüp", control: typeControl2, options: [ + label: "Tüüp", + control: typeControl2, + options: [ { label: "Kõik", value: "all" }, { label: "Aktiivsed", value: "active" }, { label: "Lõpetatud", value: "done" }, - ] + ], }, { label: "Uuring", control: uuringControl, options: uuringOptions }, ], clearAll() { - [vastuvotudControl, analuusidControl, uuringudControl].forEach((c) => c.setValue(false)); - [uuringControl, teenusControl, aegAlatesControl].forEach((c) => c.setValue("")); + [vastuvotudControl, analuusidControl, uuringudControl].forEach((c) => + c.setValue(false), + ); + [uuringControl, teenusControl, aegAlatesControl].forEach((c) => + c.setValue(""), + ); raviasutusControl.setValue([]); }, filters: [ @@ -692,26 +713,46 @@ export const Examples: StoryObj = { { label: "Analüüsid", control: analuusidControl }, { label: "Uuringud", control: uuringudControl }, { label: "Uuring", control: uuringControl, options: uuringOptions }, - { label: "Raviasutus", control: raviasutusControl, options: raviasutusOptions }, + { + label: "Raviasutus", + control: raviasutusControl, + options: raviasutusOptions, + }, { label: "Teenus", control: teenusControl, options: teenusOptions }, - { label: "Aeg alates", control: aegAlatesControl, options: aegAlatesOptions }, + { + label: "Aeg alates", + control: aegAlatesControl, + options: aegAlatesOptions, + }, ], - getTags(filters: { label: string; control: FormControl; options?: { label: string; value: string }[] }[]) { + getTags( + filters: { + label: string; + control: FormControl; + options?: { label: string; value: string }[]; + }[], + ) { const tags: { text: string; remove: () => void }[] = []; for (const f of filters) { const val = f.control.value; if (Array.isArray(val)) { for (const v of val) { - const optLabel = f.options?.find((o) => o.value === v)?.label ?? v; + const optLabel = + f.options?.find((o) => o.value === v)?.label ?? v; tags.push({ text: `${f.label}: ${optLabel}`, - remove: () => f.control.setValue(val.filter((x: string) => x !== v)), + remove: () => + f.control.setValue(val.filter((x: string) => x !== v)), }); } } else if (typeof val === "boolean" && val) { - tags.push({ text: f.label, remove: () => f.control.setValue(false) }); + tags.push({ + text: f.label, + remove: () => f.control.setValue(false), + }); } else if (typeof val === "string" && val) { - const optLabel = f.options?.find((o) => o.value === val)?.label ?? val; + const optLabel = + f.options?.find((o) => o.value === val)?.label ?? val; tags.push({ text: `${f.label}: ${optLabel}`, remove: () => f.control.setValue(""), diff --git a/tedi/components/filter/index.ts b/src/tedi/components/filter/index.ts similarity index 100% rename from tedi/components/filter/index.ts rename to src/tedi/components/filter/index.ts diff --git a/tedi/components/form/checkbox-card-group/checkbox-card-group.component.scss b/src/tedi/components/form/checkbox-card-group/checkbox-card-group.component.scss similarity index 100% rename from tedi/components/form/checkbox-card-group/checkbox-card-group.component.scss rename to src/tedi/components/form/checkbox-card-group/checkbox-card-group.component.scss diff --git a/tedi/components/form/checkbox-card-group/checkbox-card-group.component.spec.ts b/src/tedi/components/form/checkbox-card-group/checkbox-card-group.component.spec.ts similarity index 91% rename from tedi/components/form/checkbox-card-group/checkbox-card-group.component.spec.ts rename to src/tedi/components/form/checkbox-card-group/checkbox-card-group.component.spec.ts index 63f8b6996..54aaa2e49 100644 --- a/tedi/components/form/checkbox-card-group/checkbox-card-group.component.spec.ts +++ b/src/tedi/components/form/checkbox-card-group/checkbox-card-group.component.spec.ts @@ -6,7 +6,11 @@ import { CheckboxComponent } from "../checkbox/checkbox.component"; @Component({ standalone: true, - imports: [CheckboxCardGroupComponent, CheckboxCardComponent, CheckboxComponent], + imports: [ + CheckboxCardGroupComponent, + CheckboxCardComponent, + CheckboxComponent, + ], template: `