Repository navigation
Releases
v1.23.0
Minor Changes
- f1362e8: Brand Logos adds Google Drive, Gmail, Notion and Linear. Settings' Connection Row takes a status label of its own and a name that can be a link.
- 7f3fd65: Current Plan shows a plan that's past due, with the amount owed and Update card first, and reads Opening… while Manage or Update card opens the billing page.
Patch Changes
- d2055af: Chat Conversation and AI Message Parts take
renderApproval, which draws a tool call that waits for approval as a card of your own, in place of its Approve and Deny row.
v1.22.1
Patch Changes
-
496e480: AI Markdown takes
fences: a part per code language that draws a fenced block in place of the code, such as a chart from the JSON a model wrote in a ```chart block. Each part hears whether the model is still writing its block. -
58281dd: Chat Conversation and AI Message Parts take
renderWork: a block that draws a reply's work (its thinking, tool calls and sources) in place of the line that folds it, such as a research run.A reply that failed partway no longer shows its own actions beside the error's Retry.
-
c34da48: Every box that scrolls inside a block (a list, a panel, a log, a table that scrolls sideways) has a thin scroll bar, and lists keep their text clear of it.
v1.22.0
Minor Changes
- 2d3fe87: New Forms block: Address, and the
address-fieldspart it uses. Country comes first, then the fields that country's addresses use, named its way and in its order, with a list of states or provinces where it has one and a check of the postal code.validateAddressgives an error for each field. Also new: acountrieslist, acountry-flagpart that blocks with a flag now install in place of the wholegeopart, aniconon eachOptionSelectoption, and a faint edge on every flag.
Patch Changes
-
8663e70: Command Menu: results that arrive after you type put Enter on the first one.
-
0e41127: Address Fields exports
getCountryOptions, its country list with flags as options for a select. -
12dcac9: Chart Panel's legend draws a
hatchedkey, for a part that is estimated or projected. -
629f636: Integrations shows each service's own logo in place of its first letter. Brand Logos adds the BigQuery, Microsoft Teams and PagerDuty logos.
-
2d3fe87: The
kanbanpart exportsKanbanLabel, one label drawn asKanbanLabelsdraws each, andgetDueDateLabel, the wordsKanbanDueDateshows for a due date. -
1fe73c1: AI Message Parts reads the citations the AI SDK puts on a reply's text: Claude's web search reply, which arrives in pieces split around what it cites, now shows as one text with
[n]after each cited passage, and its sources list only the pages it cites, in the order cited. -
769b6d8: Number Field takes a
formprop, so a field outside its form still submits it on Enter, and passes on a typed value rounded as the field shows it. -
0e41127:
SaveBarand the onboarding footer mark themselves withdata-floating-bar, so parts that float at the bottom of the window can keep clear of them.DataTableListItemshades a ticked row (data-state='selected') as a table row does. -
9e78565: Team has a
WorkloadBar: one person's load against what they can take, with what's past it hatched in orange and an optional part drawn as done. Team 02 draws its bars with it. -
20adb9e: Shortcut Button: the Escape key shows as Esc in its tooltip.
-
8663e70: New Shortcut Button part: a button whose tooltip shows its label and its keyboard shortcut. With
listen, the key presses it from anywhere on the page, except while someone types or a menu or dialog is open. -
769b6d8: Page Header's
TabLinkstakes anidand anindicatoron each tab, so a page can move focus to a tab it opened and mark one with unsaved changes.ActionsMenutakes anid, anicon, asizeand avariant, so it can be the menu half of a split button. -
6b73bb7:
TabLinksandTopNavtakevariant='pill', which fills the open tab for tabs that sit in a bar, a tab's focus ring now shows inside the tab instead of being clipped by the row, andSearchButtonis as tall as the bar's other controls, with a muted label, and takesvariant='secondary'for a filled field on a tinted canvas.MobileNavinapp-shell.tsx: a menu button that opens an app's pages in a sheet, for a phone, whereTopNavhas no room.NavLinktakes an optionaliconfor it.TopNavnow fills the room it has in a row, so it no longer shrinks to More and the open tab.TabLinkstabs (andNavLink) take an optionalicon, shown before the title in the rail and under More.SearchButtontakescollapseBelow='lg'to shrink to its icon below 1024px, for a bar that also holds tabs.TabLinks' More is drawn like the tabs beside it, with the number of hidden tabs as aNavTagand a chevron, in place of "More (3)".ActionsMenutakescountfor that tag andtriggerClassNameto draw a text trigger as plain markup.SearchButton's placeholder defaults to "Search", without an ellipsis. -
0e41127:
zonedPartsinformat.tsreads aYYYY-MM-DDday as that day in every time zone, as the other date helpers do.
v1.21.0
Minor Changes
- 9cb8e9a: Chart Panel 02 to 06 and every Breakdown, Distribution, Scatter and Forecast block now draw themselves in a shadcn Card, so they follow your style's card.
- e41f5a1: The Flow, Funnel, Geo, Heatmap and Retention blocks, and Realtime 02 to 04, now draw themselves in a shadcn Card, so they follow your style's card.
- 47e6d75: The other KPI blocks, Stat Group 02 to 05 and Realtime 01 now draw themselves in a shadcn Card, so they follow your style's card. Stat groups show a line between each number.
- a87482d: KPI 01, Bar Chart KPI 01, Stat Group 01, Chart Panel 01 and Activity Feed 01 now draw themselves in a shadcn Card, so they follow your style's card. Stat Group 01 shows its numbers side by side with a line between each. KPI 05 keeps one card per number.
- 6972aee: The Activity Feed, Checklist, Comments, Schedule, Timeline and States blocks, Team 01 to 04, Notifications 01 and 02, and Files 01 and 03 now draw themselves in a shadcn Card, so they follow your style's card.
- ad527fd: Realtime 01 to 04, AI Assistant 01 to 04, Files 01 and Dashboards 03 and 05 no longer ship the docs preview's made-up updates and canned replies. The Realtime blocks show the data you pass, AI Assistant 01 to 04 need a
chat(useChat()oruseChatStream), and Files 01 needs anuploadfunction. Chart tooltips near the edge of a card open inside it.
v1.20.4
Patch Changes
-
1785b3b: Chart Panel's table for screen readers no longer counts as a scrolling region that keyboard users can't reach.
Chart Panel's legend can draw a dashed box (
shape: 'outline'), for a part of a bar drawn as one. -
2991830: Integrations and Connect a Source show a plug on Connect, an unplugged plug on Disconnect and a refresh arrow on Reconnect.
A new Brand Logos part holds the GitHub, Google, Sentry, Slack, Stripe and X logos. Auth's Google, X and GitHub logos moved into it, so import them from
brand-logos. -
929c64d: Forms (
forms):InlineEditFieldtakes aprefix, text the value always follows, such astandem.app/before a workspace's address. It shows before the value, and beside the field while it's edited. -
a0d94f3: Kanban shows a dashed slot where a dragged card will land, and the other cards slide apart to make room. The place the card left closes up.
v1.20.3
Patch Changes
- 74c17ef: Tooltip Link (
tooltip-link) addsButtonLink, a link drawn as a button with its label, such as View activity. - 6f4b935: Team's share settings (
team-06) takelinkAccessOptions, the link settings to offer, so something only people in the workspace may open can leave out Anyone with the link. Files' upload rows wrap a failed upload's reason instead of cutting it off.
v1.20.2
Patch Changes
- c245519: AI Assistant's
ChatComposershows each attached file uploading, then done, and keeps a file that's too large (maxSize) or of a type it doesn't accept as a chip that says why, instead of dropping it.uploaduploads each file as it's attached, and Send waits until every one is done. - 6a5f6c4: AI Assistant's
ChatConversationlets people edit a question in place and keeps the earlier version when they edit or regenerate, with buttons to step between versions under each question and reply.useChatStreamkeeps the versions, andAIChattakesversionsandselectVersionfor a chat that stores its own.sendMessagetakes themessageIdof the question an edit replaces, as the AI SDK's does. - fbc253c: Kanban: a column can show an icon before its title,
onMovecan returnfalseto refuse a move (the card stays where it was), and withonOpena click, a tap or Enter opens a card while Space picks it up. - 31910ff: AI Assistant's
AIMarkdownshows text wrapped withmarkChangeas added or removed, andmarkdownBlockssplits Markdown into its top-level blocks.HighlightedCodetakeslineChangesto mark lines a change added or removed, andcopyButton={false}to leave out its Copy button. Shortcut Button takesvariant='secondary', and App Shell exportsuseDockedPanel, which says whether the screen is wide enough for a panel beside the page. - ef3325a:
ShortcutButtontakesvariant='default', for the one filled action of a view. - 2110776:
ShortcutButtonwithlistenleaves a key alone while focus is inside an element markeddata-key-scope, such as a list that handles its own keys. - 5dd8d10: Adds Text Change, the mark for text a change added or removed: added text tinted in the chart colour, removed text struck through in muted text, with “added” or “removed” for screen readers.
- 0c8f9ad: Team has a
WorkloadLegend, the key under aWorkloadBar: each part's swatch, amount and what it is. Shortcut Button works without a shortcut, as an icon button with its label in a tooltip.
v1.20.1
Patch Changes
- 6c538e2: Page Header's
ActionsMenutakes aclassNamefor its trigger, aghostvariant and theicon-xssize, for a menu on a row that shows while the row is hovered. - 9a8a0a1: App Shell adds
SidebarLayout, a sidebar whose head, links and foot stay in view while its content scrolls, andNavItemtakesonSelectfor an item that does something, such as opening search.PlanUsagedraws its bar in the chart colour, orange from 75% and red from 90%, takes anote, such as when the allowance resets, and leaves out the count when it has nounit. - 34e3f1a: Shortcut Button: the Escape key shows as Esc in its tooltip.
- 03ea436:
formatTimeZoneOffsetwrites a zero offset asGMTin every runtime. ICU 78, in Node 26 and Chrome 153, had made itGMT+0, so a server and a browser on different versions rendered different text.
v1.20.0
Minor Changes
- b479772: AI Assistant replies lead with one line: a ring spins while the step it's on rolls by ("Checking accounts for warning signs…"), then the thinking, tool calls and sources fold into "Used 1 tool in 2.2 s", with tool results drawn as blocks at the top of the answer.
toolLabelstakes{ running, done }. Newagent-ringpart, and theai-assistantpart has aChatPanel(an assistant in a panel with New conversation and Close, which AI Assistant 01 now uses) and aChatConversation(a chat's messages with their actions, follow-ups under the last reply, Thinking… and Retry). Follow-up chips wrap instead of scrolling sideways, a saved conversation opens with nothing cut off above its last question, Retry leaves focus in the message box, and a reply's table no longer squeezes a column to a word per line.
Patch Changes
- aa61d8b:
toMinorUnitsmoves from the Invoice part toformat.ts, so any block rounds money to the currency's smallest unit the same way. Receipt rounds its refunds with it, so a half cent stored just below .5 no longer rounds down. - 141c3b6: The unread mark in Activity Feed and Notifications is a smaller blue dot, so it reads as unread without looking like a status. Agent Ring adds
AgentMark, an agent's initials in its ring.
v1.19.0
Minor Changes
- 49acc90: Blocks that open with a line (KPI, Stat Group 01 and 04, Usage Meter, Alerts 04) drop it when they're the first thing in a shadcn Card. New KPI 05: headline KPIs in Cards. The CRM dashboard shows its blocks in Cards.
Patch Changes
- 8663e70: Command Menu: results that arrive after you type put Enter on the first one.
- ec3cd36:
daysBetweenanddayIninformat.tstake a date string, and count aYYYY-MM-DDdate as that day in every time zone. - ce06fc0: Chart Panel's legend draws a
hatchedkey, for a part that is estimated or projected. - 518f025: Number Field takes a
formprop, so a field outside its form still submits it on Enter, and passes on a typed value rounded as the field shows it. - ec3cd36: Number Field's minus and plus buttons keep focus at the end of the range, marked
aria-disabled, so a keyboard user keeps their place. - 95aedaa: Team has a
WorkloadBar: one person's load against what they can take, with what's past it hatched in orange and an optional part drawn as done. Team 02 draws its bars with it. - 8663e70: New Shortcut Button part: a button whose tooltip shows its label and its keyboard shortcut. With
listen, the key presses it from anywhere on the page, except while someone types or a menu or dialog is open. - 30966ec: Page Header's
TabLinkstakes anidand anindicatoron each tab, so a page can move focus to a tab it opened and mark one with unsaved changes.ActionsMenutakes anid, anicon, asizeand avariant, so it can be the menu half of a split button.