Docs
GitHub

Packages & exports

Hand-maintained reference. TSDoc→MDX auto-generation is deferred.

SINA is five small packages with hard boundaries (enforced by lint rules in the repo). Each layer may only know about the ones below it:

PackageWhat it isRunsNever contains
@sina-design-system/themeDesign tokens (--sina-*) + the CSS resetCSS onlyReact, UI
@sina-design-system/coreHeadless, accessible primitives on RadixClient (+ SSR)Zod, domain vocabulary
@sina-design-system/governanceThe shared interception seamServer (for enforcement)React, UI, domain vocabulary
@sina-design-system/fintechThe fintech Constitution, pure Zod rulesServer (for enforcement)React, UI of any kind
@sina-design-system/fintech-reactGoverned components composing core + fintechClient (+ SSR)Zod (it composes schemas, never authors them)

governance and fintech are plain TypeScript with no runtime restriction, so they can execute in a browser; run them on the server when the result is meant to be enforced (How it works).

theme

Ships ./reset.css (layered, so your styles always win) and the --sina-* custom properties at ./css, also exported as ./theme.css so TypeScript accepts the side-effect import. The token grammar, tiers, and scales live in Tokens; what you may override lives in Theming.

core

The primitive library. Every export is listed with live examples in the Primitives gallery. Named exports only; per-primitive prop types (ButtonProps, GapStep, SummaryItem, …) ship alongside.

Bundle size: the build preserves one module per component with dependencies external, and only CSS is marked as a side effect, so a tree-shaking bundler can drop what you don't import (chart.js only lands in your bundle when you use a chart component). Measure your own bundle to confirm; the package makes it possible, your bundler makes it happen.

governance

The domain-agnostic seam every constitution builds on:

ExportPurpose
InterceptionResult, Violation, SeverityThe uniform contract; see the interception contract.
intercept, ConstitutionRuleRuns a Zod schema + policy server-side, returns the contract.
dispatch, dispatchAll, createRouter, patternThe intent router: { intent, props } envelope → decision + mount.
UNKNOWN_INTENT, SCHEMA_INVALIDSentinels for an unrecognized verb / a failed parse.
emitAudit, redact, setAuditSink, AuditEventThe audit emit point; see the audit trail.

The router resolves the mount outside the contract, so governance stays an optional escalation layer on a universal validate-then-mount.

fintech and fintech-react

fintech is the shipped Constitution: every intent verb, schema, threshold, and cited standard. fintech-react renders the decisions it makes, the governed components. Both are cataloged in Governed components & display patterns; write your own rule in Write a governance rule.

Versions

All five packages version together, in lockstep; see Releases & stability.