@neo-ui-kit/react 1.3.8 → 1.3.10

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.
@@ -37,21 +37,21 @@
37
37
  }
38
38
 
39
39
  /* Control box. */
40
- .ad-input-base {
40
+ .ad.ad-input-base {
41
41
  --ad-input-accent: var(--ad-pink);
42
42
  --ad-input-icon: calc(var(--ad-size-font) * 1.45);
43
43
  position: relative;
44
44
  display: flex;
45
45
  align-items: center;
46
- gap: calc(var(--ad-size-gap) * 0.75);
46
+ gap: var(--ad-size-gap);
47
47
  min-width: 0;
48
48
  width: 100%;
49
49
  min-height: var(--ad-size-h);
50
- padding-inline: var(--ad-size-pad-x);
51
- border: 0.0625rem solid rgb(from var(--ad-secondary) r g b / 0.18);
52
- border-radius: var(--ad-size-radius);
53
- background: var(--ad-surface-input);
54
- box-shadow: var(--ad-shadow-input);
50
+ padding-inline: calc(var(--ad-size-pad-x) * 1.5);
51
+ border: 0.0625rem solid var(--ad-input-accent);
52
+ border-radius: var(--ad-radius-pill);
53
+ background: transparent;
54
+ box-shadow: 0 0 0.65rem rgb(from var(--ad-input-accent) r g b / 0.22);
55
55
  font-size: var(--ad-size-font);
56
56
  color: var(--ad-text);
57
57
  cursor: text;
@@ -61,36 +61,22 @@
61
61
  background 0.18s;
62
62
  }
63
63
  .ad-input-base:hover:not([data-disabled]) {
64
- border-color: rgb(from var(--ad-secondary) r g b / 0.42);
64
+ border-color: var(--ad-input-accent);
65
+ box-shadow: 0 0 0.9rem rgb(from var(--ad-input-accent) r g b / 0.35);
65
66
  }
66
67
  .ad-input-base:focus-within {
67
68
  border-color: var(--ad-input-accent);
68
69
  box-shadow:
69
70
  0 0 0 0.1875rem rgb(from var(--ad-primary) r g b / 0.14),
70
- 0 0 1rem rgb(from var(--ad-primary) r g b / 0.15),
71
- inset 0 0.0625rem 0.125rem rgb(from var(--ad-neutral-200) r g b / 0.13);
71
+ 0 0 1rem rgb(from var(--ad-input-accent) r g b / 0.35);
72
72
  }
73
- /* Fluent-style accent line that grows from the centre on focus. */
74
- .ad-input-base::after {
75
- content: "";
73
+ /* Use the same neon contour as the rest of the kit. */
74
+ .ad-input-base > .ad-input-border {
76
75
  position: absolute;
77
- inset: auto 0.5rem -0.0625rem;
78
- height: 0.125rem;
79
- border-radius: 999rem;
80
- background: linear-gradient(
81
- 90deg,
82
- transparent,
83
- var(--ad-input-accent),
84
- transparent
85
- );
86
- box-shadow: 0 0 0.5rem var(--ad-red);
87
- transform: scaleX(0);
88
- transition: transform 0.24s cubic-bezier(0.2, 0.8, 0.2, 1);
76
+ inset: -0.0625rem;
77
+ border-radius: inherit;
89
78
  pointer-events: none;
90
79
  }
91
- .ad-input-base:focus-within::after {
92
- transform: scaleX(1);
93
- }
94
80
  .ad-input-base[data-invalid] {
95
81
  --ad-input-accent: var(--ad-secondary);
96
82
  border-color: rgb(from var(--ad-primary) r g b / 0.61);
@@ -102,28 +88,24 @@
102
88
  .ad-input-base[data-readonly] {
103
89
  border-style: dashed;
104
90
  border-color: rgb(from var(--ad-secondary) r g b / 0.4);
105
- background: var(--ad-neutral-900);
106
91
  box-shadow: none;
107
92
  }
108
93
 
109
94
  /* Variants. */
110
95
  .ad-input-base[data-ad-variant="filled"] {
111
- border-color: transparent;
112
- border-bottom-color: rgb(from var(--ad-secondary) r g b / 0.4);
113
- border-end-start-radius: 0.25rem;
114
- border-end-end-radius: 0.25rem;
115
- background: linear-gradient(180deg, var(--ad-neutral-800), var(--ad-neutral-850));
116
- box-shadow: inset 0 0.0625rem 0 #ffffff10;
96
+ border-color: rgb(from var(--ad-neutral-200) r g b / 0.2);
97
+ background:
98
+ radial-gradient(ellipse at 100% 100%, rgb(from var(--ad-primary) r g b / 0.4), transparent 55%),
99
+ linear-gradient(180deg, var(--ad-neutral-800), var(--ad-neutral-850));
100
+ box-shadow: inset 0 0.0625rem 0 rgb(from var(--ad-text) r g b / 0.1);
117
101
  }
118
102
  .ad-input-base[data-ad-variant="filled"]:hover:not([data-disabled]) {
119
- background: linear-gradient(180deg, var(--ad-primary-800), var(--ad-neutral-800));
120
- border-color: transparent;
121
- border-bottom-color: rgb(from var(--ad-secondary) r g b / 0.66);
103
+ border-color: rgb(from var(--ad-input-accent) r g b / 0.66);
122
104
  }
123
105
  .ad-input-base[data-ad-variant="underlined"] {
124
106
  padding-inline: 0.125rem;
125
107
  border-color: transparent;
126
- border-bottom-color: rgb(from var(--ad-secondary) r g b / 0.42);
108
+ border-bottom-color: var(--ad-input-accent);
127
109
  border-radius: 0;
128
110
  background: transparent;
129
111
  box-shadow: none;
@@ -131,17 +113,17 @@
131
113
  .ad-input-base[data-ad-variant="underlined"]:hover:not([data-disabled]) {
132
114
  border-color: transparent;
133
115
  border-bottom-color: rgb(from var(--ad-secondary) r g b / 0.77);
116
+ box-shadow: none;
134
117
  }
135
- .ad-input-base:is(
136
- [data-ad-variant="filled"],
137
- [data-ad-variant="underlined"]
138
- ):focus-within {
118
+ .ad-input-base[data-ad-variant="underlined"]:focus-within {
139
119
  border-color: transparent;
140
120
  border-bottom-color: var(--ad-input-accent);
141
121
  box-shadow: none;
142
122
  }
143
- .ad-input-base[data-ad-variant="underlined"]::after {
144
- inset-inline: 0;
123
+ .ad-input-base[data-ad-variant="underlined"] > .ad-input-border {
124
+ inset: auto -0.0625rem -0.0625rem;
125
+ height: 0.0625rem;
126
+ border-radius: 0;
145
127
  }
146
128
 
147
129
  /* Content. */
@@ -173,7 +155,7 @@
173
155
  }
174
156
  .ad-input-base input::placeholder,
175
157
  .ad-input-base textarea::placeholder {
176
- color: var(--ad-neutral-500);
158
+ color: var(--ad-neutral-200);
177
159
  opacity: 1;
178
160
  }
179
161
  .ad-input-base textarea {
@@ -205,7 +187,7 @@
205
187
  align-items: center;
206
188
  gap: 0.125rem;
207
189
  flex: none;
208
- color: var(--ad-muted);
190
+ color: var(--ad-text);
209
191
  }
210
192
  .ad-input-base[data-multiline] .ad-input-adornment {
211
193
  min-height: calc(var(--ad-size-h) - 0.125rem - var(--ad-size-pad-x) * 1.5);
@@ -0,0 +1,5 @@
1
+ export function createMelodyGlow(root: any, initialState: any, onReady: any): {
2
+ update(next: any): void;
3
+ ready(data: any): void;
4
+ dispose: () => void;
5
+ } | null;
@@ -1,14 +1,18 @@
1
1
  /* Styles owned by MelodyRoll: a dark glass lane with a semitone and seconds grid; notes glide in,
2
2
  flash green when sung right; the playhead and lane breathe with the music. */
3
+ @property --ad-roll-beat {
4
+ syntax: "<number>";
5
+ inherits: false;
6
+ initial-value: 0;
7
+ }
3
8
  .ad-melody-roll {
4
9
  --ad-roll-keys: clamp(2.75rem, 8%, 4.5rem);
5
10
  position: relative;
6
11
  display: grid;
7
- grid-template-columns: var(--ad-roll-keys) minmax(0, 1fr);
8
12
  width: 100%;
9
13
  height: 100%;
10
14
  min-height: 8rem;
11
- overflow: hidden;
15
+ overflow: visible;
12
16
  isolation: isolate;
13
17
  /* Room for the hairline edge that the glass layer below draws. */
14
18
  padding: 0.0625rem;
@@ -16,10 +20,66 @@
16
20
  box-shadow: 0 0 calc(var(--ad-roll-beat) * 1.6rem) rgb(from var(--ad-primary) r g b / 0.25);
17
21
  transition: box-shadow 0.12s;
18
22
  }
23
+ .ad-melody-roll-content {
24
+ display: grid;
25
+ grid-template-columns: var(--ad-roll-keys) minmax(0, 1fr);
26
+ width: calc(100% + 0.125rem);
27
+ height: calc(100% + 0.125rem);
28
+ margin: -0.0625rem;
29
+ padding: 0.0625rem;
30
+ min-height: 0;
31
+ overflow: hidden;
32
+ border-radius: inherit;
33
+ }
34
+ .ad-melody-glow {
35
+ position: absolute;
36
+ pointer-events: none;
37
+ z-index: -1;
38
+ }
39
+ .ad-melody-voice-canvas {
40
+ position: absolute;
41
+ inset: 0;
42
+ width: 100%;
43
+ height: 100%;
44
+ z-index: 3;
45
+ pointer-events: none;
46
+ }
47
+ .ad-melody-note-canvas, .ad-melody-key-canvas {
48
+ position: absolute;
49
+ inset: 0;
50
+ width: 100%;
51
+ height: 100%;
52
+ pointer-events: none;
53
+ }
54
+ .ad-melody-key-canvas { z-index: -1; }
55
+ .ad-melody-roll[data-ad-foreground] .ad-melody-roll-seconds { visibility: hidden; }
56
+ .ad-melody-roll-keys { isolation: isolate; }
57
+ .ad-melody-roll[data-ad-foreground] .ad-melody-note:not([data-render-probe]) {
58
+ visibility: hidden;
59
+ transition: none;
60
+ animation: none;
61
+ }
62
+ .ad-melody-roll[data-ad-foreground] .ad-melody-roll-keys:not([data-render-probe]) > .ad-piano-key {
63
+ background: transparent;
64
+ box-shadow: none;
65
+ color: transparent;
66
+ border-color: transparent;
67
+ filter: none;
68
+ translate: none;
69
+ transition: none;
70
+ animation: none;
71
+ }
72
+ .ad-melody-roll[data-ad-glow] {
73
+ box-shadow: none;
74
+ transition: none;
75
+ }
76
+ .ad-melody-roll[data-ad-glow] :is(.ad-melody-roll-light, .ad-melody-playhead-light, .ad-melody-voice, svg.ad-melody-trail) {
77
+ visibility: hidden;
78
+ }
19
79
  /* The glass: its own still layer, so the frosted backdrop is never redrawn by the beat or by the
20
80
  notes moving over it. */
21
81
  .ad-melody-roll::before,
22
- .ad-melody-roll::after {
82
+ .ad-melody-roll-light {
23
83
  content: "";
24
84
  position: absolute;
25
85
  inset: 0;
@@ -36,10 +96,9 @@
36
96
  backdrop-filter: blur(0.5rem);
37
97
  }
38
98
  /* The beat: a brighter edge and a warmer light over the glass, faded in with the music. */
39
- .ad-melody-roll::after {
99
+ .ad-melody-roll-light {
40
100
  border-color: rgb(from var(--ad-primary) r g b / 0.35);
41
101
  background: radial-gradient(80% 120% at 25% 50%, rgb(from var(--ad-primary) r g b / 0.12), transparent 70%);
42
- opacity: var(--ad-roll-beat);
43
102
  transition: opacity 0.12s;
44
103
  will-change: opacity;
45
104
  }
@@ -155,14 +214,13 @@
155
214
  0 0 1rem var(--ad-primary);
156
215
  }
157
216
  /* The playhead flares on the beat: a wider glow, drawn once, faded in. */
158
- .ad-melody-playhead::after {
217
+ .ad-melody-playhead-light {
159
218
  content: "";
160
219
  position: absolute;
161
220
  inset: 0;
162
221
  box-shadow:
163
222
  0 0 1.6rem #fff,
164
223
  0 0 2.6rem var(--ad-primary);
165
- opacity: var(--ad-roll-beat);
166
224
  will-change: opacity;
167
225
  }
168
226
  /* The singer's voice: grows with loudness, greens with accuracy. */
package/dist/core.js CHANGED
@@ -11,7 +11,7 @@ import {
11
11
  useSmoothWheel,
12
12
  useTabShape,
13
13
  useTick
14
- } from "./chunks/chunk-YVRQTI7B.js";
14
+ } from "./chunks/chunk-OCH27SNY.js";
15
15
  import {
16
16
  LocaleProvider,
17
17
  addMessages,
package/dist/editor.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  PianoRoll
3
- } from "./chunks/chunk-VK6GHRLV.js";
3
+ } from "./chunks/chunk-RM7YNNMZ.js";
4
4
  import "./chunks/chunk-BJSFN52W.js";
5
5
  import "./chunks/chunk-FCOU3ODR.js";
6
6
  export {
package/dist/forms.js CHANGED
@@ -4,8 +4,8 @@ import {
4
4
  defaultFieldRegistry,
5
5
  useForm,
6
6
  useFormContext
7
- } from "./chunks/chunk-FRALT7ER.js";
8
- import "./chunks/chunk-YVRQTI7B.js";
7
+ } from "./chunks/chunk-L6VCC7AS.js";
8
+ import "./chunks/chunk-OCH27SNY.js";
9
9
  import "./chunks/chunk-BJSFN52W.js";
10
10
  import "./chunks/chunk-FCOU3ODR.js";
11
11
  export {