diff --git a/README.md b/README.md index 78fb191..1047f57 100644 --- a/README.md +++ b/README.md @@ -11,7 +11,7 @@ router: apps pass their own link component in through `UiProvider`. Install a release by URL. No registry account or token is needed: ```sh -npm install --save-exact https://github.com/project-graphite/graphite-ui/releases/download/v0.4.1/project-graphite-ui-0.4.1.tgz +npm install --save-exact https://github.com/project-graphite/graphite-ui/releases/download/v0.4.2/project-graphite-ui-0.4.2.tgz ``` Load the theme after Tailwind. `@source` lets Tailwind see the classes the components use, and its diff --git a/package-lock.json b/package-lock.json index dad1674..45a6d72 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@project-graphite/ui", - "version": "0.4.1", + "version": "0.4.2", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@project-graphite/ui", - "version": "0.4.1", + "version": "0.4.2", "license": "MIT", "devDependencies": { "@tailwindcss/vite": "4.3.3", diff --git a/package.json b/package.json index 1376fed..816a940 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@project-graphite/ui", - "version": "0.4.1", + "version": "0.4.2", "description": "Project Graphite design tokens, theme and React components.", "license": "MIT", "repository": { diff --git a/preview/main.tsx b/preview/main.tsx index 0ad18f7..93c1bc3 100644 --- a/preview/main.tsx +++ b/preview/main.tsx @@ -263,6 +263,10 @@ function Preview() {
It opens with the same chevron as the rest of the interface.
+A notice explains something calmly.
Something went wrong. Try again.
diff --git a/src/components/Menu.tsx b/src/components/Menu.tsx index 601153a..2d9b1c5 100644 --- a/src/components/Menu.tsx +++ b/src/components/Menu.tsx @@ -1,5 +1,5 @@ -import { useCallback, useEffect, useRef, useState, type KeyboardEvent, type ReactNode } from 'react'; -import { useDismiss } from '../lib/useDismiss.js'; +import { useLayoutEffect, useRef, type KeyboardEvent, type ReactNode } from 'react'; +import { useAnchoredPanel } from '../lib/useAnchoredPanel.js'; import { useLink } from '../UiProvider.js'; export type MenuItem = { label: string; separated?: boolean } & ( @@ -23,16 +23,14 @@ export function Menu({ triggerLabel: string; }) { const Link = useLink(); - const [open, setOpen] = useState(false); - const root = useRef