radiant-docs 0.1.46 → 0.1.48

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.
@@ -72,10 +72,10 @@ import { Icon } from "astro-icon/components";
72
72
  class="group/prose-code not-prose relative h-full min-h-0 w-full max-w-full min-w-0"
73
73
  >
74
74
  <div
75
- class="flex h-full min-h-0 w-full max-w-full min-w-0 flex-col overflow-hidden rounded-xl border border-neutral-200 bg-white shadow-xs dark:border-neutral-800 dark:bg-(--rd-code-surface)"
75
+ class="flex h-full min-h-0 w-full max-w-full min-w-0 flex-col rounded-xl"
76
76
  >
77
77
  <div
78
- class="flex items-center justify-between gap-2 border-b border-neutral-200 rounded-t-xl bg-neutral-50 inset-shadow-sm inset-shadow-neutral-100/80 dark:border-neutral-800 dark:bg-neutral-900/60 dark:inset-shadow-neutral-900/80"
78
+ class="flex items-center justify-between gap-2 bg-(--rd-code-header-surface)"
79
79
  >
80
80
  <div class="min-w-0 flex-1 overflow-hidden rounded-t-xl">
81
81
  <div
@@ -84,7 +84,7 @@ import { Icon } from "astro-icon/components";
84
84
  >
85
85
  <div
86
86
  aria-hidden="true"
87
- class="pointer-events-none absolute top-1/2 z-0 h-[28px] -translate-y-1/2 rounded-lg border-[0.5px] border-neutral-200 bg-white shadow-xs transition-[left,width,opacity] duration-200 ease-out dark:border-neutral-700/70 dark:bg-(--rd-code-surface)"
87
+ class="pointer-events-none absolute top-1/2 z-0 h-[28px] -translate-y-1/2 rounded-[9px] border-[0.5px] border-(--rd-code-tab-edge-border) bg-(--rd-code-surface) transition-[left,width,opacity] duration-200 ease-out"
88
88
  x-bind:class="pillVisible ? 'opacity-100' : 'opacity-0'"
89
89
  x-bind:style="'left:' + pillLeft + 'px;width:' + pillWidth + 'px;'"
90
90
  >
@@ -106,9 +106,12 @@ import { Icon } from "astro-icon/components";
106
106
  </div>
107
107
 
108
108
  <div
109
- class="relative h-9 w-fit max-w-full shrink-0 rounded-tr-xl bg-white dark:bg-(--rd-code-surface)"
109
+ class="relative h-9 w-fit max-w-full shrink-0 rounded-tr-xl bg-(--rd-code-surface) border-t-[0.5px] border-r-[0.5px] border-(--rd-code-tab-edge-border)"
110
110
  >
111
- <div class="absolute inset-x-0 -bottom-px h-px bg-white dark:bg-(--rd-code-surface)"></div>
111
+ <div
112
+ class="absolute inset-x-0 -bottom-px h-px bg-(--rd-code-surface)"
113
+ >
114
+ </div>
112
115
  <CodeTabEdge
113
116
  className="pointer-events-none absolute -top-px right-full z-10 h-[calc(100%+2px)] rotate-y-180"
114
117
  />
@@ -133,33 +136,33 @@ import { Icon } from "astro-icon/components";
133
136
  </div>
134
137
  </div>
135
138
 
136
- <div class="relative min-h-0 min-w-0 flex-1 overflow-hidden rounded-b-xl">
139
+ <div
140
+ class="relative min-h-0 min-w-0 flex-1 overflow-hidden rounded-b-xl rounded-tl-xl border-[0.5px] border-(--rd-code-tab-edge-border) bg-(--rd-code-surface)"
141
+ >
137
142
  <div
138
143
  class="relative h-full overflow-auto [scrollbar-width:thin] [scrollbar-color:var(--color-neutral-300)_transparent] [&::-webkit-scrollbar]:h-1.5 [&::-webkit-scrollbar]:w-1.5 [&::-webkit-scrollbar-track]:bg-transparent [&::-webkit-scrollbar-thumb]:rounded-full [&::-webkit-scrollbar-thumb]:bg-neutral-300/70 hover:[&::-webkit-scrollbar-thumb]:bg-neutral-300/90 dark:[scrollbar-color:var(--color-neutral-700)_transparent] dark:[&::-webkit-scrollbar-thumb]:bg-neutral-700/70 dark:hover:[&::-webkit-scrollbar-thumb]:bg-neutral-700/90"
