diff --git a/astro-site/package-lock.json b/astro-site/package-lock.json index 4661c50..f376460 100644 --- a/astro-site/package-lock.json +++ b/astro-site/package-lock.json @@ -8,7 +8,7 @@ "name": "heartkit-site", "version": "0.0.0", "dependencies": { - "@ambiqai/helia-ui": "github:AmbiqAI/helia-ui#v0.1.0-alpha.24", + "@ambiqai/helia-ui": "github:AmbiqAI/helia-ui#v0.1.0-alpha.25", "@astrojs/markdown-remark": "^7.3.1", "@astrojs/react": "7.0.0", "@astrojs/starlight": "^0.41.5", @@ -35,8 +35,8 @@ } }, "node_modules/@ambiqai/helia-ui": { - "version": "0.1.0-alpha.24", - "resolved": "git+ssh://git@github.com/AmbiqAI/helia-ui.git#f7158bf0f5f6014371bfc3ac7c28e8c6709d5829", + "version": "0.1.0-alpha.25", + "resolved": "git+ssh://git@github.com/AmbiqAI/helia-ui.git#d4c246dd02356561f42278c71582d65b7c19de11", "license": "BSD-3-Clause", "dependencies": { "@fontsource-variable/roboto": "5.3.0", @@ -427,6 +427,7 @@ "resolved": "https://registry.npmjs.org/@astrojs/markdown-remark/-/markdown-remark-7.3.1.tgz", "integrity": "sha512-QCjsjZQl0+Cgb91+T3Ip9hyUe1r5aLm4udi584rML9YO3syupbAYE+jWpAxYg+z4lFLNUugPrylFxZ+8qFTClg==", "license": "MIT", + "peer": true, "dependencies": { "@astrojs/internal-helpers": "0.11.0", "@astrojs/prism": "4.0.2", @@ -786,6 +787,7 @@ "resolved": "https://registry.npmjs.org/@astrojs/starlight/-/starlight-0.41.11.tgz", "integrity": "sha512-hM95Mbsl4l60SBwaNQA/HTxpOLGfeB5EfR9qY3kr0SsAVKUspCssjO0RVBsLiPAE6EA5xuORcCoz/Q6DTX+MuQ==", "license": "MIT", + "peer": true, "dependencies": { "@astrojs/markdown-satteri": "^0.3.5", "@astrojs/mdx": "^7.0.5", @@ -1180,6 +1182,7 @@ "integrity": "sha512-zLpS5asjEb7lq8jYLq37N6XKaE41DIexlY1rF/z4/tIl3wo13Sqm28fRyfIsKZD+NZ8mM5RoKkpW/rBcuoSZSg==", "devOptional": true, "license": "MIT", + "peer": true, "dependencies": { "@emnapi/wasi-threads": "1.2.3", "tslib": "^2.4.0" @@ -1191,6 +1194,7 @@ "integrity": "sha512-Xz4Tpyki7XyrpbUK1jR1AhdAdaXyhhY4lZ3neLodmhpuWfy2PAQN5B46sAiU4liOXGLkHypn/qU+jvfWSCYYLA==", "devOptional": true, "license": "MIT", + "peer": true, "dependencies": { "tslib": "^2.4.0" } @@ -3162,6 +3166,7 @@ "resolved": "https://registry.npmjs.org/@types/react/-/react-19.3.0.tgz", "integrity": "sha512-N0rFCuH9YoxG9/m61l9MfpJKfmLOVU0em7ipIz6TRgSSkvReLB9vL85GB+yr8Bs5leqpvg96JSwF4ZS1s4viQg==", "license": "MIT", + "peer": true, "dependencies": { "csstype": "^3.2.2" } @@ -3171,6 +3176,7 @@ "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.3.0.tgz", "integrity": "sha512-ZI7bU42mZXXKHn/qNLEw2IrbiINU7X5+vfgdixBHkCNpYWXjKgfQ/P+uyGb5CjOLB9UcnTeg3rylQtV2hym44Q==", "license": "MIT", + "peer": true, "peerDependencies": { "@types/react": "^19.3.0" } @@ -3352,6 +3358,7 @@ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.18.0.tgz", "integrity": "sha512-lGq+9yr1/GuAWaVYIHRjvvySG5/4VfKIvC8EWxStPdcDh/Ka7FG3twP6v4d5BkravUilhIAsG4Qj83t02LWUPQ==", "license": "MIT", + "peer": true, "bin": { "acorn": "bin/acorn" }, @@ -3374,6 +3381,7 @@ "integrity": "sha512-Thbli+OlOj+iMPYFBVBfJ3OmCAnaSyNn4M1vz9T6Gka5Jt9ba/HIR56joy65tY6kx/FCF5VXNB819Y7/GUrBGA==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "fast-deep-equal": "^3.1.3", "fast-uri": "^3.0.1", @@ -3518,6 +3526,7 @@ "resolved": "https://registry.npmjs.org/astro/-/astro-7.3.3.tgz", "integrity": "sha512-NF08hk3edFkVmr9avf9HW/rQyf6NrpbVDyYj2cVN3JfijDhfJYh1ivWVTY5PUd5+rRZn/Vtu4iaeyNlP0Iv6mg==", "license": "MIT", + "peer": true, "dependencies": { "@astrojs/compiler-rs": "^0.4.0", "@astrojs/internal-helpers": "0.11.0", @@ -4208,6 +4217,7 @@ "resolved": "https://registry.npmjs.org/cytoscape/-/cytoscape-3.34.3.tgz", "integrity": "sha512-yfYGhRcGAntq6YBD583j4n0Eg3jIxvWmZtz/5uz9UYkeIStSlMxuUja+ec5j3iBD8nv1rwaOAYMW09tBdkSeaQ==", "license": "MIT", + "peer": true, "engines": { "node": ">=0.10" } @@ -4608,6 +4618,7 @@ "resolved": "https://registry.npmjs.org/d3-selection/-/d3-selection-3.0.0.tgz", "integrity": "sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==", "license": "ISC", + "peer": true, "engines": { "node": ">=12" } @@ -4995,6 +5006,7 @@ "integrity": "sha512-HKVLS8dvII+xoKW9kmqxbRKrnWEXfJJr/FZhhJmiqIB0e053QNYFqOBouTMO/k5sID4MvCiUCvv8b9M4h32wIA==", "hasInstallScript": true, "license": "MIT", + "peer": true, "bin": { "esbuild": "bin/esbuild" }, @@ -8001,6 +8013,7 @@ "integrity": "sha512-+7ziBLidS4NaNCdt57SUDT+wYmmd5fmiQejUic/kb+YsYSCPyOOE9sebzMjNmQrsnNpDJqd4WHvV/8lfKfUDUg==", "devOptional": true, "license": "Apache-2.0", + "peer": true, "dependencies": { "playwright-core": "1.63.0" }, @@ -8059,6 +8072,7 @@ } ], "license": "MIT", + "peer": true, "dependencies": { "nanoid": "^3.3.18", "picocolors": "^1.1.1", @@ -8112,6 +8126,7 @@ "integrity": "sha512-Z/CJHIkdujO/OtN7nXUii0Rf3VT5SRuhjBA82Xvu2XhBUgX3nhP67T0LHceBdQLex7OOFGTox+Q5Yg8Jk2Qivg==", "dev": true, "license": "MIT", + "peer": true, "bin": { "prettier": "bin/prettier.cjs" }, @@ -8161,6 +8176,7 @@ "resolved": "https://registry.npmjs.org/react/-/react-19.3.0.tgz", "integrity": "sha512-E8LUcbtBWt20bbl2YoHfx4ZDBdxVTfOKtCZn9cDSJ4l6/nuoApcpIBcj47t2wZoVX8g2ZHuMHbiShgCR1T5Sog==", "license": "MIT", + "peer": true, "engines": { "node": ">=0.10.0" } @@ -8170,6 +8186,7 @@ "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.3.0.tgz", "integrity": "sha512-JDk8dgif51OjFoDE70+OT9ICyYr+69HlmihNwp1+Nsfbna3t5sIiCa9ZJktDmQ4/1b/rn26hIAR2uYXDMr5r0Q==", "license": "MIT", + "peer": true, "dependencies": { "scheduler": "^0.28.0" }, @@ -9189,6 +9206,7 @@ "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", "devOptional": true, "license": "Apache-2.0", + "peer": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -9626,6 +9644,7 @@ "resolved": "https://registry.npmjs.org/vite/-/vite-8.3.1.tgz", "integrity": "sha512-/bvH9E9tmCXRGp2uXY3WbOldqpTwFkbha/8ANaEQ6VkxhH60KyqLwgZq6lG2y+4uT55x9+9eUHMpQ7uGnOCKjA==", "license": "MIT", + "peer": true, "dependencies": { "lightningcss": "^1.33.0", "picomatch": "^4.0.7", @@ -10068,6 +10087,7 @@ "integrity": "sha512-3NxN8+78OdzbT7C/WjGsyfPAtJaN3FNDsWxv7Y7mcDsT/oOmgW8BpyQQFFBnvZE3j9Y2Sdz1ULFLezL7Eb2yFw==", "devOptional": true, "license": "ISC", + "peer": true, "bin": { "yaml": "bin.mjs" }, diff --git a/astro-site/package.json b/astro-site/package.json index 181093f..5d7372d 100644 --- a/astro-site/package.json +++ b/astro-site/package.json @@ -21,7 +21,7 @@ "test": "playwright test" }, "dependencies": { - "@ambiqai/helia-ui": "github:AmbiqAI/helia-ui#v0.1.0-alpha.24", + "@ambiqai/helia-ui": "github:AmbiqAI/helia-ui#v0.1.0-alpha.25", "@astrojs/markdown-remark": "^7.3.1", "@astrojs/react": "7.0.0", "@astrojs/starlight": "^0.41.5", diff --git a/astro-site/src/content/docs/index.mdx b/astro-site/src/content/docs/index.mdx index 20e0280..c5d609e 100644 --- a/astro-site/src/content/docs/index.mdx +++ b/astro-site/src/content/docs/index.mdx @@ -1,4 +1,5 @@ --- +tableOfContents: false title: "Turn heart signals into on-device intelligence" description: "AI development kit for heart monitoring on Ambiq devices." hero: diff --git a/astro-site/tests/landing-navigation.spec.ts b/astro-site/tests/landing-navigation.spec.ts new file mode 100644 index 0000000..c384534 --- /dev/null +++ b/astro-site/tests/landing-navigation.spec.ts @@ -0,0 +1,19 @@ +import { test, expect } from '@playwright/test'; + +for (const width of [390, 1280]) { + test(`landing navigation remains reachable without a TOC at ${width}px`, async ({ page }) => { + await page.setViewportSize({ width, height: 900 }); + await page.goto('/heartkit/'); + await expect(page.locator('[data-helia-sidebar-toggle]')).toHaveCount(0); + expect(await page.locator('html').getAttribute('data-has-toc')).toBeNull(); + if (width === 390) { + const dropdown = page.locator('[data-helia-section-dropdown]'); + await expect(dropdown).toBeVisible(); + await dropdown.locator('summary').click(); + await expect(dropdown.getByRole('link', { name: 'HELIA AI DEV Hub' })).toBeVisible(); + await page.keyboard.press('Escape'); + await expect(dropdown).not.toHaveAttribute('open'); + } + expect(await page.evaluate(() => document.documentElement.scrollWidth)).toBeLessThanOrEqual(width); + }); +}