Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion .claude/settings.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
{
"enabledPlugins": {
"doc-detective@doc-detective": true
"doc-detective@doc-detective": true,
"frontend-design@claude-code-plugins": true
}
}
18 changes: 18 additions & 0 deletions public/site/icons/sparkles.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion src/lib/site-navigation.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ export interface TopNavLinkItem extends TopNavBaseItem {
export type TopNavItem = TopNavLinkItem;

export const TOP_NAV_ITEMS: TopNavItem[] = [
{ section: 'website', href: '/', label: 'Website', icon: 'website' },
{ section: 'website', href: '/', label: 'Home', icon: 'website' },
{ section: 'docs', href: '/docs', label: 'Docs', icon: 'docs' },
{ section: 'blog', href: '/blog', label: 'Blog', icon: 'blog' },
{ section: 'changelog', href: '/changelog', label: 'Changelog', icon: 'changelog' },
Expand Down
4 changes: 2 additions & 2 deletions src/lib/website-navigation.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ export interface WebsiteNavItem {
id: WebsitePageId;
href: string;
label: string;
icon: 'home' | 'video' | 'pricing' | 'meet';
icon: 'sparkles' | 'video' | 'pricing' | 'meet';
}

interface WebsiteSidebarLink {
Expand All @@ -14,7 +14,7 @@ interface WebsiteSidebarLink {
}

export const WEBSITE_NAV_ITEMS: WebsiteNavItem[] = [
{ id: 'home', href: '/', label: 'Home', icon: 'home' },
{ id: 'home', href: '/', label: 'Overview', icon: 'sparkles' },
{ id: 'demo', href: '/demo', label: 'Demo', icon: 'video' },
{ id: 'pricing', href: '/pricing', label: 'Pricing', icon: 'pricing' },
{ id: 'meet', href: '/meet', label: 'Meet', icon: 'meet' },
Expand Down
4 changes: 2 additions & 2 deletions src/styles/custom.css
Original file line number Diff line number Diff line change
Expand Up @@ -369,8 +369,8 @@ starlight-theme-select {
opacity: 1;
}

.sidebar-content a[data-site-icon='home']::before {
mask-image: url('/site/icons/home.svg');
.sidebar-content a[data-site-icon='sparkles']::before {
mask-image: url('/site/icons/sparkles.svg');
}

.sidebar-content a[data-site-icon='video']::before {
Expand Down
24 changes: 12 additions & 12 deletions tests/smoke/smoke.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -114,14 +114,14 @@ test('primary nav keeps canonical routes with free tools tab', async () => {
const html = await response.text();
const nav = getPrimaryNav(html);

assertLink(nav, '/', 'Website');
assertLink(nav, '/', 'Home');
assertLink(nav, '/docs', 'Docs');
assertLink(nav, '/blog', 'Blog');
assertLink(nav, '/changelog', 'Changelog');
assertLink(nav, '/free-tools', 'Free tools');
assertLink(nav, 'https://app.gopromptless.ai', 'Sign in');

assertLabelOrder(nav, ['Website', 'Docs', 'Blog', 'Changelog', 'Free tools', 'Sign in']);
assertLabelOrder(nav, ['Home', 'Docs', 'Blog', 'Changelog', 'Free tools', 'Sign in']);
assert.doesNotMatch(nav, /href="\/blog\/all"/);
assert.doesNotMatch(nav, /href="\/changelog\/all"/);
});
Expand All @@ -138,52 +138,52 @@ test('website/docs/blog/changelog/free tools active state is correct', async ()
const freeToolsToolHtml = await (await fetch(`${preview.baseUrl}/free-tools/broken-link-report`)).text();

const websiteNav = getPrimaryNav(websiteHtml);
assertActiveLink(websiteNav, '/', 'Website');
assertActiveLink(websiteNav, '/', 'Home');
assertInactiveLink(websiteNav, '/docs', 'Docs');
assertInactiveLink(websiteNav, '/blog', 'Blog');
assertInactiveLink(websiteNav, '/changelog', 'Changelog');
assertInactiveLink(websiteNav, '/free-tools', 'Free tools');

const demoNav = getPrimaryNav(websiteDemoHtml);
assertActiveLink(demoNav, '/', 'Website');
assertActiveLink(demoNav, '/', 'Home');

const meetNav = getPrimaryNav(websiteMeetHtml);
assertActiveLink(meetNav, '/', 'Website');
assertActiveLink(meetNav, '/', 'Home');

const pricingNav = getPrimaryNav(websitePricingHtml);
assertActiveLink(pricingNav, '/', 'Website');
assertActiveLink(pricingNav, '/', 'Home');

const docsNav = getPrimaryNav(docsHtml);
assertActiveLink(docsNav, '/docs', 'Docs');
assertInactiveLink(docsNav, '/', 'Website');
assertInactiveLink(docsNav, '/', 'Home');
assertInactiveLink(docsNav, '/blog', 'Blog');
assertInactiveLink(docsNav, '/changelog', 'Changelog');
assertInactiveLink(docsNav, '/free-tools', 'Free tools');

const blogNav = getPrimaryNav(blogHtml);
assertActiveLink(blogNav, '/blog', 'Blog');
assertInactiveLink(blogNav, '/', 'Website');
assertInactiveLink(blogNav, '/', 'Home');
assertInactiveLink(blogNav, '/docs', 'Docs');
assertInactiveLink(blogNav, '/changelog', 'Changelog');
assertInactiveLink(blogNav, '/free-tools', 'Free tools');

const changelogNav = getPrimaryNav(changelogHtml);
assertActiveLink(changelogNav, '/changelog', 'Changelog');
assertInactiveLink(changelogNav, '/', 'Website');
assertInactiveLink(changelogNav, '/', 'Home');
assertInactiveLink(changelogNav, '/docs', 'Docs');
assertInactiveLink(changelogNav, '/blog', 'Blog');
assertInactiveLink(changelogNav, '/free-tools', 'Free tools');

const freeToolsIndexNav = getPrimaryNav(freeToolsIndexHtml);
assertActiveLink(freeToolsIndexNav, '/free-tools', 'Free tools');
assertInactiveLink(freeToolsIndexNav, '/', 'Website');
assertInactiveLink(freeToolsIndexNav, '/', 'Home');
assertInactiveLink(freeToolsIndexNav, '/docs', 'Docs');
assertInactiveLink(freeToolsIndexNav, '/blog', 'Blog');
assertInactiveLink(freeToolsIndexNav, '/changelog', 'Changelog');

const freeToolsToolNav = getPrimaryNav(freeToolsToolHtml);
assertActiveLink(freeToolsToolNav, '/free-tools', 'Free tools');
assertInactiveLink(freeToolsToolNav, '/', 'Website');
assertInactiveLink(freeToolsToolNav, '/', 'Home');
assertInactiveLink(freeToolsToolNav, '/docs', 'Docs');
assertInactiveLink(freeToolsToolNav, '/blog', 'Blog');
assertInactiveLink(freeToolsToolNav, '/changelog', 'Changelog');
Expand Down Expand Up @@ -267,7 +267,7 @@ test('homepage, demo, meet, and pricing render website content', async () => {
assert.match(homeHtml, /Demo/);
assert.match(homeHtml, /Pricing/);
assert.doesNotMatch(homeHtml, /Getting Started/i);
assert.match(homeHtml, /data-site-icon="home"/);
assert.match(homeHtml, /data-site-icon="sparkles"/);
assert.match(homeHtml, /data-site-icon="video"/);
assert.match(homeHtml, /data-site-icon="pricing"/);
assert.match(homeHtml, /data-site-icon="meet"/);
Expand Down