@nxgt/material 3.21.0 → 3.23.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 (81) hide show
  1. package/CHANGELOG.md +74 -0
  2. package/README.md +7 -5
  3. package/bin/nxgt-backdrop-sprite.js +15 -0
  4. package/dist/background-BtSZsTvY.js +286 -0
  5. package/dist/backgrounds/css-react/icons-quiet.css +5 -5
  6. package/dist/backgrounds/css-react/icons-tint.css +98 -0
  7. package/dist/backgrounds/css-react/icons.css +100 -33
  8. package/dist/backgrounds.js +1 -1
  9. package/dist/{celestial-scene-DaOsRFF3.js → celestial-scene-8Muu6f7O.js} +1 -1
  10. package/dist/components/background-shared.css +5 -0
  11. package/dist/components/components.css +4 -7
  12. package/dist/components/ui/fields/attributes/attributes.css +3 -0
  13. package/dist/components/ui/layout/app-shell/activity-backdrop-shapes.css +1 -1
  14. package/dist/components/ui/layout/auth-card/auth-card-backdrop.css +30 -0
  15. package/dist/{components-CbD5WNVO.js → components-BaUx5Nax.js} +13693 -13611
  16. package/dist/components.js +16 -16
  17. package/dist/editor.js +1 -1
  18. package/dist/{empty-state-CJh9f2pc.js → empty-state-lj7vjYWG.js} +1 -1
  19. package/dist/icon-sprites-CaYXzOL4.js +46 -0
  20. package/dist/icons-scene-M4HBeN2c.js +54 -0
  21. package/dist/{illustration-BmQmvW_4.js → illustration-B4_W-OUS.js} +2 -2
  22. package/dist/illustrations.js +1 -1
  23. package/dist/lib/backgrounds/background/partials/icons-check.d.ts +2 -2
  24. package/dist/lib/backgrounds/background/partials/icons-keys.d.ts +21 -1
  25. package/dist/lib/backgrounds/background/partials/icons-scene.d.ts +15 -6
  26. package/dist/lib/backgrounds/background/partials/use-icons-scene.d.ts +13 -8
  27. package/dist/lib/backgrounds/background/types.d.ts +26 -12
  28. package/dist/lib/backgrounds/index.d.ts +1 -1
  29. package/dist/lib/components/ui/collections/data-table/partials/data-table-page-control.d.ts +7 -2
  30. package/dist/lib/components/ui/collections/data-table/partials/data-table-toolbar.d.ts +6 -2
  31. package/dist/lib/components/ui/collections/data-table/types.d.ts +4 -0
  32. package/dist/lib/components/ui/collections/data-table/use-pager-focus.d.ts +30 -0
  33. package/dist/lib/components/ui/collections/server-table/partials/server-table-band-classes.d.ts +6 -0
  34. package/dist/lib/components/ui/collections/server-table/partials/server-table-band.d.ts +3 -1
  35. package/dist/lib/components/ui/collections/server-table/types.d.ts +3 -0
  36. package/dist/lib/components/ui/layout/app-shell/keep-shapes-inside.d.ts +7 -2
  37. package/dist/lib/components/ui/layout/app-shell/shapes-clear-content.d.ts +10 -3
  38. package/dist/lib/components/ui/layout/app-shell/theme-backdrop.d.ts +3 -1
  39. package/dist/lib/components/ui/layout/app-shell/use-keep-shapes-inside.d.ts +3 -3
  40. package/dist/lib/components/ui/layout/app-shell/watch-content.d.ts +28 -8
  41. package/dist/lib/components/ui/layout/auth-card/auth-card-backdrop.d.ts +23 -0
  42. package/dist/lib/components/ui/layout/auth-card/auth-card.d.ts +15 -1
  43. package/dist/lib/components/ui/primitives/icon/icon-sprites.d.ts +40 -1
  44. package/dist/lib/themes/define-theme.d.ts +8 -0
  45. package/dist/lib/themes/index.d.ts +2 -1
  46. package/dist/lib/vite/index.d.ts +1 -1
  47. package/dist/main.js +28 -28
  48. package/dist/material.css +1 -1
  49. package/dist/pdf-reader.js +1 -1
  50. package/dist/{public-DWuBn4t_.js → public-DAF5SCWH.js} +1 -1
  51. package/dist/{scene-options-CCy3V7XS.js → scene-options-2zNF3ZkQ.js} +4 -2
  52. package/dist/theme-picker.js +3 -3
  53. package/dist/themes.js +9 -4
  54. package/dist/{use-chat-composer-BBFuKNqC.js → use-chat-composer-B0ze1cU9.js} +3 -3
  55. package/docs/components/data-table-filter-and-lists.md +24 -2
  56. package/docs/components/navigation-and-layout.md +22 -0
  57. package/docs/components/primitives.md +21 -0
  58. package/docs/guides/app-shell.md +9 -8
  59. package/docs/guides/backgrounds.md +214 -16
  60. package/docs/guides/icon-motifs.md +30 -12
  61. package/docs/guides/themes.md +25 -4
  62. package/docs/guides/theming.md +7 -0
  63. package/docs/guides/vite-plugin.md +26 -0
  64. package/docs/previews/backgrounds-background-from-theme.webp +0 -0
  65. package/docs/previews/backgrounds-icons.webp +0 -0
  66. package/docs/previews/backgrounds-matrix.webp +0 -0
  67. package/docs/previews/foundations-themes-icon-motifs.webp +0 -0
  68. package/docs/roadmap.md +6 -0
  69. package/docs/troubleshooting.md +65 -3
  70. package/lib/backgrounds/css-react/icons-quiet.css +5 -5
  71. package/lib/backgrounds/css-react/icons-tint.css +98 -0
  72. package/lib/backgrounds/css-react/icons.css +100 -33
  73. package/lib/components/background-shared.css +5 -0
  74. package/lib/components/components.css +4 -7
  75. package/lib/components/ui/fields/attributes/attributes.css +3 -0
  76. package/lib/components/ui/layout/app-shell/activity-backdrop-shapes.css +1 -1
  77. package/lib/components/ui/layout/auth-card/auth-card-backdrop.css +30 -0
  78. package/package.json +8 -3
  79. package/dist/background-Ce7M5V42.js +0 -250
  80. package/dist/icon-sprites-FxHyqyhg.js +0 -30
  81. package/dist/icons-scene-BpIauJ5d.js +0 -27
