• This repository has been archived on 25/May/2024
  • Stars
    star
    182
  • Rank 211,154 (Top 5 %)
  • Language
    JavaScript
  • License
    Apache License 2.0
  • Created over 7 years ago
  • Updated 5 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Terra offers a set of configurable React components designed to help build scalable and modular application UIs. This UI library was created to solve real-world issues in projects we work on day to day.

Terra Logo

Terra Core

Cerner OSS License Build Status devDependencies status lerna

Packages

Versioning

When a component reaches v1.0.0., it is considered to be stable and will follow SemVer for versioning.

  1. MAJOR versions represent breaking changes
  2. MINOR versions represent added functionality in a backwards-compatible manner
  3. PATCH versions represent backwards-compatible bug fixes

Consult the component CHANGELOGs, related issues, and PRs for more information.

We view the React.js props API of our components as our main public API. We use this to guide us when versioning components.

Prior to components reaching v1.0.0, a component is considered to be in a beta stage. Components in beta stage may include breaking changes, new features, and bug fixes all within v0.x.x releases.

Status

Stable Beta Deprecated

Terra Package Version Status Dependencies
terra-action-footer NPM version Stable terra-action-footer
terra-action-header NPM version Stable terra-action-header
terra-alert NPM version Stable terra-alert
terra-arrange NPM version Stable terra-arrange
terra-avatar NPM version Stable terra-avatar
terra-badge NPM version Stable terra-badge
terra-base NPM version Stable terra-base
terra-breakpoints NPM version Stable terra-breakpoints
terra-button NPM version Stable terra-button
terra-button-group NPM version Stable terra-button-group
terra-card NPM version Stable terra-card
terra-content-container NPM version Stable terra-content-container
terra-demographics-banner NPM version Stable terra-demographics-banner
terra-dialog NPM version Stable terra-dialog
terra-divider NPM version Stable terra-divider
terra-dropdown-button NPM version Stable terra-dropdown-button
terra-dynamic-grid NPM version Stable terra-dynamic-grid
terra-form-checkbox NPM version Stable terra-form-checkbox
terra-form-field NPM version Stable terra-form-field
terra-form-fieldset NPM version Stable terra-form-fieldset
terra-form-input NPM version Stable terra-form-input
terra-form-radio NPM version Stable terra-form-radio
terra-form-select NPM version Stable terra-form-select
terra-form-textarea NPM version Stable terra-form-textarea
terra-grid NPM version Stable terra-grid
terra-heading NPM version Stable terra-heading
terra-hyperlink NPM version Stable terra-hyperlink
terra-i18n NPM version Stable terra-i18n
terra-icon NPM version Stable terra-icon
terra-image NPM version Stable terra-image
terra-list NPM version Stable terra-list
terra-mixins NPM version Stable terra-mixins
terra-overlay NPM version Stable terra-overlay
terra-paginator NPM version Stable terra-paginator
terra-profile-image NPM version Stable terra-profile-image
terra-progress-bar NPM version Stable terra-progress-bar
terra-responsive-element NPM version Stable terra-responsive-element
terra-scroll NPM version Stable terra-scroll
terra-search-field NPM version Stable terra-search-field
terra-section-header NPM version Stable terra-section-header
terra-show-hide NPM version Stable terra-show-hide
terra-signature NPM version Stable terra-signature
terra-spacer NPM version Stable terra-spacer
terra-status NPM version Stable terra-status
terra-status-view NPM version Stable terra-status-view
terra-table NPM version Stable terra-table
terra-tag NPM version Stable terra-tag
terra-text NPM version Stable terra-text
terra-toggle NPM version Stable terra-toggle
terra-toggle-button NPM version Stable terra-toggle-button
terra-toggle-section-header NPM version Stable terra-toggle-section-header
terra-visually-hidden-text NPM version Stable terra-visually-hidden-text

Deprecated

Terra Package Version Status Dependencies
terra-form NPM version Deprecated terra-form
terra-i18n-plugin NPM version Deprecated terra-i18n-plugin
terra-legacy-theme NPM version Deprecated terra-legacy-theme
terra-modal NPM version Deprecated terra-application

Supported Browsers

Browser Version
Chrome & Chrome for Android Current
Edge Current
Firefox Current
Internet Explorer 10 & 11
Safari & Mobile Safari Current

Internationalization (I18n)

Please review Terra's Internationalization documentation for more information. Included are directions on consumption and how internationalization is setup.

Packages Requiring I18n

Contributing

Please read through our contributing guidelines. Included are directions for issue reporting and pull requests.

Local Development

  1. Install Node Version Manager (NVM) and Node. The root directory contains a .nvmrc file that specifies terra-core's node version. Once NVM is installed and you are within the root directory, your version of node will change to this version.
  2. Install docker https://www.docker.com/ to run browser tests.
  3. Install dependencies and run tests.
