@axinom/mosaic-ui 0.66.0-rc.9 → 0.67.0-rc.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 (146) hide show
  1. package/dist/components/DynamicDataList/DynamicListHeader/DynamicListHeader.d.ts.map +1 -1
  2. package/dist/components/FieldSelection/FieldSelection.d.ts.map +1 -1
  3. package/dist/components/Filters/Filter/Filter.d.ts.map +1 -1
  4. package/dist/components/Filters/Filters.model.d.ts +5 -0
  5. package/dist/components/Filters/Filters.model.d.ts.map +1 -1
  6. package/dist/components/Filters/SelectionTypes/DateTimeFilter/DateTimeFilter.d.ts +2 -0
  7. package/dist/components/Filters/SelectionTypes/DateTimeFilter/DateTimeFilter.d.ts.map +1 -1
  8. package/dist/components/Filters/SelectionTypes/FreeTextFilter/FreeTextFilter.d.ts +2 -0
  9. package/dist/components/Filters/SelectionTypes/FreeTextFilter/FreeTextFilter.d.ts.map +1 -1
  10. package/dist/components/Filters/SelectionTypes/MultiOptionFilter/MultiOptionFilter.d.ts +2 -0
  11. package/dist/components/Filters/SelectionTypes/MultiOptionFilter/MultiOptionFilter.d.ts.map +1 -1
  12. package/dist/components/Filters/SelectionTypes/NumericTextFilter/NumericTextFilter.d.ts +2 -0
  13. package/dist/components/Filters/SelectionTypes/NumericTextFilter/NumericTextFilter.d.ts.map +1 -1
  14. package/dist/components/Filters/SelectionTypes/OptionsFilter/OptionsFilter.d.ts +2 -0
  15. package/dist/components/Filters/SelectionTypes/OptionsFilter/OptionsFilter.d.ts.map +1 -1
  16. package/dist/components/Filters/SelectionTypes/SearcheableOptionsFilter/SearcheableOptionsFilter.d.ts +2 -0
  17. package/dist/components/Filters/SelectionTypes/SearcheableOptionsFilter/SearcheableOptionsFilter.d.ts.map +1 -1
  18. package/dist/components/FormElements/Radio/Radio.d.ts.map +1 -1
  19. package/dist/components/FormElements/ToggleButton/ToggleButton.d.ts.map +1 -1
  20. package/dist/components/Hub/Tile/Tile.d.ts.map +1 -1
  21. package/dist/components/Icons/Icons.d.ts +4 -9
  22. package/dist/components/Icons/Icons.d.ts.map +1 -1
  23. package/dist/components/LandingPageTiles/TileLarge/TileLarge.d.ts.map +1 -1
  24. package/dist/components/LandingPageTiles/TileSmall/TileSmall.d.ts.map +1 -1
  25. package/dist/components/List/ListCheckBox/ListCheckBox.d.ts.map +1 -1
  26. package/dist/components/List/ListHeader/ColumnLabel/ColumnLabel.d.ts.map +1 -1
  27. package/dist/components/List/ListHeader/ListHeader.d.ts.map +1 -1
  28. package/dist/components/List/ListRow/ListRow.d.ts.map +1 -1
  29. package/dist/components/List/ListRow/ListRowCell/ListRowCell.d.ts +15 -0
  30. package/dist/components/List/ListRow/ListRowCell/ListRowCell.d.ts.map +1 -0
  31. package/dist/components/List/ListRow/ListRowCell/renderData.d.ts +9 -0
  32. package/dist/components/List/ListRow/ListRowCell/renderData.d.ts.map +1 -0
  33. package/dist/components/List/ListRow/Renderers/TagsRenderer/TagsRenderer.d.ts.map +1 -1
  34. package/dist/components/Loaders/ImageLoader/ImageLoader.d.ts.map +1 -1
  35. package/dist/components/PageHeader/PageHeaderAction/PageHeaderAction.d.ts.map +1 -1
  36. package/dist/components/Utils/Postgraphile/CreateConnectionRenderer.d.ts +1 -1
  37. package/dist/components/Utils/Postgraphile/CreateConnectionRenderer.d.ts.map +1 -1
  38. package/dist/components/VisualElements/ImgElement.d.ts +50 -0
  39. package/dist/components/VisualElements/ImgElement.d.ts.map +1 -0
  40. package/dist/components/VisualElements/SvgElement.d.ts +14 -0
  41. package/dist/components/VisualElements/SvgElement.d.ts.map +1 -0
  42. package/dist/components/VisualElements/index.d.ts +3 -0
  43. package/dist/components/VisualElements/index.d.ts.map +1 -0
  44. package/dist/components/index.d.ts +1 -0
  45. package/dist/components/index.d.ts.map +1 -1
  46. package/dist/helpers/idleCallbackHelpers.d.ts +42 -0
  47. package/dist/helpers/idleCallbackHelpers.d.ts.map +1 -0
  48. package/dist/helpers/index.d.ts +1 -0
  49. package/dist/helpers/index.d.ts.map +1 -1
  50. package/dist/hooks/useResize/ResizeIndicator.d.ts +8 -0
  51. package/dist/hooks/useResize/ResizeIndicator.d.ts.map +1 -0
  52. package/dist/hooks/useResize/useResize.d.ts +5 -2
  53. package/dist/hooks/useResize/useResize.d.ts.map +1 -1
  54. package/dist/index.d.ts +1 -0
  55. package/dist/index.d.ts.map +1 -1
  56. package/dist/index.es.js +4 -4
  57. package/dist/index.es.js.map +1 -1
  58. package/dist/index.js +4 -4
  59. package/dist/index.js.map +1 -1
  60. package/package.json +2 -2
  61. package/src/components/Accordion/Accordion.scss +1 -1
  62. package/src/components/Accordion/AccordionItem/AccordionItem.scss +2 -2
  63. package/src/components/Buttons/Button/Button.scss +5 -5
  64. package/src/components/Buttons/CompositeButton/CompositeButton.scss +7 -7
  65. package/src/components/Buttons/TextButton/TextButton.scss +6 -6
  66. package/src/components/ConfirmDialog/ConfirmDialog.scss +1 -1
  67. package/src/components/DateTime/DatePicker/DatePicker.scss +12 -12
  68. package/src/components/DateTime/TimePicker/ScrollColumn/ScrollColumn.scss +7 -7
  69. package/src/components/DateTime/TimePicker/TimePicker.scss +1 -1
  70. package/src/components/DynamicDataList/DynamicListHeader/DynamicListHeader.scss +2 -2
  71. package/src/components/DynamicDataList/DynamicListHeader/DynamicListHeader.spec.tsx +2 -0
  72. package/src/components/DynamicDataList/DynamicListHeader/DynamicListHeader.tsx +62 -50
  73. package/src/components/DynamicDataList/DynamicListRow/DynamicListRow.scss +2 -2
  74. package/src/components/FieldSelection/FieldSelection.scss +6 -0
  75. package/src/components/FieldSelection/FieldSelection.tsx +2 -1
  76. package/src/components/Filters/Filter/Filter.scss +34 -15
  77. package/src/components/Filters/Filter/Filter.spec.tsx +1 -1
  78. package/src/components/Filters/Filter/Filter.tsx +46 -34
  79. package/src/components/Filters/Filters.model.ts +6 -0
  80. package/src/components/Filters/SelectionTypes/DateTimeFilter/DateTimeFilter.tsx +5 -0
  81. package/src/components/Filters/SelectionTypes/FreeTextFilter/FreeTextFilter.tsx +4 -0
  82. package/src/components/Filters/SelectionTypes/MultiOptionFilter/MultiOptionFilter.scss +1 -1
  83. package/src/components/Filters/SelectionTypes/MultiOptionFilter/MultiOptionFilter.tsx +9 -1
  84. package/src/components/Filters/SelectionTypes/NumericTextFilter/NumericTextFilter.tsx +5 -0
  85. package/src/components/Filters/SelectionTypes/OptionsFilter/OptionsFilter.scss +6 -10
  86. package/src/components/Filters/SelectionTypes/OptionsFilter/OptionsFilter.tsx +8 -0
  87. package/src/components/Filters/SelectionTypes/SearcheableOptionsFilter/SearcheableOptionsFilter.tsx +6 -1
  88. package/src/components/FormElements/Checkbox/Checkbox.scss +4 -4
  89. package/src/components/FormElements/CustomTags/CustomTags.scss +1 -1
  90. package/src/components/FormElements/FileUploadControl/FileUploadControl.scss +4 -4
  91. package/src/components/FormElements/Radio/Radio.scss +5 -5
  92. package/src/components/FormElements/Radio/Radio.tsx +3 -2
  93. package/src/components/FormElements/Select/Select.scss +11 -6
  94. package/src/components/FormElements/ToggleButton/ToggleButton.scss +7 -7
  95. package/src/components/FormElements/ToggleButton/ToggleButton.tsx +32 -27
  96. package/src/components/Hub/Hub.stories.tsx +3 -2
  97. package/src/components/Hub/Tile/Tile.spec.tsx +7 -2
  98. package/src/components/Hub/Tile/Tile.tsx +2 -1
  99. package/src/components/Icons/Icons.scss +1 -0
  100. package/src/components/Icons/Icons.spec.tsx +90 -41
  101. package/src/components/Icons/Icons.tsx +357 -765
  102. package/src/components/InfoTooltip/InfoTooltip.scss +1 -1
  103. package/src/components/InlineMenu/InlineMenu.scss +2 -2
  104. package/src/components/LandingPageTiles/LandingPageTiles.stories.tsx +3 -2
  105. package/src/components/LandingPageTiles/TileLarge/TileLarge.spec.tsx +5 -1
  106. package/src/components/LandingPageTiles/TileLarge/TileLarge.tsx +2 -1
  107. package/src/components/LandingPageTiles/TileSmall/TileSmall.spec.tsx +7 -2
  108. package/src/components/LandingPageTiles/TileSmall/TileSmall.tsx +2 -1
  109. package/src/components/List/List.scss +4 -4
  110. package/src/components/List/ListCheckBox/ListCheckBox.tsx +1 -0
  111. package/src/components/List/ListHeader/ColumnLabel/ColumnLabel.spec.tsx +6 -6
  112. package/src/components/List/ListHeader/ColumnLabel/ColumnLabel.tsx +10 -13
  113. package/src/components/List/ListHeader/ListHeader.scss +2 -3
  114. package/src/components/List/ListHeader/ListHeader.spec.tsx +2 -0
  115. package/src/components/List/ListHeader/ListHeader.tsx +57 -51
  116. package/src/components/List/ListRow/ListRow.scss +1 -28
  117. package/src/components/List/ListRow/ListRow.spec.tsx +10 -8
  118. package/src/components/List/ListRow/ListRow.tsx +20 -152
  119. package/src/components/List/ListRow/ListRowCell/ListRowCell.scss +26 -0
  120. package/src/components/List/ListRow/ListRowCell/ListRowCell.spec.tsx +491 -0
  121. package/src/components/List/ListRow/ListRowCell/ListRowCell.tsx +57 -0
  122. package/src/components/List/ListRow/ListRowCell/renderData.tsx +124 -0
  123. package/src/components/List/ListRow/Renderers/TagsRenderer/TagsRenderer.spec.tsx +191 -80
  124. package/src/components/List/ListRow/Renderers/TagsRenderer/TagsRenderer.tsx +63 -34
  125. package/src/components/Loaders/ImageLoader/ImageLoader.spec.tsx +13 -14
  126. package/src/components/Loaders/ImageLoader/ImageLoader.tsx +5 -3
  127. package/src/components/PageHeader/PageHeader.scss +1 -1
  128. package/src/components/PageHeader/PageHeaderAction/PageHeaderAction.tsx +13 -2
  129. package/src/components/Tabs/Tab/CustomTab.scss +4 -4
  130. package/src/components/Tabs/TabList/CustomTabList.scss +2 -2
  131. package/src/components/Utils/Postgraphile/CreateConnectionRenderer.spec.ts +48 -12
  132. package/src/components/Utils/Postgraphile/CreateConnectionRenderer.tsx +5 -4
  133. package/src/components/VisualElements/ImgElement.spec.tsx +92 -0
  134. package/src/components/VisualElements/ImgElement.tsx +72 -0
  135. package/src/components/VisualElements/SvgElement.spec.tsx +158 -0
  136. package/src/components/VisualElements/SvgElement.tsx +40 -0
  137. package/src/components/VisualElements/index.ts +7 -0
  138. package/src/components/index.ts +1 -0
  139. package/src/helpers/idleCallbackHelpers.ts +66 -0
  140. package/src/helpers/index.ts +5 -0
  141. package/src/hooks/useResize/ResizeIndicator.scss +7 -0
  142. package/src/hooks/useResize/ResizeIndicator.tsx +39 -0
  143. package/src/hooks/useResize/{useResize.ts → useResize.tsx} +38 -6
  144. package/src/index.ts +2 -0
  145. package/src/styles/branding.scss +89 -0
  146. package/src/styles/variables.scss +245 -187
