feat(storybook): add a storybook workshop app - #31
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds a Storybook 10 workshop as a new private workspace,
apps/storybook(@rxova/storybook), covering every input in the suite:@storybook/react-viteon Vite 8, wired the same way as the playground:vite.config.tsaliases each@rxova/*package topackages/*/src/index.ts, so the workshop runs and builds with no prior library build and hot-reloads library source. One regex rule covers any input added later.Playgroundper component (controls wired two-way viauseArgs, actions viafn()spies), plus stories for compound composition, render-prop cells, masking, custom icons, fractional read-only display,Intllocale showcase, the headlessuseCurrencyInputhook, and native-form round-trips.react-docgen-typescriptreads the annotated*Propsinterfaces, so every prop's TSDoc, type and default lands in the docs tables; DOM props inherited byCurrencyInputare filtered out.preview.cssusing the packages' documented CSS tokens) — the components stay headless; no package gains a stylesheet or dependency.storybook/storybook:buildscripts, generic turbobuild/devtasks reused (storybook build -o distfits the existingdist/**output convention), eslint react-hooks coverage extended toapps/storybook, tsconfigpathsmirroring the alias rule.Testing
pnpm verifypasses locally — everything except the Vitest browser projects and e2e, which need Playwright browser binaries this container doesn't have;typecheck,buildandsizeare green across all 10 workspaces, andlint/format:check/check:docspass. No library behaviour changed, so no new tests.Docs
apps/storybook/README.md(wiring + how to add stories for a new input) and anIntroduction.mdxdocs pageChecklist
skip-changeset— neither is needed: the diff touches no published package, which the changeset gate already treats as exemptpreview.cssis consumer-side styling inside the workshop, using the packages' existing tokensBreaking change