@meduza/ui-kit-2 1.1.3 → 1.3.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.
Files changed (58) hide show
  1. package/dist/Meta/Meta.types.d.ts +0 -5
  2. package/dist/MetaItem/MetaItem.types.d.ts +1 -0
  3. package/dist/MetaItemLive/MetaItemLive.types.d.ts +1 -0
  4. package/dist/RawHtmlBlock/RawHtmlBlock.types.d.ts +1 -5
  5. package/dist/RenderBlocks/RenderBlocks.types.d.ts +1 -5
  6. package/dist/SvgSymbol/SvgSymbol.types.d.ts +2 -2
  7. package/dist/SvgSymbol/icons.d.ts +0 -25
  8. package/dist/ToolbarButton/ToolbarButton.types.d.ts +1 -2
  9. package/dist/constants.d.ts +0 -2
  10. package/dist/index.d.ts +0 -1
  11. package/dist/types.d.ts +1 -1
  12. package/dist/ui-kit-2.cjs.development.js +76 -171
  13. package/dist/ui-kit-2.cjs.development.js.map +1 -1
  14. package/dist/ui-kit-2.cjs.production.min.js +1 -1
  15. package/dist/ui-kit-2.cjs.production.min.js.map +1 -1
  16. package/dist/ui-kit-2.esm.js +77 -171
  17. package/dist/ui-kit-2.esm.js.map +1 -1
  18. package/dist/ui-kit-game.css +67 -258
  19. package/dist/ui-kit.css +67 -258
  20. package/package.json +13 -13
  21. package/src/Cover/Cover.module.css +0 -17
  22. package/src/Meta/Meta.module.css +0 -11
  23. package/src/Meta/Meta.stories.tsx +1 -3
  24. package/src/Meta/Meta.types.ts +0 -5
  25. package/src/Meta/MetaContainer.tsx +5 -44
  26. package/src/MetaItem/MetaItem.module.css +9 -27
  27. package/src/MetaItem/MetaItem.types.ts +1 -0
  28. package/src/MetaItem/index.tsx +4 -2
  29. package/src/MetaItemLive/MetaItemLive.module.css +21 -96
  30. package/src/MetaItemLive/MetaItemLive.types.ts +1 -0
  31. package/src/MetaItemLive/index.tsx +5 -2
  32. package/src/RawHtmlBlock/RawHtmlBlock.types.ts +1 -5
  33. package/src/RawHtmlBlock/index.tsx +0 -8
  34. package/src/RawHtmlBlock/mock.json +1 -2
  35. package/src/RenderBlocks/RenderBlocks.types.ts +1 -5
  36. package/src/RenderBlocks/index.tsx +0 -8
  37. package/src/RichTitle/RichTitle.module.css +24 -3
  38. package/src/SvgSymbol/SvgSymbol.module.css +1 -26
  39. package/src/SvgSymbol/SvgSymbol.stories.tsx +1 -2
  40. package/src/SvgSymbol/SvgSymbol.types.ts +0 -6
  41. package/src/SvgSymbol/icons.ts +0 -33
  42. package/src/Tag/Tag.module.css +9 -4
  43. package/src/Toolbar/Toolbar.stories.tsx +2 -18
  44. package/src/ToolbarButton/ToolbarButton.module.css +0 -16
  45. package/src/ToolbarButton/ToolbarButton.types.ts +0 -2
  46. package/src/ToolbarButton/index.tsx +0 -7
  47. package/src/constants.ts +1 -3
  48. package/src/index.tsx +0 -1
  49. package/src/types.ts +0 -1
  50. package/dist/BookmarkButton/BookmarkButton.types.d.ts +0 -6
  51. package/dist/BookmarkButton/index.d.ts +0 -3
  52. package/src/BookmarkButton/BookmarkButton.css +0 -45
  53. package/src/BookmarkButton/BookmarkButton.module.css +0 -45
  54. package/src/BookmarkButton/BookmarkButton.stories.module.css +0 -5
  55. package/src/BookmarkButton/BookmarkButton.stories.tsx +0 -39
  56. package/src/BookmarkButton/BookmarkButton.test.tsx +0 -33
  57. package/src/BookmarkButton/BookmarkButton.types.ts +0 -6
  58. package/src/BookmarkButton/index.tsx +0 -35
@@ -6,21 +6,13 @@ import { Meta } from './'
6
6
  import { MetaItem } from '../MetaItem'
