@nxgt/material 3.4.0 → 3.6.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 (34) hide show
  1. package/CHANGELOG.md +78 -0
  2. package/README.md +2 -2
  3. package/dist/components/components.css +1 -0
  4. package/dist/components/theme-tokens.css +78 -71
  5. package/dist/components/tones/tokens.css +5 -5
  6. package/dist/components/ui/display/chip/chip-hairline.css +1 -1
  7. package/dist/components/ui/layout/app-shell/activity-backdrop.css +24 -0
  8. package/dist/components/ui/layout/sidebar/sidebar-tokens.css +1 -1
  9. package/dist/components/ui/overlays/dialog/dialog.css +2 -2
  10. package/dist/components/ui/primitives/field-box/field-box-tokens.css +1 -1
  11. package/dist/components/ui/primitives/toggle-group/toggle-group-segmented.css +2 -2
  12. package/dist/components/ui/primitives/toggle-group/toggle-group-separate.css +1 -1
  13. package/dist/{components-p7VoF7gR.js → components-BCYZgeoV.js} +21 -14
  14. package/dist/components.js +1 -1
  15. package/dist/lib/components/ui/layout/app-shell/activity-layout.d.ts +23 -1
  16. package/dist/main.js +1 -1
  17. package/dist/material.css +1 -1
  18. package/docs/components/data-display.md +2 -2
  19. package/docs/components/navigation-and-layout.md +1 -0
  20. package/docs/guides/app-shell.md +47 -0
  21. package/docs/guides/backgrounds.md +7 -1
  22. package/docs/guides/theming.md +86 -43
  23. package/docs/troubleshooting.md +50 -3
  24. package/lib/components/components.css +1 -0
  25. package/lib/components/theme-tokens.css +78 -71
  26. package/lib/components/tones/tokens.css +5 -5
  27. package/lib/components/ui/display/chip/chip-hairline.css +1 -1
  28. package/lib/components/ui/layout/app-shell/activity-backdrop.css +24 -0
  29. package/lib/components/ui/layout/sidebar/sidebar-tokens.css +1 -1
  30. package/lib/components/ui/overlays/dialog/dialog.css +2 -2
  31. package/lib/components/ui/primitives/field-box/field-box-tokens.css +1 -1
  32. package/lib/components/ui/primitives/toggle-group/toggle-group-segmented.css +2 -2
  33. package/lib/components/ui/primitives/toggle-group/toggle-group-separate.css +1 -1
  34. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,83 @@
1
1
  # @nxgt/material
2
2
 
