@godxjp/ui 32.15.0 → 33.0.0
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/README.md +2 -2
- package/agent/START-HERE.md +4 -4
- package/agent/components/Tabs.json +1 -1
- package/agent/components/Toolbar.json +2 -9
- package/agent/components.json +3 -10
- package/agent/index.json +4 -4
- package/agent/llms.txt +5 -5
- package/agent/tokens.json +0 -6
- package/dist/components/navigation/index.d.ts +1 -1
- package/dist/components/navigation/toolbar.d.ts +2 -2
- package/dist/components/navigation/toolbar.js +0 -3
- package/dist/contracts/measurement.json +1 -1
- package/dist/props/components/navigation.prop.d.ts +10 -12
- package/dist/props/registry.d.ts +0 -5
- package/dist/props/registry.js +0 -5
- package/dist/styles/layers.json +1 -1
- package/dist/styles/layout.css +0 -33
- package/dist/styles.css +1 -1
- package/dist/tokens/components/navigation.css +0 -2
- package/docs/migrations/v33.md +60 -0
- package/package.json +2 -2
- package/scripts/ui-audit.mjs +13 -0
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
# Migrating to @godxjp/ui v33
|
|
2
|
+
|
|
3
|
+
Off-cycle approved: Pham Thai Duong 2026-10-15 — FilterBar overflow="scroll" taught consumers to build sideways-scrolling filter bars; removing it cannot wait for the next scheduled major.
|
|
4
|
+
|
|
5
|
+
v33 removes one thing: the horizontally scrolling filter bar. `FilterBar` (and its alias
|
|
6
|
+
`Toolbar`) no longer accepts an `overflow` prop. A filter bar now always wraps. All six packages
|
|
7
|
+
(`@godxjp/ui`, `@godxjp/ui-mcp`, `@godxjp/markdown`, `@godxjp/editor`, `@godxjp/block-editor` and
|
|
8
|
+
`@godxjp/chat`) move to 33.0.0 together.
|
|
9
|
+
|
|
10
|
+
## Why
|
|
11
|
+
|
|
12
|
+
The library recommended `overflow="scroll"` for list pages with many filters and long Japanese,
|
|
13
|
+
English or Vietnamese labels. A consumer list page followed that advice, and the result was
|
|
14
|
+
measured at 1240px in Vietnamese: the filter strip was 1945px wide inside a 921px frame, the first
|
|
15
|
+
filter label was clipped at the inline-start edge, and the user had to scroll sideways to reach
|
|
16
|
+
filters they could not see. Leading products do not do this. GitHub, Linear, Gmail, Jira and
|
|
17
|
+
Shopify Polaris IndexFilters never scroll a filter bar sideways; they let it wrap, or they collapse
|
|
18
|
+
the rarely used filters behind a single "More filters" or "Add filter" control.
|
|
19
|
+
|
|
20
|
+
## Breaking changes
|
|
21
|
+
|
|
22
|
+
### FilterBar / Toolbar `overflow` is removed
|
|
23
|
+
|
|
24
|
+
- The `overflow` prop is gone from `FilterBar` and `Toolbar`, and the `FilterBarOverflowProp` type
|
|
25
|
+
is no longer exported. Passing `overflow` is now a TypeScript error.
|
|
26
|
+
- The strip no longer carries a `data-overflow` attribute, and the
|
|
27
|
+
`.ui-toolbar[data-overflow="scroll"]` rules are removed from the stylesheet.
|
|
28
|
+
- The bar always wraps: below 640px the filters stack in one column, from 640px up they flow onto
|
|
29
|
+
as many rows as they need. This is the behaviour the old default `overflow="wrap"` already had,
|
|
30
|
+
so a bar that never passed `overflow`, or passed `overflow="wrap"`, renders exactly as before.
|
|
31
|
+
|
|
32
|
+
### Token `--filter-bar-scroll-padding-y` is removed
|
|
33
|
+
|
|
34
|
+
It only reserved the scrollbar gutter under the removed scroll strip. A theme that sets it can
|
|
35
|
+
delete the line; nothing reads it any more.
|
|
36
|
+
|
|
37
|
+
`Tabs overflow`, `Topbar overflow` and the chat attachments `overflow` are different components
|
|
38
|
+
and are unchanged.
|
|
39
|
+
|
|
40
|
+
## How to upgrade
|
|
41
|
+
|
|
42
|
+
1. Upgrade all six packages to 33.0.x together.
|
|
43
|
+
2. Run `npx godxjp-ui audit <src>`. The new
|
|
44
|
+
`filter-bar-no-overflow` rule reports every `<FilterBar>` or `<Toolbar>` that still passes
|
|
45
|
+
`overflow`. The TypeScript build reports the same places.
|
|
46
|
+
3. Delete the `overflow` prop at each place it reports. If a page used `overflow="scroll"` because
|
|
47
|
+
it has many filters, check how tall the wrapped bar is. When it takes more than two rows, keep
|
|
48
|
+
the few filters people use most in the bar and move the rest behind one "More filters" Button
|
|
49
|
+
that opens a Sheet holding them as `FilterBarGroup`s. The library has no dedicated component for
|
|
50
|
+
this; it is a composition of Button, Sheet and FilterBarGroup, and the applied filters can still
|
|
51
|
+
show as `chips` on the bar.
|
|
52
|
+
4. Remove any page CSS that targeted `[data-overflow]` on the filter strip, and any theme line that
|
|
53
|
+
set `--filter-bar-scroll-padding-y`.
|
|
54
|
+
5. Run `npx godxjp-ui sync-rules` and restart your coding agent so it stops recommending the
|
|
55
|
+
removed prop.
|
|
56
|
+
|
|
57
|
+
## Support
|
|
58
|
+
|
|
59
|
+
v32 receives no further releases. A security fix for v32 is an owner exception, decided case by
|
|
60
|
+
case.
|
package/package.json
CHANGED
package/scripts/ui-audit.mjs
CHANGED
|
@@ -477,6 +477,19 @@ const RULES = [
|
|
|
477
477
|
message:
|
|
478
478
|
"Abstract value components use onValueChange, not onChange. Reserve onChange for DOM events.",
|
|
479
479
|
},
|
|
480
|
+
{
|
|
481
|
+
id: "filter-bar-no-overflow",
|
|
482
|
+
replacement: "the default wrapping FilterBar",
|
|
483
|
+
severity: "error",
|
|
484
|
+
spansElement: true,
|
|
485
|
+
// `overflow` was removed from FilterBar/Toolbar in 33.0.0. Its `scroll` value made the bar one
|
|
486
|
+
// horizontally scrolling strip — measured in a consumer at 1240px (vi): 1945px of filters in a
|
|
487
|
+
// 921px frame, the first label clipped. Tabs and Topbar keep their own `overflow`; only the
|
|
488
|
+
// filter bar's opening tag is matched (`<FilterBarGroup` and `<DataTable.Toolbar` are not).
|
|
489
|
+
test: new RegExp(`<(?:FilterBar|Toolbar)\\b${ATTRS}\\boverflow=`, "g"),
|
|
490
|
+
message:
|
|
491
|
+
"FilterBar/Toolbar has no `overflow` prop (removed in 33.0.0) — a filter bar wraps and never scrolls sideways. Delete the prop; with many filters keep the common ones in the bar and put the rest behind one 'More filters' Button that opens a Sheet.",
|
|
492
|
+
},
|
|
480
493
|
{
|
|
481
494
|
id: "no-arbitrary-hex",
|
|
482
495
|
replacement: "a semantic token",
|