API Docs | Change Log | License |
This package contains React components, models, actions, and utility functions for LabKey applications and pages.
v1.0.0 is the first stable release of @labkey/components
. This version includes components that are part of the public
API along with components used internally within LabKey.
The source code in this package is split into two main directories under the /src
directory: internal
and public
.
The React components, models, etc. in the internal
directory are either purely for implementation purposes or not yet
stable enough to be included as part of the public API. As components become more stable they will be moved to the
public
directory and added to the public API documentation with future @labkey/component
package versions.
Please see the Public API Docs for further details.
Clone this repository to a local directory.
git clone https://github.com/LabKey/labkey-ui-components.git # or via ssh
Navigate into the packages/components directory and run:
npm install --legacy-peer-deps
This will install all dependencies for the component packages. Once this is complete you can utilize npm to build and test the package.
npm run build
npm test
For doing development of LabKey UI Components, you should be familiar with the following technologies:
- React - used for building the UI components
- Bootstrap - for consistent, responsive styling
- React-Bootstrap - bootstrap styling for react components
- Typescript - for typing of javascript objects
- Immer - for immutability of normal JavaScript objects, arrays, Sets, and Maps.
- Jest - for unit testing of components
- Enzyme - testing utility library
Note that we are currently not using the latest versions of Bootstrap and React-Bootstrap, amongst others, because there have been some significant changes between our current version and the latest version of these libraries, so when looking for docs, be sure to look at the ones corresponding to the version we are using.
See the related document for further details on internal processes for doing local development on this package.