Skip to content

Lyric UI Setup - #217

Open
JamesTLopez wants to merge 16 commits into
mainfrom
feat/lyric-ui-setup
Open

Lyric UI Setup#217
JamesTLopez wants to merge 16 commits into
mainfrom
feat/lyric-ui-setup

Conversation

@JamesTLopez

@JamesTLopez JamesTLopez commented Aug 11, 2026

Copy link
Copy Markdown
Contributor

Summary

Lyric UI setup using tailwind,shadcn, react+vite and storybook.

Issues

Description of Changes

  • Created Lyric-UI
  • Added tailwind
  • Added storybook
  • Create Example button component

Packages

You will need to run pnpm i to run the project.

Readiness Checklist

  • Self Review
    • I have performed a self review of code
    • I have run the application locally and manually tested the feature
    • I have checked all updates to correct typos and misspellings
  • Formatting
    • Code follows the project style guide
    • Autmated code formatters (ie. Prettier) have been run
  • Local Testing
    • Successfully built all packages locally
    • Successfully ran all test suites, all unit and integration tests pass
  • Updated Tests -- No tests in this PR --
    • Unit and integration tests have been added that describe the bug that was fixed or the features that were added
  • Documentation
    • All new environment variables added to .env.schema file and documented in the README
    • All changes to server HTTP endpoints have open-api documentation
    • All new functions exported from their module have TSDoc comment documentation

@justincorrigible justincorrigible left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

great progress thus far, and I'm happy to see a project actively adopting the new pattern and libraries! 👏 left a couple pieces of feedback here and there

one in general: the checklist has "Updated Tests" checked ("Unit and integration tests have been added that describe... the features that were added"), but I don't see a test file for the new Button component or cn utility, only button.stories.tsx (Storybook, not an automated assertion).

Is a stories file the intended test coverage for UI primitives in this repo's convention, or should that box stay unchecked until actual tests land?

rollupOptions: {
external: ['react', 'react-dom', 'react/jsx-runtime'],
output: {
banner: "import './lyric-ui.css';",

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this auto-injects a CSS import/require at the top of both bundles (i.e. MJS and CJS).
lyric-ui.cjs starts with require("./lyric-ui.css"), which will throw in plain Node because require() can't parse .css files... any consumer without a bundler-level CSS loader breaks immediately on require('@overture-stack/lyric-ui').

beyond that, this also creates ambiguity with the ./dist/lyric-ui.css path exported separately in package.JSON. if consumers were to either rely on the auto-injected import or import the CSS manually, or is even "doing both" meant to be harmless? tl;dr: worth documenting the intended consumption model, or dropping the banner if the manual export path is the real one.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ahhhh ok i see the issue.

My question now is what solution is ideal going forward? Do we want to auto inject the css or do we want to direct consumers to manually import the css themselves? Perhaps we could do both, only auto-inject for ESM but not CJS?

@@ -0,0 +1,4 @@
import '@/style.css';

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this import resolves fine internally via this package's own @/* path alias (in tsconfig), but tsc's declaration emit preserves it as is: dist/index.d.ts ships with import '@/style.css'; still in it... that alias means nothing to an external consumer, and doesn't even match the real output filename (lyric-ui.css, not style.css)... needs transformers.

while most consumers won't notice because skipLibCheck: true is a common default, this is a real defect in the published artifact. the way we handle this elsewhere is like so

Comment thread packages/lyric-ui/README.md
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants