KQ-529 · SHARE/TRAY

Share Tray

A share sheet whose tray raises on glide while the targets rise from distances.step on recoil in a cascade, so each arrival gets its own two bounces inside the 600ms budget. Copy writes the clipboard and stamps: the link mark cross-fades to a check that draws on flick and the label lands from 1.15x, and where the browser has a native sheet a More target hands off to it. It is a modal dialog with a focus trap, a labelled backdrop, and Escape closing back to the trigger.

KQ-529 · SHARE/TRAY
Waylight · field

What the third sweep tells you

A vane that reads long on every third pass is not broken. It is telling you where the stop sits, and the tape is the only witness the next shift will accept.

Open the tray to share

Install

One command — the source lands in your repo. Or copy it from the Code tab.

$ pnpm dlx shadcn@latest add @kinetiq/share-tray

Props

url
string
default
What is shared: written to the clipboard by the copy target and handed to the native sheet.
title
string
default
Share title, shown in the tray and passed to the native sheet.
targets
ShareTarget[]
default
Custom destinations, each with an icon from the built-in set; the built-in copy target is always first.
open / defaultOpen
boolean
default false
Controlled or initial tray state.
onOpenChange
(open: boolean) => void
default
Fires whenever the tray opens or closes.
onAction
(id: string) => void
default
Fires with the id of whichever target was used, the built-in copy and more included.