@netless/fastboard-react 0.2.7 → 0.2.8

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@netless/fastboard-react",
3
- "version": "0.2.7",
3
+ "version": "0.2.8",
4
4
  "description": "A UI kit built on top of @netless/fastboard.",
5
5
  "main": "dist/index.js",
6
6
  "files": [
@@ -22,7 +22,7 @@
22
22
  "white-web-sdk": ">=2.16.0"
23
23
  },
24
24
  "devDependencies": {
25
- "@netless/fastboard-core": "0.2.7",
25
+ "@netless/fastboard-core": "0.2.8",
26
26
  "@netless/window-manager": "^0.4.7",
27
27
  "@types/react": "^17.0.39",
28
28
  "@types/react-dom": "^17.0.11",
@@ -36,6 +36,6 @@
36
36
 
37
37
  .fastboard-bottom-right {
38
38
  @extend .fastboard-bottom-left;
39
- left: initial;
39
+ left: auto;
40
40
  right: 8px;
41
41
  }
@@ -6,19 +6,19 @@ $name: "fastboard-page-control";
6
6
  gap: 4px;
7
7
  padding: 4px;
8
8
  border-radius: 4px;
9
- backdrop-filter: blur(2px);
10
- -webkit-backdrop-filter: blur(2px);
9
+ backdrop-filter: blur(5px);
10
+ -webkit-backdrop-filter: blur(5px);
11
11
 
12
12
  &.light {
13
13
  color: #333;
14
- background-color: rgba($color: #fff, $alpha: 0.85);
15
- border: 1px solid rgba(0, 0, 0, 0.15);
14
+ background-color: rgba(255, 255, 255, 0.9);
15
+ border: 1px solid #e5e8f0;
16
16
  }
17
17
 
18
18
  &.dark {
19
19
  color: #ddd;
20
- background-color: rgba($color: #333, $alpha: 0.85);
21
- border: 1px solid rgba(0, 0, 0, 0.45);
20
+ background-color: #14181e;
21
+ border: 1px solid #383b42;
22
22
  }
23
23
  }
24
24
 
@@ -37,8 +37,8 @@ $name: "fastboard-page-control";
37
37
 
38
38
  svg,
39
39
  img {
40
- width: 1em;
41
- height: 1em;
40
+ width: 100%;
41
+ height: 100%;
42
42
  }
43
43
 
44
44
  &:disabled {
@@ -47,11 +47,11 @@ $name: "fastboard-page-control";
47
47
  }
48
48
 
49
49
  &.light:not(:disabled):hover {
50
- background-color: rgba(51, 129, 255, 0.1);
50
+ background-color: #ebf2ff;
51
51
  }
52
52
 
53
53
  &.dark:not(:disabled):hover {
54
- background-color: rgba(51, 129, 255, 0.25);
54
+ background-color: #383b42;
55
55
  }
56
56
  }
57
57
 
@@ -72,9 +72,13 @@ $name: "fastboard-page-control";
72
72
  opacity: 0.6;
73
73
  }
74
74
 
75
+ .#{$name}-text {
76
+ line-height: 24px;
77
+ }
78
+
75
79
  .#{$name}-page,
76
80
  .#{$name}-slash,
77
81
  .#{$name}-page-count {
78
- font-size: 12px;
82
+ font-size: 14px;
79
83
  font-variant-numeric: tabular-nums;
80
84
  }
@@ -6,9 +6,9 @@ import React from "react";
6
6
 
7
7
  import { useTranslation } from "../../i18n";
8
8
  import { Icon } from "../../icons";
9
- import { ChevronLeft } from "../../icons/ChevronLeft";
10
- import { ChevronRight } from "../../icons/ChevronRight";
11
- import { FilePlus } from "../../icons/FilePlus";
9
+ import { Left } from "../../icons/Left";
10
+ import { Right } from "../../icons/Right";
11
+ import { WhiteboardAdd } from "../../icons/WhiteboardAdd";
12
12
  import { TopOffset } from "../../theme";
13
13
  import { useTheme, useWritable } from "../hooks";
14
14
  import { usePageControl } from "./hooks";
