linkProp:"href" | "to"for Next.js vs React Router. When"to", nativehrefis still set so right-click / open in new tab / middle-click work.- Layout: Default root margin is
mb: 0(set margin viasx). - Home icon: Only when
href === homeHref(default"/"), not by label match. - React Router root: At
/, returns a current crumb with no self-linkhref. - JSON-LD: No
example.comdefault. Passorigin, or letBreadcrumbJsonLdusewindow.location.originin the browser. OptionaljsonLdOriginon<Breadcrumbs>. - Build:
"use client"is not stamped onutils/jsonldorutils/buildPathBreadcrumbs. - API:
maxItems/ collapse,size,truncate, RSC-safebuildPathBreadcrumbs. - Publish:
.github/workflows/publish.ymlfor npm Trusted Publishing (OIDC).
- Root README rewritten for 0.2.1: version warning, Emotion peers, subpath table, full prop list (
dense,ariaLabel, sx slots,linkProp,jsonLdOrigin,size,truncate), troubleshooting for broken 0.2.0 and MUI peer conflicts. - Guides updated for RSC
buildPathBreadcrumbs, React RouterlinkProp="to"+ nativehref, JSON-LD origin rules, and first-class collapse props. - Classification tests cover false positives (over-match) and false negatives (under-match) for home icon, last-crumb links, JSON-LD origins, and routing props.
- Removed outdated claims (lazy-loading React Router, installing RR as a Next.js workaround,
>=7MUI peers).
-
Dev toolchain upgrades: React 19, Vitest 5, tsup 9, TypeScript 6, Cucumber 13, Playwright 1.64, Testing Library jest-dom 7, jsdom 28, react-router-dom 7.18, MUI 7.3.11 (still peer
^7). -
Not upgraded on purpose: MUI 8/9 (peers stay
^7), TypeScript 7 (tsup DTS needs the classic compiler API), jsdom 30 (needs Node^22.22.2/^24.15, beyond current engines). -
Fixed:
main/module/types/exportsnow point at./dist/*(0.2.0 incorrectly pointed at./public/*, which is not shipped). -
Fixed: MUI peers tightened from
>=7to^7.0.0so installs cannot resolve MUI 8/9 against this package. -
Fixed: Emotion peers tightened to
^11.0.0. -
Confirmed:
react-router-domremains an optional peer (peerDependenciesMeta.optional). -
Fixed:
useReactRouterBreadcrumbsuses a normalreact-router-domimport (the old dynamicrequirefailed under ESM / Vitest). -
Breaking (intentional): React Router hooks are not re-exported from the main
@ameshkin/nextcrumbsentry. Import from@ameshkin/nextcrumbs/hooks/useReactRouterBreadcrumbs(also exportsuseRRBreadcrumbs). This keeps the optional peer truly optional for Next.js. -
Removed: stale
workspaces: ["packages/*"](no workspace packages in this repo). -
Removed: unpublished
@ameshkin/jira-matefromdevDependencies(404 on npm registry). -
Build:
tsupoutDirisdist;react-router-domand Emotion are external. -
CI: single
.github/workflows/ci.yml(main + dev). Node 20.19 / 22 matrix,npm ci, typecheck, tests, build, dist export guard, consumer install smoke. Removed duplicateci-main.yml/ci-dev.yml.
- New: multiple ESM entrypoints are now built:
src/index.tssrc/Breadcrumbs.tsxsrc/hooks/usePathBreadcrumbs.tssrc/hooks/useReactRouterBreadcrumbs.tssrc/utils/jsonld.ts
- New: subpath exports in
package.json:@ameshkin/nextcrumbs/breadcrumbs@ameshkin/nextcrumbs/hooks/usePathBreadcrumbs@ameshkin/nextcrumbs/hooks/useReactRouterBreadcrumbs@ameshkin/nextcrumbs/utils/jsonld
- Unchanged (backward compatible):
- Top-level exports from
@ameshkin/nextcrumbs:Breadcrumbs,NextCrumbusePathBreadcrumbstoJsonLd,BreadcrumbJsonLd,breadcrumbsToJsonLd- related types (Breadcrumbs / path / JSON-LD)
- React Router exports (subpath only):
useReactRouterBreadcrumbs,useRRBreadcrumbsReactRouterBreadcrumbsOptions
- Top-level exports from
- Removed: runtime dependency on
@ameshkin/orchestratorfrom@ameshkin/nextcrumbs.- This avoids install issues in external projects and keeps the public package focused on breadcrumbs only.