UI toolkit monorepo containing a React component library, UI utilities, a generative AI LLM parser, an AWS AppSync fetch utility, and more
| NPM Package Name | Version | Description |
|---|---|---|
| @acusti/appsync-fetch | A promise-based node.js function for making AWS AppSync API graphql requests | |
| @acusti/aws-signature-v4 | An isomorphic module implementing the AWS Signature V4 (SigV4) signing process for requests | |
| @acusti/css-values | Utilities for parsing different types of CSS values | |
| @acusti/css-value-input | React component that renders a CSS value input | |
| @acusti/date-picker | React component that renders a date picker with range support | |
| @acusti/dropdown | React component that renders a dropdown UI element | |
| @acusti/input-text | React component that renders an uncontrolled text input | |
| @acusti/matchmaking | Utilities for approximate string matching (i.e. fuzzy search) | |
| @acusti/parsing | Loosely parse a string as JSON with numerous affordances for syntax errors | |
| @acusti/post | A promise-based node.js function for making graphql requests | |
| @acusti/styling | React component that renders a CSS string to the <head> |
|
| @acusti/textual | Utilities for transforming and formatting text | |
| @acusti/uniquify | A function that ensures a string is unique amongst items | |
| @acusti/use-bounding-client-rect | React hook for getting an element’s boundingClientRect |
|
| @acusti/use-is-out-of-bounds | React hook to check if an element overlaps its bounds | |
| @acusti/use-keyboard-events | React hook for adding key event listeners to your UI |
The React components are documented and illustrated in the storybook
instance, which is located at packages/docs/ in the
repository.
The monorepo uses vitest to run its tests. To run tests across all
packages, use bun run test.
We use changesets to maintain a changelog and manage versioning and publishing.
To create a new changeset, run:
bun changesetFor the contents of the changesets, the format to document updated dependencies (for the packages that depend on the packages receiving direct updates) is:
- Updated dependencies
- @acusti/[email protected]
- @acusti/[email protected]
When you are ready to do a release, build all packages by running
bun run build. This uses the repo’s workspace runner to build packages in
dependency order. You can then update all package versions automatically by
running:
bun changeset versionNext, run bun install to refresh bun.lock and commit the version
updates.
Lastly, to publish the new versions to npm (building all the packages first if anything has changed), run:
bun run build
bun changeset publish
git push --follow-tagsThe run script for developing is bun run dev, which kicks off the default
storybook command from packages/docs/package.json and runs storybook in
watch mode. Changes to the source files (e.g.
packages/dropdown/src/Dropdown.tsx) should trigger a rebuild, but if not,
run bun run build to ensure it’s picked up.