@cleverflow/ui v0.4.0
CORE-UI
This is a custom React component library created for easy use and customization of commonly used UI components based on the new DSM. This library is designed to help developers reduce development time and increase consistency in their applications by providing reusable, styled components.
Being a library there will be no Bootstrap or renders function, as we are just exposing the components for the consumer apps.
This is developed buy using a boilerplate of the TSDX.
TSDX:A development environment and build tool for creating TypeScript libraries with ease.
Node Version
Node version must be 16.14
Install
To Install dependencies (if not already installed).
$ npm installDevelopment
For the Development you have to start the TSDX server
$ npm startOnce it's done then run either Storybook
$ npm run storybookTesting
We are using Jest and Storybook's storyshots addon to provide a large amount of snapshot coverage. Every storybook story is automatically snapshotted to provide an ongoing diff as we make changes.
Additional those tests that are not covered by snapshots should be authored in *.test.tsx files using the Testing-Library
Testing Library:A set of libraries for testing user interfaces in JavaScript applications. It provides utilities to simulate user interactions with a UI and assert that the resulting output matches the expected behavior.
Check the linter with
$ npm run lintand run unit tests with
$ npm run testStorybook development
Make sure you have started the tsdx server. npm run start/ npm start
Run inside another terminal:
npm storybookThis loads the stories from ./stories.
Storybook Build & Deployment
Requirements: Node version should be 18.xx
- Go to root folder
cd core-ui - Install the packages
npm install - build the storybook
npm run build-storybook - It will create a storybook-static folder with
index.htmlfile.
Deployment
The CI will build the storybook images when a tag matches
dsm-x.y.z.After a successful build this image will be deployed to the cloud.
Configuration
Code quality is set up for you with prettier, husky, and lint-staged. Adjust the respective fields in package.json accordingly.
Bundle analysis
Calculates the real cost of your library using size-limit with npm run size and visulize it with npm run analyze.
Setup Files
This is the folder structure we set up for you:
/src
index.tsx
/test
XXXXX.test.tsx
/stories
XXXXX.stories.tsx # EDIT THIS
/.storybook
main.js
preview.js
.gitignore
package.json
README.md # EDIT THIS
tsconfig.jsonRollup
TSDX uses Rollup as a bundler and generates multiple rollup configs for various module formats and build settings. See Optimizations for details.
TypeScript
tsconfig.json is set up to interpret dom and esnext types, as well as react for jsx. Adjust according to your needs.
GitHub Actions
Following actions are added:
mainwhich installs deps w/ cache, lints, tests, and builds on all pushes against a Node and OS matrix
Module Formats
CJS, ESModules, and UMD module formats are supported.
The appropriate paths are configured in package.json and dist/index.js accordingly. Please report if any issues are found.