Skip to content

Latest commit

 

History

History
112 lines (95 loc) · 10.1 KB

README.md

File metadata and controls

112 lines (95 loc) · 10.1 KB

uikit wordmark

UIKit

Build and Test results Top language Commits per month

UI toolkit monorepo containing a React component library, UI utilities, a generative AI LLM parser, an AWS AppSync fetch utility, and more

Packages

NPM Package Name Version Description
@acusti/appsync-fetch latest version A promise-based node.js function for making AWS AppSync API graphql requests
@acusti/aws-signature-v4 latest version An isomorphic module implementing the AWS Signature V4 (SigV4) signing process for requests
@acusti/css-values latest version Utilities for parsing different types of CSS values
@acusti/css-value-input latest version React component that renders a CSS value input
@acusti/date-picker latest version React component that renders a date picker with range support
@acusti/dropdown latest version React component that renders a dropdown UI element
@acusti/input-text latest version React component that renders an uncontrolled text input
@acusti/matchmaking latest version Utilities for approximate string matching (i.e. fuzzy search)
@acusti/parsing latest version Loosely parse a string as JSON with numerous affordances for syntax errors
@acusti/post latest version A promise-based node.js function for making graphql requests
@acusti/styling latest version React component that renders a CSS string to the <head>
@acusti/textual latest version Utilities for transforming and formatting text
@acusti/uniquify latest version A function that ensures a string is unique amongst items
@acusti/use-bounding-client-rect latest version React hook for getting an element’s boundingClientRect
@acusti/use-is-out-of-bounds latest version React hook to check if an element overlaps its bounds
@acusti/use-keyboard-events latest version React hook for adding key event listeners to your UI
@acusti/webcrypto latest version Isomorphic method for accessing the webcrypto API

The React components are documented and illustrated in the storybook instance, which is located at packages/docs/ in the repository.

Tests

The monorepo uses vitest to run its tests. To run tests across all packages, use yarn test. To run them in watch mode, use yarn test:watch.

Building and Publishing

To build all packages, run yarn build. This will trigger tsc --build and yarn flowgen for all packages.

To build the storybook docs, run yarn build:stories, which will run yarn build and then the default storybook build command.

To publish all packages, manually update each packages’s version field in their package.json. If any of the packages depends on any of the other packages being updated, be sure to update the dependency version as well. Then run yarn publish. Publishing will trigger a build before running npm publish to ensure that the latest changes are published. To publish only a single package, use yarn workspace <package-name> npm publish --access public (e.g. yarn workspace @acusti/css-value-input npm publish --access public), but note that in that case, you are responsible for running yarn build yourself before triggering the publish.

After publishing the packages, run yarn to update the yarn.lock file and then commit the version updates with a message in the form of: :arrow_up: Bump package versions to _._._.

Developing

The two main run scripts for developing are yarn dev:watch, which kicks off the TypeScript compiler in --watch mode, and yarn dev:stories, which kicks off the default storybook command from packages/docs/. To run both of those in a single terminal window, use yarn dev.