Skip to content

feat(webkit): component fixes batch — Link, TabView, Popover, MiniButton, Dialog, theme#785

Open
gab-az wants to merge 15 commits into
mainfrom
worktree-component-fixes-batch
Open

feat(webkit): component fixes batch — Link, TabView, Popover, MiniButton, Dialog, theme#785
gab-az wants to merge 15 commits into
mainfrom
worktree-component-fixes-batch

Conversation

@gab-az

@gab-az gab-az commented Jul 22, 2026

Copy link
Copy Markdown
Collaborator

Summary

A batch of component fixes and enhancements across @aziontech/webkit and @aziontech/theme. (EmptyState + Table were split into #786.)

  • Link — adds a small size, aligning its scale with Button.
  • TabView — horizontally scrollable tab bar with an edge-fade affordance.
  • Popover — renders the panel in one teleported subtree and contains focus instead of trapping; dismissible doc wording updated.
  • MiniButton — hover ghost + content gap scale per size.
  • Dialog — panel tween via translate/scale properties under Tailwind v4.
  • theme — deeper popup scale keyframes (0.9) for a more pronounced pop.
  • catalog — regenerated for the Link size + Popover dismissible doc.

Notes

  • Version bump: webkit minor (Link/TabView feat) + theme patch (fix). Commits are scoped per package; relies on a merge (non-squash) so semantic-release reads each scope. If squash-merged, split the theme commit out or its release is missed.
  • Specs updated (link, popover, tab-view); run /spec-validate for any stale checksums.
  • No new runtime dependencies.

@gab-az
gab-az requested a review from a team as a code owner July 22, 2026 21:00
gab-az added 7 commits July 22, 2026 18:05
Extend Link's size union to 'small' | 'medium' | 'large' (was large/medium),
mapping heights to 40/32/28px to match Button, and scale the hover ghost per
size. Updates the spec, story, Code Connect enum, and tests.
…focus instead of trapping

Move the panel + content into a single teleported <Transition> subtree inside
Popover.Content (the Select/Tooltip pattern) so the whole panel scales on
enter/leave; the root keeps state/placement/focus via ctx.panelRef. Stop
auto-focusing the panel on open and stop closing on focusout — focus is
contained across trigger+panel via document-level Tab handling, and only Esc or
outside-click dismiss. Updates the spec, tests, and authoring baseline.
…fade affordance

Let the tab list scroll horizontally on narrow viewports (hidden scrollbar,
tabs keep intrinsic width) instead of overflowing or wrapping, and render an
animated leading/trailing gradient fade on the scrollable side(s) to hint at
off-screen tabs. Keep the active indicator aligned while scrolling. Adds a
Scrollable story and covering tests.
Drive the hover-ghost height and the content gap off the root's data-size
(large/medium) via group-data variants instead of a fixed h-8 / medium-only
gap, so the ghost and spacing track the button size.
… pop

Change popupScaleIn/Out to enter from and exit to scale(0.9) (was 0.95) so
overlay open/close animations read as a clearer scale. Rebuilds the v4
globals.css/scss dist from the keyframes source.
…Tailwind v4

Tailwind v4 compiles scale-*/translate-* to the standalone `scale`/`translate`
CSS properties, not the `transform` shorthand, so transitioning `transform`
alone left the panel snapping open/closed. Transition `translate`, `scale`, and
`opacity` instead, and deepen the desktop enter scale to 0.9 to match the popup
keyframes.
Regenerated catalog metadata: size `small` variant note and Popover `dismissible` doc wording.
@gab-az
gab-az force-pushed the worktree-component-fixes-batch branch from 2809a26 to 25b695d Compare July 22, 2026 21:06
@gab-az gab-az changed the title feat(webkit): component fixes batch — EmptyState, Link, TabView, Popover, MiniButton, Dialog, theme feat(webkit): component fixes batch — Link, TabView, Popover, MiniButton, Dialog, theme Jul 22, 2026
…iew baseline

- popover-content.vue: type the panel function-ref param as Element | ComponentPublicInstance | null (Vue's VNodeRef signature) and resolve via instanceof, matching the segmented-button/code-block idiom (fixes TS2322)
- authoring-baseline.json: tab-view-list now uses animate-fade-in/out (prune its resolved entry); the other four sub-components' spec-wide Motion classes gained animate-fade-out
…t suite

The horizontal-scroll affordance depends on Tailwind utilities applying and on
real layout-driven overflow measurement. The webkit unit env runs no Tailwind
and loads no theme CSS (src/test/setup.ts), so getComputedStyle(list).overflowX
is always 'visible' and the list never overflows — the two tests could never
pass here. That behavior is covered by the Scrollable story's visual-regression
snapshots, which is where pixels/layout belong per .claude/rules/testing.md.
This batch changes those components' rendered output (MiniButton hover ghost /
per-size gap, Link size union, TabView scrollable tab bar) and adds the TabView
Scrollable story. Regenerated the Linux baselines on CI (Storybook Regenerate
Baseline workflow) so the committed snapshots match, including the new Scrollable
story that would otherwise fail with 'New snapshot was not written.'
HerbertJulio
HerbertJulio previously approved these changes Jul 23, 2026
Comment thread .specs/link.md Outdated
Comment thread .specs/popover.md
Comment thread packages/webkit/src/components/overlay/popover/popover.vue Outdated
Comment thread packages/webkit/src/components/overlay/popover/popover.vue Outdated
robsongajunior and others added 3 commits July 23, 2026 16:30
- Popover: drop the explanatory comments flagged in review (panel
  function-ref, single-teleport-subtree, document-level Esc, Tab
  containment) — the code is self-describing.
- Link spec: escape the pipes in the size and target union types so the
  Props table renders as one cell instead of duplicating 'large'; this
  also lets the spec-compliance table parser read the union correctly.
  Checksum recomputed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

3 participants