Repository navigation
hig-react: caret Radix peers, overlay-free recipe entries, Fumadocs packed smoke (#63) - #74
Merged
Merged
Conversation
joeblau
force-pushed
the
claude/hig-63-radix-recipes
branch
2 times, most recently
from
October 15, 2026 16:07
7ad3663 to
ec631fd
Compare
…tries (#63) - Optional Radix peers become caret ranges (^1.1.15 dialog/popover, ^2.1.16 dropdown-menu, ^1.2.8 tooltip); workspace fixtures keep testing the lower bounds. - Each web recipe gets its own entry (recipes/install-command, code-window, market-row, balance-card, marketing-hero, activity-list, trade-entry). The aggregate recipes entry re-exports them. TradeEntry imports an internal dialog module so it only needs @radix-ui/react-dialog. - smoke:packed-boundaries renders and esbuild-bundles every overlay-free recipe with no Radix installed, and asserts trade-entry still fails without its dialog peer. - New smoke:packed-fumadocs installs the packed tarball beside fumadocs-ui 16.17.3 with strict peers, reruns npm ci, asserts no duplicated @radix-ui package and SSR-renders the overlays on the current Radix releases. Added to CI. - API manifest generation follows public entries and re-exports. Co-Authored-By: Claude Opus 5.5 <[email protected]>
…fonts split (#63) Co-Authored-By: Claude Opus 5.5 <[email protected]>
joeblau
force-pushed
the
claude/hig-63-radix-recipes
branch
from
October 15, 2026 16:31
ec631fd to
2c6212c
Compare
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.
Refs #63
What
@radix-ui/react-dialog ^1.1.15,react-popover ^1.1.15,react-dropdown-menu ^2.1.16,react-tooltip ^1.2.8(were exact pins). Still optional. Workspace fixtures keep the lower bounds; the new Fumadocs smoke tests the current releases (dialog/popover 1.3.1, dropdown-menu 2.2.1, tooltip 1.4.1).@bloxwap/hig-react/recipes/{install-command,code-window,market-row,balance-card,marketing-hero,activity-list,trade-entry}.@bloxwap/hig-react/recipesre-exports all of them, so existing imports still work.Dialog/Sheet/AlertDialogmoved to an internaldialogmodule thatoverlayre-exports, sorecipes/trade-entryonly needs@radix-ui/react-dialog.smoke:packed-boundaries: with no Radix installed, it SSR-renders and esbuild-bundles every overlay-free recipe entry. It fails if any bundle input matches radix/overlay/dialog. It also checks the smoke itself: bundlingrecipes/trade-entrywithout its peer must fail on@radix-ui/react-dialog.smoke:packed-fumadocs(added to CI): a temp consumer with the packed hig-react/tokens/contracts tarballs,fumadocs-ui/fumadocs-core16.17.3, Next 16.4.0 and React 19.2. It runs withlegacy_peer_deps=falseandstrict_peer_deps=true:npm install, thenrm -rf node_modules && npm ci. It walksnode_modulesand asserts that every@radix-ui/*package (37) appears exactly once, the four HIG peers are hoisted single copies, and hig-react has no nestednode_modules. It then SSR-renders Menu/Popover/Tooltip/Dialog/TradeEntry on the resolved current Radix versions.generate-docsAPI manifest follows public package entries andexport {…} fromre-exports, so internal files (dialog,selection-types) are attributed to their public entry and recipes show their per-recipe entry.checkPlatformImportsnow scansdist/recursively, so it coversdist/recipes/*.Proof (local, Linux, Node 22)
npm ci && npm run check→ exit 0 (vitest 16 files / 88 tests, jest native 42 tests, lint+drift, typecheck)npm run examples:check && npm run quality && npm run smoke:ssr→ exit 0npm run smoke:packed && npm run smoke:packed-next→Packed Next 16.4.0: production SSR/client/font build from 3 independent tarballs passednpm run smoke:packed-boundaries→Clean packed boundaries: … Button SSR and overlay-free recipe SSR/bundles without Radix, native, chart or feedback enginesnpm run smoke:packed-fumadocs→Packed hig-react beside fumadocs-ui 16.17.3: strict-peer npm ci, 37 Radix packages with no duplicates; overlay SSR on [email protected], [email protected], [email protected], [email protected]npm ERR! code ERESOLVE, so the smoke catches the bug reported in chart#53, sfx#50 and haptic#26.Rebased on main after #75 (native-fonts split, #64)
d7ff478. The only conflict was the generatedapps/docs/src/content.json, which I regenerated.evidence/packed-smoke.jsonandevidence/quality-report.jsonare regenerated too: they now list@bloxwap/hig-native-fonts, and tokens has 5 exports.npm run generate:fonts. Each command exited 0:npm ci && npm run check: vitest 16 files, 97 tests; jest native 47 testsexamples:check,quality,smoke:ssr,smoke:packedsmoke:packed-native: font hashes match and Metro registers Sans/Mono from@bloxwap/hig-native-fontssmoke:packed-boundaries,smoke:packed-fumadocs,smoke:packed-examples,smoke:packed-nextrelease:dry-run -- --channel candidate: the tokens tarball is 8,109 B with 0 font files2c6212c: build, candidate (including the boundaries and Fumadocs smokes) and GitGuardian all pass.Not done here / remaining for #63
Migration / rollback
Additive. Existing
@bloxwap/hig-react/recipesand/overlayimports are unchanged. To roll back, revert this commit; the peers return to exact pins.🤖 Generated with Claude Code