diff --git a/src/uix/eidos/components/dropdown-menu/dropdown-menu-trigger.svelte b/src/uix/eidos/components/dropdown-menu/dropdown-menu-trigger.svelte index 3b096cd8a..d5064e66a 100644 --- a/src/uix/eidos/components/dropdown-menu/dropdown-menu-trigger.svelte +++ b/src/uix/eidos/components/dropdown-menu/dropdown-menu-trigger.svelte @@ -1,7 +1,64 @@ -{@render children?.()} + + {#snippet child({ props })} + {#if outerChild} + {@render outerChild({ props })} + {:else} + + {/if} + {/snippet} + diff --git a/src/uix/eidos/components/dropdown-menu/dropdown-menu.css b/src/uix/eidos/components/dropdown-menu/dropdown-menu.css index 9d7cb4de3..3e85ae8a4 100644 --- a/src/uix/eidos/components/dropdown-menu/dropdown-menu.css +++ b/src/uix/eidos/components/dropdown-menu/dropdown-menu.css @@ -129,16 +129,12 @@ background: var(--dropdown-menu-separator-bg, var(--color-border-subtle)); } -/* ── Trigger (button-ish, but bring-your-own visual) ──────────────── */ - -[data-dropdown-menu-trigger] { - cursor: pointer; -} - -[data-dropdown-menu-trigger]:focus-visible { - outline: none; - box-shadow: var(--focus-ring); -} +/* ── Trigger ──────────────────────────────────────────────────────── */ +/* + * The Trigger is rendered as an eidos ` + {/each} + + + + + +
Bound state @@ -625,7 +681,6 @@ idstringautoStable identifier. open bindablebooleanfalseWhether the menu is open. onOpenChange / onOpenChangeComplete(open: boolean) => void—Fire on every open/close and after the animation settles. - modalbooleantrueBlock outside interaction while open. dir'ltr' | 'rtl''ltr'Direction used for keyboard navigation inside sub-menus. accessibleWhenDisabledbooleantrueDisabled items remain focusable per WAI-ARIA APG; set false to skip them entirely. @@ -638,7 +693,13 @@ PropTypeDefaultDescription idstringauto— - …native button attrsPrimitiveButtonAttributes—Trigger renders a native <button>; all HTML button attrs flow through. + variant eidosControlVariant: 'surface' | 'outline' | 'ghost''surface'Forwarded to the inner <Button>. Narrowed from ButtonVariant (per DEMO_AUTHORING_GUIDE §12.7) to stay consistent with form-control surface. + size eidos'xs' | 'sm' | 'md' | 'lg' | 'xl''md'Button size scale. + intent eidos'neutral' | 'affirm' | 'fulfill' | 'risk' | 'threat' | 'loss''neutral'Evaluative intent forwarded to Button — full canonical Intent set. + color eidosColorRole — see eidos/lib/types.ts—Hierarchical color override (only applies under intent='neutral'). + iconOnly · icon · endIcon · rounded eidosButton props—Standard Button visual knobs forwarded through. + child{`Snippet<[{ props }]>`}—Opt out of <Button> entirely and render your own element. + …native button attrsPrimitiveButtonAttributes—All HTML button attrs flow through to the underlying button.
@@ -742,7 +803,6 @@ Group / GroupHeading✓✓✓✓ Arrow part✓✓—✓ closeOnSelect per item✓✓—✓ - modal mode✓✓—✓ accessibleWhenDisabled (APG)———✓ commit-select semantic event———✓