diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 7863fda0f..92e4c0a62 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -256,6 +256,9 @@ catalogs: '@modelcontextprotocol/sdk': specifier: 1.30.0 version: 1.30.0 + '@modelcontextprotocol/server': + specifier: 2.0.0 + version: 2.0.0 '@types/node': specifier: 25.6.2 version: 25.6.2 @@ -478,7 +481,7 @@ importers: specifier: 'catalog:' version: 1.7.5(@modelcontextprotocol/sdk@1.30.0(zod@4.4.3))(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(zod@4.4.3) '@modelcontextprotocol/server': - specifier: 2.0.0 + specifier: 'catalog:' version: 2.0.0 '@nvidia-elements/code': specifier: workspace:* diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 1c976234d..32569e131 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -86,6 +86,7 @@ catalog: '@lit/reactive-element': 2.1.2 '@modelcontextprotocol/ext-apps': 1.7.5 '@modelcontextprotocol/sdk': 1.30.0 + '@modelcontextprotocol/server': 2.0.0 '@types/node': 25.6.2 '@types/react': 19.2.14 '@types/react-dom': 19.2.3 diff --git a/projects/cli/package.json b/projects/cli/package.json index 7ecfdbcb1..0312a585f 100644 --- a/projects/cli/package.json +++ b/projects/cli/package.json @@ -4,12 +4,15 @@ "release": { "extends": "../../release.config.js" }, - "description": "Command-line interface for Elements development and tooling, providing interactive prompts, project scaffolding, and integration with AI assistants via Model Context Protocol.", + "description": "Command-line interface for NVIDIA Elements development and tooling, providing interactive prompts, project scaffolding, and integration with AI assistants via Model Context Protocol.", "keywords": [ + "nvidia", + "web-components", + "design-system", "cli", + "project-scaffolding", "mcp", - "elements", - "web-components" + "model-context-protocol" ], "homepage": "https://NVIDIA.github.io/elements/", "type": "module", @@ -48,7 +51,7 @@ "dependencies": { "@inquirer/prompts": "8.5.0", "@modelcontextprotocol/ext-apps": "catalog:", - "@modelcontextprotocol/server": "2.0.0", + "@modelcontextprotocol/server": "catalog:", "@nvidia-elements/code": "workspace:*", "@nvidia-elements/lint": "workspace:^", "adm-zip": "0.5.17", diff --git a/projects/code/package.json b/projects/code/package.json index 79bf9d37f..8313755b7 100644 --- a/projects/code/package.json +++ b/projects/code/package.json @@ -6,9 +6,13 @@ }, "description": "Code authoring related components. Providing syntax-highlighted code blocks with support for multiple programming languages.", "keywords": [ + "nvidia", "web-components", - "syntax-highlight", - "code-blocks" + "custom-elements", + "code-blocks", + "syntax-highlighting", + "highlight.js", + "lit" ], "homepage": "https://NVIDIA.github.io/elements/", "repository": { diff --git a/projects/core/eslint.config.js b/projects/core/eslint.config.js index 529eda852..e0afa8b85 100644 --- a/projects/core/eslint.config.js +++ b/projects/core/eslint.config.js @@ -35,6 +35,12 @@ export default [ '@nvidia-elements/lint/no-missing-gap-space': ['off'] } }, + { + files: ['src/alert/alert-group.test.visual.ts'], + rules: { + '@nvidia-elements/lint/no-restricted-container-full': ['off'] + } + }, { files: ['src/button/button.test.visual.ts'], rules: { diff --git a/projects/core/package.json b/projects/core/package.json index efd7d9261..ba28fcaf2 100644 --- a/projects/core/package.json +++ b/projects/core/package.json @@ -6,9 +6,13 @@ }, "description": "The Design Language for AI/ML Factories Building at the Speed of Light. Provides a set of accessible and themeable UI elements.", "keywords": [ + "nvidia", "web-components", + "custom-elements", "design-system", - "ui-components" + "ui-components", + "accessibility", + "lit" ], "homepage": "https://NVIDIA.github.io/elements/", "repository": { diff --git a/projects/core/src/alert/alert.examples.ts b/projects/core/src/alert/alert.examples.ts index 8513eb157..d349ea671 100644 --- a/projects/core/src/alert/alert.examples.ts +++ b/projects/core/src/alert/alert.examples.ts @@ -5,6 +5,7 @@ import { html } from 'lit'; import '@nvidia-elements/core/alert/define.js'; import '@nvidia-elements/core/button/define.js'; import '@nvidia-elements/core/divider/define.js'; +import '@nvidia-elements/core/page/define.js'; export default { title: 'Elements/Alert', @@ -20,6 +21,7 @@ export const Default = { /** * @summary Alert status variants for semantic messaging. Use accent for informational updates, warning for cautionary messages requiring attention, success for confirmations, and danger for errors or critical issues that may block user progress. + * @tags test-case */ export const SupportStatus = { render: () => html` @@ -35,6 +37,7 @@ export const SupportStatus = { /** * @summary Extended status variants for workflow and process state communication. Use these specialized states (scheduled, queued, running, failed, etc.) in dashboards, build pipelines, or task management interfaces where users need detailed visibility into process lifecycle stages. + * @tags test-case */ export const Status = { render: () => html` @@ -196,27 +199,27 @@ export const Actions = { */ export const Prominence = { render: () => html` -
- + + Standard banner message view details - + Accent banner message view details - + Warning banner message view details - + Success banner message view details - + Danger banner message view details -
+ ` } diff --git a/projects/core/src/card/card.examples.ts b/projects/core/src/card/card.examples.ts index d4a18c879..b6cbb03a8 100644 --- a/projects/core/src/card/card.examples.ts +++ b/projects/core/src/card/card.examples.ts @@ -8,6 +8,7 @@ import '@nvidia-elements/core/icon-button/define.js'; import '@nvidia-elements/core/icon/define.js'; import '@nvidia-elements/core/tabs/define.js'; import '@nvidia-elements/core/divider/define.js'; +import '@nvidia-elements/core/page/define.js'; export default { title: 'Elements/Card', @@ -148,19 +149,23 @@ export const WithTabs = { /** * @summary Card with full container styling that extends to the edges, suitable for full-width layouts or when you want the card to blend with its container. + * @tags test-case */ export const ContainerFull = { render: () => html` - - -

container full

-
-
+ + + +

container full

+
+
+
` } /** * @summary Card with flat container styling that removes the default card elevation, ideal for subtle content containers or when you want a more minimal appearance. + * @tags test-case */ export const ContainerFlat = { render: () => html` @@ -198,6 +203,7 @@ export const Audit = { /** * @summary Card with overflow content, where the card body scrolls when content exceeds the card height. + * @tags test-case */ export const OverflowContent = { render: () => html` diff --git a/projects/core/src/grid/grid.examples.ts b/projects/core/src/grid/grid.examples.ts index b5bd5522f..4155e4f5c 100644 --- a/projects/core/src/grid/grid.examples.ts +++ b/projects/core/src/grid/grid.examples.ts @@ -1084,6 +1084,7 @@ export const Placeholder = { /** * @summary Full-width grid container for max space use, providing edge-to-edge data display for comprehensive information presentation. + * @tags test-case */ export const Full = { render: () => html` @@ -1102,6 +1103,7 @@ export const Full = { /** * @summary Flat container styling for minimal visual weight, providing subtle grid presentation that integrates seamlessly with surrounding content. + * @tags test-case */ export const Flat = { render: () => html` diff --git a/projects/core/src/grid/grid.test.ts b/projects/core/src/grid/grid.test.ts index 9f9f2b71b..a09053c08 100644 --- a/projects/core/src/grid/grid.test.ts +++ b/projects/core/src/grid/grid.test.ts @@ -58,6 +58,11 @@ describe(Grid.metadata.tag, () => { expect(element.matches(':state(scrolling)')).toBe(false); }); + it('should default to no scroll target before rendering', () => { + const detachedElement = document.createElement(Grid.metadata.tag) as Grid; + expect(detachedElement.stateScrollConfig.target).toBeUndefined(); + }); + it('should enable keynav control from keynav controller', async () => { await elementIsStable(element); expect(element.keynavGridConfig.cells[0].tabIndex).toBe(0); diff --git a/projects/core/src/grid/grid.test.visual.ts b/projects/core/src/grid/grid.test.visual.ts index 43ea6c656..b6eb99896 100644 --- a/projects/core/src/grid/grid.test.visual.ts +++ b/projects/core/src/grid/grid.test.visual.ts @@ -11,6 +11,7 @@ function head(theme: '' | 'dark' = '') { import '@nvidia-elements/core/checkbox/define.js'; import '@nvidia-elements/core/radio/define.js'; import '@nvidia-elements/core/icon-button/define.js'; + import '@nvidia-elements/core/page/define.js'; document.documentElement.setAttribute('nve-theme', '${theme}');