139
144
  >
140
- <div
141
- class="pointer-events-none sticky top-0 z-10 -mb-4 h-4 w-full bg-linear-to-b from-white to-transparent dark:from-(--rd-code-surface)"
142
- >
143
- </div>
144
145
  <div x-show="selected === 'body'" class="h-full">
145
146
  <div
146
147
  x-show="!response || !response.highlightedData"
147
148
  class="text-sm px-4 py-4 xs:py-8 flex flex-col items-center justify-center h-full text-foreground"
148
149
  >
149
- <div class="bg-neutral-50 p-2 rounded-xl mb-1 dark:bg-(--rd-code-surface)">
150
+ <div class="bg-(--rd-code-header-surface) p-2 rounded-xl mb-1">
150
151
  <Icon
151
152
  class="size-6 text-neutral-300 dark:text-neutral-600"
152
153
  name="lucide:square-arrow-up-right"
153
154
  />
154
155
  </div>
155
156
  <div class="text-lg font-medium text-center">Send request</div>
156
- <p class="text-sm text-neutral-500 text-center dark:text-neutral-400">
157
+ <p
158
+ class="text-sm text-neutral-500 text-center dark:text-neutral-400"
159
+ >
157
160
  Send a request to see the response body.
158
161
  </p>
159
162
  </div>
160
163
  <div x-show="response && response.highlightedData">
161
164
  <pre
162
- class="relative m-0 min-w-full bg-white p-0 text-[13px] leading-6 dark:bg-(--rd-code-surface)"><code data-rd-code-theme class="block min-w-full px-4 py-2.5 font-mono text-neutral-800 dark:text-neutral-200" x-html="response?.highlightedData" /></pre>
165
+ class="relative m-0 min-w-full p-0 text-[13px] leading-6"><code data-rd-code-theme class="block min-w-full px-4 py-2.5 font-mono text-neutral-800 dark:text-neutral-200" x-html="response?.highlightedData" /></pre>
163
166
  </div>
164
167
  </div>
165
168
 
@@ -168,20 +171,22 @@ import { Icon } from "astro-icon/components";
168
171
  x-show="!response || !response.highlightedHeaders"
169
172
  class="text-sm px-4 py-4 xs:py-8 flex flex-col items-center justify-center h-full text-foreground"
170
173
  >
171
- <div class="bg-neutral-50 p-2 rounded-xl mb-1 dark:bg-(--rd-code-surface)">
174
+ <div class="bg-(--rd-code-header-surface) p-2 rounded-xl mb-1">
172
175
  <Icon
173
176
  class="size-6 text-neutral-300 dark:text-neutral-600"
174
177
  name="lucide:square-arrow-up-right"
175
178
  />
176
179
  </div>
177
180
  <div class="text-lg font-medium text-center">Send request</div>
178
- <p class="text-sm text-neutral-500 text-center dark:text-neutral-400">
181
+ <p
182
+ class="text-sm text-neutral-500 text-center dark:text-neutral-400"
183
+ >
179
184
  Send a request to see the response header.
180
185
  </p>
181
186
  </div>
182
187
  <div x-show="response && response.highlightedHeaders">
183
188
  <pre
184
- class="relative m-0 min-w-full bg-white p-0 text-[13px] leading-6 dark:bg-(--rd-code-surface)"><code data-rd-code-theme class="block min-w-full px-4 py-2.5 font-mono text-neutral-800 dark:text-neutral-200" x-html="response?.highlightedHeaders" /></pre>
189
+ class="relative m-0 min-w-full bg-(--rd-code-surface) p-0 text-[13px] leading-6"><code data-rd-code-theme class="block min-w-full px-4 py-2.5 font-mono text-neutral-800 dark:text-neutral-200" x-html="response?.highlightedHeaders" /></pre>
185
190
  </div>
186
191
  </div>
187
192
  </div>
@@ -244,14 +244,37 @@ const hasMultipleResponses = responseSnippetItems.length > 1;
244
244
  pillLeft: 0,
245
245
  pillWidth: 0,
246
246
  pillVisible: false,
