@godxjp/ui 18.6.0 → 18.8.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.
Files changed (53) hide show
  1. package/dist/components/data-display/card.d.ts +27 -3
  2. package/dist/components/data-display/card.js +4 -1
  3. package/dist/components/data-entry/input-otp.d.ts +1 -1
  4. package/dist/components/feedback/alert.d.ts +20 -2
  5. package/dist/components/feedback/alert.js +11 -1
  6. package/dist/components/feedback/index.d.ts +2 -2
  7. package/dist/components/feedback/index.js +3 -1
  8. package/dist/components/layout/auth-shell.d.ts +4 -2
  9. package/dist/components/layout/index.d.ts +2 -0
  10. package/dist/components/layout/index.js +2 -0
  11. package/dist/components/layout/page-container.d.ts +1 -1
  12. package/dist/components/layout/page-container.js +19 -41
  13. package/dist/components/layout/page-header.d.ts +22 -0
  14. package/dist/components/layout/page-header.js +89 -0
  15. package/dist/components/navigation/filter-bar.d.ts +2 -2
  16. package/dist/components/navigation/filter-bar.js +44 -1
  17. package/dist/components/navigation/index.d.ts +1 -1
  18. package/dist/components/navigation/steps.d.ts +2 -2
  19. package/dist/components/navigation/steps.js +4 -2
  20. package/dist/components/ui/avatar.d.ts +1 -1
  21. package/dist/components/ui/avatar.js +2 -1
  22. package/dist/components/ui/input-otp.d.ts +15 -3
  23. package/dist/components/ui/input-otp.js +2 -1
  24. package/dist/email/tokens.generated.d.ts +2 -2
  25. package/dist/email/tokens.generated.js +2 -2
  26. package/dist/i18n/messages/en.json +11 -0
  27. package/dist/i18n/messages/ja.json +8 -0
  28. package/dist/i18n/messages/vi.json +8 -0
  29. package/dist/props/components/data-display.prop.d.ts +16 -0
  30. package/dist/props/components/data-entry.prop.d.ts +7 -0
  31. package/dist/props/components/feedback.prop.d.ts +6 -0
  32. package/dist/props/components/layout.prop.d.ts +53 -0
  33. package/dist/props/components/navigation.prop.d.ts +61 -0
  34. package/dist/props/registry.d.ts +75 -1
  35. package/dist/props/registry.js +96 -1
  36. package/dist/props/vocabulary/interaction.prop.d.ts +10 -2
  37. package/dist/props/vocabulary/layout.prop.d.ts +5 -2
  38. package/dist/styles/alert-layout.css +36 -0
  39. package/dist/styles/card-layout.css +49 -13
  40. package/dist/styles/control.css +12 -2
  41. package/dist/styles/data-display-layout.css +16 -0
  42. package/dist/styles/layout.css +113 -0
  43. package/dist/styles/navigation-layout.css +8 -3
  44. package/dist/styles/shell-layout.css +44 -1
  45. package/dist/tokens/components/card.css +12 -0
  46. package/dist/tokens/components/control.css +16 -0
  47. package/dist/tokens/components/data-display.css +12 -0
  48. package/dist/tokens/components/email.css +8 -2
  49. package/dist/tokens/components/feedback.css +20 -0
  50. package/dist/tokens/components/navigation.css +35 -0
  51. package/dist/tokens/components/shell.css +64 -4
  52. package/dist/tokens/semantic/layout.css +13 -0
  53. package/package.json +2 -2
@@ -81,10 +81,21 @@
81
81
  --topbar-height: auto;
82
82
  --topbar-inset: 0px;
83
83
  --topbar-gap: var(--space-2);
84
- /* At compact desktop/tablet widths the docked sidebar leaves too little inline room for three
85
- * intrinsically-sized clusters. The package hides the optional center slot before it can cover
86
- * the breadcrumb/title or end utilities. Consumers may opt back into another display strategy
87
- * (for example `flex`) once their center content has its own compact presentation. */
84
+ /* THIS KNOB DELETES CONTENT AT 1100px AND BELOW read before you ship a center slot.
85
+ * At compact desktop/tablet widths the docked sidebar leaves too little inline room for three
86
+ * intrinsically-sized clusters, so the package hides the optional center slot before it can
87
+ * cover the breadcrumb/title or end utilities (gh#244). The default is `none`, which means a
88
+ * global search trigger placed in `center` is INVISIBLE from 1100px down — including on every
89
+ * phone — unless the consumer opts back in. That default arrived in 18.6.0 and removed the slot
90
+ * for consumers who never changed a line of their own code (gh#12); it stays because the
91
+ * overlap it prevents is a real defect and flipping a shipped default twice is worse than
92
+ * documenting it once, but it is a DECISION, not an accident:
93
+ *
94
+ * :root { --topbar-center-compact-display: flex; } ← restore the slot at every width
95
+ *
96
+ * Opt back in only once the center content has a compact presentation of its own (an icon-only
97
+ * search trigger, a collapsing field). A page-local media query is the anti-pattern this knob
98
+ * replaces. */
88
99
  --topbar-center-compact-display: none;
89
100
  --org-switcher-trigger-height: 2.75rem;
90
101
  --org-switcher-trigger-padding-x: var(--space-2);
@@ -181,6 +192,18 @@
181
192
  --auth-shell-device-card-max-width: 23.75rem;
182
193
  --auth-shell-device-main-padding: 1rem;
183
194
  --auth-shell-device-main-padding-mobile: 0.9375rem 0.3125rem;
195
+ /* CODE FIELD measure — the preset owns it (gh#12). A device grant is the one canonical flow whose
196
+ * PRIMARY control is the code field, so leaving it on the generic square --otp-slot-size made the
197
+ * preset own the page but not its own subject: two 4-slot `appearance="grouped"` boxes rendered
198
+ * 146x38 (4 x the canonical 36px control tier + the 1px group border) against a 112x54 artboard.
199
+ * These are the per-slot boxes that ADD UP to that artboard group:
200
+ * inline 27.5px x 4 + 2 x 1px group border = 112px
201
+ * block 52px + 2 x 1px group border = 54px
202
+ * Literal artboard lengths, like every other preset measure here — they must not drift with
203
+ * --scaling. A service that groups its code differently overrides --otp-slot-inline-size /
204
+ * --otp-slot-block-size on its own field; the generic square knob is untouched everywhere else. */
205
+ --auth-shell-device-otp-slot-inline-size: 1.71875rem;
206
+ --auth-shell-device-otp-slot-block-size: 3.25rem;
184
207
 
185
208
  /* Context-selection preset — 25rem card measure on desktop/tablet, edge-to-edge on mobile
186
209
  * (0 inline gutter) with a 16px rhythm between the intro, the card and the remember row. */
@@ -201,6 +224,43 @@
201
224
  --auth-shell-recovery-main-padding: 1rem;
202
225
  --auth-shell-recovery-main-padding-mobile: 0.9375rem;
203
226
 
227
+ /* Registration preset (gh#256) — the canonical sign-up measure. Two things make it structurally
228
+ * different from every preset above, and both are the reason it could not be expressed by
229
+ * re-using `login`:
230
+ *
231
+ * 1. LONG-FORM SCROLLING. A registration card is the tallest surface in the hosted-identity set
232
+ * (name · email · password · confirm · strength meter · consent · submit · provider row), and
233
+ * a vertically CENTRED tall card clips its own top on a short viewport — the top overflows
234
+ * above the scroll origin and becomes unreachable. So the column is start-aligned and the
235
+ * block-start inset becomes ordinary page padding the user can scroll past.
236
+ * 2. FOOTER CLEARANCE. The legal/consent footer must never be flush against the submit button
237
+ * at the end of a long scroll, so the block-end inset is a knob of its own rather than
238
+ * mirroring the block-start one.
239
+ *
240
+ * The 360px form measure and the 15px mobile inline gutter match the canonical Login flow exactly
241
+ * (22.5rem card, x=15 at 390 ⇒ width=360), so a user moving sign-in → sign-up on a phone never
242
+ * sees the surface jump. */
243
+ --auth-shell-registration-card-max-width: 22.5rem;
244
+ /* Block-start offsets are DERIVED from the canonical SCR-002 artboard, not chosen: the card
245
+ * anchors at y=284 (1440x900) and y=274 (390x844), and the column is
246
+ * card y = padding-block-start + identity slot + stack gap
247
+ * so 284 - 112 - 20 = 152px (9.5rem) and 274 - 112 - 20 = 142px (8.875rem). Like every canonical
248
+ * screen in this family the page passes NO brand bar (the mark lives INSIDE the column as
249
+ * AuthIdentity), so `main` starts at the viewport top and the offset is the whole anchor. */
250
+ --auth-shell-registration-main-padding-block-start: 9.5rem;
251
+ --auth-shell-registration-main-padding-block-start-mobile: 8.875rem;
252
+ --auth-shell-registration-main-padding-inline: 1rem;
253
+ --auth-shell-registration-main-padding-inline-mobile: 0.9375rem;
254
+ /* Footer clearance — the gap the legal footer keeps below the end of a long form. */
255
+ --auth-shell-registration-main-padding-block-end: 3rem;
256
+ --auth-shell-registration-main-padding-block-end-mobile: 2rem;
257
+ --auth-shell-registration-card-stack-gap: 1.25rem;
258
+ /* Fixed identity track, the same 112px `login` proved (gh#237). Without it the card anchor moves
259
+ * with the title/requester line count — measured here at 82.69px for one wrapped requester — so
260
+ * the canonical y above would hold for exactly one copy length and drift for every other. The
261
+ * slot absorbs absent / one-line / two-line identity content instead. */
262
+ --auth-shell-registration-identity-slot-block-size: 7rem;
263
+
204
264
  /* Labelled auth divider geometry. */
205
265
  --auth-shell-divider-gap: 0.625rem;
206
266
  --auth-shell-divider-label-font-size: 0.6875rem;
@@ -83,6 +83,19 @@
83
83
  * page moves. 11rem = 176px, i.e. the control ends flush with the compact page gutter. */
84
84
  --page-header-extra-measure: 11rem; /* 176px */
85
85
 
86
+ /* Inline gap between the `<h1>` and the PageHeader `meta` slot (a status Badge, a record ID) when
87
+ * they share the title band (gh#255). Only consumed when `meta` is passed — a header without it
88
+ * emits no band wrapper at all, so no existing page moves. */
89
+ --page-header-meta-gap: var(--space-inline-sm);
90
+
91
+ /* PageHeader `loading` placeholders (gh#255). The title/subtitle elements wear the shared
92
+ * `.ui-skeleton-block` skin, so they need only a MEASURE and a block size — a service retunes the
93
+ * pending band's proportions here instead of per page. */
94
+ --page-title-placeholder-measure: 14rem; /* 224px */
95
+ --page-title-placeholder-block-size: 1.5em;
96
+ --page-subtitle-placeholder-measure: 22rem; /* 352px */
97
+ --page-subtitle-placeholder-block-size: 1.25em;
98
+
86
99
  /* Bounded page MEASURE (gh#245 / gh#247) — the shared inline cap applied to the page HEADER and
87
100
  * BODY together, so the header `extra` action ends on the same edge as the body surface (the
88
101
  * `variant="narrow"` complaint: it caps only `.ui-page-body`, leaving the header action out at
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@godxjp/ui",
3
- "version": "18.6.0",
4
- "godxUiMcp": "18.6.0",
3
+ "version": "18.8.0",
4
+ "godxUiMcp": "18.8.0",
5
5
  "type": "module",
6
6
  "packageManager": "pnpm@10.29.1",
7
7
  "pnpm": {