@zohoim/chat-components 0.0.1-cx

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 (277) hide show
  1. package/README.md +9 -0
  2. package/es/ActionIcon/ActionIcon.js +82 -0
  3. package/es/ActionIcon/css/ActionIcon.module.css +8 -0
  4. package/es/ActionIcon/index.js +1 -0
  5. package/es/ActionIcon/props/defaultProps.js +8 -0
  6. package/es/ActionIcon/props/propTypes.js +17 -0
  7. package/es/ActionIconWrapper/ActionIconWrapper.js +61 -0
  8. package/es/ActionIconWrapper/css/ActionIconWrapper.module.css +32 -0
  9. package/es/ActionIconWrapper/css/cssJSLogic.js +14 -0
  10. package/es/ActionIconWrapper/index.js +1 -0
  11. package/es/ActionIconWrapper/props/defaultProps.js +6 -0
  12. package/es/ActionIconWrapper/props/propTypes.js +12 -0
  13. package/es/AttachmentBubble/AttachmentBubble.js +87 -0
  14. package/es/AttachmentBubble/css/AttachmentBubble.module.css +55 -0
  15. package/es/AttachmentBubble/css/cssJSLogic.js +18 -0
  16. package/es/AttachmentBubble/index.js +1 -0
  17. package/es/AttachmentBubble/props/defaultProps.js +8 -0
  18. package/es/AttachmentBubble/props/propTypes.js +19 -0
  19. package/es/AttachmentBubbleInfo/AttachmentBubbleInfo.js +48 -0
  20. package/es/AttachmentBubbleInfo/css/AttachmentBubbleInfo.module.css +39 -0
  21. package/es/AttachmentBubbleInfo/css/cssJSLogic.js +13 -0
  22. package/es/AttachmentBubbleInfo/index.js +1 -0
  23. package/es/AttachmentBubbleInfo/props/defaultProps.js +6 -0
  24. package/es/AttachmentBubbleInfo/props/propTypes.js +9 -0
  25. package/es/AttachmentIcon/AttachmentIcon.js +60 -0
  26. package/es/AttachmentIcon/css/AttachmentIcon.module.css +8 -0
  27. package/es/AttachmentIcon/css/cssJSLogic.js +13 -0
  28. package/es/AttachmentIcon/index.js +1 -0
  29. package/es/AttachmentIcon/props/defaultProps.js +8 -0
  30. package/es/AttachmentIcon/props/propTypes.js +21 -0
  31. package/es/AttachmentIcon/utils/getAttachmentIconComponent.js +81 -0
  32. package/es/Audio/Audio.js +38 -0
  33. package/es/Audio/css/Audio.module.css +7 -0
  34. package/es/Audio/index.js +1 -0
  35. package/es/Audio/props/defaultProps.js +6 -0
  36. package/es/Audio/props/propTypes.js +8 -0
  37. package/es/AudioBubble/AudioBubble.js +56 -0
  38. package/es/AudioBubble/css/AudioBubble.module.css +4 -0
  39. package/es/AudioBubble/index.js +1 -0
  40. package/es/AudioBubble/props/defaultProps.js +7 -0
  41. package/es/AudioBubble/props/propTypes.js +16 -0
  42. package/es/Fonts/puviFont.module.css +62 -0
  43. package/es/ImageBubble/ImageBubble.js +70 -0
  44. package/es/ImageBubble/css/ImageBubble.module.css +63 -0
  45. package/es/ImageBubble/css/cssJSLogic.js +15 -0
  46. package/es/ImageBubble/index.js +1 -0
  47. package/es/ImageBubble/props/defaultProps.js +6 -0
  48. package/es/ImageBubble/props/propTypes.js +13 -0
  49. package/es/LazyLoadImage/LazyLoadImage.js +37 -0
  50. package/es/LazyLoadImage/css/LazyLoadImage.module.css +5 -0
  51. package/es/LazyLoadImage/index.js +1 -0
  52. package/es/LazyLoadImage/props/defaultProps.js +6 -0
  53. package/es/LazyLoadImage/props/propTypes.js +8 -0
  54. package/es/LocationBubble/LocationBubble.js +62 -0
  55. package/es/LocationBubble/css/LocationBubble.module.css +57 -0
  56. package/es/LocationBubble/css/cssJSLogic.js +13 -0
  57. package/es/LocationBubble/images/location.png +0 -0
  58. package/es/LocationBubble/index.js +1 -0
  59. package/es/LocationBubble/props/defaultProps.js +6 -0
  60. package/es/LocationBubble/props/propTypes.js +8 -0
  61. package/es/MediaBubbleWrapper/MediaBubbleWrapper.js +62 -0
  62. package/es/MediaBubbleWrapper/css/MediaBubbleWrapper.module.css +7 -0
  63. package/es/MediaBubbleWrapper/index.js +1 -0
  64. package/es/MediaBubbleWrapper/props/defaultProps.js +7 -0
  65. package/es/MediaBubbleWrapper/props/propTypes.js +17 -0
  66. package/es/Message/Message.js +126 -0
  67. package/es/Message/index.js +1 -0
  68. package/es/Message/props/defaultProps.js +12 -0
  69. package/es/Message/props/propTypes.js +41 -0
  70. package/es/MessageAction/MessageAction.js +60 -0
  71. package/es/MessageAction/index.js +1 -0
  72. package/es/MessageAction/props/defaultProps.js +8 -0
  73. package/es/MessageAction/props/propTypes.js +21 -0
  74. package/es/MessageActions/MessageActions.js +120 -0
  75. package/es/MessageActions/css/MessageActions.module.css +24 -0
  76. package/es/MessageActions/index.js +1 -0
  77. package/es/MessageActions/props/defaultProps.js +10 -0
  78. package/es/MessageActions/props/propTypes.js +25 -0
  79. package/es/MessageActionsMore/MessageActionsMore.js +101 -0
  80. package/es/MessageActionsMore/css/MessageActionsMore.module.css +23 -0
  81. package/es/MessageActionsMore/index.js +1 -0
  82. package/es/MessageActionsMore/props/defaultProps.js +9 -0
  83. package/es/MessageActionsMore/props/propTypes.js +13 -0
  84. package/es/MessageActionsWrapper/MessageActionsWrapper.js +68 -0
  85. package/es/MessageActionsWrapper/css/MessageActionsWrapper.module.css +3 -0
  86. package/es/MessageActionsWrapper/index.js +1 -0
  87. package/es/MessageActionsWrapper/props/defaultProps.js +9 -0
  88. package/es/MessageActionsWrapper/props/propTypes.js +15 -0
  89. package/es/MessageAvatar/MessageAvatar.js +49 -0
  90. package/es/MessageAvatar/css/MessageAvatar.module.css +23 -0
  91. package/es/MessageAvatar/index.js +1 -0
  92. package/es/MessageAvatar/props/defaultProps.js +7 -0
  93. package/es/MessageAvatar/props/propTypes.js +13 -0
  94. package/es/MessageBox/MessageBox.js +66 -0
  95. package/es/MessageBox/css/MessageBox.module.css +56 -0
  96. package/es/MessageBox/css/cssJSLogic.js +18 -0
  97. package/es/MessageBox/index.js +1 -0
  98. package/es/MessageBox/props/defaultProps.js +6 -0
  99. package/es/MessageBox/props/propTypes.js +13 -0
  100. package/es/MessageBubble/MessageBubble.js +116 -0
  101. package/es/MessageBubble/css/MessageBubble.module.css +101 -0
  102. package/es/MessageBubble/css/cssJSLogic.js +34 -0
  103. package/es/MessageBubble/index.js +1 -0
  104. package/es/MessageBubble/props/defaultProps.js +11 -0
  105. package/es/MessageBubble/props/propTypes.js +17 -0
  106. package/es/MessageStatus/MessageStatus.js +77 -0
  107. package/es/MessageStatus/css/MessageStatus.module.css +17 -0
  108. package/es/MessageStatus/css/cssJSLogic.js +26 -0
  109. package/es/MessageStatus/index.js +1 -0
  110. package/es/MessageStatus/props/defaultProps.js +6 -0
  111. package/es/MessageStatus/props/propTypes.js +12 -0
  112. package/es/MoreActionItem/MoreActionItem.js +72 -0
  113. package/es/MoreActionItem/css/MoreActionItem.module.css +27 -0
  114. package/es/MoreActionItem/index.js +1 -0
  115. package/es/MoreActionItem/props/defaultProps.js +7 -0
  116. package/es/MoreActionItem/props/propTypes.js +14 -0
  117. package/es/ReplyBubble/ReplyBubble.js +118 -0
  118. package/es/ReplyBubble/css/ReplyBubble.module.css +23 -0
  119. package/es/ReplyBubble/css/cssJSLogic.js +14 -0
  120. package/es/ReplyBubble/index.js +1 -0
  121. package/es/ReplyBubble/props/defaultProps.js +8 -0
  122. package/es/ReplyBubble/props/propTypes.js +28 -0
  123. package/es/ReplyBubbleContent/ReplyBubbleContent.js +61 -0
  124. package/es/ReplyBubbleContent/css/ReplyBubbleContent.module.css +75 -0
  125. package/es/ReplyBubbleContent/css/cssJSLogic.js +13 -0
  126. package/es/ReplyBubbleContent/index.js +1 -0
  127. package/es/ReplyBubbleContent/props/defaultProps.js +6 -0
  128. package/es/ReplyBubbleContent/props/propTypes.js +11 -0
  129. package/es/ReplyBubbleHeader/ReplyBubbleHeader.js +74 -0
  130. package/es/ReplyBubbleHeader/css/ReplyBubbleHeader.module.css +44 -0
  131. package/es/ReplyBubbleHeader/css/cssJSLogic.js +12 -0
  132. package/es/ReplyBubbleHeader/index.js +1 -0
  133. package/es/ReplyBubbleHeader/props/defaultProps.js +7 -0
  134. package/es/ReplyBubbleHeader/props/propTypes.js +13 -0
  135. package/es/TextBubble/TextBubble.js +49 -0
  136. package/es/TextBubble/css/TextBubble.module.css +35 -0
  137. package/es/TextBubble/css/cssJSLogic.js +18 -0
  138. package/es/TextBubble/index.js +1 -0
  139. package/es/TextBubble/props/defaultProps.js +6 -0
  140. package/es/TextBubble/props/propTypes.js +10 -0
  141. package/es/Theme/ThemeAssets.js +78 -0
  142. package/es/Theme/ThemeWrapper.js +88 -0
  143. package/es/Theme/TooltipWrapper.js +85 -0
  144. package/es/Theme/constants/index.js +41 -0
  145. package/es/Theme/css/TooltipWrapper.module.css +10 -0
  146. package/es/Theme/index.js +1 -0
  147. package/es/Theme/props/defaultProps.js +10 -0
  148. package/es/Theme/props/propTypes.js +14 -0
  149. package/es/Theme/themeVariables/commonThemeColorVariable.js +17 -0
  150. package/es/Theme/themeVariables/dark/blueTheme.js +116 -0
  151. package/es/Theme/themeVariables/dark/commonColorVariable.js +16 -0
  152. package/es/Theme/themeVariables/dark/greenTheme.js +115 -0
  153. package/es/Theme/themeVariables/dark/orangeTheme.js +115 -0
  154. package/es/Theme/themeVariables/dark/redTheme.js +115 -0
  155. package/es/Theme/themeVariables/dark/yellowTheme.js +115 -0
  156. package/es/Theme/themeVariables/light/blueTheme.js +114 -0
  157. package/es/Theme/themeVariables/light/commonColorVariable.js +35 -0
  158. package/es/Theme/themeVariables/light/greenTheme.js +114 -0
  159. package/es/Theme/themeVariables/light/orangeTheme.js +114 -0
  160. package/es/Theme/themeVariables/light/redTheme.js +114 -0
  161. package/es/Theme/themeVariables/light/yellowTheme.js +114 -0
  162. package/es/Theme/themeVariables/pureDark/blueTheme.js +115 -0
  163. package/es/Theme/themeVariables/pureDark/commonColorVariable.js +18 -0
  164. package/es/Theme/themeVariables/pureDark/greenTheme.js +115 -0
  165. package/es/Theme/themeVariables/pureDark/orangeTheme.js +115 -0
  166. package/es/Theme/themeVariables/pureDark/redTheme.js +115 -0
  167. package/es/Theme/themeVariables/pureDark/yellowTheme.js +115 -0
  168. package/es/Theme/utils/combineConfigurations.js +17 -0
  169. package/es/Theme/utils/flatVariables.js +12 -0
  170. package/es/Theme/utils/getCustomizedCssVariables.js +19 -0
  171. package/es/Theme/utils/getThemeConfigurations.js +81 -0
  172. package/es/Theme/utils/getWrapperDivProps.js +16 -0
  173. package/es/Video/Video.js +38 -0
  174. package/es/Video/css/Video.module.css +5 -0
  175. package/es/Video/index.js +1 -0
  176. package/es/Video/props/defaultProps.js +6 -0
  177. package/es/Video/props/propTypes.js +8 -0
  178. package/es/VideoBubble/VideoBubble.js +66 -0
  179. package/es/VideoBubble/css/VideoBubble.module.css +12 -0
  180. package/es/VideoBubble/css/cssJSLogic.js +14 -0
  181. package/es/VideoBubble/index.js +1 -0
  182. package/es/VideoBubble/props/defaultProps.js +7 -0
  183. package/es/VideoBubble/props/propTypes.js +17 -0
  184. package/es/constants/index.js +1 -0
  185. package/es/css/common.module.css +6 -0
  186. package/es/icons/create-icon-components.js +172 -0
  187. package/es/icons/factory/attachments/audio.svg +19 -0
  188. package/es/icons/factory/attachments/code.svg +21 -0
  189. package/es/icons/factory/attachments/image.svg +20 -0
  190. package/es/icons/factory/attachments/pdf.svg +19 -0
  191. package/es/icons/factory/attachments/ppt.svg +1 -0
  192. package/es/icons/factory/attachments/text.svg +22 -0
  193. package/es/icons/factory/attachments/unknown.svg +21 -0
  194. package/es/icons/factory/attachments/video.svg +19 -0
  195. package/es/icons/factory/attachments/xls.svg +1 -0
  196. package/es/icons/factory/attachments/zip.svg +27 -0
  197. package/es/icons/factory/common/alertTriangle.svg +5 -0
  198. package/es/icons/factory/common/article.svg +4 -0
  199. package/es/icons/factory/common/reply.svg +6 -0
  200. package/es/icons/factory/messageStatus/clock.svg +7 -0
  201. package/es/icons/factory/messageStatus/doubleTick.svg +1 -0
  202. package/es/icons/factory/messageStatus/failed.svg +7 -0
  203. package/es/icons/factory/messageStatus/tick.svg +1 -0
  204. package/es/icons/icon.template.js +28 -0
  205. package/es/icons/iconSrc/attachments/Audio.js +38 -0
  206. package/es/icons/iconSrc/attachments/Code.js +44 -0
  207. package/es/icons/iconSrc/attachments/Image.js +43 -0
  208. package/es/icons/iconSrc/attachments/Pdf.js +38 -0
  209. package/es/icons/iconSrc/attachments/Ppt.js +26 -0
  210. package/es/icons/iconSrc/attachments/Text.js +47 -0
  211. package/es/icons/iconSrc/attachments/Txt.js +47 -0
  212. package/es/icons/iconSrc/attachments/Unknown.js +42 -0
  213. package/es/icons/iconSrc/attachments/Video.js +38 -0
  214. package/es/icons/iconSrc/attachments/Xls.js +26 -0
  215. package/es/icons/iconSrc/attachments/Zip.js +86 -0
  216. package/es/icons/iconSrc/attachments/index.js +10 -0
  217. package/es/icons/iconSrc/common/AlertTriangle.js +23 -0
  218. package/es/icons/iconSrc/common/Article.js +17 -0
  219. package/es/icons/iconSrc/common/Reply.js +13 -0
  220. package/es/icons/iconSrc/common/index.js +3 -0
  221. package/es/icons/iconSrc/messageStatus/Clock.js +14 -0
  222. package/es/icons/iconSrc/messageStatus/DoubleTick.js +16 -0
  223. package/es/icons/iconSrc/messageStatus/Failed.js +14 -0
  224. package/es/icons/iconSrc/messageStatus/Tick.js +13 -0
  225. package/es/icons/iconSrc/messageStatus/index.js +4 -0
  226. package/es/im/ArticleBubble/ArticleBubble.js +80 -0
  227. package/es/im/ArticleBubble/css/ArticleBubble.module.css +75 -0
  228. package/es/im/ArticleBubble/css/cssJSLogic.js +12 -0
  229. package/es/im/ArticleBubble/index.js +1 -0
  230. package/es/im/ArticleBubble/props/defaultProps.js +6 -0
  231. package/es/im/ArticleBubble/props/propTypes.js +14 -0
  232. package/es/im/IMIntegrationIcon/IMIntegrationIcon.js +73 -0
  233. package/es/im/IMIntegrationIcon/css/IMIntegrationIcon.module.css +72 -0
  234. package/es/im/IMIntegrationIcon/css/cssJSLogic.js +53 -0
  235. package/es/im/IMIntegrationIcon/index.js +1 -0
  236. package/es/im/IMIntegrationIcon/props/defaultProps.js +11 -0
  237. package/es/im/IMIntegrationIcon/props/propTypes.js +14 -0
  238. package/es/im/IMMessage/IMMessage.js +197 -0
  239. package/es/im/IMMessage/css/IMMessage.module.css +36 -0
  240. package/es/im/IMMessage/css/cssJSLogic.js +15 -0
  241. package/es/im/IMMessage/index.js +1 -0
  242. package/es/im/IMMessage/props/defaultProps.js +16 -0
  243. package/es/im/IMMessage/props/propTypes.js +126 -0
  244. package/es/im/IMMessageContent/IMMessageContent.js +128 -0
  245. package/es/im/IMMessageContent/css/IMMessageContent.module.css +8 -0
  246. package/es/im/IMMessageContent/index.js +1 -0
  247. package/es/im/IMMessageContent/props/defaultProps.js +9 -0
  248. package/es/im/IMMessageContent/props/propTypes.js +54 -0
  249. package/es/im/IMMessageMeta/IMMessageMeta.js +72 -0
  250. package/es/im/IMMessageMeta/css/IMMessageMeta.module.css +46 -0
  251. package/es/im/IMMessageMeta/css/cssJSLogic.js +29 -0
  252. package/es/im/IMMessageMeta/index.js +1 -0
  253. package/es/im/IMMessageMeta/props/defaultProps.js +11 -0
  254. package/es/im/IMMessageMeta/props/propTypes.js +42 -0
  255. package/es/im/IMMessageMetaInfo/IMMessageMetaInfo.js +29 -0
  256. package/es/im/IMMessageMetaInfo/css/IMMessageMetaInfo.module.css +14 -0
  257. package/es/im/IMMessageMetaInfo/index.js +1 -0
  258. package/es/im/IMMessageMetaInfo/props/defaultProps.js +8 -0
  259. package/es/im/IMMessageMetaInfo/props/propTypes.js +8 -0
  260. package/es/im/IMPermaLink/IMPermaLink.js +48 -0
  261. package/es/im/IMPermaLink/css/IMPermaLink.module.css +14 -0
  262. package/es/im/IMPermaLink/css/cssJSLogic.js +14 -0
  263. package/es/im/IMPermaLink/index.js +1 -0
  264. package/es/im/IMPermaLink/props/defaultProps.js +6 -0
  265. package/es/im/IMPermaLink/props/propTypes.js +11 -0
  266. package/es/im/IMReplyBubble/IMReplyBubble.js +52 -0
  267. package/es/im/IMReplyBubble/index.js +1 -0
  268. package/es/im/IMReplyBubble/props/defaultProps.js +7 -0
  269. package/es/im/IMReplyBubble/props/propTypes.js +29 -0
  270. package/es/im/IMTextBubble/IMTextBubble.js +40 -0
  271. package/es/im/IMTextBubble/index.js +1 -0
  272. package/es/im/IMTextBubble/props/defaultProps.js +8 -0
  273. package/es/im/IMTextBubble/props/propTypes.js +31 -0
  274. package/es/im/css/common.module.css +6 -0
  275. package/es/im/index.js +9 -0
  276. package/es/index.js +32 -0
  277. package/package.json +49 -0
