-
Notifications
You must be signed in to change notification settings - Fork 9
chore(docs): add component preview to card list #202
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -77,7 +77,8 @@ export const renderBaseHead = data => { | |
| /* hide non-ssr elements until defined */ | ||
| nve-tree:not(:defined), | ||
| nve-grid:not(:defined), | ||
| nvd-canvas:not(:defined) { | ||
| nvd-canvas:not(:defined), | ||
| nve-button:not(:defined) { | ||
| visibility: hidden !important; | ||
| } | ||
|
|
||
|
|
@@ -219,7 +220,7 @@ export const renderDocsNav = data => /* html */ ` | |
| <nve-tree-node ${data.page.url.includes('/docs/design-md/') ? 'highlighted selected' : ''}><a href="/docs/design-md/">DESIGN.md</a></nve-tree-node> | ||
| </nve-tree-node> | ||
|
|
||
| <nve-tree-node ${data.page.url.includes('/docs/elements/') ? 'expanded' : ''} ${data.page.url === '/docs/elements/' ? 'highlighted selected' : ''}> | ||
| <nve-tree-node ${data.page.url.includes('/docs/elements/') || data.page.url.includes('/docs/monaco/') || data.page.url.includes('/docs/markdown/') || data.page.url.includes('/docs/code/') ? 'expanded' : ''} ${data.page.url === '/docs/elements/' ? 'highlighted selected' : ''}> | ||
|
coderabbitai[bot] marked this conversation as resolved.
|
||
| <a href="/docs/elements/">Elements</a> | ||
| <nve-tree-node ${data.page.url.includes('/docs/elements/accordion/') ? 'highlighted selected' : ''}><a href="/docs/elements/accordion/">Accordion</a></nve-tree-node> | ||
| <nve-tree-node ${data.page.url.includes('/docs/elements/alert/') ? 'highlighted selected' : ''}><a href="/docs/elements/alert/">Alert</a></nve-tree-node> | ||
|
|
@@ -231,6 +232,7 @@ export const renderDocsNav = data => /* html */ ` | |
| <nve-tree-node ${data.page.url.includes('/docs/elements/card/') ? 'highlighted selected' : ''}><a href="/docs/elements/card/">Card</a></nve-tree-node> | ||
| <nve-tree-node ${data.page.url.includes('/docs/elements/chat-message/') ? 'highlighted selected' : ''}><a href="/docs/elements/chat-message/">Chat Message</a></nve-tree-node> | ||
| <nve-tree-node ${data.page.url.includes('/docs/elements/checkbox/') ? 'highlighted selected' : ''}><a href="/docs/elements/checkbox/">Checkbox</a></nve-tree-node> | ||
| <nve-tree-node ${data.page.url.includes('/docs/code/codeblock/') ? 'highlighted selected' : ''}><a href="/docs/code/codeblock/">Codeblock</a></nve-tree-node> | ||
| <nve-tree-node ${data.page.url.includes('/docs/elements/color/') ? 'highlighted selected' : ''}><a href="/docs/elements/color/">Color</a></nve-tree-node> | ||
| <nve-tree-node ${data.page.url.includes('/docs/elements/combobox/') ? 'highlighted selected' : ''}><a href="/docs/elements/combobox/">Combobox</a></nve-tree-node> | ||
| <nve-tree-node ${data.page.url.includes('/docs/elements/copy-button/') ? 'highlighted selected' : ''}><a href="/docs/elements/copy-button/">Copy Button</a></nve-tree-node> | ||
|
|
@@ -285,8 +287,15 @@ export const renderDocsNav = data => /* html */ ` | |
| <nve-tree-node ${data.page.url.includes('/docs/elements/input/') ? 'highlighted selected' : ''}><a href="/docs/elements/input/">Input</a></nve-tree-node> | ||
| <nve-tree-node ${data.page.url.includes('/docs/elements/input-group/') ? 'highlighted selected' : ''}><a href="/docs/elements/input-group/">Input Group</a></nve-tree-node> | ||
| <nve-tree-node ${data.page.url.includes('/docs/elements/logo/') ? 'highlighted selected' : ''}><a href="/docs/elements/logo/">Logo</a></nve-tree-node> | ||
| <nve-tree-node ${data.page.url.endsWith('/docs/markdown/') ? 'highlighted selected' : ''}><a href="/docs/markdown/">Markdown</a></nve-tree-node> | ||
| <nve-tree-node ${data.page.url.includes('/docs/markdown/styles/') ? 'highlighted selected' : ''}><a href="/docs/markdown/styles/">Markdown CSS</a></nve-tree-node> | ||
| <nve-tree-node ${data.page.url.includes('/docs/elements/menu/') ? 'highlighted selected' : ''}><a href="/docs/elements/menu/">Menu</a></nve-tree-node> | ||
| <nve-tree-node ${data.page.url.includes('/docs/elements/month/') ? 'highlighted selected' : ''}><a href="/docs/elements/month/">Month</a></nve-tree-node> | ||
| <nve-tree-node ${data.page.url.includes('/docs/monaco/input/') ? 'highlighted selected' : ''}><a href="/docs/monaco/input/">Monaco Input</a></nve-tree-node> | ||
| <nve-tree-node ${data.page.url.includes('/docs/monaco/diff-input/') ? 'highlighted selected' : ''}><a href="/docs/monaco/diff-input/">Monaco Diff Input</a></nve-tree-node> | ||
| <nve-tree-node ${data.page.url.includes('/docs/monaco/editor/') ? 'highlighted selected' : ''}><a href="/docs/monaco/editor/">Monaco Editor</a></nve-tree-node> | ||
| <nve-tree-node ${data.page.url.includes('/docs/monaco/diff-editor/') ? 'highlighted selected' : ''}><a href="/docs/monaco/diff-editor/">Monaco Diff Editor</a></nve-tree-node> | ||
| <nve-tree-node ${data.page.url.includes('/docs/monaco/problems/') ? 'highlighted selected' : ''}><a href="/docs/monaco/problems/">Monaco Problems</a></nve-tree-node> | ||
|
Collaborator
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Flatten links in tree nav for easier discoverability |
||
| <nve-tree-node ${data.page.url.includes('/docs/elements/notification/') ? 'highlighted selected' : ''}><a href="/docs/elements/notification/">Notification</a></nve-tree-node> | ||
| <nve-tree-node ${data.page.url.includes('/docs/elements/page/') ? 'highlighted selected' : ''}><a href="/docs/elements/page/">Page</a></nve-tree-node> | ||
| <nve-tree-node ${data.page.url.includes('/docs/elements/page-header/') ? 'highlighted selected' : ''}><a href="/docs/elements/page-header/">Page Header</a></nve-tree-node> | ||
|
|
@@ -342,26 +351,6 @@ export const renderDocsNav = data => /* html */ ` | |
| <nve-tree-node ${data.page.url.includes('/docs/patterns/trend/') ? 'highlighted selected' : ''}><a href="/docs/patterns/trend/">Trend</a></nve-tree-node> | ||
| </nve-tree-node> | ||
|
|
||
| <nve-tree-node ${data.page.url.includes('/docs/code/') ? 'expanded' : ''}> | ||
| <a href="/docs/code/codeblock/">Code</a> | ||
| <nve-tree-node ${data.page.url.includes('/docs/code/codeblock/') ? 'highlighted selected' : ''}><a href="/docs/code/codeblock/">Codeblock</a></nve-tree-node> | ||
| </nve-tree-node> | ||
|
|
||
| <nve-tree-node ${data.page.url.includes('/docs/monaco/') ? 'expanded' : ''}> | ||
| <a href="/docs/monaco/input/">Monaco</a> | ||
| <nve-tree-node ${data.page.url.includes('/docs/monaco/input/') ? 'highlighted selected' : ''}><a href="/docs/monaco/input/">Input</a></nve-tree-node> | ||
| <nve-tree-node ${data.page.url.includes('/docs/monaco/diff-input/') ? 'highlighted selected' : ''}><a href="/docs/monaco/diff-input/">Diff Input</a></nve-tree-node> | ||
| <nve-tree-node ${data.page.url.includes('/docs/monaco/editor/') ? 'highlighted selected' : ''}><a href="/docs/monaco/editor/">Editor</a></nve-tree-node> | ||
| <nve-tree-node ${data.page.url.includes('/docs/monaco/diff-editor/') ? 'highlighted selected' : ''}><a href="/docs/monaco/diff-editor/">Diff Editor</a></nve-tree-node> | ||
| <nve-tree-node ${data.page.url.includes('/docs/monaco/problems/') ? 'highlighted selected' : ''}><a href="/docs/monaco/problems/">Problems</a></nve-tree-node> | ||
| </nve-tree-node> | ||
|
|
||
| <nve-tree-node ${data.page.url.includes('/docs/markdown/') ? 'expanded' : ''}> | ||
| <a href="/docs/markdown/">Markdown</a> | ||
| <nve-tree-node ${data.page.url.endsWith('/docs/markdown/') ? 'highlighted selected' : ''}><a href="/docs/markdown/">Markdown</a></nve-tree-node> | ||
| <nve-tree-node ${data.page.url.includes('/docs/markdown/styles/') ? 'highlighted selected' : ''}><a href="/docs/markdown/styles/">CSS Utility</a></nve-tree-node> | ||
| </nve-tree-node> | ||
|
|
||
| <nve-tree-node ${data.page.url.includes('/docs/labs/') ? 'expanded' : ''} ${data.page.url === '/docs/labs/' ? 'highlighted' : ''}> | ||
| <a href="/docs/labs/">Labs</a> | ||
| <nve-tree-node ${data.page.url.includes('/docs/labs/layout/responsive/') ? 'expanded' : ''} ${data.page.url === '/docs/labs/layout/responsive/' ? 'highlighted' : ''}> | ||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -7,9 +7,12 @@ const markdown = markdownIt({ | |
| linkify: true, | ||
| highlight: function (str, lang) { | ||
| lang = lang === 'javascript' ? 'typescript' : lang; // alias javascript to typescript | ||
| return /* html */ `<nve-codeblock language="${lang}"><template>${markdown.utils.escapeHtml(str)}</template></nve-codeblock> | ||
| <nve-copy-button class="markdown-copy-button" role="button" aria-label="copy" behavior-copy container="flat"></nve-copy-button> | ||
|
|
||
| return /* html */ ` | ||
| <div class="markdown-codeblock"> | ||
| <pre class="visually-hidden" aria-hidden="true"><code>${markdown.utils.escapeHtml(str)}</code></pre> | ||
| <nve-codeblock language="${lang}"><template>${markdown.utils.escapeHtml(str)}</template></nve-codeblock> | ||
| <nve-copy-button class="markdown-copy-button" role="button" aria-label="copy" behavior-copy container="flat"></nve-copy-button> | ||
| </div> | ||
| <script type="module"> | ||
| document.querySelectorAll('.markdown-copy-button').forEach(button => { | ||
| const codeblock = button.previousElementSibling; | ||
|
|
@@ -19,6 +22,25 @@ const markdown = markdownIt({ | |
| } | ||
| }); | ||
|
|
||
| markdown.renderer.rules.fence = function (tokens, idx, options, env, slf) { | ||
| const token = tokens[idx]; | ||
| const info = token.info ? markdown.utils.unescapeAll(token.info).trim() : ''; | ||
| let langName = ''; | ||
| let highlighted; | ||
|
|
||
| if (info) { | ||
| langName = info.split(/\s+/g)[0]; | ||
| } | ||
|
|
||
| if (options.highlight) { | ||
| highlighted = options.highlight(token.content, langName) || markdown.utils.escapeHtml(token.content); | ||
| } else { | ||
| highlighted = markdown.utils.escapeHtml(token.content); | ||
| } | ||
|
|
||
| return highlighted + '\n'; | ||
| }; | ||
|
Collaborator
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This is a workaround that prevents markdownit from wrapping nve-codeblock with additional pre/code tags. markdown-it/markdown-it#269 |
||
|
|
||
| const formats = { | ||
| h1: 'display emphasis', | ||
| h2: 'heading xl emphasis', | ||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -56,17 +56,17 @@ export function renderAPINameTable(apiValue) { | |
| .render(apiValue.descriptionText ?? apiValue.description ?? '') | ||
| .trim() | ||
| .replaceAll('<p>', '<p nve-text="body relaxed">')} | ||
| <nve-grid container="flat"> | ||
| <nve-grid-header> | ||
| <nve-grid-column width="200px">${apiValue.name.charAt(0).toUpperCase() + apiValue.name.slice(1)}</nve-grid-column> | ||
| <nve-grid-column>Description</nve-grid-column> | ||
| <nve-grid role="grid" container="flat"> | ||
| <nve-grid-header role="row"> | ||
| <nve-grid-column role="columnheader" width="200px">${apiValue.name.charAt(0).toUpperCase() + apiValue.name.slice(1)}</nve-grid-column> | ||
| <nve-grid-column role="columnheader">Description</nve-grid-column> | ||
| </nve-grid-header> | ||
| ${values | ||
| .filter(i => !i.deprecated) | ||
| .map( | ||
| i => /* html */ `<nve-grid-row> | ||
| <nve-grid-cell><span nve-text="code nowrap">${escapeHtml(i.value)}</span></nve-grid-cell> | ||
| <nve-grid-cell>${i.description ?? ''}</nve-grid-cell> | ||
| i => /* html */ `<nve-grid-row role="row"> | ||
| <nve-grid-cell role="gridcell"><span nve-text="code nowrap">${escapeHtml(i.value)}</span></nve-grid-cell> | ||
| <nve-grid-cell role="gridcell">${i.description ?? ''}</nve-grid-cell> | ||
|
Collaborator
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Grid handles this already but this helps agent search tools that don't run JS all the time |
||
| </nve-grid-row>` | ||
| ) | ||
| .join('')} | ||
|
|
@@ -95,12 +95,12 @@ export function renderAPITable(element, type, options = { container: 'flat' }) { | |
| const noItems = items.length === 0; | ||
| return /* html */ ` | ||
| <div class="api-table" nve-layout="column gap:sm full"> | ||
| <nve-grid container="${options.container}" style="min-height: 100px"> | ||
| <nve-grid-header> | ||
| <nve-grid-column width="200px">${type.charAt(0).toUpperCase() + type.slice(1)}</nve-grid-column> | ||
| ${type === 'property' ? '<nve-grid-column width="200px">Attribute</nve-grid-column>' : ''} | ||
| <nve-grid-column>Description</nve-grid-column> | ||
| ${type === 'property' ? '<nve-grid-column>Values</nve-grid-column>' : ''} | ||
| <nve-grid role="grid" container="${options.container}" style="min-height: 100px"> | ||
| <nve-grid-header role="row"> | ||
| <nve-grid-column role="columnheader" width="200px">${type.charAt(0).toUpperCase() + type.slice(1)}</nve-grid-column> | ||
| ${type === 'property' ? '<nve-grid-column role="columnheader" width="200px">Attribute</nve-grid-column>' : ''} | ||
| <nve-grid-column role="columnheader">Description</nve-grid-column> | ||
| ${type === 'property' ? '<nve-grid-column role="columnheader">Values</nve-grid-column>' : ''} | ||
| </nve-grid-header> | ||
| ${items | ||
| .map(i => { | ||
|
|
@@ -112,15 +112,15 @@ export function renderAPITable(element, type, options = { container: 'flat' }) { | |
| .replaceAll('<p', `<p nve-text="body relaxed sm${i.deprecated ? ' muted' : ''}"`) | ||
| .replaceAll('<code', '<code nve-text="code nowrap"') | ||
| : ''; | ||
| return /* html */ `<nve-grid-row> | ||
| <nve-grid-cell><span nve-text="code nowrap">${escapeHtml(i.name === '' ? 'default' : i.name)}</span></nve-grid-cell> | ||
| ${type === 'property' ? /* html */ `<nve-grid-cell><span nve-text="code nowrap">${escapeHtml(getMemberAttributeName(element.manifest, i) ?? 'none')}</span></nve-grid-cell>` : ''} | ||
| <nve-grid-cell> | ||
| return /* html */ `<nve-grid-row role="row"> | ||
| <nve-grid-cell role="gridcell"><span nve-text="code nowrap">${escapeHtml(i.name === '' ? 'default' : i.name)}</span></nve-grid-cell> | ||
| ${type === 'property' ? /* html */ `<nve-grid-cell role="gridcell"><span nve-text="code nowrap">${escapeHtml(getMemberAttributeName(element.manifest, i) ?? 'none')}</span></nve-grid-cell>` : ''} | ||
| <nve-grid-cell role="gridcell"> | ||
| <div nve-layout="column gap:xs">${i.deprecated ? '<nve-badge status="warning" container="flat">deprecated</nve-badge>' : ''}${description}</div> | ||
| </nve-grid-cell> | ||
| ${ | ||
| type === 'property' | ||
| ? /* html */ `<nve-grid-cell> | ||
| ? /* html */ `<nve-grid-cell role="gridcell"> | ||
| <div nve-layout="${i.type?.values?.some(v => v.description) ? 'column gap:xs' : 'row gap:xxs align:wrap'}"> | ||
| ${(i.type?.values ?? []) | ||
| .map( | ||
|
|
||
Uh oh!
There was an error while loading. Please reload this page.