@godxjp/ui 33.18.0 → 33.19.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/agent/START-HERE.md +1 -1
- package/agent/components/Flex.json +1 -1
- package/agent/components/Form.json +3 -3
- package/agent/components/FormField.json +2 -2
- package/agent/components/Sheet.json +1 -1
- package/agent/components.json +7 -7
- package/agent/index.json +2 -2
- package/agent/llms.txt +3 -3
- package/dist/contracts/measurement.json +1 -1
- package/dist/props/registry.d.ts +1 -1
- package/dist/props/registry.js +1 -1
- package/dist/props/vocabulary/shared.prop.d.ts +13 -2
- package/dist/styles/layers.json +1 -1
- package/package.json +2 -2
package/agent/START-HERE.md
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
You are about to write code against a design system you did not author. This file is the whole
|
|
4
4
|
contract. Read it before you write JSX.
|
|
5
5
|
|
|
6
|
-
**This catalog describes `@godxjp/ui` 33.
|
|
6
|
+
**This catalog describes `@godxjp/ui` 33.19.0.** If the project you are editing has a different
|
|
7
7
|
version in its `package.json`, read the pinned catalog for THAT version instead
|
|
8
8
|
(`…/v<their-version>/agent/…`). A catalog newer than the installed package describes props that do
|
|
9
9
|
not exist yet; older, and it hides props that do. Neither failure announces itself.
|
|
@@ -95,7 +95,7 @@
|
|
|
95
95
|
{
|
|
96
96
|
"description": "A FIXED column: number = px, string = any CSS length. Comes with flex: none — a width a sibling can still squeeze is a suggestion, and stacked rows would start at different x offsets. Leaves data-width-raw on the DOM so the measurement stays countable, like gapRaw/padRaw.",
|
|
97
97
|
"name": "width",
|
|
98
|
-
"type": "
|
|
98
|
+
"type": "WidthProp"
|
|
99
99
|
},
|
|
100
100
|
{
|
|
101
101
|
"description": "CENTRE this box and CAP it at a page measure (--page-measure-narrow 42rem / -medium 48rem / -wide 72rem): margin-inline:auto + inline-size:100% + max-inline-size. THE public answer to \"full-bleed outside, measured column inside\" — a marketing <section> paints edge to edge and its inner Flex measure=\"wide\" holds the content on the page measure. Deliberately NOT on PageContainer: that owns page padding and a header/toolbar/footer scaffold, so a full-bleed page cannot consume it, and the refusal left the centred column owned by nobody — three showcases each hand-wrote the same four declarations (gh#839). It adds NO gutter: the page inset is pad={{ inline: 6 }}, and one band with two padding owners drifts. A MAX, so nothing binds below the cap at 390px. An explicit `width` wins. Do not give a READING column \"wide\" — prose stays narrow/medium, which bracket Bringhurst's 45-75 characters. Omitted emits no attribute at all.",
|
|
@@ -13,12 +13,12 @@
|
|
|
13
13
|
{
|
|
14
14
|
"description": "Label column width in horizontal layout (number→px). e.g. 120 or '8rem'.",
|
|
15
15
|
"name": "labelWidth",
|
|
16
|
-
"type": "
|
|
16
|
+
"type": "WidthProp"
|
|
17
17
|
},
|
|
18
18
|
{
|
|
19
|
-
"description": "Cap the control width
|
|
19
|
+
"description": "Cap the control width: number→px, or a CSS length ('20rem', '50%', 'calc(…)'). Omit to fill the column. Caps the control only — the helper and error still span the field column. A size word ('md', 'lg') is a type error, not a width (gh#1431).",
|
|
20
20
|
"name": "controlWidth",
|
|
21
|
-
"type": "
|
|
21
|
+
"type": "WidthProp"
|
|
22
22
|
},
|
|
23
23
|
{
|
|
24
24
|
"defaultValue": "\"end\"",
|
|
@@ -61,12 +61,12 @@
|
|
|
61
61
|
{
|
|
62
62
|
"description": "Override the Form's label width for this field.",
|
|
63
63
|
"name": "labelWidth",
|
|
64
|
-
"type": "
|
|
64
|
+
"type": "WidthProp"
|
|
65
65
|
},
|
|
66
66
|
{
|
|
67
67
|
"description": "Override the Form's control width for this field. Caps the control only — the helper and error still span the field column.",
|
|
68
68
|
"name": "controlWidth",
|
|
69
|
-
"type": "
|
|
69
|
+
"type": "WidthProp"
|
|
70
70
|
},
|
|
71
71
|
{
|
|
72
72
|
"description": "Span N columns when inside a `columns` Form grid.",
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
{
|
|
24
24
|
"description": "On SheetContent (side left/right): desired panel width (number→px). Default w-3/4 sm:max-w-md.",
|
|
25
25
|
"name": "width",
|
|
26
|
-
"type": "
|
|
26
|
+
"type": "WidthProp"
|
|
27
27
|
},
|
|
28
28
|
{
|
|
29
29
|
"description": "On SheetContent (same name as on DialogContent): fires on every close before focus returns to the trigger. Call event.preventDefault() and focus your own target (e.g. the new page's heading after a drawer navigation) to send focus there instead (gh#1134).",
|
package/agent/components.json
CHANGED
|
@@ -1020,7 +1020,7 @@
|
|
|
1020
1020
|
{
|
|
1021
1021
|
"description": "A FIXED column: number = px, string = any CSS length. Comes with flex: none — a width a sibling can still squeeze is a suggestion, and stacked rows would start at different x offsets. Leaves data-width-raw on the DOM so the measurement stays countable, like gapRaw/padRaw.",
|
|
1022
1022
|
"name": "width",
|
|
1023
|
-
"type": "
|
|
1023
|
+
"type": "WidthProp"
|
|
1024
1024
|
},
|
|
1025
1025
|
{
|
|
1026
1026
|
"description": "CENTRE this box and CAP it at a page measure (--page-measure-narrow 42rem / -medium 48rem / -wide 72rem): margin-inline:auto + inline-size:100% + max-inline-size. THE public answer to \"full-bleed outside, measured column inside\" — a marketing <section> paints edge to edge and its inner Flex measure=\"wide\" holds the content on the page measure. Deliberately NOT on PageContainer: that owns page padding and a header/toolbar/footer scaffold, so a full-bleed page cannot consume it, and the refusal left the centred column owned by nobody — three showcases each hand-wrote the same four declarations (gh#839). It adds NO gutter: the page inset is pad={{ inline: 6 }}, and one band with two padding owners drifts. A MAX, so nothing binds below the cap at 390px. An explicit `width` wins. Do not give a READING column \"wide\" — prose stays narrow/medium, which bracket Bringhurst's 45-75 characters. Omitted emits no attribute at all.",
|
|
@@ -5960,12 +5960,12 @@
|
|
|
5960
5960
|
{
|
|
5961
5961
|
"description": "Label column width in horizontal layout (number→px). e.g. 120 or '8rem'.",
|
|
5962
5962
|
"name": "labelWidth",
|
|
5963
|
-
"type": "
|
|
5963
|
+
"type": "WidthProp"
|
|
5964
5964
|
},
|
|
5965
5965
|
{
|
|
5966
|
-
"description": "Cap the control width
|
|
5966
|
+
"description": "Cap the control width: number→px, or a CSS length ('20rem', '50%', 'calc(…)'). Omit to fill the column. Caps the control only — the helper and error still span the field column. A size word ('md', 'lg') is a type error, not a width (gh#1431).",
|
|
5967
5967
|
"name": "controlWidth",
|
|
5968
|
-
"type": "
|
|
5968
|
+
"type": "WidthProp"
|
|
5969
5969
|
},
|
|
5970
5970
|
{
|
|
5971
5971
|
"defaultValue": "\"end\"",
|
|
@@ -6096,12 +6096,12 @@
|
|
|
6096
6096
|
{
|
|
6097
6097
|
"description": "Override the Form's label width for this field.",
|
|
6098
6098
|
"name": "labelWidth",
|
|
6099
|
-
"type": "
|
|
6099
|
+
"type": "WidthProp"
|
|
6100
6100
|
},
|
|
6101
6101
|
{
|
|
6102
6102
|
"description": "Override the Form's control width for this field. Caps the control only — the helper and error still span the field column.",
|
|
6103
6103
|
"name": "controlWidth",
|
|
6104
|
-
"type": "
|
|
6104
|
+
"type": "WidthProp"
|
|
6105
6105
|
},
|
|
6106
6106
|
{
|
|
6107
6107
|
"description": "Span N columns when inside a `columns` Form grid.",
|
|
@@ -8349,7 +8349,7 @@
|
|
|
8349
8349
|
{
|
|
8350
8350
|
"description": "On SheetContent (side left/right): desired panel width (number→px). Default w-3/4 sm:max-w-md.",
|
|
8351
8351
|
"name": "width",
|
|
8352
|
-
"type": "
|
|
8352
|
+
"type": "WidthProp"
|
|
8353
8353
|
},
|
|
8354
8354
|
{
|
|
8355
8355
|
"description": "On SheetContent (same name as on DialogContent): fires on every close before focus returns to the trigger. Call event.preventDefault() and focus your own target (e.g. the new page's heading after a drawer navigation) to send focus there instead (gh#1134).",
|
package/agent/index.json
CHANGED
|
@@ -54,7 +54,7 @@
|
|
|
54
54
|
"note": "Pin to the tag that matches the @godxjp/ui version you installed. A catalog newer than your package describes props you do not have; older, and it hides props you do.",
|
|
55
55
|
"read": {
|
|
56
56
|
"live": "https://raw.githubusercontent.com/godx-jp/godxjp-ui/main/agent/index.json",
|
|
57
|
-
"pinned": "https://raw.githubusercontent.com/godx-jp/godxjp-ui/v33.
|
|
57
|
+
"pinned": "https://raw.githubusercontent.com/godx-jp/godxjp-ui/v33.19.0/agent/index.json"
|
|
58
58
|
},
|
|
59
59
|
"source": "mcp/src/data — the same data @godxjp/ui-mcp serves — plus the foundation and semantic token tiers, read from src/tokens/*.css",
|
|
60
60
|
"start": "https://raw.githubusercontent.com/godx-jp/godxjp-ui/main/agent/START-HERE.md",
|
|
@@ -68,5 +68,5 @@
|
|
|
68
68
|
"foundation": "the seeds a consumer is invited to set — --primary, --background, --radius",
|
|
69
69
|
"semantic": "named roles that follow the seeds — --ring, --text-link, --overlay-background"
|
|
70
70
|
},
|
|
71
|
-
"version": "33.
|
|
71
|
+
"version": "33.19.0"
|
|
72
72
|
}
|
package/agent/llms.txt
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
# @godxjp/ui
|
|
2
2
|
|
|
3
3
|
> A Japanese-enterprise React design system: 171 components, 2263 design tokens,
|
|
4
|
-
> 44 cardinal rules. This file is the entry point for AI agents. Catalog version 33.
|
|
4
|
+
> 44 cardinal rules. This file is the entry point for AI agents. Catalog version 33.19.0.
|
|
5
5
|
|
|
6
6
|
If your client can run a process, do not read these files — run the MCP server instead
|
|
7
|
-
(`npx @godxjp/ui-mcp@33.
|
|
7
|
+
(`npx @godxjp/ui-mcp@33.19.0`). It is searchable and version-locked. These files exist for agents
|
|
8
8
|
that can only fetch URLs.
|
|
9
9
|
|
|
10
10
|
## Start
|
|
@@ -27,7 +27,7 @@ that can only fetch URLs.
|
|
|
27
27
|
## Pinning
|
|
28
28
|
|
|
29
29
|
Every URL above tracks `main`. To pin to the release a project actually installed, swap `main` for
|
|
30
|
-
the tag: `.../godx-jp/godxjp-ui/v33.
|
|
30
|
+
the tag: `.../godx-jp/godxjp-ui/v33.19.0/agent/...`. A catalog that does not match the installed
|
|
31
31
|
package describes props that are absent, or hides props that are present, and says nothing either way.
|
|
32
32
|
|
|
33
33
|
Pinned catalogs only exist for releases whose tag actually contains `agent/`. If `…/v<version>/agent/index.json` returns 404, that release predates this catalog: read `…/main/…` instead and compare `index.json` → `version` against the package you have, so you at least know which way it drifted.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$comment": "AUTO-GENERATED by scripts/gen-measurement-contract.mjs — do not edit. Read this instead of guessing: docs/MEASUREMENT-CONTRACT.md.",
|
|
3
|
-
"version": "33.
|
|
3
|
+
"version": "33.19.0",
|
|
4
4
|
"targetSize": {
|
|
5
5
|
"standard": "WCAG 2.2 SC 2.5.8 Target Size (Minimum), level AA — 24×24 CSS px",
|
|
6
6
|
"min": 24,
|
package/dist/props/registry.d.ts
CHANGED
|
@@ -122,7 +122,7 @@ export declare const VOCABULARY_REGISTRY: {
|
|
|
122
122
|
readonly WidthProp: {
|
|
123
123
|
readonly file: "vocabulary/shared.prop.ts";
|
|
124
124
|
readonly category: "shared";
|
|
125
|
-
readonly description:
|
|
125
|
+
readonly description: 'Explicit layout length (number→px | CSS length string: 20rem, 50%, calc()/min()/var()) — NOT the SizeProp tier; "md" is a type error';
|
|
126
126
|
};
|
|
127
127
|
readonly ControlWidthProp: {
|
|
128
128
|
readonly file: "vocabulary/shared.prop.ts";
|
package/dist/props/registry.js
CHANGED
|
@@ -118,7 +118,7 @@ const VOCABULARY_REGISTRY = {
|
|
|
118
118
|
WidthProp: {
|
|
119
119
|
file: "vocabulary/shared.prop.ts",
|
|
120
120
|
category: "shared",
|
|
121
|
-
description:
|
|
121
|
+
description: 'Explicit layout length (number\u2192px | CSS length string: 20rem, 50%, calc()/min()/var()) \u2014 NOT the SizeProp tier; "md" is a type error'
|
|
122
122
|
},
|
|
123
123
|
ControlWidthProp: {
|
|
124
124
|
file: "vocabulary/shared.prop.ts",
|
|
@@ -57,11 +57,21 @@ export type AsChildProp = boolean;
|
|
|
57
57
|
* would otherwise write at the call site.
|
|
58
58
|
*/
|
|
59
59
|
export type FlushProp = boolean;
|
|
60
|
+
/** A CSS length or percentage unit (CSS Values and Units 4 §5–6), as written after a number. */
|
|
61
|
+
type CssLengthUnit = "px" | "rem" | "em" | "%" | "ch" | "ex" | "lh" | "rlh" | "vw" | "vh" | "vi" | "vb" | "vmin" | "vmax" | "svw" | "svh" | "lvw" | "lvh" | "dvw" | "dvh" | "cqw" | "cqh" | "cqi" | "cqb" | "cqmin" | "cqmax" | "cm" | "mm" | "in" | "pt" | "pc";
|
|
60
62
|
/**
|
|
61
63
|
* An explicit layout dimension (NOT the `SizeProp` control-height tier). A `number` is treated as
|
|
62
|
-
* px; a `string`
|
|
64
|
+
* px; a `string` must be a CSS length the browser can use as written: a number with a unit
|
|
65
|
+
* (`"32rem"`, `"90vw"`, `"50%"`), an intrinsic keyword (`"auto"`, `"max-content"`,
|
|
66
|
+
* `"min-content"`, `"fit-content"`) or a math / custom-property expression (`calc()`, `min()`,
|
|
67
|
+
* `max()`, `clamp()`, `var()`, `fit-content()`).
|
|
68
|
+
*
|
|
69
|
+
* A size-tier word (`"sm"`, `"md"`, `"lg"`) is a type error, not a width: the value is written into
|
|
70
|
+
* CSS as-is, so `controlWidth="md"` was `--form-control-width: md` — invalid at computed-value time,
|
|
71
|
+
* which drops the cap and lets the control fill its column (gh#1431). A component that offers a
|
|
72
|
+
* width SCALE names it with its own union (`CenteredShellWidthProp`, `ControlWidthProp`).
|
|
63
73
|
*/
|
|
64
|
-
export type WidthProp = number | string
|
|
74
|
+
export type WidthProp = number | `${number}${CssLengthUnit}` | "auto" | "max-content" | "min-content" | "fit-content" | `calc(${string})` | `min(${string})` | `max(${string})` | `clamp(${string})` | `var(${string})` | `fit-content(${string})`;
|
|
65
75
|
/**
|
|
66
76
|
* How a control sizes on the inline axis: fill its column, hug its label, or sit at a bounded
|
|
67
77
|
* width the theme owns.
|
|
@@ -106,3 +116,4 @@ export type NotFoundContentProp = React.ReactNode;
|
|
|
106
116
|
* lets it size to its content, and a number pins it to that many pixels.
|
|
107
117
|
*/
|
|
108
118
|
export type PopupMatchWidthProp = boolean | number;
|
|
119
|
+
export {};
|
package/dist/styles/layers.json
CHANGED