Skip to content

v1.7.1: fixed-strategy popover positioning + Combobox clear button#10

Merged
Misael703 merged 3 commits into
mainfrom
fix/floating-fixed-strategy-v1.7.1
May 17, 2026
Merged

v1.7.1: fixed-strategy popover positioning + Combobox clear button#10
Misael703 merged 3 commits into
mainfrom
fix/floating-fixed-strategy-v1.7.1

Conversation

@Misael703
Copy link
Copy Markdown
Owner

v1.7.1 — Floating positioning fix + Combobox clear button

Two real production defects. Ships in dist; no breaking changes, drop-in.

Fixed

  • Portaled popovers use a fixed positioning strategy.
    usePopoverPosition returned document coords (rect + scroll) for
    position: absolute; inside a position: fixed Modal (with scroll-lock)
    that space is wrong and the viewport clamp pinned panels bottom-left (the
    reported Combobox-in-Modal displacement). Hook now returns viewport coords
    and all 12 portaled panels render with position: fixed. It already
    recomputes on capture-phase ancestor scroll + resize, so panels stay glued.
    Fixes the whole floating family (Combobox, DatePicker, DateRangePicker,
    MultiCombobox, YearPicker, MonthPicker, Popover, HoverCard, Tooltip,
    ContextMenu, Menu, Menubar, NavigationMenu) inside fixed/transformed
    ancestors and scroll containers.
  • Combobox clear (×) button centered. .combobox__clear lacked flex
    centering on its 22×22 pill; added inline-flex centering.

Notes

  • *__popover { position: absolute } in CSS left as-is: always overridden by
    the inline position: fixed (single source of truth); editing dead CSS is
    risk with zero runtime effect.

Verification

tsc clean · vitest 349/349 (0 regressions) · npm run build OK ·
build-storybook exit 0 · lint exit 0. 3 atomic commits.

Misael703 added 3 commits May 17, 2026 16:24
usePopoverPosition returned document coords (rect + scrollX/scrollY) for position:absolute panels. Inside a position:fixed Modal (with scroll-lock) that coordinate space is wrong and the viewport clamp pinned panels bottom-left (Combobox dropdown displaced in a Modal). Now returns viewport coords and all 12 portaled popovers use position:fixed (Floating UI's robust strategy; the hook already recomputes on capture-phase scroll + resize so panels stay glued). Fixes the whole floating family inside fixed/transformed ancestors. CSS *__popover position:absolute left as-is (always overridden by the inline style; single source of truth).
.combobox__clear was a 22x22 pill (position:absolute, border-radius:pill) with no flex centering, so the X svg sat off-center. Added inline-flex centering + padding:0.
Fixed-strategy popover positioning (works inside Modals) + centered Combobox clear button. Ships in dist; no breaking.
@Misael703 Misael703 merged commit 2b0d896 into main May 17, 2026
@Misael703 Misael703 deleted the fix/floating-fixed-strategy-v1.7.1 branch May 17, 2026 20:26
Misael703 added a commit that referenced this pull request May 29, 2026
…list card

Two new Storybook stories documenting the recommended pattern for an order
detail timeline + the compact list card variant. Story-only — no kit code
change, no version bump, no npm release.

#9 Despachos · patrón canónico (detalle de orden) — combines the 4 layers
the kit offers: milestone anchors top/bottom (Orden creada done, Orden
completada pending/done), default operational items with state/tone, right
Badge slot for event type (envío/retiro/nota), children payload for items
that carry a guía/tracking detail card. The formula scales 1..N dispatches
without code changes.

#10 Despachos · card de lista (compact) — same pattern at `density="compact"`
for the orders list page. Three cards demonstrate the scaling: N=0 (just
created), N=3 multi-state in-progress, N=1 ideal happy path delivered.
Misael703 added a commit that referenced this pull request May 29, 2026
In `density="compact"` the milestone marker shrinks from 32px to 16px
(compact CSS wins on specificity over the milestone width rule). But the
1.30.1 `margin-left: -4` — sized to centre the 32px milestone against the
24px default in default density — was not overridden in compact. Result: a
16px milestone with margin-left:-4 sat 4px LEFT of the 16px default and the
connector. Visible as a dog-leg in story #10.

Fix: reset `margin-left: 0` for milestone in compact. With both markers at
16px in compact, no shift is needed. All three markers + the connector now
share the same x-axis.

New smoke scenario `/scenarios/timeline-milestone-compact` (default →
milestone → default per tone at compact density) + assertion that the 3
marker centres land within 1px of the connector centre per tone.

Gate: tsc 0 · vitest 510/510 · build 0 · smoke:ci 21 passed (+2).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant