Skip to content

Releases

v1.23.0

Choose a tag to compare

@dashboardblocks-mirror dashboardblocks-mirror released this 07 Nov 09:13

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

Choose a tag to compare

@dashboardblocks-mirror dashboardblocks-mirror released this 06 Nov 07:04

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

Choose a tag to compare

@dashboardblocks-mirror dashboardblocks-mirror released this 04 Nov 22:35

Minor Changes

  • 2d3fe87: New Forms block: Address, and the address-fields part 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. validateAddress gives an error for each field. Also new: a countries list, a country-flag part that blocks with a flag now install in place of the whole geo part, an icon on each OptionSelect option, 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 hatched key, 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 kanban part exports KanbanLabel, one label drawn as KanbanLabels draws each, and getDueDateLabel, the words KanbanDueDate shows 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 form prop, so a field outside its form still submits it on Enter, and passes on a typed value rounded as the field shows it.

  • 0e41127: SaveBar and the onboarding footer mark themselves with data-floating-bar, so parts that float at the bottom of the window can keep clear of them. DataTableListItem shades 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 TabLinks takes an id and an indicator on each tab, so a page can move focus to a tab it opened and mark one with unsaved changes. ActionsMenu takes an id, an icon, a size and a variant, so it can be the menu half of a split button.

  • 6b73bb7: TabLinks and TopNav take variant='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, and SearchButton is as tall as the bar's other controls, with a muted label, and takes variant='secondary' for a filled field on a tinted canvas.

    MobileNav in app-shell.tsx: a menu button that opens an app's pages in a sheet, for a phone, where TopNav has no room. NavLink takes an optional icon for it. TopNav now fills the room it has in a row, so it no longer shrinks to More and the open tab. TabLinks tabs (and NavLink) take an optional icon, shown before the title in the rail and under More. SearchButton takes collapseBelow='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 a NavTag and a chevron, in place of "More (3)". ActionsMenu takes count for that tag and triggerClassName to draw a text trigger as plain markup.

    SearchButton's placeholder defaults to "Search", without an ellipsis.

  • 0e41127: zonedParts in format.ts reads a YYYY-MM-DD day as that day in every time zone, as the other date helpers do.

v1.21.0

Choose a tag to compare

@dashboardblocks-mirror dashboardblocks-mirror released this 04 Nov 19:48

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() or useChatStream), and Files 01 needs an upload function. Chart tooltips near the edge of a card open inside it.

v1.20.4

Choose a tag to compare

@dashboardblocks-mirror dashboardblocks-mirror released this 03 Nov 15:51

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): InlineEditField takes a prefix, text the value always follows, such as tandem.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

Choose a tag to compare

@dashboardblocks-mirror dashboardblocks-mirror released this 02 Nov 19:18

Patch Changes

  • 74c17ef: Tooltip Link (tooltip-link) adds ButtonLink, a link drawn as a button with its label, such as View activity.
  • 6f4b935: Team's share settings (team-06) take linkAccessOptions, 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

Choose a tag to compare

@dashboardblocks-mirror dashboardblocks-mirror released this 02 Nov 13:12

Patch Changes

  • c245519: AI Assistant's ChatComposer shows 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. upload uploads each file as it's attached, and Send waits until every one is done.
  • 6a5f6c4: AI Assistant's ChatConversation lets 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. useChatStream keeps the versions, and AIChat takes versions and selectVersion for a chat that stores its own. sendMessage takes the messageId of the question an edit replaces, as the AI SDK's does.
  • fbc253c: Kanban: a column can show an icon before its title, onMove can return false to refuse a move (the card stays where it was), and with onOpen a click, a tap or Enter opens a card while Space picks it up.
  • 31910ff: AI Assistant's AIMarkdown shows text wrapped with markChange as added or removed, and markdownBlocks splits Markdown into its top-level blocks. HighlightedCode takes lineChanges to mark lines a change added or removed, and copyButton={false} to leave out its Copy button. Shortcut Button takes variant='secondary', and App Shell exports useDockedPanel, which says whether the screen is wide enough for a panel beside the page.
  • ef3325a: ShortcutButton takes variant='default', for the one filled action of a view.
  • 2110776: ShortcutButton with listen leaves a key alone while focus is inside an element marked data-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 a WorkloadBar: 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

Choose a tag to compare

@dashboardblocks-mirror dashboardblocks-mirror released this 01 Nov 10:24

Patch Changes

  • 6c538e2: Page Header's ActionsMenu takes a className for its trigger, a ghost variant and the icon-xs size, 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, and NavItem takes onSelect for an item that does something, such as opening search. PlanUsage draws its bar in the chart colour, orange from 75% and red from 90%, takes a note, such as when the allowance resets, and leaves out the count when it has no unit.
  • 34e3f1a: Shortcut Button: the Escape key shows as Esc in its tooltip.
  • 03ea436: formatTimeZoneOffset writes a zero offset as GMT in every runtime. ICU 78, in Node 26 and Chrome 153, had made it GMT+0, so a server and a browser on different versions rendered different text.

v1.20.0

Choose a tag to compare

@dashboardblocks-mirror dashboardblocks-mirror released this 31 Oct 19:58

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. toolLabels takes { running, done }. New agent-ring part, and the ai-assistant part has a ChatPanel (an assistant in a panel with New conversation and Close, which AI Assistant 01 now uses) and a ChatConversation (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: toMinorUnits moves from the Invoice part to format.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

Choose a tag to compare

@dashboardblocks-mirror dashboardblocks-mirror released this 31 Oct 17:01

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: daysBetween and dayIn in format.ts take a date string, and count a YYYY-MM-DD date as that day in every time zone.
  • ce06fc0: Chart Panel's legend draws a hatched key, for a part that is estimated or projected.
  • 518f025: Number Field takes a form prop, 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 TabLinks takes an id and an indicator on each tab, so a page can move focus to a tab it opened and mark one with unsaved changes. ActionsMenu takes an id, an icon, a size and a variant, so it can be the menu half of a split button.