@@ -52,42 +52,33 @@ function ClientEdges({
52
52
)
53
53
}
54
54
55
- function ServerEdges ( ) {
55
+ function ServerEdges ( { highlighted } : { highlighted ?: number } ) {
56
+ const paths = [
57
+ "M696 159.5H811.5V75H1176" ,
58
+ "M696 175.5L833.5 175.5V112H1104.5" ,
59
+ "M696 191.5H855.5V148.5H1176" ,
60
+ "M696 206.5L876 206.5V184.5H1104" ,
61
+ "M696 220.5H704.5H1176" ,
62
+ "M696 234.5L876 234.5V256.5H1104" ,
63
+ "M696 249.5H855.5V292.5H1176" ,
64
+ "M696 265.5L833.5 265.5V329H1104" ,
65
+ "M696 281.5H811.5V366H1176" ,
66
+ ] as const
67
+
56
68
return (
57
69
< >
58
- < path
59
- d = "M696 249.5H855.5V292.5H1176"
60
- stroke = "url(#paint9_linear_671_9150)"
61
- />
62
- < path d = "M696 220.5H704.5H1176" stroke = "url(#paint10_linear_671_9150)" />
63
- < path
64
- d = "M696 281.5H811.5V366H1176"
65
- stroke = "url(#paint11_linear_671_9150)"
66
- />
67
- < path
68
- d = "M696 265.5L833.5 265.5V329H1104"
69
- stroke = "url(#paint12_linear_671_9150)"
70
- />
71
- < path
72
- d = "M696 234.5L876 234.5V256.5H1104"
73
- stroke = "url(#paint13_linear_671_9150)"
74
- />
75
- < path
76
- d = "M696 191.5H855.5V148.5H1176"
77
- stroke = "url(#paint14_linear_671_9150)"
78
- />
79
- < path
80
- d = "M696 159.5H811.5V75H1176"
81
- stroke = "url(#paint15_linear_671_9150)"
82
- />
83
- < path
84
- d = "M696 175.5L833.5 175.5V112H1104.5"
85
- stroke = "url(#paint16_linear_671_9150)"
86
- />
87
- < path
88
- d = "M696 206.5L876 206.5V184.5H1104"
89
- stroke = "url(#paint17_linear_671_9150)"
90
- />
70
+ { paths . map ( ( d , index ) => (
71
+ < path
72
+ key = { index }
73
+ d = { d }
74
+ stroke = {
75
+ highlighted === index
76
+ ? `url(#paint_sr_dark_linear_671_9150)`
77
+ : `url(#paint_sr_light_linear_671_9150)`
78
+ }
79
+ strokeWidth = { highlighted === index ? "2" : "1" }
80
+ />
81
+ ) ) }
91
82
</ >
92
83
)
93
84
}
@@ -159,44 +150,44 @@ function ClientBoxes({ highlighted }: { highlighted?: number }) {
159
150
)
160
151
}
161
152
162
- function ServerBoxes ( ) {
153
+ function ServerBoxes ( { highlighted } : { highlighted ?: number } ) {
154
+ /* eslint-disable react/jsx-key */
155
+ const boxes = [
156
+ [ "translate(1176, 48)" , < LabirynthIcon /> ] ,
157
+ [ "translate(1104, 84)" , < ServerIcon /> ] ,
158
+ [ "translate(1176, 120)" , < ModemIcon /> ] ,
159
+ [ "translate(1104, 156)" , < CloudIcon /> ] ,
160
+ [ "translate(1176, 192)" , < ServerIcon /> ] ,
161
+ [ "translate(1104, 228)" , < LabirynthIcon /> ] ,
162
+ [ "translate(1176, 264)" , < ServerIcon /> ] ,
163
+ [ "translate(1104, 300)" , < ServerIcon /> ] ,
164
+ [ "translate(1176, 336)" , < CloudIcon /> ] ,
165
+ ] as const
166
+ /* eslint-enable react/jsx-key */
167
+
163
168
return (
164
169
< >
165
- < Box transform = "translate(1176, 48)" >
166
- < LabirynthIcon />
167
- </ Box >
168
-
169
- < Box transform = "translate(1104, 84)" >
170
- < ServerIcon />
171
- </ Box >
172
-
173
- < Box transform = "translate(1176, 120)" >
174
- < ModemIcon />
175
- </ Box >
176
-
177
- < Box transform = "translate(1104, 156)" >
178
- < CloudIcon />
179
- </ Box >
180
-
181
- < Box transform = "translate(1176, 192)" >
182
- < ServerIcon />
183
- </ Box >
184
-
185
- < Box transform = "translate(1104, 228)" >
186
- < LabirynthIcon />
187
- </ Box >
188
-
189
- < Box transform = "translate(1176, 264)" >
190
- < ServerIcon />
191
- </ Box >
192
-
193
- < Box transform = "translate(1104, 300)" >
194
- < ServerIcon />
195
- </ Box >
196
-
197
- < Box transform = "translate(1176, 336)" >
198
- < CloudIcon />
199
- </ Box >
170
+ { boxes . map ( ( [ transform , children ] , index ) => {
171
+ const isHighlighted = index === highlighted
172
+ return (
173
+ < Box
174
+ key = { index }
175
+ transform = { transform }
176
+ fill = {
177
+ isHighlighted
178
+ ? "hsl(var(--color-neu-300))"
179
+ : "hsl(var(--color-neu-100))"
180
+ }
181
+ className = {
182
+ isHighlighted
183
+ ? "[&_path]:fill-neu-800 dark:[&_path]:fill-neu-0"
184
+ : undefined
185
+ }
186
+ >
187
+ { children }
188
+ </ Box >
189
+ )
190
+ } ) }
200
191
</ >
201
192
)
202
193
}
@@ -213,8 +204,8 @@ function SVGDefinitions() {
213
204
y2 = "41.7739"
214
205
gradientUnits = "userSpaceOnUse"
215
206
>
216
- < stop stopColor = "#F3F4F0 " />
217
- < stop offset = "1" stopColor = "#A0A88A " />
207
+ < stop stopColor = "hsl(var(--color-neu-100)) " />
208
+ < stop offset = "1" stopColor = "hsl(var(--color-neu-600)) " />
218
209
</ linearGradient >
219
210
< linearGradient
220
211
id = "paint_lr_dark_linear_671_9150"
@@ -224,107 +215,31 @@ function SVGDefinitions() {
224
215
y2 = "-17.6347"
225
216
gradientUnits = "userSpaceOnUse"
226
217
>
227
- < stop stopColor = "#DBDED3" />
228
- < stop offset = "1" stopColor = "#6D7557" />
229
- </ linearGradient >
230
- < linearGradient
231
- id = "paint9_linear_671_9150"
232
- x1 = "696"
233
- y1 = "320.46"
234
- x2 = "937.904"
235
- y2 = "320.46"
236
- gradientUnits = "userSpaceOnUse"
237
- >
238
- < stop stopColor = "#F3F4F0" />
239
- < stop offset = "1" stopColor = "#A0A88A" />
240
- </ linearGradient >
241
- < linearGradient
242
- id = "paint10_linear_671_9150"
243
- x1 = "696"
244
- y1 = "222.15"
245
- x2 = "937.904"
246
- y2 = "222.15"
247
- gradientUnits = "userSpaceOnUse"
248
- >
249
- < stop stopColor = "#F3F4F0" />
250
- < stop offset = "1" stopColor = "#A0A88A" />
251
- </ linearGradient >
252
- < linearGradient
253
- id = "paint11_linear_671_9150"
254
- x1 = "696"
255
- y1 = "420.945"
256
- x2 = "937.904"
257
- y2 = "420.945"
258
- gradientUnits = "userSpaceOnUse"
259
- >
260
- < stop stopColor = "#F3F4F0" />
261
- < stop offset = "1" stopColor = "#A0A88A" />
262
- </ linearGradient >
263
- < linearGradient
264
- id = "paint12_linear_671_9150"
265
- x1 = "696"
266
- y1 = "370.29"
267
- x2 = "875.922"
268
- y2 = "370.29"
269
- gradientUnits = "userSpaceOnUse"
270
- >
271
- < stop stopColor = "#F3F4F0" />
272
- < stop offset = "1" stopColor = "#A0A88A" />
273
- </ linearGradient >
274
- < linearGradient
275
- id = "paint13_linear_671_9150"
276
- x1 = "696"
277
- y1 = "270.805"
278
- x2 = "875.922"
279
- y2 = "270.805"
280
- gradientUnits = "userSpaceOnUse"
281
- >
282
- < stop stopColor = "#F3F4F0" />
283
- < stop offset = "1" stopColor = "#A0A88A" />
218
+ < stop stopColor = "hsl(var(--color-neu-700))" />
219
+ < stop offset = "1" stopColor = "hsl(var(--color-neu-300))" />
284
220
</ linearGradient >
221
+
285
222
< linearGradient
286
- id = "paint14_linear_671_9150 "
223
+ id = "paint_sr_light_linear_671_9150 "
287
224
x1 = "696"
288
- y1 = "120.54 "
225
+ y1 = "0 "
289
226
x2 = "937.904"
290
- y2 = "120.54 "
227
+ y2 = "0 "
291
228
gradientUnits = "userSpaceOnUse"
292
229
>
293
- < stop stopColor = "#F3F4F0 " />
294
- < stop offset = "1" stopColor = "#A0A88A " />
230
+ < stop stopColor = "hsl(var(--color-neu-100)) " />
231
+ < stop offset = "1" stopColor = "hsl(var(--color-neu-600)) " />
295
232
</ linearGradient >
296
233
< linearGradient
297
- id = "paint15_linear_671_9150 "
234
+ id = "paint_sr_dark_linear_671_9150 "
298
235
x1 = "696"
299
- y1 = "20.0546 "
236
+ y1 = "0 "
300
237
x2 = "937.904"
301
- y2 = "20.0546"
302
- gradientUnits = "userSpaceOnUse"
303
- >
304
- < stop stopColor = "#F3F4F0" />
305
- < stop offset = "1" stopColor = "#A0A88A" />
306
- </ linearGradient >
307
- < linearGradient
308
- id = "paint16_linear_671_9150"
309
- x1 = "696"
310
- y1 = "70.7097"
311
- x2 = "875.922"
312
- y2 = "70.7097"
313
- gradientUnits = "userSpaceOnUse"
314
- >
315
- < stop stopColor = "#F3F4F0" />
316
- < stop offset = "1" stopColor = "#A0A88A" />
317
- </ linearGradient >
318
- < linearGradient
319
- id = "paint17_linear_671_9150"
320
- x1 = "696"
321
- y1 = "170.195"
322
- x2 = "875.922"
323
- y2 = "170.195"
238
+ y2 = "0"
324
239
gradientUnits = "userSpaceOnUse"
325
240
>
326
- < stop stopColor = "#F3F4F0 " />
327
- < stop offset = "1" stopColor = "#A0A88A " />
241
+ < stop stopColor = "hsl(var(--color-neu-700)) " />
242
+ < stop offset = "1" stopColor = "hsl(var(--color-neu-300)) " />
328
243
</ linearGradient >
329
244
< clipPath id = "clip0_671_9150" >
330
245
< rect x = "514" y = "113.5" width = "220" height = "220" rx = "8" fill = "white" />
@@ -366,8 +281,8 @@ export function Wires({ className }: { className?: string }) {
366
281
>
367
282
< ClientEdges highlighted = { step === 0 ? 0 : undefined } />
368
283
< ClientBoxes highlighted = { step === 0 ? 0 : undefined } />
369
- < ServerEdges />
370
- < ServerBoxes />
284
+ < ServerEdges highlighted = { step === 1 ? 0 : undefined } />
285
+ < ServerBoxes highlighted = { step === 1 ? 0 : undefined } />
371
286
< SVGDefinitions />
372
287
</ svg >
373
288
< QueryMdx components = { components } />
0 commit comments