@@ -52,16 +52,14 @@ export function PageControl({
52
52
  disabled={disabled || pageIndex === 0}
53
53
  onClick={actions.prevPage}
54
54
  >
55
- <Icon
56
- fallback={<ChevronLeft theme={theme} />}
57
- src={disabled ? prevIconDisable : prevIcon}
58
- alt="[prev]"
59
- />
55
+ <Icon fallback={<Left theme={theme} />} src={disabled ? prevIconDisable : prevIcon} alt="[prev]" />
60
56
  </button>
61
57
  </Tippy>
62
- <span className={clsx(`${name}-page`, theme)}>{pageCount === 0 ? "\u2026" : pageIndex + 1}</span>
63
- <span className={clsx(`${name}-slash`, theme)}>/</span>
64
- <span className={clsx(`${name}-page-count`, theme)}>{pageCount}</span>
58
+ <span className={clsx(`${name}-text`, theme)}>
59
+ <span className={clsx(`${name}-page`, theme)}>{pageCount === 0 ? "\u2026" : pageIndex + 1}</span>
60
+ <span className={clsx(`${name}-slash`, theme)}>/</span>
61
+ <span className={clsx(`${name}-page-count`, theme)}>{pageCount}</span>
62
+ </span>
65
63
  <Tippy
66
64
  className="fastboard-tip"
67
65
  content={t("nextPage")}
@@ -77,11 +75,7 @@ export function PageControl({
77
75
  disabled={disabled || pageIndex === pageCount - 1}
78
76
  onClick={actions.nextPage}
79
77
  >
80
- <Icon
81
- fallback={<ChevronRight theme={theme} />}
82
- src={disabled ? nextIconDisable : nextIcon}
83
- alt="[next]"
84
- />
78
+ <Icon fallback={<Right theme={theme} />} src={disabled ? nextIconDisable : nextIcon} alt="[next]" />
85
79
  </button>
86
80
  </Tippy>
87
81
  <Tippy
@@ -95,7 +89,11 @@ export function PageControl({
95
89
  offset={TopOffset}
96
90
  >
97
91
  <button className={clsx(`${name}-btn`, "add", theme)} disabled={disabled} onClick={actions.addPage}>
98
- <Icon fallback={<FilePlus theme={theme} />} src={disabled ? addIconDisable : addIcon} alt="[add]" />
92
+ <Icon
93
+ fallback={<WhiteboardAdd theme={theme} />}
94
+ src={disabled ? addIconDisable : addIcon}
95
+ alt="[add]"
96
+ />
99
97
  </button>
100
98
  </Tippy>
101
99
  </div>
@@ -7,8 +7,8 @@ $name: "fastboard-player-control";
7
7
  gap: 4px;
8
8
  padding: 4px;
9
9
  border-radius: 4px;
10
- backdrop-filter: blur(2px);
11
- -webkit-backdrop-filter: blur(2px);
10
+ backdrop-filter: blur(5px);
11
+ -webkit-backdrop-filter: blur(5px);
12
12
 
13
13
  &.auto-hide {
14
14
  opacity: 0;
@@ -45,14 +45,14 @@ $name: "fastboard-player-control";
45
45
 
46
46
  &.light {
47
47
  color: #333;
48
- background-color: rgba($color: #fff, $alpha: 0.85);
49
- border: 1px solid rgba(0, 0, 0, 0.15);
48
+ background-color: rgba(255, 255, 255, 0.9);
49
+ border: 1px solid #e5e8f0;
50
50
  }
51
51
 
52
52
  &.dark {
53
53
  color: #ddd;
54
- background-color: rgba($color: #333, $alpha: 0.85);
55
- border: 1px solid rgba(0, 0, 0, 0.45);
54
+ background-color: #14181e;
55
+ border: 1px solid #383b42;
56
56
  }
57
57
  }
58
58
 
@@ -74,8 +74,8 @@ $name: "fastboard-player-control";
74
74
 
75
75
  svg,
76
76
  img {
77
- width: 1em;
78
- height: 1em;
77
+ width: 100%;
78
+ height: 100%;
79
79
  }
80
80
 
81
81
  &:disabled {
@@ -84,11 +84,11 @@ $name: "fastboard-player-control";
84
84
  }
85
85
 
86
86
  &.light:not(:disabled):hover {
87
- background-color: rgba(51, 129, 255, 0.1);
87
+ background-color: #ebf2ff;
88
88
  }
89
89
 
90
90
  &.dark:not(:disabled):hover {
91
- background-color: rgba(51, 129, 255, 0.25);
91
+ background-color: #383b42;
92
92
  }
93
93
 
94
94
  &.loading {
@@ -113,7 +113,7 @@ $name: "fastboard-player-control";
113
113
  width: initial;
114
114
  height: initial;
115
115
  user-select: none;
116
- font-size: 12px;
116
+ font-size: 14px;
117
117
  padding: 4px;
118
118
  justify-content: flex-end;
119
119
 
@@ -140,6 +140,6 @@ $name: "fastboard-player-control";
140
140
  .#{$name}-slash,
141
141
  .#{$name}-total,
142
142
  .#{$name}-speed-text {
143
- font-size: 12px;
143
+ font-size: 14px;
144
144
  font-variant-numeric: tabular-nums;
145
145
  }
@@ -6,19 +6,19 @@ $name: "fastboard-redo-undo";
6
6
  gap: 4px;
7
7
  padding: 4px;
8
8
  border-radius: 4px;
9
- backdrop-filter: blur(2px);
10
- -webkit-backdrop-filter: blur(2px);
9
+ backdrop-filter: blur(5px);
10
+ -webkit-backdrop-filter: blur(5px);
11
11
 
12
12
  &.light {
13
13
  color: #333;
14
- background-color: rgba($color: #fff, $alpha: 0.85);
15
- border: 1px solid rgba(0, 0, 0, 0.15);
14
+ background-color: rgba(255, 255, 255, 0.9);
15
+ border: 1px solid #e5e8f0;
16
16
  }
17
17
 
18
18
  &.dark {
19
19
  color: #ddd;
20
- background-color: rgba($color: #333, $alpha: 0.85);
21
- border: 1px solid rgba(0, 0, 0, 0.45);
20
+ background-color: #14181e;
21
+ border: 1px solid #383b42;
22
22
  }
23
23
  }
24
24
 
@@ -37,8 +37,8 @@ $name: "fastboard-redo-undo";
37
37
 
38
38
  svg,
39
39
  img {
40
- width: 1em;
41
- height: 1em;
40
+ width: 100%;
41
+ height: 100%;
42
42
  }
43
43
 
44
44
  &:disabled {
@@ -47,10 +47,10 @@ $name: "fastboard-redo-undo";
47
47
  }
48
48
 
49
49
  &.light:not(:disabled):hover {
50
- background-color: rgba(51, 129, 255, 0.1);
50
+ background-color: #ebf2ff;
51
51
  }
52
52
 
53
53
  &.dark:not(:disabled):hover {
54
- background-color: rgba(51, 129, 255, 0.25);
54
+ background-color: #383b42;
55
55
  }
56
56
  }
@@ -9,8 +9,8 @@ $name: "fastboard-toolbar";
9
9
  gap: 4px;
10
10
  position: absolute;
11
11
  z-index: 100;
12
- backdrop-filter: blur(2px);
13
- -webkit-backdrop-filter: blur(2px);
12
+ backdrop-filter: blur(5px);
13
+ -webkit-backdrop-filter: blur(5px);
14
14
 
15
15
  .rc-slider {
16
16
  padding: 6px 0;
@@ -36,17 +36,18 @@ $name: "fastboard-toolbar";
36
36
 
37
37
  &.light {
38
38
  color: #333;
39
- background-color: rgba($color: #fff, $alpha: 0.85);
40
- border: 1px solid rgba(0, 0, 0, 0.15);
41
- }
42
-
43
- &.expanded {
44
- border: 1px solid rgba(0, 0, 0, 0.15);
39
+ background-color: rgba(255, 255, 255, 0.9);
40
+ border: 1px solid #e5e8f0;
45
41
  }
46
42
 
47
43
  &.dark {
48
44
  color: #ddd;
49
- background-color: rgba($color: #333, $alpha: 0.85);
45
+ background-color: #14181e;
46
+ border: 1px solid #383b42;
47
+ }
48
+
49
+ &.expanded {
50
+ border: 1px solid rgba(0, 0, 0, 0.15);
50
51
  }
51
52
 
52
53
  &.expanded:hover {
@@ -108,11 +109,11 @@ $name: "fastboard-toolbar";
108
109
  }
109
110
 
110
111
  &.light:not(:disabled):hover {
111
- background-color: rgba(51, 129, 255, 0.1);
112
+ background-color: #ebf2ff;
112
113
  }
113
114
 
114
115
  &.dark:not(:disabled):hover {
115
- background-color: rgba(51, 129, 255, 0.25);
116
+ background-color: #383b42;
116
117
  }
117
118
  }
118
119
 
@@ -228,7 +229,7 @@ $name: "fastboard-toolbar";
228
229
  }
229
230
 
230
231
  &-text {
231
- font-size: 12px;
232
+ font-size: 14px;
232
233
  color: #5d5d5d;
233
234
  overflow: hidden;
234
235
  white-space: nowrap;
@@ -7,19 +7,19 @@ $name: "fastboard-zoom-control";
7
7
  gap: 4px;
8
8
  padding: 4px;
9
9
  border-radius: 4px;
10
- backdrop-filter: blur(2px);
11
- -webkit-backdrop-filter: blur(2px);
10
+ backdrop-filter: blur(5px);
11
+ -webkit-backdrop-filter: blur(5px);
12
12
 
13
13
  &.light {
14
14
  color: #333;
15
- background-color: rgba($color: #fff, $alpha: 0.85);
16
- border: 1px solid rgba(0, 0, 0, 0.15);
15
+ background-color: rgba(255, 255, 255, 0.9);
16
+ border: 1px solid #e5e8f0;
17
17
  }
18
18
 
19
19
  &.dark {
20
20
  color: #ddd;
21
- background-color: rgba($color: #333, $alpha: 0.85);
22
- border: 1px solid rgba(0, 0, 0, 0.45);
21
+ background-color: #14181e;
22
+ border: 1px solid #383b42;
23
23
  }
24
24
  }
25
25
 
@@ -38,8 +38,8 @@ $name: "fastboard-zoom-control";
38
38
 
39
39
  svg,
40
40
  img {
41
- width: 1em;
42
- height: 1em;
41
+ width: 100%;
42
+ height: 100%;
43
43
  }
44
44
 
45
45
  &:disabled {
@@ -48,11 +48,11 @@ $name: "fastboard-zoom-control";
48
48
  }
49
49
 
50
50
  &.light:not(:disabled):hover {
51
- background-color: rgba(51, 129, 255, 0.1);
51
+ background-color: #ebf2ff;
52
52
  }
53
53
 
54
54
  &.dark:not(:disabled):hover {
55
- background-color: rgba(51, 129, 255, 0.25);
55
+ background-color: #383b42;
56
56
  }
57
57
  }
58
58
 
@@ -69,12 +69,16 @@ $name: "fastboard-zoom-control";
69
69
  }
70
70
  }
71
71
 
72
+ .#{$name}-text {
73
+ line-height: 24px;
74
+ }
75
+
72
76
  .#{$name}-percent {
73
77
  opacity: 0.6;
74
78
  }
75
79
 
76
80
  .#{$name}-scale,
77
81
  .#{$name}-percent {
78
- font-size: 12px;
82
+ font-size: 14px;
79
83
  font-variant-numeric: tabular-nums;
80
84
  }
@@ -55,8 +55,10 @@ export function ZoomControl({
55
55
  />
56
56
  </button>
57
57
  </Tippy>
58
- <span className={clsx(`${name}-scale`, theme)}>{Math.ceil(scale * 100)}</span>
59
- <span className={clsx(`${name}-percent`, theme)}>%</span>
58
+ <span className={clsx(`${name}-text`, theme)}>
59
+ <span className={clsx(`${name}-scale`, theme)}>{Math.ceil(scale * 100)}</span>
60
+ <span className={clsx(`${name}-percent`, theme)}>%</span>
61
+ </span>
60
62
  <Tippy
61
63
  className="fastboard-tip"
62
64
  content={t("zoomIn")}
@@ -0,0 +1,15 @@
1
+ import type { IconProps } from "../typings";
2
+
3
+ import React from "react";
4
+ import { themes } from "../theme";
5
+
6
+ export function Left({ theme = "light", active }: IconProps) {
7
+ const config = themes[theme];
8
+ const stroke = active ? config.activeColor : config.color;
9
+
10
+ return (
11
+ <svg viewBox="0 0 24 24" fill="none">
12
+ <path d="m14 8-2 2-2 2 2 2 2 2" stroke={stroke} strokeLinejoin="round" strokeWidth="1.25" />
13
+ </svg>
14
+ );
15
+ }
@@ -8,8 +8,8 @@ export function Minus({ theme = "light", active }: IconProps) {
8
8
  const stroke = active ? config.activeColor : config.color;
9
9
 
10
10
  return (
11
- <svg viewBox="0 0 24 24">
12
- <path fill="none" stroke={stroke} strokeLinecap="round" strokeLinejoin="round" d="M7 12h10" />
11
+ <svg viewBox="0 0 24 24" fill="none">
12
+ <path d="M5 12h14" stroke={stroke} strokeLinejoin="round" strokeWidth="1.25" />
13
13
  </svg>
14
14
  );
15
15
  }
@@ -8,8 +8,8 @@ export function Plus({ theme = "light", active }: IconProps) {
8
8
  const stroke = active ? config.activeColor : config.color;
9
9
 
10
10
  return (
11
- <svg viewBox="0 0 24 24">
12
- <path fill="none" stroke={stroke} strokeLinecap="round" strokeLinejoin="round" d="M12 7v10m-5-5h10" />
11
+ <svg viewBox="0 0 24 24" fill="none">
12
+ <path d="M5 12h14m-7-7v14" stroke={stroke} strokeLinejoin="round" strokeWidth="1.25" />
13
13
  </svg>
14
14
  );
15
15
  }
@@ -8,11 +8,12 @@ export function Redo({ theme = "light", active }: IconProps) {
8
8
  const stroke = active ? config.activeColor : config.color;
9
9
 
10
10
  return (
11
- <svg viewBox="0 0 24 24">
12
- <g fill="none" fillRule="evenodd" stroke={stroke} strokeLinecap="round" strokeLinejoin="round">
13
- <path d="M14 14h4v-4" />
14
- <path d="m18 14-.788-.9A7.005 7.005 0 0 0 6 14h0" />
15
- </g>
11
+ <svg viewBox="0 0 24 24" fill="none">
12
+ <path
13
+ d="M19 9.625H9v-1.25h10v1.25ZM5.625 13v6h-1.25v-6h1.25ZM9 9.625A3.375 3.375 0 0 0 5.625 13h-1.25A4.625 4.625 0 0 1 9 8.375v1.25Z"
14
+ fill={stroke}
15
+ />
16
+ <path d="m15 5 4 4-4 4" stroke={stroke} strokeLinejoin="round" strokeWidth="1.25" />
16
17
  </svg>
17
18
  );
18
19
  }
@@ -8,12 +8,10 @@ export function Reset({ theme = "light", active }: IconProps) {
8
8
  const stroke = active ? config.activeColor : config.color;
9
9
 
10
10
  return (
11
- <svg viewBox="0 0 24 24">
12
- <g fill="none" fillRule="evenodd" transform="translate(-176 -684)">
13
- <path stroke={stroke} strokeLinejoin="round" d="M188 688v4m0 8v4m8-8h-4m-8 0h-4" />
14
- <circle cx="188" cy="696" r="6" stroke={stroke} />
15
- <circle cx="188" cy="696" r="1" fill={stroke} />
16
- </g>
11
+ <svg viewBox="0 0 24 24" fill="none">
12
+ <circle cx="12" cy="12" fill={stroke} r="2" />
13
+ <path d="M12 3v4m0 10v4m9-9h-4M7 12H3" stroke={stroke} strokeLinejoin="round" strokeWidth="1.25" />
14
+ <circle cx="12" cy="12" r="7" stroke={stroke} strokeLinejoin="round" strokeWidth="1.25" />
17
15
  </svg>
18
16
  );
19
17
  }
@@ -0,0 +1,15 @@
1
+ import type { IconProps } from "../typings";
2
+
3
+ import React from "react";
4
+ import { themes } from "../theme";
5
+
6
+ export function Right({ theme = "light", active }: IconProps) {
7
+ const config = themes[theme];
8
+ const stroke = active ? config.activeColor : config.color;
9
+
10
+ return (
11
+ <svg viewBox="0 0 24 24" fill="none">
12
+ <path d="m10 8 2 2 2 2-2 2-2 2" stroke={stroke} strokeLinejoin="round" strokeWidth="1.25" />
13
+ </svg>
14
+ );
15
+ }
@@ -8,11 +8,12 @@ export function Undo({ theme = "light", active }: IconProps) {
8
8
  const stroke = active ? config.activeColor : config.color;
9
9
 
10
10
  return (
11
- <svg viewBox="0 0 24 24">
12
- <g fill="none" fillRule="evenodd" stroke={stroke} strokeLinecap="round" strokeLinejoin="round">
13
- <path d="M10 14H6v-4" />
14
- <path d="m6 14 .788-.9A7.005 7.005 0 0 1 18 14h0" />
15
- </g>
11
+ <svg viewBox="0 0 24 24" fill="none">
12
+ <path
13
+ d="M5 9.625h10v-1.25H5v1.25ZM18.375 13v6h1.25v-6h-1.25ZM15 9.625A3.375 3.375 0 0 1 18.375 13h1.25A4.625 4.625 0 0 0 15 8.375v1.25Z"
14
+ fill={stroke}
15
+ />
16
+ <path d="M9 5 5 9l4 4" stroke={stroke} strokeLinejoin="round" strokeWidth="1.25" />
16
17
  </svg>
17
18
  );
18
19
  }
@@ -0,0 +1,26 @@
1
+ import type { IconProps } from "../typings";
2
+
3
+ import React from "react";
4
+ import { themes } from "../theme";
5
+
6
+ export function WhiteboardAdd({ theme = "light", active }: IconProps) {
7
+ const config = themes[theme];
8
+ const stroke = active ? config.activeColor : config.color;
9
+
10
+ return (
11
+ <svg viewBox="0 0 24 24" fill="none">
12
+ <path d="M4 20h16M4 6h16" stroke={stroke} strokeLinejoin="round" strokeWidth="1.25" />
13
+ <rect
14
+ height="10"
15
+ rx="1"
16
+ stroke={stroke}
17
+ strokeLinejoin="round"
18
+ strokeWidth="1.25"
19
+ width="14"
20
+ x="5"
21
+ y="8"
22
+ />
23
+ <path d="M12 4v2m-3 7h6m-3-3v6" stroke={stroke} strokeLinejoin="round" strokeWidth="1.25" />
24
+ </svg>
25
+ );
26
+ }
@@ -1,21 +0,0 @@
1
- import type { IconProps } from "../typings";
2
-
3
- import React from "react";
4
- import { themes } from "../theme";
5
-
6
- export function ChevronLeft({ theme = "light", active }: IconProps) {
7
- const config = themes[theme];
8
- const stroke = active ? config.activeColor : config.color;
9
-
10
- return (
11
- <svg viewBox="0 0 24 24">
12
- <path
13
- fill="none"
14
- stroke={stroke}
15
- strokeLinecap="round"
16
- strokeLinejoin="round"
17
- d="m14 16-2-2-2-2 2-2 2-2"
18
- />
19
- </svg>
20
- );
21
- }
@@ -1,21 +0,0 @@
1
- import type { IconProps } from "../typings";
2
-
3
- import React from "react";
4
- import { themes } from "../theme";
5
-
6
- export function ChevronRight({ theme = "light", active }: IconProps) {
7
- const config = themes[theme];
8
- const stroke = active ? config.activeColor : config.color;
9
-
10
- return (
11
- <svg viewBox="0 0 24 24">
12
- <path
13
- fill="none"
14
- stroke={stroke}
15
- strokeLinecap="round"
16
- strokeLinejoin="round"
17
- d="m10 16 2-2 2-2-2-2-2-2"
18
- />
19
- </svg>
20
- );
21
- }
@@ -1,18 +0,0 @@
1
- import type { IconProps } from "../typings";
2
-
3
- import React from "react";
4
- import { themes } from "../theme";
5
-
6
- export function FilePlus({ theme = "light", active }: IconProps) {
7
- const config = themes[theme];
8
- const stroke = active ? config.activeColor : config.color;
9
-
10
- return (
11
- <svg viewBox="0 0 24 24">
12
- <path
13
- fill={stroke}
14
- d="M12 7.5a.5.5 0 0 1 .09.992L12 8.5H8a1.5 1.5 0 0 0-1.493 1.356L6.5 10v6a1.5 1.5 0 0 0 1.356 1.493L8 17.5h6a1.5 1.5 0 0 0 1.493-1.356L15.5 16v-4a.5.5 0 0 1 .992-.09l.008.09v4a2.5 2.5 0 0 1-2.336 2.495L14 18.5H8a2.5 2.5 0 0 1-2.495-2.336L5.5 16v-6a2.5 2.5 0 0 1 2.336-2.495L8 7.5h4Zm4-2a.5.5 0 0 1 .492.41L16.5 6v1.5H18a.5.5 0 0 1 .09.992L18 8.5h-1.5V10a.5.5 0 0 1-.992.09L15.5 10V8.5H14a.5.5 0 0 1-.09-.992L14 7.5h1.5V6a.5.5 0 0 1 .5-.5Z"
15
- />
16
- </svg>
17
- );
18
- }