7
7
  import { MetaItemLive } from '../MetaItemLive'
8
8
  import { DocumentItemsCount } from '../DocumentItemsCount'
9
- import { BookmarkButton } from '../BookmarkButton'
10
9
  import { Timestamp } from '../Timestamp'
11
- import { SvgSymbol } from '../SvgSymbol'
12
10
 
13
11
  import { TimestampProps } from '../Timestamp/Timestamp.types'
14
12
 
15
- import styles from './Meta.module.css'
16
-
17
13
  export const MetaContainer: React.FC<MetaContainerProps> = ({
18
14
  lang,
19
15
  block,
20
- isRead,
21
- isListened,
22
- bookmarkAction,
23
- isInBookmarks,
24
16
  block: {
25
17
  data: { components, theme }
26
18
  },
@@ -29,7 +21,6 @@ export const MetaContainer: React.FC<MetaContainerProps> = ({
29
21
  const themeColor =
30
22
  styleContext && styleContext.indexOf('dark') !== -1 ? 'light' : 'unset'
31
23
  const isPodcast = styleContext && styleContext.indexOf('podcast') !== -1
32
- const isSlides = styleContext && styleContext.indexOf('slide') !== -1
33
24
 
34
25
  let context = []
35
26
 
@@ -72,12 +63,7 @@ export const MetaContainer: React.FC<MetaContainerProps> = ({
72
63
  case 'duration': {
73
64
  return (
74
65
  <MetaItem hasSource={hasSource} bullets key={component.id}>
75
- <>
76
- {styleContext !== 'isInDynamicBlock' && (
77
- <SvgSymbol icon="podcast" size="small" />
78
- )}
79
- {component.text}
80
- </>
66
+ {component.text}
81
67
  </MetaItem>
82
68
  )
83
69
  }
@@ -108,29 +94,22 @@ export const MetaContainer: React.FC<MetaContainerProps> = ({
108
94
  items={component.count}
109
95
  type={isPodcast ? 'podcast' : 'card'}
110
96
  lang={lang}
111
- >
112
- <SvgSymbol icon="card" size="unset" />
113
- </DocumentItemsCount>
97
+ />
114
98
  </MetaItem>
115
99
  )
116
100
  }
117
101
  case 'broadcast_active': {
118
102
  return (
119
103
  <MetaItem hasSource={hasSource} bullets key={component.id}>
120
- <>
121
- <MetaItemLive /> Прямой эфир
122
- </>
104
+ <MetaItemLive>Прямой эфир</MetaItemLive>
123
105
  </MetaItem>
124
106
  )
125
107
  }
126
108
  case 'broadcast': {
127
109
  return (
128
110
  <MetaItem hasSource={hasSource} bullets key={component.id}>
129
- <>
130
- {component.with_icon && <MetaItemLive />}
131
-
132
- {component.label}
133
- </>
111
+ {component.with_icon && <MetaItemLive />}
112
+ {component.label}
134
113
  </MetaItem>
135
114
  )
136
115
  }
@@ -147,24 +126,6 @@ export const MetaContainer: React.FC<MetaContainerProps> = ({
147
126
  }
148
127
  }
149
128
  })}
150
- {(isRead || isListened) && (
151
- <MetaItem
152
- hasSource={hasSource}
153
- bullets
154
- type={isListened ? 'listened' : 'read'}
155
- >
156
- <SvgSymbol icon={isListened ? 'listened' : 'read'} size="unset" />
157
- </MetaItem>
158
- )}
159
-
160
- {isSlides && lang === 'ru' && (
161
- <div className={styles.bookmark}>
162
- <BookmarkButton
163
- isInBookmarks={isInBookmarks}
164
- onClick={(): void => bookmarkAction('bookmark', 'top')}
165
- />
166
- </div>
167
- )}
168
129
  </Meta>
169
130
  )
170
131
  }
@@ -1,7 +1,7 @@
1
1
  .root {
2
2
  display: inline;
3
3
 
4
- margin-right: 15px;
4
+ margin-right: 6px;
5
5
  }
6
6
 
7
7
  .root > svg {
@@ -9,21 +9,21 @@
9
9
 
10
10
  margin-right: 1px;
11
11
 
12
- vertical-align: top;
13
-
14
12
  color: inherit;
15
13
 
14
+ vertical-align: top;
15
+
16
16
  fill: currentColor;
17
17
  }
18
18
 
19
19
  .root a {
20
20
  display: inline;
21
21
 
22
- text-decoration: underline;
23
-
24
22
  color: inherit;
25
23
 
26
- -webkit-text-decoration-skip: auto;
24
+ text-decoration: underline;
25
+
26
+ text-decoration-skip: auto;
27
27
  }
28
28
 
29
29
  .root a:hover {
@@ -67,16 +67,7 @@
67
67
  }
68
68
  }