247
+ previousSelected: null,
248
+ isTransitioning: false,
249
+ isManagedSlot: false,
250
+ transitionDirection: 1,
251
+ transitionDurationMs: 360,
252
+ transitionEasing: "cubic-bezier(0.22, 1, 0.36, 1)",
247
253
  tabSyncHandler: null,
254
+ transitionTimeoutId: null,
248
255
  copyTimeoutId: null,
249
256
  init() {
250
- if (!this.hasMultiple) return;
251
- const sync = () => this.syncPill();
257
+ this.isManagedSlot = !!this.$root?.closest("[data-snippet-slot]");
258
+ if (
259
+ typeof window.matchMedia === "function" &&
260
+ window.matchMedia("(prefers-reduced-motion: reduce)").matches
261
+ ) {
262
+ this.transitionDurationMs = 0;
263
+ }
264
+
265
+ const sync = () => {
266
+ this.syncPill();
267
+ this.syncSnippetHeight();
268
+ };
252
269
  this.tabSyncHandler = sync;
253
270
  this.$nextTick(() => {
271
+ if (this.$refs.snippetPanels) {
272
+ this.$refs.snippetPanels.style.transitionDuration =
273
+ this.transitionDurationMs + "ms";
274
+ }
254
275
  this.syncPill();
276
+ this.syncSnippetHeight();
277
+ if (!this.hasMultiple) return;
255
278
  this.$refs.tabList?.addEventListener("scroll", sync, {
256
279
  passive: true,
257
280
  });
@@ -275,13 +298,96 @@ const hasMultipleResponses = responseSnippetItems.length > 1;
275
298
  this.pillWidth = activeRect.width;
276
299
  this.pillVisible = true;
277
300
  },
301
+ getPanelHeight(panel) {
302
+ if (!panel) return 0;
303
+ const child = panel.firstElementChild;
304
+ const childHeight =
305
+ child instanceof HTMLElement ? child.scrollHeight : 0;
306
+ return Math.ceil(
307
+ Math.max(panel.scrollHeight, childHeight, panel.getBoundingClientRect().height),
308
+ );
309
+ },
310
+ syncSnippetHeight() {
311
+ const panels = this.$refs.snippetPanels;
312
+ if (!panels) return;
313
+ if (this.isManagedSlot) {
314
+ panels.style.height = "";
315
+ return;
316
+ }
317
+ const activePanel = panels.querySelector(
318
+ '[data-snippet-index="' + this.selected + '"]',
319
+ );
320
+ const activeHeight = this.getPanelHeight(activePanel);
321
+ if (activeHeight > 0) {
322
+ panels.style.height = activeHeight + "px";
323
+ }
324
+ },
325
+ finishTransition() {
326
+ this.isTransitioning = false;
327
+ this.previousSelected = null;
328
+ this.transitionTimeoutId = null;
329
+ this.$nextTick(() => {
330
+ this.syncSnippetHeight();
331
+ window.dispatchEvent(new CustomEvent("rd:snippet-content-change"));
332
+ });
333
+ },
278
334
  select(index) {
335
+ if (index === this.selected) return;
336
+
337
+ if (this.transitionTimeoutId) {
338
+ window.clearTimeout(this.transitionTimeoutId);
339
+ this.transitionTimeoutId = null;
340
+ this.isTransitioning = false;
341
+ this.previousSelected = null;
342
+ }
343
+
344
+ const previousIndex = this.selected;
345
+ this.previousSelected = previousIndex;
346
+ this.transitionDirection = index > previousIndex ? 1 : -1;
279
347
  this.selected = index;
348
+ this.isTransitioning = true;
280
349
  this.$nextTick(() => {
281
350
  this.syncPill();
351
+ this.syncSnippetHeight();
282
352
  window.dispatchEvent(new CustomEvent("rd:snippet-content-change"));
353
+
354
+ if (this.transitionDurationMs === 0) {
355
+ this.finishTransition();
356
+ return;
357
+ }
358
+
359
+ this.transitionTimeoutId = window.setTimeout(() => {
360
+ this.finishTransition();
361
+ }, this.transitionDurationMs);
283
362
  });
284
363
  },
364
+ getPanelStyle(index) {
365
+ const base = "position: absolute; top: 0; right: 0; left: 0;";
366
+ const isActive = index === this.selected;
367
+ const isPrevious = this.isTransitioning && index === this.previousSelected;
368
+
369
+ if (!isActive && !isPrevious) {
370
+ return "display: none; opacity: 0; pointer-events: none; visibility: hidden; z-index: 0;";
371
+ }
372
+
373
+ if (!this.isTransitioning) {
374
+ return "position: relative; transform: translateX(0); opacity: 1; pointer-events: auto; visibility: visible; z-index: 1;";
375
+ }
376
+
377
+ if (isActive) {
378
+ const animationName =
379
+ this.transitionDirection === 1
380
+ ? "rd-snippet-slide-in-from-right"
381
+ : "rd-snippet-slide-in-from-left";
382
+ return "position: relative; opacity: 1; pointer-events: auto; visibility: visible; z-index: 2; animation: " + animationName + " " + this.transitionDurationMs + "ms " + this.transitionEasing + " both;";
383
+ }
384
+
385
+ const animationName =
386
+ this.transitionDirection === 1
387
+ ? "rd-snippet-slide-out-to-left"
388
+ : "rd-snippet-slide-out-to-right";
389
+ return base + " opacity: 1; pointer-events: none; visibility: visible; z-index: 1; animation: " + animationName + " " + this.transitionDurationMs + "ms " + this.transitionEasing + " both;";
390
+ },
285
391
  async copySelected() {
286
392
  const snippet = this.snippets[this.selected];
287
393
  if (!snippet) return;
@@ -306,10 +412,10 @@ const hasMultipleResponses = responseSnippetItems.length > 1;
306
412
  >
307
413
  <div class="group/prose-code not-prose relative h-full min-h-0 w-full max-w-full min-w-0">
308
414
  <div
309
- class="flex h-full min-h-0 w-full max-w-full min-w-0 flex-col overflow-hidden rounded-xl border border-neutral-200 bg-white shadow-xs dark:border-neutral-800 dark:bg-(--rd-code-surface)"
415
+ class="flex h-full min-h-0 w-full max-w-full min-w-0 flex-col rounded-xl"
310
416
  >
311
417
  <div
312
- class="flex items-center justify-between gap-2 border-b border-neutral-200 rounded-t-xl bg-neutral-50 inset-shadow-sm inset-shadow-neutral-100/80 dark:border-neutral-800 dark:bg-neutral-900/60 dark:inset-shadow-neutral-900/80"
418
+ class="flex items-center justify-between gap-2 bg-(--rd-code-header-surface)"
313
419
  >
314
420
  {
315
421
  hasMultipleResponses ? (
@@ -320,7 +426,7 @@ const hasMultipleResponses = responseSnippetItems.length > 1;
320
426
  >
321
427
  <div
322
428
  aria-hidden="true"
323
- class="pointer-events-none absolute top-1/2 z-0 h-[28px] -translate-y-1/2 rounded-lg border-[0.5px] border-neutral-200 bg-white shadow-xs transition-[left,width,opacity] duration-200 ease-out dark:border-neutral-700/70 dark:bg-(--rd-code-surface)"
429
+ class="pointer-events-none absolute top-1/2 z-0 h-[28px] -translate-y-1/2 rounded-[9px] border-[0.5px] border-(--rd-code-tab-edge-border) bg-(--rd-code-surface) transition-[left,width,opacity] duration-200 ease-out"
324
430
  x-bind:class="pillVisible ? 'opacity-100' : 'opacity-0'"
325
431
  x-bind:style="'left:' + pillLeft + 'px;width:' + pillWidth + 'px;'"
326
432
  />
@@ -346,13 +452,13 @@ const hasMultipleResponses = responseSnippetItems.length > 1;
346
452
  </div>
347
453
  ) : (
348
454
  <div class="min-w-0 flex-1">
349
- <div class="relative h-9 w-fit max-w-full rounded-tl-xl bg-white dark:bg-(--rd-code-surface)">
350
- <div class="absolute inset-x-0 -bottom-px h-px bg-white dark:bg-(--rd-code-surface)"></div>
455
+ <div class="relative h-9 w-fit max-w-full rounded-tl-xl bg-(--rd-code-surface)">
456
+ <div class="absolute inset-x-0 -bottom-px h-px bg-(--rd-code-surface)"></div>
351
457
  <CodeTabEdge
352
- className="pointer-events-none absolute -top-px left-full z-10 h-[calc(100%+2px)]"
458
+ className="pointer-events-none absolute -top-[0.5px] left-full z-10 h-[calc(100%+1.5px)]"
353
459
  />
354
460
 
355
- <div class="relative z-20 inline-flex h-9 max-w-full items-center gap-2 pl-5 pr-3 py-1.5 text-xs font-medium text-neutral-700 dark:text-neutral-300">
461
+ <div class="relative z-20 inline-flex h-9 max-w-full items-center gap-2 rounded-tl-xl border-t-[0.5px] border-l-[0.5px] border-(--rd-code-tab-edge-border) pl-5 pr-3 py-1.5 text-xs font-medium text-neutral-700 dark:text-neutral-300">
356
462
  <span
357
463
  class="size-[7px] shrink-0 rounded-full"
358
464
  class:list={[firstResponse.dotClass]}></span>
@@ -363,8 +469,8 @@ const hasMultipleResponses = responseSnippetItems.length > 1;
363
469
  )
364
470
  }
365
471
 
366
- <div class="relative h-9 w-5 shrink-0 rounded-tr-xl bg-white dark:bg-(--rd-code-surface)">
367
- <div class="absolute inset-x-0 -bottom-px h-px bg-white dark:bg-(--rd-code-surface)"></div>
472
+ <div class="relative h-9 w-5 shrink-0 rounded-tr-xl bg-(--rd-code-surface) border-t-[0.5px] border-r-[0.5px] border-(--rd-code-tab-edge-border)">
473
+ <div class="absolute inset-x-0 -bottom-px h-px bg-(--rd-code-surface)"></div>
368
474
  <CodeTabEdge
369
475
  className="pointer-events-none absolute -top-px right-full z-10 h-[calc(100%+2px)] rotate-y-180"
370
476
  />
@@ -390,14 +496,21 @@ const hasMultipleResponses = responseSnippetItems.length > 1;
390
496
  </div>
391
497
  </div>
392
498
 
393
- <div class="relative min-h-0 min-w-0 flex-1 overflow-hidden rounded-b-xl">
394
- <div class="relative h-full overflow-auto [scrollbar-width:thin] [scrollbar-color:var(--color-neutral-300)_transparent] [&::-webkit-scrollbar]:h-1.5 [&::-webkit-scrollbar]:w-1.5 [&::-webkit-scrollbar-track]:bg-transparent [&::-webkit-scrollbar-thumb]:rounded-full [&::-webkit-scrollbar-thumb]:bg-neutral-300/70 hover:[&::-webkit-scrollbar-thumb]:bg-neutral-300/90 dark:[scrollbar-color:var(--color-neutral-700)_transparent] dark:[&::-webkit-scrollbar-thumb]:bg-neutral-700/70 dark:hover:[&::-webkit-scrollbar-thumb]:bg-neutral-700/90">
395
- <div class="pointer-events-none sticky top-0 z-10 -mb-4 h-4 w-full bg-linear-to-b from-white to-transparent dark:from-(--rd-code-surface)"></div>
499
+ <div class="relative min-h-0 min-w-0 flex-1 overflow-hidden rounded-b-xl rounded-tl-xl border-[0.5px] border-(--rd-code-tab-edge-border) bg-(--rd-code-surface)">
500
+ <div
501
+ x-ref="snippetPanels"
502
+ class="relative h-full overflow-auto transition-[height] duration-[360ms] ease-[cubic-bezier(0.22,1,0.36,1)] [scrollbar-width:thin] [scrollbar-color:var(--color-neutral-300)_transparent] [&::-webkit-scrollbar]:h-1.5 [&::-webkit-scrollbar]:w-1.5 [&::-webkit-scrollbar-track]:bg-transparent [&::-webkit-scrollbar-thumb]:rounded-full [&::-webkit-scrollbar-thumb]:bg-neutral-300/70 hover:[&::-webkit-scrollbar-thumb]:bg-neutral-300/90 dark:[scrollbar-color:var(--color-neutral-700)_transparent] dark:[&::-webkit-scrollbar-thumb]:bg-neutral-700/70 dark:hover:[&::-webkit-scrollbar-thumb]:bg-neutral-700/90"
503
+ >
396
504
  {
397
505
  responseSnippetItems.map((snippet, index) => (
398
506
  <pre
399
- class="relative m-0 min-w-full bg-white p-0 text-[13px] leading-6 dark:bg-(--rd-code-surface)"
400
- x-show={`selected === ${index}`}
507
+ class="relative m-0 min-w-full p-0 text-[13px] leading-6"
508
+ x-bind:style={`getPanelStyle(${index})`}
509
+ style={
510
+ index === 0
511
+ ? "position: relative;"
512
+ : "display: none; position: absolute; top: 0; right: 0; left: 0; opacity: 0; visibility: hidden; pointer-events: none;"
513
+ }
401
514
  {...(index !== 0 ? { "x-cloak": true } : {})}
402
515
  data-snippet-index={index}
403
516
  ><code data-rd-code-theme class="block min-w-full py-2.5 font-mono text-neutral-800 dark:text-neutral-200"><Fragment set:html={snippet.renderedCodeLinesHtml} /></code></pre>
@@ -408,3 +521,49 @@ const hasMultipleResponses = responseSnippetItems.length > 1;
408
521
  </div>
409
522
  </div>
410
523
  </div>
524
+
525
+ <style>
526
+ @keyframes rd-snippet-slide-in-from-right {
527
+ from {
528
+ transform: translateX(100%);
529
+ opacity: 0;
530
+ }
531
+ to {
532
+ transform: translateX(0);
533
+ opacity: 1;
534
+ }
535
+ }
536
+
537
+ @keyframes rd-snippet-slide-in-from-left {
538
+ from {
539
+ transform: translateX(-100%);
540
+ opacity: 0;
541
+ }
542
+ to {
543
+ transform: translateX(0);
544
+ opacity: 1;
545
+ }
546
+ }
547
+
548
+ @keyframes rd-snippet-slide-out-to-left {
549
+ from {
550
+ transform: translateX(0);
551
+ opacity: 1;
552
+ }
553
+ to {
554
+ transform: translateX(-100%);
555
+ opacity: 0;
556
+ }
557
+ }
558
+
559
+ @keyframes rd-snippet-slide-out-to-right {
560
+ from {
561
+ transform: translateX(0);
562
+ opacity: 1;
563
+ }
564
+ to {
565
+ transform: translateX(100%);
566
+ opacity: 0;
567
+ }
568
+ }
569
+ </style>
@@ -5,18 +5,14 @@ interface Props {
5
5
 
6
6
  const { className = "" } = Astro.props;
7
7
 
8
- const idPrefix = `code_group_tab_edge_${Math.random().toString(36).slice(2, 9)}`;
9
- const mask0Id = `code_group_tab_edge_mask0_${idPrefix}`;
10
- const path1OutsideMaskId = `code_group_tab_edge_path_1_outside_1_${idPrefix}`;
11
- const path3OutsideMaskId = `code_group_tab_edge_path_3_outside_2_${idPrefix}`;
12
8
  const edgeBackgroundColor = "var(--rd-code-tab-edge-bg, #ffffff)";
13
9
  const edgeBorderColor = "var(--rd-code-tab-edge-border, #e5e5e5)";
14
10
  ---
15
11
 
16
12
  <svg
17
13
  width="60"
18
- height="42"
19
- viewBox="0 0 60 42"
14
+ height="38"
15
+ viewBox="0 0 60 38"
20
16
  fill="none"
21
17
  xmlns="http://www.w3.org/2000/svg"
22
18
  class:list={["block", className]}
@@ -24,58 +20,13 @@ const edgeBorderColor = "var(--rd-code-tab-edge-border, #e5e5e5)";
24
20
  aria-hidden="true"
25
21
  data-pagefind-ignore
26
22
  >
27
- <mask
28
- id={mask0Id}
29
- maskUnits="userSpaceOnUse"
30
- x="0"
31
- y="-1"
32
- width="60"
33
- height="43"
34
- style="mask-type:alpha"
35
- >
36
- <mask
37
- id={path1OutsideMaskId}
38
- maskUnits="userSpaceOnUse"
39
- x="0"
40
- y="-1"
41
- width="60"
42
- height="43"
43
- fill="black"
44
- >
45
- <rect fill="white" y="-1" width="60" height="43"></rect>
46
- <path
47
- d="M1 0L8.0783 0C15.772 0 22.7836 4.41324 26.111 11.3501L34.8889 29.6498C38.2164 36.5868 45.228 41 52.9217 41H60H1L1 0Z"
48
- ></path>
49
- </mask>
50
- <path
51
- d="M1 0L8.0783 0C15.772 0 22.7836 4.41324 26.111 11.3501L34.8889 29.6498C38.2164 36.5868 45.228 41 52.9217 41H60H1L1 0Z"
52
- fill={edgeBackgroundColor}></path>
53
- <path
54
- d="M1 0V-1H0V0L1 0ZM1 41H0V42H1V41ZM34.8889 29.6498L33.9873 30.0823L34.8889 29.6498ZM26.111 11.3501L27.0127 10.9177L26.111 11.3501ZM1 1H8.0783V-1H1V1ZM60 40H1V42H60V40ZM2 41V0L0 0L0 41H2ZM25.2094 11.7826L33.9873 30.0823L35.7906 29.2174L27.0127 10.9177L25.2094 11.7826ZM52.9217 42H60V40H52.9217V42ZM33.9873 30.0823C37.4811 37.3661 44.8433 42 52.9217 42V40C45.6127 40 38.9517 35.8074 35.7906 29.2174L33.9873 30.0823ZM8.0783 1C15.3873 1 22.0483 5.19257 25.2094 11.7826L27.0127 10.9177C23.5188 3.6339 16.1567 -1 8.0783 -1V1Z"
55
- fill={edgeBorderColor}
56
- mask={`url(#${path1OutsideMaskId})`}></path>
57
- </mask>
58
- <g mask={`url(#${mask0Id})`}>
59
- <mask
60
- id={path3OutsideMaskId}
61
- maskUnits="userSpaceOnUse"
62
- x="-1"
63
- y="0.0244141"
64
- width="60"
65
- height="43"
66
- fill="black"
67
- >
68
- <rect fill="white" x="-1" y="0.0244141" width="60" height="43"></rect>
69
- <path
70
- d="M0 1.02441H7.0783C14.772 1.02441 21.7836 5.43765 25.111 12.3746L33.8889 30.6743C37.2164 37.6112 44.228 42.0244 51.9217 42.0244H59H0L0 1.02441Z"
71
- ></path>
72
- </mask>
73
- <path
74
- d="M0 1.02441H7.0783C14.772 1.02441 21.7836 5.43765 25.111 12.3746L33.8889 30.6743C37.2164 37.6112 44.228 42.0244 51.9217 42.0244H59H0L0 1.02441Z"
75
- fill={edgeBackgroundColor}></path>
76
- <path
77
- d="M0 1.02441L0 0.0244141H-1V1.02441H0ZM0 42.0244H-1V43.0244H0L0 42.0244ZM33.8889 30.6743L32.9873 31.1068L33.8889 30.6743ZM25.111 12.3746L26.0127 11.9421L25.111 12.3746ZM0 2.02441H7.0783V0.0244141H0L0 2.02441ZM59 41.0244H0L0 43.0244H59V41.0244ZM1 42.0244L1 1.02441H-1L-1 42.0244H1ZM24.2094 12.8071L32.9873 31.1068L34.7906 30.2418L26.0127 11.9421L24.2094 12.8071ZM51.9217 43.0244H59V41.0244H51.9217V43.0244ZM32.9873 31.1068C36.4811 38.3905 43.8433 43.0244 51.9217 43.0244V41.0244C44.6127 41.0244 37.9517 36.8318 34.7906 30.2418L32.9873 31.1068ZM7.0783 2.02441C14.3873 2.02441 21.0483 6.21699 24.2094 12.8071L26.0127 11.9421C22.5188 4.65831 15.1567 0.0244141 7.0783 0.0244141V2.02441Z"
78
- fill={edgeBorderColor}
79
- mask={`url(#${path3OutsideMaskId})`}></path>
80
- </g>
23
+ <path
24
+ d="M0 0.75H7.0783C14.772 0.75 21.7836 4.571 25.111 10.578L33.8889 27.422C37.2164 33.429 44.228 37.25 51.9217 37.25H60V38H0V0.75Z"
25
+ fill={edgeBackgroundColor}></path>
26
+ <path
27
+ d="M0 0.75H7.0783C14.772 0.75 21.7836 4.571 25.111 10.578L33.8889 27.422C37.2164 33.429 44.228 37.25 51.9217 37.25H60"
28
+ fill="none"
29
+ stroke={edgeBorderColor}
30
+ stroke-width="0.5"
31
+ vector-effect="non-scaling-stroke"></path>
81
32
  </svg>