@nxgt/material 3.5.0 → 3.7.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 (83) hide show
  1. package/CHANGELOG.md +92 -0
  2. package/README.md +46 -1
  3. package/dist/components/components.css +2 -0
  4. package/dist/components/theme-tokens.css +84 -72
  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/sidebar/sidebar-tokens.css +1 -1
  8. package/dist/components/ui/overlays/dialog/dialog.css +2 -2
  9. package/dist/components/ui/primitives/field-box/field-box-tokens.css +1 -1
  10. package/dist/components/ui/primitives/toggle-group/toggle-group-segmented.css +2 -2
  11. package/dist/components/ui/primitives/toggle-group/toggle-group-separate.css +1 -1
  12. package/dist/components/ui/widgets/drawing/drawing-animate.css +123 -0
  13. package/dist/components/ui/widgets/drawing/drawing.css +459 -0
  14. package/dist/{components-CXpL1zEs.js → components-BX4icy-g.js} +734 -734
  15. package/dist/components.js +16 -16
  16. package/dist/{dialog-JQT6iETD.js → dialog-DdJ1C4BR.js} +168 -168
  17. package/dist/dnd.js +1 -1
  18. package/dist/draw-animate.js +106 -0
  19. package/dist/draw-png.js +2 -0
  20. package/dist/draw-sketch.js +38 -0
  21. package/dist/draw.js +65 -0
  22. package/dist/drawing-B8VuG7nx.js +390 -0
  23. package/dist/drawing-context-CeKeZE6b.js +10 -0
  24. package/dist/editor.js +110 -110
  25. package/dist/{icon-badge-C30yKsAM.js → icon-badge-Bb5-73XP.js} +18 -18
  26. package/dist/{icon-button-BXlI3DJ_.js → icon-button-5A6Mrj6w.js} +60 -90
  27. package/dist/lib/components/ui/display/shape/use-shape-morph.d.ts +1 -0
  28. package/dist/lib/components/ui/widgets/drawing/drawing-a11y.d.ts +20 -0
  29. package/dist/lib/components/ui/widgets/drawing/drawing-context.d.ts +23 -0
  30. package/dist/lib/components/ui/widgets/drawing/drawing-types.d.ts +63 -0
  31. package/dist/lib/components/ui/widgets/drawing/drawing.d.ts +17 -0
  32. package/dist/lib/components/ui/widgets/drawing/index.d.ts +5 -0
  33. package/dist/lib/components/ui/widgets/drawing/partials/drawing-root.d.ts +17 -0
  34. package/dist/lib/components/ui/widgets/drawing/partials/interactive-node.d.ts +22 -0
  35. package/dist/lib/components/ui/widgets/drawing/partials/primitives/content.d.ts +20 -0
  36. package/dist/lib/components/ui/widgets/drawing/partials/primitives/path.d.ts +29 -0
  37. package/dist/lib/components/ui/widgets/drawing/partials/primitives/primitive.d.ts +19 -0
  38. package/dist/lib/components/ui/widgets/drawing/partials/primitives/shapes.d.ts +18 -0
  39. package/dist/lib/components/ui/widgets/drawing/partials/react-attrs.d.ts +5 -0
  40. package/dist/lib/components/ui/widgets/drawing/partials/ring.d.ts +9 -0
  41. package/dist/lib/components/ui/widgets/drawing/partials/svg-tree.d.ts +29 -0
  42. package/dist/lib/components/ui/widgets/drawing/use-exact-text.d.ts +16 -0
  43. package/dist/lib/draw/index.d.ts +32 -0
  44. package/dist/lib/draw-animate/index.d.ts +19 -0
  45. package/dist/lib/draw-animate/morph-drawing.d.ts +32 -0
  46. package/dist/lib/draw-animate/reduced-motion.d.ts +2 -0
  47. package/dist/lib/draw-animate/use-drawing-controls.d.ts +27 -0
  48. package/dist/lib/draw-animate/use-scene-morph.d.ts +15 -0
  49. package/dist/lib/draw-png/index.d.ts +11 -0
  50. package/dist/lib/draw-sketch/index.d.ts +17 -0
  51. package/dist/lib/draw-sketch/sketch.d.ts +19 -0
  52. package/dist/lib/print/components/print-drawing.d.ts +16 -0
  53. package/dist/lib/print/index.d.ts +2 -1
  54. package/dist/main.js +21 -21
  55. package/dist/map.js +63 -63
  56. package/dist/material.css +1 -1
  57. package/dist/pdf-reader.js +1 -1
  58. package/dist/print.js +123 -115
  59. package/dist/{public-Cde8_SN8.js → public-CBlV2XuA.js} +742 -742
  60. package/dist/{sortable-provider-DYlpq8lP.js → sortable-provider-BvD98s8Y.js} +19 -19
  61. package/dist/{use-chat-composer-BwpSgP_D.js → use-chat-composer-BhdPNmYm.js} +912 -911
  62. package/dist/use-shape-morph-BKA_R5P5.js +35 -0
  63. package/docs/README.md +1 -0
  64. package/docs/components/data-display.md +2 -2
  65. package/docs/components/rich-widgets.md +196 -0
  66. package/docs/guides/drawing.md +499 -0
  67. package/docs/guides/printing.md +47 -0
  68. package/docs/guides/theming.md +86 -43
  69. package/docs/previews/rich-widgets-drawing.webp +0 -0
  70. package/docs/roadmap.md +17 -0
  71. package/docs/troubleshooting.md +166 -2
  72. package/lib/components/components.css +2 -0
  73. package/lib/components/theme-tokens.css +84 -72
  74. package/lib/components/tones/tokens.css +5 -5
  75. package/lib/components/ui/display/chip/chip-hairline.css +1 -1
  76. package/lib/components/ui/layout/sidebar/sidebar-tokens.css +1 -1
  77. package/lib/components/ui/overlays/dialog/dialog.css +2 -2
  78. package/lib/components/ui/primitives/field-box/field-box-tokens.css +1 -1
  79. package/lib/components/ui/primitives/toggle-group/toggle-group-segmented.css +2 -2
  80. package/lib/components/ui/primitives/toggle-group/toggle-group-separate.css +1 -1
  81. package/lib/components/ui/widgets/drawing/drawing-animate.css +123 -0
  82. package/lib/components/ui/widgets/drawing/drawing.css +459 -0
  83. package/package.json +22 -2