npm install
npm run test

Local Development using Docker (Dev Containers)

  1. Install Rancher or Docker.
    • Rancher is free and open-source and is highly recommended whereas Docker may require a license for use.
  2. Install Microsoft VS Code.
  3. Install the Dev Container extension.
    • Navigate to View -> Extension -> Search for and install Dev Containers (or "ms-vscode-remote.remote-containers")
    • More information on Dev Containers
  4. Build the dev container:
    • (Option 1) - Opening local workspace in dev container
      • Clone the repository (or fork) locally and open the project in Visual Studio Code
      • Navigate to View -> Command Palette and run Dev Containers: Open Workspace in Container
    • (Option 2) - Recommended for Windows for hot-reloading to work during development and improved performance: Creating the dev container using dev volumes (for more information and guidance, see the Official Guide)
      • If you have git setup and have global config file ~/.gitconfig locally, these settings should automatically be transferred to the dev container
      • Navigate to View -> Command Palette and run Dev Containers: Clone Repository in Container Volume
      • Paste the GitHub URL of this repository (or fork)
      • VS Code will now reload the workspace and create/start the dev container and volume
      • Please note: changes made using this option will only update files in the Docker volume. It is recommended to commit changes often in case the volume is deleted or dev container gets removed.
  5. You're now running in a dev container. Use the terminal of the dev container in Visual Studio Code to issue any npm or bash commands.
  6. Before running any WDIO tests, make sure to perform the following steps:
    • Open a new terminal (outside the dev container) and navigate to ".devcontainer/" path in your repository.
    • Execute the command "docker compose -f docker-compose-wdio.yml up". Selenium hub should spin up. Leave this running in the background. If you see errors saying "container name already exists", run "docker container prune" command followed by pressing "y" to clear up any unused containers and try running the previous command again.
    • You can now run npm run test:docker or npm run wdio:docker commands to run WDIO tests from inside the Dev Container.
    • NOTE: Optionally, if you want to run other WDIO commands in the dev container, you can also edit the root package.json file WDIO scripts to include --disableSeleniumService=true flag. This will disable the selenium service from spinning up again. For example:
      "scripts": {
       "wdio-lowlight": "terra wdio --disableSeleniumService=true --themes clinical-lowlight-theme"
       }
  7. To terminate a dev container:
    • Use command line or Rancher/Docker Desktop OR
    • Using Visual Studio Code
      • Select the Remote Explorer icon in the Activity Bar or View -> Command Palette and run Remote Explorer: Focus on Containers View
      • Locate the terra-core_devcontainer or currently running dev container under "Dev Containers"
      • Right click and select Stop Container and close the workspace
        • You can also select Rebuild Container to restart the dev container
  8. To reopen a dev container:
    • Existing local workspace (for Option 1)
      • Open the project in Visual Studio Code
      • Ensure the workspace contains the .devcontainer folder
      • Navigate to View -> Command Palette and run Dev Containers: Open Workspace in Container
    • Isolated dev container volume (for Option 2)
      • Open Visual Studio Code
      • Use the Remote Explorer icon in the Activity Bar or View -> Command Palette and run Remote Explorer: Focus on Containers View to view containers
      • Locate the terra-core_devcontainer under "Dev Containers"
      • Hover over the dev container and click the Folder icon labelled Open Folder in Container or by right clicking and selecting Open Folder in Container

LICENSE

Copyright 2017 - 2019 Cerner Innovation, Inc.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

More Repositories

1

clara-rules

Forward-chaining rules in Clojure(Script)
Clojure
1,175
star
2

smart-on-fhir-tutorial

SMART on FHIR developer tutorial
JavaScript
160
star
3

kaiju

A drag and drop web editor for React components.
Ruby
154
star
4

fhir.cerner.com

API documentation for Cerner's implementation of the HL7® FHIR® standard
Ruby
136
star
5

bunsen

Explore, transform, and analyze FHIR data with Apache Spark
Java
114
star
6

clara-examples

Example Clara Rules
Clojure
88
star
7

terra-clinical

Terra Clinical is a repository for terra react components used only in a clinical setting.
JavaScript
71
star
8

terra-framework

Terra framework houses composed and higher order react components to help developers quickly build out new applications.
JavaScript
66
star
9

ascvd-risk-calculator

SMART ASCVD Risk Calculator
JavaScript
57
star
10

canadarm

A JavaScript logger that works for you!
JavaScript
50
star
11

code-learning-lab

Cerner Code Learning Lab. Some exercises can be found on the wiki
JavaScript
49
star
12

cds-services-tutorial

A tutorial to help you get started running your own CDS Services.
JavaScript
39
star
13

common-kafka

Common utilities for Apache Kafka
Java
35
star
14

terra-ui

The combined doc site for terra-core, terra-framework, and terra-clinical
JavaScript
35
star
15