69
69
 
70
- .hasSource.listened::before,
71
- .hasSource.read::before {
72
- @media $mobileMax {
73
- display: inline-block
74
- }
75
- }
76
-
77
- .datetime,
78
- .listened,
79
- .read {
70
+ .datetime {
80
71
  @media $mobileMax {
81
72
  width: auto;
82
73
  }
@@ -88,15 +79,6 @@
88
79
  }
89
80
  }
90
81
 
91
- .hasSource.listened,
92
- .hasSource.read {
93
- @media $mobileMax {
94
- order: -1;
95
-
96
- margin-top: 0;
97
- }
98
- }
99
-
100
- .read svg {
101
- margin-top: -1px;
82
+ .tag + .hasBullets::before {
83
+ content: none;
102
84
  }
@@ -2,5 +2,6 @@ export interface MetaItemProps {
2
2
  bullets?: boolean
3
3
  hasSource?: boolean
4
4
  type?: string
5
+ variant?: 'tag'
5
6
  children: React.ReactNode | JSX.Element[] | JSX.Element
6
7
  }
@@ -7,13 +7,15 @@ export const MetaItem: React.FC<MetaItemProps> = ({
7
7
  hasSource,
8
8
  type,
9
9
  children,
10
- bullets
10
+ bullets,
11
+ variant
11
12
  }) => {
12
13
  const classNames = [
13
14
  [styles.root, true],
14
15
  [styles[type], !!type && !!styles[type]],
15
16
  [styles.hasSource, !!hasSource],
16
- [styles.hasBullets, !!bullets]
17
+ [styles.hasBullets, !!bullets],
18
+ [styles[variant], !!variant && !!styles[variant]]
17
19
  ]
18
20
 
19
21
  return (
@@ -1,10 +1,9 @@
1
1
  .root {
2
2
  position: relative;
3
3
 
4
- display: inline-block;
5
-
6
- width: 18px;
7
- height: 18px;
4
+ display: inline-flex;
5
+ gap: 6px;
6
+ align-items: center;
8
7
 
9
8
  vertical-align: middle;
10
9
  }
@@ -13,109 +12,35 @@
13
12
  color: $gold;
14
13
  }
15
14
 
16
- .root::before,
17
- .root::after,
18
- .frame {
19
- position: absolute;
20
- top: 0;
21
- right: 0;
22
- bottom: 0;
23
- left: 0;
24
- z-index: 0;
25
- }
26
-
27
- .root {
28
- margin-top: -4px;
29
- margin-right: 1px;
30
-
31
- transform: translateY(1px);
32
- }
33
-
34
- .root::before,
35
- .root::after,
36
- .frame {
37
-
38
- border-radius: 50%;
39
- transform: scale(0);
40
-
41
- animation-duration: 1.05s;
42
- animation-timing-function: linear;
43
- animation-iteration-count: infinite;
44
- }
45
-
46
- .frame {
47
-
48
- background: currentColor;
49
-
50
- animation-name: liveMiddle;
51
- }
52
-
53
- .root::before,
54
- .root::after {
15
+ .icon {
16
+ width: 10px;
17
+ height: 10px;
18
+ margin-top: -1px;
55
19
 
56
- border: 1px solid currentColor;
20
+ background-color: #ff4e4e;
21
+ border-radius: 5px;
57
22
 
58
- content: '';
23
+ animation: pulse 2s infinite ease-out;
59
24
  }
60
25
 
61
- .root::before {
62
- animation-name: liveFirstWave;
63
- }
64
-
65
- .root::after {
66
- animation-name: liveSecondWave;
67
- }
68
-
69
- @keyframes liveMiddle {
70
- 14% {
71
- transform: scale(0);
72
- }
73
-
74
- 30% {
75
- transform: scale(0.22);
76
- }
77
-
78
- 63% {
79
- transform: scale(0.22);
80
- }
81
-
82
- 70% {
83
- transform: scale(0);
84
- }
85
-
86
- 100% {
87
- transform: scale(0);
88
- }
26
+ .text {
27
+ color: #ff4e4e;
28
+ font-weight: 600;
29
+ font-size: 12px;
30
+ letter-spacing: 1px;
31
+ text-transform: uppercase;
89
32
  }
90
33
 
91
- @keyframes liveFirstWave {
92
- 21% {
93
- transform: scale(0.1);
94
- }
95
-
96
- 53% {
97
- transform: scale(0.33);
34
+ @keyframes pulse {
35
+ 0% {
36
+ opacity: 1;
98
37
  }
99
38
 
100
- 100% {
101
- transform: scale(0.66);
102
-
39
+ 50% {
103
40
  opacity: 0;
104
41
  }
105
- }
106
-
107
- @keyframes liveSecondWave {
108
- 21% {
109
- transform: scale(0.22);
110
- }
111
-
112
- 53% {
113
- transform: scale(0.55);
114
- }
115
42
 
116
43
  100% {
117
- transform: scale(0.88);
118
-
119
- opacity: 0;
44
+ opacity: 1;
120
45
  }
121
46
  }
@@ -1,3 +1,4 @@
1
1
  export interface MetaItemLiveProps {
2
2
  theme?: 'gold' | 'light' | 'inherit'
3
+ children?: React.ReactNode
3
4
  }
@@ -4,7 +4,8 @@ import { makeClassName } from '../utils/makeClassName'
4
4
  import styles from './MetaItemLive.module.css'
5
5
 
6
6
  export const MetaItemLive: React.FC<MetaItemLiveProps> = ({
7
- theme = 'gold'
7
+ theme = 'gold',
8
+ children
8
9
  }) => {
9
10
  const classNames = [
10
11
  [styles.root, true],
@@ -17,7 +18,9 @@ export const MetaItemLive: React.FC<MetaItemLiveProps> = ({
17
18
  data-meta="live"
18
19
  className={makeClassName(classNames)}
19
20
  >
20
- <div className={styles.frame} />
21
+ <div className={styles.icon} />
22
+
23
+ {children && <span className={styles.text}>{children}</span>}
21
24
  </div>
22
25
  )
23
26
  }
@@ -1,6 +1,6 @@
1
1
  /* eslint-disable @typescript-eslint/no-explicit-any */
2
2
  import { ImageProps } from '../Image/Image.types'
3
- import { CallToActions, LightboxContext } from '../types'
3
+ import { LightboxContext } from '../types'
4
4
 
5
5
  export type lightBox = {
6
6
  show: (image?: ImageProps['optimized'], alt?: ImageProps['alt']) => void
@@ -11,10 +11,6 @@ export type lightBox = {
11
11
  export interface RawHtmlBlockProps {
12
12
  block: any
13
13
  styleContext?: string[] | string
14
- isRead?: boolean | undefined
15
- isListened?: boolean | undefined
16
- isInBookmarks?: boolean | undefined
17
- bookmarkAction?: (service: CallToActions, place: string) => void
18
14
  lightBox?: LightboxContext | null | undefined
19
15
  lang?: 'ru' | 'en'
20
16
  platform?: 'website' | 'mirror'
@@ -13,10 +13,6 @@ import { RelatedBook } from '../RelatedBook'
13
13
  export const RawHtmlBlock: React.FC<RawHtmlBlockProps> = ({
14
14
  block,
15
15
  styleContext,
16
- isRead,
17
- isListened,
18
- isInBookmarks,
19
- bookmarkAction,
20
16
  lightBox,
21
17
  lang,
22
18
  platform
@@ -64,10 +60,6 @@ export const RawHtmlBlock: React.FC<RawHtmlBlockProps> = ({
64
60
  <RenderBlocks
65
61
  block={block}
66
62
  styleContext={styleContext}
67
- isRead={isRead}
68
- isListened={isListened}
69
- isInBookmarks={isInBookmarks}
70
- bookmarkAction={bookmarkAction}
71
63
  lang={lang}
72
64
  platform={platform}
73
65
  />
@@ -371,8 +371,7 @@
371
371
  {
372
372
  "type": "share",
373
373
  "data": {
374
- "share": true,
375
- "bookmark": true
374
+ "share": true
376
375
  },
377
376
  "id": "18-c940481d7193bbdc8371aa0ed3bef69e5dea7f17e544f90b3a235abe69605cd8"
378
377
  }
@@ -1,13 +1,9 @@
1
1
  /* eslint-disable @typescript-eslint/no-explicit-any */
2
- import { CallToActions, LightboxContext } from '../types'
2
+ import { LightboxContext } from '../types'
3
3
 
4
4
  export interface RenderBlocksProps {
5
5
  block: any
6
6
  styleContext?: any
7
- isRead?: boolean
8
- isListened?: boolean
9
- isInBookmarks?: boolean
10
- bookmarkAction?: (service: CallToActions, place: string) => void
11
7
  lightBox?: LightboxContext | null | undefined
12
8
  lang?: 'ru' | 'en'
13
9
  platform?: 'website' | 'mirror'
@@ -24,10 +24,6 @@ export const RenderBlocks: React.FC<RenderBlocksProps> = ({
24
24
  block,
25
25
  styleContext,
26
26
  lang,
27
- isRead,
28
- isListened,
29
- bookmarkAction,
30
- isInBookmarks,
31
27
  platform
32
28
  }) => {
33
29
  switch (block.type) {
@@ -58,10 +54,6 @@ export const RenderBlocks: React.FC<RenderBlocksProps> = ({
58
54
  block={block}
59
55
  lang={block.data.lang}
60
56
  styleContext={styleContext}
61
- isRead={isRead}
62
- isListened={isListened}
63
- isInBookmarks={isInBookmarks}
64
- bookmarkAction={bookmarkAction}
65
57
  />
66
58
  )
67
59
  }
@@ -59,7 +59,6 @@
59
59
 
60
60
  .featured {
61
61
  @media $landscapeTabletMax {
62
-
63
62
  font-size: 28px;
64
63
  line-height: 30px;
65
64
  letter-spacing: 0.3px;
@@ -77,6 +76,26 @@
77
76
  }
78
77
  }
79
78
 
79
+ .isInFeaturedBlock {
80
+ @media $landscapeTabletMax {
81
+ margin-bottom: 16px;
82
+
83
+ font-size: 22px;
84
+ line-height: 110%;
85
+ }
86
+ }
87
+
88
+ .isInFeaturedBlock span {
89
+ @media $landscapeTabletMax {
90
+ display: block;
91
+
92
+ padding-top: 4px;
93
+
94
+ font-size: 18px;
95
+ line-height: 120%;
96
+ }
97
+ }
98
+
80
99
  .isInMediaBlock {
81
100
  text-align: left;
82
101
 
@@ -107,9 +126,10 @@
107
126
  margin: 6px 0 20px;
108
127
 
109
128
  @media $landscapeTablet {
129
+ margin: 6px 0 18px;
130
+
110
131
  font-size: 27px;
111
132
  line-height: 32px;
112
- margin: 6px 0 18px;
113
133
  }
114
134
  }
115
135
 
@@ -123,9 +143,10 @@
123
143
  }
124
144
 
125
145
  .root.isInPodcastPlayer {
146
+ margin: 0 0 20px;
147
+
126
148
  font-size: 19px;
127
149
  line-height: 23px;
128
- margin: 0 0 20px;
129
150
  }
130
151
 
131
152
  .root.large {
@@ -71,9 +71,7 @@
71
71
  }
72
72
 
73
73
  .card,
74
- .podcast,
75
- .read,
76
- .listened {
74
+ .podcast {
77
75
  width: 15px;
78
76
  height: 15px;
79
77
  }
@@ -198,29 +196,6 @@
198
196
  }
199
197
  }
200
198
 
201
- .bookmark {
202
- cursor: pointer;
203
-
204
- stroke-width: 2px;
205
-
206
- @media $landscapeTablet {
207
- stroke-width: 1.5px;
208
- }
209
- }
210
-
211
- .shareBookmark {
212
- width: 11px;
213
- height: auto;
214
-
215
- cursor: pointer;
216
-
217
- stroke-width: 1.2px;
218
- }
219
-
220
- .isInToolbar.bookmark {
221
- width: 14px;
222
- }
223
-
224
199
  .receipt {
225
200
  width: 10px;
226
201
  height: 13px;
@@ -27,7 +27,7 @@ const podcast: Icons[] = [
27
27
  'speedTwo'
28
28
  ]
29
29
 
30
- const meta: Icons[] = ['card', 'podcast', 'read', 'listened']
30
+ const meta: Icons[] = ['card', 'podcast']
31
31
 
32
32
  const other: Icons[] = [
33
33
  'meduzaLogo',
@@ -37,7 +37,6 @@ const other: Icons[] = [
37
37
  'cross',
38
38
  'link',
39
39
  'user',
40
- 'bookmark',
41
40
  'receipt'
42
41
  ]
43
42
 
@@ -12,7 +12,6 @@ export type SvgSymbolStyleContexts =
12
12
  | 'PodcastMaterial'
13
13
  | 'isInHeader'
14
14
  | 'isInProfile'
15
- | 'isInBookmark'
16
15
 
17
16
  export type Icons =
18
17
  | 'meduzaLogo'
@@ -29,14 +28,12 @@ export type Icons =
29
28
  | 'episodeDownload'
30
29
  | 'play'
31
30
  | 'pause'
32
- | 'shareBookmark'
33
31
  | 'speedHalf'
34
32
  | 'speedThreeQuarters'
35
33
  | 'speedOne'
36
34
  | 'speedOneQuarter'
37
35
  | 'speedOneHalf'
38
36
  | 'speedTwo'
39
- | 'podcastBookmark'
40
37
  | 'reaction'
41
38
  | 'cross'
42
39
  | 'link'
@@ -46,10 +43,7 @@ export type Icons =
46
43
  | 'arrow'
47
44
  | 'brent'
48
45
  | 'user'
49
- | 'bookmark'
50
46
  | 'receipt'
51
- | 'read'
52
- | 'listened'
53
47
 
54
48
  export type Sizes = 'small' | 'normal' | 'medium' | 'large' | 'unset'
55
49
 
@@ -165,13 +165,6 @@ export const icons = {
165
165
  </g>`
166
166
  },
167
167
 
168
- podcastBookmark: {
169
- width: 25,
170
- height: 27,
171
- content:
172
- '<path d="M12.5 27C19.404 27 25 21.404 25 14.5S19.404 2 12.5 2 0 7.596 0 14.5 5.596 27 12.5 27zm0-1.5c-6.075 0-11-4.925-11-11s4.925-11 11-11 11 4.925 11 11-4.925 11-11 11z" /> <path d="M17.071 8.25H8a.75.75 0 00-.75.75v11.545l.007.104a.75.75 0 001.228.468l4.05-3.437 4.051 3.437a.75.75 0 001.235-.572V9a.75.75 0 00-.75-.75zm-.75 1.499v9.176l-3.3-2.8-.098-.07a.75.75 0 00-.873.07l-3.3 2.799V9.749h7.571z" data-stroke="true" /> <path d="M17.071 8.25H8a.75.75 0 00-.75.75v11.545l.007.104a.75.75 0 001.228.468l4.05-3.437 4.051 3.437a.75.75 0 001.235-.572V9a.75.75 0 00-.75-.75z" data-fill="true" />'
173
- },
174
-
175
168
  reaction: {
176
169
  width: 16,
177
170
  height: 16,
@@ -235,20 +228,6 @@ export const icons = {
235
228
  '<path fill="currentColor" fill-rule="nonzero" d="M8 1a4.25 4.25 0 012.676 7.552 6.751 6.751 0 014.074 6.198.75.75 0 11-1.5 0 5.25 5.25 0 00-10.5 0 .75.75 0 11-1.5 0 6.752 6.752 0 014.074-6.199A4.25 4.25 0 018 1zm0 1.5A2.75 2.75 0 108 8a2.75 2.75 0 000-5.5z" />'
236
229
  },
237
230
 
238
- bookmark: {
239
- width: 30,
240
- height: 30,
241
- content:
242
- '<g opacity="1"><path fill-rule="evenodd" clip-rule="evenodd" d="M24 21.8237C24 22.847 24 23.3587 23.7885 23.6299C23.6043 23.8659 23.3242 24.007 23.025 24.0145C22.6811 24.0231 22.27 23.7185 21.4476 23.1094L15.9524 19.0388C15.6105 18.7856 15.4396 18.659 15.2523 18.6101C15.0869 18.567 14.9131 18.567 14.7477 18.6101C14.5604 18.659 14.3895 18.7856 14.0476 19.0388L8.55236 23.1094C7.73003 23.7185 7.31886 24.0231 6.97505 24.0145C6.67581 24.007 6.39566 23.8659 6.21155 23.6299C6 23.3587 6 22.847 6 21.8237V6.6C6 6.03995 6 5.75992 6.10899 5.54601C6.20487 5.35785 6.35785 5.20487 6.54601 5.10899C6.75992 5 7.03995 5 7.6 5H22.4C22.9601 5 23.2401 5 23.454 5.10899C23.6422 5.20487 23.7951 5.35785 23.891 5.54601C24 5.75992 24 6.03995 24 6.6V21.8237Z" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/></g>'
243
- },
244
-
245
- shareBookmark: {
246
- width: 11,
247
- height: 15,
248
- content:
249
- '<path clip-rule="evenodd" d="M10 14 5.5 9.667 1 14V1h9v13Z" stroke="currentColor" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round"/>'
250
- },
251
-
252
231
  receipt: {
253
232
  width: 10,
254
233
  height: 13,
@@ -256,18 +235,6 @@ export const icons = {
256
235
  '<g fill="currentColor" fill-rule="nonzero"><path d="M10 0H0v13l2-1.74 1.5 1.305L5 11.26l1.5 1.305L8 11.26 10 13V0zM9 .997v9.81l-1-.87-1.5 1.304L5 9.937 3.5 11.24 2 9.937l-1 .87V.996h8z"/><path d="M7 3v1H3V3zM7 6v1H3V6z"/></g>'
257
236
  },
258
237
 
259
- read: {
260
- width: 15,
261
- height: 15,
262
- content:
263
- '<g fill="none" fill-rule="evenodd"><path opacity=".98" d="M0 0h15v15H0z"/><path d="M13.085 1.694a.513.513 0 01.855.56l-.051.077-3.163 3.975a.514.514 0 01-.73.075l-.068-.069-1.812-2.208a.512.512 0 01.729-.716l.065.066 1.409 1.718 2.766-3.478z" fill="#6EAC65" fill-rule="nonzero"/><path d="M6.454 12.997l-.06-.01-.078-.023a.49.49 0 01-.266-.24l.011.015a2.349 2.349 0 00-.535-.607c-.89-.745-2.117-.917-3.813-.12a.5.5 0 01-.706-.37L1 11.558V4.568a.5.5 0 01.287-.453c2.053-.963 3.695-.733 4.88.26.327.272.556.548.698.77l.084.144.018.04.022.076.01.071L7 11.233l.126-.09c.95-.656 2.16-.857 3.608-.417l.266.087v-2.81a.5.5 0 01.41-.491l.09-.008a.5.5 0 01.492.41l.008.09v3.555a.5.5 0 01-.713.452c-1.696-.796-2.922-.624-3.813.12a2.533 2.533 0 00-.497.544l-.038.064a.486.486 0 01-.485.258zm-4.29-8.17L2 4.892v5.92c1.637-.572 2.977-.348 4 .42l.002-5.58a2.605 2.605 0 00-.476-.513c-.81-.677-1.897-.88-3.362-.314z" fill="currentColor" fill-rule="nonzero"/></g>'
264
- },
265
- listened: {
266
- width: 15,
267
- height: 15,
268
- content:
269
- '<g fill-rule="nonzero"><path d="M4.978 4.354a.5.5 0 01-.332.624c-1.197.367-2.064 1.527-2.14 2.897l-.005.167a.749.749 0 01.999.708v3a.75.75 0 01-1.458.248L2 12a1 1 0 01-1-1v-1a1 1 0 01.5-.866V8.072c0-1.886 1.172-3.535 2.854-4.05a.5.5 0 01.624.332zM10 7a.5.5 0 01.492.41l.008.09.001 1.634a1 1 0 01.492.745L11 10v1a1 1 0 01-.883.993L10 12l-.042-.002a.75.75 0 01-1.451-.146L8.5 11.75v-3a.75.75 0 011.001-.707L9.5 7.5l.008-.09A.5.5 0 0110 7z" fill="currentColor" /><path d="M11.585 1.194a.513.513 0 01.855.56l-.051.077-3.163 3.975a.514.514 0 01-.73.075l-.068-.069-1.812-2.208a.512.512 0 01.729-.716l.065.066 1.409 1.718 2.766-3.478z" fill="#6EAC65" /></g>'
270
- },
271
238
  magic: {
272
239
  width: 15,
273
240
  height: 15,