@@ -0,0 +1,17 @@
1
+ import flatVariables from './flatVariables';
2
+ export default function combineConfigurations(configurations) {
3
+ const configs = configurations.map(configuration => ({
4
+ library: configuration.library,
5
+ variables: flatVariables(configuration.variables)
6
+ }));
7
+ const mergeObject = configs.reduce((res, next) => {
8
+ if (!res[next.library]) {
9
+ res[next.library] = next;
10
+ return res;
11
+ }
12
+
13
+ Object.assign(res[next.library].variables, next.variables);
14
+ return res;
15
+ }, {});
16
+ return Object.keys(mergeObject).map(key => mergeObject[key]);
17
+ }
@@ -0,0 +1,12 @@
1
+ export default function flatVariables(obj) {
2
+ let jointStr = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '_';
3
+ return Object.keys(obj).reduce((res, component) => Object.assign(res, Object.keys(obj[component]).reduce((res, variable) => {
4
+ if (component === '') {
5
+ res[`${variable}`] = obj[component][variable];
6
+ } else {
7
+ res[`${component}${jointStr}${variable}`] = obj[component][variable];
8
+ }
9
+
10
+ return res;
11
+ }, {})), {});
12
+ }
@@ -0,0 +1,19 @@
1
+ /* eslint-disable no-param-reassign */
2
+
3
+ /** ** Methods *** */
4
+ import combineConfigurations from './combineConfigurations';
5
+ export default function getCustomizedCssVariables(cssVariableConfigs) {
6
+ let prefix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '--lib_';
7
+ const newConfiguration = combineConfigurations(cssVariableConfigs);
8
+ return newConfiguration.reduce((result, config) => {
9
+ Object.keys(config.variables).forEach(variable => {
10
+ // eslint-disable-next-line no-param-reassign
11
+ if (config.library === '') {
12
+ result += `${prefix}${variable}:${config.variables[variable]}; \n`;
13
+ } else {
14
+ result += `${prefix}${config.library}_${variable}:${config.variables[variable]}; \n`;
15
+ }
16
+ });
17
+ return result;
18
+ }, '\n');
19
+ }
@@ -0,0 +1,81 @@
1
+ import { modeConstants, themeConstants } from '../constants';
2
+ import lightBlue from '../themeVariables/light/blueTheme';
3
+ import lightGreen from '../themeVariables/light/greenTheme';
4
+ import lightOrange from '../themeVariables/light/orangeTheme';
5
+ import lightRed from '../themeVariables/light/redTheme';
6
+ import lightYellow from '../themeVariables/light/yellowTheme';
7
+ import darkBlue from '../themeVariables/dark/blueTheme';
8
+ import darkGreen from '../themeVariables/dark/greenTheme';
9
+ import darkOrange from '../themeVariables/dark/orangeTheme';
10
+ import darkRed from '../themeVariables/dark/redTheme';
11
+ import darkYellow from '../themeVariables/dark/yellowTheme';
12
+ import pureDarkBlue from '../themeVariables/pureDark/blueTheme';
13
+ import pureDarkGreen from '../themeVariables/pureDark/greenTheme';
14
+ import pureDarkOrange from '../themeVariables/pureDark/orangeTheme';
15
+ import pureDarkRed from '../themeVariables/pureDark/redTheme';
16
+ import pureDarkYellow from '../themeVariables/pureDark/yellowTheme';
17
+ const modeMapping = {
18
+ [modeConstants.LIGHT]: 'light',
19
+ [modeConstants.DARK]: 'dark',
20
+ [modeConstants.PURE_DARK]: 'pureDark'
21
+ };
22
+ const themeMapping = {
23
+ [themeConstants.BLUE]: 'blue',
24
+ [themeConstants.GREEN]: 'green',
25
+ [themeConstants.ORANGE]: 'orange',
26
+ [themeConstants.RED]: 'red',
27
+ [themeConstants.YELLOW]: 'yellow'
28
+ };
29
+ const concatString = '_';
30
+ const defaultTheme = themeMapping[themeConstants.BLUE];
31
+ const defaultMode = modeMapping[modeConstants.LIGHT];
32
+ const defaultThemeConfiguration = lightBlue;
33
+ const themeConfigMapping = {
34
+ [`${modeConstants.LIGHT}${concatString}${themeConstants.BLUE}`]: lightBlue,
35
+ [`${modeConstants.LIGHT}${concatString}${themeConstants.GREEN}`]: lightGreen,
36
+ [`${modeConstants.LIGHT}${concatString}${themeConstants.ORANGE}`]: lightOrange,
37
+ [`${modeConstants.LIGHT}${concatString}${themeConstants.RED}`]: lightRed,
38
+ [`${modeConstants.LIGHT}${concatString}${themeConstants.YELLOW}`]: lightYellow,
39
+ [`${modeConstants.DARK}${concatString}${themeConstants.BLUE}`]: darkBlue,
40
+ [`${modeConstants.DARK}${concatString}${themeConstants.GREEN}`]: darkGreen,
41
+ [`${modeConstants.DARK}${concatString}${themeConstants.ORANGE}`]: darkOrange,
42
+ [`${modeConstants.DARK}${concatString}${themeConstants.RED}`]: darkRed,
43
+ [`${modeConstants.DARK}${concatString}${themeConstants.YELLOW}`]: darkYellow,
44
+ [`${modeConstants.PURE_DARK}${concatString}${themeConstants.BLUE}`]: pureDarkBlue,
45
+ [`${modeConstants.PURE_DARK}${concatString}${themeConstants.GREEN}`]: pureDarkGreen,
46
+ [`${modeConstants.PURE_DARK}${concatString}${themeConstants.ORANGE}`]: pureDarkOrange,
47
+ [`${modeConstants.PURE_DARK}${concatString}${themeConstants.RED}`]: pureDarkRed,
48
+ [`${modeConstants.PURE_DARK}${concatString}${themeConstants.YELLOW}`]: pureDarkYellow
49
+ };
50
+
51
+ function getThemeName() {
52
+ let {
53
+ mode = modeConstants.LIGHT,
54
+ theme = themeConstants.BLUE
55
+ } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
56
+ const themeName = `${mode}${concatString}${theme}`;
57
+ return {
58
+ themeName
59
+ };
60
+ }
61
+
62
+ export default function getThemeConfigurations(_ref) {
63
+ let {
64
+ mode: propMode,
65
+ theme: propTheme
66
+ } = _ref;
67
+ const {
68
+ themeName
69
+ } = getThemeName({
70
+ mode: propMode,
71
+ theme: propTheme
72
+ });
73
+ const mode = propMode ? modeMapping[propMode] || propMode : defaultMode;
74
+ const theme = propTheme ? themeMapping[propTheme] || propTheme : defaultTheme;
75
+ const themeConfigurations = themeConfigMapping[themeName] || defaultThemeConfiguration;
76
+ return {
77
+ mode,
78
+ theme,
79
+ themeConfigurations
80
+ };
81
+ }
@@ -0,0 +1,16 @@
1
+ export default function getWrapperDivProps(_ref) {
2
+ let {
3
+ modeKey,
4
+ themeKey,
5
+ mode,
6
+ theme
7
+ } = _ref;
8
+ let wrapperDivProps = {};
9
+ wrapperDivProps = modeKey && mode ? { ...wrapperDivProps,
10
+ [modeKey]: mode
11
+ } : {};
12
+ wrapperDivProps = themeKey && theme ? { ...wrapperDivProps,
13
+ [themeKey]: theme
14
+ } : {};
15
+ return wrapperDivProps;
16
+ }
@@ -0,0 +1,38 @@
1
+ /** ** Libraries *** */
2
+ import React from 'react';
3
+ /** ** Hooks *** */
4
+
5
+ import useMergeStyle from '@zohodesk/hooks/es/utils/useMergeStyle';
6
+ import useMedia from '@zohoim/chat-components-hooks/es/Media/useMedia';
7
+ /** ** Constants *** */
8
+
9
+ import videoDefaultProps from './props/defaultProps';
10
+ import videoPropTypes from './props/propTypes';
11
+ /** ** Styles *** */
12
+
13
+ import style from './css/Video.module.css';
14
+ export default function Video(props) {
15
+ const {
16
+ customStyle,
17
+ fileType,
18
+ fileURL
19
+ } = props;
20
+ const {
21
+ mediaElementRef
22
+ } = useMedia(props);
23
+ /* External CSS Customization */
24
+
25
+ const newStyle = useMergeStyle(style, customStyle);
26
+ return /*#__PURE__*/React.createElement("video", {
27
+ ref: mediaElementRef,
28
+ className: newStyle.video,
29
+ controls: true,
30
+ preload: "metadata"
31
+ }, /*#__PURE__*/React.createElement("source", {
32
+ "data-src": fileURL,
33
+ type: fileType
34
+ }));
35
+ }
36
+ Video.propTypes = videoPropTypes;
37
+ Video.defaultProps = videoDefaultProps;
38
+ Video.displayName = 'Video';
@@ -0,0 +1,5 @@
1
+ .video {
2
+ height: 100% ;
3
+ width: 100% ;
4
+ border-radius: 3px;
5
+ }
@@ -0,0 +1 @@
1
+ export { default as Video } from './Video';
@@ -0,0 +1,6 @@
1
+ /** ** Constants *** */
2
+ import { dummyObject } from '@zohoim/chat-components-utils/es/constants/emptyConstants';
3
+ const videoDefaultProps = {
4
+ customStyle: dummyObject
5
+ };
6
+ export default videoDefaultProps;
@@ -0,0 +1,8 @@
1
+ /** ** Libraries *** */
2
+ import PropTypes from 'prop-types';
3
+ const videoPropTypes = {
4
+ fileType: PropTypes.string.isRequired,
5
+ fileURL: PropTypes.string.isRequired,
6
+ customStyle: PropTypes.object
7
+ };
8
+ export default videoPropTypes;
@@ -0,0 +1,66 @@
1
+ function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
2
+
3
+ /** ** Libraries *** */
4
+ import React, { useCallback } from 'react';
5
+ /** ** Hooks *** */
6
+
7
+ import useMergeStyle from '@zohodesk/hooks/es/utils/useMergeStyle';
8
+ /** ** Constants *** */
9
+
10
+ import videoBubbleDefaultProps from './props/defaultProps';
11
+ import videoBubblePropTypes from './props/propTypes';
12
+ import { dummyObject } from '@zohoim/chat-components-utils/es/constants/emptyConstants';
13
+ /** ** Styles *** */
14
+
15
+ import style from './css/VideoBubble.module.css';
16
+ /** ** Components *** */
17
+
18
+ import { Box } from '@zohodesk/components/es/Layout';
19
+ import MediaBubbleWrapper from '../MediaBubbleWrapper/MediaBubbleWrapper';
20
+ import Video from '../Video/Video';
21
+ /** ** Methods *** */
22
+
23
+ import cssJSLogic from './css/cssJSLogic';
24
+ export default function VideoBubble(props) {
25
+ const {
26
+ customStyle,
27
+ customProps,
28
+ videoDetails,
29
+ isFailed
30
+ } = props;
31
+ const {
32
+ videoProps = dummyObject,
33
+ mediaBubbleWrapperProps = dummyObject
34
+ } = customProps;
35
+ /* External CSS Customization */
36
+
37
+ const newStyle = useMergeStyle(style, customStyle);
38
+ /* css classnames added based on logic */
39
+
40
+ const {
41
+ videoBubbleClass
42
+ } = cssJSLogic({
43
+ isFailed
44
+ }, newStyle);
45
+ const renderMedia = useCallback(_ref => {
46
+ let {
47
+ fileURL,
48
+ fileType
49
+ } = _ref;
50
+ return /*#__PURE__*/React.createElement(Box, {
51
+ className: videoBubbleClass
52
+ }, /*#__PURE__*/React.createElement(Video, _extends({
53
+ fileType: fileType,
54
+ fileURL: fileURL
55
+ }, videoProps)));
56
+ }, [videoProps, videoBubbleClass]);
57
+ return /*#__PURE__*/React.createElement(MediaBubbleWrapper, _extends({
58
+ mediaDetails: videoDetails,
59
+ renderMedia: renderMedia
60
+ }, mediaBubbleWrapperProps, {
61
+ isFailed: isFailed
62
+ }));
63
+ }
64
+ VideoBubble.propTypes = videoBubblePropTypes;
65
+ VideoBubble.defaultProps = videoBubbleDefaultProps;
66
+ VideoBubble.displayName = 'VideoBubble';
@@ -0,0 +1,12 @@
1
+ .videoWrapper {
2
+ width: var(--zd_size360) ;
3
+ max-width: 100% ;
4
+ height: var(--zd_size193) ;
5
+ background-color: #000;
6
+ border-radius: 3px;
7
+ border: 1px solid var(--imlib_chat_components_videoBubble_border_color);
8
+ }
9
+
10
+ .videoWrapperFailed{
11
+ border-color: var(--imlib_chat_components_videoBubble_border_color_failed);
12
+ }
@@ -0,0 +1,14 @@
1
+ /** ** Methods *** */
2
+ import { compileClassNames } from '@zohodesk/utils';
3
+ export default function cssJSLogic(props, style) {
4
+ const {
5
+ isFailed
6
+ } = props;
7
+ const videoBubbleClass = compileClassNames({
8
+ [style.videoWrapper]: true,
9
+ [style.videoWrapperFailed]: isFailed
10
+ });
11
+ return {
12
+ videoBubbleClass
13
+ };
14
+ }
@@ -0,0 +1 @@
1
+ export { default as VideoBubble } from './VideoBubble';
@@ -0,0 +1,7 @@
1
+ /** ** Constants *** */
2
+ import { dummyObject } from '@zohoim/chat-components-utils/es/constants/emptyConstants';
3
+ const videoBubbleDefaultProps = {
4
+ customStyle: dummyObject,
5
+ customProps: dummyObject
6
+ };
7
+ export default videoBubbleDefaultProps;
@@ -0,0 +1,17 @@
1
+ /** ** Libraries *** */
2
+ import PropTypes from 'prop-types';
3
+ const videoBubblePropTypes = {
4
+ videoDetails: PropTypes.shape({
5
+ name: PropTypes.string.isRequired,
6
+ size: PropTypes.string.isRequired,
7
+ type: PropTypes.string.isRequired,
8
+ url: PropTypes.string.isRequired
9
+ }).isRequired,
10
+ customProps: PropTypes.shape({
11
+ mediaBubbleWrapperProps: PropTypes.object,
12
+ videoProps: PropTypes.object
13
+ }),
14
+ customStyle: PropTypes.object,
15
+ isFailed: PropTypes.bool
16
+ };
17
+ export default videoBubblePropTypes;
@@ -0,0 +1 @@
1
+ export const MSG_ACTION_POPUP_PORTAL = 'MSG_ACTION_POPUP_PORTAL';
@@ -0,0 +1,6 @@
1
+ .dotted {
2
+ overflow: hidden;
3
+ white-space: nowrap;
4
+ word-wrap: normal;
5
+ text-overflow: ellipsis;
6
+ }
@@ -0,0 +1,172 @@
1
+ /* eslint-disable */
2
+ const commandLineArgs = require('command-line-args');
3
+
4
+ const path = require('path');
5
+
6
+ const fs = require('fs');
7
+
8
+ const templateList = require('./icon.template');
9
+
10
+ const jsdom = require('jsdom');
11
+
12
+ const {
13
+ JSDOM
14
+ } = jsdom;
15
+
16
+ const reactToJsx = require('react-to-jsx');
17
+
18
+ const HtmlToReactParser = require('html-to-react').Parser;
19
+
20
+ const htmlToReactParser = new HtmlToReactParser();
21
+ const options = commandLineArgs([{
22
+ name: 'sourucePath',
23
+ alias: 's',
24
+ type: String
25
+ }, {
26
+ name: 'targetPath',
27
+ alias: 't',
28
+ type: String
29
+ }]);
30
+ const sourucePath = `${__dirname}/${options.sourucePath}`;
31
+ const targetPath = `${__dirname}/${options.targetPath}`;
32
+
33
+ function readAllFolder(sourucePath, targetPath, index, filesList, callback) {
34
+ const readDirMain = fs.readdirSync(sourucePath, {
35
+ withFileTypes: true
36
+ });
37
+ readDirMain.forEach(dirNext => {
38
+ const sourceDirPath = path.join(`${sourucePath}/${dirNext.name}`);
39
+ const targetDirPath = path.join(`${targetPath}/${dirNext.name}`);
40
+
41
+ if (fs.existsSync(sourceDirPath) && fs.lstatSync(sourceDirPath).isDirectory()) {
42
+ filesList[index + 1] = [];
43
+ readAllFolder(sourceDirPath, targetDirPath, index + 1, filesList, callback);
44
+ createIndexFiles(filesList[index + 1], targetDirPath);
45
+ return;
46
+ }
47
+
48
+ const svgFileName = callback(dirNext, sourucePath, targetPath);
49
+
50
+ if (svgFileName) {
51
+ filesList[index] = (filesList[index] || []).concat(svgFileName);
52
+ }
53
+ });
54
+ }
55
+
56
+ function createIndexFiles(filesList, targetDirPath) {
57
+ let indexContent = '';
58
+ filesList.forEach(fileName => {
59
+ indexContent += `${templateList.indexTemplate({
60
+ path: `./${fileName}`,
61
+ name: fileName
62
+ })}\n`;
63
+ });
64
+
65
+ if (indexContent) {
66
+ const fsPromises = fs.promises;
67
+ fsPromises.mkdir(targetDirPath, {
68
+ recursive: true
69
+ }).then(() => {
70
+ fs.writeFileSync(`${targetDirPath}/index.js`, indexContent);
71
+ });
72
+ }
73
+ }
74
+
75
+ function getFormattedSvgFileName(fileName) {
76
+ const replacer = '/'; // OS won't allow this char.so.
77
+
78
+ let str = fileName.replace(/[^A-z0-9]/g, replacer);
79
+ str = str.split('');
80
+ str.forEach((charCode, index) => {
81
+ if (str[index] === replacer) {
82
+ str[index] = '';
83
+ str[index + 1] = str[index + 1].toUpperCase();
84
+ }
85
+ });
86
+ fileName = str.join('');
87
+ return fileName.charAt(0).toUpperCase() + fileName.slice(1);
88
+ }
89
+
90
+ function isValidFileName(fileName) {
91
+ return /[A-z]/g.test(fileName.charAt(0));
92
+ }
93
+
94
+ readAllFolder(sourucePath, targetPath, 0, [], (file, sourucePath, targetPath) => {
95
+ let svgFileName = '';
96
+
97
+ if (file && path.extname(file.name) === '.svg') {
98
+ if (!isValidFileName(file.name)) {
99
+ console.error(`Invalid File Name Error!!! - This file ${file.name} is should be startswith A-z `);
100
+ return;
101
+ }
102
+
103
+ try {
104
+ const readFilePath = path.join(`${sourucePath}/${file.name}`);
105
+ const svgFileContent = fs.readFileSync(readFilePath).toString();
106
+ svgFileName = getFormattedSvgFileName(path.basename(readFilePath, path.extname(file.name)));
107
+ const fsPromises = fs.promises;
108
+ fsPromises.mkdir(targetPath, {
109
+ recursive: true
110
+ }).then(() => {
111
+ const dom = new JSDOM(`<!DOCTYPE html>${svgFileContent}`);
112
+ const doc = dom.window.document;
113
+ const collection = doc.querySelectorAll('title');
114
+
115
+ for (const elem of collection) {
116
+ elem.parentNode.removeChild(elem);
117
+ }
118
+
119
+ const svgElement = doc.querySelector('svg');
120
+ svgElement.removeAttribute('width');
121
+ svgElement.removeAttribute('height');
122
+ svgElement.removeAttribute('version');
123
+ const styleTags = svgElement.querySelector('style');
124
+ let styleTagsContent;
125
+
126
+ if (styleTags) {
127
+ styleTagsContent = styleTags.innerHTML;
128
+ const NewStyleElement = doc.createElement('style');
129
+ styleTags.parentNode.replaceChild(NewStyleElement, styleTags);
130
+ }
131
+
132
+ const collectionPathEl = svgElement.querySelectorAll('path');
133
+
134
+ for (const entry of collectionPathEl.entries()) {
135
+ const index = entry[0];
136
+ const elem = entry[1];
137
+ elem.setAttribute('class', `path-${index}`);
138
+
139
+ if (elem.getAttribute('fill') == 'black' || elem.getAttribute('fill') == '#010101') {
140
+ elem.removeAttribute('fill');
141
+ }
142
+ }
143
+
144
+ const svgHtmlContent = svgElement.outerHTML.replace(/\s+/g, ' ').trim();
145
+ const svgAsReactElement = htmlToReactParser.parse(svgHtmlContent);
146
+ let svgHtmlContentResult = reactToJsx(svgAsReactElement).replace(/\s+/g, ' ').trim();
147
+
148
+ if (styleTags) {
149
+ // console.log(styleTags, 'styleTags');
150
+ svgHtmlContentResult = svgHtmlContentResult.replace('<style/>', `<style dangerouslySetInnerHTML={{__html: \`${styleTagsContent}\` }} />`);
151
+ }
152
+
153
+ svgHtmlContentResult = svgHtmlContentResult.replace(/color-interpolation-filters/gi, 'colorInterpolationFilters');
154
+ svgHtmlContentResult = svgHtmlContentResult.replace(/feflood/gi, 'feFlood');
155
+ svgHtmlContentResult = svgHtmlContentResult.replace(/fecolormatrix/gi, 'feColorMatrix');
156
+ svgHtmlContentResult = svgHtmlContentResult.replace(/feoffset/gi, 'feOffset');
157
+ svgHtmlContentResult = svgHtmlContentResult.replace(/fegaussianblur/gi, 'feGaussianBlur');
158
+ svgHtmlContentResult = svgHtmlContentResult.replace(/feblend/gi, 'feBlend');
159
+ svgHtmlContentResult = svgHtmlContentResult.replace(/lineargradient/gi, 'linearGradient');
160
+ fs.writeFileSync(`${targetPath}/${svgFileName}.js`, templateList.iconTemplate({
161
+ path: '@zohodesk/icon/es/Icon/Icon',
162
+ name: svgFileName,
163
+ value: svgHtmlContentResult
164
+ }));
165
+ });
166
+ } catch (err) {
167
+ console.error(err);
168
+ }
169
+ }
170
+
171
+ return svgFileName;
172
+ });
@@ -0,0 +1,19 @@
1
+ <svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" width="31.68" height="32.17" viewBox="0 0 31.68 32.17">
2
+ <defs>
3
+ <style>
4
+ .cls-1 {
5
+ fill: #c8cadb;
6
+ opacity: 0.5;
7
+ }
8
+
9
+ .cls-2 {
10
+ fill: #010101;
11
+ }
12
+ </style>
13
+ </defs>
14
+ <rect class="cls-1" x="4.84" y="5.33" width="26.84" height="26.84" rx="5"/>
15
+ <g>
16
+ <path class="cls-2" d="M18.67,11.65l-7.55,1.41a.7.7,0,0,0-.6.7v7.32A3.56,3.56,0,0,0,9,20.8c-1.66,0-3,.91-3,2.11S7.35,25,9,25s3-.92,3-2.11V15.73l6-1.13v5.07a3.56,3.56,0,0,0-1.51-.28c-1.66,0-3,.91-3,2.11s1.36,2.11,3,2.11,3-.91,3-2.11V12.35a.63.63,0,0,0-.3-.56A.87.87,0,0,0,18.67,11.65Z"/>
17
+ <path class="cls-2" d="M29.75,10.13,21.12.34A1,1,0,0,0,20.38,0H4.11A4.11,4.11,0,0,0,0,4.11V25.88A4.12,4.12,0,0,0,4.11,30H25.89A4.12,4.12,0,0,0,30,25.88V10.79A1,1,0,0,0,29.75,10.13ZM25.89,28H4.11A2.12,2.12,0,0,1,2,25.88V4.11A2.12,2.12,0,0,1,4.11,2H19.77V7.94a3.5,3.5,0,0,0,3.5,3.5H28V25.88A2.12,2.12,0,0,1,25.89,28Z"/>
18
+ </g>
19
+ </svg>
@@ -0,0 +1,21 @@
1
+ <svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" width="31.7" height="32.17" viewBox="0 0 31.7 32.17">
2
+ <defs>
3
+ <style>
4
+ .cls-1 {
5
+ fill: #c8cadb;
6
+ opacity: 0.5;
7
+ }
8
+
9
+ .cls-2 {
10
+ fill: #010101;
11
+ }
12
+ </style>
13
+ </defs>
14
+ <rect class="cls-1" x="4.85" y="5.33" width="26.84" height="26.84" rx="5"/>
15
+ <g>
16
+ <path class="cls-2" d="M17.13,14.09a.82.82,0,0,0-1.08.43l-3.81,8.73a.84.84,0,0,0,.42,1.09,1,1,0,0,0,.33.07.84.84,0,0,0,.76-.5l3.81-8.74A.82.82,0,0,0,17.13,14.09Z"/>
17
+ <path class="cls-2" d="M11.33,16a.81.81,0,0,0-1.15-.14l-2.9,2.31a.78.78,0,0,0-.3.58.81.81,0,0,0,.21.62l2.63,2.82a.83.83,0,0,0,.6.26.89.89,0,0,0,.57-.22.84.84,0,0,0,0-1.17L9,18.92l2.19-1.75A.81.81,0,0,0,11.33,16Z"/>
18
+ <path class="cls-2" d="M20,16a.81.81,0,0,0-1.16,0,.82.82,0,0,0,0,1.16l2,2.16L18.58,21a.83.83,0,0,0-.13,1.16.82.82,0,0,0,.64.31.84.84,0,0,0,.52-.18L22.5,20a.82.82,0,0,0,.31-.58.8.8,0,0,0-.22-.62Z"/>
19
+ <path class="cls-2" d="M29.75,10.13,21.12.34A1,1,0,0,0,20.38,0H4.11A4.11,4.11,0,0,0,0,4.11V25.88A4.12,4.12,0,0,0,4.11,30H25.89A4.12,4.12,0,0,0,30,25.88V10.79A1,1,0,0,0,29.75,10.13ZM25.89,28H4.11A2.12,2.12,0,0,1,2,25.88V4.11A2.12,2.12,0,0,1,4.11,2H19.77V7.94a3.5,3.5,0,0,0,3.5,3.5H28V25.88A2.12,2.12,0,0,1,25.89,28Z"/>
20
+ </g>
21
+ </svg>
@@ -0,0 +1,20 @@
1
+ <svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" width="32.19" height="32.18" viewBox="0 0 32.19 32.18">
2
+ <defs>
3
+ <style>
4
+ .cls-1 {
5
+ fill: #c8cadb;
6
+ opacity: 0.5;
7
+ }
8
+
9
+ .cls-2 {
10
+ fill: #010101;
11
+ }
12
+ </style>
13
+ </defs>
14
+ <rect class="cls-1" x="5.35" y="5.33" width="26.84" height="26.84" rx="5"/>
15
+ <g>
16
+ <path class="cls-2" d="M21.66,18.14a.36.36,0,0,0-.2.06l-3.75,2.59-5.75-7a.35.35,0,0,0-.5,0,.22.22,0,0,0-.07.09l-4.19,7v3H22V18.49A.35.35,0,0,0,21.66,18.14Z"/>
17
+ <circle class="cls-2" cx="19.79" cy="14.13" r="2.22"/>
18
+ <path class="cls-2" d="M29.75,10.14,21.12.34A1,1,0,0,0,20.37,0H4.11A4.11,4.11,0,0,0,0,4.11V25.89A4.11,4.11,0,0,0,4.11,30H25.89A4.11,4.11,0,0,0,30,25.89V10.8A1,1,0,0,0,29.75,10.14ZM25.89,28H4.11A2.12,2.12,0,0,1,2,25.89V4.11A2.12,2.12,0,0,1,4.11,2H19.77V7.94a3.49,3.49,0,0,0,3.5,3.5H28V25.89A2.12,2.12,0,0,1,25.89,28Z"/>
19
+ </g>
20
+ </svg>
@@ -0,0 +1,19 @@
1
+ <svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" width="32.5" height="32.17" viewBox="0 0 32.5 32.17">
2
+ <defs>
3
+ <style>
4
+ .cls-1 {
5
+ fill: #c8cadb;
6
+ opacity: 0.5;
7
+ }
8
+
9
+ .cls-2 {
10
+ fill: #010101;
11
+ }
12
+ </style>
13
+ </defs>
14
+ <rect class="cls-1" x="5.66" y="5.33" width="26.84" height="26.84" rx="5"/>
15
+ <g>
16
+ <path class="cls-2" d="M18.56,18.52c-2.43-1.1-3.36-4.37-3.36-4.37a13.6,13.6,0,0,0,.61-3.07C16,9.24,15,8.81,14.32,8.76a1.24,1.24,0,0,0-1.08.54c-1.29,1.79,0,5,0,5a31.64,31.64,0,0,1-2.75,6.49c-4.73,2.47-3.81,4.33-3.81,4.33l.92.63c2.19.61,4.59-4.16,4.59-4.16,1.17-.73,5.69-1.1,5.69-1.1,3.72,1.74,6.28,1.12,5.74-.76S18.56,18.52,18.56,18.52ZM7.84,24.74a5.19,5.19,0,0,1,2.23-2.67S8.92,24.47,7.84,24.74ZM14.25,9.6s.9-.07,0,3C14.25,12.57,13.64,10.3,14.25,9.6Zm-1.9,10.88a22.05,22.05,0,0,0,2-4.59A8.43,8.43,0,0,0,17,19.18,21.56,21.56,0,0,0,12.35,20.48Zm10.22,0a4.86,4.86,0,0,1-2.85-.79,5.53,5.53,0,0,1,2.93.35A.23.23,0,0,1,22.57,20.46Z"/>
17
+ <path class="cls-2" d="M29.75,10.13,21.12.34A1,1,0,0,0,20.38,0H4.11A4.11,4.11,0,0,0,0,4.11V25.88A4.12,4.12,0,0,0,4.11,30H25.89A4.12,4.12,0,0,0,30,25.88V10.79A1,1,0,0,0,29.75,10.13ZM25.89,28H4.11A2.12,2.12,0,0,1,2,25.88V4.11A2.12,2.12,0,0,1,4.11,2H19.77V7.94a3.5,3.5,0,0,0,3.5,3.5H28V25.88A2.12,2.12,0,0,1,25.89,28Z"/>
18
+ </g>
19
+ </svg>
@@ -0,0 +1 @@
1
+ <?xml version="1.0" encoding="UTF-8"?><svg id="Layer_1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 30.52 30.27"><defs><style>.cls-1{fill:#010101;}.cls-2{fill:#c8cadb;opacity:.5;}</style></defs><rect class="cls-2" x="4.25" y="4" width="26.27" height="26.27" rx="3.16" ry="3.16"/><path class="cls-1" d="M29.75,10.13L21.12,.34c-.19-.22-.46-.34-.75-.34H4.11C1.84,0,0,1.84,0,4.11V25.88c0,2.27,1.84,4.11,4.11,4.11H25.89c2.27,0,4.11-1.84,4.11-4.11V10.79c0-.24-.09-.48-.25-.66Zm-1.75,15.75c0,1.16-.95,2.11-2.11,2.11H4.11c-1.16,0-2.11-.95-2.11-2.11V4.11c0-1.16,.95-2.11,2.11-2.11h15.66V7.94c0,1.93,1.57,3.5,3.5,3.5h4.73v14.44Zm-5.83-13.7h-6.17v-.84c0-.55-.45-1-1-1s-1,.45-1,1v.84H7.83c-.55,0-1,.45-1,1v8.78c0,.55,.45,1,1,1h2.76l-.59,.97c-.29,.47-.14,1.09,.33,1.37,.16,.1,.34,.15,.52,.15,.34,0,.67-.17,.85-.48l1.23-2.01h3.89l1.23,2.01c.19,.31,.52,.48,.85,.48,.18,0,.36-.05,.52-.15,.47-.29,.62-.9,.33-1.37l-.59-.97h3c.55,0,1-.45,1-1V13.17c0-.55-.45-1-1-1Zm-1,8.78H8.83v-6.78h12.34v6.78Z"/></svg>
@@ -0,0 +1,22 @@
1
+ <svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" width="32.19" height="32.94" viewBox="0 0 32.19 32.94">
2
+ <defs>
3
+ <style>
4
+ .cls-1 {
5
+ fill: #c8cadb;
6
+ opacity: 0.5;
7
+ }
8
+
9
+ .cls-2 {
10
+ fill: #010101;
11
+ }
12
+ </style>
13
+ </defs>
14
+ <rect class="cls-1" x="5.35" y="6.1" width="26.84" height="26.84" rx="5"/>
15
+ <g>
16
+ <path class="cls-2" d="M21.67,20.88H14.39a1,1,0,1,0,0,2h7.28a1,1,0,0,0,0-2Z"/>
17
+ <path class="cls-2" d="M9.15,20.31a1.57,1.57,0,1,0,1.57,1.57A1.57,1.57,0,0,0,9.15,20.31Z"/>
18
+ <path class="cls-2" d="M21.67,13.54H14.39a1,1,0,0,0,0,2h7.28a1,1,0,0,0,0-2Z"/>
19
+ <path class="cls-2" d="M9.15,13a1.57,1.57,0,1,0,1.57,1.57A1.57,1.57,0,0,0,9.15,13Z"/>
20
+ <path class="cls-2" d="M29.75,10.13,21.12.34A1,1,0,0,0,20.37,0H4.11A4.11,4.11,0,0,0,0,4.11V25.88A4.12,4.12,0,0,0,4.11,30H25.89A4.12,4.12,0,0,0,30,25.88V10.79A1,1,0,0,0,29.75,10.13ZM25.89,28H4.11A2.12,2.12,0,0,1,2,25.88V4.11A2.12,2.12,0,0,1,4.11,2H19.77V7.94a3.5,3.5,0,0,0,3.5,3.5H28V25.88A2.12,2.12,0,0,1,25.89,28Z"/>
21
+ </g>
22
+ </svg>