@invisibleloop/pulse 0.20.6 → 0.20.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +697 -0
- package/docs/public/docs.css +6 -6
- package/docs/public/home-brut.css +175 -191
- package/docs/public/theme.css +51 -7
- package/docs/src/lib/component-page.js +2 -1
- package/docs/src/pages/accessibility.js +2 -1
- package/docs/src/pages/actions.js +2 -1
- package/docs/src/pages/auth.js +2 -1
- package/docs/src/pages/caching.js +2 -1
- package/docs/src/pages/components/accordion.js +2 -1
- package/docs/src/pages/components/alert.js +2 -1
- package/docs/src/pages/components/app-badge.js +2 -1
- package/docs/src/pages/components/avatar.js +2 -1
- package/docs/src/pages/components/badge.js +2 -1
- package/docs/src/pages/components/breadcrumbs.js +2 -1
- package/docs/src/pages/components/button.js +2 -1
- package/docs/src/pages/components/card.js +2 -1
- package/docs/src/pages/components/charts.js +2 -1
- package/docs/src/pages/components/checkbox.js +2 -1
- package/docs/src/pages/components/cluster.js +2 -1
- package/docs/src/pages/components/container.js +2 -1
- package/docs/src/pages/components/cta.js +2 -1
- package/docs/src/pages/components/divider.js +2 -1
- package/docs/src/pages/components/empty.js +2 -1
- package/docs/src/pages/components/feature.js +2 -1
- package/docs/src/pages/components/fieldset.js +2 -1
- package/docs/src/pages/components/fileupload.js +2 -1
- package/docs/src/pages/components/footer.js +2 -1
- package/docs/src/pages/components/grid.js +2 -1
- package/docs/src/pages/components/heading.js +2 -1
- package/docs/src/pages/components/hero.js +2 -1
- package/docs/src/pages/components/icons.js +2 -1
- package/docs/src/pages/components/image.js +2 -1
- package/docs/src/pages/components/input.js +2 -1
- package/docs/src/pages/components/media.js +2 -1
- package/docs/src/pages/components/modal.js +2 -1
- package/docs/src/pages/components/nav.js +2 -1
- package/docs/src/pages/components/phone-frame.js +2 -1
- package/docs/src/pages/components/progress.js +2 -1
- package/docs/src/pages/components/prose.js +2 -1
- package/docs/src/pages/components/pullquote.js +2 -1
- package/docs/src/pages/components/radio.js +2 -1
- package/docs/src/pages/components/rating.js +2 -1
- package/docs/src/pages/components/search.js +2 -1
- package/docs/src/pages/components/section.js +2 -1
- package/docs/src/pages/components/segmented.js +2 -1
- package/docs/src/pages/components/select.js +2 -1
- package/docs/src/pages/components/slider.js +2 -1
- package/docs/src/pages/components/spinner.js +2 -1
- package/docs/src/pages/components/stack.js +2 -1
- package/docs/src/pages/components/stat.js +2 -1
- package/docs/src/pages/components/stepper.js +2 -1
- package/docs/src/pages/components/table.js +2 -1
- package/docs/src/pages/components/textarea.js +2 -1
- package/docs/src/pages/components/toggle.js +2 -1
- package/docs/src/pages/components/tooltip.js +2 -1
- package/docs/src/pages/components.js +2 -1
- package/docs/src/pages/config.js +2 -1
- package/docs/src/pages/constraints.js +2 -1
- package/docs/src/pages/deploy.js +2 -1
- package/docs/src/pages/error-pages.js +2 -1
- package/docs/src/pages/extending.js +2 -1
- package/docs/src/pages/faq.js +2 -1
- package/docs/src/pages/forms.js +2 -1
- package/docs/src/pages/getting-started.js +2 -1
- package/docs/src/pages/guard.js +2 -1
- package/docs/src/pages/home.js +8 -14
- package/docs/src/pages/how-it-works.js +2 -1
- package/docs/src/pages/hydration.js +2 -1
- package/docs/src/pages/images.js +2 -1
- package/docs/src/pages/markdown.js +2 -1
- package/docs/src/pages/meta.js +2 -1
- package/docs/src/pages/mutations.js +2 -1
- package/docs/src/pages/navigation.js +2 -1
- package/docs/src/pages/performance.js +2 -1
- package/docs/src/pages/persist.js +2 -1
- package/docs/src/pages/project-structure.js +2 -1
- package/docs/src/pages/prompt-examples.js +2 -1
- package/docs/src/pages/raw-responses.js +2 -1
- package/docs/src/pages/routing.js +2 -1
- package/docs/src/pages/server-api.js +2 -1
- package/docs/src/pages/server-data.js +2 -1
- package/docs/src/pages/slash-commands.js +2 -1
- package/docs/src/pages/spec.js +2 -1
- package/docs/src/pages/state.js +2 -1
- package/docs/src/pages/store.js +2 -1
- package/docs/src/pages/streaming.js +2 -1
- package/docs/src/pages/stripe.js +2 -1
- package/docs/src/pages/supabase.js +2 -1
- package/docs/src/pages/templates.js +2 -2
- package/docs/src/pages/testing.js +2 -1
- package/docs/src/pages/validation.js +2 -1
- package/package.json +1 -1
- package/public/.pulse-ui-version +1 -1
package/docs/public/theme.css
CHANGED
|
@@ -1,8 +1,52 @@
|
|
|
1
|
-
/* Brut theme tokens */
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
--brut-
|
|
5
|
-
--brut-
|
|
6
|
-
--brut-
|
|
7
|
-
--brut-
|
|
1
|
+
/* Brut theme tokens — home page only, scoped to [data-theme="light"] on <body> */
|
|
2
|
+
[data-theme="light"] {
|
|
3
|
+
/* Confident saturated gold — solid block fill (dark ink text sits on top) */
|
|
4
|
+
--brut-gold: #e8b613;
|
|
5
|
+
--brut-gold-deep: #c99700;
|
|
6
|
+
--brut-ink: #171512;
|
|
7
|
+
--brut-surface: #faf8f2;
|
|
8
|
+
--brut-surface-2: #f1ede1;
|
|
9
|
+
--brut-muted: #5c574c;
|
|
10
|
+
--brut-dark: #171512;
|
|
11
|
+
--brut-darker: #100f0c;
|
|
12
|
+
--brut-surface-dot: #e6e0d2;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
/* Site-wide light theme tokens — feeds docs.css's :root token names (--bg,
|
|
16
|
+
--surface, --text, --accent, etc.) and pulse-ui.css's input tokens, so
|
|
17
|
+
every docs page (nav, sidebar, guides, component reference, templates
|
|
18
|
+
gallery) picks up the same warm/gold/paper palette as the home page. */
|
|
19
|
+
[data-theme="light"] {
|
|
20
|
+
--bg: var(--brut-surface);
|
|
21
|
+
--surface: #ffffff;
|
|
22
|
+
--surface-2: var(--brut-surface-2);
|
|
23
|
+
--border: #ddd6c4;
|
|
24
|
+
--border-subtle: #ece7d9;
|
|
25
|
+
--text: var(--brut-ink);
|
|
26
|
+
--muted: var(--brut-muted);
|
|
27
|
+
--muted-2: #8a8272;
|
|
28
|
+
--accent: var(--brut-gold-deep);
|
|
29
|
+
--accent-text: var(--brut-ink);
|
|
30
|
+
--accent-hover: #a97f00;
|
|
31
|
+
--accent-dim: rgba(201, 151, 0, 0.12);
|
|
32
|
+
--green: #166534;
|
|
33
|
+
--red: #b91c1c;
|
|
34
|
+
|
|
35
|
+
/* Syntax tokens — dark-on-light, tuned for contrast on --surface-2 */
|
|
36
|
+
--tok-kw: #7c3aed;
|
|
37
|
+
--tok-str: #15803d;
|
|
38
|
+
--tok-cmt: #78716c;
|
|
39
|
+
--tok-num: #c2410c;
|
|
40
|
+
--tok-fn: #1d4ed8;
|
|
41
|
+
--tok-prop: #a16207;
|
|
42
|
+
--tok-op: #0891b2;
|
|
43
|
+
--tok-punct: #57534e;
|
|
44
|
+
|
|
45
|
+
/* Sticky header background — replaces the hardcoded rgba(13,13,16,.9) */
|
|
46
|
+
--header-bg: rgba(250, 248, 242, 0.9);
|
|
47
|
+
|
|
48
|
+
/* Callout / tag accents that were hardcoded dark-theme hex in docs.css */
|
|
49
|
+
--callout-note-icon: #1d4ed8;
|
|
50
|
+
--tag-required-bg: rgba(185, 28, 28, 0.12);
|
|
51
|
+
--tag-required-text: #b91c1c;
|
|
8
52
|
}
|
|
@@ -11,6 +11,7 @@ import { highlight } from './highlight.js'
|
|
|
11
11
|
export function demo(previewHtml, codeStr, { col = false, scroll = false, bleed = false } = {}) {
|
|
12
12
|
const previewClass = [
|
|
13
13
|
'demo-preview',
|
|
14
|
+
'is-light',
|
|
14
15
|
col ? 'demo-preview--col' : '',
|
|
15
16
|
scroll ? 'demo-preview--scroll' : '',
|
|
16
17
|
bleed ? 'demo-preview--bleed' : '',
|
|
@@ -20,7 +21,7 @@ export function demo(previewHtml, codeStr, { col = false, scroll = false, bleed
|
|
|
20
21
|
<svg class="demo-theme-toggle__light" width="14" height="14" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><circle cx="12" cy="12" r="5"/><path d="M12 1v2M12 21v2M4.22 4.22l1.42 1.42M18.36 18.36l1.42 1.42M1 12h2M21 12h2M4.22 19.78l1.42-1.42M18.36 5.64l1.42-1.42" stroke="currentColor" stroke-width="2" stroke-linecap="round"/></svg>
|
|
21
22
|
</button>`
|
|
22
23
|
return `<div class="component-demo">
|
|
23
|
-
<div class="${previewClass}">${toggle}<div class="demo-preview-inner">${previewHtml}</div></div>
|
|
24
|
+
<div class="${previewClass}">${toggle}<div class="demo-preview-inner ui-theme-light">${previewHtml}</div></div>
|
|
24
25
|
<div class="demo-code">${codeBlock(highlight(codeStr, 'js'))}</div>
|
|
25
26
|
</div>`
|
|
26
27
|
}
|
|
@@ -7,9 +7,10 @@ const { prev, next } = prevNext('/accessibility')
|
|
|
7
7
|
export default {
|
|
8
8
|
route: '/accessibility',
|
|
9
9
|
meta: {
|
|
10
|
+
theme: 'light',
|
|
10
11
|
title: 'Accessibility — Pulse Docs',
|
|
11
12
|
description: 'Keyboard navigation, focus management, semantic HTML, and ARIA patterns in Pulse.',
|
|
12
|
-
styles: ['/docs.css'],
|
|
13
|
+
styles: ['/theme.css', '/docs.css'],
|
|
13
14
|
},
|
|
14
15
|
view: () => renderLayout({
|
|
15
16
|
currentHref: '/accessibility',
|
|
@@ -7,9 +7,10 @@ const { prev, next } = prevNext('/actions')
|
|
|
7
7
|
export default {
|
|
8
8
|
route: '/actions',
|
|
9
9
|
meta: {
|
|
10
|
+
theme: 'light',
|
|
10
11
|
title: 'Actions — Pulse Docs',
|
|
11
12
|
description: 'Async operations in Pulse — lifecycle, FormData, error handling.',
|
|
12
|
-
styles: ['/docs.css'],
|
|
13
|
+
styles: ['/theme.css', '/docs.css'],
|
|
13
14
|
},
|
|
14
15
|
state: {},
|
|
15
16
|
view: () => renderLayout({
|
package/docs/src/pages/auth.js
CHANGED
|
@@ -7,9 +7,10 @@ const { prev, next } = prevNext('/auth')
|
|
|
7
7
|
export default {
|
|
8
8
|
route: '/auth',
|
|
9
9
|
meta: {
|
|
10
|
+
theme: 'light',
|
|
10
11
|
title: 'Auth (Auth0) — Pulse Docs',
|
|
11
12
|
description: 'Integrating Auth0 OAuth authentication with Pulse using guard functions, ctx.setCookie, and raw response specs.',
|
|
12
|
-
styles: ['/docs.css'],
|
|
13
|
+
styles: ['/theme.css', '/docs.css'],
|
|
13
14
|
},
|
|
14
15
|
view: () => renderLayout({
|
|
15
16
|
currentHref: '/auth',
|
|
@@ -7,9 +7,10 @@ const { prev, next } = prevNext('/caching')
|
|
|
7
7
|
export default {
|
|
8
8
|
route: '/caching',
|
|
9
9
|
meta: {
|
|
10
|
+
theme: 'light',
|
|
10
11
|
title: 'Caching — Pulse Docs',
|
|
11
12
|
description: 'HTTP cache headers, in-process server data caching, and asset caching in Pulse.',
|
|
12
|
-
styles: ['/docs.css'],
|
|
13
|
+
styles: ['/theme.css', '/docs.css'],
|
|
13
14
|
},
|
|
14
15
|
view: () => renderLayout({
|
|
15
16
|
currentHref: '/caching',
|
|
@@ -8,9 +8,10 @@ const { prev, next } = prevNext('/components/accordion')
|
|
|
8
8
|
export default {
|
|
9
9
|
route: '/components/accordion',
|
|
10
10
|
meta: {
|
|
11
|
+
theme: 'light',
|
|
11
12
|
title: 'Accordion — Pulse Docs',
|
|
12
13
|
description: 'Accordion component for Pulse UI.',
|
|
13
|
-
styles: ['/pulse-ui.css', '/docs.css'],
|
|
14
|
+
styles: ['/pulse-ui.css', '/theme.css', '/docs.css'],
|
|
14
15
|
},
|
|
15
16
|
view: () => renderComponentPage({
|
|
16
17
|
currentHref: '/components/accordion',
|
|
@@ -7,9 +7,10 @@ const { prev, next } = prevNext('/components/alert')
|
|
|
7
7
|
export default {
|
|
8
8
|
route: '/components/alert',
|
|
9
9
|
meta: {
|
|
10
|
+
theme: 'light',
|
|
10
11
|
title: 'Alert — Pulse Docs',
|
|
11
12
|
description: 'Alert component for Pulse UI.',
|
|
12
|
-
styles: ['/pulse-ui.css', '/docs.css'],
|
|
13
|
+
styles: ['/pulse-ui.css', '/theme.css', '/docs.css'],
|
|
13
14
|
},
|
|
14
15
|
view: () => renderComponentPage({
|
|
15
16
|
currentHref: '/components/alert',
|
|
@@ -8,9 +8,10 @@ const { prev, next } = prevNext('/components/app-badge')
|
|
|
8
8
|
export default {
|
|
9
9
|
route: '/components/app-badge',
|
|
10
10
|
meta: {
|
|
11
|
+
theme: 'light',
|
|
11
12
|
title: 'App Badge — Pulse Docs',
|
|
12
13
|
description: 'App Badge component for Pulse UI.',
|
|
13
|
-
styles: ['/pulse-ui.css', '/docs.css'],
|
|
14
|
+
styles: ['/pulse-ui.css', '/theme.css', '/docs.css'],
|
|
14
15
|
},
|
|
15
16
|
view: () => renderComponentPage({
|
|
16
17
|
currentHref: '/components/app-badge',
|
|
@@ -7,9 +7,10 @@ const { prev, next } = prevNext('/components/avatar')
|
|
|
7
7
|
export default {
|
|
8
8
|
route: '/components/avatar',
|
|
9
9
|
meta: {
|
|
10
|
+
theme: 'light',
|
|
10
11
|
title: 'Avatar — Pulse Docs',
|
|
11
12
|
description: 'Avatar component for Pulse UI.',
|
|
12
|
-
styles: ['/pulse-ui.css', '/docs.css'],
|
|
13
|
+
styles: ['/pulse-ui.css', '/theme.css', '/docs.css'],
|
|
13
14
|
},
|
|
14
15
|
view: () => renderComponentPage({
|
|
15
16
|
currentHref: '/components/avatar',
|
|
@@ -7,9 +7,10 @@ const { prev, next } = prevNext('/components/badge')
|
|
|
7
7
|
export default {
|
|
8
8
|
route: '/components/badge',
|
|
9
9
|
meta: {
|
|
10
|
+
theme: 'light',
|
|
10
11
|
title: 'Badge — Pulse Docs',
|
|
11
12
|
description: 'Badge component for Pulse UI.',
|
|
12
|
-
styles: ['/pulse-ui.css', '/docs.css'],
|
|
13
|
+
styles: ['/pulse-ui.css', '/theme.css', '/docs.css'],
|
|
13
14
|
},
|
|
14
15
|
view: () => renderComponentPage({
|
|
15
16
|
currentHref: '/components/badge',
|
|
@@ -8,9 +8,10 @@ const { prev, next } = prevNext('/components/breadcrumbs')
|
|
|
8
8
|
export default {
|
|
9
9
|
route: '/components/breadcrumbs',
|
|
10
10
|
meta: {
|
|
11
|
+
theme: 'light',
|
|
11
12
|
title: 'Breadcrumbs — Pulse Docs',
|
|
12
13
|
description: 'Accessible breadcrumb navigation component for Pulse UI.',
|
|
13
|
-
styles: ['/pulse-ui.css', '/docs.css'],
|
|
14
|
+
styles: ['/pulse-ui.css', '/theme.css', '/docs.css'],
|
|
14
15
|
},
|
|
15
16
|
view: () => renderComponentPage({
|
|
16
17
|
currentHref: '/components/breadcrumbs',
|
|
@@ -9,9 +9,10 @@ const { prev, next } = prevNext('/components/button')
|
|
|
9
9
|
export default {
|
|
10
10
|
route: '/components/button',
|
|
11
11
|
meta: {
|
|
12
|
+
theme: 'light',
|
|
12
13
|
title: 'Button — Pulse Docs',
|
|
13
14
|
description: 'Button component for Pulse UI.',
|
|
14
|
-
styles: ['/pulse-ui.css', '/docs.css'],
|
|
15
|
+
styles: ['/pulse-ui.css', '/theme.css', '/docs.css'],
|
|
15
16
|
},
|
|
16
17
|
view: () => renderComponentPage({
|
|
17
18
|
currentHref: '/components/button',
|
|
@@ -8,9 +8,10 @@ const { prev, next } = prevNext('/components/card')
|
|
|
8
8
|
export default {
|
|
9
9
|
route: '/components/card',
|
|
10
10
|
meta: {
|
|
11
|
+
theme: 'light',
|
|
11
12
|
title: 'Card — Pulse Docs',
|
|
12
13
|
description: 'Card component for Pulse UI.',
|
|
13
|
-
styles: ['/pulse-ui.css', '/docs.css'],
|
|
14
|
+
styles: ['/pulse-ui.css', '/theme.css', '/docs.css'],
|
|
14
15
|
},
|
|
15
16
|
view: () => renderComponentPage({
|
|
16
17
|
currentHref: '/components/card',
|
|
@@ -29,9 +29,10 @@ const traffic = [
|
|
|
29
29
|
export default {
|
|
30
30
|
route: '/components/charts',
|
|
31
31
|
meta: {
|
|
32
|
+
theme: 'light',
|
|
32
33
|
title: 'Charts — Pulse Docs',
|
|
33
34
|
description: 'Server-rendered SVG charts for Pulse UI.',
|
|
34
|
-
styles: ['/pulse-ui.css', '/docs.css'],
|
|
35
|
+
styles: ['/pulse-ui.css', '/theme.css', '/docs.css'],
|
|
35
36
|
},
|
|
36
37
|
view: () => renderComponentPage({
|
|
37
38
|
currentHref: '/components/charts',
|
|
@@ -8,9 +8,10 @@ const { prev, next } = prevNext('/components/checkbox')
|
|
|
8
8
|
export default {
|
|
9
9
|
route: '/components/checkbox',
|
|
10
10
|
meta: {
|
|
11
|
+
theme: 'light',
|
|
11
12
|
title: 'Checkbox — Pulse Docs',
|
|
12
13
|
description: 'Custom-styled checkbox component for Pulse UI.',
|
|
13
|
-
styles:
|
|
14
|
+
styles: ['/pulse-ui.css', '/theme.css', '/docs.css'],
|
|
14
15
|
},
|
|
15
16
|
view: () => renderComponentPage({
|
|
16
17
|
currentHref: '/components/checkbox',
|
|
@@ -8,9 +8,10 @@ const { prev, next } = prevNext('/components/cluster')
|
|
|
8
8
|
export default {
|
|
9
9
|
route: '/components/cluster',
|
|
10
10
|
meta: {
|
|
11
|
+
theme: 'light',
|
|
11
12
|
title: 'Cluster — Pulse Docs',
|
|
12
13
|
description: 'Cluster component for Pulse UI.',
|
|
13
|
-
styles: ['/pulse-ui.css', '/docs.css'],
|
|
14
|
+
styles: ['/pulse-ui.css', '/theme.css', '/docs.css'],
|
|
14
15
|
},
|
|
15
16
|
view: () => renderComponentPage({
|
|
16
17
|
currentHref: '/components/cluster',
|
|
@@ -8,9 +8,10 @@ const { prev, next } = prevNext('/components/container')
|
|
|
8
8
|
export default {
|
|
9
9
|
route: '/components/container',
|
|
10
10
|
meta: {
|
|
11
|
+
theme: 'light',
|
|
11
12
|
title: 'Container — Pulse Docs',
|
|
12
13
|
description: 'Container component for Pulse UI.',
|
|
13
|
-
styles: ['/pulse-ui.css', '/docs.css'],
|
|
14
|
+
styles: ['/pulse-ui.css', '/theme.css', '/docs.css'],
|
|
14
15
|
},
|
|
15
16
|
view: () => renderComponentPage({
|
|
16
17
|
currentHref: '/components/container',
|
|
@@ -8,9 +8,10 @@ const { prev, next } = prevNext('/components/cta')
|
|
|
8
8
|
export default {
|
|
9
9
|
route: '/components/cta',
|
|
10
10
|
meta: {
|
|
11
|
+
theme: 'light',
|
|
11
12
|
title: 'CTA — Pulse Docs',
|
|
12
13
|
description: 'Call-to-action block with eyebrow, heading, body text, and an actions slot.',
|
|
13
|
-
styles: ['/pulse-ui.css', '/docs.css'],
|
|
14
|
+
styles: ['/pulse-ui.css', '/theme.css', '/docs.css'],
|
|
14
15
|
},
|
|
15
16
|
state: {},
|
|
16
17
|
view: () => renderComponentPage({
|
|
@@ -8,9 +8,10 @@ const { prev, next } = prevNext('/components/divider')
|
|
|
8
8
|
export default {
|
|
9
9
|
route: '/components/divider',
|
|
10
10
|
meta: {
|
|
11
|
+
theme: 'light',
|
|
11
12
|
title: 'Divider — Pulse Docs',
|
|
12
13
|
description: 'Divider component for Pulse UI.',
|
|
13
|
-
styles: ['/pulse-ui.css', '/docs.css'],
|
|
14
|
+
styles: ['/pulse-ui.css', '/theme.css', '/docs.css'],
|
|
14
15
|
},
|
|
15
16
|
view: () => renderComponentPage({
|
|
16
17
|
currentHref: '/components/divider',
|
|
@@ -7,9 +7,10 @@ const { prev, next } = prevNext('/components/empty')
|
|
|
7
7
|
export default {
|
|
8
8
|
route: '/components/empty',
|
|
9
9
|
meta: {
|
|
10
|
+
theme: 'light',
|
|
10
11
|
title: 'Empty — Pulse Docs',
|
|
11
12
|
description: 'Empty state component for Pulse UI.',
|
|
12
|
-
styles: ['/pulse-ui.css', '/docs.css'],
|
|
13
|
+
styles: ['/pulse-ui.css', '/theme.css', '/docs.css'],
|
|
13
14
|
},
|
|
14
15
|
view: () => renderComponentPage({
|
|
15
16
|
currentHref: '/components/empty',
|
|
@@ -9,9 +9,10 @@ const { prev, next } = prevNext('/components/feature')
|
|
|
9
9
|
export default {
|
|
10
10
|
route: '/components/feature',
|
|
11
11
|
meta: {
|
|
12
|
+
theme: 'light',
|
|
12
13
|
title: 'Feature — Pulse Docs',
|
|
13
14
|
description: 'Feature component for Pulse UI.',
|
|
14
|
-
styles: ['/pulse-ui.css', '/docs.css'],
|
|
15
|
+
styles: ['/pulse-ui.css', '/theme.css', '/docs.css'],
|
|
15
16
|
},
|
|
16
17
|
view: () => renderComponentPage({
|
|
17
18
|
currentHref: '/components/feature',
|
|
@@ -8,9 +8,10 @@ const { prev, next } = prevNext('/components/fieldset')
|
|
|
8
8
|
export default {
|
|
9
9
|
route: '/components/fieldset',
|
|
10
10
|
meta: {
|
|
11
|
+
theme: 'light',
|
|
11
12
|
title: 'Fieldset — Pulse Docs',
|
|
12
13
|
description: 'Semantic grouping of related form fields with an accessible legend.',
|
|
13
|
-
styles: ['/pulse-ui.css', '/docs.css'],
|
|
14
|
+
styles: ['/pulse-ui.css', '/theme.css', '/docs.css'],
|
|
14
15
|
},
|
|
15
16
|
view: () => renderComponentPage({
|
|
16
17
|
currentHref: '/components/fieldset',
|
|
@@ -8,9 +8,10 @@ const { prev, next } = prevNext('/components/file-upload')
|
|
|
8
8
|
export default {
|
|
9
9
|
route: '/components/file-upload',
|
|
10
10
|
meta: {
|
|
11
|
+
theme: 'light',
|
|
11
12
|
title: 'File Upload — Pulse Docs',
|
|
12
13
|
description: 'Drag-and-drop file upload zone component for Pulse UI.',
|
|
13
|
-
styles: ['/pulse-ui.css', '/docs.css'],
|
|
14
|
+
styles: ['/pulse-ui.css', '/theme.css', '/docs.css'],
|
|
14
15
|
},
|
|
15
16
|
state: { fileName: '', fileSize: '' },
|
|
16
17
|
mutations: {
|
|
@@ -8,9 +8,10 @@ const { prev, next } = prevNext('/components/footer')
|
|
|
8
8
|
export default {
|
|
9
9
|
route: '/components/footer',
|
|
10
10
|
meta: {
|
|
11
|
+
theme: 'light',
|
|
11
12
|
title: 'Footer — Pulse Docs',
|
|
12
13
|
description: 'Accessible site footer with logo slot, navigation links, and legal text.',
|
|
13
|
-
styles: ['/pulse-ui.css', '/docs.css'],
|
|
14
|
+
styles: ['/pulse-ui.css', '/theme.css', '/docs.css'],
|
|
14
15
|
},
|
|
15
16
|
view: () => renderComponentPage({
|
|
16
17
|
currentHref: '/components/footer',
|
|
@@ -12,9 +12,10 @@ const item = (label) =>
|
|
|
12
12
|
export default {
|
|
13
13
|
route: '/components/grid',
|
|
14
14
|
meta: {
|
|
15
|
+
theme: 'light',
|
|
15
16
|
title: 'Grid — Pulse Docs',
|
|
16
17
|
description: 'Grid component for Pulse UI.',
|
|
17
|
-
styles: ['/pulse-ui.css', '/docs.css'],
|
|
18
|
+
styles: ['/pulse-ui.css', '/theme.css', '/docs.css'],
|
|
18
19
|
},
|
|
19
20
|
view: () => renderComponentPage({
|
|
20
21
|
currentHref: '/components/grid',
|
|
@@ -8,9 +8,10 @@ const { prev, next } = prevNext('/components/heading')
|
|
|
8
8
|
export default {
|
|
9
9
|
route: '/components/heading',
|
|
10
10
|
meta: {
|
|
11
|
+
theme: 'light',
|
|
11
12
|
title: 'Heading — Pulse Docs',
|
|
12
13
|
description: 'Styled semantic heading component for Pulse UI.',
|
|
13
|
-
styles: ['/pulse-ui.css', '/docs.css'],
|
|
14
|
+
styles: ['/pulse-ui.css', '/theme.css', '/docs.css'],
|
|
14
15
|
},
|
|
15
16
|
view: () => renderComponentPage({
|
|
16
17
|
currentHref: '/components/heading',
|
|
@@ -8,9 +8,10 @@ const { prev, next } = prevNext('/components/hero')
|
|
|
8
8
|
export default {
|
|
9
9
|
route: '/components/hero',
|
|
10
10
|
meta: {
|
|
11
|
+
theme: 'light',
|
|
11
12
|
title: 'Hero — Pulse Docs',
|
|
12
13
|
description: 'Hero component for Pulse UI.',
|
|
13
|
-
styles: ['/pulse-ui.css', '/docs.css'],
|
|
14
|
+
styles: ['/pulse-ui.css', '/theme.css', '/docs.css'],
|
|
14
15
|
},
|
|
15
16
|
state: {},
|
|
16
17
|
view: () => {
|
|
@@ -382,9 +382,10 @@ feature({ icon: iconCode({ size: 22, bg: 'square', bgColor: 'muted' }), titl
|
|
|
382
382
|
export default {
|
|
383
383
|
route: '/components/icons',
|
|
384
384
|
meta: {
|
|
385
|
+
theme: 'light',
|
|
385
386
|
title: 'Icons — Pulse Docs',
|
|
386
387
|
description: 'Built-in icon set for Pulse UI.',
|
|
387
|
-
styles: ['/pulse-ui.css', '/docs.css'],
|
|
388
|
+
styles: ['/pulse-ui.css', '/theme.css', '/docs.css'],
|
|
388
389
|
},
|
|
389
390
|
|
|
390
391
|
// Shell: all visible content (nav, examples, icon grid) — sends immediately.
|
|
@@ -8,9 +8,10 @@ const { prev, next } = prevNext('/components/image')
|
|
|
8
8
|
export default {
|
|
9
9
|
route: '/components/image',
|
|
10
10
|
meta: {
|
|
11
|
+
theme: 'light',
|
|
11
12
|
title: 'Image — Pulse Docs',
|
|
12
13
|
description: 'Responsive image component with optional aspect-ratio crop and caption for Pulse UI.',
|
|
13
|
-
styles: ['/pulse-ui.css', '/docs.css'],
|
|
14
|
+
styles: ['/pulse-ui.css', '/theme.css', '/docs.css'],
|
|
14
15
|
},
|
|
15
16
|
view: () => renderComponentPage({
|
|
16
17
|
currentHref: '/components/image',
|
|
@@ -8,9 +8,10 @@ const { prev, next } = prevNext('/components/input')
|
|
|
8
8
|
export default {
|
|
9
9
|
route: '/components/input',
|
|
10
10
|
meta: {
|
|
11
|
+
theme: 'light',
|
|
11
12
|
title: 'Input — Pulse Docs',
|
|
12
13
|
description: 'Input component for Pulse UI.',
|
|
13
|
-
styles: ['/pulse-ui.css', '/docs.css'],
|
|
14
|
+
styles: ['/pulse-ui.css', '/theme.css', '/docs.css'],
|
|
14
15
|
},
|
|
15
16
|
view: () => renderComponentPage({
|
|
16
17
|
currentHref: '/components/input',
|
|
@@ -8,9 +8,10 @@ const { prev, next } = prevNext('/components/media')
|
|
|
8
8
|
export default {
|
|
9
9
|
route: '/components/media',
|
|
10
10
|
meta: {
|
|
11
|
+
theme: 'light',
|
|
11
12
|
title: 'Media — Pulse Docs',
|
|
12
13
|
description: 'Media component for Pulse UI.',
|
|
13
|
-
styles: ['/pulse-ui.css', '/docs.css'],
|
|
14
|
+
styles: ['/pulse-ui.css', '/theme.css', '/docs.css'],
|
|
14
15
|
},
|
|
15
16
|
view: () => renderComponentPage({
|
|
16
17
|
currentHref: '/components/media',
|
|
@@ -8,9 +8,10 @@ const { prev, next } = prevNext('/components/modal')
|
|
|
8
8
|
export default {
|
|
9
9
|
route: '/components/modal',
|
|
10
10
|
meta: {
|
|
11
|
+
theme: 'light',
|
|
11
12
|
title: 'Modal — Pulse Docs',
|
|
12
13
|
description: 'Modal dialog component for Pulse UI.',
|
|
13
|
-
styles: ['/pulse-ui.css', '/docs.css'],
|
|
14
|
+
styles: ['/pulse-ui.css', '/theme.css', '/docs.css'],
|
|
14
15
|
},
|
|
15
16
|
view: () => renderComponentPage({
|
|
16
17
|
currentHref: '/components/modal',
|
|
@@ -8,9 +8,10 @@ const { prev, next } = prevNext('/components/nav')
|
|
|
8
8
|
export default {
|
|
9
9
|
route: '/components/nav',
|
|
10
10
|
meta: {
|
|
11
|
+
theme: 'light',
|
|
11
12
|
title: 'Nav — Pulse Docs',
|
|
12
13
|
description: 'Nav component for Pulse UI.',
|
|
13
|
-
styles: ['/pulse-ui.css', '/docs.css'],
|
|
14
|
+
styles: ['/pulse-ui.css', '/theme.css', '/docs.css'],
|
|
14
15
|
},
|
|
15
16
|
view: () => renderComponentPage({
|
|
16
17
|
currentHref: '/components/nav',
|
|
@@ -28,9 +28,10 @@ const sampleScreen = `
|
|
|
28
28
|
export default {
|
|
29
29
|
route: '/components/phone-frame',
|
|
30
30
|
meta: {
|
|
31
|
+
theme: 'light',
|
|
31
32
|
title: 'Phone Frame — Pulse Docs',
|
|
32
33
|
description: 'Phone Frame component for Pulse UI.',
|
|
33
|
-
styles: ['/pulse-ui.css', '/docs.css'],
|
|
34
|
+
styles: ['/pulse-ui.css', '/theme.css', '/docs.css'],
|
|
34
35
|
},
|
|
35
36
|
state: {},
|
|
36
37
|
view: () => renderComponentPage({
|
|
@@ -8,9 +8,10 @@ const { prev, next } = prevNext('/components/progress')
|
|
|
8
8
|
export default {
|
|
9
9
|
route: '/components/progress',
|
|
10
10
|
meta: {
|
|
11
|
+
theme: 'light',
|
|
11
12
|
title: 'Progress — Pulse Docs',
|
|
12
13
|
description: 'Progress bar component for Pulse UI.',
|
|
13
|
-
styles: ['/pulse-ui.css', '/docs.css'],
|
|
14
|
+
styles: ['/pulse-ui.css', '/theme.css', '/docs.css'],
|
|
14
15
|
},
|
|
15
16
|
view: () => renderComponentPage({
|
|
16
17
|
currentHref: '/components/progress',
|
|
@@ -21,9 +21,10 @@ const SAMPLE_HTML = `<h2>Why great coffee starts with water</h2>
|
|
|
21
21
|
export default {
|
|
22
22
|
route: '/components/prose',
|
|
23
23
|
meta: {
|
|
24
|
+
theme: 'light',
|
|
24
25
|
title: 'Prose — Pulse Docs',
|
|
25
26
|
description: 'Typography wrapper for CMS output and rich text content in Pulse UI.',
|
|
26
|
-
styles: ['/pulse-ui.css', '/docs.css'],
|
|
27
|
+
styles: ['/pulse-ui.css', '/theme.css', '/docs.css'],
|
|
27
28
|
},
|
|
28
29
|
view: () => renderComponentPage({
|
|
29
30
|
currentHref: '/components/prose',
|
|
@@ -8,9 +8,10 @@ const { prev, next } = prevNext('/components/pullquote')
|
|
|
8
8
|
export default {
|
|
9
9
|
route: '/components/pullquote',
|
|
10
10
|
meta: {
|
|
11
|
+
theme: 'light',
|
|
11
12
|
title: 'Pullquote — Pulse Docs',
|
|
12
13
|
description: 'Styled blockquote component for Pulse UI.',
|
|
13
|
-
styles: ['/pulse-ui.css', '/docs.css'],
|
|
14
|
+
styles: ['/pulse-ui.css', '/theme.css', '/docs.css'],
|
|
14
15
|
},
|
|
15
16
|
view: () => renderComponentPage({
|
|
16
17
|
currentHref: '/components/pullquote',
|
|
@@ -8,9 +8,10 @@ const { prev, next } = prevNext('/components/radio')
|
|
|
8
8
|
export default {
|
|
9
9
|
route: '/components/radio',
|
|
10
10
|
meta: {
|
|
11
|
+
theme: 'light',
|
|
11
12
|
title: 'Radio — Pulse Docs',
|
|
12
13
|
description: 'Radio button and radio group components for Pulse UI.',
|
|
13
|
-
styles: ['/pulse-ui.css', '/docs.css'],
|
|
14
|
+
styles: ['/pulse-ui.css', '/theme.css', '/docs.css'],
|
|
14
15
|
},
|
|
15
16
|
view: () => renderComponentPage({
|
|
16
17
|
currentHref: '/components/radio',
|
|
@@ -8,9 +8,10 @@ const { prev, next } = prevNext('/components/rating')
|
|
|
8
8
|
export default {
|
|
9
9
|
route: '/components/rating',
|
|
10
10
|
meta: {
|
|
11
|
+
theme: 'light',
|
|
11
12
|
title: 'Rating — Pulse Docs',
|
|
12
13
|
description: 'Star rating display and interactive input component for Pulse UI.',
|
|
13
|
-
styles: ['/pulse-ui.css', '/docs.css'],
|
|
14
|
+
styles: ['/pulse-ui.css', '/theme.css', '/docs.css'],
|
|
14
15
|
},
|
|
15
16
|
view: () => renderComponentPage({
|
|
16
17
|
currentHref: '/components/rating',
|
|
@@ -8,9 +8,10 @@ const { prev, next } = prevNext('/components/search')
|
|
|
8
8
|
export default {
|
|
9
9
|
route: '/components/search',
|
|
10
10
|
meta: {
|
|
11
|
+
theme: 'light',
|
|
11
12
|
title: 'Search — Pulse Docs',
|
|
12
13
|
description: 'Search input component with icon, debounce binding, and clear button.',
|
|
13
|
-
styles: ['/pulse-ui.css', '/docs.css'],
|
|
14
|
+
styles: ['/pulse-ui.css', '/theme.css', '/docs.css'],
|
|
14
15
|
},
|
|
15
16
|
view: () => renderComponentPage({
|
|
16
17
|
currentHref: '/components/search',
|
|
@@ -8,9 +8,10 @@ const { prev, next } = prevNext('/components/section')
|
|
|
8
8
|
export default {
|
|
9
9
|
route: '/components/section',
|
|
10
10
|
meta: {
|
|
11
|
+
theme: 'light',
|
|
11
12
|
title: 'Section — Pulse Docs',
|
|
12
13
|
description: 'Vertical padding wrapper with optional background. Compose with container() for full-width background with constrained content.',
|
|
13
|
-
styles: ['/pulse-ui.css', '/docs.css'],
|
|
14
|
+
styles: ['/pulse-ui.css', '/theme.css', '/docs.css'],
|
|
14
15
|
},
|
|
15
16
|
view: () => renderComponentPage({
|
|
16
17
|
currentHref: '/components/section',
|
|
@@ -8,9 +8,10 @@ const { prev, next } = prevNext('/components/segmented')
|
|
|
8
8
|
export default {
|
|
9
9
|
route: '/components/segmented',
|
|
10
10
|
meta: {
|
|
11
|
+
theme: 'light',
|
|
11
12
|
title: 'Segmented — Pulse Docs',
|
|
12
13
|
description: 'iOS-style segmented control component for Pulse UI.',
|
|
13
|
-
styles: ['/pulse-ui.css', '/docs.css'],
|
|
14
|
+
styles: ['/pulse-ui.css', '/theme.css', '/docs.css'],
|
|
14
15
|
},
|
|
15
16
|
view: () => renderComponentPage({
|
|
16
17
|
currentHref: '/components/segmented',
|
|
@@ -7,9 +7,10 @@ const { prev, next } = prevNext('/components/select')
|
|
|
7
7
|
export default {
|
|
8
8
|
route: '/components/select',
|
|
9
9
|
meta: {
|
|
10
|
+
theme: 'light',
|
|
10
11
|
title: 'Select — Pulse Docs',
|
|
11
12
|
description: 'Select component for Pulse UI.',
|
|
12
|
-
styles: ['/pulse-ui.css', '/docs.css'],
|
|
13
|
+
styles: ['/pulse-ui.css', '/theme.css', '/docs.css'],
|
|
13
14
|
},
|
|
14
15
|
view: () => renderComponentPage({
|
|
15
16
|
currentHref: '/components/select',
|