Skip to content

feat(ui): add interaction utilities - #7

Merged
kattsushi merged 2 commits into
feat/ui-packagefrom
feat/ui-package-interaction-utilities
May 21, 2026
Merged

kattsushi merged 2 commits into
feat/ui-packagefrom
feat/ui-package-interaction-utilities

Conversation

@kattsushi

@kattsushi kattsushi commented May 21, 2026 •

Copy link
Copy Markdown
Owner

Part of tracker #2. Targets feat/ui-package.

Closes #1

Approved issue: #1

PR Type

  • Bug fix
  • New feature
  • Documentation only
  • Code refactoring
  • Maintenance/tooling
  • Breaking change

Summary

  • Adds the planned interaction utility slice for @os-copilot/ui.
  • Implements CopyIdButton, Marquee, and a Zaidan/Solid Sonner toast wrapper.
  • Adds Storybook stories, SSR/SPA smoke coverage, root exports, ergonomic subpaths, and import smoke coverage.

Chain Context

master
└── 📍 tracker #2: feat/ui-package
    ├── ✅ PR #3: scaffold package + shadcn routing
    ├── ✅ PR #4: Zaidan baseline + Storybook/CSS
    ├── ✅ PR #5: layout primitives + SSR/SPA verification
    ├── ✅ PR #6: component ergonomic subpath exports
    └── 🔎 PR #7: copy-id-button + marquee + Zaidan/Sonner toast

Changes

File Change
packages/ui/src/components/ui/copy-id-button.tsx Adds mobile-safe clipboard affordance with accessible status feedback.
packages/ui/src/components/ui/marquee.tsx Adds reduced-motion-aware marquee primitive with pause controls.
packages/ui/src/components/ui/sonner.tsx, packages/ui/src/components/ui/toast.tsx Adds Zaidan/Solid Sonner Toaster wrapper and toast re-export.
packages/ui/src/components/color-mode.tsx Adds Zaidan color-mode support used by the Sonner wrapper when present.
packages/ui/src/stories/ui/* Adds stories for the new interaction utilities.
packages/ui/src/testing/* Extends SSR/SPA/import smoke coverage.
packages/ui/package.json, pnpm-workspace.yaml, pnpm-lock.yaml Adds solid-sonner via catalog and public subpath exports.

Test Plan

  • pnpm exec dprint check packages/ui/package.json pnpm-workspace.yaml packages/ui/src
  • pnpm exec oxlint packages/ui/src
  • pnpm nx test ui --run
  • pnpm nx typecheck ui
  • pnpm nx build ui
  • pnpm nx build-storybook ui
  • Fresh reviewer audit completed with no blockers after correcting toast to Zaidan/Sonner.

Notes

  • Toast uses the Zaidan registry Sonner wrapper pattern over solid-sonner; there is no local toast store/provider implementation.
  • data-table and data-table-filters remain deferred to the next chained PR because they need a TanStack Table/API decision.
  • Storybook still emits the known non-blocking @kobalte/core package.json warning.

Contributor Checklist

@kattsushi kattsushi added the type:feature New feature label May 21, 2026
@kattsushi kattsushi mentioned this pull request May 21, 2026
16 of 21 tasks
@kattsushi
kattsushi merged commit b6e76b7 into feat/ui-package May 21, 2026
kattsushi added a commit that referenced this pull request May 22, 2026
* chore(ui): open package feature chain

* feat(ui): scaffold package and shadcn routing (#3)

* feat(ui): add Zaidan Storybook baseline

Merge PR 2 into the UI package tracker branch.

* feat(ui): add layout primitives and SSR smoke (#5)

* feat(ui): add component subpath exports (#6)

* feat(ui): add component subpath exports

* style(ui): format subpath smoke test

* feat(ui): add interaction utilities (#7)

* feat(ui): add interaction utilities

* fix(ui): use Zaidan Sonner toast

* feat(ui): add data table components (#8)

* fix(ui): preserve data filter input focus
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

type:feature New feature

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant