@godxjp/ui 13.16.1 → 13.16.3

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.
@@ -20,7 +20,7 @@ function AppShell({
20
20
  ] });
21
21
  return /* @__PURE__ */ jsxs("div", { className: "app-root", "data-collapsed": sidebarCollapsed ? "true" : void 0, children: [
22
22
  /* @__PURE__ */ jsx("aside", { className: "app-sidebar", "aria-label": t("layout.appShell.sidebarLabel"), children: sidebar }),
23
- /* @__PURE__ */ jsx("header", { className: "app-topbar", "aria-label": t("layout.appShell.headerLabel"), children: resolvedTopbar }),
23
+ /* @__PURE__ */ jsx("header", { className: "app-topbar ui-scale-fixed", "aria-label": t("layout.appShell.headerLabel"), children: resolvedTopbar }),
24
24
  /* @__PURE__ */ jsxs("main", { className: "app-main", "aria-label": t("layout.appShell.mainLabel"), children: [
25
25
  breadcrumb !== void 0 && /* @__PURE__ */ jsx("div", { className: "app-breadcrumb", children: breadcrumb }),
26
26
  children
@@ -23,7 +23,12 @@
23
23
  * `var(--radius-2xl)` directly; without a generated utility Tailwind drops the unused var). */
24
24
  @source inline("rounded-{xs,xl,2xl}");
25
25
  @source inline("text-2xs");
26
- @source "../**/*.{tsx,ts}";
26
+ /* `.js` matters: the published package ships only compiled JS under dist (no
27
+ * .tsx sources), and this file is copied verbatim into dist/styles — without
28
+ * it Tailwind finds no component classes in consumers (unstyled popovers and
29
+ * selects, and Radix scroll-lock freezes the page because pointer-events-auto
30
+ * is never emitted). In-repo the glob scans src; published, it scans dist. */
31
+ @source "../**/*.{tsx,ts,js}";
27
32
  @import "../tokens/base.css";
28
33
  @import "./density.css";
29
34
  @import "./shell-layout.css";
@@ -35,6 +35,9 @@
35
35
 
36
36
  .app-topbar {
37
37
  grid-area: topbar;
38
+ /* Persistent navigation chrome stays a FIXED size regardless of density — the
39
+ * AppShell adds `.ui-scale-fixed` to this <header> (resets the whole size-token
40
+ * set to baseline; --scaling:1 alone is not enough — see foundation.css). */
38
41
  display: flex;
39
42
  min-width: 0;
40
43
  align-items: center;
@@ -180,6 +180,62 @@
180
180
  --phi-p2: calc(var(--phi-p1) * var(--ratio-phi));
181
181
  }
182
182
 
183
+ /* SCALE-FIXED — pin a subtree to the baseline size (--scaling 1) so persistent
184
+ * chrome (the AppShell topbar, the global search palette, …) does NOT resize with
185
+ * the density axis. Setting only --scaling:1 is insufficient: the size tokens were
186
+ * already substituted at :root and inherit baked, so each --scaling-derived token
187
+ * (and every semantic token that aliases the spacing grid) is RE-DECLARED here to
188
+ * re-resolve at baseline. Apply via `className="… ui-scale-fixed"`. Must list every
189
+ * scaled token — the scale-fixed coverage test guards against drift. */
190
+ .ui-scale-fixed {
191
+ --scaling: 1;
192
+ --space-1: 0.25rem;
193
+ --space-2: 0.5rem;
194
+ --space-3: 0.75rem;
195
+ --space-4: 1rem;
196
+ --space-5: 1.25rem;
197
+ --space-6: 1.5rem;
198
+ --space-8: 2rem;
199
+ --space-10: 2.5rem;
200
+ --space-12: 3rem;
201
+ --radius: 0.375rem;
202
+ --control-height: var(--control-height-default);
203
+ /* baseline tier values (2rem ∓ step) as literals — keeps the control-sizing
204
+ * guard happy and avoids re-deriving from the (baked) active --control-height. */
205
+ --control-height-sm: 1.75rem;
206
+ --control-height-lg: 2.25rem;
207
+ --control-height-xs: 1.5rem;
208
+ --control-icon-size: 1rem;
209
+ --control-icon-size-sm: 0.875rem;
210
+ --control-padding-x: var(--space-3);
211
+ --control-gap: var(--space-2);
212
+ --control-gap-sm: var(--space-1);
213
+ --checkbox-size: 1rem;
214
+ --switch-width: 2.25rem;
215
+ --switch-height: 1.25rem;
216
+ --switch-thumb-size: 1rem;
217
+ --switch-thumb-translate: 1rem;
218
+ --table-row-height: var(--table-row-height-default);
219
+ --table-cell-padding-y: var(--space-2);
220
+ --phi-unit: var(--space-4);
221
+ --space-page-x: var(--space-6);
222
+ --space-page-y: var(--space-6);
223
+ --space-section: var(--space-4);
224
+ --space-stack-xs: var(--space-1);
225
+ --space-stack-sm: var(--space-2);
226
+ --space-stack-md: var(--space-4);
227
+ --space-stack-lg: var(--space-6);
228
+ --space-stack-xl: var(--space-10);
229
+ --space-inline-xs: var(--space-1);
230
+ --space-inline-sm: var(--space-2);
231
+ --space-inline-md: var(--space-3);
232
+ --space-inline-lg: var(--space-4);
233
+ --space-chrome-x: var(--space-6);
234
+ --space-chrome-y: var(--space-4);
235
+ --space-chrome-gap: var(--space-2);
236
+ --field-label-gap: var(--space-2);
237
+ }
238
+
183
239
  .dark,
184
240
  :root[data-theme="dark"] {
185
241
  /* Warm-tinted dark spine — keeps the hue-60 character at low lightness.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@godxjp/ui",
3
- "version": "13.16.1",
3
+ "version": "13.16.3",
4
4
  "type": "module",
5
5
  "packageManager": "pnpm@10.29.1",
6
6
  "sideEffects": false,