@lumen-stack/react 0.8.1 → 0.9.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.
- package/dist/index.cjs +3 -3
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +6 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.js +3 -3
- package/dist/index.js.map +1 -1
- package/dist/styles.css +87 -23
- package/package.json +2 -2
package/dist/styles.css
CHANGED
|
@@ -13,15 +13,19 @@
|
|
|
13
13
|
--lumen-s-5: 24px;
|
|
14
14
|
--lumen-s-6: 32px;
|
|
15
15
|
|
|
16
|
-
/* Radii
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
--lumen-
|
|
16
|
+
/* Radii — derived from one themeable base so the dashboard's corner-radius
|
|
17
|
+
* control (which sets --lumen-radius) scales the whole widget. At the 10px
|
|
18
|
+
* default this reproduces the original 6 / 10 / 14 scale exactly. */
|
|
19
|
+
--lumen-radius: 10px;
|
|
20
|
+
--lumen-r-sm: max(0px, calc(var(--lumen-radius) - 4px));
|
|
21
|
+
--lumen-r-md: var(--lumen-radius);
|
|
22
|
+
--lumen-r-lg: calc(var(--lumen-radius) + 4px);
|
|
20
23
|
|
|
21
24
|
/* Type */
|
|
22
25
|
--lumen-font-ui:
|
|
23
26
|
"Inter var", "Inter", -apple-system, BlinkMacSystemFont, "SF Pro Text",
|
|
24
27
|
"Segoe UI", Roboto, ui-sans-serif, system-ui, sans-serif;
|
|
28
|
+
--lumen-fs-11: 11px;
|
|
25
29
|
--lumen-fs-12: 12px;
|
|
26
30
|
--lumen-fs-13: 13px;
|
|
27
31
|
--lumen-fs-14: 14px;
|
|
@@ -43,10 +47,16 @@
|
|
|
43
47
|
--lumen-fg-subtle: #71717a;
|
|
44
48
|
--lumen-border: #26262a;
|
|
45
49
|
--lumen-border-strong: #3f3f46;
|
|
46
|
-
|
|
47
|
-
|
|
50
|
+
/* Brand accent — International Klein Blue, shared with the marketing site
|
|
51
|
+
* (apps/web/app/lp.css `.lp-root --blue`). Same value in light + dark so a
|
|
52
|
+
* CTA reads as Lumen-blue regardless of the host scheme. The hex line is a
|
|
53
|
+
* fallback for engines without oklch(); modern browsers take the oklch. */
|
|
54
|
+
--lumen-accent: #3a2fe6;
|
|
55
|
+
--lumen-accent: oklch(0.4550 0.3000 264);
|
|
56
|
+
--lumen-accent-fg: #ffffff;
|
|
57
|
+
--lumen-mark: oklch(0.8800 0.1650 93);
|
|
48
58
|
--lumen-danger: #ef4444;
|
|
49
|
-
--lumen-focus-ring:
|
|
59
|
+
--lumen-focus-ring: oklch(0.4550 0.3000 264 / 0.55);
|
|
50
60
|
--lumen-shadow-sm: 0 1px 2px rgb(0 0 0 / 0.4);
|
|
51
61
|
--lumen-shadow-lg: 0 24px 64px -12px rgb(0 0 0 / 0.7),
|
|
52
62
|
0 1px 0 rgb(255 255 255 / 0.04) inset;
|
|
@@ -55,7 +65,6 @@
|
|
|
55
65
|
--lumen-primary: var(--lumen-accent);
|
|
56
66
|
--lumen-primary-fg: var(--lumen-accent-fg);
|
|
57
67
|
--lumen-muted: var(--lumen-fg-muted);
|
|
58
|
-
--lumen-radius: var(--lumen-r-md);
|
|
59
68
|
--lumen-shadow: var(--lumen-shadow-lg);
|
|
60
69
|
}
|
|
61
70
|
|
|
@@ -70,7 +79,9 @@
|
|
|
70
79
|
--lumen-fg-subtle: #a1a1aa;
|
|
71
80
|
--lumen-border: #e4e4e7;
|
|
72
81
|
--lumen-border-strong: #d4d4d8;
|
|
73
|
-
|
|
82
|
+
/* Accent stays Klein blue in light mode too (brand-consistent CTA). */
|
|
83
|
+
--lumen-accent: #3a2fe6;
|
|
84
|
+
--lumen-accent: oklch(0.4550 0.3000 264);
|
|
74
85
|
--lumen-accent-fg: #ffffff;
|
|
75
86
|
--lumen-shadow-sm: 0 1px 2px rgb(0 0 0 / 0.06);
|
|
76
87
|
--lumen-shadow-lg: 0 24px 64px -12px rgb(0 0 0 / 0.18);
|
|
@@ -87,8 +98,9 @@
|
|
|
87
98
|
--lumen-fg-subtle: #71717a;
|
|
88
99
|
--lumen-border: #26262a;
|
|
89
100
|
--lumen-border-strong: #3f3f46;
|
|
90
|
-
--lumen-accent: #
|
|
91
|
-
--lumen-accent
|
|
101
|
+
--lumen-accent: #3a2fe6;
|
|
102
|
+
--lumen-accent: oklch(0.4550 0.3000 264);
|
|
103
|
+
--lumen-accent-fg: #ffffff;
|
|
92
104
|
--lumen-shadow-sm: 0 1px 2px rgb(0 0 0 / 0.4);
|
|
93
105
|
--lumen-shadow-lg: 0 24px 64px -12px rgb(0 0 0 / 0.7),
|
|
94
106
|
0 1px 0 rgb(255 255 255 / 0.04) inset;
|
|
@@ -103,7 +115,8 @@
|
|
|
103
115
|
--lumen-fg-subtle: #a1a1aa;
|
|
104
116
|
--lumen-border: #e4e4e7;
|
|
105
117
|
--lumen-border-strong: #d4d4d8;
|
|
106
|
-
--lumen-accent: #
|
|
118
|
+
--lumen-accent: #3a2fe6;
|
|
119
|
+
--lumen-accent: oklch(0.4550 0.3000 264);
|
|
107
120
|
--lumen-accent-fg: #ffffff;
|
|
108
121
|
--lumen-shadow-sm: 0 1px 2px rgb(0 0 0 / 0.06);
|
|
109
122
|
--lumen-shadow-lg: 0 24px 64px -12px rgb(0 0 0 / 0.18);
|
|
@@ -123,7 +136,8 @@
|
|
|
123
136
|
padding: 8px 14px;
|
|
124
137
|
font-family: var(--lumen-font-ui);
|
|
125
138
|
font-size: var(--lumen-fs-13);
|
|
126
|
-
font-weight:
|
|
139
|
+
font-weight: 600;
|
|
140
|
+
letter-spacing: -0.005em;
|
|
127
141
|
line-height: var(--lumen-lh-tight);
|
|
128
142
|
cursor: pointer;
|
|
129
143
|
transition:
|
|
@@ -340,6 +354,8 @@
|
|
|
340
354
|
position: relative;
|
|
341
355
|
background: var(--lumen-bg);
|
|
342
356
|
color: var(--lumen-fg);
|
|
357
|
+
/* Match the marketing site's editorial tracking (.lp-root). */
|
|
358
|
+
letter-spacing: -0.008em;
|
|
343
359
|
width: 100%;
|
|
344
360
|
max-width: 100%;
|
|
345
361
|
max-height: 92dvh;
|
|
@@ -429,9 +445,9 @@
|
|
|
429
445
|
display: inline-flex;
|
|
430
446
|
align-items: center;
|
|
431
447
|
gap: 8px;
|
|
432
|
-
font-size:
|
|
448
|
+
font-size: 15px;
|
|
433
449
|
font-weight: 600;
|
|
434
|
-
letter-spacing: -0.
|
|
450
|
+
letter-spacing: -0.01em;
|
|
435
451
|
margin: 0;
|
|
436
452
|
color: var(--lumen-fg);
|
|
437
453
|
}
|
|
@@ -439,7 +455,7 @@
|
|
|
439
455
|
width: 8px;
|
|
440
456
|
height: 8px;
|
|
441
457
|
border-radius: 2px;
|
|
442
|
-
background: var(--lumen-
|
|
458
|
+
background: var(--lumen-accent);
|
|
443
459
|
transform: rotate(45deg);
|
|
444
460
|
}
|
|
445
461
|
.lumen-icon-btn {
|
|
@@ -1130,19 +1146,19 @@ textarea.lumen-input { resize: vertical; min-height: 76px; }
|
|
|
1130
1146
|
position: absolute;
|
|
1131
1147
|
inset: 0;
|
|
1132
1148
|
width: 0;
|
|
1133
|
-
background: var(--lumen-
|
|
1149
|
+
background: var(--lumen-accent);
|
|
1134
1150
|
transition: width var(--lumen-dur) var(--lumen-ease);
|
|
1135
1151
|
}
|
|
1136
1152
|
.lumen-step-done .lumen-step-num {
|
|
1137
|
-
background: var(--lumen-
|
|
1153
|
+
background: var(--lumen-accent);
|
|
1138
1154
|
color: var(--lumen-accent-fg);
|
|
1139
|
-
border-color: var(--lumen-
|
|
1155
|
+
border-color: var(--lumen-accent);
|
|
1140
1156
|
}
|
|
1141
1157
|
.lumen-step-done .lumen-step-lbl { color: var(--lumen-fg-muted); }
|
|
1142
1158
|
.lumen-step-done .lumen-step-bar::after { width: 100%; }
|
|
1143
1159
|
.lumen-step-active .lumen-step-num {
|
|
1144
|
-
border-color: var(--lumen-
|
|
1145
|
-
color: var(--lumen-
|
|
1160
|
+
border-color: var(--lumen-accent);
|
|
1161
|
+
color: var(--lumen-accent);
|
|
1146
1162
|
box-shadow: 0 0 0 3px var(--lumen-focus-ring);
|
|
1147
1163
|
}
|
|
1148
1164
|
.lumen-step-active .lumen-step-lbl { color: var(--lumen-fg); font-weight: 500; }
|
|
@@ -1196,10 +1212,12 @@ textarea.lumen-input { resize: vertical; min-height: 76px; }
|
|
|
1196
1212
|
margin-left: auto;
|
|
1197
1213
|
flex: none;
|
|
1198
1214
|
font-size: 10px;
|
|
1215
|
+
font-weight: 600;
|
|
1199
1216
|
text-transform: uppercase;
|
|
1200
1217
|
letter-spacing: 0.06em;
|
|
1201
|
-
color: var(--lumen-
|
|
1202
|
-
|
|
1218
|
+
color: var(--lumen-accent);
|
|
1219
|
+
background: color-mix(in oklab, var(--lumen-accent) 10%, transparent);
|
|
1220
|
+
border: 1px solid color-mix(in oklab, var(--lumen-accent) 30%, transparent);
|
|
1203
1221
|
border-radius: 999px;
|
|
1204
1222
|
padding: 3px 9px;
|
|
1205
1223
|
}
|
|
@@ -1289,6 +1307,52 @@ textarea.lumen-input { resize: vertical; min-height: 76px; }
|
|
|
1289
1307
|
}
|
|
1290
1308
|
.lumen-cap-note { font-size: var(--lumen-fs-12); color: var(--lumen-fg-subtle); }
|
|
1291
1309
|
|
|
1310
|
+
/* Voice note, capture-step variant — record the moment the bug is still on
|
|
1311
|
+
* screen. Shares the audio-row states with the describe step; the wrapper
|
|
1312
|
+
* gives it a branded affordance + an in-context hint. */
|
|
1313
|
+
.lumen-voice-capture {
|
|
1314
|
+
display: flex;
|
|
1315
|
+
flex-direction: column;
|
|
1316
|
+
gap: 6px;
|
|
1317
|
+
padding: 8px 16px 4px;
|
|
1318
|
+
}
|
|
1319
|
+
.lumen-voice-capture-btn {
|
|
1320
|
+
align-self: flex-start;
|
|
1321
|
+
display: inline-flex;
|
|
1322
|
+
align-items: center;
|
|
1323
|
+
gap: 8px;
|
|
1324
|
+
appearance: none;
|
|
1325
|
+
cursor: pointer;
|
|
1326
|
+
font: inherit;
|
|
1327
|
+
font-size: var(--lumen-fs-13);
|
|
1328
|
+
font-weight: 600;
|
|
1329
|
+
letter-spacing: -0.005em;
|
|
1330
|
+
color: var(--lumen-accent);
|
|
1331
|
+
background: color-mix(in oklab, var(--lumen-accent) 10%, transparent);
|
|
1332
|
+
border: 1px solid color-mix(in oklab, var(--lumen-accent) 32%, transparent);
|
|
1333
|
+
border-radius: 999px;
|
|
1334
|
+
padding: 8px 14px;
|
|
1335
|
+
transition: background-color var(--lumen-dur-fast) var(--lumen-ease),
|
|
1336
|
+
border-color var(--lumen-dur-fast) var(--lumen-ease),
|
|
1337
|
+
transform var(--lumen-dur-fast) var(--lumen-ease);
|
|
1338
|
+
-webkit-tap-highlight-color: transparent;
|
|
1339
|
+
}
|
|
1340
|
+
.lumen-voice-capture-btn svg { width: 16px; height: 16px; }
|
|
1341
|
+
.lumen-voice-capture-btn:hover:not(:disabled) {
|
|
1342
|
+
background: color-mix(in oklab, var(--lumen-accent) 16%, transparent);
|
|
1343
|
+
border-color: color-mix(in oklab, var(--lumen-accent) 45%, transparent);
|
|
1344
|
+
transform: translateY(-0.5px);
|
|
1345
|
+
}
|
|
1346
|
+
.lumen-voice-capture-btn:focus-visible {
|
|
1347
|
+
outline: 2px solid var(--lumen-focus-ring);
|
|
1348
|
+
outline-offset: 2px;
|
|
1349
|
+
}
|
|
1350
|
+
.lumen-voice-capture-hint {
|
|
1351
|
+
margin: 0;
|
|
1352
|
+
font-size: var(--lumen-fs-12);
|
|
1353
|
+
color: var(--lumen-fg-subtle);
|
|
1354
|
+
}
|
|
1355
|
+
|
|
1292
1356
|
/* ─── Wizard: step 3 review ──────────────────────────────────────────── */
|
|
1293
1357
|
.lumen-review { padding: 8px 16px 16px; }
|
|
1294
1358
|
.lumen-review-row {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lumen-stack/react",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.9.0",
|
|
4
4
|
"description": "React SDK for Lumen — screenshot capture, annotation, and feedback widget.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"publishConfig": {
|
|
@@ -39,7 +39,7 @@
|
|
|
39
39
|
"react-dom": ">=18"
|
|
40
40
|
},
|
|
41
41
|
"dependencies": {
|
|
42
|
-
"@lumen-stack/core": "^0.
|
|
42
|
+
"@lumen-stack/core": "^0.9.0",
|
|
43
43
|
"html2canvas-pro": "^1.5.8",
|
|
44
44
|
"sonner": "^1.7.1"
|
|
45
45
|
},
|