@@ -3,52 +3,59 @@
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
+ /* The focus indicator (WCAG 1.4.11, 3:1): 3.40:1 on --background, 3.69:1 on
57
+ --card, 3.23:1 on --muted. */
58
+ --ring: oklch(0.62 0.04 291);
52
59
  --chart-1: oklch(0.646 0.222 41.116);
53
60
  --chart-2: oklch(0.6 0.118 184.704);
54
61
  --chart-3: oklch(0.398 0.07 227.392);
@@ -74,63 +81,68 @@
74
81
  --chart-soft-4-ink: oklch(0.52 0.16 310);
75
82
  --chart-soft-5: oklch(0.9 0.05 25);
76
83
  --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);
84
+ --sidebar: oklch(0.985 0.006 293.9);
85
+ --sidebar-foreground: oklch(0.227 0.017 290);
86
+ --sidebar-primary: oklch(0.227 0.017 290);
80
87
  --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);
88
+ --sidebar-accent: oklch(0.955 0.012 292);
89
+ --sidebar-accent-foreground: oklch(0.227 0.017 290);
90
+ --sidebar-border: oklch(0.912 0.016 293.7);
91
+ --sidebar-ring: oklch(0.62 0.04 291);
85
92
  }
86
93
 
87
94
  .dark,
88
95
  [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);
96
+ --background: oklch(0.192 0.016 290.5);
97
+ --foreground: oklch(0.943 0.012 291.3);
98
+ --card: oklch(0.232 0.019 289.4);
99
+ --card-foreground: oklch(0.943 0.012 291.3);
100
+ --popover: oklch(0.232 0.019 289.4);
101
+ --popover-foreground: oklch(0.943 0.012 291.3);
95
102
  --primary: oklch(46% 0.1135 276.35);
96
- --primary-foreground: oklch(0.984 0.003 247.858);
103
+ --primary-foreground: oklch(0.995 0.002 291.3);
97
104
  /* Mixed 60 % toward white (the tonal Button labels' recipe): readable as text
98
105
  on --background and --card. */
99
106
  --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);
107
+ /* Brighter than the light one: it is read as text on the dark surfaces (6.3:1
108
+ on --background, 5.8:1 on --card; 4.6:1 on its own 15 % tonal tint over a
109
+ Card). A filled secondary surface mixes it toward --background (the opaque
110
+ 70 % mix) to keep 5.2:1 under its near-white text (4.9:1 over a Card). */
111
+ --secondary: oklch(0.675 0.1135 245.65);
112
+ --secondary-foreground: oklch(0.995 0.002 291.3);
113
+ --muted: oklch(0.27 0.022 290);
114
+ --muted-foreground: oklch(0.725 0.03 292.2);
115
+ /* 3.5:1 on --background, 3.2:1 on --card; the fill 3.3:1 on the track. */
116
+ --track: oklch(0.53 0.03 290);
109
117
  --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);
