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
12 times, most recently
from
October 13, 2026 03:48
21ee114 to
df732f0
Compare
Contributor
Author
Code Metrics Report
Details | | main (d8d4ec3) | #579 (5cf1d06) | +/- |
|---------------------|----------------|----------------|------|
| Coverage | 88.6% | 88.6% | 0.0% |
| Files | 208 | 208 | 0 |
| Lines | 6263 | 6263 | 0 |
| Covered | 5552 | 5552 | 0 |
- | Test Execution Time | 1m53s | 2m12s | +19s |Code coverage of files in pull request scope (100.0% → 100.0%, patch 100.0%)
Reported by octocov |
github-actions
Bot
force-pushed
the
changeset-release/main
branch
2 times, most recently
from
October 13, 2026 06:54
ddd1966 to
85c5b30
Compare
github-actions
Bot
force-pushed
the
changeset-release/main
branch
from
October 13, 2026 08:14
85c5b30 to
0394ea5
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.ecc2f57: Add
SidebarSectionfor grouping flat sidebar navigation items under a static heading. UnlikeSidebarGroup, a section is neither collapsible nor navigable, and its items keep top-level styling. In the icon rail the heading is hidden. Combine it withSidebarSeparatorto add dividers.SidebarSeparatornow adds 4px of space above the line and 8px below it, so the items after a separator read as a new section. Sidebars that already useSidebarSeparatorget this extra spacing.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.95bc8f2: Add
showDayOfWeektoDateField,DatePicker, andDateRangePicker. It appends the locale's short day of the week where the locale places it (2025/12/19(金),Fri, 12/19/2025). It is read-only and derived from the entered date. While a date segment is mid-entry it keeps showing the previous day of the week, so typing25never flashes the 2nd's. Screen readers hear the full day name with each date segment's value.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.8bf9540: Fix
DataTable.Filtersdatetime values to serialize as RFC 3339 instants and display existing instants in the configured timezone (or the user's local timezone when unset).Document that apps should set
AppShell.timeZonefor shared business-day filtering;localedoes not determine the timezone. Clarify date-only versus datetime fields and the handling of programmatic and persisted filter values.8bf9540: Normalize datetime filters in metadata-backed collection hooks before initial queries and filter updates, including URL and saved-view restoration. Interpret timezone-less values in the AppShell timezone and reject invalid datetime values without dropping filter constraints; hooks without metadata remain unchanged.
Use the AppShell timezone consistently for built-in DataTable date cells and cell-menu filters, while preserving date-only calendar values. Reuse date formatters per column across rows and unchanged-column renders instead of constructing them for every cell.
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.d8d4ec3: Fix the selected sidebar item ignoring
--sidebar-accent-foreground.SidebarItem, linkedSidebarGroupheaders, and the auto-generated sidebar now mark the current page's button as active (data-active="true"), so its background, weight, and text colour all follow the sidebar accent tokens. Built-in themes look the same; themes that set a distinct--sidebar-accent-foregroundnow show it without a customrenderworkaround. Refs tailor-inc/platform-planning#1946.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.