@@ -1,1030 +1,622 @@
1
1
  import clsx from 'clsx';
2
2
  import React from 'react';
3
+ import { SvgElement, SvgElementProps } from '../VisualElements/SvgElement';
3
4
  import { IconName } from './Icons.models';
4
5
  import classes from './Icons.scss';
5
6
 
6
- export interface IconsProps {
7
- /** Icon type */
8
- icon?: IconName;
9
- /** Optional class */
10
- className?: string;
11
- }
7
+ const DEFAULT_PATH_PROPS = {
8
+ vectorEffect: 'non-scaling-stroke' as const,
9
+ fill: 'none',
10
+ strokeWidth: '2',
11
+ };
12
12
 
13
- const AxiIcon: React.FC<{ className?: string }> = ({ className }) => (
14
- <svg
15
- className={clsx(classes.icons, className)}
16
- version="1.1"
17
- xmlns="http://www.w3.org/2000/svg"
18
- viewBox="0 0 40 40"
19
- >
13
+ const DEFAULT_RECT_PROPS = {
14
+ vectorEffect: 'non-scaling-stroke' as const,
15
+ };
16
+
17
+ const AxiIcon: React.FC<SvgElementProps> = (props) => (
18
+ <SvgElement {...props}>
20
19
  <path
21
- vectorEffect="non-scaling-stroke"
22
- fill="none"
23
- strokeWidth="2"
20
+ {...DEFAULT_PATH_PROPS}
24
21
  d="M24.3,36h-8.5c-5,0-9.1-4.1-9.1-9.1v-5.3c0-5,4.1-9.1,9.1-9.1h8.5c5,0,9.1,4.1,9.1,9.1v5.3c0,5-4.1,9.1-9.1,9.1ZM6.8,20.4h-.9c-1.3,0-2.3,1.1-2.3,2.3v3c0,1.3,1.1,2.3,2.3,2.3h.9M33.3,28.2h.9c1.3,0,2.3-1.1,2.3-2.3v-3c0-1.3-1.1-2.3-2.3-2.3h-.9M14.1,20.4c-1.4,0-2.5,1.1-2.5,2.5s1.1,2.5,2.5,2.5,2.5-1.1,2.5-2.5-1.1-2.5-2.5-2.5ZM19.7,4c-1.4,0-2.5,1.1-2.5,2.5s1.1,2.5,2.5,2.5,2.5-1.1,2.5-2.5-1.1-2.5-2.5-2.5ZM25.9,20.4c-1.4,0-2.5,1.1-2.5,2.5s1.1,2.5,2.5,2.5,2.5-1.1,2.5-2.5-1.1-2.5-2.5-2.5ZM19.7,9v3.5M16.1,30.2h7.8"
25
22
  />
26
- </svg>
23
+ </SvgElement>
27
24
  );
28
25
 
29
- const ArchiveIcon: React.FC<{ className?: string }> = ({ className }) => (
30
- <svg
31
- className={clsx(classes.icons, className)}
32
- version="1.1"
33
- xmlns="http://www.w3.org/2000/svg"
34
- viewBox="0 0 40 40"
35
- >
26
+ const ArchiveIcon: React.FC<SvgElementProps> = (props) => (
27
+ <SvgElement {...props}>
36
28
  <path
37
- vectorEffect="non-scaling-stroke"
38
- fill="none"
39
- strokeWidth="2"
29
+ {...DEFAULT_PATH_PROPS}
40
30
  d="M27.6,14.7H39V39H1.1V14.6h11.6 M9.9,22.1l10.3,9.1
41
31
  l10.3-9.1 M20.1,31.2V0"
42
32
  />
43
- </svg>
33
+ </SvgElement>
44
34
  );
45
35
 
46
- const AudioIcon: React.FC<{ className?: string }> = ({ className }) => (
47
- <svg
48
- className={clsx(classes.icons, className)}
49
- version="1.1"
50
- xmlns="http://www.w3.org/2000/svg"
51
- viewBox="0 0 40 40"
52
- >
36
+ const AudioIcon: React.FC<SvgElementProps> = (props) => (
37
+ <SvgElement {...props}>
53
38
  <path
54
- vectorEffect="non-scaling-stroke"
55
- fill="none"
56
- strokeWidth="2"
39
+ {...DEFAULT_PATH_PROPS}
57
40
  d="M20,2c9.9,0,18,8.1,18,18s-8.1,18-18,18S2,29.9,2,20,10.1,2,20,2ZM14.5,16.7h-5.1v6.7h5.1l7.3,5V11.7l-7.3,5ZM26.1,24.5c2.5,0,4.5-2,4.5-4.5s-2-4.5-4.5-4.5"
58
41
  />
59
- </svg>
42
+ </SvgElement>
60
43
  );
61
44
 
62
- const DescriptiveAudioIcon: React.FC<{ className?: string }> = ({
63
- className,
64
- }) => (
65
- <svg
66
- className={clsx(classes.icons, className)}
67
- version="1.1"
68
- xmlns="http://www.w3.org/2000/svg"
69
- viewBox="0 0 40 40"
70
- >
45
+ const DescriptiveAudioIcon: React.FC<SvgElementProps> = (props) => (
46
+ <SvgElement {...props}>
71
47
  <path
72
- fill="none"
73
- strokeWidth="2"
48
+ {...DEFAULT_PATH_PROPS}
74
49
  d="M20,2c9.9,0,18,8.1,18,18s-8.1,18-18,18S2,29.9,2,20,10.1,2,20,2ZM17.1,25.5v-11h-2.6l-4.9,11M11.5,21h5.5M29.9,19.9v-.5c0-2.7-2.4-4.8-5.3-4.8h-1.9v10.2h1.9c3,0,5.3-2.2,5.3-4.8Z"
75
- vectorEffect="non-scaling-stroke"
76
50
  />
77
- </svg>
51
+ </SvgElement>
78
52
  );
79
53
 
80
- const ThumbnailsIcon: React.FC<{ className?: string }> = ({ className }) => (
81
- <svg
82
- className={clsx(classes.icons, className)}
83
- version="1.1"
84
- xmlns="http://www.w3.org/2000/svg"
85
- viewBox="0 0 40 40"
86
- >
54
+ const ThumbnailsIcon: React.FC<SvgElementProps> = (props) => (
55
+ <SvgElement {...props}>
87
56
  <path
88
- vectorEffect="non-scaling-stroke"
89
- fill="none"
90
- strokeWidth="2"
57
+ {...DEFAULT_PATH_PROPS}
91
58
  d="M38,20c0,9.9-8.1,18-18,18S2,29.9,2,20,10.1,2,20,2s18,8.1,18,18ZM14.3,12c0,1.6,1.2,2.7,2.7,2.7s2.7-1.1,2.7-2.7-1.2-2.7-2.7-2.7-2.7,1.1-2.7,2.7ZM37.5,24l-8.1-8.1-11.4,11.4-6.6-6.6-7.4,7.4"
92
59
  />
93
- </svg>
60
+ </SvgElement>
94
61
  );
95
62
 
96
- const BackwardOne: React.FC<{ className?: string }> = ({ className }) => (
97
- <svg
98
- className={clsx(classes.icons, className)}
99
- version="1.1"
100
- xmlns="http://www.w3.org/2000/svg"
101
- viewBox="0 0 40 40"
102
- >
63
+ const BackwardOne: React.FC<SvgElementProps> = (props) => (
64
+ <SvgElement {...props}>
103
65
  <path
104
- vectorEffect="non-scaling-stroke"
105
- fill="none"
106
- stroke="#1478AF"
107
- strokeWidth="2"
66
+ {...DEFAULT_PATH_PROPS}
108
67
  d="M4.1,10.5C7.7,5.4,14.3,2,20,2c9.9,0,18,8.1,18,18s-8.1,18-18,18S2,29.9,2,20 M12.1,10.5H4.1V2.5 M20.9,25.5V15
109
- c0,0-1.1,2.1-3.8,3.1"
68
+ c0,0-1.1,2.1-3.8,3.1"
110
69
  />
111
- </svg>
70
+ </SvgElement>
112
71
  );
113
72
 
114
- const BackwardTen: React.FC<{ className?: string }> = ({ className }) => (
115
- <svg
116
- className={clsx(classes.icons, className)}
117
- version="1.1"
118
- xmlns="http://www.w3.org/2000/svg"
119
- viewBox="0 0 40 40"
120
- >
73
+ const BackwardTen: React.FC<SvgElementProps> = (props) => (
74
+ <SvgElement {...props}>
121
75
  <path
122
- vectorEffect="non-scaling-stroke"
123
- fill="none"
124
- stroke="#1478AF"
125
- strokeWidth="2"
76
+ {...DEFAULT_PATH_PROPS}
126
77
  d="M4.2,10.5C7.8,5.4,14.4,2,20.1,2c9.9,0,18,8.1,18,18s-8.1,18-18,18s-18-8.1-18-18 M12.1,10.5H4.2V2.6
127
- M12.3,18.1c2.7-1,3.8-3.1,3.8-3.1v10.5 M23.6,15.3c1.8,0,3.2,2.3,3.2,5.2s-1.4,5.2-3.2,5.2s-3.2-2.3-3.2-5.2S21.8,15.3,23.6,15.3z"
78
+ M12.3,18.1c2.7-1,3.8-3.1,3.8-3.1v10.5 M23.6,15.3c1.8,0,3.2,2.3,3.2,5.2s-1.4,5.2-3.2,5.2s-3.2-2.3-3.2-5.2S21.8,15.3,23.6,15.3z"
128
79
  />
129
- </svg>
80
+ </SvgElement>
130
81
  );
131
82
 
132
- const BlockIcon: React.FC<{ className?: string }> = ({ className }) => (
133
- <svg
134
- className={clsx(classes.icons, className)}
135
- version="1.1"
136
- xmlns="http://www.w3.org/2000/svg"
137
- viewBox="0 0 40 40"
138
- >
83
+ const BlockIcon: React.FC<SvgElementProps> = (props) => (
84
+ <SvgElement {...props}>
139
85
  <path
140
- vectorEffect="non-scaling-stroke"
141
- fill="none"
142
- strokeWidth="2"
86
+ {...DEFAULT_PATH_PROPS}
143
87
  d="M20.4,2.4c9.9,0,18,8.1,18,18s-8.1,18-18,18s-18-8.1-18-18S10.5,2.4,20.4,2.4z M9.8,20.4H31"
144
88
  />
145
- </svg>
89
+ </SvgElement>
146
90
  );
147
91
 
148
- const BulkIcon: React.FC<{ className?: string }> = ({ className }) => (
149
- <svg
150
- className={clsx(classes.icons, className)}
151
- version="1.1"
152
- xmlns="http://www.w3.org/2000/svg"
153
- viewBox="0 0 40 40"
154
- >
92
+ const BulkIcon: React.FC<SvgElementProps> = (props) => (
93
+ <SvgElement {...props}>
155
94
  <path
156
- vectorEffect="non-scaling-stroke"
157
- fill="none"
158
- strokeWidth="2"
95
+ {...DEFAULT_PATH_PROPS}
159
96
  d="M33.1,38.6H1.3V6.8h31.8V38.6z M26.8,14.4L15.1,27.8l-7.1-7.5 M38.7,31.2V1.4h-29"
160
97
  />
161
- </svg>
98
+ </SvgElement>
162
99
  );
163
100
 
164
- const BulkEditIcon: React.FC<{ className?: string }> = ({ className }) => (
165
- <svg
166
- className={clsx(classes.icons, className)}
167
- version="1.1"
168
- xmlns="http://www.w3.org/2000/svg"
169
- viewBox="0 0 40 40"
170
- >
101
+ export const BulkEditIcon: React.FC<SvgElementProps> = (props) => (
102
+ <SvgElement {...props}>
171
103
  <path
172
- vectorEffect="non-scaling-stroke"
173
- fill="none"
174
- strokeWidth="2"
104
+ {...DEFAULT_PATH_PROPS}
175
105
  d="M32.7,18.5l4.4,4.4-10.5,10.5-4.4-4.4,10.5-10.5ZM32.2,12.9v-7.7H10M8.5,16.5h12.9M8.5,21h12.9M8.5,25.5h7M27.2,18.5v-8.6H2.9v24.7h14.4M22.3,29l-1.6,5.8,6-1.4"
176
106
  />
177
- </svg>
107
+ </SvgElement>
178
108
  );
179
109
 
180
- const CalendarIcon: React.FC<{ className?: string }> = ({ className }) => (
181
- <svg
182
- className={clsx(classes.icons, className)}
183
- version="1.1"
184
- xmlns="http://www.w3.org/2000/svg"
185
- viewBox="0 0 40 40"
186
- >
110
+ export const CalendarIcon: React.FC<SvgElementProps> = (props) => (
111
+ <SvgElement {...props}>
187
112
  <path
188
- vectorEffect="non-scaling-stroke"
189
- fill="none"
190
- stroke="#0E7CB4"
191
- strokeWidth="2"
113
+ {...DEFAULT_PATH_PROPS}
192
114
  d="M12.6,34.8H1.9V5h33.8v8.6 M26.7,15.1c-6.3,0-11.5,5.2-11.5,11.5S20.3,38,26.7,38s11.4-5.2,11.4-11.6
193
- S33,15.1,26.7,15.1z M35.7,10.9 M1.9,10.9 M10.9,1v9.4 M26.7,1v9.4 M26.2,19.1v8.2l0,0h6.5"
115
+ S33,15.1,26.7,15.1z M35.7,10.9 M1.9,10.9 M10.9,1v9.4 M26.7,1v9.4 M26.2,19.1v8.2l0,0h6.5"
194
116
  />
195
- </svg>
117
+ </SvgElement>
196
118
  );
197
119
 
198
- const CheckmarkIcon: React.FC<{ className?: string }> = ({ className }) => (
199
- <svg
200
- className={clsx(classes.icons, className)}
201
- version="1.1"
202
- xmlns="http://www.w3.org/2000/svg"
203
- viewBox="0 0 40 40"
204
- >
205
- <path
206
- vectorEffect="non-scaling-stroke"
207
- fill="none"
208
- strokeWidth="2"
209
- d="M0.9,17.8L16,32.5l23.1-25"
210
- />
211
- </svg>
120
+ const CheckmarkIcon: React.FC<SvgElementProps> = (props) => (
121
+ <SvgElement {...props}>
122
+ <path {...DEFAULT_PATH_PROPS} d="M0.9,17.8L16,32.5l23.1-25" />
123
+ </SvgElement>
212
124
  );
213
125
 
214
- const ChevronDownIcon: React.FC<{ className?: string }> = ({ className }) => (
215
- <svg
216
- className={clsx(classes.icons, className)}
217
- version="1.1"
218
- xmlns="http://www.w3.org/2000/svg"
219
- viewBox="0 0 40 40"
220
- >
126
+ const ChevronDownIcon: React.FC<SvgElementProps> = (props) => (
127
+ <SvgElement {...props}>
221
128
  <path
222
- vectorEffect="non-scaling-stroke"
223
- fill="none"
224
- strokeWidth="2"
129
+ {...DEFAULT_PATH_PROPS}
225
130
  transform="rotate(90, 20, 20)"
226
131
  d="M9.2,39.1L30.8,20L9.2,0.9"
227
132
  />
228
- </svg>
133
+ </SvgElement>
229
134
  );
230
135
 
231
- const ChevronLeftIcon: React.FC<{ className?: string }> = ({ className }) => (
232
- <svg
233
- className={clsx(classes.icons, className)}
234
- version="1.1"
235
- xmlns="http://www.w3.org/2000/svg"
236
- viewBox="0 0 40 40"
237
- >
136
+ const ChevronLeftIcon: React.FC<SvgElementProps> = (props) => (
137
+ <SvgElement {...props}>
238
138
  <path
239
- vectorEffect="non-scaling-stroke"
240
- fill="none"
241
- strokeWidth="2"
139
+ {...DEFAULT_PATH_PROPS}
242
140
  transform="rotate(180, 20, 20)"
243
141
  d="M9.2,39.1L30.8,20L9.2,0.9"
244
142
  />
245
- </svg>
143
+ </SvgElement>
246
144
  );
247
145
 
248
- const ChevronRightIcon: React.FC<{ className?: string }> = ({ className }) => (
249
- <svg
250
- className={clsx(classes.icons, className)}
251
- version="1.1"
252
- xmlns="http://www.w3.org/2000/svg"
253
- viewBox="0 0 40 40"
254
- >
255
- <path
256
- vectorEffect="non-scaling-stroke"
257
- fill="none"
258
- strokeWidth="2"
259
- d="M9.2,39.1L30.8,20L9.2,0.9"
260
- />
261
- </svg>
146
+ const ChevronRightIcon: React.FC<SvgElementProps> = (props) => (
147
+ <SvgElement {...props}>
148
+ <path {...DEFAULT_PATH_PROPS} d="M9.2,39.1L30.8,20L9.2,0.9" />
149
+ </SvgElement>
262
150
  );
263
151
 
264
- const ChevronUpIcon: React.FC<{ className?: string }> = ({ className }) => (
265
- <svg
266
- className={clsx(classes.icons, className)}
267
- version="1.1"
268
- xmlns="http://www.w3.org/2000/svg"
269
- viewBox="0 0 40 40"
270
- >
152
+ const ChevronUpIcon: React.FC<SvgElementProps> = (props) => (
153
+ <SvgElement {...props}>
271
154
  <path
272
- vectorEffect="non-scaling-stroke"
273
- fill="none"
274
- strokeWidth="2"
155
+ {...DEFAULT_PATH_PROPS}
275
156
  transform="rotate(-90, 20, 20)"
276
157
  d="M9.2,39.1L30.8,20L9.2,0.9"
277
158
  />
278
- </svg>
159
+ </SvgElement>
279
160
  );
280
161
 
281
- const ClosedCaptionIcon: React.FC<{ className?: string }> = ({ className }) => (
282
- <svg
283
- className={clsx(classes.icons, className)}
284
- version="1.1"
285
- xmlns="http://www.w3.org/2000/svg"
286
- viewBox="0 0 40 40"
287
- >
162
+ const ClosedCaptionIcon: React.FC<SvgElementProps> = (props) => (
163
+ <SvgElement {...props}>
288
164
  <path
289
- vectorEffect="non-scaling-stroke"
290
- fill="none"
291
- stroke="#B7B7B7"
292
- strokeWidth="2"
165
+ {...DEFAULT_PATH_PROPS}
293
166
  d="M20,2c9.9,0,18,8.1,18,18s-8.1,18-18,18S2,29.9,2,20,10.1,2,20,2ZM17.5,17.8c0-.7-.5-3-3.6-3s-3.6,2.3-3.6,4.3v1.6c0,1.3,0,4.6,3.6,4.6s3.8-2.6,3.8-3M29.6,17.8c0-.7-.5-3-3.6-3s-3.6,2.3-3.6,4.3v1.6c0,1.3,0,4.6,3.6,4.6s3.8-2.6,3.8-3"
294
167
  />
295
- </svg>
168
+ </SvgElement>
296
169
  );
297
170
 
298
- const CopyIcon: React.FC<{ className?: string }> = ({ className }) => (
299
- <svg
300
- className={clsx(classes.icons, className)}
301
- version="1.1"
302
- xmlns="http://www.w3.org/2000/svg"
303
- viewBox="0 0 40 40"
304
- >
171
+ const CopyIcon: React.FC<SvgElementProps> = (props) => (
172
+ <SvgElement {...props}>
305
173
  <path
306
- vectorEffect="non-scaling-stroke"
307
- fill="none"
308
- stroke="#1478AF"
309
- strokeWidth="2"
174
+ {...DEFAULT_PATH_PROPS}
310
175
  d="M29.6,38.8H3.2V8.4h17l9.3,9.3V38.8z M20.2,8.4v9.3h9.3 M33.4,31.6h3.4V10.5l-9.3-9.3h-17v3.2 M27.5,1.2v9.3
311
- h9.3"
176
+ h9.3"
312
177
  />
313
- </svg>
178
+ </SvgElement>
314
179
  );
315
180
 
316
- const DeleteIcon: React.FC<{ className?: string }> = ({ className }) => (
317
- <svg
318
- className={clsx(classes.icons, className)}
319
- version="1.1"
320
- xmlns="http://www.w3.org/2000/svg"
321
- viewBox="0 0 40 40"
322
- >
181
+ const DeleteIcon: React.FC<SvgElementProps> = (props) => (
182
+ <SvgElement {...props}>
323
183
  <path
324
- vectorEffect="non-scaling-stroke"
325
- fill="none"
326
- strokeWidth="2"
184
+ {...DEFAULT_PATH_PROPS}
327
185
  d="M6.5,7.3l2.9,31.3h21.1l2.9-31.3 M0.5,7.2h39 M15.1,13.4L16,33.1 M24.7,13.4l-0.9,19.7 M14.2,7.2l1.2-5.8h8.3
328
- l1.1,5.8"
186
+ l1.1,5.8"
329
187
  />
330
- </svg>
188
+ </SvgElement>
331
189
  );
332
190
 
333
- const DetailsIcon: React.FC<{ className?: string }> = ({ className }) => (
334
- <svg
335
- className={clsx(classes.icons, className)}
336
- version="1.1"
337
- xmlns="http://www.w3.org/2000/svg"
338
- viewBox="0 0 40 40"
339
- >
191
+ const DetailsIcon: React.FC<SvgElementProps> = (props) => (
192
+ <SvgElement {...props}>
340
193
  <path
341
- vectorEffect="non-scaling-stroke"
342
- fill="none"
343
- strokeWidth="2"
194
+ {...DEFAULT_PATH_PROPS}
344
195
  d="M4,8.7h32 M4,16.4h10.2 M36,31.3h-9.5 M18.3,16.4H36 M22.4,31.3H4 M4,24.1h32"
345
196
  />
346
- </svg>
197
+ </SvgElement>
347
198
  );
348
199
 
349
- const DragIcon: React.FC<{ className?: string }> = ({ className }) => (
350
- <svg
351
- className={clsx(classes.icons, className)}
352
- version="1.1"
353
- xmlns="http://www.w3.org/2000/svg"
354
- viewBox="0 0 40 40"
355
- >
356
- <rect x="11.4" y="5.4" />
357
- <rect x="11.4" y="17.7" />
358
- <rect x="11.4" y="30" />
359
- <rect x="23.6" y="5.4" />
360
- <rect x="23.6" y="17.7" />
361
- <rect x="23.6" y="30" />
362
- </svg>
363
- );
200
+ const DragIcon: React.FC<SvgElementProps> = (props) => {
201
+ const RECT_PROPS = {
202
+ ...DEFAULT_RECT_PROPS,
203
+ width: '5.5',
204
+ height: '5.5',
205
+ fill: '#fff',
206
+ };
207
+
208
+ return (
209
+ <SvgElement {...props}>
210
+ <rect {...RECT_PROPS} x="11.4" y="5.4" />
211
+ <rect {...RECT_PROPS} x="11.4" y="17.7" />
212
+ <rect {...RECT_PROPS} x="11.4" y="30" />
213
+ <rect {...RECT_PROPS} x="23.6" y="5.4" />
214
+ <rect {...RECT_PROPS} x="23.6" y="17.7" />
215
+ <rect {...RECT_PROPS} x="23.6" y="30" />
216
+ </SvgElement>
217
+ );
218
+ };
364
219
 
365
- const EllipsisIcon: React.FC<{ className?: string }> = ({ className }) => (
366
- <svg
367
- className={clsx(classes.icons, className)}
368
- version="1.1"
369
- xmlns="http://www.w3.org/2000/svg"
370
- viewBox="0 0 40 40"
371
- >
220
+ const EllipsisIcon: React.FC<SvgElementProps> = (props) => (
221
+ <SvgElement {...props}>
372
222
  <path
373
- vectorEffect="non-scaling-stroke"
374
- fill="none"
375
- strokeWidth="2"
223
+ {...DEFAULT_PATH_PROPS}
376
224
  d="M6.8,30c0,1.3-1.1,2.4-2.4,2.4S2,31.3,2,30s1.1-2.4,2.4-2.4S6.8,28.7,6.8,30z M20,27.6c-1.3,0-2.4,1.1-2.4,2.4
377
- s1.1,2.4,2.4,2.4s2.4-1.1,2.4-2.4S21.3,27.6,20,27.6z M35.6,27.6c-1.3,0-2.4,1.1-2.4,2.4s1.1,2.4,2.4,2.4S38,31.3,38,30
378
- S36.9,27.6,35.6,27.6z"
225
+ s1.1,2.4,2.4,2.4s2.4-1.1,2.4-2.4S21.3,27.6,20,27.6z M35.6,27.6c-1.3,0-2.4,1.1-2.4,2.4s1.1,2.4,2.4,2.4S38,31.3,38,30
226
+ S36.9,27.6,35.6,27.6z"
379
227
  />
380
- </svg>
228
+ </SvgElement>
381
229
  );
382
230
 
383
- const ErrorIcon: React.FC<{ className?: string }> = ({ className }) => (
384
- <svg
385
- className={clsx(classes.icons, className)}
386
- version="1.1"
387
- xmlns="http://www.w3.org/2000/svg"
388
- viewBox="0 0 40 40"
389
- >
231
+ const ErrorIcon: React.FC<SvgElementProps> = (props) => (
232
+ <SvgElement {...props}>
390
233
  <path
391
- vectorEffect="non-scaling-stroke"
392
- fill="none"
393
- strokeWidth="2"
234
+ {...DEFAULT_PATH_PROPS}
394
235
  d="M20,2c9.9,0,18,8.1,18,18s-8.1,18-18,18S2,29.9,2,20S10.1,2,20,2z M12.5,12.5l15,15 M27.5,12.5l-15,15"
395
236
  />
396
- </svg>
237
+ </SvgElement>
397
238
  );
398
239
 
399
- const ExternalIcon: React.FC<{ className?: string }> = ({ className }) => (
400
- <svg
401
- className={clsx(classes.icons, className)}
402
- version="1.1"
403
- xmlns="http://www.w3.org/2000/svg"
404
- viewBox="0 0 40 40"
405
- >
240
+ const ExternalIcon: React.FC<SvgElementProps> = (props) => (
241
+ <SvgElement {...props}>
406
242
  <path
407
- vectorEffect="non-scaling-stroke"
408
- fill="none"
409
- strokeWidth="2"
243
+ {...DEFAULT_PATH_PROPS}
410
244
  d="M39.8,14.8 M25.1,0.2 M38.9,15.7V1.3H24.8 M38.9,1.3
411
- L16.4,23.8 M20.8,8.5H1.2v30.4h29.7V19.4"
245
+ L16.4,23.8 M20.8,8.5H1.2v30.4h29.7V19.4"
412
246
  />
413
- </svg>
247
+ </SvgElement>
414
248
  );
415
249
 
416
- const FileIcon: React.FC<{ className?: string }> = ({ className }) => (
417
- <svg
418
- className={clsx(classes.icons, className)}
419
- version="1.1"
420
- xmlns="http://www.w3.org/2000/svg"
421
- viewBox="0 0 40 40"
422
- >
250
+ const FileIcon: React.FC<SvgElementProps> = (props) => (
251
+ <SvgElement {...props}>
423
252
  <path
424
- vectorEffect="non-scaling-stroke"
425
- fill="none"
426
- strokeWidth="2"
253
+ {...DEFAULT_PATH_PROPS}
427
254
  d="M1,34.7l4.4-18.8H39l-4.3,18.8L1,34.7L1,5.3h12.1
428
- l3.5,3.8h18.1v6.9"
255
+ l3.5,3.8h18.1v6.9"
429
256
  />
430
- </svg>
257
+ </SvgElement>
431
258
  );
432
259
 
433
- const FiltersIcon: React.FC<{ className?: string }> = ({ className }) => (
434
- <svg
435
- className={clsx(classes.icons, className)}
436
- version="1.1"
437
- xmlns="http://www.w3.org/2000/svg"
438
- viewBox="0 0 40 40"
439
- >
260
+ const FiltersIcon: React.FC<SvgElementProps> = (props) => (
261
+ <SvgElement {...props}>
440
262
  <path
441
- vectorEffect="non-scaling-stroke"
442
- fill="none"
443
- strokeWidth="2"
263
+ {...DEFAULT_PATH_PROPS}
444
264
  d="M5.7,4.7h28.6l-11.3,12v13.6l-6.5,5.1v-18.4L5.7,4.7Z"
445
265
  />
446
- </svg>
266
+ </SvgElement>
447
267
  );
448
268
 
449
- const ForwardOne: React.FC<{ className?: string }> = ({ className }) => (
450
- <svg
451
- className={clsx(classes.icons, className)}
452
- version="1.1"
453
- xmlns="http://www.w3.org/2000/svg"
454
- viewBox="0 0 40 40"
455
- >
269
+ const ForwardOne: React.FC<SvgElementProps> = (props) => (
270
+ <SvgElement {...props}>
456
271
  <path
457
- vectorEffect="non-scaling-stroke"
458
- fill="none"
459
- strokeWidth="2"
272
+ {...DEFAULT_PATH_PROPS}
460
273
  d="M35.9,10.5C32.3,5.4,25.7,2,20,2C10.1,2,2,10.1,2,20s8.1,18,18,18s18-8.1,18-18 M28,10.5h7.9V2.6 M17.1,18.1
461
- c2.7-1,3.8-3.1,3.8-3.1v10.5"
274
+ c2.7-1,3.8-3.1,3.8-3.1v10.5"
462
275
  />
463
- </svg>
276
+ </SvgElement>
464
277
  );
465
278
 
466
- const ForwardTen: React.FC<{ className?: string }> = ({ className }) => (
467
- <svg
468
- className={clsx(classes.icons, className)}
469
- version="1.1"
470
- xmlns="http://www.w3.org/2000/svg"
471
- viewBox="0 0 40 40"
472
- >
279
+ const ForwardTen: React.FC<SvgElementProps> = (props) => (
280
+ <SvgElement {...props}>
473
281
  <path
474
- vectorEffect="non-scaling-stroke"
475
- fill="none"
476
- strokeWidth="2"
282
+ {...DEFAULT_PATH_PROPS}
477
283
  d="M35.9,10.5C32.3,5.4,25.7,2,20,2C10.1,2,2,10.1,2,20s8.1,18,18,18s18-8.1,18-18 M28,10.5h7.9V2.6 M12.3,18.1
478
- c2.7-1,3.8-3.1,3.8-3.1v10.5 M23.6,15.3c1.8,0,3.2,2.3,3.2,5.2s-1.4,5.2-3.2,5.2s-3.2-2.3-3.2-5.2S21.8,15.3,23.6,15.3z"
284
+ c2.7-1,3.8-3.1,3.8-3.1v10.5 M23.6,15.3c1.8,0,3.2,2.3,3.2,5.2s-1.4,5.2-3.2,5.2s-3.2-2.3-3.2-5.2S21.8,15.3,23.6,15.3z"
479
285
  />
480
- </svg>
286
+ </SvgElement>
481
287
  );
482
288
 
483
- const InfoIcon: React.FC<{ className?: string }> = ({ className }) => (
484
- <svg
485
- className={clsx(classes.icons, className)}
486
- version="1.1"
487
- xmlns="http://www.w3.org/2000/svg"
488
- viewBox="0 0 40 40"
489
- >
289
+ const InfoIcon: React.FC<SvgElementProps> = (props) => (
290
+ <SvgElement {...props}>
490
291
  <path
491
- vectorEffect="non-scaling-stroke"
492
- fill="none"
493
- strokeWidth="2"
292
+ {...DEFAULT_PATH_PROPS}
494
293
  d="M20,2c9.9,0,18,8.1,18,18s-8.1,18-18,18S2,29.9,2,20S10.1,2,20,2z M20,29.9
495
- V16.2l0,0V29.9z M20,10.1v2.6l0,0V10.1z"
294
+ V16.2l0,0V29.9z M20,10.1v2.6l0,0V10.1z"
496
295
  />
497
- </svg>
296
+ </SvgElement>
498
297
  );
499
298
 
500
- const InProgressIcon: React.FC<{ className?: string }> = ({ className }) => (
501
- <svg
502
- className={clsx(classes.icons, className)}
503
- version="1.1"
504
- xmlns="http://www.w3.org/2000/svg"
505
- viewBox="0 0 40 40"
506
- >
299
+ const InProgressIcon: React.FC<SvgElementProps> = (props) => (
300
+ <SvgElement {...props}>
507
301
  <path
508
- vectorEffect="non-scaling-stroke"
509
- fill="none"
510
- strokeWidth="2"
302
+ {...DEFAULT_PATH_PROPS}
511
303
  d="M20,2c9.9,0,18,8.1,18,18s-8.1,18-18,18S2,29.9,2,20 M3.9,12c-0.7,1.3-1.2,2.7-1.5,4.2 M16.5,13v14 M23.5,13v14
512
- M16.1,2.4c-1.5,0.3-3,0.9-4.3,1.6 M8.9,5.8c-1.2,0.9-2.3,2-3.2,3.2"
304
+ M16.1,2.4c-1.5,0.3-3,0.9-4.3,1.6 M8.9,5.8c-1.2,0.9-2.3,2-3.2,3.2"
513
305
  />
514
- </svg>
306
+ </SvgElement>
515
307
  );
516
308
 
517
- const MidlineEllipsisIcon: React.FC<{ className?: string }> = ({
518
- className,
519
- }) => (
520
- <svg
521
- className={clsx(classes.icons, className)}
522
- version="1.1"
523
- xmlns="http://www.w3.org/2000/svg"
524
- viewBox="0 0 40 40"
525
- >
309
+ const MidlineEllipsisIcon: React.FC<SvgElementProps> = (props) => (
310
+ <SvgElement {...props}>
526
311
  <path
527
- vectorEffect="non-scaling-stroke"
528
- fill="none"
529
- stroke="#1478AF"
530
- strokeWidth="2"
312
+ {...DEFAULT_PATH_PROPS}
531
313
  d="M8,20c0,1.1-0.9,2-2,2S4,21.1,4,20s0.9-2,2-2S8,18.9,8,20z M20,18
532
- c-1.1,0-2,0.9-2,2s0.9,2,2,2s2-0.9,2-2S21.1,18,20,18z M34,18c-1.1,0-2,0.9-2,2s0.9,2,2,2s2-0.9,2-2S35.1,18,34,18z"
314
+ c-1.1,0-2,0.9-2,2s0.9,2,2,2s2-0.9,2-2S21.1,18,20,18z M34,18c-1.1,0-2,0.9-2,2s0.9,2,2,2s2-0.9,2-2S35.1,18,34,18z"
533
315
  />
534
- </svg>
316
+ </SvgElement>
535
317
  );
536
318
 
537
- const MinusIcon: React.FC<{ className?: string }> = ({ className }) => (
538
- <svg
539
- className={clsx(classes.icons, className)}
540
- version="1.1"
541
- xmlns="http://www.w3.org/2000/svg"
542
- viewBox="0 0 40 40"
543
- >
544
- <path
545
- vectorEffect="non-scaling-stroke"
546
- fill="none"
547
- strokeWidth="2"
548
- d="M0,20h40"
549
- />
550
- </svg>
319
+ const MinusIcon: React.FC<SvgElementProps> = (props) => (
320
+ <SvgElement {...props}>
321
+ <path {...DEFAULT_PATH_PROPS} d="M0,20h40" />
322
+ </SvgElement>
551
323
  );
552
324
 
553
- const MuteIcon: React.FC<{ className?: string }> = ({ className }) => (
554
- <svg
555
- className={clsx(classes.icons, className)}
556
- version="1.1"
557
- xmlns="http://www.w3.org/2000/svg"
558
- viewBox="0 0 40 40"
559
- >
325
+ const MuteIcon: React.FC<SvgElementProps> = (props) => (
326
+ <SvgElement {...props}>
560
327
  <path
561
- vectorEffect="non-scaling-stroke"
562
- fill="none"
563
- stroke="#1478AF"
564
- strokeWidth="2"
328
+ {...DEFAULT_PATH_PROPS}
565
329
  d="M22,7.5v25L13.5,25h-9V15h9L22,7.5z M26.4,24.6c1.8-0.8,3-2.6,3-4.7c0-1.9-1.1-3.6-2.6-4.5 M28.7,30.6
566
- c4-1.9,6.8-6,6.8-10.7c0-4.5-2.6-8.5-6.3-10.5"
330
+ c4-1.9,6.8-6,6.8-10.7c0-4.5-2.6-8.5-6.3-10.5"
567
331
  />
568
- </svg>
332
+ </SvgElement>
569
333
  );
570
334
 
571
- const NavigateRightIcon: React.FC<{ className?: string }> = ({ className }) => (
572
- <svg
573
- className={clsx(classes.icons, className)}
574
- version="1.1"
575
- xmlns="http://www.w3.org/2000/svg"
576
- viewBox="0 0 40 40"
577
- >
335
+ const NavigateRightIcon: React.FC<SvgElementProps> = (props) => (
336
+ <SvgElement {...props}>
578
337
  <path
579
- vectorEffect="non-scaling-stroke"
580
- fill="none"
581
- stroke="#FFFFFF"
582
- strokeWidth="2"
338
+ {...DEFAULT_PATH_PROPS}
583
339
  d="M22.8,1.1l15.4,15.4L24.1,30.6 M38.2,16.5H4.4v23.1"
584
340
  />
585
- </svg>
341
+ </SvgElement>
586
342
  );
587
343
 
588
- const PauseIcon: React.FC<{ className?: string }> = ({ className }) => (
589
- <svg
590
- className={clsx(classes.icons, className)}
591
- version="1.1"
592
- xmlns="http://www.w3.org/2000/svg"
593
- viewBox="0 0 40 40"
594
- >
344
+ const PauseIcon: React.FC<SvgElementProps> = (props) => (
345
+ <SvgElement {...props}>
595
346
  <path
596
- fill="none"
597
- strokeWidth="2"
347
+ {...DEFAULT_PATH_PROPS}
598
348
  d="M4.5,2h10.3v36H4.5V2z M25.2,2h10.3v36H25.2V2z"
599
349
  />
600
- </svg>
601
- );
602
-
603
- const PlayIcon: React.FC<{ className?: string }> = ({ className }) => (
604
- <svg
605
- className={clsx(classes.icons, className)}
606
- version="1.1"
607
- xmlns="http://www.w3.org/2000/svg"
608
- viewBox="0 0 40 40"
609
- >
610
- <path fill="none" strokeWidth="2" d="M33,20L7,35.4V4.6L33,20z" />
611
- </svg>
350
+ </SvgElement>
612
351
  );
613
352
 
614
- const PlusIcon: React.FC<{ className?: string }> = ({ className }) => (
615
- <svg
616
- className={clsx(classes.icons, className)}
617
- version="1.1"
618
- xmlns="http://www.w3.org/2000/svg"
619
- viewBox="0 0 40 40"
620
- >
353
+ const PlayIcon: React.FC<SvgElementProps> = (props) => (
354
+ <SvgElement {...props}>
621
355
  <path
622
- vectorEffect="non-scaling-stroke"
623
356
  fill="none"
624
357
  strokeWidth="2"
625
- d="M0,20h40 M20,40V0"
358
+ vectorEffect="non-scaling-stroke"
359
+ d="M33,20L7,35.4V4.6L33,20z"
626
360
  />
627
- </svg>
361
+ </SvgElement>
628
362
  );
629
363
 
630
- const PublishIcon: React.FC<{ className?: string }> = ({ className }) => (
631
- <svg
632
- className={clsx(classes.icons, className)}
633
- version="1.1"
634
- xmlns="http://www.w3.org/2000/svg"
635
- viewBox="0 0 40 40"
636
- >
364
+ const PlusIcon: React.FC<SvgElementProps> = (props) => (
365
+ <SvgElement {...props}>
366
+ <path {...DEFAULT_PATH_PROPS} d="M0,20h40 M20,40V0" />
367
+ </SvgElement>
368
+ );
369
+
370
+ const PublishIcon: React.FC<SvgElementProps> = (props) => (
371
+ <SvgElement {...props}>
637
372
  <path
638
- vectorEffect="non-scaling-stroke"
639
- fill="none"
640
- strokeWidth="2"
373
+ {...DEFAULT_PATH_PROPS}
641
374
  d="M1,27v8.6h38V27 M4.6,10.6l5.6-6.3l6.2,6.3 M10.2,4.4v24 M23.6,10.6l5.6-6.3l6.2,6.3 M29.2,4.4v24"
642
375
  />
643
- </svg>
376
+ </SvgElement>
644
377
  );
645
378
 
646
- const QuickEditIcon: React.FC<{ className?: string }> = ({ className }) => (
647
- <svg
648
- className={clsx(classes.icons, className)}
649
- version="1.1"
650
- xmlns="http://www.w3.org/2000/svg"
651
- viewBox="0 0 40 40"
652
- >
379
+ const QuickEditIcon: React.FC<SvgElementProps> = (props) => (
380
+ <SvgElement {...props}>
653
381
  <path
654
- vectorEffect="non-scaling-stroke"
655
- fill="none"
656
- strokeWidth="2"
382
+ {...DEFAULT_PATH_PROPS}
657
383
  d="M11.8,29.7l-8.8,2.6,2.6-8.8,15.8-15.8,6.2,6.2-15.8,15.8h0ZM27.5,19.7h10.5M22.7,24.3h8.4M18,29h6.2M5.6,23.5l6.2,6.2"
658
384
  />
659
- </svg>
385
+ </SvgElement>
660
386
  );
661
387
 
662
- const QuickEditStationIcon: React.FC<{ className?: string }> = ({
663
- className,
664
- }) => (
665
- <svg
666
- className={clsx(classes.icons, className)}
667
- version="1.1"
668
- xmlns="http://www.w3.org/2000/svg"
669
- viewBox="0 0 40 40"
670
- >
388
+ const QuickEditStationIcon: React.FC<SvgElementProps> = (props) => (
389
+ <SvgElement {...props}>
671
390
  <path
672
- vectorEffect="non-scaling-stroke"
673
- fill="none"
674
- strokeWidth="2"
391
+ {...DEFAULT_PATH_PROPS}
675
392
  d="M7.5,4.5h25v31H7.5V4.5ZM17.82,13.14h8.87M12.98,13.14h3.07M12.98,17.71h3.07M12.98,22.29h3.07M12.98,26.86h3.07M17.82,17.71h8.87M17.82,26.86h8.87M17.82,22.29h4.84"
676
393
  />
677
- </svg>
394
+ </SvgElement>
678
395
  );
679
396
 
680
- const RemoveFilterIcon: React.FC<{ className?: string }> = ({ className }) => (
681
- <svg
682
- className={clsx(classes.icons, className)}
683
- version="1.1"
684
- xmlns="http://www.w3.org/2000/svg"
685
- viewBox="0 0 40 40"
686
- >
397
+ const RemoveFilterIcon: React.FC<SvgElementProps> = (props) => (
398
+ <SvgElement {...props}>
687
399
  <path
688
- vectorEffect="non-scaling-stroke"
689
- fill="none"
690
- stroke="#1478AF"
691
- strokeWidth="2"
400
+ {...DEFAULT_PATH_PROPS}
692
401
  d="M13.7,16.9L3,4.6h28.6l-11.3,12v13.6l-6.5,5.1V16.9z M32.9,22.9l6.1,6.1L32.9,22.9z M32.9,22.9
693
- l-6.1-6.1L32.9,22.9l-6.1,6.1L32.9,22.9z M32.9,22.9l6.1-6.1L32.9,22.9z"
402
+ l-6.1-6.1L32.9,22.9l-6.1,6.1L32.9,22.9z M32.9,22.9l6.1-6.1L32.9,22.9z"
694
403
  />
695
- </svg>
404
+ </SvgElement>
696
405
  );
697
406
 
698
- const ReplaceIcon: React.FC<{ className?: string }> = ({ className }) => (
699
- <svg
700
- className={clsx(classes.icons, className)}
701
- version="1.1"
702
- xmlns="http://www.w3.org/2000/svg"
703
- viewBox="0 0 40 40"
704
- >
407
+ const ReplaceIcon: React.FC<SvgElementProps> = (props) => (
408
+ <SvgElement {...props}>
705
409
  <path
706
- vectorEffect="non-scaling-stroke"
707
- fill="none"
708
- stroke="#000000"
709
- strokeWidth="2"
410
+ {...DEFAULT_PATH_PROPS}
710
411
  d="M25.6,6.4l6.2,6.2l-6.2,6.2
711
- M31.8,12.6H8.2 M14.4,21.2l-6.2,6.2l6.2,6.2 M8.2,27.4h23.6"
712
- ></path>
713
- </svg>
412
+ M31.8,12.6H8.2 M14.4,21.2l-6.2,6.2l6.2,6.2 M8.2,27.4h23.6"
413
+ />
414
+ </SvgElement>
714
415
  );
715
416
 
716
- const RetryIcon: React.FC<{ className?: string }> = ({ className }) => (
717
- <svg
718
- className={clsx(classes.icons, className)}
719
- version="1.1"
720
- xmlns="http://www.w3.org/2000/svg"
721
- viewBox="0 0 40 40"
722
- >
417
+ const RetryIcon: React.FC<SvgElementProps> = (props) => (
418
+ <SvgElement {...props}>
723
419
  <path
724
- vectorEffect="non-scaling-stroke"
725
- fill="none"
726
- strokeWidth="2"
420
+ {...DEFAULT_PATH_PROPS}
727
421
  d="M9.5,27.3c-4.1-5.8-2.6-13.8,3.1-17.8c4.5-3.2,10.6-3.1,15,0.2 M11.9,18.8l-2.4,8.5L1,24.8 M27,21.4l4.2-7.8
728
- l7.8,4.2 M31.2,13.6c3.6,6.1,1.5,13.9-4.6,17.5c-4.1,2.4-9.2,2.3-13.2-0.2"
422
+ l7.8,4.2 M31.2,13.6c3.6,6.1,1.5,13.9-4.6,17.5c-4.1,2.4-9.2,2.3-13.2-0.2"
729
423
  />
730
- </svg>
424
+ </SvgElement>
731
425
  );
732
426
 
733
- const SaveIcon: React.FC<{ className?: string }> = ({ className }) => (
734
- <svg
735
- className={clsx(classes.icons, className)}
736
- version="1.1"
737
- xmlns="http://www.w3.org/2000/svg"
738
- viewBox="0 0 40 40"
739
- >
740
- <path
741
- vectorEffect="non-scaling-stroke"
742
- fill="none"
743
- strokeWidth="2"
744
- d="M15.8,30.1c0,0-6.2,0.1-7.6-0.1c-3.3-0.4-5.8-3.3-5.6-6.7c-0.2-6,6.9-6.6,6.9-6.6
745
- s-0.7-6.4,5-7.5c3.2-0.8,6.5,0.8,7.8,3.8c1.5-0.6,3.2-0.6,4.7,0.2c1.3,0.8,2.2,2.1,2.4,3.6c0,0,8-0.5,8.1,6.6c0,7.1-6.7,6.7-6.7,6.7
746
- h-6.5"
747
- />
748
- <path
749
- vectorEffect="non-scaling-stroke"
750
- fill="none"
751
- strokeWidth="2"
752
- d="M20.1,33V19.4 M15.7,23.8l4.3-4.3l4.3,4.3"
753
- />
754
- </svg>
427
+ const SaveIcon: React.FC<SvgElementProps> = (props) => (
428
+ <SvgElement {...props}>
429
+ <>
430
+ <path
431
+ {...DEFAULT_PATH_PROPS}
432
+ d="M15.8,30.1c0,0-6.2,0.1-7.6-0.1c-3.3-0.4-5.8-3.3-5.6-6.7c-0.2-6,6.9-6.6,6.9-6.6
433
+ s-0.7-6.4,5-7.5c3.2-0.8,6.5,0.8,7.8,3.8c1.5-0.6,3.2-0.6,4.7,0.2c1.3,0.8,2.2,2.1,2.4,3.6c0,0,8-0.5,8.1,6.6c0,7.1-6.7,6.7-6.7,6.7
434
+ h-6.5"
435
+ />
436
+ <path
437
+ {...DEFAULT_PATH_PROPS}
438
+ d="M20.1,33V19.4 M15.7,23.8l4.3-4.3l4.3,4.3"
439
+ />
440
+ </>
441
+ </SvgElement>
755
442
  );
756
443
 
757
- const SnapshotIcon: React.FC<{ className?: string }> = ({ className }) => (
758
- <svg
759
- className={clsx(classes.icons, className)}
760
- version="1.1"
761
- xmlns="http://www.w3.org/2000/svg"
762
- viewBox="0 0 40 40"
763
- >
444
+ const SnapshotIcon: React.FC<SvgElementProps> = (props) => (
445
+ <SvgElement {...props}>
764
446
  <path
765
- vectorEffect="non-scaling-stroke"
766
- fill="none"
767
- strokeWidth="2"
447
+ {...DEFAULT_PATH_PROPS}
768
448
  d="M29.5,21c0,5.2-4.3,9.5-9.5,9.5s-9.5-4.3-9.5-9.5s4.3-9.5,9.5-9.5S29.5,15.8,29.5,21z M37.9,9.1h-8.1l-2.3-4.2
769
- H12.6l-2.3,4.2H2.1C1.5,9.1,1,9.6,1,10.3v23.6C1,34.5,1.5,35,2.1,35h35.7c0.6,0,1.1-0.5,1.1-1.1V10.3C39,9.6,38.5,9.1,37.9,9.1z
770
- M34.8,13.4h-1.5v1.4h1.5V13.4z M14.1,19.8l5.4,5.4l8.5-9.3"
449
+ H12.6l-2.3,4.2H2.1C1.5,9.1,1,9.6,1,10.3v23.6C1,34.5,1.5,35,2.1,35h35.7c0.6,0,1.1-0.5,1.1-1.1V10.3C39,9.6,38.5,9.1,37.9,9.1z
450
+ M34.8,13.4h-1.5v1.4h1.5V13.4z M14.1,19.8l5.4,5.4l8.5-9.3"
771
451
  />
772
- </svg>
452
+ </SvgElement>
773
453
  );
774
454
 
775
- const StopIcon: React.FC<{ className?: string }> = ({ className }) => (
776
- <svg
777
- className={clsx(classes.icons, className)}
778
- version="1.1"
779
- xmlns="http://www.w3.org/2000/svg"
780
- viewBox="0 0 40 40"
781
- >
782
- <path fill="none" strokeWidth="2" d="M5,5h30v30H5V5z" />
783
- </svg>
455
+ const StopIcon: React.FC<SvgElementProps> = (props) => (
456
+ <SvgElement {...props}>
457
+ <path {...DEFAULT_PATH_PROPS} d="M5,5h30v30H5V5z" />
458
+ </SvgElement>
784
459
  );
785
460
 
786
- const SubtitlesIcon: React.FC<{ className?: string }> = ({ className }) => (
787
- <svg
788
- className={clsx(classes.icons, className)}
789
- version="1.1"
790
- xmlns="http://www.w3.org/2000/svg"
791
- viewBox="0 0 40 40"
792
- >
461
+ const SubtitlesIcon: React.FC<SvgElementProps> = (props) => (
462
+ <SvgElement {...props}>
793
463
  <path
794
- vectorEffect="non-scaling-stroke"
795
- fill="none"
796
- stroke="#B7B7B7"
797
- strokeWidth="2"
464
+ {...DEFAULT_PATH_PROPS}
798
465
  d="M20,2c9.9,0,18,8.1,18,18s-8.1,18-18,18S2,29.9,2,20,10.1,2,20,2ZM10.1,17.7h19.8M10.1,24.3h5.9M19.5,24.3h10.4"
799
466
  />
800
- </svg>
467
+ </SvgElement>
801
468
  );
802
469
 
803
- const SuccessIcon: React.FC<{ className?: string }> = ({ className }) => (
804
- <svg
805
- className={clsx(classes.icons, className)}
806
- version="1.1"
807
- xmlns="http://www.w3.org/2000/svg"
808
- viewBox="0 0 40 40"
809
- >
470
+ const SuccessIcon: React.FC<SvgElementProps> = (props) => (
471
+ <SvgElement {...props}>
810
472
  <path
811
- vectorEffect="non-scaling-stroke"
812
- fill="none"
813
- strokeWidth="2"
473
+ {...DEFAULT_PATH_PROPS}
814
474
  d="M20,2c9.9,0,18,8.1,18,18s-8.1,18-18,18S2,29.9,2,20S10.1,2,20,2z M29,13.5
815
- L17.8,26.3L11,19.1"
475
+ L17.8,26.3L11,19.1"
816
476
  />
817
- </svg>
477
+ </SvgElement>
818
478
  );
819
479
 
820
- const UnarchiveIcon: React.FC<{ className?: string }> = ({ className }) => (
821
- <svg
822
- className={clsx(classes.icons, className)}
823
- version="1.1"
824
- xmlns="http://www.w3.org/2000/svg"
825
- viewBox="0 0 40 40"
826
- >
480
+ const UnarchiveIcon: React.FC<SvgElementProps> = (props) => (
481
+ <SvgElement {...props}>
827
482
  <path
828
- vectorEffect="non-scaling-stroke"
829
- fill="none"
830
- stroke="#FFFFFF"
831
- strokeWidth="2"
483
+ {...DEFAULT_PATH_PROPS}
832
484
  d="M27.6,16.2H39V39H1.1V16.1h11.6 M30.6,11.1L20.3,2L10,11.1 M20.3,2v31.2"
833
485
  />
834
- </svg>
486
+ </SvgElement>
835
487
  );
836
488
 
837
- const UndoIcon: React.FC<{ className?: string }> = ({ className }) => (
838
- <svg
839
- className={clsx(classes.icons, className)}
840
- version="1.1"
841
- xmlns="http://www.w3.org/2000/svg"
842
- viewBox="0 0 40 40"
843
- >
489
+ const UndoIcon: React.FC<SvgElementProps> = (props) => (
490
+ <SvgElement {...props}>
844
491
  <path
845
- vectorEffect="non-scaling-stroke"
846
- fill="none"
847
- strokeWidth="2"
492
+ {...DEFAULT_PATH_PROPS}
848
493
  d="M2,11.8h36v25.8H3.2 M11.4,2.4L2,11.8l9.4,9.4"
849
494
  />
850
- </svg>
495
+ </SvgElement>
851
496
  );
852
497
 
853
- const UnmuteIcon: React.FC<{ className?: string }> = ({ className }) => (
854
- <svg
855
- className={clsx(classes.icons, className)}
856
- version="1.1"
857
- xmlns="http://www.w3.org/2000/svg"
858
- viewBox="0 0 40 40"
859
- >
498
+ const UnmuteIcon: React.FC<SvgElementProps> = (props) => (
499
+ <SvgElement {...props}>
860
500
  <path
861
- vectorEffect="non-scaling-stroke"
862
- fill="none"
863
- stroke="#1478AF"
864
- strokeWidth="2"
501
+ {...DEFAULT_PATH_PROPS}
865
502
  d="M22,7.5v25L13.4,25h-9V15h9L22,7.5z M26.2,14.9l9.4,9.4 M35.6,14.9l-9.4,9.4"
866
503
  />
867
- </svg>
504
+ </SvgElement>
868
505
  );
869
506
 
870
- const UnpublishIcon: React.FC<{ className?: string }> = ({ className }) => (
871
- <svg
872
- className={clsx(classes.icons, className)}
873
- version="1.1"
874
- xmlns="http://www.w3.org/2000/svg"
875
- viewBox="0 0 40 40"
876
- >
507
+ const UnpublishIcon: React.FC<SvgElementProps> = (props) => (
508
+ <SvgElement {...props}>
877
509
  <path
878
- vectorEffect="non-scaling-stroke"
879
- fill="none"
880
- strokeWidth="2"
510
+ {...DEFAULT_PATH_PROPS}
881
511
  d="M26.1,7.6l-6.2-5.5l-6.2,5.5 M19.9,2v14.8 M9.1,16.2L30.9,38 M30.9,16.2L9.1,38"
882
512
  />
883
- </svg>
513
+ </SvgElement>
884
514
  );
885
515
 
886
- const UploadIcon: React.FC<{ className?: string }> = ({ className }) => (
887
- <svg
888
- className={clsx(classes.icons, className)}
889
- version="1.1"
890
- xmlns="http://www.w3.org/2000/svg"
891
- viewBox="0 0 40 40"
892
- >
516
+ const UploadIcon: React.FC<SvgElementProps> = (props) => (
517
+ <SvgElement {...props}>
893
518
  <path
894
- vectorEffect="non-scaling-stroke"
895
- fill="none"
896
- strokeWidth="2"
519
+ {...DEFAULT_PATH_PROPS}
897
520
  d="M2,1.4h36 M20.1,39.4V8.7 M29.8,17.3l-9.7-8.6l-9.7,8.6"
898
521
  />
899
- </svg>
522
+ </SvgElement>
900
523
  );
901
524
 
902
- const WarningIcon: React.FC<{ className?: string }> = ({ className }) => (
903
- <svg
904
- className={clsx(classes.icons, className)}
905
- version="1.1"
906
- xmlns="http://www.w3.org/2000/svg"
907
- viewBox="0 0 40 40"
908
- >
525
+ const WarningIcon: React.FC<SvgElementProps> = (props) => (
526
+ <SvgElement {...props}>
909
527
  <path
910
- vectorEffect="non-scaling-stroke"
911
- fill="none"
912
- strokeWidth="2"
528
+ {...DEFAULT_PATH_PROPS}
913
529
  d="M20,2c9.9,0,18,8.1,18,18s-8.1,18-18,18S2,29.9,2,20S10.1,2,20,2z M20,10.1v13.7l0,0V10.1z M20,29.9v-2.6l0,0
914
- V29.9z"
915
- ></path>
916
- </svg>
530
+ V29.9z"
531
+ />
532
+ </SvgElement>
917
533
  );
918
534
 
919
- const VideoIcon: React.FC<{ className?: string }> = ({ className }) => (
920
- <svg
921
- className={clsx(classes.icons, className)}
922
- version="1.1"
923
- xmlns="http://www.w3.org/2000/svg"
924
- viewBox="0 0 40 40"
925
- >
535
+ const VideoIcon: React.FC<SvgElementProps> = (props) => (
536
+ <SvgElement {...props}>
926
537
  <path
927
- vectorEffect="non-scaling-stroke"
928
- fill="none"
929
- stroke="#B7B7B7"
930
- strokeWidth="2"
538
+ {...DEFAULT_PATH_PROPS}
931
539
  d="M20,2c9.9,0,18,8.1,18,18s-8.1,18-18,18S2,29.9,2,20,10.1,2,20,2ZM15.9,14.2l10.2,5.7-10.2,5.8v-11.5Z"
932
540
  />
933
- </svg>
541
+ </SvgElement>
934
542
  );
935
543
 
936
- const XIcon: React.FC<{ className?: string }> = ({ className }) => (
937
- <svg
938
- className={clsx(classes.icons, className)}
939
- version="1.1"
940
- xmlns="http://www.w3.org/2000/svg"
941
- viewBox="0 0 40 40"
942
- >
943
- <path
944
- vectorEffect="non-scaling-stroke"
945
- fill="none"
946
- strokeWidth="2"
947
- d="M2.4,2.4l35.3,35.3 M37.6,2.4L2.4,37.6"
948
- />
949
- </svg>
544
+ const XIcon: React.FC<SvgElementProps> = (props) => (
545
+ <SvgElement {...props}>
546
+ <path {...DEFAULT_PATH_PROPS} d="M2.4,2.4l35.3,35.3 M37.6,2.4L2.4,37.6" />
547
+ </SvgElement>
950
548
  );
951
549
 
952
- /**
953
- * Default SVG icons. A 'className' prop can also be passed in.
954
- * @example
955
- * <Icons icon={action.icon} />
956
- */
957
- export const Icons: React.FC<IconsProps> = ({ icon, className }) => {
958
- const icons: { [key in IconName]: JSX.Element } = {
959
- [IconName.Axi]: <AxiIcon className={className} />,
960
- [IconName.Archive]: <ArchiveIcon className={className} />,
961
- [IconName.Audio]: <AudioIcon className={className} />,
962
- [IconName.DescriptiveAudio]: <DescriptiveAudioIcon className={className} />,
963
- [IconName.ThumbnailsIcon]: <ThumbnailsIcon className={className} />,
964
- [IconName.BackwardOne]: <BackwardOne className={className} />,
965
- [IconName.BackwardTen]: <BackwardTen className={className} />,
966
- [IconName.Block]: <BlockIcon className={className} />,
967
- [IconName.Bulk]: <BulkIcon className={className} />,
968
- [IconName.BulkEdit]: <BulkEditIcon className={className} />,
969
- [IconName.Calendar]: <CalendarIcon className={className} />,
970
- [IconName.Checkmark]: <CheckmarkIcon className={className} />,
971
- [IconName.ChevronDown]: <ChevronDownIcon className={className} />,
972
- [IconName.ChevronLeft]: <ChevronLeftIcon className={className} />,
973
- [IconName.ChevronRight]: <ChevronRightIcon className={className} />,
974
- [IconName.ChevronUp]: <ChevronUpIcon className={className} />,
975
- [IconName.ClosedCaption]: <ClosedCaptionIcon className={className} />,
976
- [IconName.Copy]: <CopyIcon className={className} />,
977
- [IconName.Delete]: <DeleteIcon className={className} />,
978
- [IconName.Details]: <DetailsIcon className={className} />,
979
- [IconName.Drag]: <DragIcon className={className} />,
980
- [IconName.Ellipsis]: <EllipsisIcon className={className} />,
981
- [IconName.Error]: <ErrorIcon className={className} />,
982
- [IconName.External]: <ExternalIcon className={className} />,
983
- [IconName.File]: <FileIcon className={className} />,
984
- [IconName.Filters]: <FiltersIcon className={className} />,
985
- [IconName.ForwardOne]: <ForwardOne className={className} />,
986
- [IconName.ForwardTen]: <ForwardTen className={className} />,
987
- [IconName.Info]: <InfoIcon className={className} />,
988
- [IconName.InProgress]: <InProgressIcon className={className} />,
989
- [IconName.MidlineEllipsis]: <MidlineEllipsisIcon className={className} />,
990
- [IconName.Minus]: <MinusIcon className={className} />,
991
- [IconName.Mute]: <MuteIcon className={className} />,
992
- [IconName.NavigateRight]: <NavigateRightIcon className={className} />,
993
- [IconName.Pause]: <PauseIcon className={className} />,
994
- [IconName.Play]: <PlayIcon className={className} />,
995
- [IconName.Plus]: <PlusIcon className={className} />,
996
- [IconName.Publish]: <PublishIcon className={className} />,
997
- [IconName.QuickEdit]: <QuickEditIcon className={className} />,
998
- [IconName.QuickEditStation]: <QuickEditStationIcon className={className} />,
999
- [IconName.RemoveFilter]: <RemoveFilterIcon className={className} />,
1000
- [IconName.Replace]: <ReplaceIcon className={className} />,
1001
- [IconName.Retry]: <RetryIcon className={className} />,
1002
- [IconName.Save]: <SaveIcon className={className} />,
1003
- [IconName.Snapshot]: <SnapshotIcon className={className} />,
1004
- [IconName.Stop]: <StopIcon className={className} />,
1005
- [IconName.Subtitles]: <SubtitlesIcon className={className} />,
1006
- [IconName.Success]: <SuccessIcon className={className} />,
1007
- [IconName.Unarchive]: <UnarchiveIcon className={className} />,
1008
- [IconName.Undo]: <UndoIcon className={className} />,
1009
- [IconName.Unmute]: <UnmuteIcon className={className} />,
1010
- [IconName.Unpublish]: <UnpublishIcon className={className} />,
1011
- [IconName.Upload]: <UploadIcon className={className} />,
1012
- [IconName.Video]: <VideoIcon className={className} />,
1013
- [IconName.Warning]: <WarningIcon className={className} />,
1014
- [IconName.X]: <XIcon className={className} />,
550
+ export interface IconsProps extends SvgElementProps {
551
+ icon?: IconName;
552
+ }
553
+
554
+ export const Icons: React.FC<IconsProps> = ({ icon, className, ...props }) => {
555
+ const iconComponents = {
556
+ [IconName.Axi]: AxiIcon,
557
+ [IconName.Archive]: ArchiveIcon,
558
+ [IconName.Audio]: AudioIcon,
559
+ [IconName.DescriptiveAudio]: DescriptiveAudioIcon,
560
+ [IconName.ThumbnailsIcon]: ThumbnailsIcon,
561
+ [IconName.BackwardOne]: BackwardOne,
562
+ [IconName.BackwardTen]: BackwardTen,
563
+ [IconName.Block]: BlockIcon,
564
+ [IconName.Bulk]: BulkIcon,
565
+ [IconName.BulkEdit]: BulkEditIcon,
566
+ [IconName.Calendar]: CalendarIcon,
567
+ [IconName.Checkmark]: CheckmarkIcon,
568
+ [IconName.ChevronDown]: ChevronDownIcon,
569
+ [IconName.ChevronLeft]: ChevronLeftIcon,
570
+ [IconName.ChevronRight]: ChevronRightIcon,
571
+ [IconName.ChevronUp]: ChevronUpIcon,
572
+ [IconName.ClosedCaption]: ClosedCaptionIcon,
573
+ [IconName.Copy]: CopyIcon,
574
+ [IconName.Delete]: DeleteIcon,
575
+ [IconName.Details]: DetailsIcon,
576
+ [IconName.Drag]: DragIcon,
577
+ [IconName.Ellipsis]: EllipsisIcon,
578
+ [IconName.Error]: ErrorIcon,
579
+ [IconName.External]: ExternalIcon,
580
+ [IconName.File]: FileIcon,
581
+ [IconName.Filters]: FiltersIcon,
582
+ [IconName.ForwardOne]: ForwardOne,
583
+ [IconName.ForwardTen]: ForwardTen,
584
+ [IconName.Info]: InfoIcon,
585
+ [IconName.InProgress]: InProgressIcon,
586
+ [IconName.MidlineEllipsis]: MidlineEllipsisIcon,
587
+ [IconName.Minus]: MinusIcon,
588
+ [IconName.Mute]: MuteIcon,
589
+ [IconName.NavigateRight]: NavigateRightIcon,
590
+ [IconName.Pause]: PauseIcon,
591
+ [IconName.Play]: PlayIcon,
592
+ [IconName.Plus]: PlusIcon,
593
+ [IconName.Publish]: PublishIcon,
594
+ [IconName.QuickEdit]: QuickEditIcon,
595
+ [IconName.QuickEditStation]: QuickEditStationIcon,
596
+ [IconName.RemoveFilter]: RemoveFilterIcon,
597
+ [IconName.Replace]: ReplaceIcon,
598
+ [IconName.Retry]: RetryIcon,
599
+ [IconName.Save]: SaveIcon,
600
+ [IconName.Snapshot]: SnapshotIcon,
601
+ [IconName.Stop]: StopIcon,
602
+ [IconName.Subtitles]: SubtitlesIcon,
603
+ [IconName.Success]: SuccessIcon,
604
+ [IconName.Unarchive]: UnarchiveIcon,
605
+ [IconName.Undo]: UndoIcon,
606
+ [IconName.Unmute]: UnmuteIcon,
607
+ [IconName.Unpublish]: UnpublishIcon,
608
+ [IconName.Upload]: UploadIcon,
609
+ [IconName.Video]: VideoIcon,
610
+ [IconName.Warning]: WarningIcon,
611
+ [IconName.X]: XIcon,
1015
612
  };
1016
613
 
1017
- const actionIcon: JSX.Element =
1018
- icon !== undefined ? (
1019
- icons[icon]
1020
- ) : (
1021
- <svg
1022
- className={clsx(classes.icons, className)}
1023
- version="1.1"
1024
- xmlns="http://www.w3.org/2000/svg"
1025
- viewBox="0 0 40 40"
1026
- ></svg>
1027
- );
1028
-
1029
- return actionIcon;
614
+ const componentClassName = clsx(classes.icons, className);
615
+
616
+ if (icon === undefined) {
617
+ return <SvgElement className={componentClassName} {...props} />;
618
+ }
619
+
620
+ const IconComponent = iconComponents[icon];
621
+ return <IconComponent className={componentClassName} {...props} />;
1030
622
  };