From 1e8500bfaca00c2a3359638636c5a35b041e7912 Mon Sep 17 00:00:00 2001 From: dev Date: Wed, 22 Apr 2026 01:52:34 +0200 Subject: [PATCH] soma test: instrument 5 overlay demos for permutation runner MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Adds `data-perm-step` + `` + perms seed to the 5 overlay demos sharing Dialog's open/close shape: - alert-dialog — trigger open → cancel. `?perm.open=true` seeds. `disabled` deliberately NOT in axes: disabling the Provider blocks the Trigger click path the runner depends on. - popover — trigger open → close button. `?perm.open=true` seeds open1. - tooltip — focus trigger (mode=focus, 1s settle — tooltip opens after 700ms delay). No close step: tooltip closes on blur. - drawer — trigger open → close button (500ms settle for exit animation). `?perm.open=true` seeds basicOpen. - dropdown-menu — trigger open → Escape close (mode=key, 500ms settle). Second step targets the Menu.Content selector because the Content only mounts after the Trigger step fires (runner handles dynamic step discovery). All five declare `dir` as the only axis (universal RTL variant). The other orientation / disabled axes don't apply to these overlay shapes. ## Coverage delta - Before: 3 instrumented demos · 9 variants · 34 steps. - After: 8 instrumented demos · 19 variants · 62 steps. 2x jump in per-CI-run validations with zero infra changes — just applying the v1-v3 convention to additional demos. ## Verification - `npm run check`: 0 errors in soma/morfo/test-route scope. - `npm run smoke`: 65/65 routes. - `npm run morfo:check`: 66/66 morfos. - `npm run perm:check`: 8/8 demos · 62 steps · 19 variants. Co-Authored-By: Claude Opus 4.7 (1M context) --- .../test/soma/alert-dialog/+page.svelte | 24 +++++++++++++++---- src/routes/test/soma/drawer/+page.svelte | 16 ++++++++++--- .../test/soma/dropdown-menu/+page.svelte | 11 +++++++-- src/routes/test/soma/popover/+page.svelte | 13 +++++++--- src/routes/test/soma/tooltip/+page.svelte | 8 ++++++- 5 files changed, 59 insertions(+), 13 deletions(-) diff --git a/src/routes/test/soma/alert-dialog/+page.svelte b/src/routes/test/soma/alert-dialog/+page.svelte index c69877679..c0d950e6f 100644 --- a/src/routes/test/soma/alert-dialog/+page.svelte +++ b/src/routes/test/soma/alert-dialog/+page.svelte @@ -4,10 +4,14 @@ import { createForm, type StandardSchemaV1 } from '$soma/components/form'; import * as Form from '$soma/components/form'; import Portal from '$soma/components/internal/portal.svelte'; + import { Perms } from '../_perms.svelte'; + + // Perm-runner v2/v3 seed (see `` below). + const perms = Perms.getOr({} as Record); // ── Example 1 — interactive testbed (every public prop wired) ──────────── - let open = $state(false); - let disabled = $state(false); + let open = $state((perms.open as boolean) ?? false); + let disabled = $state((perms.disabled as boolean) ?? false); let escapeBehavior = $state<'close' | 'ignore'>('close'); let actionLabel = $state('Delete account'); let cancelLabel = $state('Keep it'); @@ -74,6 +78,11 @@ AlertDialog · Soma + +
@@ -118,7 +127,9 @@
- Delete my account + + Delete my account + @@ -128,7 +139,12 @@ This action is permanent and cannot be undone. All your data will be removed.
- + {cancelLabel} import * as Drawer from '$soma/components/drawer'; + import { Perms } from '../_perms.svelte'; - let basicOpen = $state(false); + const perms = Perms.getOr({} as Record); + + let basicOpen = $state((perms.open as boolean) ?? false); let sideDrawer = $state<{ open: boolean; dir: Drawer.DrawerDirection }>({ open: false, dir: 'bottom' @@ -24,6 +27,11 @@ } + + Drawer · Soma + + +

Drawer

@@ -33,7 +41,7 @@

Basic

Bottom drawer, swipe down to dismiss.

- Open + Open @@ -42,7 +50,9 @@ Swipe down or tap overlay to dismiss.

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore.

- Close + + Close +
diff --git a/src/routes/test/soma/dropdown-menu/+page.svelte b/src/routes/test/soma/dropdown-menu/+page.svelte index db6aaadd8..94262282f 100644 --- a/src/routes/test/soma/dropdown-menu/+page.svelte +++ b/src/routes/test/soma/dropdown-menu/+page.svelte @@ -10,6 +10,7 @@ DropdownMenu · Soma +
@@ -22,9 +23,15 @@

Click trigger to open. Arrow keys navigate. Enter/Space selects. Escape closes.

- Actions + Actions - + alert('New Tab')}>New Tab alert('New Window')}>New Window New Private Window diff --git a/src/routes/test/soma/popover/+page.svelte b/src/routes/test/soma/popover/+page.svelte index f9aaa64c3..3a0ffdd1a 100644 --- a/src/routes/test/soma/popover/+page.svelte +++ b/src/routes/test/soma/popover/+page.svelte @@ -1,8 +1,12 @@