@@ -4,7 +4,10 @@
4
4
  * its constellation threads and its motion. A scene holds no `style`: an icon
5
5
  * carries a tone class (`k1..k3`, colours in scene.css) and the root carries
6
6
  * `ic-so0..ic-so10` and `ic-so85` (a duotone icon's second layer, in tenths, or 0.85) and, for
7
- * `duotone: 'tones'`, `ic-tones`.
7
+ * `duotone: 'tones'`, `ic-tones`. The rules are keyed on `icons` and `shapes`
8
+ * (the `shapes` preset with `motif.icons` draws the same icons). The
9
+ * tint (`ic-c-one`, `ic-c-palette`) is icons-tint.css; `ic-c-classic` is the
10
+ * tones below at full strength.
8
11
  *
9
12
  * The sprites read `--fa-primary-color`, `--fa-secondary-color` and
10
13
  * `--fa-secondary-opacity`; custom properties inherit into the `<use>` copy.
@@ -17,6 +20,7 @@
17
20
  @import "../css/motifs.css";
18
21
 
19
22
  @import "./icons-quiet.css";
23
+ @import "./icons-tint.css";
20
24
 
21
25
  @layer components {
22
26
  [data-background="icons"] > [data-layer="wash"] {
@@ -35,95 +39,158 @@
35
39
  );
36
40
  }
37
41
 
38
- [data-background="icons"] > [data-scene] {
42
+ :is([data-background="icons"], [data-background="shapes"]) > [data-scene] {
39
43
  overflow: hidden;
40
44
  }
41
45
 
42
46
  /* Primary layer: the icon's tone. Second layer: the same tone, faded. */
43
- [data-background="icons"] > [data-scene] .ic.k1 {
47
+ :is([data-background="icons"], [data-background="shapes"])
48
+ > [data-scene]
49
+ .ic.k1 {
44
50
  --fa-primary-color: var(--nxgt-bg-c1);
45
51
  --fa-secondary-color: var(--nxgt-bg-c1);
46
52
  }
47
- [data-background="icons"] > [data-scene] .ic.k2 {
53
+ :is([data-background="icons"], [data-background="shapes"])
54
+ > [data-scene]
55
+ .ic.k2 {
48
56
  --fa-primary-color: var(--nxgt-bg-c2);
49
57
  --fa-secondary-color: var(--nxgt-bg-c2);
50
58
  }
51
- [data-background="icons"] > [data-scene] .ic.k3 {
59
+ :is([data-background="icons"], [data-background="shapes"])
60
+ > [data-scene]
61
+ .ic.k3 {
52
62
  --fa-primary-color: var(--nxgt-bg-c3);
53
63
  --fa-secondary-color: var(--nxgt-bg-c3);
54
64
  }
55
65
 
56
66
  /* Two tones: the second layer takes the next tone. */
57
- [data-background="icons"] > [data-scene] > .ic-tones .ic.k1 {
67
+ :is([data-background="icons"], [data-background="shapes"])
68
+ > [data-scene]
69
+ > .ic-tones
70
+ .ic.k1 {
58
71
  --fa-secondary-color: var(--nxgt-bg-c2);
59
72
  }
60
- [data-background="icons"] > [data-scene] > .ic-tones .ic.k2 {
73
+ :is([data-background="icons"], [data-background="shapes"])
74
+ > [data-scene]
75
+ > .ic-tones
76
+ .ic.k2 {
61
77
  --fa-secondary-color: var(--nxgt-bg-c3);
62
78
  }
63
- [data-background="icons"] > [data-scene] > .ic-tones .ic.k3 {
79
+ :is([data-background="icons"], [data-background="shapes"])
80
+ > [data-scene]
81
+ > .ic-tones
82
+ .ic.k3 {
64
83
  --fa-secondary-color: var(--nxgt-bg-c1);
65
84
  }
66
85
 
67
86
  /* The second layer's opacity, in tenths (`secondaryOpacity`). */
68
- [data-background="icons"] > [data-scene] > .ic-so0 .ic {
87
+ :is([data-background="icons"], [data-background="shapes"])
88
+ > [data-scene]
89
+ > .ic-so0
90
+ .ic {
69
91
  --fa-secondary-opacity: 0;
70
92
  }
71
- [data-background="icons"] > [data-scene] > .ic-so1 .ic {
93
+ :is([data-background="icons"], [data-background="shapes"])
94
+ > [data-scene]
95
+ > .ic-so1
96
+ .ic {
72
97
  --fa-secondary-opacity: 0.1;
73
98
  }
74
- [data-background="icons"] > [data-scene] > .ic-so2 .ic {
99
+ :is([data-background="icons"], [data-background="shapes"])
100
+ > [data-scene]
101
+ > .ic-so2
102
+ .ic {
75
103
  --fa-secondary-opacity: 0.2;
76
104
  }
77
- [data-background="icons"] > [data-scene] > .ic-so3 .ic {
105
+ :is([data-background="icons"], [data-background="shapes"])
106
+ > [data-scene]
107
+ > .ic-so3
108
+ .ic {
78
109
  --fa-secondary-opacity: 0.3;
79
110
  }
80
- [data-background="icons"] > [data-scene] > .ic-so4 .ic {
111
+ :is([data-background="icons"], [data-background="shapes"])
112
+ > [data-scene]
113
+ > .ic-so4
114
+ .ic {
81
115
  --fa-secondary-opacity: 0.4;
82
116
  }
83
- [data-background="icons"] > [data-scene] > .ic-so5 .ic {
117
+ :is([data-background="icons"], [data-background="shapes"])
118
+ > [data-scene]
119
+ > .ic-so5
120
+ .ic {
84
121
  --fa-secondary-opacity: 0.5;
85
122
  }
86
- [data-background="icons"] > [data-scene] > .ic-so6 .ic {
123
+ :is([data-background="icons"], [data-background="shapes"])
124
+ > [data-scene]
125
+ > .ic-so6
126
+ .ic {
87
127
  --fa-secondary-opacity: 0.6;
88
128
  }
89
- [data-background="icons"] > [data-scene] > .ic-so7 .ic {
129
+ :is([data-background="icons"], [data-background="shapes"])
130
+ > [data-scene]
131
+ > .ic-so7
132
+ .ic {
90
133
  --fa-secondary-opacity: 0.7;
91
134
  }
92
- [data-background="icons"] > [data-scene] > .ic-so8 .ic {
135
+ :is([data-background="icons"], [data-background="shapes"])
136
+ > [data-scene]
137
+ > .ic-so8
138
+ .ic {
93
139
  --fa-secondary-opacity: 0.8;
94
140
  }
95
- [data-background="icons"] > [data-scene] > .ic-so9 .ic {
141
+ :is([data-background="icons"], [data-background="shapes"])
142
+ > [data-scene]
143
+ > .ic-so9
144
+ .ic {
96
145
  --fa-secondary-opacity: 0.9;
97
146
  }
98
- [data-background="icons"] > [data-scene] > .ic-so10 .ic {
147
+ :is([data-background="icons"], [data-background="shapes"])
148
+ > [data-scene]
149
+ > .ic-so10
150
+ .ic {
99
151
  --fa-secondary-opacity: 1;
100
152
  }
101
153
  /* 0.85: the default of two tones, or a `secondaryOpacity` of 0.85. */
102
- [data-background="icons"] > [data-scene] > .ic-so85 .ic {
154
+ :is([data-background="icons"], [data-background="shapes"])
155
+ > [data-scene]
156
+ > .ic-so85
157
+ .ic {
103
158
  --fa-secondary-opacity: 0.85;
104
159
  }
105
160
 
106
161
  /* The constellation's threads and dots. */
107
- [data-background="icons"] > [data-scene] .ic-ln {
162
+ :is([data-background="icons"], [data-background="shapes"])
163
+ > [data-scene]
164
+ .ic-ln {
108
165
  stroke: var(--nxgt-bg-c1);
109
166
  stroke-width: 0.7;
110
167
  stroke-linecap: round;
111
168
  opacity: 0.4;
112
169
  }
113
- [data-background="icons"] > [data-scene] .ic-dt {
170
+ :is([data-background="icons"], [data-background="shapes"])
171
+ > [data-scene]
172
+ .ic-dt {
114
173
  fill: var(--nxgt-bg-c1);
115
174
  opacity: 0.5;
116
175
  }
117
- [data-background="icons"] > [data-scene] .ic-ln.k2 {
176
+ :is([data-background="icons"], [data-background="shapes"])
177
+ > [data-scene]
178
+ .ic-ln.k2 {
118
179
  stroke: var(--nxgt-bg-c2);
119
180
  }
120
- [data-background="icons"] > [data-scene] .ic-ln.k3 {
181
+ :is([data-background="icons"], [data-background="shapes"])
182
+ > [data-scene]
183
+ .ic-ln.k3 {
121
184
  stroke: var(--nxgt-bg-c3);
122
185
  }
123
- [data-background="icons"] > [data-scene] .ic-dt.k2 {
186
+ :is([data-background="icons"], [data-background="shapes"])
187
+ > [data-scene]
188
+ .ic-dt.k2 {
124
189
  fill: var(--nxgt-bg-c2);
125
190
  }
126
- [data-background="icons"] > [data-scene] .ic-dt.k3 {
191
+ :is([data-background="icons"], [data-background="shapes"])
192
+ > [data-scene]
193
+ .ic-dt.k3 {
127
194
  fill: var(--nxgt-bg-c3);
128
195
  }
129
196
  }
@@ -151,26 +218,26 @@
151
218
  }
152
219
 
153
220
  @layer components {
154
- [data-background="icons"][data-animated] > [data-scene] .ia {
221
+ [data-background][data-animated] > [data-scene] .ia {
155
222
  animation: nxgt-bg-ic-1 18s ease-in-out infinite alternate
156
223
  var(--nxgt-bg-play, running);
157
224
  }
158
- [data-background="icons"][data-animated] > [data-scene] .iv2 {
225
+ [data-background][data-animated] > [data-scene] .iv2 {
159
226
  animation-name: nxgt-bg-ic-2;
160
227
  }
161
- [data-background="icons"][data-animated] > [data-scene] .iv3 {
228
+ [data-background][data-animated] > [data-scene] .iv3 {
162
229
  animation-name: nxgt-bg-ic-3;
163
230
  }
164
- [data-background="icons"][data-animated] > [data-scene] .iv4 {
231
+ [data-background][data-animated] > [data-scene] .iv4 {
165
232
  animation-name: nxgt-bg-ic-4;
166
233
  }
167
- [data-background="icons"][data-animated] > [data-scene] .id2 {
234
+ [data-background][data-animated] > [data-scene] .id2 {
168
235
  animation-delay: -4s;
169
236
  }
170
- [data-background="icons"][data-animated] > [data-scene] .id3 {
237
+ [data-background][data-animated] > [data-scene] .id3 {
171
238
  animation-delay: -9s;
172
239
  }
173
- [data-background="icons"][data-animated] > [data-scene] .id4 {
240
+ [data-background][data-animated] > [data-scene] .id4 {
174
241
  animation-delay: -13s;
175
242
  }
176
243
  }
@@ -1,3 +1,3 @@
1
- import { r as e, t } from "./background-Ce7M5V42.js";
1
+ import { r as e, t } from "./background-BtSZsTvY.js";
2
2
  import { BACKGROUND_INTENSITIES as n, BACKGROUND_PRESETS as r, BACKGROUND_TONES as i, MOTIF_SHAPES as a, MOTIF_SHAPES_ALL as o, SHIPPED_BACKGROUND_PRESETS as s } from "@nxgt/material-core/backgrounds";
3
3
  export { e as AVAILABLE_BACKGROUND_PRESETS, n as BACKGROUND_INTENSITIES, r as BACKGROUND_PRESETS, i as BACKGROUND_TONES, t as Background, a as MOTIF_SHAPES, o as MOTIF_SHAPES_ALL, s as SHIPPED_BACKGROUND_PRESETS };
@@ -1,5 +1,5 @@
1
1
  import { t as e } from "./scene-svg-DJKa5vsg.js";
2
- import { i as t, r as n } from "./scene-options-CCy3V7XS.js";
2
+ import { i as t, r as n } from "./scene-options-2zNF3ZkQ.js";
3
3
  import { useMemo as r } from "react";
4
4
  import { jsx as i } from "react/jsx-runtime";
5
5
  import { buildCelestialScene as a, buildSkyScene as o } from "@nxgt/material-core/backgrounds/celestial";
@@ -0,0 +1,5 @@
1
+ /* What the Background in `/components` always needs: the base, the gradient
2
+ * preset and the motion rules. Imported once by components/components.css. */
3
+ @import "../backgrounds/css/base.css";
4
+ @import "../backgrounds/css/gradient.css";
5
+ @import "../backgrounds/css/motion.css";
@@ -56,6 +56,7 @@
56
56
  @import "./ui/layout/app-shell/route-transition.css";
57
57
  @import "./ui/layout/app-shell/activity-backdrop.css";
58
58
  @import "./ui/layout/app-shell/activity-backdrop-shapes.css";
59
+ @import "./ui/layout/auth-card/auth-card-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";
@@ -192,12 +193,8 @@
192
193
  /* Gallery: the View Transition from a tile to its lightbox. */
193
194
  @import "./ui/media/galleries/gallery-transitions.css";
194
195
  @import "./print-only.css";
195
- @import "./ui/fields/attributes/attribute-form/attribute-form.css";
196
- @import "./ui/fields/attributes/attribute-values-form/attribute-values-form.css";
197
- /* Background (from /components): the gradient preset's CSS, plain and shared
198
- * (lib/backgrounds/css). The other presets are opt-in: backgrounds.css. */
199
- @import "../backgrounds/css/base.css";
200
- @import "../backgrounds/css/gradient.css";
201
- @import "../backgrounds/css/motion.css";
196
+ @import "./ui/fields/attributes/attributes.css";
197
+ /* Background: the gradient preset's CSS, shared (lib/backgrounds/css); the other presets are opt-in: backgrounds.css. */
198
+ @import "./background-shared.css";
202
199
  @import "./ui/widgets/drawing/drawing.css"; /* @nxgt/material/draw: role colours, focus ring */
203
200
  @import "./ui/widgets/drawing/drawing-animate.css";
@@ -0,0 +1,3 @@
1
+ /* The attribute forms' styles, imported once by components/components.css. */
2
+ @import "./attribute-form/attribute-form.css";
3
+ @import "./attribute-values-form/attribute-values-form.css";
@@ -18,7 +18,7 @@
18
18
  visibility: hidden;
19
19
  }
20
20
 
21
- /* A shape over the page's text or controls fades out and comes back once
21
+ /* A shape over the page's text, controls or surfaces (cards, tables, lists) fades out and comes back once
22
22
  * clear (watch-content.ts): it is hidden, never moved. A compound body (the
23
23
  * moon, the planet, the eclipse: `.pt.mg`) is hidden whole, with its halo
24
24
  * (`.pt.mh`). The scene stays invisible until the first check, so nothing
@@ -0,0 +1,30 @@
1
+ /* An AuthCard's backdrop (auth-card-backdrop.tsx) keeps its shapes the way
2
+ * ActivityLayout's does (activity-backdrop-shapes.css): whole inside its layer
3
+ * and clear of the card and the brand row. Plain CSS in `@layer components`. */
4
+ @layer components {
5
+ [data-slot="auth-card-backdrop"] > [data-background] {
6
+ width: 100%;
7
+ height: 100%;
8
+ }
9
+ /* The scene stays hidden until the first pass; a shape that crosses the
10
+ * layer's edge is hidden, never cut. */
11
+ [data-slot="auth-card-backdrop"] [data-background]:not([data-checked]) .mo,
12
+ [data-slot="auth-card-backdrop"] [data-background] .mo > [data-outside] {
13
+ visibility: hidden;
14
+ }
15
+ /* A shape over the card or the brand row fades out (watch-content.ts). */
16
+ [data-slot="auth-card-backdrop"] [data-background] .mo > *,
17
+ [data-slot="auth-card-backdrop"] [data-background] .pt {
18
+ transition: opacity 150ms ease;
19
+ }
20
+ [data-slot="auth-card-backdrop"] [data-background] .mo > [data-hidden],
21
+ [data-slot="auth-card-backdrop"] [data-background] .pt[data-hidden] {
22
+ opacity: 0 !important;
23
+ }
24
+ @media (prefers-reduced-motion: reduce) {
25
+ [data-slot="auth-card-backdrop"] [data-background] .mo > *,
26
+ [data-slot="auth-card-backdrop"] [data-background] .pt {
27
+ transition: none;
28
+ }
29
+ }
30
+ }