118
+ --tooltip: oklch(0.925 0.012 291.3);
119
+ --tooltip-foreground: oklch(0.446 0.043 291);
120
+ --accent: oklch(0.27 0.022 290);
121
+ --accent-foreground: oklch(0.943 0.012 291.3);
114
122
  --error: oklch(0.577 0.245 27.325);
115
- --error-foreground: oklch(0.984 0.003 247.858);
123
+ --error-foreground: oklch(0.995 0.002 291.3);
116
124
  /* --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. */
118
- --error-text: color-mix(in oklab, var(--error) 80%, white);
125
+ 3.9:1 on --background and 3.5:1 on --card. Lightened (76 % --error), 5.85
126
+ and 5.35:1, and 4.78:1 on a focused error menu item (bg-error/20 over the
127
+ popover; 4.45:1 at the former 80 %, which missed 4.5:1 once rendered). */
128
+ --error-text: color-mix(in oklab, var(--error) 76%, white);
119
129
  /* 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). */
130
+ badge's 60% tint, which keeps its contrast under near-white text (success
131
+ 7.1:1, info 5.6:1, error 9.1:1). */
121
132
  --success: oklch(0.6 0.118 184.704);
122
- --success-foreground: oklch(0.984 0.003 247.858);
133
+ --success-foreground: oklch(0.995 0.002 291.3);
123
134
  --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. */
135
+ --info-foreground: oklch(0.995 0.002 291.3);
136
+ /* Amber too, as text: 6.7:1 on --background and 6.1:1 on --card, 5.9:1 and
137
+ 5.3:1 on its 10% tint; the badge's 60% fill under near-white text is
138
+ 5.8:1 on a page and 5.5:1 on a Card. */
128
139
  --warning: oklch(0.7 0.15 70);
129
- --warning-foreground: oklch(0.984 0.003 247.858);
140
+ --warning-foreground: oklch(0.995 0.002 291.3);
130
141
  --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);
142
+ --border: oklch(0.301 0.025 291.4);
143
+ --input: oklch(0.34 0.027 291.4);
144
+ /* 3.78:1 on --background, 3.45:1 on --card, 3.09:1 on --muted. */
145
+ --ring: oklch(0.551 0.03 290);
134
146
  --chart-1: oklch(0.488 0.243 264.376);
135
147
  --chart-2: oklch(0.696 0.17 162.48);
136
148
  --chart-3: oklch(0.769 0.188 70.08);
@@ -138,7 +150,7 @@
138
150
  --chart-5: oklch(0.645 0.246 16.439);
139
151
  /* The soft palette on the dark card: mid-tone fills (L 0.49, the sand a
140
152
  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
153
+ 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
154
  more. Ink on its own fill (the outline): 1 3.13:1, 2 3.40, 3 3.69,
143
155
  4 3.11, 5 3.13. Every pair at least 54 degrees and ΔEOK 0.109 apart. */
144
156
  --chart-soft-1: oklch(0.49 0.08 255);
@@ -151,14 +163,14 @@
151
163
  --chart-soft-4-ink: oklch(0.78 0.13 310);
152
164
  --chart-soft-5: oklch(0.49 0.09 25);
153
165
  --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);
166
+ --sidebar: oklch(0.232 0.019 289.4);
167
+ --sidebar-foreground: oklch(0.943 0.012 291.3);
156
168
  --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);
169
+ --sidebar-primary-foreground: oklch(0.995 0.002 291.3);
170
+ --sidebar-accent: oklch(0.27 0.022 290);
171
+ --sidebar-accent-foreground: oklch(0.943 0.012 291.3);
172
+ --sidebar-border: oklch(0.301 0.025 291.4);
173
+ --sidebar-ring: oklch(0.551 0.03 290);
162
174
  }
163
175
 
164
176
  /* The tertiary colour (the strix violet), for accents and backgrounds beside
@@ -168,10 +180,10 @@
168
180
  --tertiary-foreground: oklch(0.984 0.003 247.858);
169
181
  }
170
182
 
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. */
183
+ /* Dark: lifted like --secondary, as it is read as text (6.5:1 on --background,
184
+ 5.9:1 on --card); its foreground is the dark surface, 6.5:1 on the fill. */
173
185
  .dark,
174
186
  [data-theme="dark"] {
175
187
  --tertiary: oklch(0.7 0.15 310.75);
176
- --tertiary-foreground: oklch(0.14 0.036 258.53);
188
+ --tertiary-foreground: oklch(0.192 0.016 290.5);
177
189
  }
