Repository navigation
Version Packages - #579
Open
github-actions[bot] wants to merge 1 commit into
Open
Version Packages#579github-actions[bot] wants to merge 1 commit into
github-actions[bot] wants to merge 1 commit into
Conversation
github-actions
Bot
force-pushed
the
changeset-release/main
branch
4 times, most recently
from
October 6, 2026 11:27
739b6b1 to
6e3c86c
Compare
github-actions
Bot
force-pushed
the
changeset-release/main
branch
6 times, most recently
from
October 9, 2026 04:54
ba43e00 to
233bc5f
Compare
github-actions
Bot
force-pushed
the
changeset-release/main
branch
from
October 10, 2026 08:54
233bc5f to
0be05fb
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated.
Releases
@tailor-platform/app-shell@1.17.0
Minor Changes
31e0524: Add semantic colour roles (
--{info|success|warning|danger|neutral}-{surface|surface-hover|border|solid|solid-hover|text|contrast|indicator}), available as Tailwind colours.--status-*and--alert-*now alias these roles, and Badge reads them, sotextonsurfaceandcontrastonsolidare at least 4.5:1 in the default palette, in light and dark mode.A gray scale (
--primitive-gray-{50..950}, Tailwind neutral) is also added; the default palette's text and line tokens read it, with no value change.Visible changes in the default palette:
--status-*and--alert-*are deprecated and will be removed in the next major.bg-status-*andbg-alert-*keep working; new code uses the roles.bg-status-*andbg-alert-*change values.--status-defaultnow follows--muted-foreground(it was a fixed#737373), so it is theme-dependent and translucent in thecreamandbloompalettes.--status-*are fill colours; do not use them as text (below 4.5:1 in dark mode). Usetext-{intent}-textinstead (for exampletext-status-completedbecomestext-success-text).--{intent}-*; overriding--status-*or--alert-*no longer changes these components.errorandsubtle-error, and Alerterror, follow--danger-*instead of--destructive. Button andtext-destructivestill follow--destructive.ce4bcf9: Add
padding="none"toCard.Contentfor edge-to-edge content such as aTable,DataTableor divided list.Cells keep their own 24px inset, so the first column lines up with the card title. Row backgrounds stay inside the card's rounded corners, and a nested
DataTabledrops its own border. This replaces theclassName="px-0!"workaround.94f6a5a: Add bulk actions to
DataTable. PassselectionActionstouseDataTableand, while rows are selected,DataTable.Footerbecomes a bulk-action bar: the selection count, your actions, and a Clear button, with pagination kept alongside. Give an actioncanApplyto scope it to the selected rows it can act on — the bar shows that count, disables the action at zero, and hands only those rows toonClick. Return the promise fromonClickand the bar waits for it: actions are disabled with a spinner meanwhile, and the selection clears once it resolves (setkeepSelectionfor actions such as an export). An action that confirms first can hand its later request back through therunhelper —run(deleteRows(rows))from the dialog's confirm button — and get the same handling. Clear is disabled while a request is pending.RowActionandSelectionActionnow share a base type,DataTableAction(id,label,icon,variant,canApply), so one definition can be spread into bothrowActionsandselectionActions.RowActiongainscanApply; itsisDisabled, which reads the other way round, is deprecated but still honoured.Selection now also remembers the rows it holds across pages (
selectedRows), and a non-emptyselectionActionsenables selection on its own. The first three actions render as buttons and the rest collapse into a "More actions" menu. On a page-scrolling table the bar sticks to the bottom of the viewport until the table's end scrolls into view.Behavior change: the header checkbox is now page-scoped in both directions. Checking it adds the current page's rows to the selection instead of replacing it, and unchecking it removes only the current page's rows instead of clearing every page.
clearSelectionstill empties everything (and is now a no-op when nothing is selected), and the newdeselectAllRowsis the page-scoped counterpart ofselectAllRows.The
interaction/multi-selectpattern in the bundledapp-shell-patternsskill is rewritten aroundselectionActions, replacing the floating bar on a hand-built table.403eebe: Add typography role tokens. A role sets font size, line height, font weight, and letter spacing together. Ten
text-*utilities are available after you import@tailor-platform/app-shell/styles:text-heading-lg,text-heading-md,text-heading-sm,text-body-md,text-body-sm,text-label-md,text-label-sm,text-code-sm,text-body-md-relaxed, andtext-body-sm-relaxed.Each role reads four CSS variables named
--app-shell-type-<role>-<size|line-height|weight|letter-spacing>, which you can override on:root. AppShell'scn()now keeps a role together with a text color class, for example inclassName="text-label-md text-muted-foreground"passed to an AppShell component. If your app has its owntailwind-mergesetup, see the Typography section of the styling guide.Patch Changes
529b3ac: Fix the
form/modalpattern in the docs and the bundledapp-shell-patternsskill. Both examples built the dialog body on a native<form onSubmit>withnew FormData(event.currentTarget), which skipsFormvalidation and server-error routing and contradicts the pattern's own rules. They now useFormwithonFormSubmit(values), plain<Field.Control />, and atype="button"Cancel. Refs tailor-inc/platform-planning#2000.4c366d1: Fix 12-hour time display in
DateField,DatePickerandDateRangePicker. Withgranularityset tohour,minuteorsecondand a 12-hour cycle (hourCycle={12}, or a 12-hour locale such asen-US), afternoon values showed as e.g. "18:00 AM", and editing any segment saved them 12 hours early (06:xx). PM values now show as "06:00 PM", midnight and noon as 12 AM / 12 PM, and edits keep the correct hour. ChanginghourCycle(or a locale change that flips the default cycle) on a mounted field now re-encodes the time segments instead of misreading them. Refs tailor-inc/platform-planning#2039.430fd6a:
DatePickerandDateRangePickernow open their calendar on the current field value. Previously a date typed into the segments (or set from outside while closed) was ignored, so the popover opened on today's month — or on whatever month was last viewed — and arrow-key + Enter selected relative to that. The calendar now focuses the selected/typed date on every open (the range start, else a typed end), falling back to today when empty.5481215: Fix the hook documentation and the bundled
app-shell-patternsskill where the examples did not match the real return types. BothuseAppShell()anduseAppShellData()expose acontextDataproperty (notcontext, and not the data object itself);useAppShell()also returns the configuration.useAppShellConfig()returns{ title, icon, favicon, appInfo, configurations }withmodulesunderconfigurations, anduseToast()returns the sonnertoastfunction (toast("Saved"),toast.success(...)) rather than{ toast }with a{ title, description, variant }object. Copying the old examples produced TS2339 and TS2353 errors.8e58b98: Fix localized breadcrumb overrides by recognizing translation functions created by
labels.t()and resolving callback-returnedLocalizedStringvalues using the current AppShell locale. This applies to modules, resources, and file-based page metadata while preserving existing URL-segment callbacks.Use
breadcrumbTitle: labels.t("orders")directly, orbreadcrumbTitle: (segment) => labels.t("order", { id: segment })for dynamic labels, withoutas string. The existing() => labels.t(key)form remains supported.