Dependencies

Library

Dependencies

The packages a Dowel installation brings into your dependency graph, the runtimes your application owns, and the choices Dowel leaves open.

Runtime dependencies

These packages install with @karnstack/dowel. Dowel imports them from its published JavaScript, so they are direct runtime dependencies rather than build tooling.

Their transitive dependencies are resolved by the package manager and can change independently. Use pnpm why or your package manager's equivalent when you need the complete installed graph for a specific release.

PackageVersion rangeWhy Dowel chose it
@base-ui/react^1.7.0Its unstyled, composable primitives give Dowel proven focus, keyboard, overlay, and selection behavior without imposing a competing visual system.
@heroicons/react2.2.0Its 16px solid Micro set gives Dowel a consistent vocabulary for built-in functional controls and semantic defaults without maintaining bespoke SVG paths.
@stylexjs/stylex0.19.0It provides typed theme variables and deterministic style composition while compiling CSS ahead of time, so consumers need no StyleX build configuration.
@tanstack/react-table^9.1.2Its headless, application-controlled state model handles advanced table behavior without coupling Dowel to a table layout or data-fetching opinion.
@tanstack/react-form^1.33.5Its typed, headless state and validation model powers Dowel's pre-bound form hook while leaving schema choice and submission behavior application-owned.
@internationalized/date^3.12.3Its timezone-safe date types and locale-aware calendar arithmetic keep date-only values stable across regions, time zones, and calendar systems.
react-aria-components^1.20.0It supplies the Calendar and DatePicker accessibility model, including roving focus, keyboard navigation, localized date segments, and validation behavior.

Peer prerequisites

React stays application-owned so Dowel shares the same renderer and context as the rest of your product. Your package manager may install missing peers, but the application remains responsible for choosing compatible versions.

PackageVersion rangeWhy Dowel chose it
react^19.0.0Dowel targets React 19 so it can use the current ref, context, and rendering model while sharing one React instance with the host application.
react-dom^19.0.0React DOM supplies the browser renderer and portal behavior that Dowel overlays require, while remaining owned by the host application.

What is not included

Dowel does not install a router, schema validator, or data-fetching client, and it does not prescribe an application-wide icon system. Consumer-facing icon slots accept ordinary React content, so applications keep control of their visual language.

Dowel uses Heroicons Micro at its native 16px size for icons the library owns, including search, selection, sorting, and Callout's tone-aware defaults. Callout accepts an icon override and treats icon={null} as an explicit request to hide its default. The documentation chrome uses the same set for consistency.

Challenge a choice

Dependency choices are architecture decisions, not permanent facts. If a package creates a constraint, adds avoidable weight, or has a better alternative, open a GitHub issue with the tradeoff you see and the replacement you would consider.