@@ -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;
@@ -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"] {
@@ -0,0 +1,123 @@
1
+ /* Entry animations (`drawOn` and `appear` of @nxgt/material/draw/animate).
2
+ * A node carries `nxgt-draw-on` or `nxgt-draw-appear`, a delay step
3
+ * `nxgt-draw-d-<0..19>` and a duration `nxgt-draw-t-<s|m|l>`: never an inline
4
+ * style. The delay is the step times `--nxgt-draw-stagger` (60ms), set on the
5
+ * drawing or an ancestor to speed it up or slow it down. The animations fill
6
+ * both ways, so a replay (`useDrawingControls`) can find them and the last
7
+ * frame is the drawing itself: a stroke is traced with a dash as long as its
8
+ * path (`pathLength` 1), a fill fades in, a node fades and grows in. */
9
+ .nxgt-draw-t-s {
10
+ --nxgt-draw-dur: 300ms;
11
+ }
12
+ .nxgt-draw-t-m {
13
+ --nxgt-draw-dur: 600ms;
14
+ }
15
+ .nxgt-draw-t-l {
16
+ --nxgt-draw-dur: 1000ms;
17
+ }
18
+ .nxgt-draw-d-0 {
19
+ --nxgt-draw-i: 0;
20
+ }
21
+ .nxgt-draw-d-1 {
22
+ --nxgt-draw-i: 1;
23
+ }
24
+ .nxgt-draw-d-2 {
25
+ --nxgt-draw-i: 2;
26
+ }
27
+ .nxgt-draw-d-3 {
28
+ --nxgt-draw-i: 3;
29
+ }
30
+ .nxgt-draw-d-4 {
31
+ --nxgt-draw-i: 4;
32
+ }
33
+ .nxgt-draw-d-5 {
34
+ --nxgt-draw-i: 5;
35
+ }
36
+ .nxgt-draw-d-6 {
37
+ --nxgt-draw-i: 6;
38
+ }
39
+ .nxgt-draw-d-7 {
40
+ --nxgt-draw-i: 7;
41
+ }
42
+ .nxgt-draw-d-8 {
43
+ --nxgt-draw-i: 8;
44
+ }
45
+ .nxgt-draw-d-9 {
46
+ --nxgt-draw-i: 9;
47
+ }
48
+ .nxgt-draw-d-10 {
49
+ --nxgt-draw-i: 10;
50
+ }
51
+ .nxgt-draw-d-11 {
52
+ --nxgt-draw-i: 11;
53
+ }
54
+ .nxgt-draw-d-12 {
55
+ --nxgt-draw-i: 12;
56
+ }
57
+ .nxgt-draw-d-13 {
58
+ --nxgt-draw-i: 13;
59
+ }
60
+ .nxgt-draw-d-14 {
61
+ --nxgt-draw-i: 14;
62
+ }
63
+ .nxgt-draw-d-15 {
64
+ --nxgt-draw-i: 15;
65
+ }
66
+ .nxgt-draw-d-16 {
67
+ --nxgt-draw-i: 16;
68
+ }
69
+ .nxgt-draw-d-17 {
70
+ --nxgt-draw-i: 17;
71
+ }
72
+ .nxgt-draw-d-18 {
73
+ --nxgt-draw-i: 18;
74
+ }
75
+ .nxgt-draw-d-19 {
76
+ --nxgt-draw-i: 19;
77
+ }
78
+ .nxgt-draw-on,
79
+ .nxgt-draw-appear {
80
+ animation-duration: var(--nxgt-draw-dur, 600ms);
81
+ animation-delay: calc(var(--nxgt-draw-i, 0) * var(--nxgt-draw-stagger, 60ms));
82
+ animation-timing-function: cubic-bezier(0.2, 0, 0, 1);
83
+ animation-fill-mode: both;
84
+ }
85
+ .nxgt-draw-on {
86
+ animation-name: nxgt-draw-trace, nxgt-draw-fill;
87
+ }
88
+ .nxgt-draw-appear {
89
+ animation-name: nxgt-draw-fade, nxgt-draw-grow;
90
+ transform-box: fill-box;
91
+ transform-origin: center;
92
+ }
93
+ @keyframes nxgt-draw-trace {
94
+ from {
95
+ stroke-dasharray: 1;
96
+ stroke-dashoffset: 1;
97
+ }
98
+ to {
99
+ stroke-dasharray: 1;
100
+ stroke-dashoffset: 0;
101
+ }
102
+ }
103
+ @keyframes nxgt-draw-fill {
104
+ from {
105
+ fill-opacity: 0;
106
+ }
107
+ }
108
+ @keyframes nxgt-draw-fade {
109
+ from {
110
+ opacity: 0;
111
+ }
112
+ }
113
+ @keyframes nxgt-draw-grow {
114
+ from {
115
+ scale: 0.92;
116
+ }
117
+ }
118
+ @media (prefers-reduced-motion: reduce) {
119
+ .nxgt-draw-on,
120
+ .nxgt-draw-appear {
121
+ animation: none;
122
+ }
123
+ }