From 9f70b3fbfab695ca68d4575d6d71c86e27b9e825 Mon Sep 17 00:00:00 2001 From: Amr Mohammed El-Sheraey <141947355+AmrMsCLL@users.noreply.github.com> Date: Sun, 11 Oct 2026 15:06:55 +0300 Subject: [PATCH] fix: menus open like the other popovers, themed disclosures and a quiet sidebar scrollbar (0.4.2) --- README.md | 2 +- package-lock.json | 4 +-- package.json | 2 +- preview/main.tsx | 4 +++ src/components/Menu.tsx | 27 +++++++++--------- src/lib/useAnchoredPanel.ts | 6 ++-- src/theme.css | 55 +++++++++++++++++++++++++++++-------- test/popovers.spec.tsx | 24 ++++++++++++++++ 8 files changed, 93 insertions(+), 31 deletions(-) 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