terra-toolkit

Terra Toolkit is a monorepo that contains utility modules for use when developing using Terra components
JavaScript
32
star
16

cerner_splunk

Cerner's Splunk Cookbook
Ruby
30
star
17

cerner_kafka

A Kafka Cookbook for Chef
Ruby
30
star
18

carbon-graphs

A lightweight, vanilla JavaScript visualization API built using D3 that integrates well with any consumer’s tech stack. https://engineering.cerner.com/carbon-graphs/
JavaScript
24
star
19

beadledom

A simple, composable framework for building RESTful services
Java
24
star
20

bunsen-tutorial

Tutorial for exploring FHIR data with Apache Spark in an interactive notebook
Jupyter Notebook
22
star
21

cerner-smart-embeddable-lib

npm project for developers to use in their SMART web app to be embeddable in Cerner’s MPage Workflow
JavaScript
21
star
22

ignite-endpoints

API endpoints for Millennium's HL7 FHIR implementation for patient access
20
star
23

f-twelve

Render client console output to the DOM for troubleshooting environments that do not have a dev console
JavaScript
18
star
24

xfc

A javascript library for Cross Frame Communication
JavaScript
17
star
25

splunk-pickaxe

A tool for syncing a repo of splunk objects with a splunk instance
Ruby
16
star
26

cucumber-forge-desktop

Cucumber Feature Reports Made Easy
JavaScript
16
star
27

ccl-testing

A collection of maven plugins and their dependencies to perform CCL Unit tests and static analyses and to generate reports from the results.
Java
16
star
28

cerner.github.io

Cerner Engineering blog
HTML
15
star
29

scrimp

A Sinatra ruby gem for dynamically creating web interfaces for thrift IDLs
Ruby
14
star
30

terra-dev-site

A development environment for React UI components for documentation and testing
JavaScript
13
star
31

jwala

A web application that provides management for a group of Tomcat servers
Java
12
star
32

cclunit-framework

A collection of CCL source code for executing CCL Unit tests and generating code coverage data.
PHP
11
star
33

knife-tar

Chef gem for uploading configuration in tar files
Ruby
10
star
34

jsonrpc-dispatch

JSONRPC is a module for managing JSONRPC requests and responses in JavaScript.
JavaScript
10
star
35

terra-consumer

Consumer reusable components
JavaScript
10
star
36

smart-on-fhir-scheduling-tutorial

SMART on FHIR developer tutorial for Scheduling workflows
JavaScript
9
star
37

one-cerner-style-icons

8
star
38

generator-terra-module

Yeoman based generator to help scaffold out new terra-ui components
JavaScript
8
star
39

terra-application

A framework to support application development with Terra components
JavaScript
8
star
40

terra-graphs

A lightweight, JavaScript visualization API built using D3. Includes a vanilla javascript and react implementation.
JavaScript
7
star
41

cerner_tomcat

A Chef cookbook to assist with installing, configuring, and deploying applications to Apache Tomcat
Ruby
7
star
42

gc_stats

Ruby gem that provides garbage collection statistics for your Rails application
Ruby
6
star
43

cucumber-forge-report-generator

Cucumber Feature Reports Made Easy
JavaScript
6
star
44

fhir-client-cerner-additions

JavaScript
5
star
45

stylelint-config-terra

Terra's stylelint config
JavaScript
5
star
46

ops_tcpdump_handler

Report handler for local testing that prints out the tcp traffic from the run
Ruby
5
star
47

inspec_delta

Ruby
5
star
48

terra-kaiju-plugin

The Kaiju plugin for Terra UI.
JavaScript
4
star
49

icontrol_rest

IcontrolRest provides a simple client to interact with Icontrol.
Ruby
4
star
50

clara-site

Clara Web Site source
HTML
4
star
51

eslint-config-terra

Terra eslint config
JavaScript
4
star
52

terra-aggregate-translations

A pre-build tool to assist with creating the translation and loader files needed for internationalized Terra components to render correctly.
JavaScript
3
star
53

browserslist-config-terra

Shared Browserlist config
JavaScript
3
star
54

terra-toolkit-boneyard

Terra Toolkit is a utility module used to facilitate independent development of Terra projects. This toolkit is designed to help support Webdriver.io testing for Terra UI components
JavaScript
3
star
55

cerner-oauth1a

Cerner OAuth 1.0a Library for Consumers and Service Providers
Ruby
3
star
56

kaiju-plugin-utils

Kaiju plugin utils is a helpful library of common optional utilities used when creating plugins for Kaiju.
JavaScript
2
star
57

version_databag

A Chef cookbook which centrally manages version information in a data bag
Ruby
1
star
58

terra-enzyme-intl

Helpers for running tests with react intl and enzyme
JavaScript
1
star
59

cerner_splunk_ingredient

Ruby
1
star