From 0abd0cd46e593bb5ee63b82065c4a2cc7f17a47c Mon Sep 17 00:00:00 2001 From: Cory Rylan Date: Wed, 16 Sep 2026 10:30:34 -0500 Subject: [PATCH 1/2] feat(code): support code element slot content - Improved internal handling of `
` and `` elements to extract code content correctly.

Signed-off-by: Cory Rylan 
---
 projects/code/src/codeblock/codeblock.test.ts | 18 ++++++++++++++++++
 projects/code/src/codeblock/codeblock.ts      |  9 ++++++---
 2 files changed, 24 insertions(+), 3 deletions(-)

diff --git a/projects/code/src/codeblock/codeblock.test.ts b/projects/code/src/codeblock/codeblock.test.ts
index f661feaba3..8988faabf9 100644
--- a/projects/code/src/codeblock/codeblock.test.ts
+++ b/projects/code/src/codeblock/codeblock.test.ts
@@ -83,6 +83,24 @@ function getTime(): number {
     expect(element.shadowRoot!.querySelector('.hljs-title')).toBeTruthy();
   });
 
+  it('should render source code if slotted within a 
 block', async () => {
+    element.language = 'typescript';
+    element.innerHTML = '
const answer = 42;
'; + await elementIsStable(element); + + expect(element.shadowRoot!.querySelector('pre.hljs > code')!.textContent).toBe('const answer = 42;'); + expect(element.shadowRoot!.querySelector('.hljs-keyword')).toBeTruthy(); + }); + + it('should decode escaped HTML source from a slotted
 block', async () => {
+    element.language = 'html';
+    element.innerHTML = '
<nve-button>Save</nve-button>
'; + await elementIsStable(element); + + expect(element.shadowRoot!.querySelector('pre.hljs > code')!.textContent).toBe('Save'); + expect(element.shadowRoot!.querySelector('.hljs-name')!.textContent).toBe('nve-button'); + }); + it('should render HTML source code if slotted HTML content', async () => { element.language = 'typescript'; const div = document.createElement('div'); diff --git a/projects/code/src/codeblock/codeblock.ts b/projects/code/src/codeblock/codeblock.ts index 417b048b41..75bba22657 100644 --- a/projects/code/src/codeblock/codeblock.ts +++ b/projects/code/src/codeblock/codeblock.ts @@ -22,7 +22,7 @@ hljs.registerLanguage('shell', shell); * @documentation https://nvidia.github.io/elements/docs/code/codeblock/ * @since 0.1.0 * @entrypoint \@nvidia-elements/code/codeblock - * @slot - for declarative slotting of source code and not using the `code` property + * @slot - source code as text, a `