diff --git a/package-lock.json b/package-lock.json index 74f717a..2e0b1b6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,7 +8,7 @@ "name": "@askrjs/website", "version": "0.1.0", "dependencies": { - "@askrjs/askr": "0.0.66", + "@askrjs/askr": "0.0.70", "@askrjs/charts": "0.1.3", "@askrjs/fetch": "0.0.2", "@askrjs/i18n": "0.0.2", @@ -16,7 +16,7 @@ "@askrjs/lucide": "0.0.4", "@askrjs/monaco": "0.0.5", "@askrjs/otel": "0.0.3", - "@askrjs/themes": "0.0.15", + "@askrjs/themes": "0.0.16", "@askrjs/ui": "0.0.17", "@fontsource-variable/domine": "^5.2.8" }, @@ -26,7 +26,7 @@ "@askrjs/node": "0.0.6", "@askrjs/schema": "0.0.3", "@askrjs/server": "0.0.10", - "@askrjs/testing": "0.0.1", + "@askrjs/testing": "0.0.2", "@askrjs/vite": "0.0.7", "@types/node": "^26.1.1", "tsx": "4.23.1", @@ -38,9 +38,9 @@ } }, "node_modules/@askrjs/askr": { - "version": "0.0.66", - "resolved": "https://registry.npmjs.org/@askrjs/askr/-/askr-0.0.66.tgz", - "integrity": "sha512-VxlnoCQp9KEpdpJ3wuGiDAPoLO8bjN0fLmD6Mra6b8XknKYZLfFlkOZ7t5B3ZyEIAcrUW0O6id5cenOyERqeUQ==", + "version": "0.0.70", + "resolved": "https://registry.npmjs.org/@askrjs/askr/-/askr-0.0.70.tgz", + "integrity": "sha512-YyynOeJXy7eE9H4PQnulxYtqT54cHMdXV+4ljulsH5CDrE/Nh90m/Jvnc1QtEGXxXwQZjE94/Gu9mYpWNvOIHg==", "license": "Apache-2.0", "dependencies": { "@askrjs/auth": ">=0.0.1 <0.1.0", @@ -227,9 +227,9 @@ } }, "node_modules/@askrjs/testing": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/@askrjs/testing/-/testing-0.0.1.tgz", - "integrity": "sha512-Nj3YrfaqNUe8mXzSbVn0AOzkycomYp++IPjhLGqDEBLQuGdahGwr3hm5o2f8IuozZHIJTzhSDSZrahOk+2hiIg==", + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/@askrjs/testing/-/testing-0.0.2.tgz", + "integrity": "sha512-Solc9GB85kF4gg5wzwZ5cTkPUA84r32+57ggWEWuso5Z8p+kCr/BnhGX4NZIznJ+LRjHqauDgqr5HrydBceBzQ==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -240,9 +240,9 @@ } }, "node_modules/@askrjs/themes": { - "version": "0.0.15", - "resolved": "https://registry.npmjs.org/@askrjs/themes/-/themes-0.0.15.tgz", - "integrity": "sha512-dZQy7b4KHVEmLIpS6bNGXs6o7xkonfrldy8iwpCPqVtd+X45/x1+Cda1g1XBioUBXZScR//iD/g/jrEIC7udNw==", + "version": "0.0.16", + "resolved": "https://registry.npmjs.org/@askrjs/themes/-/themes-0.0.16.tgz", + "integrity": "sha512-xJ/JFY33GDwqecBYZ4uqje+ifkajhK39Rz8tyWcDhF+6hPDdZkjyzVH4fSSqLwDrHR/ErYl/1cJN9NLm2hUMww==", "license": "Apache-2.0", "engines": { "node": ">=18" diff --git a/package.json b/package.json index 8a9be93..2d8e134 100644 --- a/package.json +++ b/package.json @@ -25,7 +25,7 @@ "preview": "vp preview --outDir dist" }, "dependencies": { - "@askrjs/askr": "0.0.66", + "@askrjs/askr": "0.0.70", "@askrjs/charts": "0.1.3", "@askrjs/fetch": "0.0.2", "@askrjs/i18n": "0.0.2", @@ -33,7 +33,7 @@ "@askrjs/lucide": "0.0.4", "@askrjs/monaco": "0.0.5", "@askrjs/otel": "0.0.3", - "@askrjs/themes": "0.0.15", + "@askrjs/themes": "0.0.16", "@askrjs/ui": "0.0.17", "@fontsource-variable/domine": "^5.2.8" }, @@ -43,7 +43,7 @@ "@askrjs/node": "0.0.6", "@askrjs/schema": "0.0.3", "@askrjs/server": "0.0.10", - "@askrjs/testing": "0.0.1", + "@askrjs/testing": "0.0.2", "@askrjs/vite": "0.0.7", "@types/node": "^26.1.1", "tsx": "4.23.1", diff --git a/src/pages/docs/_layout.tsx b/src/pages/docs/_layout.tsx index 9740e69..5cf40a2 100644 --- a/src/pages/docs/_layout.tsx +++ b/src/pages/docs/_layout.tsx @@ -1,6 +1,7 @@ import type { Props } from '@askrjs/askr'; import { Link, currentRoute } from '@askrjs/askr/router'; import { + Container, SidebarInset, Sidebar, SidebarContent, @@ -90,7 +91,7 @@ function TableOfContents() { export function DocsLayout({ children }: Props) { return ( -
+ @@ -106,7 +107,7 @@ export function DocsLayout({ children }: Props) {
- +
); } diff --git a/src/pages/docs/api-manifest.ts b/src/pages/docs/api-manifest.ts index 4c25f43..2f412ff 100644 --- a/src/pages/docs/api-manifest.ts +++ b/src/pages/docs/api-manifest.ts @@ -2,7 +2,7 @@ export const apiManifest = [ { packageName: '@askrjs/askr', - version: '0.0.66', + version: '0.0.70', subpath: '.', importName: '@askrjs/askr', slug: 'root', @@ -10,7 +10,7 @@ export const apiManifest = [ }, { packageName: '@askrjs/askr', - version: '0.0.66', + version: '0.0.70', subpath: './boot', importName: '@askrjs/askr/boot', slug: 'boot', @@ -18,7 +18,7 @@ export const apiManifest = [ }, { packageName: '@askrjs/askr', - version: '0.0.66', + version: '0.0.70', subpath: './components', importName: '@askrjs/askr/components', slug: 'components', @@ -26,7 +26,7 @@ export const apiManifest = [ }, { packageName: '@askrjs/askr', - version: '0.0.66', + version: '0.0.70', subpath: './control', importName: '@askrjs/askr/control', slug: 'control', @@ -34,7 +34,7 @@ export const apiManifest = [ }, { packageName: '@askrjs/askr', - version: '0.0.66', + version: '0.0.70', subpath: './foundations', importName: '@askrjs/askr/foundations', slug: 'foundations', @@ -42,7 +42,7 @@ export const apiManifest = [ }, { packageName: '@askrjs/askr', - version: '0.0.66', + version: '0.0.70', subpath: './foundations/utilities', importName: '@askrjs/askr/foundations/utilities', slug: 'foundations--utilities', @@ -50,7 +50,7 @@ export const apiManifest = [ }, { packageName: '@askrjs/askr', - version: '0.0.66', + version: '0.0.70', subpath: './foundations/interactions', importName: '@askrjs/askr/foundations/interactions', slug: 'foundations--interactions', @@ -58,7 +58,7 @@ export const apiManifest = [ }, { packageName: '@askrjs/askr', - version: '0.0.66', + version: '0.0.70', subpath: './foundations/state', importName: '@askrjs/askr/foundations/state', slug: 'foundations--state', @@ -66,7 +66,7 @@ export const apiManifest = [ }, { packageName: '@askrjs/askr', - version: '0.0.66', + version: '0.0.70', subpath: './foundations/structures', importName: '@askrjs/askr/foundations/structures', slug: 'foundations--structures', @@ -74,7 +74,7 @@ export const apiManifest = [ }, { packageName: '@askrjs/askr', - version: '0.0.66', + version: '0.0.70', subpath: './foundations/icon', importName: '@askrjs/askr/foundations/icon', slug: 'foundations--icon', @@ -82,7 +82,7 @@ export const apiManifest = [ }, { packageName: '@askrjs/askr', - version: '0.0.66', + version: '0.0.70', subpath: './resources', importName: '@askrjs/askr/resources', slug: 'resources', @@ -90,7 +90,7 @@ export const apiManifest = [ }, { packageName: '@askrjs/askr', - version: '0.0.66', + version: '0.0.70', subpath: './data', importName: '@askrjs/askr/data', slug: 'data', @@ -98,7 +98,7 @@ export const apiManifest = [ }, { packageName: '@askrjs/askr', - version: '0.0.66', + version: '0.0.70', subpath: './testing', importName: '@askrjs/askr/testing', slug: 'testing', @@ -106,7 +106,7 @@ export const apiManifest = [ }, { packageName: '@askrjs/askr', - version: '0.0.66', + version: '0.0.70', subpath: './fx', importName: '@askrjs/askr/fx', slug: 'fx', @@ -114,7 +114,7 @@ export const apiManifest = [ }, { packageName: '@askrjs/askr', - version: '0.0.66', + version: '0.0.70', subpath: './router', importName: '@askrjs/askr/router', slug: 'router', @@ -122,7 +122,7 @@ export const apiManifest = [ }, { packageName: '@askrjs/askr', - version: '0.0.66', + version: '0.0.70', subpath: './actions', importName: '@askrjs/askr/actions', slug: 'actions', @@ -130,7 +130,7 @@ export const apiManifest = [ }, { packageName: '@askrjs/askr', - version: '0.0.66', + version: '0.0.70', subpath: './ssr', importName: '@askrjs/askr/ssr', slug: 'ssr', @@ -138,7 +138,7 @@ export const apiManifest = [ }, { packageName: '@askrjs/askr', - version: '0.0.66', + version: '0.0.70', subpath: './ssg', importName: '@askrjs/askr/ssg', slug: 'ssg', @@ -146,7 +146,7 @@ export const apiManifest = [ }, { packageName: '@askrjs/askr', - version: '0.0.66', + version: '0.0.70', subpath: './jsx-runtime', importName: '@askrjs/askr/jsx-runtime', slug: 'jsx-runtime', @@ -154,7 +154,7 @@ export const apiManifest = [ }, { packageName: '@askrjs/askr', - version: '0.0.66', + version: '0.0.70', subpath: './jsx-dev-runtime', importName: '@askrjs/askr/jsx-dev-runtime', slug: 'jsx-dev-runtime', @@ -378,7 +378,7 @@ export const apiManifest = [ }, { packageName: '@askrjs/testing', - version: '0.0.1', + version: '0.0.2', subpath: '.', importName: '@askrjs/testing', slug: 'root', @@ -386,7 +386,7 @@ export const apiManifest = [ }, { packageName: '@askrjs/themes', - version: '0.0.15', + version: '0.0.16', subpath: '.', importName: '@askrjs/themes', slug: 'root', @@ -394,7 +394,7 @@ export const apiManifest = [ }, { packageName: '@askrjs/themes', - version: '0.0.15', + version: '0.0.16', subpath: './default', importName: '@askrjs/themes/default', slug: 'default', @@ -402,7 +402,7 @@ export const apiManifest = [ }, { packageName: '@askrjs/themes', - version: '0.0.15', + version: '0.0.16', subpath: './presets', importName: '@askrjs/themes/presets', slug: 'presets', @@ -410,7 +410,7 @@ export const apiManifest = [ }, { packageName: '@askrjs/themes', - version: '0.0.15', + version: '0.0.16', subpath: './components', importName: '@askrjs/themes/components', slug: 'components', @@ -418,7 +418,7 @@ export const apiManifest = [ }, { packageName: '@askrjs/themes', - version: '0.0.15', + version: '0.0.16', subpath: './theme', importName: '@askrjs/themes/theme', slug: 'theme', @@ -426,7 +426,7 @@ export const apiManifest = [ }, { packageName: '@askrjs/themes', - version: '0.0.15', + version: '0.0.16', subpath: './accordion', importName: '@askrjs/themes/accordion', slug: 'accordion', @@ -434,7 +434,7 @@ export const apiManifest = [ }, { packageName: '@askrjs/themes', - version: '0.0.15', + version: '0.0.16', subpath: './alert', importName: '@askrjs/themes/alert', slug: 'alert', @@ -442,7 +442,7 @@ export const apiManifest = [ }, { packageName: '@askrjs/themes', - version: '0.0.15', + version: '0.0.16', subpath: './alert-dialog', importName: '@askrjs/themes/alert-dialog', slug: 'alert-dialog', @@ -450,7 +450,7 @@ export const apiManifest = [ }, { packageName: '@askrjs/themes', - version: '0.0.15', + version: '0.0.16', subpath: './aspect-ratio', importName: '@askrjs/themes/aspect-ratio', slug: 'aspect-ratio', @@ -458,7 +458,7 @@ export const apiManifest = [ }, { packageName: '@askrjs/themes', - version: '0.0.15', + version: '0.0.16', subpath: './avatar', importName: '@askrjs/themes/avatar', slug: 'avatar', @@ -466,7 +466,7 @@ export const apiManifest = [ }, { packageName: '@askrjs/themes', - version: '0.0.15', + version: '0.0.16', subpath: './badge', importName: '@askrjs/themes/badge', slug: 'badge', @@ -474,7 +474,7 @@ export const apiManifest = [ }, { packageName: '@askrjs/themes', - version: '0.0.15', + version: '0.0.16', subpath: './breadcrumb', importName: '@askrjs/themes/breadcrumb', slug: 'breadcrumb', @@ -482,7 +482,7 @@ export const apiManifest = [ }, { packageName: '@askrjs/themes', - version: '0.0.15', + version: '0.0.16', subpath: './button', importName: '@askrjs/themes/button', slug: 'button', @@ -490,7 +490,7 @@ export const apiManifest = [ }, { packageName: '@askrjs/themes', - version: '0.0.15', + version: '0.0.16', subpath: './button-group', importName: '@askrjs/themes/button-group', slug: 'button-group', @@ -498,7 +498,7 @@ export const apiManifest = [ }, { packageName: '@askrjs/themes', - version: '0.0.15', + version: '0.0.16', subpath: './calendar', importName: '@askrjs/themes/calendar', slug: 'calendar', @@ -506,7 +506,7 @@ export const apiManifest = [ }, { packageName: '@askrjs/themes', - version: '0.0.15', + version: '0.0.16', subpath: './card', importName: '@askrjs/themes/card', slug: 'card', @@ -514,7 +514,7 @@ export const apiManifest = [ }, { packageName: '@askrjs/themes', - version: '0.0.15', + version: '0.0.16', subpath: './carousel', importName: '@askrjs/themes/carousel', slug: 'carousel', @@ -522,7 +522,7 @@ export const apiManifest = [ }, { packageName: '@askrjs/themes', - version: '0.0.15', + version: '0.0.16', subpath: './checkbox', importName: '@askrjs/themes/checkbox', slug: 'checkbox', @@ -530,7 +530,7 @@ export const apiManifest = [ }, { packageName: '@askrjs/themes', - version: '0.0.15', + version: '0.0.16', subpath: './collapsible', importName: '@askrjs/themes/collapsible', slug: 'collapsible', @@ -538,7 +538,7 @@ export const apiManifest = [ }, { packageName: '@askrjs/themes', - version: '0.0.15', + version: '0.0.16', subpath: './combobox', importName: '@askrjs/themes/combobox', slug: 'combobox', @@ -546,7 +546,7 @@ export const apiManifest = [ }, { packageName: '@askrjs/themes', - version: '0.0.15', + version: '0.0.16', subpath: './command', importName: '@askrjs/themes/command', slug: 'command', @@ -554,7 +554,7 @@ export const apiManifest = [ }, { packageName: '@askrjs/themes', - version: '0.0.15', + version: '0.0.16', subpath: './context-menu', importName: '@askrjs/themes/context-menu', slug: 'context-menu', @@ -562,7 +562,7 @@ export const apiManifest = [ }, { packageName: '@askrjs/themes', - version: '0.0.15', + version: '0.0.16', subpath: './data-table', importName: '@askrjs/themes/data-table', slug: 'data-table', @@ -570,7 +570,7 @@ export const apiManifest = [ }, { packageName: '@askrjs/themes', - version: '0.0.15', + version: '0.0.16', subpath: './date-picker', importName: '@askrjs/themes/date-picker', slug: 'date-picker', @@ -578,7 +578,7 @@ export const apiManifest = [ }, { packageName: '@askrjs/themes', - version: '0.0.15', + version: '0.0.16', subpath: './dialog', importName: '@askrjs/themes/dialog', slug: 'dialog', @@ -586,7 +586,7 @@ export const apiManifest = [ }, { packageName: '@askrjs/themes', - version: '0.0.15', + version: '0.0.16', subpath: './direction', importName: '@askrjs/themes/direction', slug: 'direction', @@ -594,7 +594,7 @@ export const apiManifest = [ }, { packageName: '@askrjs/themes', - version: '0.0.15', + version: '0.0.16', subpath: './drawer', importName: '@askrjs/themes/drawer', slug: 'drawer', @@ -602,7 +602,7 @@ export const apiManifest = [ }, { packageName: '@askrjs/themes', - version: '0.0.15', + version: '0.0.16', subpath: './dropdown-menu', importName: '@askrjs/themes/dropdown-menu', slug: 'dropdown-menu', @@ -610,7 +610,7 @@ export const apiManifest = [ }, { packageName: '@askrjs/themes', - version: '0.0.15', + version: '0.0.16', subpath: './empty', importName: '@askrjs/themes/empty', slug: 'empty', @@ -618,7 +618,7 @@ export const apiManifest = [ }, { packageName: '@askrjs/themes', - version: '0.0.15', + version: '0.0.16', subpath: './field', importName: '@askrjs/themes/field', slug: 'field', @@ -626,7 +626,7 @@ export const apiManifest = [ }, { packageName: '@askrjs/themes', - version: '0.0.15', + version: '0.0.16', subpath: './form', importName: '@askrjs/themes/form', slug: 'form', @@ -634,7 +634,7 @@ export const apiManifest = [ }, { packageName: '@askrjs/themes', - version: '0.0.15', + version: '0.0.16', subpath: './hover-card', importName: '@askrjs/themes/hover-card', slug: 'hover-card', @@ -642,7 +642,7 @@ export const apiManifest = [ }, { packageName: '@askrjs/themes', - version: '0.0.15', + version: '0.0.16', subpath: './input', importName: '@askrjs/themes/input', slug: 'input', @@ -650,7 +650,7 @@ export const apiManifest = [ }, { packageName: '@askrjs/themes', - version: '0.0.15', + version: '0.0.16', subpath: './input-group', importName: '@askrjs/themes/input-group', slug: 'input-group', @@ -658,7 +658,7 @@ export const apiManifest = [ }, { packageName: '@askrjs/themes', - version: '0.0.15', + version: '0.0.16', subpath: './input-otp', importName: '@askrjs/themes/input-otp', slug: 'input-otp', @@ -666,7 +666,7 @@ export const apiManifest = [ }, { packageName: '@askrjs/themes', - version: '0.0.15', + version: '0.0.16', subpath: './item', importName: '@askrjs/themes/item', slug: 'item', @@ -674,7 +674,7 @@ export const apiManifest = [ }, { packageName: '@askrjs/themes', - version: '0.0.15', + version: '0.0.16', subpath: './kbd', importName: '@askrjs/themes/kbd', slug: 'kbd', @@ -682,7 +682,7 @@ export const apiManifest = [ }, { packageName: '@askrjs/themes', - version: '0.0.15', + version: '0.0.16', subpath: './label', importName: '@askrjs/themes/label', slug: 'label', @@ -690,7 +690,7 @@ export const apiManifest = [ }, { packageName: '@askrjs/themes', - version: '0.0.15', + version: '0.0.16', subpath: './menubar', importName: '@askrjs/themes/menubar', slug: 'menubar', @@ -698,7 +698,7 @@ export const apiManifest = [ }, { packageName: '@askrjs/themes', - version: '0.0.15', + version: '0.0.16', subpath: './native-select', importName: '@askrjs/themes/native-select', slug: 'native-select', @@ -706,7 +706,7 @@ export const apiManifest = [ }, { packageName: '@askrjs/themes', - version: '0.0.15', + version: '0.0.16', subpath: './navigation-menu', importName: '@askrjs/themes/navigation-menu', slug: 'navigation-menu', @@ -714,7 +714,7 @@ export const apiManifest = [ }, { packageName: '@askrjs/themes', - version: '0.0.15', + version: '0.0.16', subpath: './pagination', importName: '@askrjs/themes/pagination', slug: 'pagination', @@ -722,7 +722,7 @@ export const apiManifest = [ }, { packageName: '@askrjs/themes', - version: '0.0.15', + version: '0.0.16', subpath: './popover', importName: '@askrjs/themes/popover', slug: 'popover', @@ -730,7 +730,7 @@ export const apiManifest = [ }, { packageName: '@askrjs/themes', - version: '0.0.15', + version: '0.0.16', subpath: './progress', importName: '@askrjs/themes/progress', slug: 'progress', @@ -738,7 +738,7 @@ export const apiManifest = [ }, { packageName: '@askrjs/themes', - version: '0.0.15', + version: '0.0.16', subpath: './radio-group', importName: '@askrjs/themes/radio-group', slug: 'radio-group', @@ -746,7 +746,7 @@ export const apiManifest = [ }, { packageName: '@askrjs/themes', - version: '0.0.15', + version: '0.0.16', subpath: './resizable', importName: '@askrjs/themes/resizable', slug: 'resizable', @@ -754,7 +754,7 @@ export const apiManifest = [ }, { packageName: '@askrjs/themes', - version: '0.0.15', + version: '0.0.16', subpath: './scroll-area', importName: '@askrjs/themes/scroll-area', slug: 'scroll-area', @@ -762,7 +762,7 @@ export const apiManifest = [ }, { packageName: '@askrjs/themes', - version: '0.0.15', + version: '0.0.16', subpath: './select', importName: '@askrjs/themes/select', slug: 'select', @@ -770,7 +770,7 @@ export const apiManifest = [ }, { packageName: '@askrjs/themes', - version: '0.0.15', + version: '0.0.16', subpath: './separator', importName: '@askrjs/themes/separator', slug: 'separator', @@ -778,7 +778,7 @@ export const apiManifest = [ }, { packageName: '@askrjs/themes', - version: '0.0.15', + version: '0.0.16', subpath: './sheet', importName: '@askrjs/themes/sheet', slug: 'sheet', @@ -786,7 +786,7 @@ export const apiManifest = [ }, { packageName: '@askrjs/themes', - version: '0.0.15', + version: '0.0.16', subpath: './sidebar', importName: '@askrjs/themes/sidebar', slug: 'sidebar', @@ -794,7 +794,7 @@ export const apiManifest = [ }, { packageName: '@askrjs/themes', - version: '0.0.15', + version: '0.0.16', subpath: './skeleton', importName: '@askrjs/themes/skeleton', slug: 'skeleton', @@ -802,7 +802,7 @@ export const apiManifest = [ }, { packageName: '@askrjs/themes', - version: '0.0.15', + version: '0.0.16', subpath: './slider', importName: '@askrjs/themes/slider', slug: 'slider', @@ -810,7 +810,7 @@ export const apiManifest = [ }, { packageName: '@askrjs/themes', - version: '0.0.15', + version: '0.0.16', subpath: './sonner', importName: '@askrjs/themes/sonner', slug: 'sonner', @@ -818,7 +818,7 @@ export const apiManifest = [ }, { packageName: '@askrjs/themes', - version: '0.0.15', + version: '0.0.16', subpath: './spinner', importName: '@askrjs/themes/spinner', slug: 'spinner', @@ -826,7 +826,7 @@ export const apiManifest = [ }, { packageName: '@askrjs/themes', - version: '0.0.15', + version: '0.0.16', subpath: './switch', importName: '@askrjs/themes/switch', slug: 'switch', @@ -834,7 +834,7 @@ export const apiManifest = [ }, { packageName: '@askrjs/themes', - version: '0.0.15', + version: '0.0.16', subpath: './table', importName: '@askrjs/themes/table', slug: 'table', @@ -842,7 +842,7 @@ export const apiManifest = [ }, { packageName: '@askrjs/themes', - version: '0.0.15', + version: '0.0.16', subpath: './tabs', importName: '@askrjs/themes/tabs', slug: 'tabs', @@ -850,7 +850,7 @@ export const apiManifest = [ }, { packageName: '@askrjs/themes', - version: '0.0.15', + version: '0.0.16', subpath: './textarea', importName: '@askrjs/themes/textarea', slug: 'textarea', @@ -858,7 +858,7 @@ export const apiManifest = [ }, { packageName: '@askrjs/themes', - version: '0.0.15', + version: '0.0.16', subpath: './toast', importName: '@askrjs/themes/toast', slug: 'toast', @@ -866,7 +866,7 @@ export const apiManifest = [ }, { packageName: '@askrjs/themes', - version: '0.0.15', + version: '0.0.16', subpath: './toggle', importName: '@askrjs/themes/toggle', slug: 'toggle', @@ -874,7 +874,7 @@ export const apiManifest = [ }, { packageName: '@askrjs/themes', - version: '0.0.15', + version: '0.0.16', subpath: './toggle-group', importName: '@askrjs/themes/toggle-group', slug: 'toggle-group', @@ -882,7 +882,7 @@ export const apiManifest = [ }, { packageName: '@askrjs/themes', - version: '0.0.15', + version: '0.0.16', subpath: './tooltip', importName: '@askrjs/themes/tooltip', slug: 'tooltip', @@ -890,7 +890,7 @@ export const apiManifest = [ }, { packageName: '@askrjs/themes', - version: '0.0.15', + version: '0.0.16', subpath: './typography', importName: '@askrjs/themes/typography', slug: 'typography', @@ -898,7 +898,7 @@ export const apiManifest = [ }, { packageName: '@askrjs/themes', - version: '0.0.15', + version: '0.0.16', subpath: './default/tokens.css', importName: '@askrjs/themes/default/tokens.css', slug: 'default--tokens.css', diff --git a/src/pages/docs/package-versions.ts b/src/pages/docs/package-versions.ts index 7909860..1137e85 100644 --- a/src/pages/docs/package-versions.ts +++ b/src/pages/docs/package-versions.ts @@ -1,6 +1,6 @@ // Generated from installed @askrjs package manifests. Do not edit. export const packageVersions = { - askr: '0.0.66', + askr: '0.0.70', auth: '0.0.7', charts: '0.1.3', cli: '0.0.10', @@ -13,8 +13,8 @@ export const packageVersions = { otel: '0.0.3', schema: '0.0.3', server: '0.0.10', - testing: '0.0.1', - themes: '0.0.15', + testing: '0.0.2', + themes: '0.0.16', ui: '0.0.17', vite: '0.0.7', } as const; diff --git a/src/pages/docs/search.tsx b/src/pages/docs/search.tsx index 8aca158..5232cdf 100644 --- a/src/pages/docs/search.tsx +++ b/src/pages/docs/search.tsx @@ -1,9 +1,13 @@ import { state } from '@askrjs/askr'; import { Link } from '@askrjs/askr/router'; +import { on } from '@askrjs/askr/resources'; import { SearchIcon, XIcon } from '@askrjs/lucide'; +import { Button } from '@askrjs/themes/components'; import type { DocsSearchRecord } from './types'; -const adoptedSearchRoots = new WeakSet(); +function focusSearchInput() { + document.querySelector('[data-docs-search-input]')?.focus(); +} export function DocsSearch() { const [open, setOpen] = state(false); @@ -11,28 +15,17 @@ export function DocsSearch() { const [loading, setLoading] = state(false); const [results, setResults] = state([]); const [error, setError] = state(false); - let searchGeneration = 0; - - const focusInput = (element: HTMLElement | null) => { - window.setTimeout( - () => - element - ?.querySelector('[data-docs-search-input]') - ?.focus(), - 0 - ); - }; - const openSearch = (element?: HTMLElement | null) => { + const openSearch = () => { setOpen(true); - focusInput(element ?? null); + window.setTimeout(focusSearchInput, 0); }; - const runSearch = async (value: string) => { - const generation = ++searchGeneration; - setQuery(value); + const runSearch = async (value: string | undefined) => { + const nextValue = value ?? ''; + setQuery(nextValue); setError(false); - if (!value.trim()) { + if (!nextValue.trim()) { setResults([]); setLoading(false); return; @@ -40,124 +33,131 @@ export function DocsSearch() { setLoading(true); try { const { searchDocs } = await import('./search-index'); - if (generation !== searchGeneration) return; - setResults(searchDocs(value)); + if ((query() ?? '') !== nextValue || !open()) return; + setResults(searchDocs(nextValue)); } catch { - if (generation !== searchGeneration) return; + if ((query() ?? '') !== nextValue || !open()) return; setResults([]); setError(true); } finally { - if (generation === searchGeneration) setLoading(false); + if ((query() ?? '') === nextValue) setLoading(false); } }; const close = () => { - searchGeneration += 1; setOpen(false); setQuery(''); setResults([]); setLoading(false); setError(false); }; + const queryValue = query() ?? ''; + + // The resource listener follows the component lifecycle, unlike a raw + // window listener installed from a ref callback. + if (typeof window !== 'undefined') { + on(window, 'keydown', (rawEvent: Event) => { + const event = rawEvent as KeyboardEvent; + const target = event.target; + const typing = + target instanceof HTMLInputElement || + target instanceof HTMLTextAreaElement; + if ( + (event.key === 'k' && (event.metaKey || event.ctrlKey)) || + (event.key === '/' && !typing) + ) { + event.preventDefault(); + openSearch(); + } + if (event.key === 'Escape' && open()) close(); + }); + } + return ( - ); } diff --git a/src/styles.css b/src/styles.css index 950b524..a2a7643 100644 --- a/src/styles.css +++ b/src/styles.css @@ -23,6 +23,13 @@ body { } .site-shell { + --ak-font-family-quote: 'Domine Variable', serif; + --docs-color-text-secondary: color-mix( + in oklch, + var(--ak-color-text-muted) 76%, + var(--ak-color-text) + ); + display: flex; min-height: 100vh; flex-direction: column; @@ -51,12 +58,7 @@ body { .site-header .docs-search { width: min(18rem, 38vw); -} - -.site-shell[data-layout='marketing'] { - --ak-font-family-quote: 'Domine Variable', serif; - min-height: 100vh; - background: var(--ak-color-bg); + margin: 0; } .site-brand__mark { @@ -853,9 +855,7 @@ html[data-theme='dark'] .github-mark img.github-mark__dark { } .docs-channel { - width: min(100%, 80rem); - margin-inline: auto; - padding-inline: var(--ak-space-lg); + padding-inline: 0; } .docs-scope { @@ -1274,36 +1274,24 @@ html[data-theme='dark'] .github-mark img.github-mark__dark { } .docs-search { - flex: none; - margin-top: 1rem; + min-width: 0; } .docs-search__trigger { - display: flex; - width: 100%; - min-height: 2.45rem; - align-items: center; - gap: 0.55rem; - padding: 0.45rem 0.65rem; - border: 1px solid var(--ak-color-border); - border-radius: 0.6rem; - background: var(--ak-color-bg); - color: var(--docs-color-text-secondary); - cursor: pointer; - font: inherit; - font-size: 0.78rem; + min-width: 0; + justify-content: flex-start; } .docs-search__trigger span { + min-width: 0; flex: 1; + overflow: hidden; text-align: left; + text-overflow: ellipsis; + white-space: nowrap; } .docs-search__trigger kbd { - padding: 0.16rem 0.32rem; - border: 1px solid var(--ak-color-border); - border-radius: 0.3rem; - font-family: var(--ak-font-family-mono); font-size: 0.65rem; } @@ -1319,6 +1307,10 @@ html[data-theme='dark'] .github-mark img.github-mark__dark { background: color-mix(in srgb, #000 48%, transparent); } +.docs-search__backdrop--closed { + display: none; +} + .docs-search__dialog { width: min(42rem, 100%); overflow: hidden; @@ -1346,15 +1338,6 @@ html[data-theme='dark'] .github-mark img.github-mark__dark { font: inherit; } -.docs-search__input button { - display: grid; - padding: 0.3rem; - border: 0; - background: transparent; - color: var(--docs-color-text-secondary); - cursor: pointer; -} - .docs-search__results { max-height: min(60vh, 32rem); padding: 0.65rem;