@nova-design-system/nova-context
v3.42.0
Published
Versioned Markdown and JSON context for the Nova Design System.
Keywords
Readme
Nova Context
@nova-design-system/nova-context is a versioned snapshot of Nova's developer
and designer documentation. Each package version matches the corresponding
Nova Design System release, allowing tools such as search indexes, MCP servers,
and chatbots to answer questions using the context for an exact Nova version.
The package contains data only. It does not expose a JavaScript API or install runtime dependencies.
Included context
| Location | Content |
| -------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------- |
| output/storybook/ | Component documentation, examples, guides, and migrations for Web Components, React, Vue, Angular, and Blazor. |
| output/examples/ | The same component examples as structured JSON, one document per framework, for runtime consumers. |
| output/supernova/ | Designer documentation exported from the Nova design system in Supernova. |
| output/data/component-metadata.json | Component props, events, methods, and slots for each supported framework, plus hand-maintained entries for framework-native components. |
| output/data/figma-to-tailwind-mapping.json | Figma token to Tailwind mapping. |
| output/data/icon-mappings.json | Nova icon metadata and mappings. |
| output/data/typography-tokens.json | Typography utilities and their token metadata. |
| output/manifest.json | Version, file inventory, and integrity metadata for the snapshot. |
Package layout
output/
├── manifest.json
├── data/
│ ├── component-metadata.json
│ ├── figma-to-tailwind-mapping.json
│ ├── icon-mappings.json
│ └── typography-tokens.json
├── examples/
│ ├── angular.json
│ ├── blazor.json
│ ├── native.json
│ ├── react.json
│ └── vue.json
├── storybook/
│ └── *.md
└── supernova/
└── *.mdMarkdown metadata
Markdown documents start with YAML frontmatter. Depending on the source, this includes fields such as:
title: Human-readable document title.framework: Framework represented by a Storybook document.category: Developer or designer documentation category.path: Stable path relative tooutput/.url: Link to the corresponding Nova documentation page.idorslug: Source identifier for designer documentation.badge: Lifecycle badge of a component page (new,beta,deprecated,danger), present only when the component has one.deprecated: Deprecation message of a component page, present only when the component is deprecated.
The remainder of each file is standard Markdown suitable for storing as raw content or splitting into retrieval chunks by heading.
Deprecation markers
Deprecated components, properties, events, and methods stay in the context so tools can recognise existing usage and name the replacement — but they are always marked as such:
- A deprecated component page carries
deprecatedin its frontmatter and opens with a> **Deprecated:** …callout under the heading. - Deprecated members remain in the API tables, with their description prefixed
by
**Deprecated:** <message>. - A story that demonstrates a deprecated property opens with the same callout.
data/component-metadata.jsonsetsdeprecated: "<message>"on the component and on each affected property, event, and method, in every framework.examples/{framework}.jsonsetsdeprecatedon a deprecated component and on each example that demonstrates a deprecated property.
Experimental components (@experimental, or the legacy
@deprecated [EXPERIMENTAL] marker) are never a deprecation. They are always
excluded from data/component-metadata.json. The Storybook Markdown and
examples JSON follow the storybooks: experimental components are included in
development and staging builds and excluded when STORYBOOK_ENV=production,
as in the release workflow.
Examples JSON
output/examples/{framework}.json carries the same component examples the
Storybook Markdown shows, as data rather than prose, so tools such as a
playground can render them at runtime without parsing Markdown. Each document
uses schemaVersion: 1 and covers every component for one framework:
{
"schemaVersion": 1,
"framework": "react",
"components": [
{
"tag": "nv-button",
"title": "components/Button/nv-button",
"description": "The Button component enhances standard HTML buttons...",
"examples": [
{
"name": "Size",
"description": "Determines how large or small the button appears...",
"code": "<div className=\"flex gap-4 items-center\">\n <NvButton size=\"xs\">..."
}
]
}
]
}descriptionis omitted on a component or example that has none.deprecatedcarries the deprecation message of a deprecated component, or of an example that demonstrates a deprecated property; it is omitted otherwise.- Only components appear; guides, migrations, and introduction pages stay Markdown-only.
- Props, events, methods, and slots are not repeated here — join
data/component-metadata.jsononid(which equalstagfor web components). Framework-native components have no examples entry yet.
Component metadata JSON
output/data/component-metadata.json is an array with one entry per
component:
{
"id": "nv-button",
"tag": "nv-button",
"source": "stencil",
"description": "Buttons allow users to...",
"frameworks": {
"native": {
"tagName": "nv-button",
"componentName": "NvButton",
"props": [],
"events": [],
"methods": [],
"slots": []
},
"react": {
"componentName": "NvButton",
"props": [],
"events": [],
"methods": [],
"slots": []
},
"vue": {},
"angular": {},
"blazor": {}
}
}idis the stable join key.sourceisstencilfor web components (generated from Stencil metadata,idequalstag) ormanualfor framework-native components such asnv-datatableandnotification-service, which are hand-maintained inpackages/context/manual/.tagandframeworks.nativeare omitted on manual entries: these components have no web-component variant.- Each framework API lists
props,events,methods, andslots. Manual entries addtypes(the supporting interfaces, enums, and aliases) andusage(import,setup,access, andnotessnippets). deprecatedis present on components that are deprecated as a whole.
Manifest
output/manifest.json uses schemaVersion: 1 and contains:
packageNameandnovaVersion.generatedAt.- A sorted file inventory with each output-relative path, format, byte size, and SHA-256 checksum.
The manifest does not list or hash itself. Consumers can use the npm tarball integrity for the package and the manifest checksums for individual context files.
Retrieving a version
Install one version when the context should remain available locally:
npm install @nova-design-system/[email protected]Alternatively, download its tarball without installing it:
npm pack @nova-design-system/[email protected] --ignore-scriptsAvailable versions can be listed with:
npm view @nova-design-system/nova-context versions --json