gridsmith-ui 0.29.0 → 0.29.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +25 -0
- package/dist/charts.d.ts +5 -0
- package/dist/charts.js +2 -2
- package/dist/charts.js.map +1 -1
- package/dist/chat.js +5 -5
- package/dist/{chunk-GXMTS3YD.js → chunk-37WOC7F7.js} +29 -12
- package/dist/chunk-37WOC7F7.js.map +1 -0
- package/dist/{chunk-OPFJEL3Z.js → chunk-4TUJXDRU.js} +96 -15
- package/dist/chunk-4TUJXDRU.js.map +1 -0
- package/dist/{chunk-EIWXVICU.js → chunk-6A5RHW2W.js} +3 -3
- package/dist/{chunk-EIWXVICU.js.map → chunk-6A5RHW2W.js.map} +1 -1
- package/dist/{chunk-XVB55M3N.js → chunk-72SDAX54.js} +2 -2
- package/dist/chunk-72SDAX54.js.map +1 -0
- package/dist/{chunk-YUTF2X6B.js → chunk-FUKSLQ77.js} +8 -8
- package/dist/{chunk-YUTF2X6B.js.map → chunk-FUKSLQ77.js.map} +1 -1
- package/dist/{chunk-DQCHCLEJ.js → chunk-I3MTQ3CS.js} +5 -5
- package/dist/{chunk-DQCHCLEJ.js.map → chunk-I3MTQ3CS.js.map} +1 -1
- package/dist/{chunk-66JJCQU3.js → chunk-JTU7OBYJ.js} +5 -3
- package/dist/chunk-JTU7OBYJ.js.map +1 -0
- package/dist/{chunk-2ROVDVLZ.js → chunk-MFAWJSMJ.js} +3 -3
- package/dist/{chunk-2ROVDVLZ.js.map → chunk-MFAWJSMJ.js.map} +1 -1
- package/dist/{chunk-TJEV7YAY.js → chunk-MKFWHWBK.js} +2 -2
- package/dist/{chunk-TJEV7YAY.js.map → chunk-MKFWHWBK.js.map} +1 -1
- package/dist/{chunk-BRAXJEEP.js → chunk-QNHVPE2B.js} +4 -4
- package/dist/{chunk-BRAXJEEP.js.map → chunk-QNHVPE2B.js.map} +1 -1
- package/dist/{chunk-TRDXWHD2.js → chunk-RECCCA7Z.js} +6 -6
- package/dist/chunk-RECCCA7Z.js.map +1 -0
- package/dist/{chunk-R4GXKH4U.js → chunk-RJEUQ7RL.js} +10 -8
- package/dist/chunk-RJEUQ7RL.js.map +1 -0
- package/dist/{chunk-CRQ6KCRD.js → chunk-ZHUVLBCC.js} +7 -4
- package/dist/chunk-ZHUVLBCC.js.map +1 -0
- package/dist/data-grid.d.ts +2 -2
- package/dist/data-grid.js +9 -9
- package/dist/data-grid.js.map +1 -1
- package/dist/editor-mentions.js +2 -2
- package/dist/editor.js +4 -4
- package/dist/icons.d.ts +9 -0
- package/dist/icons.js +1 -1
- package/dist/index.d.ts +38 -13
- package/dist/index.js +135 -148
- package/dist/index.js.map +1 -1
- package/dist/kanban.js +6 -6
- package/dist/kanban.js.map +1 -1
- package/dist/resizable.js +7 -7
- package/dist/roots.css +2 -0
- package/dist/{table-utils-BkjNEWts.d.ts → table-utils-CxnpFHRF.d.ts} +5 -4
- package/dist/{use-pagination-BxcRlNQG.d.ts → use-pagination-QykGSREv.d.ts} +7 -0
- package/dist/utils.js.map +1 -1
- package/dist/virtualized.d.ts +1 -1
- package/dist/virtualized.js +6 -6
- package/package.json +1 -1
- package/dist/chunk-66JJCQU3.js.map +0 -1
- package/dist/chunk-CRQ6KCRD.js.map +0 -1
- package/dist/chunk-GXMTS3YD.js.map +0 -1
- package/dist/chunk-OPFJEL3Z.js.map +0 -1
- package/dist/chunk-R4GXKH4U.js.map +0 -1
- package/dist/chunk-TRDXWHD2.js.map +0 -1
- package/dist/chunk-XVB55M3N.js.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,30 @@
|
|
|
1
1
|
# gridsmith-ui changelog
|
|
2
2
|
|
|
3
|
+
## 0.29.1 — 9 October 2026
|
|
4
|
+
|
|
5
|
+
**Fixed.**
|
|
6
|
+
- **A ribbon Launcher no longer sits under the toasts** (Sprint 21.6 session B, A7 and its review). A ribbon at the end of a side edge, or on the bottom edge, now claims the corner it sits by, as a bubble or pill does, so the ToastProvider's stack lands above it. A mid-edge bottom ribbon holds the whole bottom edge (both corners and the centre), and a mid-edge side ribbon holds its side, so a tall stack passes beside it. Measured in Chrome before the fix, a bottom-right toast covered 90 × 13 px of a bottom ribbon and 13 × 44 px of a side one. The claim follows the ribbon when its `container` changes, and every launcher's claim now counts the safe area it sits inside. Nothing changes in an app's code.
|
|
7
|
+
- **Bottom-centre toasts move out of the way too.** The `bottom-center` position read no inset, so a mid-edge bottom ribbon sat under it; it now reads `--ds-toast-inset-bottom-center` (one spacing step by default), as the corners read theirs.
|
|
8
|
+
- **Toasts keep their gutter beside a claimed side.** Beside a docked column or an open side panel, a corner stack keeps a gutter at the window's other edge: below about 870 px with the assistant's panel open, it had reached the edge. A centred toast now centres in the room the two sides leave, where it could reach under an open side panel, and never leaves the screen.
|
|
9
|
+
- **An open non-modal Drawer keeps the toasts off it.** A side panel (`modal={false}`, such as the shell's assistant) now holds its side while open, so toasts slide past it as they do past a docked AsidePanel; a bottom one lifts them above itself. Every side claim (this one, AsidePanel's and a side-anchored CornerPanel's) stops where a toast at its narrowest would leave the window, so on a narrow window the stack overlaps the panel's outer part instead of leaving the screen.
|
|
10
|
+
- **A non-modal left Drawer becomes the bottom sheet on a phone.** It became a full-width side panel there, with nothing to keep focus in it, while a right or bottom one became the modal sheet. Now every non-modal drawer does, whatever its side, and so does an `AsidePanel side="left"` collapsed on a phone; a modal left drawer (the navigation convention) is still a side panel, and `mobile` still chooses.
|
|
11
|
+
- **One tooltip per control, never two.** Since round 15 an icon Button stepped its own tooltip aside inside a Tooltip; now every tooltip a component draws on its own does: cut-off text in a Badge, Tag, Tabs or TextOverflow, a RelativeTime's date, an avatar's name, a panel's own buttons. It steps aside only where a Tooltip that can show covers it, so a Tooltip around a component that passes no props on still leaves the component's own. A `title` never becomes the browser's second tooltip beside ours: a Tooltip drops the title of the element or Button it wraps, and an icon Button with an aria-label shows its title's text in its one tooltip. Nothing changes in an app's code.
|
|
12
|
+
- **The page's padding follows the Launcher however the slot wraps it.** AppShell read the corner to clear from the `launcher` slot's element, so a Fragment or an app's own component around the Launcher read as bottom-right. The Launcher now tells the shell its corner itself (`registerLauncher` on the shell's context; a ribbon still takes none).
|
|
13
|
+
- **The Calendar's corners keep their keyboard outline whole** (Sprint 25.27). The month's day in a bottom corner, week view's last 23:00 and the year view's December now round their corner as the card does, so their outline follows the curve instead of being cut off at it. Nothing changes at rest. The Calendar's events keep their look, flush with the card's and week strips' edges, so their outline can be cut where they meet an edge; the rest of it shows, as WCAG AA asks.
|
|
14
|
+
- **Week view's bars from the week's first day end on their last day.** A bar starting in the first column ran a divider too far for each extra day, and a week-long bar ran 6–12 px past the strip.
|
|
15
|
+
- **Narrow week view brings the keyboard's event into view whole.** Where the week scrolls sideways, an event or hour reached with Tab partly past the edge now scrolls fully in, clear of the strip's fade; the hours strip draws its edge fade again, which a style of its own had replaced.
|
|
16
|
+
- **The compact Calendar's month buttons keep room for their outline at any density.** At the Compact density the header's padding was 3.5 px; it is never under 4 px now. Nothing moves at the default density.
|
|
17
|
+
- **The library's code and its styles switch at the same width** (Sprint 25.28). `useBreakpoint(key)` was true at or below a breakpoint, in pixels, while Tailwind's `sm:`, `md:` and `lg:` start at it, in rem. So at exactly 640, 768, 1024 and 1280 px both claimed the width: at 640 an app with its assistant on a launcher showed no assistant button at all. And at a larger browser text size the styles' breakpoints moved while the code's didn't: at Large text, from 641 to 799 px, it showed two. The hook now asks Tailwind's own question, below the breakpoint, `(width < 40rem)` for `sm`, so each layout change happens at one width at any text size. What changes at exactly each width: at 640 the tablet layout (the menu drawer, side drawers, dialogs not full-screen, the month's bars, the Launcher); at 768 the sidebar's rail, tables as tables and responsive Tabs as their list, so an upright iPad matches the newer ones; at 1024 the full sidebar and a docked AsidePanel. `BreakpointWidthProvider`'s width counts the same way (below the breakpoint), so the builder's tablet preview at 768 shows the rail.
|
|
18
|
+
- **An app that calls `useBreakpoint` or `BreakpointWidthProvider` itself shifts at each breakpoint's exact width too,** and a test stub of `matchMedia` that reads `(max-width: …px)` no longer matches the hook's query, which is now `(width < Nrem)` (N the breakpoint's px ÷ 16).
|
|
19
|
+
|
|
20
|
+
### Upgrade note for agents (0.29.0 → 0.29.1)
|
|
21
|
+
|
|
22
|
+
`^0.29.0` covers 0.29.1, so `npm update gridsmith-ui` brings it in. Nothing in an app's code changes, and the theme's tokens need no regenerating: the one new token, `--ds-toast-inset-bottom-center`, comes from `roots.css`. Four cases need a look:
|
|
23
|
+
- **Your own `useBreakpoint` calls.** `useBreakpoint(key)` is true below the breakpoint, where it was true at or below it, and counts in rem: at exactly 640, 768, 1024 or 1280 px (the default breakpoints, at the default text size) it is now false, as Tailwind's `sm:`, `md:`, `lg:` and `xl:` start there, and it moves with the browser's text size as they do. Code that pairs it with those classes now agrees with them and needs nothing; code that read it as "at or below" no longer includes the breakpoint's own width. `BreakpointWidthProvider`'s `width` counts the same way.
|
|
24
|
+
- **A test's `matchMedia` stub.** One that parses `(max-width: …px)` no longer matches the hook's query, `(width < Nrem)` with N the breakpoint's px ÷ 16 (`(width < 48rem)` for `md`): parse that form, and match when the stubbed width is under N × 16.
|
|
25
|
+
- **A test that finds a control by its title.** An icon-size Button with an `aria-label`, and an element or Button that a `Tooltip` wraps, no longer carry a `title` attribute (the Button's own tooltip shows the title's text instead), so `getByTitle` doesn't find them: find them by role and name (`getByRole('button', { name })`).
|
|
26
|
+
- **A hand-built `AppShellContextValue`.** The type gains `registerLauncher`, which is required: a test that mocks `useAppShell` with a whole value adds `registerLauncher: () => () => {}`. The context itself isn't exported, so nothing else builds one.
|
|
27
|
+
|
|
3
28
|
## 0.29.0 — 6 October 2026
|
|
4
29
|
|
|
5
30
|
The deprecated props are removed before beta (Sprint 28.2, B8). Each was an alias kept for one version after its replacement shipped, and code that still writes one fails the type-check, as any unknown prop does: a 0.x minor release, 0.29.0, says so, and an app pinned to `^0.28.0` doesn't reach it by itself. The upgrade note at the end says what to write instead.
|
package/dist/charts.d.ts
CHANGED
|
@@ -397,6 +397,11 @@ interface ChartContainerProps {
|
|
|
397
397
|
}
|
|
398
398
|
declare function ChartContainer({ height, title, loading, emptyState, variant, children, className, }: ChartContainerProps): react_jsx_runtime.JSX.Element;
|
|
399
399
|
|
|
400
|
+
/**
|
|
401
|
+
* The theme's chart series colours, `count` of them in series order (repeating past the palette's length), read from the
|
|
402
|
+
* live tokens so they follow the theme and its mode; `soft` gives the lighter series. Before the theme's styles are
|
|
403
|
+
* committed, and on the server, it returns the fallback shades, then the theme's on the next layout.
|
|
404
|
+
*/
|
|
400
405
|
declare function useChartColors(count: number, soft?: boolean): string[];
|
|
401
406
|
|
|
402
407
|
export { AreaChart, type AreaChartProps, type AreaDef, BarChart, type BarChartProps, type BarDef, type CategoryKind, ChartContainer, CompositeChart, type CompositeChartProps, FunnelChart, type FunnelChartProps, LineChart, type LineChartProps, type LineDef, PieChart, type PieChartProps, RadarChart, type RadarChartProps, type RadarDataKey, RadialBarChart, type RadialBarChartProps, SankeyChart, type SankeyChartProps, ScatterChart, type ScatterChartProps, type ScatterSeries, Sparkline, type SparklineProps, TreemapChart, type TreemapChartProps, type TreemapNode, type ValueFormat, categoryKind, useChartColors };
|
package/dist/charts.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { useFormatLocale, useHydrated, TITLE_TEXT, Skeleton } from './chunk-
|
|
2
|
+
import { useFormatLocale, useHydrated, TITLE_TEXT, Skeleton } from './chunk-MFAWJSMJ.js';
|
|
3
3
|
import { formatLocale, elementType } from './chunk-OYNUU346.js';
|
|
4
4
|
import { mergeRefs } from './chunk-7Q46JXSK.js';
|
|
5
|
-
import { cn, GLASS_SURFACE } from './chunk-
|
|
5
|
+
import { cn, GLASS_SURFACE } from './chunk-JTU7OBYJ.js';
|
|
6
6
|
import { createContext, forwardRef, useContext, useRef, useState, useMemo, useLayoutEffect, useEffect, useId, useSyncExternalStore, Children, isValidElement } from 'react';
|
|
7
7
|
import { ResponsiveContainer, BarChart as BarChart$1, CartesianGrid, XAxis, YAxis, Tooltip, Bar, LineChart as LineChart$1, Line, AreaChart as AreaChart$1, Area, PieChart as PieChart$1, Pie, Cell, ComposedChart, ScatterChart as ScatterChart$1, ZAxis, Scatter, RadarChart as RadarChart$1, PolarGrid, PolarAngleAxis, PolarRadiusAxis, Radar, RadialBarChart as RadialBarChart$1, RadialBar, FunnelChart as FunnelChart$1, Funnel, LabelList, Treemap, Sankey, Text, Legend, getNiceTickValues, Rectangle } from 'recharts';
|
|
8
8
|
import { createPortal } from 'react-dom';
|