3
+ ## 3.6.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [#1358](https://github.com/softistx/nxgt-material/pull/1358) [`74ef6b1`](https://github.com/softistx/nxgt-material/commit/74ef6b152c24a7e94bdf709c66c846b019eb829d) Thanks [@SteveGT96](https://github.com/SteveGT96)! - The neutrals of both themes move from a blue slate (hue 247 to 266; the dark background was a deep navy) to a softly violet-tinted palette (hue about 290, low chroma). Primary, the status hues and the layout do not change; `@nxgt/material-vue` ships the same token file, so it follows.
8
+
9
+ Light, old to new:
10
+
11
+ | Token | Old | New |
12
+ | --- | --- | --- |
13
+ | `--background` | `oklch(1 0 0)` | `oklch(0.973 0.008 293.9)` (`#f6f5fb`) |
14
+ | `--foreground`, `--card-foreground`, `--popover-foreground`, `--accent-foreground`, `--sidebar-foreground`, `--sidebar-primary`, `--sidebar-accent-foreground` | `oklch(0.14 0.036 258.53)` / `oklch(0.129 0.042 264.695)` / `oklch(0.216 0.006 56.043)` / `oklch(0.208 0.042 265.755)` | `oklch(0.227 0.017 290)` |
15
+ | `--muted`, `--track`, `--sidebar-accent` | `oklch(0.968 0.007 247.896)` | `oklch(0.955 0.012 292)` |
16
+ | `--muted-foreground` | `oklch(0.52 0.046 257.417)` | `oklch(0.478 0.032 292)` |
17
+ | `--accent` | `oklch(0.9182 0.0077 228.86)` | `oklch(0.91 0.016 293)` |
18
+ | `--border`, `--input`, `--sidebar-border` | `oklch(0.929 0.013 255.508)` | `oklch(0.912 0.016 293.7)` |
19
+ | `--ring`, `--sidebar-ring` | `oklch(0.704 0.04 256.788)` | `oklch(0.704 0.04 291)` |
20
+ | `--sidebar` | `oklch(0.984 0.003 247.858)` | `oklch(0.985 0.006 293.9)` |
21
+ | `--tooltip` | `oklch(0.446 0.043 257.281)` | `oklch(0.446 0.043 291)` |
22
+ | `--secondary` / `--success` / `--info` | lightness 0.50 / 0.48 / 0.50 | 0.48 / 0.46 / 0.48 |
23
+ | `--primary-text` (light) | `var(--primary)` | `color-mix(in oklab, var(--primary) 96%, black)` (the fill `--primary` is unchanged) |
24
+ | `--nxgt-tone-ring-share` | `65%` | `68%` |
25
+ | `--nxgt-field-border` (light) | 13 % of `--foreground` | 14 % |
26
+ | `--error-text` | `color-mix(in oklab, var(--error) 94%, black)` | `... 92%, black)` |
27
+
28
+ Dark, old to new:
29
+
30
+ | Token | Old | New |
31
+ | --- | --- | --- |
32
+ | `--background` | `oklch(0.14 0.036 258.53)` | `oklch(0.192 0.016 290.5)` (`#14131b`) |
33
+ | `--card`, `--popover`, `--sidebar` | `oklch(0.208 0.042 265.755)` | `oklch(0.232 0.019 289.4)` (`#1d1c26`) |
34
+ | `--foreground`, `--card-foreground`, `--popover-foreground`, `--accent-foreground`, `--sidebar-foreground`, `--sidebar-accent-foreground` | `oklch(0.984 0.003 247.858)` / `oklch(0.985 0.001 106.423)` | `oklch(0.943 0.012 291.3)` (`#ecebf4`) |
35
+ | `--primary-foreground`, `--secondary-foreground`, `--success-foreground`, `--info-foreground`, `--warning-foreground`, `--error-foreground`, `--sidebar-primary-foreground` | `oklch(0.984 0.003 247.858)` | `oklch(0.995 0.002 291.3)` |
36
+ | `--tertiary-foreground` | `oklch(0.14 0.036 258.53)` | `oklch(0.192 0.016 290.5)` |
37
+ | `--muted`, `--sidebar-accent` | `oklch(0.279 0.041 260.031)` | `oklch(0.27 0.022 290)` |
38
+ | `--accent` | `oklch(0.268 0.007 34.298)` | `oklch(0.27 0.022 290)` |
39
+ | `--muted-foreground` | `oklch(0.66 0.046 257.417)` | `oklch(0.725 0.03 292.2)` |
40
+ | `--border`, `--sidebar-border` | `oklch(1 0 0 / 10%)` | `oklch(0.301 0.025 291.4)` (`#2e2c3a`) |
41
+ | `--input` | `oklch(1 0 0 / 15%)` | `oklch(0.34 0.027 291.4)` |
42
+ | `--ring`, `--sidebar-ring` | `oklch(0.551 0.027 264.364)` | `oklch(0.551 0.03 290)` |
43
+ | `--track` | `oklch(0.52 0.03 257.417)` | `oklch(0.53 0.03 290)` |
44
+ | `--tooltip` / `--tooltip-foreground` | `oklch(0.929 0.013 255.508)` / `oklch(0.446 0.043 257.281)` | `oklch(0.925 0.012 291.3)` / `oklch(0.446 0.043 291)` |
45
+ | `--secondary` | `oklch(0.66 0.1135 245.65)` | `oklch(0.675 0.1135 245.65)` |
46
+
47
+ The lightness nudges (light `--secondary`, `--success`, `--info`, `--error-text`; dark `--secondary`) keep every contrast the token comments and the theming guide state at 4.5:1 (text) or 3:1 (UI) on the new surfaces. The dialog scrim, the lightbox backdrop and a few shadows took the same hue.
48
+
49
+ To keep the old slate, redefine the tokens after importing the stylesheet, under the same selectors, with the values in the "Old" columns above, for example:
50
+
51
+ ```css
52
+ :root {
53
+ --background: oklch(1 0 0);
54
+ --foreground: oklch(0.14 0.036 258.53);
55
+ --muted: oklch(0.968 0.007 247.896);
56
+ --muted-foreground: oklch(0.52 0.046 257.417);
57
+ --border: oklch(0.929 0.013 255.508);
58
+ --input: oklch(0.929 0.013 255.508);
59
+ }
60
+ .dark,
61
+ [data-theme="dark"] {
62
+ --background: oklch(0.14 0.036 258.53);
63
+ --foreground: oklch(0.984 0.003 247.858);
64
+ --card: oklch(0.208 0.042 265.755);
65
+ --popover: oklch(0.208 0.042 265.755);
66
+ --muted: oklch(0.279 0.041 260.031);
67
+ --muted-foreground: oklch(0.66 0.046 257.417);
68
+ --border: oklch(1 0 0 / 10%);
69
+ --input: oklch(1 0 0 / 15%);
70
+ }
71
+ ```
72
+
73
+ Screenshot tests of an app on the default theme need new baselines.
74
+
75
+ ## 3.5.0
76
+
77
+ ### Minor Changes
78
+
79
+ - [#1352](https://github.com/softistx/nxgt-material/pull/1352) [`9327a9f`](https://github.com/softistx/nxgt-material/commit/9327a9f742f66a533a6a5eb1ff8e81d8754fa70e) Thanks [@SteveGT96](https://github.com/SteveGT96)! - `ActivityLayout` takes a `backdrop` node, drawn behind the frame in place of its gradient and blobs: a `Background` preset from `@nxgt/material/backgrounds` (`<ActivityLayout backdrop={<Background preset="shapes" motif={{ shapes: MOTIF_SHAPES_ALL }} />}>`). It fills the layout in an `inert`, `aria-hidden` layer that takes no pointer; the root carries `data-backdrop` and plain CSS hides the blobs. Without the prop nothing changes. The `/backgrounds` entry is still never imported by the main one.
80
+
3
81
  ## 3.4.0
4
82
 
5
83
  ### Minor Changes
package/README.md CHANGED
@@ -309,7 +309,7 @@ Each area a consumer starts from has its own page under `docs/guides/`.
309
309
  | --- | --- |
310
310
  | [Forms](https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/guides/forms.md) | wiring fields to React Hook Form and Zod, composite values (contacts, opening hours), config-driven `Field`, server errors, what each field emits |
311
311
  | [i18n](https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/guides/i18n.md) | adding your strings next to the package's, switching language, translated Zod messages, SSR without a text mismatch |
312
- | [App shell](https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/guides/app-shell.md) | laying out an app with `ActivityLayout` (route changes cross-fade by default, `routeTransition={false}` opts out), its `items` (rendered as links; `linkComponent` to pass your own), the brand (`logo`, `name`, and `context` for the phone sheet's tenant line), the header's title, a route's `handle.title` as the page's `h1` in the app bar (`AppShellHandle`, `PageTitle`; it labels `<main>`, and `usePageTitleFocus()` focuses it after a navigation), and `AccountMenu`, the active entry and breadcrumbs (needs a data router; `breadcrumbRoot` replaces the home icon with a text link), the `<main>` landmark, the `h1` title and document scrolling |
312
+ | [App shell](https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/guides/app-shell.md) | laying out an app with `ActivityLayout` (route changes cross-fade by default, `routeTransition={false}` opts out), its `items` (rendered as links; `linkComponent` to pass your own), the brand (`logo`, `name`, and `context` for the phone sheet's tenant line), the header's title, a route's `handle.title` as the page's `h1` in the app bar (`AppShellHandle`, `PageTitle`; it labels `<main>`, and `usePageTitleFocus()` focuses it after a navigation), and `AccountMenu`, the active entry and breadcrumbs (needs a data router; `breadcrumbRoot` replaces the home icon with a text link), the `<main>` landmark, the `h1` title, document scrolling, and a background preset behind the shell (`backdrop`) |
313
313
  | [Theming](https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/guides/theming.md) | changing colours, radius or fonts, motion and corner tokens, dark mode, tones (the `data-tone` channel, app tones and the calm zone `data-density="calm"`), touch targets, using the compiled CSS without Tailwind |
314
314
  | [Printing](https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/guides/printing.md) | producing PDFs with `@nxgt/material/print` and getting the file in one call (download, new tab, preview, server `Response`) — its own entry since 2.0.0, with optional peers, a bundling trap on SSR servers, and the `next.config.ts` a Next.js route handler (and `output: 'standalone'`) needs |
315
315
  | [Maps](https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/guides/maps.md) | using `@nxgt/material/map` — browser-only, optional leaflet peers, `map.css` |
@@ -524,7 +524,7 @@ Not components: what the stylesheet gives any element.
524
524
 
525
525
  | Preview | Component | What it does | @nxgt/material-vue |
526
526
  | --- | --- | --- | --- |
527
- | <img src="https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/previews/navigation-layout-appshell.webp" width="120" alt="ActivityLayout"> | [`ActivityLayout`](https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/components/navigation-and-layout.md#activitylayout), `ActivityContent`, `AppSidebar`, `AppHeader`, `AppBreadcrumb`, `AppBreadcrumbItem`, `AppBreadcrumbSeparator` | App shell: sidebar built from `items`, a header with a mobile sheet, route breadcrumbs and a titled page; entries are real links, and `linkComponent` swaps the link. See the [app shell guide](https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/guides/app-shell.md). | `ActivityLayout`, `ActivityContent`, `AppSidebar`, `AppHeader`, `AppBreadcrumb` |
527
+ | <img src="https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/previews/navigation-layout-appshell.webp" width="120" alt="ActivityLayout"> | [`ActivityLayout`](https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/components/navigation-and-layout.md#activitylayout), `ActivityContent`, `AppSidebar`, `AppHeader`, `AppBreadcrumb`, `AppBreadcrumbItem`, `AppBreadcrumbSeparator` | App shell: sidebar built from `items`, a header with a mobile sheet, route breadcrumbs and a titled page; entries are real links, and `linkComponent` swaps the link; `backdrop` puts a `/backgrounds` preset behind it in place of the gradient. See the [app shell guide](https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/guides/app-shell.md). | `ActivityLayout`, `ActivityContent`, `AppSidebar`, `AppHeader`, `AppBreadcrumb` |
528
528
  | <img src="https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/previews/navigation-layout-accountmenu.webp" width="120" alt="AccountMenu"> | [`AccountMenu`](https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/components/navigation-and-layout.md#accountmenu) | The app bar's avatar menu: named after the account, the name and e-mail, the app's links, then an optional Theme choice (`themeChoice`) and a destructive Sign out with a busy state. | `AccountMenu` |
529
529
  | <img src="https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/previews/navigation-layout-authcard.webp" width="120" alt="AuthCard"> | [`AuthCard`](https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/components/navigation-and-layout.md#authcard) | The frame of a signed-out page: one `main`, a centred card whose title is the `h1` (focusable on an end state), a status or alert notice, a brand and toolbar row, safe-area padding. | `AuthCard` |
530
530
  | <img src="https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/previews/navigation-layout-sidebar.webp" width="120" alt="Sidebar"> | [`Sidebar`](https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/components/navigation-and-layout.md#sidebar), `SidebarHeader`, `SidebarContent`, `SidebarFooter`, `SidebarMenuItem`, `SidebarMenuLabel` | Collapsible navigation sidebar with icons, tooltips and active items. | `Sidebar` (same parts) |
@@ -56,6 +56,7 @@
56
56
  @import "./ui/actions/button-group/button-group.css";
57
57
  /* ActivityLayout: the route transition (cross-fade, none under reduced motion). */
58
58
  @import "./ui/layout/app-shell/route-transition.css";
59
+ @import "./ui/layout/app-shell/activity-backdrop.css";
59
60
  /* DataTable cards and tiles: the item shell (hairline, tint, start bar, columns by the list's width). */
60
61
  @import "./ui/collections/data-table/data-table-items.css";
61
62
  @import "./ui/collections/data-table/data-table-items-compact.css";
@@ -3,52 +3,57 @@
3
3
  * after importing the stylesheet, under the same selectors. */
4
4
  :root {
5
5
  --radius: 0.625rem;
6
- --background: oklch(1 0 0);
7
- --foreground: oklch(0.14 0.036 258.53);
6
+ --background: oklch(0.973 0.008 293.9);
7
+ --foreground: oklch(0.227 0.017 290);
8
8
  --card: oklch(1 0 0);
9
- --card-foreground: oklch(0.129 0.042 264.695);
9
+ --card-foreground: oklch(0.227 0.017 290);
10
10
  --strix: oklch(45.91% 0.1864 310.75);
11
11
  --popover: oklch(1 0 0);
12
- --popover-foreground: oklch(0.129 0.042 264.695);
12
+ --popover-foreground: oklch(0.227 0.017 290);
13
13
  --primary: oklch(46% 0.1135 276.35);
14
14
  --primary-foreground: oklch(0.984 0.003 247.858);
15
15
  /* Primary drawn as text or an icon on a normal surface (`text-primary-text`):
16
- the colour itself in light; the dark theme lifts it. */
17
- --primary-text: var(--primary);
18
- --secondary: oklch(50% 0.1135 245.65);
16
+ the colour mixed 4 % toward black in light, which keeps it 7.3:1 or more on
17
+ the violet page (7.9:1 on a Card; the colour itself gives 6.8:1 on the
18
+ page); the dark theme lifts it. */
19
+ --primary-text: color-mix(in oklab, var(--primary) 96%, black);
20
+ /* --secondary, --success and --info are 0.02 darker than before: on the
21
+ violet page tint (--background, 97.3 %) their own 15 % tonal tint gave the
22
+ text 4.3 to 4.5:1; now 4.7:1 or more on the page and on a Card. */
23
+ --secondary: oklch(48% 0.1135 245.65);
19
24
  --secondary-foreground: oklch(0.984 0.003 247.858);
20
- --muted: oklch(0.968 0.007 247.896);
21
- --muted-foreground: oklch(0.52 0.046 257.417);
25
+ --muted: oklch(0.955 0.012 292);
26
+ --muted-foreground: oklch(0.478 0.032 292);
22
27
  /* Non-text (WCAG 1.4.11): the empty part of a slider, a meter, a drawer
23
28
  handle. Light keeps the pale track; the value reads from the thumb. */
24
- --track: oklch(0.968 0.007 247.896);
29
+ --track: oklch(0.955 0.012 292);
25
30
  --track-fill: var(--primary);
26
- --tooltip: oklch(0.446 0.043 257.281);
31
+ --tooltip: oklch(0.446 0.043 291);
27
32
  --tooltip-foreground: oklch(1 0 0);
28
- --accent: oklch(0.9182 0.0077 228.86);
29
- --accent-foreground: oklch(0.216 0.006 56.043);
33
+ --accent: oklch(0.91 0.016 293);
34
+ --accent-foreground: oklch(0.227 0.017 290);
30
35
  /* Darker than the dark theme's: near-white text on a filled error surface
31
36
  reaches 4.8:1 (4.6 at 0.577), and the colour as text 5.0:1 on white. */
32
37
  --error: oklch(0.56 0.245 27.325);
33
38
  --error-foreground: oklch(0.984 0.003 247.858);
34
39
  /* Error drawn as text (a field's message, HelperText, a focused error menu
35
- item): 5.7:1 on white and 4.8:1 on the menu's bg-error/10 tint, where
36
- --error itself gives 5.0 and 4.2:1. */
37
- --error-text: color-mix(in oklab, var(--error) 94%, black);
40
+ item): 6.0:1 on white and 5.0:1 on the menu's bg-error/10 tint (4.7:1 on that
41
+ tint over the violet page), where --error itself gives 5.0 and 4.2:1. */
42
+ --error-text: color-mix(in oklab, var(--error) 92%, black);
38
43
  /* The foregrounds are near-white: these three are dark enough for WCAG AA
39
44
  text (4.5:1) on them, and for the same colours used as text on white. */
40
- --success: oklch(0.48 0.118 184.704);
45
+ --success: oklch(0.46 0.118 184.704);
41
46
  --success-foreground: oklch(0.984 0.003 247.858);
42
- --info: oklch(0.5 0.165 254.624);
47
+ --info: oklch(0.48 0.165 254.624);
43
48
  --info-foreground: oklch(0.984 0.003 247.858);
44
49
  /* Amber, a hue apart from --error (27): a warning must not read as a
45
50
  failure. 5.7:1 as text on white, 5.0:1 on its 10% tint, 5.5:1 under near-white text. */
46
51
  --warning: oklch(0.52 0.13 62);
47
52
  --warning-foreground: oklch(0.984 0.003 247.858);
48
53
  --destructive: var(--error);
49
- --border: oklch(0.929 0.013 255.508);
50
- --input: oklch(0.929 0.013 255.508);
51
- --ring: oklch(0.704 0.04 256.788);
54
+ --border: oklch(0.912 0.016 293.7);
55
+ --input: oklch(0.912 0.016 293.7);
56
+ --ring: oklch(0.704 0.04 291);
52
57
  --chart-1: oklch(0.646 0.222 41.116);
53
58
  --chart-2: oklch(0.6 0.118 184.704);
54
59
  --chart-3: oklch(0.398 0.07 227.392);
@@ -74,63 +79,65 @@
74
79
  --chart-soft-4-ink: oklch(0.52 0.16 310);
75
80
  --chart-soft-5: oklch(0.9 0.05 25);
76
81
  --chart-soft-5-ink: oklch(0.56 0.15 25);
77
- --sidebar: oklch(0.984 0.003 247.858);
78
- --sidebar-foreground: oklch(0.129 0.042 264.695);
79
- --sidebar-primary: oklch(0.208 0.042 265.755);
82
+ --sidebar: oklch(0.985 0.006 293.9);
83
+ --sidebar-foreground: oklch(0.227 0.017 290);
84
+ --sidebar-primary: oklch(0.227 0.017 290);
80
85
  --sidebar-primary-foreground: oklch(0.984 0.003 247.858);
81
- --sidebar-accent: oklch(0.968 0.007 247.896);
82
- --sidebar-accent-foreground: oklch(0.208 0.042 265.755);
83
- --sidebar-border: oklch(0.929 0.013 255.508);
84
- --sidebar-ring: oklch(0.704 0.04 256.788);
86
+ --sidebar-accent: oklch(0.955 0.012 292);
87
+ --sidebar-accent-foreground: oklch(0.227 0.017 290);
88
+ --sidebar-border: oklch(0.912 0.016 293.7);
89
+ --sidebar-ring: oklch(0.704 0.04 291);
85
90
  }
86
91
 
87
92
  .dark,
88
93
  [data-theme="dark"] {
89
- --background: oklch(0.14 0.036 258.53);
90
- --foreground: oklch(0.984 0.003 247.858);
91
- --card: oklch(0.208 0.042 265.755);
92
- --card-foreground: oklch(0.984 0.003 247.858);
93
- --popover: oklch(0.208 0.042 265.755);
94
- --popover-foreground: oklch(0.984 0.003 247.858);
94
+ --background: oklch(0.192 0.016 290.5);
95
+ --foreground: oklch(0.943 0.012 291.3);
96
+ --card: oklch(0.232 0.019 289.4);
97
+ --card-foreground: oklch(0.943 0.012 291.3);
98
+ --popover: oklch(0.232 0.019 289.4);
99
+ --popover-foreground: oklch(0.943 0.012 291.3);
95
100
  --primary: oklch(46% 0.1135 276.35);
96
- --primary-foreground: oklch(0.984 0.003 247.858);
101
+ --primary-foreground: oklch(0.995 0.002 291.3);
97
102
  /* Mixed 60 % toward white (the tonal Button labels' recipe): readable as text
98
103
  on --background and --card. */
99
104
  --primary-text: color-mix(in oklab, var(--primary) 40%, white);
100
- /* Brighter than the light one: it is read as text on the dark surfaces (6.5:1
101
- on --background, 5.8:1 on --card); a filled secondary surface mixes it toward --background
102
- (the opaque 70 % mix) to keep 5.2:1 under its near-white text. */
103
- --secondary: oklch(0.66 0.1135 245.65);
104
- --secondary-foreground: oklch(0.984 0.003 247.858);
105
- --muted: oklch(0.279 0.041 260.031);
106
- --muted-foreground: oklch(0.66 0.046 257.417);
107
- /* 3.6:1 on --background, 3.2:1 on --card; the fill 3.4:1 on the track. */
108
- --track: oklch(0.52 0.03 257.417);
105
+ /* Brighter than the light one: it is read as text on the dark surfaces (6.3:1
106
+ on --background, 5.8:1 on --card; 4.6:1 on its own 15 % tonal tint over a
107
+ Card). A filled secondary surface mixes it toward --background (the opaque
108
+ 70 % mix) to keep 5.2:1 under its near-white text (4.9:1 over a Card). */
109
+ --secondary: oklch(0.675 0.1135 245.65);
110
+ --secondary-foreground: oklch(0.995 0.002 291.3);
111
+ --muted: oklch(0.27 0.022 290);
112
+ --muted-foreground: oklch(0.725 0.03 292.2);
113
+ /* 3.5:1 on --background, 3.2:1 on --card; the fill 3.3:1 on the track. */
114
+ --track: oklch(0.53 0.03 290);
109
115
  --track-fill: oklch(0.85 0.09 276.35);
110
- --tooltip: oklch(0.929 0.013 255.508);
111
- --tooltip-foreground: oklch(0.446 0.043 257.281);
112
- --accent: oklch(0.268 0.007 34.298);
113
- --accent-foreground: oklch(0.985 0.001 106.423);
116
+ --tooltip: oklch(0.925 0.012 291.3);
117
+ --tooltip-foreground: oklch(0.446 0.043 291);
118
+ --accent: oklch(0.27 0.022 290);
119
+ --accent-foreground: oklch(0.943 0.012 291.3);
114
120
  --error: oklch(0.577 0.245 27.325);
115
- --error-foreground: oklch(0.984 0.003 247.858);
121
+ --error-foreground: oklch(0.995 0.002 291.3);
116
122
  /* --error stays the fill under near-white text; as text it would give only
117
- 4.2:1 on --background and 3.8:1 on --card. Lightened, 5.9 and 5.3:1. */
123
+ 3.9:1 on --background and 3.5:1 on --card. Lightened, 5.4 and 5.0:1. */
118
124
  --error-text: color-mix(in oklab, var(--error) 80%, white);
119
125
  /* The light brights: on the dark surfaces they read as text and as the
120
- badge's 60% tint, which keeps its contrast (7.3, 5.7 and 7.5:1). */
126
+ badge's 60% tint, which keeps its contrast under near-white text (success
127
+ 7.1:1, info 5.6:1, error 9.1:1). */
121
128
  --success: oklch(0.6 0.118 184.704);
122
- --success-foreground: oklch(0.984 0.003 247.858);
129
+ --success-foreground: oklch(0.995 0.002 291.3);
123
130
  --info: oklch(0.707 0.165 254.624);
124
- --info-foreground: oklch(0.984 0.003 247.858);
125
- /* Amber too, as text: 7.3:1 on --background and 6.5:1 on --card, 6.6:1 and
126
- 5.8:1 on its 10% tint; the badge's 60% fill under near-white text is
127
- 6.0:1 on a page and 5.6:1 on a Card. */
131
+ --info-foreground: oklch(0.995 0.002 291.3);
132
+ /* Amber too, as text: 6.7:1 on --background and 6.1:1 on --card, 5.9:1 and
133
+ 5.3:1 on its 10% tint; the badge's 60% fill under near-white text is
134
+ 5.8:1 on a page and 5.5:1 on a Card. */
128
135
  --warning: oklch(0.7 0.15 70);
129
- --warning-foreground: oklch(0.984 0.003 247.858);
136
+ --warning-foreground: oklch(0.995 0.002 291.3);
130
137
  --destructive: oklch(0.704 0.191 22.216);
131
- --border: oklch(1 0 0 / 10%);
132
- --input: oklch(1 0 0 / 15%);
133
- --ring: oklch(0.551 0.027 264.364);
138
+ --border: oklch(0.301 0.025 291.4);
139
+ --input: oklch(0.34 0.027 291.4);
140
+ --ring: oklch(0.551 0.03 290);
134
141
  --chart-1: oklch(0.488 0.243 264.376);
135
142
  --chart-2: oklch(0.696 0.17 162.48);
136
143
  --chart-3: oklch(0.769 0.188 70.08);
@@ -138,7 +145,7 @@
138
145
  --chart-5: oklch(0.645 0.246 16.439);
139
146
  /* The soft palette on the dark card: mid-tone fills (L 0.49, the sand a
140
147
  warmer 0.5 0.1 75), light inks of the same hues. Ink on the card:
141
- 1 8.90:1, 2 10.01, 3 10.80, 4 8.48, 5 8.52; at the 0.85 dim 6.44:1 or
148
+ 1 8.44:1, 2 9.46, 3 10.17, 4 8.03, 5 8.06; at the 0.85 dim 6.17:1 or
142
149
  more. Ink on its own fill (the outline): 1 3.13:1, 2 3.40, 3 3.69,
143
150
  4 3.11, 5 3.13. Every pair at least 54 degrees and ΔEOK 0.109 apart. */
144
151
  --chart-soft-1: oklch(0.49 0.08 255);
@@ -151,14 +158,14 @@
151
158
  --chart-soft-4-ink: oklch(0.78 0.13 310);
152
159
  --chart-soft-5: oklch(0.49 0.09 25);
153
160
  --chart-soft-5-ink: oklch(0.78 0.11 25);
154
- --sidebar: oklch(0.208 0.042 265.755);
155
- --sidebar-foreground: oklch(0.984 0.003 247.858);
161
+ --sidebar: oklch(0.232 0.019 289.4);
162
+ --sidebar-foreground: oklch(0.943 0.012 291.3);
156
163
  --sidebar-primary: oklch(0.488 0.243 264.376);
157
- --sidebar-primary-foreground: oklch(0.984 0.003 247.858);
158
- --sidebar-accent: oklch(0.279 0.041 260.031);
159
- --sidebar-accent-foreground: oklch(0.984 0.003 247.858);
160
- --sidebar-border: oklch(1 0 0 / 10%);
161
- --sidebar-ring: oklch(0.551 0.027 264.364);
164
+ --sidebar-primary-foreground: oklch(0.995 0.002 291.3);
165
+ --sidebar-accent: oklch(0.27 0.022 290);
166
+ --sidebar-accent-foreground: oklch(0.943 0.012 291.3);
167
+ --sidebar-border: oklch(0.301 0.025 291.4);
168
+ --sidebar-ring: oklch(0.551 0.03 290);
162
169
  }
163
170
 
164
171
  /* The tertiary colour (the strix violet), for accents and backgrounds beside
@@ -168,10 +175,10 @@
168
175
  --tertiary-foreground: oklch(0.984 0.003 247.858);
169
176
  }
170
177
 
171
- /* Dark: lifted like --secondary, as it is read as text (7.0:1 on --background,
172
- 6.3:1 on --card); its foreground is the dark surface, 7.0:1 on the fill. */
178
+ /* Dark: lifted like --secondary, as it is read as text (6.5:1 on --background,
179
+ 5.9:1 on --card); its foreground is the dark surface, 6.5:1 on the fill. */
173
180
  .dark,
174
181
  [data-theme="dark"] {
175
182
  --tertiary: oklch(0.7 0.15 310.75);
176
- --tertiary-foreground: oklch(0.14 0.036 258.53);
183
+ --tertiary-foreground: oklch(0.192 0.016 290.5);
177
184
  }
@@ -23,14 +23,14 @@
23
23
  * one, which the zone never touches. */
24
24
  --nxgt-tint-status: 20%;
25
25
  /* The share of the tone's text colour in a hairline (--nxgt-tone-ring): 3:1
26
- * or more against the surface in light and dark at 65 %. */
27
- --nxgt-tone-ring-share: 65%;
26
+ * or more against the surface in light and dark at 68 %. */
27
+ --nxgt-tone-ring-share: 68%;
28
28
 
29
29
  /* Neutral, the grey tone: the muted foreground, on the page colour. */
30
30
  --neutral: var(--muted-foreground);
31
31
  --neutral-foreground: var(--background);
32
32
 
33
- /* Text: the tone darkened (80 % tone, 20 % black), 6.6:1 or more on
33
+ /* Text: the tone darkened (80 % tone, 20 % black), 6.1:1 or more on
34
34
  * --background and --card and on its own container (over either). Primary and error keep
35
35
  * the tokens theme-tokens.css defines. */
36
36
  --secondary-text: color-mix(in oklab, var(--secondary) 80%, black);
@@ -88,8 +88,8 @@
88
88
  --neutral-text: color-mix(in oklab, var(--neutral) 75%, white);
89
89
 
90
90
  /* On the fill: the dark theme lifts these tones, and near-white on them
91
- * would give 2.5 to 3.5:1. The page colour is 5.4:1 or more on each.
92
- * Primary, tertiary and error keep their foreground (7.0, 7.0, 4.6:1). */
91
+ * would give 2.5 to 3.5:1. The page colour is 5.0:1 or more on each.
92
+ * Primary, tertiary and error keep their foreground (7.2, 6.5, 4.7:1). */
93
93
  --primary-on: var(--primary-foreground);
94
94
  --tertiary-on: var(--tertiary-foreground);
95
95
  --error-on: var(--error-foreground);
@@ -27,7 +27,7 @@
27
27
  --chip-face: var(--background);
28
28
  border-color: var(--chip-line);
29
29
  background: var(--chip-face);
30
- box-shadow: 0 1px 1px oklch(0.2 0.03 265 / 0.05);
30
+ box-shadow: 0 1px 1px oklch(0.2 0.03 290 / 0.05);
31
31
  }
32
32
  .nxgt-chip[data-look="hairline"][data-size="sm"] {
33
33
  --chip-r: 0.4375rem;
@@ -0,0 +1,24 @@
1
+ /* ActivityLayout's `backdrop` prop: a node (a `Background` preset from
2
+ * `@nxgt/material/backgrounds`) drawn behind the frame instead of the built-in
3
+ * gradient. `data-backdrop` is on the layout's root only while one is given, so
4
+ * without it nothing here matches and the gradient is unchanged.
5
+ *
6
+ * Plain CSS, no inline `style`, in `@layer components` like the rest: an app's
7
+ * utilities still win. The layer itself (`data-slot="activity-layout-backdrop"`)
8
+ * is positioned by classes in activity-layout.tsx. */
9
+ @layer components {
10
+ /* The gradient's own tint and blobs give way to the backdrop. */
11
+ [data-slot="activity-layout"][data-backdrop] {
12
+ background-image: none;
13
+ }
14
+ [data-slot="activity-layout"][data-backdrop] > [data-layer] {
15
+ display: none;
16
+ }
17
+
18
+ /* A preset fills the layer: the layer's size, not `100lvw x 100lvh`, which
19
+ * counts the scrollbar and a phone's toolbar. */
20
+ [data-slot="activity-layout-backdrop"] > [data-background] {
21
+ width: 100%;
22
+ height: 100%;
23
+ }
24
+ }
@@ -20,7 +20,7 @@
20
20
  .dark,
21
21
  [data-theme="dark"] {
22
22
  /* The dark theme's primary is too dark to read on its surfaces (2.5:1), so
23
- * the rail's label is a saturated lavender of its hue (6.3:1: lightness
23
+ * the rail's label is a saturated lavender of its hue (5.3:1: lightness
24
24
  * 0.72, chroma 0.15) on a denser pill (30 %, 35 % hovered). Light keeps the
25
25
  * lightness and chroma of primary (the `l` and `c` fallbacks). */
26
26
  --nxgt-sidebar-active-share: 30%;
@@ -10,10 +10,10 @@
10
10
  * motion: reduced-motion.css ends every animation at once. */
11
11
  @layer components {
12
12
  .nxgt-scrim {
13
- background-color: oklch(0.2 0.035 265 / 0.42);
13
+ background-color: oklch(0.2 0.035 290 / 0.42);
14
14
  }
15
15
  :where(.dark, [data-theme="dark"]) .nxgt-scrim {
16
- background-color: oklch(0.04 0.01 265 / 0.62);
16
+ background-color: oklch(0.04 0.01 290 / 0.62);
17
17
  }
18
18
  .nxgt-scrim[data-scrim="blur"] {
19
19
  -webkit-backdrop-filter: blur(6px) saturate(1.15);
@@ -26,7 +26,7 @@
26
26
  var(--error) 5%,
27
27
  var(--background)
28
28
  );
29
- --nxgt-field-border: color-mix(in oklab, var(--foreground) 13%, transparent);
29
+ --nxgt-field-border: color-mix(in oklab, var(--foreground) 14%, transparent);
30
30
  --nxgt-field-border-hover: color-mix(
31
31
  in oklab,
32
32
  var(--foreground) 24%,
@@ -13,8 +13,8 @@
13
13
  --tg-pill: color-mix(in oklab, var(--primary) 10%, var(--background));
14
14
  --tg-ring: color-mix(in oklab, var(--primary-text) 82%, var(--background));
15
15
  --tg-lift:
16
- 0 1px 2px oklch(0.2 0.04 265 / 0.1),
17
- 0 2px 6px -2px oklch(0.2 0.04 265 / 0.12);
16
+ 0 1px 2px oklch(0.2 0.04 290 / 0.1),
17
+ 0 2px 6px -2px oklch(0.2 0.04 290 / 0.12);
18
18
  --tg-i: 0;
19
19
  --tg-n: 1;
20
20
  position: relative;
@@ -23,7 +23,7 @@
23
23
  --tg-lift:
24
24
  0 1px 2px oklch(0.25 0.06 270 / 0.08),
25
25
  0 3px 8px -3px oklch(0.35 0.1 276 / 0.22);
26
- --tg-rest: 0 1px 1px oklch(0.2 0.03 265 / 0.04);
26
+ --tg-rest: 0 1px 1px oklch(0.2 0.03 290 / 0.04);
27
27
  gap: 0.375rem;
28
28
  }
29
29
  .nxgt-toggle-group[data-variant="separate"][data-size="sm"] {
@@ -91644,17 +91644,24 @@ function iHe(e, t) {
91644
91644
  }
91645
91645
  //#endregion
91646
91646
  //#region lib/components/ui/layout/app-shell/activity-layout.tsx
91647
- function aHe({ items: e, brand: t, logo: n, name: r, context: a, headerTitle: o, breadcrumbRoot: s, headerActions: c, avatar: l, linkComponent: u, contentAs: d = "main", scroll: f = "document", align: p, menuOpen: m, onMenuOpenChange: h, routeTransition: g = !0, children: _, className: v, ...y }) {
91648
- let b = f === "container", x = wVe(), S = R(null);
91649
- return iHe(S, b), /* @__PURE__ */ V(HZ, {
91647
+ function aHe({ items: e, brand: t, logo: n, name: r, context: a, headerTitle: o, breadcrumbRoot: s, headerActions: c, avatar: l, linkComponent: u, contentAs: d = "main", scroll: f = "document", align: p, menuOpen: m, onMenuOpenChange: h, routeTransition: g = !0, backdrop: _, children: v, className: y, ...b }) {
91648
+ let x = f === "container", S = _ != null && _ !== !1, C = wVe(), w = R(null);
91649
+ return iHe(w, x), /* @__PURE__ */ H(HZ, {
91650
91650
  "data-slot": "activity-layout",
91651
91651
  "data-scroll": f,
91652
91652
  "data-route-transition": g === !1 ? void 0 : "",
91653
- className: i("size-auto min-h-dvh", b && "h-dvh overflow-hidden", v),
91654
- ...y,
91655
- children: /* @__PURE__ */ H("div", {
91653
+ "data-backdrop": S ? "" : void 0,
91654
+ className: i("size-auto min-h-dvh", x && "h-dvh overflow-hidden", y),
91655
+ ...b,
91656
+ children: [S && /* @__PURE__ */ V("div", {
91657
+ "data-slot": "activity-layout-backdrop",
91658
+ "aria-hidden": "true",
91659
+ inert: !0,
91660
+ className: "pointer-events-none absolute inset-0 -z-10 overflow-hidden",
91661
+ children: _
91662
+ }), /* @__PURE__ */ H("div", {
91656
91663
  "data-slot": "activity-layout-frame",
91657
- className: i("flex flex-1 self-stretch min-w-0 gap-2 bg-background-paper", "pt-[max(0.5rem,env(safe-area-inset-top))] pr-[max(0.5rem,env(safe-area-inset-right))] pb-[calc(max(0.5rem,env(safe-area-inset-bottom))+var(--nxgt-media-dock,0px))] pl-[max(0.5rem,env(safe-area-inset-left))]", b && "min-h-0"),
91664
+ className: i("flex flex-1 self-stretch min-w-0 gap-2 bg-background-paper", "pt-[max(0.5rem,env(safe-area-inset-top))] pr-[max(0.5rem,env(safe-area-inset-right))] pb-[calc(max(0.5rem,env(safe-area-inset-bottom))+var(--nxgt-media-dock,0px))] pl-[max(0.5rem,env(safe-area-inset-left))]", x && "min-h-0"),
91658
91665
  children: [/* @__PURE__ */ V(Q2, {
91659
91666
  items: e,
91660
91667
  brand: t,
@@ -91680,21 +91687,21 @@ function aHe({ items: e, brand: t, logo: n, name: r, context: a, headerTitle: o,
91680
91687
  className: "bg-background/40 backdrop-blur-sm rounded sticky top-[max(0.5rem,env(safe-area-inset-top))] z-10",
91681
91688
  children: /* @__PURE__ */ V(rHe, {
91682
91689
  headerTitle: o,
91683
- ...x
91690
+ ...C
91684
91691
  })
91685
91692
  }),
91686
91693
  /* @__PURE__ */ V(z2, { root: s }),
91687
91694
  /* @__PURE__ */ V(BVe, {
91688
91695
  as: d,
91689
- regionRef: S,
91690
- titleId: x.titleId,
91691
- contained: b,
91696
+ regionRef: w,
91697
+ titleId: C.titleId,
91698
+ contained: x,
91692
91699
  transition: g,
91693
- children: _
91700
+ children: v
91694
91701
  })
91695
91702
  ]
91696
91703
  })]
91697
- })
91704
+ })]
91698
91705
  });
91699
91706
  }
91700
91707
  //#endregion
@@ -100932,7 +100939,7 @@ function Rqe({ solid: e, children: t }) {
100932
100939
  value: !0,
100933
100940
  children: /* @__PURE__ */ H(ei, { children: [/* @__PURE__ */ V(oi, {
100934
100941
  ref: a.overlayRef,
100935
- className: "bg-[color:oklch(0.14_0.036_258.53/0.82)] backdrop-blur-sm"
100942
+ className: "bg-[color:oklch(0.192_0.016_290.5/0.82)] backdrop-blur-sm"
100936
100943
  }), /* @__PURE__ */ H(mi, {
100937
100944
  ref: Na(a.ref, s),
100938
100945
  "data-slot": "media-lightbox",
@@ -3,7 +3,7 @@ import { n as Z, t as Xe } from "./icon-button-BXlI3DJ_.js";
3
3
  import { i as Ze, n as Qe, r as $e, s as et, t as tt } from "./tooltip-tmFoTU_d.js";
4
4
  import { a as nt, c as rt, d as it, f as at, i as ot, l as st, n as ct, o as lt, r as ut, s as dt, t as ft, u as pt } from "./dropdown-menu-DiZvX4tG.js";
5
5
  import { a as mt, c as ht, f as gt, i as _t, l as vt, n as yt, o as bt, p as xt, r as St, s as Ct, t as wt, u as Tt } from "./dialog-JQT6iETD.js";
6
- import { $ as Et, $a as Dt, $c as Ot, $d as kt, $i as At, $l as jt, $n as Mt, $o as Nt, $r as Pt, $s as Ft, $t as It, $u as Lt, A as Rt, Aa as zt, Ac as Bt, Ad as Vt, Ai as Ht, Al as Ut, An as Wt, Ao as Gt, Ar as Kt, As as qt, At as Jt, Au as Yt, B as Xt, Ba as Zt, Bc as Qt, Bd as $t, Bi as en, Bl as tn, Bn as nn, Bo as rn, Br as an, Bs as on, Bt as sn, Bu as cn, C as ln, Ca as un, Cc as dn, Cd as fn, Cf as pn, Ci as mn, Cl as hn, Cn as gn, Co as _n, Cr as vn, Cs as yn, Ct as bn, Cu as xn, D as Sn, Da as Cn, Dc as wn, Dd as Tn, Di as En, Dl as Dn, Dn as On, Do as kn, Dr as An, Ds as jn, Dt as Mn, Du as Nn, E as Pn, Ea as Fn, Ec as In, Ed as Ln, Ei as Rn, El as zn, En as Bn, Eo as Vn, Er as Hn, Es as Un, Et as Wn, Eu as Gn, F as Kn, Fa as qn, Fc as Jn, Fd as Yn, Fi as Xn, Fl as Zn, Fn as Qn, Fo as $n, Fr as er, Fs as tr, Ft as nr, Fu as rr, G as ir, Ga as ar, Gc as or, Gd as sr, Gi as cr, Gl as lr, Gn as ur, Go as dr, Gr as fr, Gs as pr, Gt as mr, Gu as hr, H as gr, Ha as _r, Hc as vr, Hd as yr, Hi as br, Hl as xr, Hn as Sr, Ho as Cr, Hr as wr, Hs as Tr, Ht as Er, Hu as Dr, I as Or, Ia as kr, Ic as Ar, Id as jr, Ii as Mr, Il as Nr, In as Pr, Io as Fr, Ir, Is as Lr, It as Rr, Iu as zr, J as Br, Ja as Vr, Jc as Hr, Jd as Ur, Ji as Wr, Jl as Gr, Jn as Kr, Jo as qr, Jr, Js as Yr, Jt as Xr, Ju as Zr, K as Qr, Ka as $r, Kc as ei, Kd as ti, Ki as ni, Kl as ri, Kn as ii, Ko as ai, Kr as oi, Ks as si, Kt as ci, Ku as li, L as ui, La as di, Lc as fi, Ld as pi, Li as mi, Ll as hi, Ln as gi, Lo as _i, Lr as vi, Ls as yi, Lt as bi, Lu as xi, M as Si, Ma as Ci, Mc as wi, Md as Ti, Mi as Ei, Ml as Di, Mn as Oi, Mo as ki, Mr as Ai, Ms as ji, Mt as Mi, Mu as Ni, N as Pi, Na as Fi, Nc as Ii, Nd as Li, Ni as Ri, Nl as zi, Nn as Bi, No as Vi, Nr as Hi, Ns as Ui, Nt as Wi, Nu as Gi, O as Ki, Oa as qi, Oc as Ji, Od as Yi, Oi as Xi, Ol as Zi, On as Qi, Oo as $i, Or as ea, Os as ta, Ot as na, Ou as ra, P as ia, Pa as aa, Pc as oa, Pd as sa, Pi as ca, Pl as la, Pn as ua, Po as da, Pr as fa, Ps as pa, Pt as ma, Pu as ha, Q as ga, Qa as _a, Qc as va, Qd as ya, Qi as ba, Ql as xa, Qn as Sa, Qo as Ca, Qr as wa, Qs as Ta, Qt as Ea, Qu as Da, R as Oa, Ra as ka, Rc as Aa, Rd as ja, Ri as Ma, Rl as Na, Rn as Pa, Ro as Fa, Rr as Ia, Rs as La, Rt as Ra, Ru as za, S as Ba, Sa as Va, Sc as Ha, Sd as Ua, Sf as Wa, Si as Ga, Sl as Ka, Sn as qa, So as Ja, Sr as Ya, Ss as Xa, St as Za, Su as Qa, T as $a, Ta as eo, Tc as to, Td as no, Ti as ro, Tl as io, Tn as ao, To as oo, Tr as so, Ts as co, Tt as lo, Tu as uo, U as fo, Ua as po, Uc as mo, Ud as ho, Ui as go, Ul as _o, Un as vo, Uo as yo, Ur as bo, Us as xo, Ut as So, Uu as Co, V as wo, Va as To, Vc as Eo, Vd as Do, Vi as Oo, Vl as ko, Vn as Ao, Vo as jo, Vr as Mo, Vs as No, Vt as Po, Vu as Fo, W as Io, Wa as Lo, Wc as Ro, Wd as zo, Wi as Bo, Wl as Vo, Wn as Ho, Wo as Uo, Wr as Wo, Ws as Go, Wt as Ko, Wu as qo, X as Jo, Xa as Yo, Xc as Xo, Xd as Zo, Xi as Qo, Xl as $o, Xn as es, Xo as ts, Xr as ns, Xs as rs, Xt as is, Xu as as, Y as os, Ya as ss, Yc as cs, Yd as ls, Yi as us, Yl as ds, Yn as fs, Yo as ps, Yr as ms, Ys as hs, Yt as gs, Yu as _s, Z as vs, Za as ys, Zc as bs, Zd as xs, Zi as Ss, Zl as Cs, Zn as ws, Zo as Ts, Zr as Es, Zs as Ds, Zt as Os, Zu as ks, _ as As, _a as js, _c as Ms, _d as Ns, _f as Ps, _i as Fs, _l as Is, _n as Ls, _o as Rs, _r as zs, _s as Bs, _t as Vs, _u as Hs, a as Us, aa as Ws, ac as Gs, ad as Ks, af as qs, ai as Js, al as Ys, an as Xs, ao as Zs, ar as Qs, as as $s, at as ec, au as tc, b as nc, ba as rc, bc as ic, bd as ac, bf as oc, bi as sc, bl as cc, bn as lc, bo as uc, br as dc, bs as fc, bt as pc, bu as Q, c as mc, ca as hc, cc as gc, cd as _c, cf as vc, ci as yc, cl as bc, cn as xc, co as Sc, cr as Cc, cs as wc, ct as Tc, cu as Ec, d as Dc, da as Oc, dc as kc, dd as Ac, df as jc, di as Mc, dl as Nc, dn as Pc, do as Fc, dr as Ic, ds as Lc, dt as Rc, du as zc, ea as Bc, ec as Vc, ed as Hc, ef as Uc, ei as Wc, el as Gc, en as Kc, eo as qc, er as Jc, es as Yc, et as Xc, eu as Zc, f as Qc, fa as $c, fc as el, fd as tl, ff as nl, fi as rl, fl as il, fn as al, fo as ol, fr as sl, fs as cl, ft as ll, fu as ul, g as dl, ga as fl, gc as pl, gd as ml, gf as hl, gi as gl, gl as _l, gn as vl, go as yl, gr as bl, gs as xl, gt as Sl, gu as Cl, h as wl, ha as Tl, hc as El, hd as Dl, hf as Ol, hi as kl, hl as Al, hn as jl, ho as Ml, hr as Nl, hs as Pl, ht as Fl, hu as Il, i as Ll, ia as Rl, ic as zl, id as Bl, if as Vl, ii as Hl, il as Ul, in as Wl, io as Gl, ir as Kl, is as ql, it as Jl, iu as Yl, j as Xl, ja as Zl, jc as Ql, jd as $l, ji as eu, jl as tu, jn as nu, jo as ru, jr as iu, js as au, jt as ou, ju as su, k as cu, ka as lu, kc as uu, kd as du, ki as fu, kl as pu, kn as mu, ko as hu, kr as gu, ks as _u, kt as vu, ku as yu, l as bu, la as xu, lc as Su, ld as Cu, lf as wu, li as Tu, ll as Eu, ln as Du, lo as Ou, lr as ku, ls as Au, lt as ju, lu as Mu, m as Nu, ma as Pu, mc as Fu, md as Iu, mf as Lu, mi as Ru, ml as zu, mn as Bu, mo as Vu, mr as Hu, ms as Uu, mt as Wu, mu as Gu, n as Ku, na as qu, nc as Ju, nd as Yu, nf as Xu, ni as Zu, nl as Qu, nn as $u, no as ed, nr as td, ns as nd, nt as rd, nu as id, o as ad, oa as od, oc as sd, od as cd, of as ld, oi as ud, ol as dd, on as fd, oo as pd, or as md, os as hd, ot as gd, ou as _d, p as vd, pa as yd, pc as bd, pd as xd, pf as Sd, pi as Cd, pl as wd, pn as Td, po as Ed, pr as Dd, ps as Od, pt as kd, pu as Ad, q as jd, qa as Md, qc as Nd, qd as Pd, qi as Fd, ql as Id, qn as Ld, qo as Rd, qr as zd, qs as Bd, qt as Vd, qu as Hd, r as Ud, ra as Wd, rc as Gd, rd as Kd, rf as qd, ri as Jd, rl as Yd, rn as Xd, ro as Zd, rr as Qd, rs as $d, rt as ef, ru as tf, s as nf, sa as rf, sc as af, sd as of, sf, si as cf, sl as lf, sn as uf, so as df, sr as ff, ss as pf, st as mf, su as hf, t as gf, ta as _f, tc as vf, td as yf, tf as bf, ti as xf, tl as Sf, tn as Cf, to as wf, tr as Tf, ts as Ef, tt as Df, tu as Of, u as kf, ua as Af, uc as jf, ud as Mf, uf as Nf, ui as Pf, ul as Ff, un as If, uo as Lf, ur as Rf, us as zf, ut as Bf, uu as Vf, v as Hf, va as Uf, vc as Wf, vd as Gf, vf as Kf, vi as qf, vl as Jf, vn as Yf, vo as Xf, vr as Zf, vs as Qf, vt as $f, vu as ep, w as tp, wa as np, wc as rp, wd as ip, wi as ap, wl as op, wn as sp, wo as cp, wr as lp, ws as up, wt as dp, wu as fp, x as pp, xa as mp, xc as hp, xd as gp, xf as _p, xi as vp, xl as yp, xn as bp, xo as xp, xr as Sp, xs as Cp, xt as wp, xu as Tp, y as Ep, ya as Dp, yc as Op, yd as kp, yf as Ap, yi as jp, yl as Mp, yn as Np, yo as Pp, yr as Fp, ys as Ip, yt as Lp, yu as Rp, z as zp, za as Bp, zc as Vp, zd as Hp, zi as Up, zl as Wp, zn as Gp, zo as Kp, zr as qp, zs as Jp, zt as Yp, zu as Xp } from "./components-p7VoF7gR.js";
6
+ import { $ as Et, $a as Dt, $c as Ot, $d as kt, $i as At, $l as jt, $n as Mt, $o as Nt, $r as Pt, $s as Ft, $t as It, $u as Lt, A as Rt, Aa as zt, Ac as Bt, Ad as Vt, Ai as Ht, Al as Ut, An as Wt, Ao as Gt, Ar as Kt, As as qt, At as Jt, Au as Yt, B as Xt, Ba as Zt, Bc as Qt, Bd as $t, Bi as en, Bl as tn, Bn as nn, Bo as rn, Br as an, Bs as on, Bt as sn, Bu as cn, C as ln, Ca as un, Cc as dn, Cd as fn, Cf as pn, Ci as mn, Cl as hn, Cn as gn, Co as _n, Cr as vn, Cs as yn, Ct as bn, Cu as xn, D as Sn, Da as Cn, Dc as wn, Dd as Tn, Di as En, Dl as Dn, Dn as On, Do as kn, Dr as An, Ds as jn, Dt as Mn, Du as Nn, E as Pn, Ea as Fn, Ec as In, Ed as Ln, Ei as Rn, El as zn, En as Bn, Eo as Vn, Er as Hn, Es as Un, Et as Wn, Eu as Gn, F as Kn, Fa as qn, Fc as Jn, Fd as Yn, Fi as Xn, Fl as Zn, Fn as Qn, Fo as $n, Fr as er, Fs as tr, Ft as nr, Fu as rr, G as ir, Ga as ar, Gc as or, Gd as sr, Gi as cr, Gl as lr, Gn as ur, Go as dr, Gr as fr, Gs as pr, Gt as mr, Gu as hr, H as gr, Ha as _r, Hc as vr, Hd as yr, Hi as br, Hl as xr, Hn as Sr, Ho as Cr, Hr as wr, Hs as Tr, Ht as Er, Hu as Dr, I as Or, Ia as kr, Ic as Ar, Id as jr, Ii as Mr, Il as Nr, In as Pr, Io as Fr, Ir, Is as Lr, It as Rr, Iu as zr, J as Br, Ja as Vr, Jc as Hr, Jd as Ur, Ji as Wr, Jl as Gr, Jn as Kr, Jo as qr, Jr, Js as Yr, Jt as Xr, Ju as Zr, K as Qr, Ka as $r, Kc as ei, Kd as ti, Ki as ni, Kl as ri, Kn as ii, Ko as ai, Kr as oi, Ks as si, Kt as ci, Ku as li, L as ui, La as di, Lc as fi, Ld as pi, Li as mi, Ll as hi, Ln as gi, Lo as _i, Lr as vi, Ls as yi, Lt as bi, Lu as xi, M as Si, Ma as Ci, Mc as wi, Md as Ti, Mi as Ei, Ml as Di, Mn as Oi, Mo as ki, Mr as Ai, Ms as ji, Mt as Mi, Mu as Ni, N as Pi, Na as Fi, Nc as Ii, Nd as Li, Ni as Ri, Nl as zi, Nn as Bi, No as Vi, Nr as Hi, Ns as Ui, Nt as Wi, Nu as Gi, O as Ki, Oa as qi, Oc as Ji, Od as Yi, Oi as Xi, Ol as Zi, On as Qi, Oo as $i, Or as ea, Os as ta, Ot as na, Ou as ra, P as ia, Pa as aa, Pc as oa, Pd as sa, Pi as ca, Pl as la, Pn as ua, Po as da, Pr as fa, Ps as pa, Pt as ma, Pu as ha, Q as ga, Qa as _a, Qc as va, Qd as ya, Qi as ba, Ql as xa, Qn as Sa, Qo as Ca, Qr as wa, Qs as Ta, Qt as Ea, Qu as Da, R as Oa, Ra as ka, Rc as Aa, Rd as ja, Ri as Ma, Rl as Na, Rn as Pa, Ro as Fa, Rr as Ia, Rs as La, Rt as Ra, Ru as za, S as Ba, Sa as Va, Sc as Ha, Sd as Ua, Sf as Wa, Si as Ga, Sl as Ka, Sn as qa, So as Ja, Sr as Ya, Ss as Xa, St as Za, Su as Qa, T as $a, Ta as eo, Tc as to, Td as no, Ti as ro, Tl as io, Tn as ao, To as oo, Tr as so, Ts as co, Tt as lo, Tu as uo, U as fo, Ua as po, Uc as mo, Ud as ho, Ui as go, Ul as _o, Un as vo, Uo as yo, Ur as bo, Us as xo, Ut as So, Uu as Co, V as wo, Va as To, Vc as Eo, Vd as Do, Vi as Oo, Vl as ko, Vn as Ao, Vo as jo, Vr as Mo, Vs as No, Vt as Po, Vu as Fo, W as Io, Wa as Lo, Wc as Ro, Wd as zo, Wi as Bo, Wl as Vo, Wn as Ho, Wo as Uo, Wr as Wo, Ws as Go, Wt as Ko, Wu as qo, X as Jo, Xa as Yo, Xc as Xo, Xd as Zo, Xi as Qo, Xl as $o, Xn as es, Xo as ts, Xr as ns, Xs as rs, Xt as is, Xu as as, Y as os, Ya as ss, Yc as cs, Yd as ls, Yi as us, Yl as ds, Yn as fs, Yo as ps, Yr as ms, Ys as hs, Yt as gs, Yu as _s, Z as vs, Za as ys, Zc as bs, Zd as xs, Zi as Ss, Zl as Cs, Zn as ws, Zo as Ts, Zr as Es, Zs as Ds, Zt as Os, Zu as ks, _ as As, _a as js, _c as Ms, _d as Ns, _f as Ps, _i as Fs, _l as Is, _n as Ls, _o as Rs, _r as zs, _s as Bs, _t as Vs, _u as Hs, a as Us, aa as Ws, ac as Gs, ad as Ks, af as qs, ai as Js, al as Ys, an as Xs, ao as Zs, ar as Qs, as as $s, at as ec, au as tc, b as nc, ba as rc, bc as ic, bd as ac, bf as oc, bi as sc, bl as cc, bn as lc, bo as uc, br as dc, bs as fc, bt as pc, bu as Q, c as mc, ca as hc, cc as gc, cd as _c, cf as vc, ci as yc, cl as bc, cn as xc, co as Sc, cr as Cc, cs as wc, ct as Tc, cu as Ec, d as Dc, da as Oc, dc as kc, dd as Ac, df as jc, di as Mc, dl as Nc, dn as Pc, do as Fc, dr as Ic, ds as Lc, dt as Rc, du as zc, ea as Bc, ec as Vc, ed as Hc, ef as Uc, ei as Wc, el as Gc, en as Kc, eo as qc, er as Jc, es as Yc, et as Xc, eu as Zc, f as Qc, fa as $c, fc as el, fd as tl, ff as nl, fi as rl, fl as il, fn as al, fo as ol, fr as sl, fs as cl, ft as ll, fu as ul, g as dl, ga as fl, gc as pl, gd as ml, gf as hl, gi as gl, gl as _l, gn as vl, go as yl, gr as bl, gs as xl, gt as Sl, gu as Cl, h as wl, ha as Tl, hc as El, hd as Dl, hf as Ol, hi as kl, hl as Al, hn as jl, ho as Ml, hr as Nl, hs as Pl, ht as Fl, hu as Il, i as Ll, ia as Rl, ic as zl, id as Bl, if as Vl, ii as Hl, il as Ul, in as Wl, io as Gl, ir as Kl, is as ql, it as Jl, iu as Yl, j as Xl, ja as Zl, jc as Ql, jd as $l, ji as eu, jl as tu, jn as nu, jo as ru, jr as iu, js as au, jt as ou, ju as su, k as cu, ka as lu, kc as uu, kd as du, ki as fu, kl as pu, kn as mu, ko as hu, kr as gu, ks as _u, kt as vu, ku as yu, l as bu, la as xu, lc as Su, ld as Cu, lf as wu, li as Tu, ll as Eu, ln as Du, lo as Ou, lr as ku, ls as Au, lt as ju, lu as Mu, m as Nu, ma as Pu, mc as Fu, md as Iu, mf as Lu, mi as Ru, ml as zu, mn as Bu, mo as Vu, mr as Hu, ms as Uu, mt as Wu, mu as Gu, n as Ku, na as qu, nc as Ju, nd as Yu, nf as Xu, ni as Zu, nl as Qu, nn as $u, no as ed, nr as td, ns as nd, nt as rd, nu as id, o as ad, oa as od, oc as sd, od as cd, of as ld, oi as ud, ol as dd, on as fd, oo as pd, or as md, os as hd, ot as gd, ou as _d, p as vd, pa as yd, pc as bd, pd as xd, pf as Sd, pi as Cd, pl as wd, pn as Td, po as Ed, pr as Dd, ps as Od, pt as kd, pu as Ad, q as jd, qa as Md, qc as Nd, qd as Pd, qi as Fd, ql as Id, qn as Ld, qo as Rd, qr as zd, qs as Bd, qt as Vd, qu as Hd, r as Ud, ra as Wd, rc as Gd, rd as Kd, rf as qd, ri as Jd, rl as Yd, rn as Xd, ro as Zd, rr as Qd, rs as $d, rt as ef, ru as tf, s as nf, sa as rf, sc as af, sd as of, sf, si as cf, sl as lf, sn as uf, so as df, sr as ff, ss as pf, st as mf, su as hf, t as gf, ta as _f, tc as vf, td as yf, tf as bf, ti as xf, tl as Sf, tn as Cf, to as wf, tr as Tf, ts as Ef, tt as Df, tu as Of, u as kf, ua as Af, uc as jf, ud as Mf, uf as Nf, ui as Pf, ul as Ff, un as If, uo as Lf, ur as Rf, us as zf, ut as Bf, uu as Vf, v as Hf, va as Uf, vc as Wf, vd as Gf, vf as Kf, vi as qf, vl as Jf, vn as Yf, vo as Xf, vr as Zf, vs as Qf, vt as $f, vu as ep, w as tp, wa as np, wc as rp, wd as ip, wi as ap, wl as op, wn as sp, wo as cp, wr as lp, ws as up, wt as dp, wu as fp, x as pp, xa as mp, xc as hp, xd as gp, xf as _p, xi as vp, xl as yp, xn as bp, xo as xp, xr as Sp, xs as Cp, xt as wp, xu as Tp, y as Ep, ya as Dp, yc as Op, yd as kp, yf as Ap, yi as jp, yl as Mp, yn as Np, yo as Pp, yr as Fp, ys as Ip, yt as Lp, yu as Rp, z as zp, za as Bp, zc as Vp, zd as Hp, zi as Up, zl as Wp, zn as Gp, zo as Kp, zr as qp, zs as Jp, zt as Yp, zu as Xp } from "./components-BCYZgeoV.js";
7
7
  import { a as Zp, i as Qp } from "./field-blur-context-Dw9ZAgBr.js";
8
8
  import { i as $p, n as em, r as tm, t as nm } from "./hover-card-D5iHS9q1.js";
9
9
  import { _ as rm, a as im, c as am, d as om, f as sm, g as cm, i as lm, l as um, o as dm, p as fm, r as pm, s as mm, t as hm, u as gm } from "./public-Cde8_SN8.js";
@@ -78,6 +78,28 @@ export type ActivityLayoutProps = {
78
78
  * app shell guide, "Route transitions".
79
79
  */
80
80
  routeTransition?: RouteTransition;
81
+ /**
82
+ * A decorative background drawn behind the frame, in place of the built-in
83
+ * gradient and its three blobs: typically a `Background` preset from
84
+ * `@nxgt/material/backgrounds`. It fills the whole layout, sits under the
85
+ * sidebar, the header and the content, and is `inert`, `aria-hidden` and
86
+ * never takes a pointer. Leave it out and the gradient is drawn as before.
87
+ * The preset's stylesheet (`@nxgt/material/backgrounds.css`) is the app's to
88
+ * import. See the app shell guide, "Use a background preset behind the shell".
89
+ *
90
+ * @example
91
+ * ```tsx
92
+ * import { Background, MOTIF_SHAPES_ALL } from '@nxgt/material/backgrounds';
93
+ *
94
+ * <ActivityLayout
95
+ * items={items}
96
+ * backdrop={<Background preset="shapes" motif={{ shapes: MOTIF_SHAPES_ALL }} />}
97
+ * >
98
+ * <Outlet />
99
+ * </ActivityLayout>
100
+ * ```
101
+ */
102
+ backdrop?: ReactNode;
81
103
  } & ComponentProps<'div'>;
82
104
  /**
83
105
  * The application chrome: sidebar, header, breadcrumbs, and the routed content.
@@ -94,4 +116,4 @@ export type ActivityLayoutProps = {
94
116
  * phone's toolbar (the bottom of the screen hidden). The bottom keeps clear
95
117
  * of a `MediaPlayerHost`'s docked bar (`--nxgt-media-dock`).
96
118
  */
97
- export declare function ActivityLayout({ items, brand, logo, name, context, headerTitle, breadcrumbRoot, headerActions, avatar, linkComponent, contentAs: Content, scroll, align, menuOpen, onMenuOpenChange, routeTransition, children, className, ...props }: ActivityLayoutProps): import("react").JSX.Element;
119
+ export declare function ActivityLayout({ items, brand, logo, name, context, headerTitle, breadcrumbRoot, headerActions, avatar, linkComponent, contentAs: Content, scroll, align, menuOpen, onMenuOpenChange, routeTransition, backdrop, children, className, ...props }: ActivityLayoutProps): import("react").JSX.Element;