├── projects
├── demo
│ ├── src
│ │ ├── assets
│ │ │ └── .gitkeep
│ │ ├── app
│ │ │ ├── app.component.html
│ │ │ ├── app.component.scss
│ │ │ ├── components
│ │ │ │ ├── button
│ │ │ │ │ ├── button.component.scss
│ │ │ │ │ └── button-routing.module.ts
│ │ │ │ ├── spacing
│ │ │ │ │ ├── spacing.component.scss
│ │ │ │ │ ├── spacing.component.ts
│ │ │ │ │ ├── spacing-styles.component.ts
│ │ │ │ │ ├── spacing-routing.module.ts
│ │ │ │ │ ├── spacing-styles-routing.module.ts
│ │ │ │ │ ├── spacing.module.ts
│ │ │ │ │ ├── spacing-styles.component.scss
│ │ │ │ │ └── spacing-styles.module.ts
│ │ │ │ ├── form-controls
│ │ │ │ │ ├── row.component.html
│ │ │ │ │ ├── row.component.ts
│ │ │ │ │ └── form-controls-routing.module.ts
│ │ │ │ ├── validation
│ │ │ │ │ ├── validation.component.scss
│ │ │ │ │ └── validation-routing.module.ts
│ │ │ │ ├── icon
│ │ │ │ │ ├── icon.component.ts
│ │ │ │ │ ├── icon-routing.module.ts
│ │ │ │ │ └── icon.module.ts
│ │ │ │ ├── logo
│ │ │ │ │ ├── logo.component.ts
│ │ │ │ │ ├── logo-routing.module.ts
│ │ │ │ │ └── logo.module.ts
│ │ │ │ ├── breakpoints
│ │ │ │ │ ├── breakpoints.component.html
│ │ │ │ │ ├── breakpoints.component.ts
│ │ │ │ │ ├── breakpoints-routing.module.ts
│ │ │ │ │ └── breakpoints.module.ts
│ │ │ │ ├── drawer
│ │ │ │ │ ├── drawer.component.scss
│ │ │ │ │ └── drawer-routing.module.ts
│ │ │ │ ├── loading-overlay
│ │ │ │ │ ├── loading-overlay.component.ts
│ │ │ │ │ ├── loading-overlay-routing.module.ts
│ │ │ │ │ └── loading-overlay.module.ts
│ │ │ │ ├── table
│ │ │ │ │ ├── table.component.scss
│ │ │ │ │ └── table-routing.module.ts
│ │ │ │ ├── typography
│ │ │ │ │ ├── typography.component.ts
│ │ │ │ │ ├── typography-routing.module.ts
│ │ │ │ │ └── typography.module.ts
│ │ │ │ ├── scrollbars
│ │ │ │ │ ├── scrollbars.component.scss
│ │ │ │ │ └── scrollbars-routing.module.ts
│ │ │ │ ├── navigation
│ │ │ │ │ ├── navigation.component.scss
│ │ │ │ │ ├── navigation-routing.module.ts
│ │ │ │ │ └── navigation.component.html
│ │ │ │ ├── icon-button
│ │ │ │ │ ├── icon-button.component.ts
│ │ │ │ │ └── icon-button-routing.module.ts
│ │ │ │ ├── login-form
│ │ │ │ │ ├── login-form.component.html
│ │ │ │ │ ├── login-form-routing.module.ts
│ │ │ │ │ └── login-form.module.ts
│ │ │ │ ├── tooltip
│ │ │ │ │ ├── tooltip.component.ts
│ │ │ │ │ ├── tooltip-routing.module.ts
│ │ │ │ │ └── tooltip.module.ts
│ │ │ │ ├── link
│ │ │ │ │ ├── link.component.ts
│ │ │ │ │ ├── link-routing.module.ts
│ │ │ │ │ └── link.module.ts
│ │ │ │ ├── card
│ │ │ │ │ └── card-routing.module.ts
│ │ │ │ ├── chart
│ │ │ │ │ ├── chart-routing.module.ts
│ │ │ │ │ └── chart.component.html
│ │ │ │ ├── chip
│ │ │ │ │ └── chip-routing.module.ts
│ │ │ │ ├── copy
│ │ │ │ │ ├── copy-routing.module.ts
│ │ │ │ │ ├── copy.component.ts
│ │ │ │ │ └── copy.module.ts
│ │ │ │ ├── menu
│ │ │ │ │ └── menu-routing.module.ts
│ │ │ │ ├── tabs
│ │ │ │ │ └── tabs-routing.module.ts
│ │ │ │ ├── input
│ │ │ │ │ └── input-routing.module.ts
│ │ │ │ ├── pipes
│ │ │ │ │ ├── pipes-routing.module.ts
│ │ │ │ │ ├── pipes.module.ts
│ │ │ │ │ └── pipes.component.ts
│ │ │ │ ├── radio
│ │ │ │ │ └── radio-routing.module.ts
│ │ │ │ ├── search
│ │ │ │ │ ├── search-routing.module.ts
│ │ │ │ │ ├── search.component.ts
│ │ │ │ │ ├── search.component.html
│ │ │ │ │ └── search.module.ts
│ │ │ │ ├── select
│ │ │ │ │ └── select-routing.module.ts
│ │ │ │ ├── toggle
│ │ │ │ │ ├── toggle-routing.module.ts
│ │ │ │ │ └── toggle.module.ts
│ │ │ │ ├── checkbox
│ │ │ │ │ └── checkbox-routing.module.ts
│ │ │ │ ├── popover
│ │ │ │ │ └── popover-routing.module.ts
│ │ │ │ ├── autofocus
│ │ │ │ │ ├── autofocus-routing.module.ts
│ │ │ │ │ └── autofocus.component.ts
│ │ │ │ ├── csv-entry
│ │ │ │ │ └── csv-entry-routing.module.ts
│ │ │ │ ├── date-range
│ │ │ │ │ └── date-range-routing.module.ts
│ │ │ │ ├── paginator
│ │ │ │ │ └── paginator-routing.module.ts
│ │ │ │ ├── file-upload
│ │ │ │ │ └── file-upload-routing.module.ts
│ │ │ │ ├── autocomplete
│ │ │ │ │ └── autocomplete-routing.module.ts
│ │ │ │ ├── confirmation
│ │ │ │ │ └── confirmation-routing.module.ts
│ │ │ │ ├── selection-list
│ │ │ │ │ └── selection-list-routing.module.ts
│ │ │ │ ├── expansion-panel
│ │ │ │ │ └── expansion-panel-routing.module.ts
│ │ │ │ └── cohort-date-range
│ │ │ │ │ └── cohort-date-range-routing.module.ts
│ │ │ ├── app.component.spec.ts
│ │ │ └── app-routing.module.ts
│ │ ├── environments
│ │ │ ├── environment.prod.ts
│ │ │ └── environment.ts
│ │ ├── favicon.ico
│ │ ├── typings.d.ts
│ │ ├── tslint.json
│ │ ├── tsconfig.app.json
│ │ ├── tsconfig.spec.json
│ │ ├── main.ts
│ │ ├── index.html
│ │ └── styles.scss
│ ├── stylelint.config.js
│ ├── tsconfig.app.json
│ ├── tsconfig.spec.json
│ └── browserslist
├── visual-regression
│ ├── src
│ │ ├── assets
│ │ │ └── .gitkeep
│ │ ├── app
│ │ │ ├── app.component.html
│ │ │ ├── app.component.scss
│ │ │ ├── components
│ │ │ │ ├── components.component.html
│ │ │ │ ├── components.component.ts
│ │ │ │ ├── validation
│ │ │ │ │ ├── validation.component.scss
│ │ │ │ │ └── validation-routing.module.ts
│ │ │ │ ├── button
│ │ │ │ │ ├── button.component.ts
│ │ │ │ │ └── button-routing.module.ts
│ │ │ │ ├── card
│ │ │ │ │ └── card-routing.module.ts
│ │ │ │ ├── chip
│ │ │ │ │ └── chip-routing.module.ts
│ │ │ │ ├── input
│ │ │ │ │ ├── input-routing.module.ts
│ │ │ │ │ └── input.module.ts
│ │ │ │ ├── paginator
│ │ │ │ │ └── paginator-routing.module.ts
│ │ │ │ ├── selection-list
│ │ │ │ │ └── selection-list-routing.module.ts
│ │ │ │ └── expansion-panel
│ │ │ │ │ ├── expansion-panel-routing.module.ts
│ │ │ │ │ └── expansion-panel.component.ts
│ │ │ └── app.component.ts
│ │ ├── environments
│ │ │ ├── environment.prod.ts
│ │ │ └── environment.ts
│ │ ├── favicon.ico
│ │ ├── tsconfig.app.json
│ │ ├── main.ts
│ │ ├── styles.scss
│ │ ├── index.html
│ │ └── test.ts
│ ├── stylelint.config.js
│ ├── e2e
│ │ └── tsconfig.json
│ ├── tsconfig.spec.json
│ ├── tsconfig.app.json
│ └── browserslist
└── library
│ ├── src
│ ├── public-api.ts
│ └── index.ts
│ ├── button
│ ├── src
│ │ └── public-api.ts
│ └── package.json
│ ├── card
│ ├── src
│ │ ├── public-api.ts
│ │ └── card.module.ts
│ └── package.json
│ ├── chart
│ ├── src
│ │ ├── public-api.ts
│ │ ├── chart.component.html
│ │ ├── chart.component.scss
│ │ └── amcharts.service.spec.ts
│ ├── testing
│ │ ├── src
│ │ │ └── public-api.ts
│ │ └── package.json
│ └── package.json
│ ├── chip
│ ├── src
│ │ ├── public-api.ts
│ │ ├── chip-collection.component.html
│ │ ├── chip.component.html
│ │ ├── chip-collection.component.scss
│ │ └── chip-badge.directive.ts
│ ├── testing
│ │ ├── src
│ │ │ └── public-api.ts
│ │ └── package.json
│ └── package.json
│ ├── copy
│ ├── src
│ │ ├── public-api.ts
│ │ └── copy.module.ts
│ └── package.json
│ ├── drawer
│ ├── src
│ │ ├── public-api.ts
│ │ ├── drawer-header-footer.component.html
│ │ ├── drawer.component.html
│ │ └── drawer-container.component.html
│ ├── testing
│ │ ├── src
│ │ │ └── public-api.ts
│ │ └── package.json
│ └── package.json
│ ├── icon
│ ├── src
│ │ ├── public-api.ts
│ │ ├── custom-icons
│ │ │ └── table-large-plus.ts
│ │ ├── icon.module.ts
│ │ ├── design-decisions.md
│ │ └── icon.component.html
│ └── package.json
│ ├── input
│ ├── src
│ │ ├── public-api.ts
│ │ └── input-value-accessor.ts
│ ├── testing
│ │ ├── src
│ │ │ └── public-api.ts
│ │ └── package.json
│ └── package.json
│ ├── link
│ ├── src
│ │ ├── public-api.ts
│ │ ├── link.module.ts
│ │ └── link.component.html
│ └── package.json
│ ├── logo
│ ├── src
│ │ ├── public-api.ts
│ │ ├── logo.component.html
│ │ ├── logo.module.ts
│ │ └── logo.component.scss
│ └── package.json
│ ├── menu
│ ├── src
│ │ ├── public-api.ts
│ │ └── menu.module.ts
│ └── package.json
│ ├── option
│ ├── src
│ │ ├── public-api.ts
│ │ ├── option-display.directive.ts
│ │ ├── optgroup.component.html
│ │ └── optgroup.component.scss
│ └── package.json
│ ├── pipes
│ ├── src
│ │ ├── public-api.ts
│ │ ├── sentence-case
│ │ │ └── sentence-case.pipe.ts
│ │ ├── title-case
│ │ │ ├── title-case.pipe.spec.ts
│ │ │ └── title-case.pipe.ts
│ │ └── round-number
│ │ │ └── round-number.pipe.spec.ts
│ └── package.json
│ ├── scss
│ ├── input
│ │ ├── _input.scss
│ │ └── _input-placeholder.scss
│ ├── reset
│ │ ├── _reset.spec.scss
│ │ └── _reset.scss
│ ├── triangle
│ │ └── _triangle.spec.scss
│ ├── global
│ │ ├── _custom-properties.scss
│ │ ├── terminus-ui.scss
│ │ └── _generated-classes.scss
│ ├── docs
│ │ └── assets
│ │ │ ├── acc.png
│ │ │ ├── na.png
│ │ │ ├── prim.png
│ │ │ ├── util.png
│ │ │ ├── warn.png
│ │ │ ├── acc-d.png
│ │ │ ├── acc-l.png
│ │ │ ├── acc-xd.png
│ │ │ ├── acc-xl.png
│ │ │ ├── prim-d.png
│ │ │ ├── prim-l.png
│ │ │ ├── pure-d.png
│ │ │ ├── pure-l.png
│ │ │ ├── util-d.png
│ │ │ ├── util-l.png
│ │ │ ├── warn-d.png
│ │ │ ├── warn-l.png
│ │ │ ├── prim-xd.png
│ │ │ ├── prim-xl.png
│ │ │ ├── util-xd.png
│ │ │ └── util-xl.png
│ ├── utilities
│ │ └── _utilities.scss
│ ├── layout
│ │ ├── _layout.scss
│ │ ├── _center-content.scss
│ │ ├── _take-space.scss
│ │ ├── _pseudo.scss
│ │ └── _visually-hidden.scss
│ ├── color
│ │ └── _color.spec.scss
│ ├── buttons
│ │ ├── _buttons.scss
│ │ └── _buttons.spec.scss
│ ├── theme
│ │ └── _theme.scss
│ ├── cursors
│ │ └── _cursors.spec.scss
│ ├── menu
│ │ └── _menu.scss
│ ├── a11y
│ │ └── _a11y.spec.scss
│ └── card
│ │ └── _card.scss
│ ├── search
│ ├── src
│ │ ├── public-api.ts
│ │ ├── search.component.scss
│ │ └── search.module.ts
│ └── package.json
│ ├── select
│ ├── src
│ │ └── public-api.ts
│ ├── testing
│ │ ├── src
│ │ │ └── public-api.ts
│ │ └── package.json
│ └── package.json
│ ├── sort
│ ├── src
│ │ ├── public-api.ts
│ │ ├── sort.directive.spec.ts
│ │ └── sort-errors.ts
│ └── package.json
│ ├── table
│ ├── src
│ │ └── public-api.ts
│ ├── testing
│ │ ├── src
│ │ │ └── public-api.ts
│ │ └── package.json
│ └── package.json
│ ├── tabs
│ ├── src
│ │ ├── public-api.ts
│ │ ├── tab
│ │ │ └── tab.component.html
│ │ ├── body
│ │ │ ├── tab-body.component.html
│ │ │ ├── tab-body.component.scss
│ │ │ └── tab-content.directive.ts
│ │ ├── label
│ │ │ └── tab-label.directive.ts
│ │ └── collection
│ │ │ └── tab-collection.component.scss
│ ├── testing
│ │ ├── src
│ │ │ └── public-api.ts
│ │ └── package.json
│ └── package.json
│ ├── toggle
│ ├── src
│ │ ├── public-api.ts
│ │ ├── toggle.component.scss
│ │ ├── toggle.component.html
│ │ ├── toggle.component.md
│ │ └── toggle.module.ts
│ └── package.json
│ ├── checkbox
│ ├── src
│ │ ├── public-api.ts
│ │ ├── checkbox.component.html
│ │ └── checkbox.module.ts
│ ├── testing
│ │ ├── src
│ │ │ └── public-api.ts
│ │ └── package.json
│ └── package.json
│ ├── popover
│ ├── src
│ │ ├── public-api.ts
│ │ ├── popover.component.html
│ │ └── popover.module.ts
│ ├── testing
│ │ ├── src
│ │ │ └── public-api.ts
│ │ └── package.json
│ └── package.json
│ ├── spacing
│ ├── src
│ │ ├── public-api.ts
│ │ └── spacing.module.ts
│ └── package.json
│ ├── tooltip
│ ├── src
│ │ ├── public-api.ts
│ │ ├── tooltip.component.html
│ │ └── tooltip.module.ts
│ ├── testing
│ │ ├── src
│ │ │ ├── public-api.ts
│ │ │ └── test-helpers.ts
│ │ └── package.json
│ └── package.json
│ ├── autofocus
│ ├── src
│ │ ├── public-api.ts
│ │ └── autofocus.module.ts
│ └── package.json
│ ├── csv-entry
│ ├── src
│ │ └── public-api.ts
│ └── package.json
│ ├── date-range
│ ├── src
│ │ ├── public-api.ts
│ │ ├── date-range.component.scss
│ │ └── date-range.module.ts
│ ├── testing
│ │ ├── src
│ │ │ └── public-api.ts
│ │ └── package.json
│ └── package.json
│ ├── file-upload
│ ├── src
│ │ ├── public-api.ts
│ │ ├── image-dimensions.ts
│ │ ├── image-dimension-constraints.ts
│ │ └── mime-types.ts
│ └── package.json
│ ├── form-field
│ ├── src
│ │ ├── public-api.ts
│ │ ├── prefix.directive.ts
│ │ ├── suffix.directive.ts
│ │ ├── custom-validation.directive.ts
│ │ └── label.directive.ts
│ ├── testing
│ │ ├── src
│ │ │ └── public-api.ts
│ │ └── package.json
│ └── package.json
│ ├── icon-button
│ ├── src
│ │ ├── public-api.ts
│ │ ├── icon-button.component.html
│ │ └── icon-button.module.ts
│ └── package.json
│ ├── login-form
│ ├── src
│ │ ├── public-api.ts
│ │ ├── login-form.component.scss
│ │ └── login-form.component.md
│ └── package.json
│ ├── navigation
│ ├── src
│ │ └── public-api.ts
│ └── package.json
│ ├── paginator
│ ├── src
│ │ └── public-api.ts
│ ├── testing
│ │ ├── src
│ │ │ └── public-api.ts
│ │ └── package.json
│ └── package.json
│ ├── radio-group
│ ├── src
│ │ ├── public-api.ts
│ │ └── design-decisions.md
│ ├── testing
│ │ ├── src
│ │ │ └── public-api.ts
│ │ └── package.json
│ └── package.json
│ ├── scrollbars
│ ├── src
│ │ ├── public-api.ts
│ │ ├── scrollbars.component.scss
│ │ ├── scrollbars.module.ts
│ │ └── scrollbars.component.html
│ └── package.json
│ ├── utilities
│ ├── src
│ │ ├── public-api.ts
│ │ ├── types
│ │ │ └── style-theme.types.ts
│ │ ├── strip-control-characters
│ │ │ ├── strip-control-characters.spec.ts
│ │ │ └── strip-control-characters.ts
│ │ ├── cva-provider-factory
│ │ │ ├── cva-provider-factory.spec.ts
│ │ │ └── cva-provider-factory.ts
│ │ ├── version
│ │ │ ├── version.ts
│ │ │ └── version.spec.ts
│ │ ├── error
│ │ │ ├── ui-error.ts
│ │ │ └── ui-error.spec.ts
│ │ └── merge
│ │ │ └── merge.ts
│ └── package.json
│ ├── validators
│ ├── src
│ │ ├── public-api.ts
│ │ └── validators.module.ts
│ ├── testing
│ │ ├── src
│ │ │ └── public-api.ts
│ │ └── package.json
│ └── package.json
│ ├── autocomplete
│ ├── src
│ │ ├── public-api.ts
│ │ └── autocomplete-panel
│ │ │ └── autocomplete-panel.component.html
│ ├── testing
│ │ ├── src
│ │ │ └── public-api.ts
│ │ └── package.json
│ └── package.json
│ ├── confirmation
│ ├── src
│ │ ├── public-api.ts
│ │ └── confirmation-overlay.component.html
│ └── package.json
│ ├── expansion-panel
│ ├── src
│ │ ├── public-api.ts
│ │ ├── trigger
│ │ │ ├── expansion-panel-trigger.component.html
│ │ │ ├── expansion-panel-trigger-title.component.ts
│ │ │ └── expansion-panel-trigger-description.component.ts
│ │ └── expansion-panel.component.html
│ ├── testing
│ │ ├── src
│ │ │ └── public-api.ts
│ │ └── package.json
│ └── package.json
│ ├── loading-overlay
│ ├── src
│ │ ├── public-api.ts
│ │ ├── loading-overlay.component.html
│ │ ├── loading-overlay.component.ts
│ │ └── loading-overlay.module.ts
│ └── package.json
│ ├── selection-list
│ ├── src
│ │ ├── public-api.ts
│ │ └── selection-list-panel
│ │ │ └── selection-list-panel.component.html
│ ├── testing
│ │ ├── src
│ │ │ └── public-api.ts
│ │ └── package.json
│ └── package.json
│ ├── cohort-date-range
│ ├── src
│ │ ├── public-api.ts
│ │ └── cohort-date-range.component.scss
│ ├── testing
│ │ ├── src
│ │ │ └── public-api.ts
│ │ └── package.json
│ └── package.json
│ ├── validation-messages
│ ├── src
│ │ ├── public-api.ts
│ │ └── validation-messages.component.html
│ ├── testing
│ │ ├── package.json
│ │ └── src
│ │ │ ├── public-api.ts
│ │ │ ├── validation-messages.service.mock.ts
│ │ │ └── test-helpers.ts
│ └── package.json
│ ├── tsconfig.lib.prod.json
│ ├── typings.d.ts
│ ├── tsconfig.compodoc.json
│ ├── tsconfig.lint.json
│ ├── tsconfig.spec.json
│ └── tsconfig.lib.json
├── cypress.json
├── .eslintignore
├── .github
├── CODEOWNERS
├── workflows
│ ├── pr-labeler.yml
│ ├── auto-assign-pr.yml
│ └── label-approved-pr.yml
├── labeler.yml
└── ISSUE_TEMPLATE
│ └── feature_request.md
├── .ctrlpignore
├── cypress
├── fixtures
│ └── example.json
├── integration
│ └── spin-up.js
└── support
│ └── index.js
├── tooling
├── ci
│ ├── rename-typings-index.sh
│ ├── test-unit.sh
│ ├── report-system-name.sh
│ ├── replace-docs-emoji.js
│ ├── build-demos-aot.sh
│ ├── demos-predeploy.sh
│ └── inject-library-version-number.sh
├── jest-setup.ts
└── mark-small.svg
├── ngcc.config.js
├── .editorconfig
├── jest.library.config.js
├── jest.demo.config.js
├── .gitignore
├── jest.visual-regression.config.js
└── .codecov.yml
/projects/demo/src/assets/.gitkeep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/projects/visual-regression/src/assets/.gitkeep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/projects/library/src/public-api.ts:
--------------------------------------------------------------------------------
1 | export {};
2 |
--------------------------------------------------------------------------------
/cypress.json:
--------------------------------------------------------------------------------
1 | {
2 | "watchForFileChanges": true
3 | }
4 |
--------------------------------------------------------------------------------
/projects/library/src/index.ts:
--------------------------------------------------------------------------------
1 | export * from './public-api';
2 |
--------------------------------------------------------------------------------
/projects/demo/src/app/app.component.html:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/projects/library/button/src/public-api.ts:
--------------------------------------------------------------------------------
1 | export * from './button.module';
2 |
--------------------------------------------------------------------------------
/projects/library/card/src/public-api.ts:
--------------------------------------------------------------------------------
1 | export * from './card.module';
2 |
--------------------------------------------------------------------------------
/projects/library/chart/src/public-api.ts:
--------------------------------------------------------------------------------
1 | export * from './chart.module';
2 |
--------------------------------------------------------------------------------
/projects/library/chip/src/public-api.ts:
--------------------------------------------------------------------------------
1 | export * from './chip.module';
2 |
--------------------------------------------------------------------------------
/projects/library/copy/src/public-api.ts:
--------------------------------------------------------------------------------
1 | export * from './copy.module';
2 |
--------------------------------------------------------------------------------
/projects/library/drawer/src/public-api.ts:
--------------------------------------------------------------------------------
1 | export * from './drawer.module';
2 |
--------------------------------------------------------------------------------
/projects/library/icon/src/public-api.ts:
--------------------------------------------------------------------------------
1 | export * from './icon.module';
2 |
--------------------------------------------------------------------------------
/projects/library/input/src/public-api.ts:
--------------------------------------------------------------------------------
1 | export * from './input.module';
2 |
--------------------------------------------------------------------------------
/projects/library/link/src/public-api.ts:
--------------------------------------------------------------------------------
1 | export * from './link.module';
2 |
--------------------------------------------------------------------------------
/projects/library/logo/src/public-api.ts:
--------------------------------------------------------------------------------
1 | export * from './logo.module';
2 |
--------------------------------------------------------------------------------
/projects/library/menu/src/public-api.ts:
--------------------------------------------------------------------------------
1 | export * from './menu.module';
2 |
--------------------------------------------------------------------------------
/projects/library/option/src/public-api.ts:
--------------------------------------------------------------------------------
1 | export * from './option.module';
2 |
--------------------------------------------------------------------------------
/projects/library/pipes/src/public-api.ts:
--------------------------------------------------------------------------------
1 | export * from './pipes.module';
2 |
--------------------------------------------------------------------------------
/projects/library/scss/input/_input.scss:
--------------------------------------------------------------------------------
1 | @import './input-placeholder';
2 |
--------------------------------------------------------------------------------
/projects/library/search/src/public-api.ts:
--------------------------------------------------------------------------------
1 | export * from './search.module';
2 |
--------------------------------------------------------------------------------
/projects/library/select/src/public-api.ts:
--------------------------------------------------------------------------------
1 | export * from './select.module';
2 |
--------------------------------------------------------------------------------
/projects/library/sort/src/public-api.ts:
--------------------------------------------------------------------------------
1 | export * from './sort.module';
2 |
--------------------------------------------------------------------------------
/projects/library/table/src/public-api.ts:
--------------------------------------------------------------------------------
1 | export * from './table.module';
2 |
--------------------------------------------------------------------------------
/projects/library/tabs/src/public-api.ts:
--------------------------------------------------------------------------------
1 | export * from './tabs.module';
2 |
--------------------------------------------------------------------------------
/projects/library/toggle/src/public-api.ts:
--------------------------------------------------------------------------------
1 | export * from './toggle.module';
2 |
--------------------------------------------------------------------------------
/projects/library/checkbox/src/public-api.ts:
--------------------------------------------------------------------------------
1 | export * from './checkbox.module';
2 |
--------------------------------------------------------------------------------
/projects/library/popover/src/public-api.ts:
--------------------------------------------------------------------------------
1 | export * from './popover.module';
2 |
--------------------------------------------------------------------------------
/projects/library/spacing/src/public-api.ts:
--------------------------------------------------------------------------------
1 | export * from './spacing.module';
2 |
--------------------------------------------------------------------------------
/projects/library/tooltip/src/public-api.ts:
--------------------------------------------------------------------------------
1 | export * from './tooltip.module';
2 |
--------------------------------------------------------------------------------
/projects/library/autofocus/src/public-api.ts:
--------------------------------------------------------------------------------
1 | export * from './autofocus.module';
2 |
--------------------------------------------------------------------------------
/projects/library/checkbox/testing/src/public-api.ts:
--------------------------------------------------------------------------------
1 | export * from './test-helpers';
2 |
--------------------------------------------------------------------------------
/projects/library/csv-entry/src/public-api.ts:
--------------------------------------------------------------------------------
1 | export * from './csv-entry.module';
2 |
--------------------------------------------------------------------------------
/projects/library/date-range/src/public-api.ts:
--------------------------------------------------------------------------------
1 | export * from './date-range.module';
2 |
--------------------------------------------------------------------------------
/projects/library/drawer/testing/src/public-api.ts:
--------------------------------------------------------------------------------
1 | export * from './test-components';
2 |
--------------------------------------------------------------------------------
/projects/library/file-upload/src/public-api.ts:
--------------------------------------------------------------------------------
1 | export * from './file-upload.module';
2 |
--------------------------------------------------------------------------------
/projects/library/form-field/src/public-api.ts:
--------------------------------------------------------------------------------
1 | export * from './form-field.module';
2 |
--------------------------------------------------------------------------------
/projects/library/icon-button/src/public-api.ts:
--------------------------------------------------------------------------------
1 | export * from './icon-button.module';
2 |
--------------------------------------------------------------------------------
/projects/library/login-form/src/public-api.ts:
--------------------------------------------------------------------------------
1 | export * from './login-form.module';
2 |
--------------------------------------------------------------------------------
/projects/library/navigation/src/public-api.ts:
--------------------------------------------------------------------------------
1 | export * from './navigation.module';
2 |
--------------------------------------------------------------------------------
/projects/library/paginator/src/public-api.ts:
--------------------------------------------------------------------------------
1 | export * from './paginator.module';
2 |
--------------------------------------------------------------------------------
/projects/library/radio-group/src/public-api.ts:
--------------------------------------------------------------------------------
1 | export * from './radio-group.module';
2 |
--------------------------------------------------------------------------------
/projects/library/scrollbars/src/public-api.ts:
--------------------------------------------------------------------------------
1 | export * from './scrollbars.module';
2 |
--------------------------------------------------------------------------------
/projects/library/scss/reset/_reset.spec.scss:
--------------------------------------------------------------------------------
1 | @import 'true';
2 | @import 'reset';
3 |
--------------------------------------------------------------------------------
/projects/library/utilities/src/public-api.ts:
--------------------------------------------------------------------------------
1 | export * from './utilities.module';
2 |
--------------------------------------------------------------------------------
/projects/library/validators/src/public-api.ts:
--------------------------------------------------------------------------------
1 | export * from './validators.module';
2 |
--------------------------------------------------------------------------------
/projects/library/autocomplete/src/public-api.ts:
--------------------------------------------------------------------------------
1 | export * from './autocomplete.module';
2 |
--------------------------------------------------------------------------------
/projects/library/confirmation/src/public-api.ts:
--------------------------------------------------------------------------------
1 | export * from './confirmation.module';
2 |
--------------------------------------------------------------------------------
/projects/library/drawer/src/drawer-header-footer.component.html:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/projects/library/form-field/testing/src/public-api.ts:
--------------------------------------------------------------------------------
1 | export * from './test-components';
2 |
--------------------------------------------------------------------------------
/projects/library/logo/src/logo.component.html:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/projects/library/popover/testing/src/public-api.ts:
--------------------------------------------------------------------------------
1 | export * from './test-components';
2 |
--------------------------------------------------------------------------------
/projects/library/radio-group/testing/src/public-api.ts:
--------------------------------------------------------------------------------
1 | export * from './test-helpers';
2 |
--------------------------------------------------------------------------------
/projects/visual-regression/src/app/app.component.html:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/projects/library/expansion-panel/src/public-api.ts:
--------------------------------------------------------------------------------
1 | export * from './expansion-panel.module';
2 |
--------------------------------------------------------------------------------
/projects/library/loading-overlay/src/public-api.ts:
--------------------------------------------------------------------------------
1 | export * from './loading-overlay.module';
2 |
--------------------------------------------------------------------------------
/projects/library/scss/triangle/_triangle.spec.scss:
--------------------------------------------------------------------------------
1 | @import 'true';
2 | @import 'triangle';
3 |
--------------------------------------------------------------------------------
/projects/library/selection-list/src/public-api.ts:
--------------------------------------------------------------------------------
1 | export * from './selection-list.module';
2 |
--------------------------------------------------------------------------------
/projects/demo/src/environments/environment.prod.ts:
--------------------------------------------------------------------------------
1 | export const environment = { production: true };
2 |
--------------------------------------------------------------------------------
/projects/library/chart/src/chart.component.html:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/projects/library/cohort-date-range/src/public-api.ts:
--------------------------------------------------------------------------------
1 | export * from './cohort-date-range.module';
2 |
--------------------------------------------------------------------------------
/projects/library/validators/testing/src/public-api.ts:
--------------------------------------------------------------------------------
1 | export * from './validators.service.mock';
2 |
--------------------------------------------------------------------------------
/projects/library/validation-messages/src/public-api.ts:
--------------------------------------------------------------------------------
1 | export * from './validation-messages.module';
2 |
--------------------------------------------------------------------------------
/.eslintignore:
--------------------------------------------------------------------------------
1 | .github
2 | coverage
3 | dist
4 | docs
5 | e2e
6 | node_modules
7 | .DS_Store
8 | **/*.d.ts
9 |
--------------------------------------------------------------------------------
/projects/library/scss/global/_custom-properties.scss:
--------------------------------------------------------------------------------
1 | // TODO: Create library specific global tokens here
2 |
3 |
--------------------------------------------------------------------------------
/projects/demo/src/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GetTerminus/terminus-ui/HEAD/projects/demo/src/favicon.ico
--------------------------------------------------------------------------------
/projects/library/tabs/src/tab/tab.component.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/projects/visual-regression/src/environments/environment.prod.ts:
--------------------------------------------------------------------------------
1 | export const environment = { production: true };
2 |
--------------------------------------------------------------------------------
/.github/CODEOWNERS:
--------------------------------------------------------------------------------
1 | # These owners will be the default owners for everything in the repo.
2 | * @GetTerminus/uxe
3 |
--------------------------------------------------------------------------------
/projects/demo/src/app/app.component.scss:
--------------------------------------------------------------------------------
1 | @import '~@terminus/ui/helpers';
2 |
3 | h1 {
4 | color: color(warn);
5 | }
6 |
--------------------------------------------------------------------------------
/projects/library/chip/testing/src/public-api.ts:
--------------------------------------------------------------------------------
1 | export * from './test-components';
2 | export * from './test-helpers';
3 |
--------------------------------------------------------------------------------
/projects/library/input/testing/src/public-api.ts:
--------------------------------------------------------------------------------
1 | export * from './test-components';
2 | export * from './test-helpers';
3 |
--------------------------------------------------------------------------------
/projects/library/table/testing/src/public-api.ts:
--------------------------------------------------------------------------------
1 | export * from './test-components';
2 | export * from './test-helpers';
3 |
--------------------------------------------------------------------------------
/projects/library/tabs/testing/src/public-api.ts:
--------------------------------------------------------------------------------
1 | export * from './test-helpers';
2 | export * from './test-components';
3 |
--------------------------------------------------------------------------------
/projects/library/date-range/testing/src/public-api.ts:
--------------------------------------------------------------------------------
1 | export * from './test-components';
2 | export * from './test-helpers';
3 |
--------------------------------------------------------------------------------
/projects/library/paginator/testing/src/public-api.ts:
--------------------------------------------------------------------------------
1 | export * from './test-components';
2 | export * from './test-helpers';
3 |
--------------------------------------------------------------------------------
/projects/library/select/testing/src/public-api.ts:
--------------------------------------------------------------------------------
1 | export * from './test-components';
2 | export * from './test-helpers';
3 |
--------------------------------------------------------------------------------
/projects/library/tooltip/testing/src/public-api.ts:
--------------------------------------------------------------------------------
1 | export * from './test-components';
2 | export * from './test-helpers';
3 |
--------------------------------------------------------------------------------
/projects/library/autocomplete/testing/src/public-api.ts:
--------------------------------------------------------------------------------
1 | export * from './test-components';
2 | export * from './test-helpers';
3 |
--------------------------------------------------------------------------------
/projects/library/expansion-panel/testing/src/public-api.ts:
--------------------------------------------------------------------------------
1 | export * from './test-components';
2 | export * from './test-helpers';
3 |
--------------------------------------------------------------------------------
/projects/library/selection-list/testing/src/public-api.ts:
--------------------------------------------------------------------------------
1 | export * from './test-components';
2 | export * from './test-helpers';
3 |
--------------------------------------------------------------------------------
/projects/demo/src/app/components/button/button.component.scss:
--------------------------------------------------------------------------------
1 | .double {
2 | .ts-button {
3 | margin-right: 1em;
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/projects/demo/src/app/components/spacing/spacing.component.scss:
--------------------------------------------------------------------------------
1 | div {
2 | outline: 1px solid lightblue;
3 | padding: 8px;
4 | }
5 |
--------------------------------------------------------------------------------
/projects/library/cohort-date-range/testing/src/public-api.ts:
--------------------------------------------------------------------------------
1 | export * from './test-components';
2 | export * from './test-helpers';
3 |
--------------------------------------------------------------------------------
/projects/visual-regression/src/app/app.component.scss:
--------------------------------------------------------------------------------
1 | @import '~@terminus/ui/helpers';
2 |
3 | h1 {
4 | color: color(warn);
5 | }
6 |
--------------------------------------------------------------------------------
/projects/library/scss/docs/assets/acc.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GetTerminus/terminus-ui/HEAD/projects/library/scss/docs/assets/acc.png
--------------------------------------------------------------------------------
/projects/library/scss/docs/assets/na.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GetTerminus/terminus-ui/HEAD/projects/library/scss/docs/assets/na.png
--------------------------------------------------------------------------------
/projects/library/scss/docs/assets/prim.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GetTerminus/terminus-ui/HEAD/projects/library/scss/docs/assets/prim.png
--------------------------------------------------------------------------------
/projects/library/scss/docs/assets/util.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GetTerminus/terminus-ui/HEAD/projects/library/scss/docs/assets/util.png
--------------------------------------------------------------------------------
/projects/library/scss/docs/assets/warn.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GetTerminus/terminus-ui/HEAD/projects/library/scss/docs/assets/warn.png
--------------------------------------------------------------------------------
/projects/visual-regression/src/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GetTerminus/terminus-ui/HEAD/projects/visual-regression/src/favicon.ico
--------------------------------------------------------------------------------
/projects/library/chip/src/chip-collection.component.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/projects/library/chip/testing/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "ngPackage": {
3 | "lib": {
4 | "entryFile": "src/public-api.ts"
5 | }
6 | }
7 | }
--------------------------------------------------------------------------------
/projects/library/logo/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "ngPackage": {
3 | "lib": {
4 | "entryFile": "src/public-api.ts"
5 | }
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/projects/library/scss/docs/assets/acc-d.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GetTerminus/terminus-ui/HEAD/projects/library/scss/docs/assets/acc-d.png
--------------------------------------------------------------------------------
/projects/library/scss/docs/assets/acc-l.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GetTerminus/terminus-ui/HEAD/projects/library/scss/docs/assets/acc-l.png
--------------------------------------------------------------------------------
/projects/library/scss/docs/assets/acc-xd.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GetTerminus/terminus-ui/HEAD/projects/library/scss/docs/assets/acc-xd.png
--------------------------------------------------------------------------------
/projects/library/scss/docs/assets/acc-xl.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GetTerminus/terminus-ui/HEAD/projects/library/scss/docs/assets/acc-xl.png
--------------------------------------------------------------------------------
/projects/library/scss/docs/assets/prim-d.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GetTerminus/terminus-ui/HEAD/projects/library/scss/docs/assets/prim-d.png
--------------------------------------------------------------------------------
/projects/library/scss/docs/assets/prim-l.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GetTerminus/terminus-ui/HEAD/projects/library/scss/docs/assets/prim-l.png
--------------------------------------------------------------------------------
/projects/library/scss/docs/assets/pure-d.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GetTerminus/terminus-ui/HEAD/projects/library/scss/docs/assets/pure-d.png
--------------------------------------------------------------------------------
/projects/library/scss/docs/assets/pure-l.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GetTerminus/terminus-ui/HEAD/projects/library/scss/docs/assets/pure-l.png
--------------------------------------------------------------------------------
/projects/library/scss/docs/assets/util-d.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GetTerminus/terminus-ui/HEAD/projects/library/scss/docs/assets/util-d.png
--------------------------------------------------------------------------------
/projects/library/scss/docs/assets/util-l.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GetTerminus/terminus-ui/HEAD/projects/library/scss/docs/assets/util-l.png
--------------------------------------------------------------------------------
/projects/library/scss/docs/assets/warn-d.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GetTerminus/terminus-ui/HEAD/projects/library/scss/docs/assets/warn-d.png
--------------------------------------------------------------------------------
/projects/library/scss/docs/assets/warn-l.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GetTerminus/terminus-ui/HEAD/projects/library/scss/docs/assets/warn-l.png
--------------------------------------------------------------------------------
/projects/library/spacing/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "ngPackage": {
3 | "lib": {
4 | "entryFile": "src/public-api.ts"
5 | }
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/.ctrlpignore:
--------------------------------------------------------------------------------
1 | ^\.git$
2 | ^coverage$
3 | ^dist$
4 | ^build$
5 | ^docs$
6 | ^integration$
7 | ^node_modules$
8 | ^out-tsc$
9 | ^styleguide$
10 |
--------------------------------------------------------------------------------
/projects/library/icon-button/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "ngPackage": {
3 | "lib": {
4 | "entryFile": "src/public-api.ts"
5 | }
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/projects/library/scss/docs/assets/prim-xd.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GetTerminus/terminus-ui/HEAD/projects/library/scss/docs/assets/prim-xd.png
--------------------------------------------------------------------------------
/projects/library/scss/docs/assets/prim-xl.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GetTerminus/terminus-ui/HEAD/projects/library/scss/docs/assets/prim-xl.png
--------------------------------------------------------------------------------
/projects/library/scss/docs/assets/util-xd.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GetTerminus/terminus-ui/HEAD/projects/library/scss/docs/assets/util-xd.png
--------------------------------------------------------------------------------
/projects/library/scss/docs/assets/util-xl.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GetTerminus/terminus-ui/HEAD/projects/library/scss/docs/assets/util-xl.png
--------------------------------------------------------------------------------
/projects/library/tabs/testing/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "ngPackage": {
3 | "lib": {
4 | "entryFile": "src/public-api.ts"
5 | }
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/projects/demo/src/typings.d.ts:
--------------------------------------------------------------------------------
1 | /* SystemJS module definition */
2 | declare var module: NodeModule;
3 | interface NodeModule {
4 | id: string;
5 | }
6 |
--------------------------------------------------------------------------------
/projects/library/autocomplete/testing/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "ngPackage": {
3 | "lib": {
4 | "entryFile": "src/public-api.ts"
5 | }
6 | }
7 | }
--------------------------------------------------------------------------------
/projects/library/checkbox/testing/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "ngPackage": {
3 | "lib": {
4 | "entryFile": "src/public-api.ts"
5 | }
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/projects/library/drawer/testing/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "ngPackage": {
3 | "lib": {
4 | "entryFile": "src/public-api.ts"
5 | }
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/projects/library/input/testing/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "ngPackage": {
3 | "lib": {
4 | "entryFile": "src/public-api.ts"
5 | }
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/projects/library/paginator/testing/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "ngPackage": {
3 | "lib": {
4 | "entryFile": "src/public-api.ts"
5 | }
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/projects/library/popover/testing/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "ngPackage": {
3 | "lib": {
4 | "entryFile": "src/public-api.ts"
5 | }
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/projects/library/select/testing/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "ngPackage": {
3 | "lib": {
4 | "entryFile": "src/public-api.ts"
5 | }
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/projects/library/selection-list/testing/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "ngPackage": {
3 | "lib": {
4 | "entryFile": "src/public-api.ts"
5 | }
6 | }
7 | }
--------------------------------------------------------------------------------
/projects/library/table/testing/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "ngPackage": {
3 | "lib": {
4 | "entryFile": "src/public-api.ts"
5 | }
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/projects/library/tooltip/testing/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "ngPackage": {
3 | "lib": {
4 | "entryFile": "src/public-api.ts"
5 | }
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/projects/library/date-range/testing/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "ngPackage": {
3 | "lib": {
4 | "entryFile": "src/public-api.ts"
5 | }
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/projects/library/form-field/testing/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "ngPackage": {
3 | "lib": {
4 | "entryFile": "src/public-api.ts"
5 | }
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/projects/library/radio-group/testing/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "ngPackage": {
3 | "lib": {
4 | "entryFile": "src/public-api.ts"
5 | }
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/projects/library/tsconfig.lib.prod.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./tsconfig.lib.json",
3 | "angularCompilerOptions": {
4 | "enableIvy": false
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/projects/library/validators/testing/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "ngPackage": {
3 | "lib": {
4 | "entryFile": "src/public-api.ts"
5 | }
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/projects/library/chart/testing/src/public-api.ts:
--------------------------------------------------------------------------------
1 | export * from './test-components';
2 | export * from './test-helpers';
3 | export * from './amcharts.service.mock';
4 |
--------------------------------------------------------------------------------
/projects/library/cohort-date-range/testing/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "ngPackage": {
3 | "lib": {
4 | "entryFile": "src/public-api.ts"
5 | }
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/projects/library/validation-messages/testing/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "ngPackage": {
3 | "lib": {
4 | "entryFile": "src/public-api.ts"
5 | }
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/projects/demo/src/app/components/form-controls/row.component.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/projects/library/validation-messages/testing/src/public-api.ts:
--------------------------------------------------------------------------------
1 | export * from './test-components';
2 | export * from './test-helpers';
3 | export * from './validation-messages.service.mock';
4 |
--------------------------------------------------------------------------------
/projects/visual-regression/src/app/components/components.component.html:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/projects/visual-regression/stylelint.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | rules: {
3 | 'color-named': null,
4 | 'no-eol-whitespace': [true, { ignore: 'empty-lines' }],
5 | },
6 | };
7 |
--------------------------------------------------------------------------------
/cypress/fixtures/example.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "Using fixtures to represent data",
3 | "email": "hello@cypress.io",
4 | "body": "Fixtures are a great way to mock data for responses to routes"
5 | }
--------------------------------------------------------------------------------
/tooling/ci/rename-typings-index.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | #
4 | # Rename built typings index file
5 | #
6 |
7 | . ~/.bashrc
8 |
9 | mv dist/library/terminus-ui.d.ts dist/library/index.d.ts
10 |
--------------------------------------------------------------------------------
/projects/library/scss/utilities/_utilities.scss:
--------------------------------------------------------------------------------
1 | @import '../layout/layout';
2 |
3 |
4 | /**
5 | * Utility class to hide an element
6 | */
7 | .u-visually-hidden {
8 | @include visually-hidden;
9 | }
10 |
--------------------------------------------------------------------------------
/ngcc.config.js:
--------------------------------------------------------------------------------
1 | // https://github.com/angular/angular/issues/29703
2 | module.exports = {
3 | packages: {
4 | '@terminus/ui': {
5 | entryPoints: { './dist/library': { ignore: true } },
6 | },
7 | },
8 | };
9 |
--------------------------------------------------------------------------------
/projects/library/scss/layout/_layout.scss:
--------------------------------------------------------------------------------
1 | @import './center-content';
2 | @import './opposite-direction';
3 | @import './pseudo';
4 | @import './responsive-ratio';
5 | @import './take-space';
6 | @import './visually-hidden';
7 |
--------------------------------------------------------------------------------
/projects/library/validation-messages/src/validation-messages.component.html:
--------------------------------------------------------------------------------
1 |
6 | {{ validationMessage }}
7 |
8 |
--------------------------------------------------------------------------------
/projects/library/chart/src/chart.component.scss:
--------------------------------------------------------------------------------
1 | //
2 | // @component
3 | // Chart
4 | // @description
5 | // A charting component using AmCharts
6 | //
7 | .ts-chart {
8 | display: block;
9 | height: 100%;
10 | }
11 |
--------------------------------------------------------------------------------
/projects/demo/src/app/components/validation/validation.component.scss:
--------------------------------------------------------------------------------
1 | pre {
2 | background-color: #eee;
3 | border: 1px solid #999;
4 | font-size: .8em;
5 | max-width: 50%;
6 | overflow-x: scroll;
7 | padding: 1em;
8 | }
9 |
--------------------------------------------------------------------------------
/projects/demo/src/app/components/icon/icon.component.ts:
--------------------------------------------------------------------------------
1 | import { Component } from '@angular/core';
2 |
3 | @Component({
4 | selector: 'demo-icon',
5 | templateUrl: './icon.component.html',
6 | })
7 | export class IconComponent {
8 | }
9 |
--------------------------------------------------------------------------------
/projects/demo/src/app/components/logo/logo.component.ts:
--------------------------------------------------------------------------------
1 | import { Component } from '@angular/core';
2 |
3 | @Component({
4 | selector: 'demo-logo',
5 | templateUrl: './logo.component.html',
6 | })
7 | export class LogoComponent {
8 | }
9 |
--------------------------------------------------------------------------------
/projects/library/drawer/src/drawer.component.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/projects/library/typings.d.ts:
--------------------------------------------------------------------------------
1 | /* SystemJS module definition */
2 | let var module: NodeModule;
3 | interface NodeModule {
4 | id: string;
5 | }
6 |
7 |
8 | /**
9 | * Needed for inputmask library
10 | */
11 | declare module 'inputmask';
12 |
13 |
--------------------------------------------------------------------------------
/projects/library/validation-messages/testing/src/validation-messages.service.mock.ts:
--------------------------------------------------------------------------------
1 | import { Injectable } from '@angular/core';
2 |
3 | @Injectable()
4 | export class TsValidationMessagesServiceMock {
5 | public getValidatorErrorMessage = () => 'foo';
6 | }
7 |
--------------------------------------------------------------------------------
/projects/demo/src/app/components/breakpoints/breakpoints.component.html:
--------------------------------------------------------------------------------
1 | Text color will change at each breakpoint:
2 |
3 |
4 |
5 |
6 |
7 | Breakpoints example
8 |
9 |
10 |
--------------------------------------------------------------------------------
/projects/library/chart/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "ngPackage": {
3 | "lib": {
4 | "entryFile": "src/public-api.ts",
5 | "umdModuleIds": {
6 | "@terminus/ngx-tools/utilities": "terminus.ngxTools.utilities"
7 | }
8 | }
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/projects/library/icon/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "ngPackage": {
3 | "lib": {
4 | "entryFile": "src/public-api.ts",
5 | "umdModuleIds": {
6 | "@terminus/ngx-tools/coercion": "terminus.ngxTools.coercion"
7 | }
8 | }
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/projects/visual-regression/src/app/components/components.component.ts:
--------------------------------------------------------------------------------
1 | import { Component } from '@angular/core';
2 |
3 | @Component({
4 | selector: 'app-components',
5 | templateUrl: './components.component.html',
6 | })
7 | export class ComponentsComponent { }
8 |
--------------------------------------------------------------------------------
/projects/library/autofocus/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "ngPackage": {
3 | "lib": {
4 | "entryFile": "src/public-api.ts",
5 | "umdModuleIds": {
6 | "@terminus/ngx-tools/coercion": "terminus.ngxTools.coercion"
7 | }
8 | }
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/projects/library/form-field/src/prefix.directive.ts:
--------------------------------------------------------------------------------
1 | import { Directive } from '@angular/core';
2 |
3 |
4 | /**
5 | * Prefix to be placed the front of the {@link TsFormFieldComponent}
6 | */
7 | @Directive({ selector: '[tsPrefix]' })
8 | export class TsPrefixDirective {}
9 |
--------------------------------------------------------------------------------
/projects/library/navigation/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "ngPackage": {
3 | "lib": {
4 | "entryFile": "src/public-api.ts",
5 | "umdModuleIds": {
6 | "@terminus/ngx-tools/utilities": "terminus.ngxTools.utilities"
7 | }
8 | }
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/projects/library/chart/testing/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "ngPackage": {
3 | "lib": {
4 | "entryFile": "src/public-api.ts",
5 | "umdModuleIds": {
6 | "@terminus/ngx-tools/utilities": "terminus.ngxTools.utilities"
7 | }
8 | }
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/projects/library/form-field/src/suffix.directive.ts:
--------------------------------------------------------------------------------
1 | import { Directive } from '@angular/core';
2 |
3 |
4 | /**
5 | * Suffix to be placed at the end of the {@link TsFormFieldComponent}
6 | */
7 | @Directive({ selector: '[tsSuffix]' })
8 | export class TsSuffixDirective {}
9 |
--------------------------------------------------------------------------------
/projects/library/expansion-panel/testing/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "ngPackage": {
3 | "lib": {
4 | "entryFile": "src/public-api.ts",
5 | "umdModuleIds": {
6 | "@terminus/ngx-tools/utilities": "terminus.ngxTools.utilities"
7 | }
8 | }
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/.editorconfig:
--------------------------------------------------------------------------------
1 | # http://editorconfig.org
2 | root = true
3 |
4 | [*]
5 | charset = utf-8
6 | indent_style = space
7 | indent_size = 2
8 | insert_final_newline = true
9 | trim_trailing_whitespace = true
10 |
11 |
12 | [*.md]
13 | max_line_length = 0
14 | trim_trailing_whitespace = false
--------------------------------------------------------------------------------
/projects/library/toggle/src/toggle.component.scss:
--------------------------------------------------------------------------------
1 | @import '../../scss/reset/reset';
2 |
3 |
4 | //
5 | // @component
6 | // Toggle component
7 | // @description
8 | // A toggle/switch component
9 | //
10 | .ts-toggle {
11 | @include reset;
12 | display: inline-block;
13 | }
14 |
--------------------------------------------------------------------------------
/.github/workflows/pr-labeler.yml:
--------------------------------------------------------------------------------
1 | name: PR Labeler
2 | on: pull_request
3 | jobs:
4 | build:
5 | runs-on: ubuntu-latest
6 | steps:
7 | - uses: srvaroa/labeler@master
8 | name: Autolabel PR
9 | env:
10 | GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}"
11 |
--------------------------------------------------------------------------------
/projects/library/scss/layout/_center-content.scss:
--------------------------------------------------------------------------------
1 | /**
2 | * Center child content vertically and horizontally
3 | *
4 | * @example
5 | * @include center-content;
6 | */
7 | @mixin center-content {
8 | align-items: center;
9 | display: flex;
10 | justify-content: center;
11 | }
12 |
--------------------------------------------------------------------------------
/projects/visual-regression/src/tsconfig.app.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./../tsconfig.json",
3 | "compilerOptions": {
4 | "outDir": "./../out-tsc/app",
5 | "module": "es2015",
6 | "types": []
7 | },
8 | "exclude": [
9 | "test.ts",
10 | "**/*.spec.ts"
11 | ]
12 | }
13 |
--------------------------------------------------------------------------------
/projects/library/tooltip/src/tooltip.component.html:
--------------------------------------------------------------------------------
1 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/projects/visual-regression/e2e/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "../../../tsconfig.json",
3 | "compilerOptions": {
4 | "outDir": "../../../out-tsc/e2e",
5 | "module": "commonjs",
6 | "target": "es5",
7 | "types": [
8 | "jest",
9 | "node"
10 | ]
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/jest.library.config.js:
--------------------------------------------------------------------------------
1 | const baseConfig = require('./jest.base.config');
2 |
3 | module.exports = {
4 | ...baseConfig,
5 | roots: ['.'],
6 | testMatch: [
7 | '/projects/library/**/?(*.)spec.ts?(x)',
8 | '/projects/library/**/?(*.)test-sass.js?(x)',
9 | ],
10 | };
11 |
--------------------------------------------------------------------------------
/projects/visual-regression/src/app/components/validation/validation.component.scss:
--------------------------------------------------------------------------------
1 | pre {
2 | background-color: #eee;
3 | border: 1px solid #999;
4 | font-size: .8em;
5 | max-width: 50%;
6 | overflow-x: scroll;
7 | padding: 1em;
8 | }
9 |
10 | .page {
11 | margin-left: 20px;
12 | }
13 |
--------------------------------------------------------------------------------
/jest.demo.config.js:
--------------------------------------------------------------------------------
1 | const baseConfig = require('./jest.base.config');
2 |
3 | module.exports = {
4 | ...baseConfig,
5 | roots: ['/projects/demo'],
6 | modulePaths: ['/projects/library'],
7 | testMatch: [
8 | '/projects/demo/**/?(*.)spec.ts?(x)',
9 | ],
10 | };
11 |
--------------------------------------------------------------------------------
/projects/library/login-form/src/login-form.component.scss:
--------------------------------------------------------------------------------
1 | @import '../../scss/reset/reset';
2 |
3 |
4 | //
5 | // @component
6 | // Log In Form
7 | // @description
8 | // The log in form component
9 | //
10 | .ts-login-form {
11 | @include reset;
12 | display: block;
13 | width: 100%;
14 | }
15 |
--------------------------------------------------------------------------------
/projects/demo/src/app/components/spacing/spacing.component.ts:
--------------------------------------------------------------------------------
1 | import { Component } from '@angular/core';
2 |
3 |
4 | @Component({
5 | selector: 'demo-spacing',
6 | styleUrls: ['./spacing.component.scss'],
7 | templateUrl: './spacing.component.html',
8 | })
9 | export class SpacingComponent {
10 | }
11 |
--------------------------------------------------------------------------------
/projects/demo/src/app/components/drawer/drawer.component.scss:
--------------------------------------------------------------------------------
1 | .drawer-container {
2 | bottom: 0;
3 | left: 0;
4 | position: absolute;
5 | right: 0;
6 | top: 25%;
7 | }
8 | .drawer-card {
9 | min-height: 600px;
10 | }
11 | .first-drawer {
12 | .content {
13 | margin-right: 20px;
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/projects/library/card/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "ngPackage": {
3 | "lib": {
4 | "entryFile": "src/public-api.ts",
5 | "umdModuleIds": {
6 | "@terminus/ngx-tools": "terminus.ngxTools",
7 | "@terminus/ngx-tools/coercion": "terminus.ngxTools.coercion"
8 | }
9 | }
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/projects/library/link/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "ngPackage": {
3 | "lib": {
4 | "entryFile": "src/public-api.ts",
5 | "umdModuleIds": {
6 | "@terminus/ngx-tools": "terminus.ngxTools",
7 | "@terminus/ngx-tools/coercion": "terminus.ngxTools.coercion"
8 | }
9 | }
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/projects/library/menu/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "ngPackage": {
3 | "lib": {
4 | "entryFile": "src/public-api.ts",
5 | "umdModuleIds": {
6 | "@terminus/ngx-tools": "terminus.ngxTools",
7 | "@terminus/ngx-tools/coercion": "terminus.ngxTools.coercion"
8 | }
9 | }
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/projects/library/checkbox/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "ngPackage": {
3 | "lib": {
4 | "entryFile": "src/public-api.ts",
5 | "umdModuleIds": {
6 | "@terminus/ngx-tools": "terminus.ngxTools",
7 | "@terminus/ngx-tools/coercion": "terminus.ngxTools.coercion"
8 | }
9 | }
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/projects/library/drawer/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "ngPackage": {
3 | "lib": {
4 | "entryFile": "src/public-api.ts",
5 | "umdModuleIds": {
6 | "@terminus/ngx-tools": "terminus.ngxTools",
7 | "@terminus/ngx-tools/keycodes": "terminus.ngxTools.keycodes"
8 | }
9 | }
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/projects/library/login-form/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "ngPackage": {
3 | "lib": {
4 | "entryFile": "src/public-api.ts",
5 | "umdModuleIds": {
6 | "@terminus/ngx-tools": "terminus.ngxTools",
7 | "@terminus/ngx-tools/coercion": "terminus.ngxTools.coercion"
8 | }
9 | }
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/projects/library/option/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "ngPackage": {
3 | "lib": {
4 | "entryFile": "src/public-api.ts",
5 | "umdModuleIds": {
6 | "@terminus/ngx-tools": "terminus.ngxTools",
7 | "@terminus/ngx-tools/keycodes": "terminus.ngxTools.keycodes"
8 | }
9 | }
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/projects/library/toggle/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "ngPackage": {
3 | "lib": {
4 | "entryFile": "src/public-api.ts",
5 | "umdModuleIds": {
6 | "@terminus/ngx-tools": "terminus.ngxTools",
7 | "@terminus/ngx-tools/coercion": "terminus.ngxTools.coercion"
8 | }
9 | }
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/projects/library/tooltip/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "ngPackage": {
3 | "lib": {
4 | "entryFile": "src/public-api.ts",
5 | "umdModuleIds": {
6 | "@terminus/ngx-tools": "terminus.ngxTools",
7 | "@terminus/ngx-tools/coercion": "terminus.ngxTools.coercion"
8 | }
9 | }
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | cypress/screenshots/*
2 | cypress/videos/*
3 | .idea/
4 | .vscode/
5 | dist/
6 | node_modules/
7 | out-tsc/
8 | debug.log
9 | npm-debug.log
10 | src/**/*.css
11 | *.js.map
12 | *.css.map
13 | e2e/**/*.js
14 | e2e/**/*.js.map
15 | .ng_build
16 | .vscode
17 | docs/*
18 | coverage/
19 | .tsbuildinfo
20 | .DS_Store
21 |
--------------------------------------------------------------------------------
/projects/demo/src/app/components/loading-overlay/loading-overlay.component.ts:
--------------------------------------------------------------------------------
1 | import { Component } from '@angular/core';
2 |
3 |
4 | @Component({
5 | selector: 'demo-loading-overlay',
6 | templateUrl: './loading-overlay.component.html',
7 | })
8 | export class LoadingOverlayComponent {
9 | isLoading = true;
10 | }
11 |
--------------------------------------------------------------------------------
/projects/demo/src/app/components/table/table.component.scss:
--------------------------------------------------------------------------------
1 | .example-container {
2 | overflow-y: scroll;
3 | width: 100%;
4 | }
5 |
6 | .truncate {
7 | display: block;
8 | max-height: 100px;
9 | overflow: hidden;
10 | text-overflow: ellipsis;
11 | white-space: nowrap;
12 | word-break: break-word;
13 | }
14 |
--------------------------------------------------------------------------------
/projects/visual-regression/src/app/app.component.ts:
--------------------------------------------------------------------------------
1 | import { Component } from '@angular/core';
2 |
3 |
4 | @Component({
5 | selector: 'app-root',
6 | templateUrl: './app.component.html',
7 | styleUrls: ['./app.component.scss'],
8 | })
9 | export class AppComponent {
10 | public title = 'Visual Regression';
11 | }
12 |
--------------------------------------------------------------------------------
/projects/demo/src/app/components/typography/typography.component.ts:
--------------------------------------------------------------------------------
1 | import { Component } from '@angular/core';
2 |
3 |
4 | @Component({
5 | selector: 'demo-typography',
6 | styleUrls: ['./typography.component.scss'],
7 | templateUrl: './typography.component.html',
8 | })
9 | export class TypographyComponent {
10 | }
11 |
--------------------------------------------------------------------------------
/projects/library/copy/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "ngPackage": {
3 | "lib": {
4 | "entryFile": "src/public-api.ts",
5 | "umdModuleIds": {
6 | "@terminus/ngx-tools/browser": "terminus.ngxTools.browser",
7 | "@terminus/ngx-tools/coercion": "terminus.ngxTools.coercion"
8 | }
9 | }
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/projects/demo/src/app/components/breakpoints/breakpoints.component.ts:
--------------------------------------------------------------------------------
1 | import { Component } from '@angular/core';
2 |
3 |
4 | @Component({
5 | selector: 'demo-breakpoints',
6 | templateUrl: './breakpoints.component.html',
7 | styleUrls: ['./breakpoints.component.scss'],
8 | })
9 | export class BreakpointsComponent {
10 | }
11 |
--------------------------------------------------------------------------------
/projects/library/button/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "ngPackage": {
3 | "lib": {
4 | "entryFile": "src/public-api.ts",
5 | "umdModuleIds": {
6 | "@terminus/ngx-tools/browser": "terminus.ngxTools.browser",
7 | "@terminus/ngx-tools/coercion": "terminus.ngxTools.coercion"
8 | }
9 | }
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/projects/library/file-upload/src/image-dimensions.ts:
--------------------------------------------------------------------------------
1 | /**
2 | * A class to store dimensions for an image
3 | *
4 | * @param width - The image width
5 | * @param height - The image height
6 | */
7 | export class TsImageDimensions {
8 | constructor(
9 | public width: number,
10 | public height: number,
11 | ) {}
12 | }
13 |
--------------------------------------------------------------------------------
/projects/library/scss/color/_color.spec.scss:
--------------------------------------------------------------------------------
1 | @import 'true';
2 | @import 'color';
3 |
4 | @include describe ('color') {
5 | @include test('should return the correct color based on palette and tone') {
6 | $test: color(warn, dark);
7 | $expect: #b55949;
8 |
9 | @include assert-equal($test, $expect);
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/projects/library/date-range/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "ngPackage": {
3 | "lib": {
4 | "entryFile": "src/public-api.ts",
5 | "umdModuleIds": {
6 | "@terminus/ngx-tools/coercion": "terminus.ngxTools.coercion",
7 | "@terminus/ngx-tools/utilities": "terminus.ngxTools.utilities"
8 | }
9 | }
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/projects/library/paginator/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "ngPackage": {
3 | "lib": {
4 | "entryFile": "src/public-api.ts",
5 | "umdModuleIds": {
6 | "@terminus/ngx-tools/coercion": "terminus.ngxTools.coercion",
7 | "@terminus/ngx-tools/utilities": "terminus.ngxTools.utilities"
8 | }
9 | }
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/projects/library/search/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "ngPackage": {
3 | "lib": {
4 | "entryFile": "src/public-api.ts",
5 | "umdModuleIds": {
6 | "@terminus/ngx-tools/coercion": "terminus.ngxTools.coercion",
7 | "@terminus/ngx-tools/utilities": "terminus.ngxTools.utilities"
8 | }
9 | }
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/projects/demo/src/app/components/scrollbars/scrollbars.component.scss:
--------------------------------------------------------------------------------
1 | .scroll-container {
2 | height: 320px;
3 | outline: 1px solid lightblue;
4 | width: 400px;
5 | }
6 |
7 | .ts-scrollbars {
8 | p {
9 | margin-bottom: 2em;
10 | }
11 |
12 | &.nowrap {
13 | p {
14 | white-space: nowrap;
15 | }
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/projects/demo/src/app/components/spacing/spacing-styles.component.ts:
--------------------------------------------------------------------------------
1 | import { Component } from '@angular/core';
2 |
3 |
4 | @Component({
5 | selector: 'demo-spacing-styles',
6 | styleUrls: ['./spacing-styles.component.scss'],
7 | templateUrl: './spacing-styles.component.html',
8 | })
9 | export class SpacingStylesComponent {
10 | }
11 |
--------------------------------------------------------------------------------
/projects/library/form-field/src/custom-validation.directive.ts:
--------------------------------------------------------------------------------
1 | import { Directive } from '@angular/core';
2 |
3 |
4 | /**
5 | * A directive used to pass a custom validation messages component through to {@link TsFormFieldComponent}
6 | */
7 | @Directive({ selector: '[tsCustomValidationMessage]' })
8 | export class TsCustomValidationDirective {}
9 |
--------------------------------------------------------------------------------
/projects/library/loading-overlay/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "ngPackage": {
3 | "lib": {
4 | "entryFile": "src/public-api.ts",
5 | "umdModuleIds": {
6 | "@terminus/ngx-tools/browser": "terminus.ngxTools.browser",
7 | "@terminus/ngx-tools/coercion": "terminus.ngxTools.coercion"
8 | }
9 | }
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/projects/library/validators/src/validators.module.ts:
--------------------------------------------------------------------------------
1 | import { NgModule } from '@angular/core';
2 |
3 | import { TsValidatorsService } from './validators.service';
4 |
5 | export * from './validators.service';
6 |
7 |
8 | @NgModule({
9 | providers: [
10 | TsValidatorsService,
11 | ],
12 | })
13 | export class TsValidatorsModule {}
14 |
--------------------------------------------------------------------------------
/projects/library/autocomplete/src/autocomplete-panel/autocomplete-panel.component.html:
--------------------------------------------------------------------------------
1 |
2 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/projects/library/cohort-date-range/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "ngPackage": {
3 | "lib": {
4 | "entryFile": "src/public-api.ts",
5 | "umdModuleIds": {
6 | "@terminus/ngx-tools/coercion": "terminus.ngxTools.coercion",
7 | "@terminus/ngx-tools/utilities": "terminus.ngxTools.utilities"
8 | }
9 | }
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/projects/demo/stylelint.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | extends: '@terminus/stylelint-config-frontend',
3 | rules: {
4 | 'color-named': null,
5 | 'no-eol-whitespace': [true, { ignore: 'empty-lines' }],
6 | 'plugin/stylelint-no-indistinguishable-colors': null,
7 | 'scale-unlimited/declaration-strict-value': null,
8 | },
9 | };
10 |
--------------------------------------------------------------------------------
/projects/demo/src/app/components/form-controls/row.component.ts:
--------------------------------------------------------------------------------
1 | import {
2 | Component, OnInit,
3 | } from '@angular/core';
4 |
5 | @Component({
6 | selector: 'demo-row',
7 | templateUrl: './row.component.html',
8 | })
9 |
10 | export class RowComponent implements OnInit {
11 | constructor() {
12 | }
13 |
14 | ngOnInit() {
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/projects/library/drawer/src/drawer-container.component.html:
--------------------------------------------------------------------------------
1 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/projects/library/selection-list/src/selection-list-panel/selection-list-panel.component.html:
--------------------------------------------------------------------------------
1 |
2 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/projects/demo/src/app/components/navigation/navigation.component.scss:
--------------------------------------------------------------------------------
1 | @import '~@terminus/ui/helpers';
2 |
3 | .outer {
4 | @include elevation-element(app-bar);
5 | background-color: color(primary);
6 |
7 | span {
8 | color: color(pure);
9 | padding: 0 1rem;
10 | }
11 | }
12 |
13 | a {
14 | display: inline-block;
15 | padding: 8px;
16 | }
17 |
--------------------------------------------------------------------------------
/projects/library/tabs/src/body/tab-body.component.html:
--------------------------------------------------------------------------------
1 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/projects/demo/tsconfig.app.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "../../tsconfig.json",
3 | "angularCompilerOptions": {
4 | "enableIvy": false
5 | },
6 | "compilerOptions": {
7 | "outDir": "../../out-tsc/app",
8 | "types": []
9 | },
10 | "files": [
11 | "src/main.ts",
12 | "src/polyfills.ts"
13 | ],
14 | "include": [
15 | "src/**/*.d.ts"
16 | ]
17 | }
18 |
--------------------------------------------------------------------------------
/projects/library/pipes/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "ngPackage": {
3 | "lib": {
4 | "entryFile": "src/public-api.ts",
5 | "umdModuleIds": {
6 | "date-fns": "dateFns",
7 | "@terminus/ngx-tools/type-guards": "terminus.ngxTools.type-guards",
8 | "@terminus/ngx-tools/utilities": "terminus.ngxTools.utilities"
9 | }
10 | }
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/tooling/ci/test-unit.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | #
4 | # Run Unit Tests
5 | #
6 | # Run all unit tests
7 | # Upload coverage to CodeCov
8 | #
9 |
10 | . ~/.bashrc
11 |
12 | # Run tests
13 | yarn run library:test:ci || {
14 | echo 'yarn run library:test:ci failed!';
15 | exit 1;
16 | }
17 |
18 | # Upload coverage report
19 | bash <(curl -s https://codecov.io/bash)
20 |
21 |
--------------------------------------------------------------------------------
/jest.visual-regression.config.js:
--------------------------------------------------------------------------------
1 | const baseConfig = require('./jest.base.config');
2 |
3 | module.exports = {
4 | ...baseConfig,
5 | roots: ['.'],
6 | modulePaths: ['/projects/library'],
7 | testMatch: [
8 | '/projects/visual-regression/**/?(*.)spec.ts?(x)',
9 | '/projects/visual-regression/**/?(*.)test-sass.js?(x)',
10 | ],
11 | };
12 |
--------------------------------------------------------------------------------
/projects/library/form-field/src/label.directive.ts:
--------------------------------------------------------------------------------
1 | // NOTE: We are using this directive as a component
2 | import { Directive } from '@angular/core';
3 |
4 |
5 | /**
6 | * The floating label for a {@link TsFormFieldComponent}
7 | */
8 | // eslint-disable-next-line @angular-eslint/directive-selector
9 | @Directive({ selector: 'ts-label' })
10 | export class TsLabelDirective {}
11 |
--------------------------------------------------------------------------------
/projects/library/scrollbars/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "ngPackage": {
3 | "lib": {
4 | "entryFile": "src/public-api.ts",
5 | "umdModuleIds": {
6 | "ngx-perfect-scrollbar": "ngxPerfectScrollbar",
7 | "@terminus/ngx-tools": "terminus.ngxTools",
8 | "@terminus/ngx-tools/coercion": "terminus.ngxTools.coercion"
9 | }
10 | }
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/projects/library/utilities/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "ngPackage": {
3 | "lib": {
4 | "entryFile": "src/public-api.ts",
5 | "umdModuleIds": {
6 | "date-fns": "dateFns",
7 | "@terminus/ngx-tools/utilities": "terminus.ngxTools.utilities",
8 | "@terminus/ngx-tools/type-guards": "terminus.ngxTools.type-guards"
9 | }
10 | }
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/projects/library/validation-messages/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "ngPackage": {
3 | "lib": {
4 | "entryFile": "src/public-api.ts",
5 | "umdModuleIds": {
6 | "date-fns": "dateFns",
7 | "@terminus/ngx-tools/coercion": "terminus.ngxTools.coercion",
8 | "@terminus/ngx-tools/utilities": "terminus.ngxTools.utilities"
9 | }
10 | }
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/projects/library/tabs/src/label/tab-label.directive.ts:
--------------------------------------------------------------------------------
1 | import { CdkPortal } from '@angular/cdk/portal';
2 | import { Directive } from '@angular/core';
3 |
4 |
5 | /**
6 | * Used to flag tab labels for use with the portal directive
7 | */
8 | @Directive({
9 | selector: '[tsTabLabel]',
10 | exportAs: 'tsTabLabel',
11 | })
12 | export class TsTabLabelDirective extends CdkPortal { }
13 |
--------------------------------------------------------------------------------
/projects/library/utilities/src/types/style-theme.types.ts:
--------------------------------------------------------------------------------
1 | /**
2 | * Define the allowed theme types
3 | */
4 | export type TsStyleThemeTypes
5 | = 'primary'
6 | | 'accent'
7 | | 'warn'
8 | ;
9 |
10 | /**
11 | * An array of the allowed {@link TsStyleThemeTypes} for checking values
12 | */
13 | export const tsStyleThemeTypesArray: TsStyleThemeTypes[] = ['primary', 'accent', 'warn'];
14 |
--------------------------------------------------------------------------------
/projects/demo/src/app/components/icon-button/icon-button.component.ts:
--------------------------------------------------------------------------------
1 | import { Component } from '@angular/core';
2 |
3 |
4 | @Component({
5 | selector: 'demo-icon-button',
6 | templateUrl: './icon-button.component.html',
7 | })
8 | export class IconButtonComponent {
9 |
10 | clickTheme(v: string): void {
11 | console.log(`DEMO: '${v}' icon-button clicked.`);
12 | }
13 |
14 | }
15 |
--------------------------------------------------------------------------------
/projects/library/scss/buttons/_buttons.scss:
--------------------------------------------------------------------------------
1 | @import '../cursors/cursors';
2 |
3 |
4 | /**
5 | * Reset button styles
6 | *
7 | * @example
8 | * @include button-base;
9 | */
10 | @mixin button-base {
11 | background-color: transparent;
12 | border: 0;
13 | cursor: cursor(pointer);
14 | outline: 0;
15 | text-align: center;
16 |
17 | &:focus {
18 | outline: 0;
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/projects/visual-regression/tsconfig.spec.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "../../tsconfig.json",
3 | "compilerOptions": {
4 | "outDir": "../../out-tsc/spec",
5 | "types": [
6 | "jest",
7 | "node"
8 | ]
9 | },
10 | "files": [
11 | "src/test.ts",
12 | "src/polyfills.ts"
13 | ],
14 | "include": [
15 | "src/**/*.spec.ts",
16 | "src/**/*.d.ts"
17 | ]
18 | }
19 |
--------------------------------------------------------------------------------
/.github/labeler.yml:
--------------------------------------------------------------------------------
1 | # Targeting all titles so that this label is added to every PR
2 | "PR: awaiting review":
3 | title: '[\s\S]*'
4 |
5 | "Size: XS":
6 | size-below: 20
7 | "Size: S":
8 | size-above: 20
9 | size-below: 60
10 | "Size: M":
11 | size-above: 60
12 | size-below: 140
13 | "Size: L":
14 | size-above: 140
15 | size-below: 400
16 | "Size: XL":
17 | size-above: 400
18 |
19 |
--------------------------------------------------------------------------------
/projects/library/scss/global/terminus-ui.scss:
--------------------------------------------------------------------------------
1 | @import './custom-properties';
2 | @import './generated-classes';
3 | @import '../theme/theme';
4 |
5 |
6 | // Remove outline from all focused elements. Focus styles should be handled by the component
7 | * {
8 | &:focus {
9 | outline: 0;
10 | }
11 | }
12 |
13 | // Include our custom theme
14 | @include angular-material-theme($ts-app-theme);
15 |
--------------------------------------------------------------------------------
/projects/library/toggle/src/toggle.component.html:
--------------------------------------------------------------------------------
1 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/projects/visual-regression/src/app/components/button/button.component.ts:
--------------------------------------------------------------------------------
1 | import { Component } from '@angular/core';
2 |
3 | @Component({
4 | selector: 'app-button',
5 | templateUrl: './button.component.html',
6 | })
7 | export class ButtonComponent {
8 | public title = 'Visual Regression';
9 | public progress = false;
10 |
11 | public run(): void {
12 | this.progress = true;
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/tooling/ci/report-system-name.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | #
4 | # Report the current system name
5 | #
6 |
7 | . ~/.bashrc
8 |
9 | unameOut="$(uname -s)"
10 | case "${unameOut}" in
11 | Linux*) machine=Linux;;
12 | Darwin*) machine=Mac;;
13 | CYGWIN*) machine=Cygwin;;
14 | MINGW*) machine=MinGw;;
15 | *) machine="UNKNOWN:${unameOut}"
16 | esac
17 | echo "${machine}"
18 |
--------------------------------------------------------------------------------
/projects/demo/src/tslint.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./../tslint.json",
3 | "rules": {
4 | "component-selector": [
5 | true,
6 | "element",
7 | "demo",
8 | "kebab-case"
9 | ],
10 | "member-access": false,
11 | "prefer-on-push-component-change-detection": false,
12 | "template-no-call-expression": false,
13 | "template-use-track-by-function": false
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/projects/library/csv-entry/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "ngPackage": {
3 | "lib": {
4 | "entryFile": "src/public-api.ts",
5 | "umdModuleIds": {
6 | "@terminus/ngx-tools/browser": "terminus.ngxTools.browser",
7 | "@terminus/ngx-tools/coercion": "terminus.ngxTools.coercion",
8 | "@terminus/ngx-tools/utilities": "terminus.ngxTools.utilities"
9 | }
10 | }
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/projects/library/form-field/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "ngPackage": {
3 | "lib": {
4 | "entryFile": "src/public-api.ts",
5 | "umdModuleIds": {
6 | "@terminus/ngx-tools/browser": "terminus.ngxTools.browser",
7 | "@terminus/ngx-tools/coercion": "terminus.ngxTools.coercion",
8 | "@terminus/ngx-tools/utilities": "terminus.ngxTools.utilities"
9 | }
10 | }
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/projects/library/sort/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "ngPackage": {
3 | "lib": {
4 | "entryFile": "src/public-api.ts",
5 | "umdModuleIds": {
6 | "@terminus/ngx-tools/coercion": "terminus.ngxTools.coercion",
7 | "@terminus/ngx-tools/type-guards": "terminus.ngxTools.type-guards",
8 | "@terminus/ngx-tools/utilities": "terminus.ngxTools.utilities"
9 | }
10 | }
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/projects/library/confirmation/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "ngPackage": {
3 | "lib": {
4 | "entryFile": "src/public-api.ts",
5 | "umdModuleIds": {
6 | "@terminus/ngx-tools/coercion": "terminus.ngxTools.coercion",
7 | "@terminus/ngx-tools/keycodes": "terminus.ngxTools.keycodes",
8 | "@terminus/ngx-tools/utilities": "terminus.ngxTools.utilities"
9 | }
10 | }
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/projects/library/expansion-panel/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "ngPackage": {
3 | "lib": {
4 | "entryFile": "src/public-api.ts",
5 | "umdModuleIds": {
6 | "@terminus/ngx-tools/browser": "terminus.ngxTools.browser",
7 | "@terminus/ngx-tools/keycodes": "terminus.ngxTools.keycodes",
8 | "@terminus/ngx-tools/utilities": "terminus.ngxTools.utilities"
9 | }
10 | }
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/projects/library/table/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "ngPackage": {
3 | "lib": {
4 | "entryFile": "src/public-api.ts",
5 | "umdModuleIds": {
6 | "@terminus/ngx-tools/browser": "terminus.ngxTools.browser",
7 | "@terminus/ngx-tools/type-guards": "terminus.ngxTools.type-guards",
8 | "@terminus/ngx-tools/utilities": "terminus.ngxTools.utilities"
9 | }
10 | }
11 | }
12 | }
13 |
14 |
--------------------------------------------------------------------------------
/projects/demo/tsconfig.spec.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "../../tsconfig.json",
3 | "compilerOptions": {
4 | "emitDecoratorMetadata": true,
5 | "outDir": "../../out-tsc/spec",
6 | "types": [
7 | "jest",
8 | "node"
9 | ]
10 | },
11 | "files": [
12 | "src/test.ts",
13 | "src/polyfills.ts"
14 | ],
15 | "include": [
16 | "src/**/*.spec.ts",
17 | "src/**/*.d.ts"
18 | ]
19 | }
20 |
--------------------------------------------------------------------------------
/projects/library/radio-group/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "ngPackage": {
3 | "lib": {
4 | "entryFile": "src/public-api.ts",
5 | "umdModuleIds": {
6 | "@terminus/ngx-tools/coercion": "terminus.ngxTools.coercion",
7 | "@terminus/ngx-tools/type-guards": "terminus.ngxTools.type-guards",
8 | "@terminus/ngx-tools/utilities": "terminus.ngxTools.utilities"
9 | }
10 | }
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/projects/demo/src/tsconfig.app.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "../../../tsconfig.json",
3 | "compilerOptions": {
4 | "baseUrl": "projects/demo",
5 | "outDir": "./../out-tsc/app",
6 | "types": []
7 | },
8 | "files": [
9 | "src/main.ts",
10 | "src/polyfills.ts"
11 | ],
12 | "include": [
13 | "src/**/*.ts"
14 | ],
15 | "exclude": [
16 | "src/test.ts",
17 | "src/**/*.spec.ts"
18 | ]
19 | }
20 |
--------------------------------------------------------------------------------
/projects/library/option/src/option-display.directive.ts:
--------------------------------------------------------------------------------
1 | import {
2 | Directive,
3 | ElementRef,
4 | } from '@angular/core';
5 |
6 |
7 | /**
8 | * Directive used to allow the consumer to define the view text for a {@link TsOptionComponent}
9 | */
10 | @Directive({ selector: '[tsOptionDisplay]' })
11 | export class TsOptionDisplayDirective {
12 | constructor(
13 | public elementRef: ElementRef,
14 | ) {}
15 | }
16 |
--------------------------------------------------------------------------------
/tooling/jest-setup.ts:
--------------------------------------------------------------------------------
1 | import 'jest-preset-angular';
2 | import './jest-global-mocks';
3 |
4 | global.window.document.createRange = function createRange() {
5 | return {
6 | setEnd: () => {},
7 | setStart: () => {},
8 | getBoundingClientRect: () => {
9 | return { right: 0 };
10 | },
11 | getClientRects: () => [],
12 | commonAncestorContainer: document.createElement('div'),
13 | };
14 | };
15 |
--------------------------------------------------------------------------------
/projects/demo/src/app/components/login-form/login-form.component.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
13 |
14 |
--------------------------------------------------------------------------------
/projects/library/scss/layout/_take-space.scss:
--------------------------------------------------------------------------------
1 | /**
2 | * Fill the parent element
3 | *
4 | * @param $margin
5 | * The amount of space between the edge of the parent. Default: 0
6 | * @example
7 | * @include fill-parent;
8 | * @include fill-parent(1em);
9 | */
10 | @mixin take-space($margin: 0) {
11 | bottom: $margin;
12 | left: $margin;
13 | position: absolute;
14 | right: $margin;
15 | top: $margin;
16 | }
17 |
--------------------------------------------------------------------------------
/projects/library/tsconfig.compodoc.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "target": "ES5",
4 | "module": "commonjs",
5 | "moduleResolution": "node",
6 | "experimentalDecorators": true,
7 | "lib": [
8 | "es2018",
9 | "dom"
10 | ]
11 | },
12 | "include": [
13 | "**/*"
14 | ],
15 | "exclude": [
16 | "**/*.spec.ts",
17 | "**/*.mock.ts",
18 | "**/testing/**"
19 | ]
20 | }
21 |
--------------------------------------------------------------------------------
/projects/demo/src/environments/environment.ts:
--------------------------------------------------------------------------------
1 | // The file contents for the current environment will overwrite these during build.
2 | // The build system defaults to the dev environment which uses `environment.ts`, but if you do
3 | // `ng build --env=prod` then `environment.prod.ts` will be used instead.
4 | // The list of which env maps to which file can be found in `.angular-cli.json`.
5 |
6 | export const environment = { production: false };
7 |
--------------------------------------------------------------------------------
/projects/library/validators/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "ngPackage": {
3 | "lib": {
4 | "entryFile": "src/public-api.ts",
5 | "umdModuleIds": {
6 | "@terminus/ngx-tools/coercion": "terminus.ngxTools.coercion",
7 | "@terminus/ngx-tools/regex": "terminus.ngxTools.regex",
8 | "@terminus/ngx-tools/type-guards": "terminus.ngxTools.type-guards",
9 | "date-fns": "dateFns"
10 | }
11 | }
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/projects/demo/src/app/components/tooltip/tooltip.component.ts:
--------------------------------------------------------------------------------
1 | import { Component } from '@angular/core';
2 | import { TsTooltipPositionTypes } from '@terminus/ui/tooltip';
3 |
4 |
5 | @Component({
6 | selector: 'demo-tooltip',
7 | templateUrl: './tooltip.component.html',
8 | })
9 | export class TooltipComponent {
10 | myTooltip = 'Here is my content.';
11 | myPosition: TsTooltipPositionTypes = 'below';
12 | showUnderline = true;
13 | }
14 |
--------------------------------------------------------------------------------
/projects/library/autofocus/src/autofocus.module.ts:
--------------------------------------------------------------------------------
1 | import { CommonModule } from '@angular/common';
2 | import { NgModule } from '@angular/core';
3 |
4 | import { TsAutofocusDirective } from './autofocus.directive';
5 |
6 | export * from './autofocus.directive';
7 |
8 |
9 | @NgModule({
10 | imports: [CommonModule],
11 | declarations: [TsAutofocusDirective],
12 | exports: [TsAutofocusDirective],
13 | })
14 | export class TsAutofocusModule {}
15 |
--------------------------------------------------------------------------------
/projects/library/utilities/src/strip-control-characters/strip-control-characters.spec.ts:
--------------------------------------------------------------------------------
1 | import { stripControlCharacters } from './strip-control-characters';
2 |
3 | describe(`stripControlCharacters`, function() {
4 | const specialString = `\thttps://www.google.com\r`;
5 |
6 | test(`should remove control characters from a string`, () => {
7 | expect(stripControlCharacters(specialString)).toEqual(`https://www.google.com`);
8 | });
9 | });
10 |
--------------------------------------------------------------------------------
/projects/library/chip/src/chip.component.html:
--------------------------------------------------------------------------------
1 |
10 |
11 |
12 |
13 |
14 |
15 | cancel
16 |
17 |
18 |
--------------------------------------------------------------------------------
/projects/library/utilities/src/cva-provider-factory/cva-provider-factory.spec.ts:
--------------------------------------------------------------------------------
1 | import { ControlValueAccessorProviderFactory } from './cva-provider-factory';
2 |
3 | describe(`ControlValueAccessorProviderFactory`, function() {
4 | test(`should forward a reference to this component`, () => {
5 | class Foo {}
6 | const provider = ControlValueAccessorProviderFactory(Foo);
7 | expect(provider.useExisting()).toEqual(Foo);
8 | });
9 | });
10 |
--------------------------------------------------------------------------------
/projects/visual-regression/src/main.ts:
--------------------------------------------------------------------------------
1 | import { enableProdMode } from '@angular/core';
2 | import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
3 |
4 | import { AppModule } from './app/app.module';
5 | import { environment } from './environments/environment';
6 |
7 | if (environment.production) {
8 | enableProdMode();
9 | }
10 |
11 | platformBrowserDynamic().bootstrapModule(AppModule)
12 | .catch(err => console.error(err));
13 |
--------------------------------------------------------------------------------
/projects/library/file-upload/src/image-dimension-constraints.ts:
--------------------------------------------------------------------------------
1 |
2 | /**
3 | * An individual size constraint
4 | */
5 | export interface TsFileImageDimensionContraint {
6 | height: {
7 | min: number;
8 | max: number;
9 | };
10 | width: {
11 | min: number;
12 | max: number;
13 | };
14 | }
15 |
16 | /**
17 | * An array of file size constraints
18 | */
19 | export type TsFileImageDimensionConstraints = TsFileImageDimensionContraint[];
20 |
--------------------------------------------------------------------------------
/projects/library/chip/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "ngPackage": {
3 | "lib": {
4 | "entryFile": "src/public-api.ts",
5 | "umdModuleIds": {
6 | "@terminus/ngx-tools": "terminus.ngxTools",
7 | "@terminus/ngx-tools/browser": "terminus.ngxTools.browser",
8 | "@terminus/ngx-tools/keycodes": "terminus.ngxTools.keycodes",
9 | "@terminus/ngx-tools/type-guards": "terminus.ngxTools.type-guards"
10 | }
11 | }
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/projects/library/scss/theme/_theme.scss:
--------------------------------------------------------------------------------
1 | @import '../color/color';
2 | @import '../../../../node_modules/@angular/material/theming';
3 | @include mat-core;
4 |
5 | $ts-default-primary: mat-palette($ts-material-primary, 500, 100, 700);
6 | $ts-default-accent: mat-palette($ts-material-accent, 500, 100, 700);
7 | $ts-default-warn: mat-palette($ts-material-warn, 500, 100, 700);
8 | $ts-app-theme: mat-light-theme($ts-default-primary, $ts-default-accent, $ts-default-warn);
9 |
--------------------------------------------------------------------------------
/.github/workflows/auto-assign-pr.yml:
--------------------------------------------------------------------------------
1 | name: Auto Assign PR to Author
2 | on: [pull_request]
3 | jobs:
4 | assignAuthor:
5 | runs-on: ubuntu-latest
6 | steps:
7 | - name: Assign PR to Author
8 | uses: samspills/assign-pr-to-author@v1.0
9 | if: github.event_name == 'pull_request' && github.event.action == 'opened' && github.repository == 'GetTerminus/terminus-ui'
10 | with:
11 | repo-token: '${{ secrets.GITHUB_TOKEN }}'
12 |
--------------------------------------------------------------------------------
/projects/demo/src/app/components/link/link.component.ts:
--------------------------------------------------------------------------------
1 | import { Component } from '@angular/core';
2 |
3 |
4 | @Component({
5 | selector: 'demo-link',
6 | templateUrl: './link.component.html',
7 | })
8 | export class LinkComponent {
9 | localDestination = ['/components/copy'];
10 | emailDestination = 'mailto:support@terminus.com';
11 | phoneDestination = 'tel: 1800-423-4562';
12 | externalDestination = `http://google.com`;
13 | external = true;
14 | }
15 |
--------------------------------------------------------------------------------
/projects/library/logo/src/logo.module.ts:
--------------------------------------------------------------------------------
1 | import { CommonModule } from '@angular/common';
2 | import { NgModule } from '@angular/core';
3 |
4 | import { TsLogoComponent } from './logo.component';
5 |
6 | export * from './logo.component';
7 |
8 |
9 | @NgModule({
10 | imports: [
11 | CommonModule,
12 | ],
13 | declarations: [
14 | TsLogoComponent,
15 | ],
16 | exports: [
17 | TsLogoComponent,
18 | ],
19 | })
20 | export class TsLogoModule {}
21 |
--------------------------------------------------------------------------------
/projects/library/scss/layout/_pseudo.scss:
--------------------------------------------------------------------------------
1 | /**
2 | * Pseudo element base styles
3 | *
4 | * @param $display
5 | * The display value (block/inline/etc)
6 | * @param $position
7 | * The position style (absolute/static/etc)
8 | * @param $content
9 | * The content value
10 | */
11 | @mixin pseudo(
12 | $display: block,
13 | $position: absolute,
14 | $content: ''
15 | ) {
16 | content: $content;
17 | display: $display;
18 | position: $position;
19 | }
20 |
--------------------------------------------------------------------------------
/projects/library/validation-messages/testing/src/test-helpers.ts:
--------------------------------------------------------------------------------
1 | import { ComponentFixture } from '@angular/core/testing';
2 | import { By } from '@angular/platform-browser';
3 |
4 | /**
5 | * Get the message element
6 | *
7 | * @param fixture
8 | * @returns HTMLElement
9 | */
10 | export const getValidationMessageElement =
11 | (fixture: ComponentFixture): HTMLElement => fixture.debugElement.query(By.css('.ts-validation-messages')).nativeElement;
12 |
13 |
--------------------------------------------------------------------------------
/projects/visual-regression/tsconfig.app.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "../../tsconfig.json",
3 | "angularCompilerOptions": {
4 | "enableIvy": false
5 | },
6 | "compilerOptions": {
7 | "outDir": "../../out-tsc/app",
8 | "types": []
9 | },
10 | "files": [
11 | "src/main.ts",
12 | "src/polyfills.ts"
13 | ],
14 | "include": [
15 | "src/**/*.d.ts"
16 | ],
17 | "exclude": [
18 | "src/test.ts",
19 | "src/**/*.spec.ts"
20 | ]
21 | }
22 |
--------------------------------------------------------------------------------
/cypress/integration/spin-up.js:
--------------------------------------------------------------------------------
1 | describe(`Demo`, () => {
2 | it(`should load demo page`, () => {
3 | cy.visit('http://localhost:4200/');
4 | cy.get('body').contains('Demos');
5 | });
6 |
7 | it(`should load button page`, () => {
8 | cy.visit('http://localhost:4200/components/button');
9 | cy.get(':nth-child(1) > label > .ng-pristine').contains('Primary');
10 | cy.get('[tsverticalspacing="small--0"]').contains('Click Me!');
11 | });
12 |
13 | });
14 |
--------------------------------------------------------------------------------
/projects/library/tabs/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "ngPackage": {
3 | "lib": {
4 | "entryFile": "src/public-api.ts",
5 | "umdModuleIds": {
6 | "@terminus/ngx-tools/coercion": "terminus.ngxTools.coercion",
7 | "@terminus/ngx-tools/keycodes": "terminus.ngxTools.keycodes",
8 | "@terminus/ngx-tools/utilities": "terminus.ngxTools.utilities",
9 | "@terminus/ngx-tools/type-guards": "terminus.ngxTools.type-guards"
10 | }
11 | }
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/projects/library/checkbox/src/checkbox.component.html:
--------------------------------------------------------------------------------
1 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/tooling/mark-small.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/projects/demo/browserslist:
--------------------------------------------------------------------------------
1 | # This file is used by the build system to adjust CSS and JS output to support the specified browsers below.
2 | # For additional information regarding the format and rule options, please see:
3 | # https://github.com/browserslist/browserslist#queries
4 |
5 | # You can see what browsers were selected by your queries by running:
6 | # npx browserslist
7 |
8 | > 0.5%
9 | last 2 versions
10 | Firefox ESR
11 | not dead
12 | not IE 9-11 # For IE 9-11 support, remove 'not'.
--------------------------------------------------------------------------------
/projects/demo/src/app/components/card/card-routing.module.ts:
--------------------------------------------------------------------------------
1 | import { NgModule } from '@angular/core';
2 | import {
3 | RouterModule, Routes,
4 | } from '@angular/router';
5 |
6 | import { CardComponent } from './card.component';
7 |
8 |
9 | const routes: Routes = [
10 | {
11 | path: '',
12 | component: CardComponent,
13 | },
14 | ];
15 |
16 | @NgModule({
17 | imports: [RouterModule.forChild(routes)],
18 | exports: [RouterModule],
19 | })
20 | export class CardRoutingModule { }
21 |
--------------------------------------------------------------------------------
/projects/library/popover/src/popover.component.html:
--------------------------------------------------------------------------------
1 |
17 |
--------------------------------------------------------------------------------
/projects/library/search/src/search.component.scss:
--------------------------------------------------------------------------------
1 | @import '../../scss/reset/reset';
2 | @import '../../scss/spacing/spacing';
3 | @import '../../scss/typography/typography';
4 |
5 |
6 | //
7 | // @component
8 | // Search form
9 | // @description
10 | // A search form with an input and a button
11 | //
12 | .ts-search {
13 | @include reset;
14 | display: block;
15 | }
16 |
17 | //