@nxgt/material 3.7.1 → 3.7.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.
Files changed (37) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/dist/components/ui/layout/app-shell/activity-backdrop.css +62 -2
  3. package/dist/{components-bYGPzyKd.js → components-DslV-TzK.js} +7449 -7447
  4. package/dist/components.js +1 -1
  5. package/dist/main.js +1 -1
  6. package/dist/material.css +1 -1
  7. package/docs/components/navigation-and-layout.md +1 -1
  8. package/docs/guides/app-shell.md +35 -10
  9. package/docs/previews/data-table-filter-lists-datatable.webp +0 -0
  10. package/docs/previews/data-table-filter-lists-servertable.webp +0 -0
  11. package/docs/previews/navigation-layout-accountmenu.webp +0 -0
  12. package/docs/previews/navigation-layout-appshell-menu-badge.webp +0 -0
  13. package/docs/previews/navigation-layout-appshell.webp +0 -0
  14. package/docs/previews/navigation-layout-authcard.webp +0 -0
  15. package/docs/previews/navigation-layout-background.webp +0 -0
  16. package/docs/previews/navigation-layout-bottomappbar.webp +0 -0
  17. package/docs/previews/navigation-layout-breadcrumb.webp +0 -0
  18. package/docs/previews/navigation-layout-doc-api.webp +0 -0
  19. package/docs/previews/navigation-layout-doc-blocks.webp +0 -0
  20. package/docs/previews/navigation-layout-doc.webp +0 -0
  21. package/docs/previews/navigation-layout-hero.webp +0 -0
  22. package/docs/previews/navigation-layout-listdetailslayout.webp +0 -0
  23. package/docs/previews/navigation-layout-pager.webp +0 -0
  24. package/docs/previews/navigation-layout-panelayout.webp +0 -0
  25. package/docs/previews/navigation-layout-resizable.webp +0 -0
  26. package/docs/previews/navigation-layout-responsivegrid.webp +0 -0
  27. package/docs/previews/navigation-layout-seealso.webp +0 -0
  28. package/docs/previews/navigation-layout-sidebar.webp +0 -0
  29. package/docs/previews/navigation-layout-skiplink.webp +0 -0
  30. package/docs/previews/navigation-layout-stepper.webp +0 -0
  31. package/docs/previews/navigation-layout-steps.webp +0 -0
  32. package/docs/previews/navigation-layout-threadlayout.webp +0 -0
  33. package/docs/previews/navigation-layout-toc.webp +0 -0
  34. package/docs/previews/navigation-layout-topappbar.webp +0 -0
  35. package/docs/troubleshooting.md +16 -0
  36. package/lib/components/ui/layout/app-shell/activity-backdrop.css +62 -2
  37. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,19 @@
1
1
  # @nxgt/material
2
2
 
3
+ ## 3.7.3
4
+
5
+ ### Patch Changes
6
+
7
+ - [#1382](https://github.com/softistx/nxgt-material/pull/1382) [`c3be251`](https://github.com/softistx/nxgt-material/commit/c3be2515caaa2783167b7b1cac0183974ba9fc52) Thanks [@SteveGT96](https://github.com/SteveGT96)! - Fix the `ActivityLayout` `backdrop` scrolling along with the page. The layer is now `position: sticky` in the content column: as wide as the column, one viewport high, and it stays in the viewport while the content scrolls over it, in `scroll="document"` and `scroll="container"` alike. It still shows only inside the content column (not in the rail, the app bar's band or the gutters), and nothing changes without a `backdrop`.
8
+
9
+ ## 3.7.2
10
+
11
+ ### Patch Changes
12
+
13
+ - [#1361](https://github.com/softistx/nxgt-material/pull/1361) [`4303761`](https://github.com/softistx/nxgt-material/commit/430376168103b49c0213cac6905b5497ef64b4c6) Thanks [@SteveGT96](https://github.com/SteveGT96)! - Fix the chrome of an `ActivityLayout` with a `backdrop` letting the shapes run behind its text ([#1356](https://github.com/softistx/nxgt-material/issues/1356)). Under `data-backdrop`, the sidebar, the app bar, the breadcrumb, the tabs strip and the lists/tables (`DataTable`, `ServerTable`) take an opaque surface, tuned by `--nxgt-backdrop-chrome` (default `var(--background)`) and `--nxgt-backdrop-surface` (default `var(--card)`). Nothing changes without a `backdrop`.
14
+
15
+ The backdrop layer now sits in the content column, and the frame's gutters take the chrome fill, so no shape is cut at the edges. `DataTable` and `ServerTable` keep their look without a backdrop with an equivalent class (`bg-[color:var(--nxgt-backdrop-fill-surface,color-mix(...80%...))]` in place of `bg-background/80`).
16
+
3
17
  ## 3.7.1
4
18
 
5
19
  ### Patch Changes
@@ -1,11 +1,24 @@
1
1
  /* ActivityLayout's `backdrop` prop: a node (a `Background` preset from
2
- * `@nxgt/material/backgrounds`) drawn behind the frame instead of the built-in
2
+ * `@nxgt/material/backgrounds`) drawn behind the content column instead of the built-in
3
3
  * gradient. `data-backdrop` is on the layout's root only while one is given, so
4
4
  * without it nothing here matches and the gradient is unchanged.
5
5
  *
6
6
  * Plain CSS, no inline `style`, in `@layer components` like the rest: an app's
7
7
  * utilities still win. The layer itself (`data-slot="activity-layout-backdrop"`)
8
- * is positioned by classes in activity-layout.tsx. */
8
+ * is in the content column, positioned by classes in activity-layout.tsx: the
9
+ * frame's padding and gaps take the chrome fill, so the shapes show nowhere
10
+ * else.
11
+ *
12
+ * The shapes show in the free content area only: every surface of the chrome and
13
+ * of the lists is opaque, so none runs behind a text, an icon or a control. Two
14
+ * tokens, set on the layout (or any ancestor), tune them:
15
+ * --nxgt-backdrop-chrome the sidebar, the app bar, the breadcrumb, the tabs
16
+ * strip (default: var(--background))
17
+ * --nxgt-backdrop-surface the lists and tables, their band and rows
18
+ * (default: var(--card))
19
+ * The sidebar, the app bar and the tables take theirs from a class whose
20
+ * fallback is their usual surface, through `--nxgt-backdrop-fill-*`: a utility
21
+ * class outranks any rule in a layer, so a rule here could not set them. */
9
22
  @layer components {
10
23
  /* The gradient's own tint and blobs give way to the backdrop. */
11
24
  [data-slot="activity-layout"][data-backdrop] {
@@ -21,4 +34,51 @@
21
34
  width: 100%;
22
35
  height: 100%;
23
36
  }
37
+
38
+ /* The layer is sticky, not absolute: it keeps the column's left and right
39
+ * edges and stays in the viewport, from the app bar's top to the frame's
40
+ * bottom padding, while the page (scroll="document") or the content region
41
+ * (scroll="container") scrolls over it. It is the column's first child, so
42
+ * a negative bottom margin (its height, and the column's 0.5rem gap) takes
43
+ * it out of the flow: the app bar keeps its place. The offsets are the
44
+ * frame's own padding and the app bar's sticky top. */
45
+ [data-slot="activity-layout-backdrop"] {
46
+ --nxgt-backdrop-top: max(0.5rem, env(safe-area-inset-top));
47
+ --nxgt-backdrop-height: calc(
48
+ 100dvh -
49
+ var(--nxgt-backdrop-top) -
50
+ max(0.5rem, env(safe-area-inset-bottom)) -
51
+ var(--nxgt-media-dock, 0px)
52
+ );
53
+ position: sticky;
54
+ top: var(--nxgt-backdrop-top);
55
+ height: var(--nxgt-backdrop-height);
56
+ margin-bottom: calc(-1 * var(--nxgt-backdrop-height) - 0.5rem);
57
+ }
58
+
59
+ [data-slot="activity-layout"][data-backdrop] {
60
+ --nxgt-backdrop-fill-chrome: var(--nxgt-backdrop-chrome, var(--background));
61
+ --nxgt-backdrop-fill-surface: var(--nxgt-backdrop-surface, var(--card));
62
+ }
63
+
64
+ /* The breadcrumb trail: a pill under the app bar, as wide as its crumbs. */
65
+ [data-slot="activity-layout"][data-backdrop]
66
+ [data-slot="activity-layout-frame"]
67
+ > *
68
+ > [data-slot="breadcrumb"] {
69
+ width: fit-content;
70
+ max-width: 100%;
71
+ padding-block: 0.25rem;
72
+ padding-inline-end: 0.75rem;
73
+ border-radius: 999px;
74
+ background: var(--nxgt-backdrop-fill-chrome);
75
+ }
76
+
77
+ /* Tabs: the strip is a band, its top corners rounded. (The segmented look
78
+ * has its own track.) */
79
+ [data-slot="activity-layout"][data-backdrop] [data-slot="tabs-list"] {
80
+ border-start-start-radius: var(--radius);
81
+ border-start-end-radius: var(--radius);
82
+ background: var(--nxgt-backdrop-fill-chrome);
83
+ }
24
84
  }