@nlabs/gothamui 1.8.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 (426) hide show
  1. package/LICENSE +21 -0
  2. package/MIGRATION.md +36 -0
  3. package/README.md +768 -0
  4. package/docs/assets/gothamui-app-architecture.svg +159 -0
  5. package/docs/assets/gothamui-logo.png +0 -0
  6. package/docs/assets/gothamui-logo.svg +42 -0
  7. package/docs/render-performance.md +34 -0
  8. package/lib/actions/GothamActions.d.ts +42 -0
  9. package/lib/actions/GothamActions.js +67 -0
  10. package/lib/actions/MarkdownActions.d.ts +4 -0
  11. package/lib/actions/MarkdownActions.js +48 -0
  12. package/lib/app.d.ts +1 -0
  13. package/lib/app.js +198 -0
  14. package/lib/components/Alert/Alert.d.ts +8 -0
  15. package/lib/components/Alert/Alert.js +24 -0
  16. package/lib/components/Alert/Alert.stories.js +59 -0
  17. package/lib/components/AuthRoute/AuthRoute.d.ts +3 -0
  18. package/lib/components/AuthRoute/AuthRoute.js +21 -0
  19. package/lib/components/AuthRoute/AuthRoute.stories.js +45 -0
  20. package/lib/components/AutocompleteField/AutocompleteField.d.ts +24 -0
  21. package/lib/components/AutocompleteField/AutocompleteField.js +148 -0
  22. package/lib/components/AutocompleteField/AutocompleteField.stories.js +62 -0
  23. package/lib/components/Avatar/Avatar.d.ts +29 -0
  24. package/lib/components/Avatar/Avatar.js +154 -0
  25. package/lib/components/Avatar/Avatar.stories.js +105 -0
  26. package/lib/components/Badge/Badge.d.ts +9 -0
  27. package/lib/components/Badge/Badge.js +22 -0
  28. package/lib/components/Badge/Badge.stories.js +53 -0
  29. package/lib/components/Breadcrumbs/Breadcrumbs.d.ts +19 -0
  30. package/lib/components/Breadcrumbs/Breadcrumbs.js +74 -0
  31. package/lib/components/Breadcrumbs/Breadcrumbs.stories.js +95 -0
  32. package/lib/components/Button/Button.d.ts +25 -0
  33. package/lib/components/Button/Button.js +157 -0
  34. package/lib/components/Button/Button.stories.js +119 -0
  35. package/lib/components/Card/Card.d.ts +8 -0
  36. package/lib/components/Card/Card.js +39 -0
  37. package/lib/components/Card/Card.stories.js +60 -0
  38. package/lib/components/CategoryGrid/CategoryGrid.d.ts +15 -0
  39. package/lib/components/CategoryGrid/CategoryGrid.js +42 -0
  40. package/lib/components/CategoryGrid/CategoryGrid.stories.js +35 -0
  41. package/lib/components/Chat/AudioMessage/AudioMessage.css +1 -0
  42. package/lib/components/Chat/AudioMessage/AudioMessage.d.ts +3 -0
  43. package/lib/components/Chat/AudioMessage/AudioMessage.js +28 -0
  44. package/lib/components/Chat/Avatar/Avatar.css +1 -0
  45. package/lib/components/Chat/Avatar/Avatar.d.ts +3 -0
  46. package/lib/components/Chat/Avatar/Avatar.js +72 -0
  47. package/lib/components/Chat/Button/Button.css +1 -0
  48. package/lib/components/Chat/Button/Button.d.ts +3 -0
  49. package/lib/components/Chat/Button/Button.js +37 -0
  50. package/lib/components/Chat/Chat.stories.js +688 -0
  51. package/lib/components/Chat/ChatItem/ChatItem.css +1 -0
  52. package/lib/components/Chat/ChatItem/ChatItem.d.ts +3 -0
  53. package/lib/components/Chat/ChatItem/ChatItem.js +183 -0
  54. package/lib/components/Chat/ChatList/ChatList.css +1 -0
  55. package/lib/components/Chat/ChatList/ChatList.d.ts +3 -0
  56. package/lib/components/Chat/ChatList/ChatList.js +84 -0
  57. package/lib/components/Chat/Circle/Circle.d.ts +3 -0
  58. package/lib/components/Chat/Circle/Circle.js +27 -0
  59. package/lib/components/Chat/Dropdown/Dropdown.css +1 -0
  60. package/lib/components/Chat/Dropdown/Dropdown.d.ts +3 -0
  61. package/lib/components/Chat/Dropdown/Dropdown.js +66 -0
  62. package/lib/components/Chat/FileMessage/FileMessage.css +1 -0
  63. package/lib/components/Chat/FileMessage/FileMessage.d.ts +3 -0
  64. package/lib/components/Chat/FileMessage/FileMessage.js +77 -0
  65. package/lib/components/Chat/Input/Input.css +1 -0
  66. package/lib/components/Chat/Input/Input.d.ts +3 -0
  67. package/lib/components/Chat/Input/Input.js +108 -0
  68. package/lib/components/Chat/LocationMessage/LocationMessage.css +1 -0
  69. package/lib/components/Chat/LocationMessage/LocationMessage.d.ts +3 -0
  70. package/lib/components/Chat/LocationMessage/LocationMessage.js +36 -0
  71. package/lib/components/Chat/MeetingItem/MeetingItem.css +1 -0
  72. package/lib/components/Chat/MeetingItem/MeetingItem.d.ts +3 -0
  73. package/lib/components/Chat/MeetingItem/MeetingItem.js +106 -0
  74. package/lib/components/Chat/MeetingLink/MeetingLink.css +1 -0
  75. package/lib/components/Chat/MeetingLink/MeetingLink.d.ts +3 -0
  76. package/lib/components/Chat/MeetingLink/MeetingLink.js +26 -0
  77. package/lib/components/Chat/MeetingList/MeetingList.css +1 -0
  78. package/lib/components/Chat/MeetingList/MeetingList.d.ts +3 -0
  79. package/lib/components/Chat/MeetingList/MeetingList.js +52 -0
  80. package/lib/components/Chat/MeetingMessage/MeetingMessage.css +1 -0
  81. package/lib/components/Chat/MeetingMessage/MeetingMessage.d.ts +3 -0
  82. package/lib/components/Chat/MeetingMessage/MeetingMessage.js +227 -0
  83. package/lib/components/Chat/MessageBox/MessageBox.css +1 -0
  84. package/lib/components/Chat/MessageBox/MessageBox.d.ts +3 -0
  85. package/lib/components/Chat/MessageBox/MessageBox.js +263 -0
  86. package/lib/components/Chat/MessageList/MessageList.css +1 -0
  87. package/lib/components/Chat/MessageList/MessageList.d.ts +2 -0
  88. package/lib/components/Chat/MessageList/MessageList.js +196 -0
  89. package/lib/components/Chat/Navbar/Navbar.css +1 -0
  90. package/lib/components/Chat/Navbar/Navbar.d.ts +3 -0
  91. package/lib/components/Chat/Navbar/Navbar.js +21 -0
  92. package/lib/components/Chat/PhotoMessage/PhotoMessage.css +1 -0
  93. package/lib/components/Chat/PhotoMessage/PhotoMessage.d.ts +3 -0
  94. package/lib/components/Chat/PhotoMessage/PhotoMessage.js +73 -0
  95. package/lib/components/Chat/Popup/Popup.css +1 -0
  96. package/lib/components/Chat/Popup/Popup.d.ts +3 -0
  97. package/lib/components/Chat/Popup/Popup.js +45 -0
  98. package/lib/components/Chat/README.md +50 -0
  99. package/lib/components/Chat/ReplyMessage/ReplyMessage.css +1 -0
  100. package/lib/components/Chat/ReplyMessage/ReplyMessage.d.ts +3 -0
  101. package/lib/components/Chat/ReplyMessage/ReplyMessage.js +42 -0
  102. package/lib/components/Chat/SideBar/SideBar.css +1 -0
  103. package/lib/components/Chat/SideBar/SideBar.d.ts +3 -0
  104. package/lib/components/Chat/SideBar/SideBar.js +21 -0
  105. package/lib/components/Chat/SpotifyMessage/SpotifyMessage.css +1 -0
  106. package/lib/components/Chat/SpotifyMessage/SpotifyMessage.d.ts +3 -0
  107. package/lib/components/Chat/SpotifyMessage/SpotifyMessage.js +28 -0
  108. package/lib/components/Chat/SystemMessage/SystemMessage.css +1 -0
  109. package/lib/components/Chat/SystemMessage/SystemMessage.d.ts +3 -0
  110. package/lib/components/Chat/SystemMessage/SystemMessage.js +14 -0
  111. package/lib/components/Chat/VideoMessage/VideoMessage.css +1 -0
  112. package/lib/components/Chat/VideoMessage/VideoMessage.d.ts +3 -0
  113. package/lib/components/Chat/VideoMessage/VideoMessage.js +88 -0
  114. package/lib/components/Chat/assets/img/leftArrow.svg +6 -0
  115. package/lib/components/Chat/assets/img/rightArrow.svg +6 -0
  116. package/lib/components/Chat/index.d.ts +25 -0
  117. package/lib/components/Chat/index.js +27 -0
  118. package/lib/components/Chat/type.d.js +52 -0
  119. package/lib/components/Chat/utils/formatRelativeDate.d.ts +4 -0
  120. package/lib/components/Chat/utils/formatRelativeDate.js +110 -0
  121. package/lib/components/Checkbox/Checkbox.d.ts +15 -0
  122. package/lib/components/Checkbox/Checkbox.js +106 -0
  123. package/lib/components/Checkbox/Checkbox.stories.js +51 -0
  124. package/lib/components/ComponentUtils/renderWithAsChild.d.ts +9 -0
  125. package/lib/components/ComponentUtils/renderWithAsChild.js +27 -0
  126. package/lib/components/Container/Container.d.ts +7 -0
  127. package/lib/components/Container/Container.js +16 -0
  128. package/lib/components/Container/Container.stories.js +36 -0
  129. package/lib/components/DateField/DateField.d.ts +22 -0
  130. package/lib/components/DateField/DateField.js +145 -0
  131. package/lib/components/DateField/DateField.stories.js +125 -0
  132. package/lib/components/DateField/DatePicker.d.ts +9 -0
  133. package/lib/components/DateField/DatePicker.js +205 -0
  134. package/lib/components/DateField/DatePicker.stories.js +33 -0
  135. package/lib/components/DescriptionList/DescriptionList.d.ts +4 -0
  136. package/lib/components/DescriptionList/DescriptionList.js +19 -0
  137. package/lib/components/DescriptionList/DescriptionList.stories.js +34 -0
  138. package/lib/components/Dialog/Dialog.d.ts +25 -0
  139. package/lib/components/Dialog/Dialog.js +66 -0
  140. package/lib/components/Dialog/Dialog.stories.js +88 -0
  141. package/lib/components/DropUpload/DropUpload.d.ts +37 -0
  142. package/lib/components/DropUpload/DropUpload.js +323 -0
  143. package/lib/components/DropUpload/DropUpload.stories.js +48 -0
  144. package/lib/components/Empty/Empty.d.ts +11 -0
  145. package/lib/components/Empty/Empty.js +39 -0
  146. package/lib/components/Empty/Empty.stories.js +52 -0
  147. package/lib/components/EmptyState/EmptyState.d.ts +15 -0
  148. package/lib/components/EmptyState/EmptyState.js +44 -0
  149. package/lib/components/EmptyState/EmptyState.stories.js +36 -0
  150. package/lib/components/ErrorMessage/ErrorMessage.d.ts +7 -0
  151. package/lib/components/ErrorMessage/ErrorMessage.js +20 -0
  152. package/lib/components/ErrorMessage/ErrorMessage.stories.js +25 -0
  153. package/lib/components/FaqSection/FaqSection.d.ts +14 -0
  154. package/lib/components/FaqSection/FaqSection.js +37 -0
  155. package/lib/components/FaqSection/FaqSection.stories.js +31 -0
  156. package/lib/components/Fieldset/Fieldset.d.ts +21 -0
  157. package/lib/components/Fieldset/Fieldset.js +39 -0
  158. package/lib/components/Fieldset/Fieldset.stories.js +42 -0
  159. package/lib/components/Footer/Footer.d.ts +26 -0
  160. package/lib/components/Footer/Footer.js +119 -0
  161. package/lib/components/Footer/Footer.stories.js +184 -0
  162. package/lib/components/Form/Form.d.ts +42 -0
  163. package/lib/components/Form/Form.js +198 -0
  164. package/lib/components/Form/Form.stories.js +65 -0
  165. package/lib/components/Form/FormContext.d.ts +35 -0
  166. package/lib/components/Form/FormContext.js +71 -0
  167. package/lib/components/GothamRoute/GothamRoute.d.ts +0 -0
  168. package/lib/components/GothamRoute/GothamRoute.js +56 -0
  169. package/lib/components/GothamRouter/GothamRouter.d.ts +0 -0
  170. package/lib/components/GothamRouter/GothamRouter.js +52 -0
  171. package/lib/components/Heading/Heading.d.ts +7 -0
  172. package/lib/components/Heading/Heading.js +20 -0
  173. package/lib/components/Heading/Heading.stories.js +51 -0
  174. package/lib/components/IncentiveGrid/IncentiveGrid.d.ts +15 -0
  175. package/lib/components/IncentiveGrid/IncentiveGrid.js +34 -0
  176. package/lib/components/IncentiveGrid/IncentiveGrid.stories.js +41 -0
  177. package/lib/components/InputField/InputField.d.ts +25 -0
  178. package/lib/components/InputField/InputField.js +68 -0
  179. package/lib/components/InputField/InputField.stories.js +58 -0
  180. package/lib/components/Item/Item.d.ts +25 -0
  181. package/lib/components/Item/Item.js +79 -0
  182. package/lib/components/Item/Item.stories.js +94 -0
  183. package/lib/components/Kbd/Kbd.d.ts +2 -0
  184. package/lib/components/Kbd/Kbd.js +9 -0
  185. package/lib/components/Kbd/Kbd.stories.js +24 -0
  186. package/lib/components/Label/Label.d.ts +11 -0
  187. package/lib/components/Label/Label.js +23 -0
  188. package/lib/components/Label/Label.stories.js +38 -0
  189. package/lib/components/Link/Link.d.ts +7 -0
  190. package/lib/components/Link/Link.js +13 -0
  191. package/lib/components/Link/Link.stories.js +28 -0
  192. package/lib/components/ListContainer/ListContainer.d.ts +8 -0
  193. package/lib/components/ListContainer/ListContainer.js +14 -0
  194. package/lib/components/ListContainer/ListContainer.stories.js +45 -0
  195. package/lib/components/Loader/Loader.d.ts +9 -0
  196. package/lib/components/Loader/Loader.js +36 -0
  197. package/lib/components/Loader/Loader.stories.js +94 -0
  198. package/lib/components/LogoCloud/LogoCloud.d.ts +15 -0
  199. package/lib/components/LogoCloud/LogoCloud.js +43 -0
  200. package/lib/components/LogoCloud/LogoCloud.stories.js +28 -0
  201. package/lib/components/Markdown/Markdown.d.ts +8 -0
  202. package/lib/components/Markdown/Markdown.js +64 -0
  203. package/lib/components/Markdown/Markdown.stories.js +34 -0
  204. package/lib/components/MediaLightbox/MediaLightbox.d.ts +22 -0
  205. package/lib/components/MediaLightbox/MediaLightbox.js +80 -0
  206. package/lib/components/MediaObject/MediaObject.d.ts +8 -0
  207. package/lib/components/MediaObject/MediaObject.js +37 -0
  208. package/lib/components/MediaObject/MediaObject.stories.js +28 -0
  209. package/lib/components/Navbar/Navbar.d.ts +43 -0
  210. package/lib/components/Navbar/Navbar.js +213 -0
  211. package/lib/components/Navbar/Navbar.stories.js +235 -0
  212. package/lib/components/NotFound/NotFound.d.ts +34 -0
  213. package/lib/components/NotFound/NotFound.js +351 -0
  214. package/lib/components/NotFound/NotFound.stories.js +80 -0
  215. package/lib/components/Notify/Notify.d.ts +18 -0
  216. package/lib/components/Notify/Notify.js +178 -0
  217. package/lib/components/Notify/Notify.stories.js +148 -0
  218. package/lib/components/Notify/NotifyExample.d.ts +1 -0
  219. package/lib/components/Notify/NotifyExample.js +174 -0
  220. package/lib/components/Notify/README.md +103 -0
  221. package/lib/components/Pagination/Pagination.d.ts +18 -0
  222. package/lib/components/Pagination/Pagination.js +225 -0
  223. package/lib/components/Pagination/Pagination.stories.js +69 -0
  224. package/lib/components/PasswordStrengthMeter/PasswordStrengthMeter.d.ts +12 -0
  225. package/lib/components/PasswordStrengthMeter/PasswordStrengthMeter.js +88 -0
  226. package/lib/components/PasswordStrengthMeter/PasswordStrengthMeter.stories.js +16 -0
  227. package/lib/components/PaymentMethodPanel/PaymentMethodPanel.d.ts +18 -0
  228. package/lib/components/PaymentMethodPanel/PaymentMethodPanel.js +113 -0
  229. package/lib/components/PaymentMethodPanel/PaymentMethodPanel.stories.js +88 -0
  230. package/lib/components/Pricing/Pricing.d.ts +78 -0
  231. package/lib/components/Pricing/Pricing.js +764 -0
  232. package/lib/components/Pricing/Pricing.stories.js +146 -0
  233. package/lib/components/ProductGrid/ProductGrid.d.ts +23 -0
  234. package/lib/components/ProductGrid/ProductGrid.js +79 -0
  235. package/lib/components/ProductGrid/ProductGrid.stories.js +50 -0
  236. package/lib/components/ProgressSteps/ProgressSteps.d.ts +13 -0
  237. package/lib/components/ProgressSteps/ProgressSteps.js +51 -0
  238. package/lib/components/ProgressSteps/ProgressSteps.stories.js +35 -0
  239. package/lib/components/RadioField/RadioField.d.ts +16 -0
  240. package/lib/components/RadioField/RadioField.js +63 -0
  241. package/lib/components/RadioField/RadioField.stories.js +140 -0
  242. package/lib/components/ReviewList/ReviewList.d.ts +15 -0
  243. package/lib/components/ReviewList/ReviewList.js +51 -0
  244. package/lib/components/ReviewList/ReviewList.stories.js +29 -0
  245. package/lib/components/SectionHeader/SectionHeader.d.ts +9 -0
  246. package/lib/components/SectionHeader/SectionHeader.js +36 -0
  247. package/lib/components/SectionHeader/SectionHeader.stories.js +35 -0
  248. package/lib/components/SelectField/SelectField.d.ts +18 -0
  249. package/lib/components/SelectField/SelectField.js +145 -0
  250. package/lib/components/SelectField/SelectField.stories.js +155 -0
  251. package/lib/components/SelectField/SelectOption.d.ts +13 -0
  252. package/lib/components/SelectField/SelectOption.js +40 -0
  253. package/lib/components/SelectField/SelectOption.stories.js +40 -0
  254. package/lib/components/Separator/Separator.d.ts +6 -0
  255. package/lib/components/Separator/Separator.js +13 -0
  256. package/lib/components/Separator/Separator.stories.js +70 -0
  257. package/lib/components/Skeleton/Skeleton.d.ts +2 -0
  258. package/lib/components/Skeleton/Skeleton.js +9 -0
  259. package/lib/components/Skeleton/Skeleton.stories.js +24 -0
  260. package/lib/components/Svg/Svg.d.ts +9 -0
  261. package/lib/components/Svg/Svg.js +25 -0
  262. package/lib/components/Svg/Svg.stories.js +34 -0
  263. package/lib/components/Switch/Switch.d.ts +12 -0
  264. package/lib/components/Switch/Switch.js +54 -0
  265. package/lib/components/Switch/Switch.stories.js +61 -0
  266. package/lib/components/Table/Table.d.ts +18 -0
  267. package/lib/components/Table/Table.js +99 -0
  268. package/lib/components/Table/Table.stories.js +79 -0
  269. package/lib/components/Tabs/Tabs.d.ts +17 -0
  270. package/lib/components/Tabs/Tabs.js +85 -0
  271. package/lib/components/Tabs/Tabs.stories.js +45 -0
  272. package/lib/components/Text/Text.d.ts +5 -0
  273. package/lib/components/Text/Text.js +24 -0
  274. package/lib/components/Text/Text.stories.js +35 -0
  275. package/lib/components/TextField/TextField.d.ts +31 -0
  276. package/lib/components/TextField/TextField.js +91 -0
  277. package/lib/components/TextField/TextField.stories.js +158 -0
  278. package/lib/components/Textarea/Textarea.d.ts +5 -0
  279. package/lib/components/Textarea/Textarea.js +10 -0
  280. package/lib/components/Textarea/Textarea.stories.js +32 -0
  281. package/lib/components/index.d.ts +60 -0
  282. package/lib/components/index.js +62 -0
  283. package/lib/config/appConfig.d.ts +5 -0
  284. package/lib/config/appConfig.js +20 -0
  285. package/lib/constants/AuthConstants.d.ts +8 -0
  286. package/lib/constants/AuthConstants.js +9 -0
  287. package/lib/constants/GothamConstants.d.ts +24 -0
  288. package/lib/constants/GothamConstants.js +25 -0
  289. package/lib/constants/MarkdownConstants.d.ts +8 -0
  290. package/lib/constants/MarkdownConstants.js +9 -0
  291. package/lib/constants/MessageConstants.d.ts +10 -0
  292. package/lib/constants/MessageConstants.js +11 -0
  293. package/lib/docs/analytics.md +231 -0
  294. package/lib/docs/api-reference.md +364 -0
  295. package/lib/docs/comparison.md +83 -0
  296. package/lib/docs/containers.md +11 -0
  297. package/lib/docs/gettingStarted.md +338 -0
  298. package/lib/docs/payments.md +79 -0
  299. package/lib/editor/CodeEditor.d.ts +11 -0
  300. package/lib/editor/CodeEditor.js +15 -0
  301. package/lib/editor/CodeEditor.stories.js +24 -0
  302. package/lib/editor/index.d.ts +1 -0
  303. package/lib/editor/index.js +3 -0
  304. package/lib/errors/UserError.d.ts +8 -0
  305. package/lib/errors/UserError.js +12 -0
  306. package/lib/examples/OptimizedFormExample.d.ts +1 -0
  307. package/lib/examples/OptimizedFormExample.js +130 -0
  308. package/lib/form/index.d.ts +11 -0
  309. package/lib/form/index.js +13 -0
  310. package/lib/hooks/useIsMobile.d.ts +1 -0
  311. package/lib/hooks/useIsMobile.js +12 -0
  312. package/lib/i18n/index.d.ts +8 -0
  313. package/lib/i18n/index.js +7 -0
  314. package/lib/icons/Dual Ring-1s-100px.svg +1 -0
  315. package/lib/icons/gotham-logo.svg +17 -0
  316. package/lib/icons/gotham.svg +8 -0
  317. package/lib/icons/index.d.ts +5 -0
  318. package/lib/icons/index.js +6 -0
  319. package/lib/icons/pencil.svg +6 -0
  320. package/lib/img/arkhamjs-logo.png +0 -0
  321. package/lib/img/logo.png +0 -0
  322. package/lib/index.d.ts +25 -0
  323. package/lib/index.js +25 -0
  324. package/lib/router/index.d.ts +5 -0
  325. package/lib/router/index.js +6 -0
  326. package/lib/stores/GothamAppStore.d.ts +35 -0
  327. package/lib/stores/GothamAppStore.js +70 -0
  328. package/lib/stories/Button.d.ts +28 -0
  329. package/lib/stories/Button.js +22 -0
  330. package/lib/stories/Header.d.ts +12 -0
  331. package/lib/stories/Header.js +78 -0
  332. package/lib/stories/Page.d.ts +3 -0
  333. package/lib/stories/Page.js +108 -0
  334. package/lib/stories/assets/accessibility.png +0 -0
  335. package/lib/stories/assets/accessibility.svg +5 -0
  336. package/lib/stories/assets/addon-library.png +0 -0
  337. package/lib/stories/assets/assets.png +0 -0
  338. package/lib/stories/assets/context.png +0 -0
  339. package/lib/stories/assets/discord.svg +15 -0
  340. package/lib/stories/assets/docs.png +0 -0
  341. package/lib/stories/assets/figma-plugin.png +0 -0
  342. package/lib/stories/assets/github.svg +3 -0
  343. package/lib/stories/assets/share.png +0 -0
  344. package/lib/stories/assets/styling.png +0 -0
  345. package/lib/stories/assets/testing.png +0 -0
  346. package/lib/stories/assets/theming.png +0 -0
  347. package/lib/stories/assets/tutorials.svg +12 -0
  348. package/lib/stories/assets/youtube.svg +4 -0
  349. package/lib/stories/button.css +1 -0
  350. package/lib/stories/header.css +1 -0
  351. package/lib/stories/page.css +1 -0
  352. package/lib/styles/chat.css +1 -0
  353. package/lib/styles/index.css +2 -0
  354. package/lib/styles/tailwind.css +1 -0
  355. package/lib/types/assets.d.js +2 -0
  356. package/lib/types/gotham.d.ts +12 -0
  357. package/lib/types/gotham.js +3 -0
  358. package/lib/types/vitest-globals.d.js +3 -0
  359. package/lib/utils/GothamContext.d.ts +14 -0
  360. package/lib/utils/GothamContext.js +14 -0
  361. package/lib/utils/awsRum.d.ts +23 -0
  362. package/lib/utils/awsRum.js +50 -0
  363. package/lib/utils/colorUtils.d.ts +20 -0
  364. package/lib/utils/colorUtils.js +499 -0
  365. package/lib/utils/contentUtils.d.ts +2 -0
  366. package/lib/utils/contentUtils.js +18 -0
  367. package/lib/utils/i18nUtil.d.ts +1 -0
  368. package/lib/utils/i18nUtil.js +7 -0
  369. package/lib/utils/imageUtils.d.ts +5 -0
  370. package/lib/utils/imageUtils.js +48 -0
  371. package/lib/utils/interactionAnalytics.d.ts +10 -0
  372. package/lib/utils/interactionAnalytics.js +142 -0
  373. package/lib/utils/navEventQueue.d.ts +6 -0
  374. package/lib/utils/navEventQueue.js +50 -0
  375. package/lib/utils/refUtils.d.ts +2 -0
  376. package/lib/utils/refUtils.js +11 -0
  377. package/lib/utils/routeUtils.d.ts +12 -0
  378. package/lib/utils/routeUtils.js +109 -0
  379. package/lib/utils/sizeUtils.d.ts +5 -0
  380. package/lib/utils/sizeUtils.js +6 -0
  381. package/lib/utils/storyInteractions.d.ts +6 -0
  382. package/lib/utils/storyInteractions.js +45 -0
  383. package/lib/utils/storyUtils.d.ts +1 -0
  384. package/lib/utils/storyUtils.js +11 -0
  385. package/lib/utils/testUtils.d.ts +3 -0
  386. package/lib/utils/testUtils.js +56 -0
  387. package/lib/utils/timer.d.ts +21 -0
  388. package/lib/utils/timer.js +38 -0
  389. package/lib/utils/useBreakpoint.d.ts +6 -0
  390. package/lib/utils/useBreakpoint.js +56 -0
  391. package/lib/utils/viewPerformance.d.ts +34 -0
  392. package/lib/utils/viewPerformance.js +103 -0
  393. package/lib/utils/viewUtils.d.ts +9 -0
  394. package/lib/utils/viewUtils.js +44 -0
  395. package/lib/views/AuthSignInView/AuthSignInView.d.ts +20 -0
  396. package/lib/views/AuthSignInView/AuthSignInView.js +107 -0
  397. package/lib/views/AuthSignInView/AuthSignInView.stories.js +29 -0
  398. package/lib/views/AuthSignUpView/AuthSignUpView.d.ts +21 -0
  399. package/lib/views/AuthSignUpView/AuthSignUpView.js +146 -0
  400. package/lib/views/AuthSignUpView/AuthSignUpView.stories.js +30 -0
  401. package/lib/views/AuthView/AuthView.d.ts +16 -0
  402. package/lib/views/AuthView/AuthView.js +60 -0
  403. package/lib/views/AuthView/AuthView.stories.js +34 -0
  404. package/lib/views/DefaultView/DefaultView.d.ts +5 -0
  405. package/lib/views/DefaultView/DefaultView.js +134 -0
  406. package/lib/views/Gotham/Gotham.d.ts +44 -0
  407. package/lib/views/Gotham/Gotham.js +24 -0
  408. package/lib/views/Gotham/Gotham.stories.js +31 -0
  409. package/lib/views/Gotham/GothamListeners.d.ts +0 -0
  410. package/lib/views/Gotham/GothamListeners.js +2 -0
  411. package/lib/views/Gotham/GothamProvider.d.ts +43 -0
  412. package/lib/views/Gotham/GothamProvider.js +217 -0
  413. package/lib/views/Gotham/GothamRoot.d.ts +6 -0
  414. package/lib/views/Gotham/GothamRoot.js +69 -0
  415. package/lib/views/HomeView/HomeView.d.ts +10 -0
  416. package/lib/views/HomeView/HomeView.js +134 -0
  417. package/lib/views/LoaderView/LoaderView.d.ts +8 -0
  418. package/lib/views/LoaderView/LoaderView.js +30 -0
  419. package/lib/views/MenuView/MenuView.d.ts +13 -0
  420. package/lib/views/MenuView/MenuView.js +305 -0
  421. package/lib/views/NotFoundView/NotFoundView.d.ts +2 -0
  422. package/lib/views/NotFoundView/NotFoundView.js +12 -0
  423. package/lib/views/index.d.ts +11 -0
  424. package/lib/views/index.js +13 -0
  425. package/package.json +202 -0
  426. package/styles/tailwind.css +1 -0
@@ -0,0 +1,227 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { cn } from '@nlabs/utils';
3
+ import { ChevronDown as ArrowDown01Icon, ChevronRight as ArrowRight01Icon, CalendarDays as Calendar04Icon, MessageSquare as MessageMultiple01Icon, Ellipsis as MoreHorizontalIcon, Video as Video01Icon } from 'lucide-react';
4
+ import { useState } from 'react';
5
+ import { Avatar } from '../Avatar/Avatar.js';
6
+ import { Dropdown } from '../Dropdown/Dropdown.js';
7
+ import { formatRelativeDate } from '../utils/formatRelativeDate.js';
8
+ export const MeetingMessage = ({ date, dateString, title, subject, collapseTitle, moreItems, participants, dataSource, onClick, onMeetingTitleClick, onMeetingVideoLinkClick, onMeetingMoreSelect, ...props })=>{
9
+ const [toogle, setToogle] = useState(false);
10
+ const PARTICIPANT_LIMIT = props.participantsLimit;
11
+ const dateText = dateString ? dateString : date && formatRelativeDate(date);
12
+ const _onMeetingLinkClick = (item, index, event)=>{
13
+ if (onMeetingTitleClick instanceof Function) {
14
+ onMeetingTitleClick(item, index, event);
15
+ }
16
+ };
17
+ const _onMeetingVideoLinkClick = (item, index, event)=>{
18
+ if (onMeetingVideoLinkClick instanceof Function) {
19
+ onMeetingVideoLinkClick(item, index, event);
20
+ }
21
+ };
22
+ const toggleClick = ()=>{
23
+ setToogle(!toogle);
24
+ };
25
+ return /*#__PURE__*/ _jsx("div", {
26
+ className: "rce-mbox-mtmg",
27
+ children: /*#__PURE__*/ _jsxs("div", {
28
+ className: "rce-mtmg",
29
+ children: [
30
+ /*#__PURE__*/ _jsx("div", {
31
+ className: "rce-mtmg-subject",
32
+ children: subject || 'Unknown Meeting'
33
+ }),
34
+ /*#__PURE__*/ _jsxs("div", {
35
+ className: "rce-mtmg-body",
36
+ onClick: onClick,
37
+ children: [
38
+ /*#__PURE__*/ _jsxs("div", {
39
+ className: "rce-mtmg-item",
40
+ children: [
41
+ /*#__PURE__*/ _jsx(Calendar04Icon, {}),
42
+ /*#__PURE__*/ _jsxs("div", {
43
+ className: "rce-mtmg-content",
44
+ children: [
45
+ /*#__PURE__*/ _jsx("span", {
46
+ className: "rce-mtmg-title",
47
+ children: title
48
+ }),
49
+ /*#__PURE__*/ _jsx("span", {
50
+ className: "rce-mtmg-date",
51
+ children: dateText
52
+ })
53
+ ]
54
+ })
55
+ ]
56
+ }),
57
+ onMeetingMoreSelect && moreItems && moreItems.length > 0 && /*#__PURE__*/ _jsx("div", {
58
+ children: /*#__PURE__*/ _jsx(Dropdown, {
59
+ animationType: "bottom",
60
+ animationPosition: "norteast",
61
+ buttonProps: {
62
+ className: 'rce-mtmg-right-icon',
63
+ icon: {
64
+ component: /*#__PURE__*/ _jsx(MoreHorizontalIcon, {}),
65
+ size: 24
66
+ }
67
+ },
68
+ items: moreItems,
69
+ onSelect: onMeetingMoreSelect
70
+ })
71
+ })
72
+ ]
73
+ }),
74
+ /*#__PURE__*/ _jsx("div", {
75
+ className: "rce-mtmg-body-bottom",
76
+ onClick: toggleClick,
77
+ children: toogle === true ? /*#__PURE__*/ _jsxs("div", {
78
+ className: "rce-mtmg-bottom--tptitle",
79
+ children: [
80
+ /*#__PURE__*/ _jsx(ArrowDown01Icon, {}),
81
+ /*#__PURE__*/ _jsx("span", {
82
+ children: collapseTitle
83
+ })
84
+ ]
85
+ }) : /*#__PURE__*/ _jsxs("div", {
86
+ className: "rce-mtmg-body-bottom--bttitle",
87
+ children: [
88
+ /*#__PURE__*/ _jsx(ArrowRight01Icon, {}),
89
+ /*#__PURE__*/ _jsxs("span", {
90
+ children: [
91
+ participants?.slice(0, PARTICIPANT_LIMIT).map((x)=>x.title || 'Unknow').join(', '),
92
+ participants && PARTICIPANT_LIMIT && participants.length > PARTICIPANT_LIMIT && `, +${participants.length - PARTICIPANT_LIMIT}`
93
+ ]
94
+ })
95
+ ]
96
+ })
97
+ }),
98
+ /*#__PURE__*/ _jsx("div", {
99
+ className: cn('rce-mtmg-toogleContent', {
100
+ 'rce-mtmg-toogleContent--click': toogle === true
101
+ }),
102
+ children: dataSource && dataSource.map((x, i)=>/*#__PURE__*/ _jsxs("div", {
103
+ children: [
104
+ !x.event && /*#__PURE__*/ _jsxs("div", {
105
+ className: "rce-mitem",
106
+ children: [
107
+ /*#__PURE__*/ _jsx("div", {
108
+ className: cn('rce-mitem avatar', {
109
+ 'rce-mitem no-avatar': !x.avatar
110
+ }),
111
+ children: x.avatar ? /*#__PURE__*/ _jsx(Avatar, {
112
+ src: x.avatar
113
+ }) : /*#__PURE__*/ _jsx(MessageMultiple01Icon, {})
114
+ }),
115
+ /*#__PURE__*/ _jsxs("div", {
116
+ className: "rce-mitem-body",
117
+ children: [
118
+ /*#__PURE__*/ _jsxs("div", {
119
+ className: "rce-mitem-body--top",
120
+ children: [
121
+ /*#__PURE__*/ _jsx("div", {
122
+ className: "rce-mitem-body--top-title",
123
+ onClick: (e)=>_onMeetingLinkClick(x, i, e),
124
+ children: x.title
125
+ }),
126
+ /*#__PURE__*/ _jsx("div", {
127
+ className: "rce-mitem-body--top-time",
128
+ children: x.dateString ? x.dateString : x.date && x.date && formatRelativeDate(x.date)
129
+ })
130
+ ]
131
+ }),
132
+ /*#__PURE__*/ _jsx("div", {
133
+ className: "rce-mitem-body--bottom",
134
+ children: /*#__PURE__*/ _jsx("div", {
135
+ className: "rce-mitem-body--bottom-title",
136
+ children: x.message
137
+ })
138
+ })
139
+ ]
140
+ })
141
+ ]
142
+ }),
143
+ x.event && /*#__PURE__*/ _jsx("div", {
144
+ className: "rce-mitem-event",
145
+ children: /*#__PURE__*/ _jsxs("div", {
146
+ className: "rce-mitem-bottom-body",
147
+ children: [
148
+ /*#__PURE__*/ _jsx("div", {
149
+ className: "rce-mitem-body avatar",
150
+ children: /*#__PURE__*/ _jsx(Video01Icon, {})
151
+ }),
152
+ /*#__PURE__*/ _jsxs("div", {
153
+ className: "rce-mitem-bottom-body-top",
154
+ children: [
155
+ x.event.title,
156
+ /*#__PURE__*/ _jsx("div", {
157
+ className: "rce-mitem-body--top-time",
158
+ children: x.dateString ? x.dateString : x.date && formatRelativeDate(x.date)
159
+ }),
160
+ /*#__PURE__*/ _jsx("div", {
161
+ className: "rce-mitem-avatar-content",
162
+ children: /*#__PURE__*/ _jsxs("div", {
163
+ className: "rce-mitem-avatar",
164
+ children: [
165
+ x.event.avatars && // x.event.avatars.slice(0, x.event.avatarsLimit).map((x, i) => x instanceof Avatar ? x : (
166
+ x.event.avatars.slice(0, x.event.avatarsLimit).map((x, i)=>/*#__PURE__*/ _jsx(Avatar, {
167
+ src: x.src
168
+ }, i)),
169
+ x.event.avatars && x.event.avatarsLimit && x.event.avatars.length > x.event.avatarsLimit && /*#__PURE__*/ _jsx("div", {
170
+ className: "rce-mitem-length rce-mitem-tooltip",
171
+ title: x.event.avatars.slice(x.event.avatarsLimit, x.event.avatars.length).map((avatar)=>avatar.title).join(',').toString(),
172
+ children: /*#__PURE__*/ _jsx("span", {
173
+ className: "rce-mitem-tooltip-text",
174
+ children: `+${x.event.avatars.length - x.event.avatarsLimit}`
175
+ })
176
+ })
177
+ ]
178
+ })
179
+ }),
180
+ x.record && /*#__PURE__*/ _jsx("div", {
181
+ className: "rce-mtmg-call-record",
182
+ children: /*#__PURE__*/ _jsxs("div", {
183
+ className: "rce-mtmg-call-body",
184
+ children: [
185
+ /*#__PURE__*/ _jsxs("div", {
186
+ onClick: (e)=>_onMeetingVideoLinkClick(x, i, e),
187
+ className: "rce-mtmg-call-avatars",
188
+ children: [
189
+ /*#__PURE__*/ _jsx(Avatar, {
190
+ className: 'rce-mtmg-call-avatars',
191
+ src: x.record.avatar
192
+ }),
193
+ /*#__PURE__*/ _jsx("div", {
194
+ className: 'rce-mtmg-record-time',
195
+ children: x.record.time
196
+ })
197
+ ]
198
+ }),
199
+ /*#__PURE__*/ _jsxs("div", {
200
+ className: "rce-mtmg-call-body-title",
201
+ children: [
202
+ /*#__PURE__*/ _jsx("span", {
203
+ children: x.record.title
204
+ }),
205
+ /*#__PURE__*/ _jsx("div", {
206
+ className: "rce-mtmg-call-body-bottom",
207
+ children: x.record.savedBy
208
+ })
209
+ ]
210
+ })
211
+ ]
212
+ })
213
+ })
214
+ ]
215
+ })
216
+ ]
217
+ })
218
+ })
219
+ ]
220
+ }, i))
221
+ })
222
+ ]
223
+ })
224
+ });
225
+ };
226
+
227
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9uaXRyb2c3L0RldmVsb3BtZW50L2dvdGhhbWpzL3NyYy9jb21wb25lbnRzL0NoYXQvTWVldGluZ01lc3NhZ2UvTWVldGluZ01lc3NhZ2UudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Y259IGZyb20gJ0BubGFicy91dGlscyc7XG5pbXBvcnQge1xuICBDaGV2cm9uRG93biBhcyBBcnJvd0Rvd24wMUljb24sXG4gIENoZXZyb25SaWdodCBhcyBBcnJvd1JpZ2h0MDFJY29uLFxuICBDYWxlbmRhckRheXMgYXMgQ2FsZW5kYXIwNEljb24sXG4gIE1lc3NhZ2VTcXVhcmUgYXMgTWVzc2FnZU11bHRpcGxlMDFJY29uLFxuICBFbGxpcHNpcyBhcyBNb3JlSG9yaXpvbnRhbEljb24sXG4gIFZpZGVvIGFzIFZpZGVvMDFJY29uXG59IGZyb20gJ2x1Y2lkZS1yZWFjdCc7XG5pbXBvcnQge3VzZVN0YXRlfSBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCB7QXZhdGFyfSBmcm9tICcuLi9BdmF0YXIvQXZhdGFyLmpzJztcbmltcG9ydCB7RHJvcGRvd259IGZyb20gJy4uL0Ryb3Bkb3duL0Ryb3Bkb3duLmpzJztcbmltcG9ydCB7Zm9ybWF0UmVsYXRpdmVEYXRlfSBmcm9tICcuLi91dGlscy9mb3JtYXRSZWxhdGl2ZURhdGUuanMnO1xuXG5pbXBvcnQgdHlwZSB7RkN9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB0eXBlIHtJTWVldGluZ01lc3NhZ2VQcm9wcywgTWVldGluZ01lc3NhZ2VFdmVudH0gZnJvbSAnLi4vdHlwZSc7XG5cbmV4cG9ydCBjb25zdCBNZWV0aW5nTWVzc2FnZTogRkM8SU1lZXRpbmdNZXNzYWdlUHJvcHM+ID0gKHtcbiAgZGF0ZSxcbiAgZGF0ZVN0cmluZyxcbiAgdGl0bGUsXG4gIHN1YmplY3QsXG4gIGNvbGxhcHNlVGl0bGUsXG4gIG1vcmVJdGVtcyxcbiAgcGFydGljaXBhbnRzLFxuICBkYXRhU291cmNlLFxuXG4gIG9uQ2xpY2ssXG4gIG9uTWVldGluZ1RpdGxlQ2xpY2ssXG4gIG9uTWVldGluZ1ZpZGVvTGlua0NsaWNrLFxuICBvbk1lZXRpbmdNb3JlU2VsZWN0LFxuICAuLi5wcm9wc1xufSkgPT4ge1xuICBjb25zdCBbdG9vZ2xlLCBzZXRUb29nbGVdID0gdXNlU3RhdGUoZmFsc2UpO1xuXG4gIGNvbnN0IFBBUlRJQ0lQQU5UX0xJTUlUID0gcHJvcHMucGFydGljaXBhbnRzTGltaXQ7XG4gIGNvbnN0IGRhdGVUZXh0ID0gZGF0ZVN0cmluZyA/IGRhdGVTdHJpbmcgOiBkYXRlICYmIGZvcm1hdFJlbGF0aXZlRGF0ZShkYXRlKTtcblxuICBjb25zdCBfb25NZWV0aW5nTGlua0NsaWNrOiBNZWV0aW5nTWVzc2FnZUV2ZW50ID0gKGl0ZW0sIGluZGV4LCBldmVudCkgPT4ge1xuICAgIGlmKG9uTWVldGluZ1RpdGxlQ2xpY2sgaW5zdGFuY2VvZiBGdW5jdGlvbikge1xuICAgICAgb25NZWV0aW5nVGl0bGVDbGljayhpdGVtLCBpbmRleCwgZXZlbnQpO1xuICAgIH1cbiAgfTtcblxuICBjb25zdCBfb25NZWV0aW5nVmlkZW9MaW5rQ2xpY2s6IE1lZXRpbmdNZXNzYWdlRXZlbnQgPSAoaXRlbSwgaW5kZXgsIGV2ZW50KSA9PiB7XG4gICAgaWYob25NZWV0aW5nVmlkZW9MaW5rQ2xpY2sgaW5zdGFuY2VvZiBGdW5jdGlvbikge1xuICAgICAgb25NZWV0aW5nVmlkZW9MaW5rQ2xpY2soaXRlbSwgaW5kZXgsIGV2ZW50KTtcbiAgICB9XG4gIH07XG5cbiAgY29uc3QgdG9nZ2xlQ2xpY2sgPSAoKSA9PiB7XG4gICAgc2V0VG9vZ2xlKCF0b29nbGUpO1xuICB9O1xuXG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9J3JjZS1tYm94LW10bWcnPlxuICAgICAgPGRpdiBjbGFzc05hbWU9J3JjZS1tdG1nJz5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9J3JjZS1tdG1nLXN1YmplY3QnPntzdWJqZWN0IHx8ICdVbmtub3duIE1lZXRpbmcnfTwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT0ncmNlLW10bWctYm9keScgb25DbGljaz17b25DbGlja30+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9J3JjZS1tdG1nLWl0ZW0nPlxuICAgICAgICAgICAgPENhbGVuZGFyMDRJY29uICAvPlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9J3JjZS1tdG1nLWNvbnRlbnQnPlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9J3JjZS1tdG1nLXRpdGxlJz57dGl0bGV9PC9zcGFuPlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9J3JjZS1tdG1nLWRhdGUnPntkYXRlVGV4dH08L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgIHtvbk1lZXRpbmdNb3JlU2VsZWN0ICYmIG1vcmVJdGVtcyAmJiBtb3JlSXRlbXMubGVuZ3RoID4gMCAmJiAoXG4gICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICA8RHJvcGRvd25cbiAgICAgICAgICAgICAgICBhbmltYXRpb25UeXBlPSdib3R0b20nXG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uUG9zaXRpb249J25vcnRlYXN0J1xuICAgICAgICAgICAgICAgIGJ1dHRvblByb3BzPXt7XG4gICAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICdyY2UtbXRtZy1yaWdodC1pY29uJyxcbiAgICAgICAgICAgICAgICAgIGljb246IHtcbiAgICAgICAgICAgICAgICAgICAgY29tcG9uZW50OiA8TW9yZUhvcml6b250YWxJY29uICAvPixcbiAgICAgICAgICAgICAgICAgICAgc2l6ZTogMjRcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgIGl0ZW1zPXttb3JlSXRlbXN9XG4gICAgICAgICAgICAgICAgb25TZWxlY3Q9e29uTWVldGluZ01vcmVTZWxlY3R9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICApfVxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9J3JjZS1tdG1nLWJvZHktYm90dG9tJyBvbkNsaWNrPXt0b2dnbGVDbGlja30+XG4gICAgICAgICAge3Rvb2dsZSA9PT0gdHJ1ZSA/IChcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPSdyY2UtbXRtZy1ib3R0b20tLXRwdGl0bGUnPlxuICAgICAgICAgICAgICA8QXJyb3dEb3duMDFJY29uICAvPlxuICAgICAgICAgICAgICA8c3Bhbj57Y29sbGFwc2VUaXRsZX08L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICApIDogKFxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9J3JjZS1tdG1nLWJvZHktYm90dG9tLS1idHRpdGxlJz5cbiAgICAgICAgICAgICAgPEFycm93UmlnaHQwMUljb24gIC8+XG4gICAgICAgICAgICAgIDxzcGFuPlxuICAgICAgICAgICAgICAgIHtwYXJ0aWNpcGFudHNcbiAgICAgICAgICAgICAgICAgID8uc2xpY2UoMCwgUEFSVElDSVBBTlRfTElNSVQpXG4gICAgICAgICAgICAgICAgICAubWFwKCh4KSA9PiB4LnRpdGxlIHx8ICdVbmtub3cnKVxuICAgICAgICAgICAgICAgICAgLmpvaW4oJywgJyl9XG4gICAgICAgICAgICAgICAge3BhcnRpY2lwYW50cyAmJlxuICAgICAgICAgICAgICAgICAgUEFSVElDSVBBTlRfTElNSVQgJiZcbiAgICAgICAgICAgICAgICAgIHBhcnRpY2lwYW50cy5sZW5ndGggPiBQQVJUSUNJUEFOVF9MSU1JVCAmJlxuICAgICAgICAgICAgICAgICAgYCwgKyR7cGFydGljaXBhbnRzLmxlbmd0aCAtIFBBUlRJQ0lQQU5UX0xJTUlUfWB9XG4gICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICl9XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Y24oJ3JjZS1tdG1nLXRvb2dsZUNvbnRlbnQnLCB7J3JjZS1tdG1nLXRvb2dsZUNvbnRlbnQtLWNsaWNrJzogdG9vZ2xlID09PSB0cnVlfSl9PlxuICAgICAgICAgIHtkYXRhU291cmNlICYmXG4gICAgICAgICAgICBkYXRhU291cmNlLm1hcCgoeCwgaSkgPT4gKFxuICAgICAgICAgICAgICA8ZGl2IGtleT17aX0+XG4gICAgICAgICAgICAgICAgeyF4LmV2ZW50ICYmIChcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPSdyY2UtbWl0ZW0nPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Y24oJ3JjZS1taXRlbSBhdmF0YXInLCB7J3JjZS1taXRlbSBuby1hdmF0YXInOiAheC5hdmF0YXJ9KX0+XG4gICAgICAgICAgICAgICAgICAgICAge3guYXZhdGFyID8gPEF2YXRhciBzcmM9e3guYXZhdGFyfSAvPiA6IDxNZXNzYWdlTXVsdGlwbGUwMUljb24gIC8+fVxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9J3JjZS1taXRlbS1ib2R5Jz5cbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT0ncmNlLW1pdGVtLWJvZHktLXRvcCc+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT0ncmNlLW1pdGVtLWJvZHktLXRvcC10aXRsZSdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KGU6IFJlYWN0Lk1vdXNlRXZlbnQ8SFRNTEVsZW1lbnQ+KSA9PiBfb25NZWV0aW5nTGlua0NsaWNrKHgsIGksIGUpfVxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICB7eC50aXRsZX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9J3JjZS1taXRlbS1ib2R5LS10b3AtdGltZSc+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHt4LmRhdGVTdHJpbmcgPyB4LmRhdGVTdHJpbmcgOiB4LmRhdGUgJiYgeC5kYXRlICYmIGZvcm1hdFJlbGF0aXZlRGF0ZSh4LmRhdGUpfVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9J3JjZS1taXRlbS1ib2R5LS1ib3R0b20nPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9J3JjZS1taXRlbS1ib2R5LS1ib3R0b20tdGl0bGUnPnt4Lm1lc3NhZ2V9PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICB7eC5ldmVudCAmJiAoXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT0ncmNlLW1pdGVtLWV2ZW50Jz5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9J3JjZS1taXRlbS1ib3R0b20tYm9keSc+XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9J3JjZS1taXRlbS1ib2R5IGF2YXRhcic+XG4gICAgICAgICAgICAgICAgICAgICAgICA8VmlkZW8wMUljb24gIC8+XG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9J3JjZS1taXRlbS1ib3R0b20tYm9keS10b3AnPlxuICAgICAgICAgICAgICAgICAgICAgICAge3guZXZlbnQudGl0bGV9XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT0ncmNlLW1pdGVtLWJvZHktLXRvcC10aW1lJz57eC5kYXRlU3RyaW5nID8geC5kYXRlU3RyaW5nIDogeC5kYXRlICYmIGZvcm1hdFJlbGF0aXZlRGF0ZSh4LmRhdGUpfTwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9J3JjZS1taXRlbS1hdmF0YXItY29udGVudCc+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT0ncmNlLW1pdGVtLWF2YXRhcic+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eC5ldmVudC5hdmF0YXJzICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8geC5ldmVudC5hdmF0YXJzLnNsaWNlKDAsIHguZXZlbnQuYXZhdGFyc0xpbWl0KS5tYXAoKHgsIGkpID0+IHggaW5zdGFuY2VvZiBBdmF0YXIgPyB4IDogKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHguZXZlbnQuYXZhdGFycy5zbGljZSgwLCB4LmV2ZW50LmF2YXRhcnNMaW1pdCkubWFwKCh4LCBpKSA9PiA8QXZhdGFyIGtleT17aX0gc3JjPXt4LnNyY30gLz4pfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3guZXZlbnQuYXZhdGFycyAmJiB4LmV2ZW50LmF2YXRhcnNMaW1pdCAmJiB4LmV2ZW50LmF2YXRhcnMubGVuZ3RoID4geC5ldmVudC5hdmF0YXJzTGltaXQgJiYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPSdyY2UtbWl0ZW0tbGVuZ3RoIHJjZS1taXRlbS10b29sdGlwJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlPXt4LmV2ZW50LmF2YXRhcnNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5zbGljZSh4LmV2ZW50LmF2YXRhcnNMaW1pdCwgeC5ldmVudC5hdmF0YXJzLmxlbmd0aClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5tYXAoKGF2YXRhcikgPT4gYXZhdGFyLnRpdGxlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmpvaW4oJywnKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnRvU3RyaW5nKCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9J3JjZS1taXRlbS10b29sdGlwLXRleHQnPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ArJHt4LmV2ZW50LmF2YXRhcnMubGVuZ3RoIC0geC5ldmVudC5hdmF0YXJzTGltaXR9YH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICB7eC5yZWNvcmQgJiYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT0ncmNlLW10bWctY2FsbC1yZWNvcmQnPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPSdyY2UtbXRtZy1jYWxsLWJvZHknPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZTogUmVhY3QuTW91c2VFdmVudDxIVE1MRWxlbWVudD4pID0+IF9vbk1lZXRpbmdWaWRlb0xpbmtDbGljayh4LCBpLCBlKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPSdyY2UtbXRtZy1jYWxsLWF2YXRhcnMnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxBdmF0YXIgY2xhc3NOYW1lPXsncmNlLW10bWctY2FsbC1hdmF0YXJzJ30gc3JjPXt4LnJlY29yZC5hdmF0YXJ9IC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXsncmNlLW10bWctcmVjb3JkLXRpbWUnfT57eC5yZWNvcmQudGltZX08L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9J3JjZS1tdG1nLWNhbGwtYm9keS10aXRsZSc+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPnt4LnJlY29yZC50aXRsZX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPSdyY2UtbXRtZy1jYWxsLWJvZHktYm90dG9tJz57eC5yZWNvcmQuc2F2ZWRCeX08L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICApKX1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG4iXSwibmFtZXMiOlsiY24iLCJDaGV2cm9uRG93biIsIkFycm93RG93bjAxSWNvbiIsIkNoZXZyb25SaWdodCIsIkFycm93UmlnaHQwMUljb24iLCJDYWxlbmRhckRheXMiLCJDYWxlbmRhcjA0SWNvbiIsIk1lc3NhZ2VTcXVhcmUiLCJNZXNzYWdlTXVsdGlwbGUwMUljb24iLCJFbGxpcHNpcyIsIk1vcmVIb3Jpem9udGFsSWNvbiIsIlZpZGVvIiwiVmlkZW8wMUljb24iLCJ1c2VTdGF0ZSIsIkF2YXRhciIsIkRyb3Bkb3duIiwiZm9ybWF0UmVsYXRpdmVEYXRlIiwiTWVldGluZ01lc3NhZ2UiLCJkYXRlIiwiZGF0ZVN0cmluZyIsInRpdGxlIiwic3ViamVjdCIsImNvbGxhcHNlVGl0bGUiLCJtb3JlSXRlbXMiLCJwYXJ0aWNpcGFudHMiLCJkYXRhU291cmNlIiwib25DbGljayIsIm9uTWVldGluZ1RpdGxlQ2xpY2siLCJvbk1lZXRpbmdWaWRlb0xpbmtDbGljayIsIm9uTWVldGluZ01vcmVTZWxlY3QiLCJwcm9wcyIsInRvb2dsZSIsInNldFRvb2dsZSIsIlBBUlRJQ0lQQU5UX0xJTUlUIiwicGFydGljaXBhbnRzTGltaXQiLCJkYXRlVGV4dCIsIl9vbk1lZXRpbmdMaW5rQ2xpY2siLCJpdGVtIiwiaW5kZXgiLCJldmVudCIsIkZ1bmN0aW9uIiwiX29uTWVldGluZ1ZpZGVvTGlua0NsaWNrIiwidG9nZ2xlQ2xpY2siLCJkaXYiLCJjbGFzc05hbWUiLCJzcGFuIiwibGVuZ3RoIiwiYW5pbWF0aW9uVHlwZSIsImFuaW1hdGlvblBvc2l0aW9uIiwiYnV0dG9uUHJvcHMiLCJpY29uIiwiY29tcG9uZW50Iiwic2l6ZSIsIml0ZW1zIiwib25TZWxlY3QiLCJzbGljZSIsIm1hcCIsIngiLCJqb2luIiwiaSIsImF2YXRhciIsInNyYyIsImUiLCJtZXNzYWdlIiwiYXZhdGFycyIsImF2YXRhcnNMaW1pdCIsInRvU3RyaW5nIiwicmVjb3JkIiwidGltZSIsInNhdmVkQnkiXSwibWFwcGluZ3MiOiI7QUFBQSxTQUFRQSxFQUFFLFFBQU8sZUFBZTtBQUNoQyxTQUNFQyxlQUFlQyxlQUFlLEVBQzlCQyxnQkFBZ0JDLGdCQUFnQixFQUNoQ0MsZ0JBQWdCQyxjQUFjLEVBQzlCQyxpQkFBaUJDLHFCQUFxQixFQUN0Q0MsWUFBWUMsa0JBQWtCLEVBQzlCQyxTQUFTQyxXQUFXLFFBQ2YsZUFBZTtBQUN0QixTQUFRQyxRQUFRLFFBQU8sUUFBUTtBQUUvQixTQUFRQyxNQUFNLFFBQU8sc0JBQXNCO0FBQzNDLFNBQVFDLFFBQVEsUUFBTywwQkFBMEI7QUFDakQsU0FBUUMsa0JBQWtCLFFBQU8saUNBQWlDO0FBS2xFLE9BQU8sTUFBTUMsaUJBQTJDLENBQUMsRUFDdkRDLElBQUksRUFDSkMsVUFBVSxFQUNWQyxLQUFLLEVBQ0xDLE9BQU8sRUFDUEMsYUFBYSxFQUNiQyxTQUFTLEVBQ1RDLFlBQVksRUFDWkMsVUFBVSxFQUVWQyxPQUFPLEVBQ1BDLG1CQUFtQixFQUNuQkMsdUJBQXVCLEVBQ3ZCQyxtQkFBbUIsRUFDbkIsR0FBR0MsT0FDSjtJQUNDLE1BQU0sQ0FBQ0MsUUFBUUMsVUFBVSxHQUFHbkIsU0FBUztJQUVyQyxNQUFNb0Isb0JBQW9CSCxNQUFNSSxpQkFBaUI7SUFDakQsTUFBTUMsV0FBV2hCLGFBQWFBLGFBQWFELFFBQVFGLG1CQUFtQkU7SUFFdEUsTUFBTWtCLHNCQUEyQyxDQUFDQyxNQUFNQyxPQUFPQztRQUM3RCxJQUFHWiwrQkFBK0JhLFVBQVU7WUFDMUNiLG9CQUFvQlUsTUFBTUMsT0FBT0M7UUFDbkM7SUFDRjtJQUVBLE1BQU1FLDJCQUFnRCxDQUFDSixNQUFNQyxPQUFPQztRQUNsRSxJQUFHWCxtQ0FBbUNZLFVBQVU7WUFDOUNaLHdCQUF3QlMsTUFBTUMsT0FBT0M7UUFDdkM7SUFDRjtJQUVBLE1BQU1HLGNBQWM7UUFDbEJWLFVBQVUs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
@@ -0,0 +1 @@
1
+ .rce-container-mbox{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;display:block;overflow-x:hidden;min-width:300px}.rce-mbox-forward{width:30px;height:30px;border-radius:20px;background:#fff;position:absolute;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-ms-flex-item-align:center;align-self:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-shadow:0 0 5px 0 #a4a4a4;box-shadow:0 0 5px 0 #a4a4a4;cursor:pointer;-webkit-transition:all .3s ease;transition:all .3s ease;top:0;bottom:0;margin:auto}.rce-mbox-forward-left{left:-50px}.rce-mbox-forward-left,.rce-mbox-forward-right{display:-webkit-box;display:-ms-flexbox;display:flex;opacity:0;visibility:hidden}.rce-mbox-forward-right{right:-50px}.rce-mbox-reply-btn-left{left:-85px}.rce-mbox-reply-btn-left,.rce-mbox-reply-btn-right{display:-webkit-box;display:-ms-flexbox;display:flex;opacity:0;visibility:hidden}.rce-mbox-reply-btn-right{right:-85px}.rce-container-mbox:hover .rce-mbox-forward-left,.rce-container-mbox:hover .rce-mbox-forward-right{opacity:1;visibility:visible}.rce-mbox-remove{width:30px;height:30px;border-radius:20px;background:#fff;position:absolute;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-ms-flex-item-align:center;align-self:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-shadow:0 0 5px 0 #a4a4a4;box-shadow:0 0 5px 0 #a4a4a4;cursor:pointer;-webkit-transition:all .3s ease;transition:all .3s ease;top:0;bottom:0;margin:auto}.rce-mbox-remove-left{left:-120px}.rce-mbox-remove-left,.rce-mbox-remove-right{display:-webkit-box;display:-ms-flexbox;display:flex;opacity:0;visibility:hidden}.rce-mbox-remove-right{right:-120px}.rce-container-mbox:hover .rce-mbox-remove-left,.rce-container-mbox:hover .rce-mbox-remove-right,.rce-container-mbox:hover .rce-mbox-reply-btn-left,.rce-container-mbox:hover .rce-mbox-reply-btn-right{opacity:1;visibility:visible}.rce-mbox{position:relative;background:#fff;border-radius:5px;border-top-left-radius:0;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;margin:3px 5px 3px 20px;padding:6px 9px 8px;float:left;min-width:140px}.rce-mbox.message-focus{animation-iteration-count:2;-webkit-animation-iteration-count:2;-webkit-animation-duration:1s;-webkit-animation-name:message-box-default-focus;animation-name:message-box-default-focus;animation-duration:1s}@-webkit-keyframes message-box-default-focus{0%{background-color:#fff}to{background-color:#dfdfdf}}.rce-mbox-body{margin:0;padding:0;position:relative}.rce-mbox.rce-mbox-right{float:right;margin-left:5px;margin-right:20px;border-top-right-radius:0;border-top-left-radius:5px}.rce-mbox.rce-mbox-right.message-focus{animation-iteration-count:2;-webkit-animation-iteration-count:2;-webkit-animation-duration:1s;-webkit-animation-name:message-box-right-focus;animation-name:message-box-right-focus;animation-duration:1s}@-webkit-keyframes message-box-right-focus{0%{background-color:#d4f1fb}to{background-color:#b8dae6}}.rce-mbox-text{font-size:13.6px;word-break:break-word}.rce-mbox-text-retracted{font-style:italic;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.rce-mbox-text.rce-mbox-text-retracted svg{margin-right:3px}.rce-mbox-text-retracted.left{color:#555555b3!important}.rce-mbox-text-retracted.right{color:#efefefb3!important}.rce-mbox-text:after{content:"\00a0\00a0\00a0\00a0\00a0\00a0\00a0\00a0\00a0\00a0\00a0\00a0\00a0\00a0\00a0\00a0\00a0\00a0\00a0\00a0\00a0\00a0\00a0\00a0\00a0\00a0"}.rce-mbox-time{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end;-webkit-box-align:center;-ms-flex-align:center;align-items:center;text-align:right;color:rgba(0,0,0,.45);font-size:12px;right:-4px;bottom:-5px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.rce-mbox-time.non-copiable:before{content:attr(data-text)}.rce-mbox-time-block{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end;right:0;bottom:0;left:0;margin-right:-6px;margin-left:-6px;padding-top:5px;padding-right:3px;padding-bottom:2px;background:-webkit-gradient(linear,left bottom,left top,from(rgba(0,0,0,.33)),to(transparent));background:linear-gradient(0deg,rgba(0,0,0,.33),transparent);border-bottom-left-radius:5px;border-bottom-right-radius:5px;color:#fff}.rce-mbox--clear-padding{padding-bottom:3px}.rce-mbox.rce-mbox--clear-notch{border-radius:5px 5px 5px 5px!important}.rce-mbox-right-notch{position:absolute;right:-6px;top:12px;width:12px;height:12px;fill:#fff}.rce-mbox-right-notch.message-focus{animation-iteration-count:2;-webkit-animation-iteration-count:2;-webkit-animation-duration:1s;-webkit-animation-name:message-right-notch-focus;animation-name:message-right-notch-focus;animation-duration:1s}@-webkit-keyframes message-right-notch-focus{0%{fill:#d4f1fb}to{fill:#b8dae6}}.rce-mbox-left-notch{position:absolute;left:-6px;top:12px;width:12px;height:12px;fill:#fff}.rce-mbox-left-notch.message-focus{animation-iteration-count:2;-webkit-animation-iteration-count:2;-webkit-animation-duration:1s;-webkit-animation-name:message-left-notch-focus;animation-name:message-left-notch-focus;animation-duration:1s}@-webkit-keyframes message-left-notch-focus{0%{fill:#fff}to{fill:#dfdfdf}}.rce-mbox-title{margin:0 0 10px;font-weight:700;font-size:14px;line-height:1.2;color:#242842;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:10px}.rce-mbox-title--clear{margin-bottom:10px}.rce-mbox-status{margin-left:3px;font-size:15px;height:15px}.rce-mbox-title>.rce-avatar-container{-webkit-box-flex:0;-ms-flex:0 0 34px;flex:0 0 34px;width:34px;height:34px;margin-right:0;overflow:hidden}.rce-mbox-forwardedMessage{position:relative;overflow:hidden;display:-webkit-box;display:-ms-flexbox;display:flex;margin:-1px -6px 6px;border-radius:5px;padding:0 0 0 5px;-webkit-transition:.2s;transition:.2s;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.rce-mbox-forwarded-message{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding:1px;font-size:13px;font-style:italic}
@@ -0,0 +1,3 @@
1
+ import type { FC } from 'react';
2
+ import type { MessageBoxType } from '../type';
3
+ export declare const MessageBox: FC<MessageBoxType>;
@@ -0,0 +1,263 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { cn } from '@nlabs/utils';
3
+ import { Clock3 as ClockIcon, Trash2 as Delete02Icon, Share2 as LinkForwardIcon, Reply as MessageOutgoing01Icon, Check as Tick02Icon, CheckCheck as TickDouble02Icon, Ban as UnavailableIcon } from 'lucide-react';
4
+ import { useEffect, useRef } from 'react';
5
+ import { AudioMessage } from '../AudioMessage/AudioMessage.js';
6
+ import { Avatar } from '../Avatar/Avatar.js';
7
+ import { FileMessage } from '../FileMessage/FileMessage.js';
8
+ import { LocationMessage } from '../LocationMessage/LocationMessage.js';
9
+ import { MeetingLink } from '../MeetingLink/MeetingLink.js';
10
+ import { MeetingMessage } from '../MeetingMessage/MeetingMessage.js';
11
+ import { PhotoMessage } from '../PhotoMessage/PhotoMessage.js';
12
+ import { ReplyMessage } from '../ReplyMessage/ReplyMessage.js';
13
+ import { SpotifyMessage } from '../SpotifyMessage/SpotifyMessage.js';
14
+ import { SystemMessage } from '../SystemMessage/SystemMessage.js';
15
+ import { resolveDateValue, useRelativeDateText } from '../utils/formatRelativeDate.js';
16
+ import { VideoMessage } from '../VideoMessage/VideoMessage.js';
17
+ export const MessageBox = ({ focus = false, notch = true, styles, ...props })=>{
18
+ const prevProps = useRef(focus);
19
+ const messageRef = useRef(null);
20
+ const positionCls = cn('rce-mbox', {
21
+ 'rce-mbox-right': props.position === 'right'
22
+ });
23
+ const thatAbsoluteTime = !/(text|video|file|meeting|audio)/g.test(props.type || 'text') && !(props.type === 'location' && props.text);
24
+ const timestamp = resolveDateValue(props.added, props.date);
25
+ const dateText = useRelativeDateText(timestamp, props.dateString);
26
+ useEffect(()=>{
27
+ if (prevProps.current !== focus && focus === true) {
28
+ if (messageRef) {
29
+ messageRef.current?.scrollIntoView({
30
+ block: 'center',
31
+ behavior: 'smooth'
32
+ });
33
+ props.onMessageFocused(prevProps);
34
+ }
35
+ }
36
+ prevProps.current = focus;
37
+ }, [
38
+ focus,
39
+ prevProps
40
+ ]);
41
+ return /*#__PURE__*/ _jsxs("div", {
42
+ ref: messageRef,
43
+ className: cn('rce-container-mbox', props.className),
44
+ onClick: props.onClick,
45
+ children: [
46
+ props.renderAddCmp instanceof Function ? props.renderAddCmp() : props.renderAddCmp,
47
+ props.type === 'system' ? /*#__PURE__*/ _jsx(SystemMessage, {
48
+ ...props,
49
+ focus: focus,
50
+ notch: notch
51
+ }) : /*#__PURE__*/ _jsxs("div", {
52
+ style: styles,
53
+ className: cn(positionCls, {
54
+ 'rce-mbox--clear-padding': thatAbsoluteTime
55
+ }, {
56
+ 'rce-mbox--clear-notch': !notch
57
+ }, {
58
+ 'message-focus': focus
59
+ }),
60
+ children: [
61
+ /*#__PURE__*/ _jsxs("div", {
62
+ className: "rce-mbox-body",
63
+ onContextMenu: props.onContextMenu,
64
+ children: [
65
+ !props.retracted && props.forwarded === true && /*#__PURE__*/ _jsx("div", {
66
+ className: cn('rce-mbox-forward', {
67
+ 'rce-mbox-forward-right': props.position === 'left'
68
+ }, {
69
+ 'rce-mbox-forward-left': props.position === 'right'
70
+ }),
71
+ onClick: props.onForwardClick,
72
+ children: /*#__PURE__*/ _jsx(LinkForwardIcon, {
73
+ size: 20
74
+ })
75
+ }),
76
+ !props.retracted && props.replyButton === true && /*#__PURE__*/ _jsx("div", {
77
+ className: props.forwarded !== true ? cn('rce-mbox-forward', {
78
+ 'rce-mbox-forward-right': props.position === 'left'
79
+ }, {
80
+ 'rce-mbox-forward-left': props.position === 'right'
81
+ }) : cn('rce-mbox-forward', {
82
+ 'rce-mbox-reply-btn-right': props.position === 'left'
83
+ }, {
84
+ 'rce-mbox-reply-btn-left': props.position === 'right'
85
+ }),
86
+ onClick: props.onReplyClick,
87
+ children: /*#__PURE__*/ _jsx(MessageOutgoing01Icon, {
88
+ size: 20
89
+ })
90
+ }),
91
+ !props.retracted && props.removeButton === true && /*#__PURE__*/ _jsx("div", {
92
+ className: props.forwarded === true ? cn('rce-mbox-remove', {
93
+ 'rce-mbox-remove-right': props.position === 'left'
94
+ }, {
95
+ 'rce-mbox-remove-left': props.position === 'right'
96
+ }) : cn('rce-mbox-forward', {
97
+ 'rce-mbox-reply-btn-right': props.position === 'left'
98
+ }, {
99
+ 'rce-mbox-reply-btn-left': props.position === 'right'
100
+ }),
101
+ onClick: props.onRemoveMessageClick,
102
+ children: /*#__PURE__*/ _jsx(Delete02Icon, {
103
+ size: 20
104
+ })
105
+ }),
106
+ (props.title || props.avatar) && /*#__PURE__*/ _jsxs("div", {
107
+ style: {
108
+ ...props.titleColor && {
109
+ color: props.titleColor
110
+ }
111
+ },
112
+ onClick: props.onTitleClick,
113
+ className: cn('rce-mbox-title', {
114
+ 'rce-mbox-title--clear': props.type === 'text'
115
+ }),
116
+ children: [
117
+ props.avatar && /*#__PURE__*/ _jsx(Avatar, {
118
+ letterItem: props.letterItem,
119
+ src: props.avatar
120
+ }),
121
+ props.title && /*#__PURE__*/ _jsx("span", {
122
+ children: props.title
123
+ })
124
+ ]
125
+ }),
126
+ props.forwardedMessageText ? /*#__PURE__*/ _jsx("div", {
127
+ className: "rce-mbox-forwardedMessage",
128
+ children: /*#__PURE__*/ _jsxs("div", {
129
+ className: "rce-mbox-forwarded-message",
130
+ children: [
131
+ /*#__PURE__*/ _jsx(LinkForwardIcon, {
132
+ size: 18
133
+ }),
134
+ /*#__PURE__*/ _jsxs("i", {
135
+ style: {
136
+ margin: '0 3px 1px 0'
137
+ },
138
+ children: [
139
+ " ",
140
+ props.forwardedMessageText
141
+ ]
142
+ })
143
+ ]
144
+ })
145
+ }) : null,
146
+ !props.forwardedMessageText && props.reply ? /*#__PURE__*/ _jsx(ReplyMessage, {
147
+ onClick: props.onReplyMessageClick,
148
+ ...props.reply
149
+ }) : null,
150
+ props.type === 'text' && /*#__PURE__*/ _jsxs("div", {
151
+ className: cn('rce-mbox-text', {
152
+ 'rce-mbox-text-retracted': props.retracted,
153
+ left: props.position === 'left',
154
+ right: props.position === 'right'
155
+ }),
156
+ children: [
157
+ props.retracted && /*#__PURE__*/ _jsx(UnavailableIcon, {
158
+ size: 14
159
+ }),
160
+ props.text
161
+ ]
162
+ }),
163
+ props.type === 'location' && /*#__PURE__*/ _jsx(LocationMessage, {
164
+ focus: focus,
165
+ notch: notch,
166
+ ...props
167
+ }),
168
+ props.type === 'photo' && /*#__PURE__*/ _jsx(PhotoMessage, {
169
+ focus: focus,
170
+ notch: notch,
171
+ ...props
172
+ }),
173
+ props.type === 'video' && /*#__PURE__*/ _jsx(VideoMessage, {
174
+ focus: focus,
175
+ notch: notch,
176
+ ...props
177
+ }),
178
+ props.type === 'file' && /*#__PURE__*/ _jsx(FileMessage, {
179
+ focus: focus,
180
+ notch: notch,
181
+ ...props
182
+ }),
183
+ props.type === 'spotify' && /*#__PURE__*/ _jsx(SpotifyMessage, {
184
+ focus: focus,
185
+ notch: notch,
186
+ ...props
187
+ }),
188
+ props.type === 'meeting' && /*#__PURE__*/ _jsx(MeetingMessage, {
189
+ focus: focus,
190
+ notch: notch,
191
+ ...props
192
+ }),
193
+ props.type === 'audio' && /*#__PURE__*/ _jsx(AudioMessage, {
194
+ focus: focus,
195
+ notch: notch,
196
+ ...props
197
+ }),
198
+ props.type === 'meetingLink' && /*#__PURE__*/ _jsx(MeetingLink, {
199
+ focus: focus,
200
+ notch: notch,
201
+ ...props,
202
+ actionButtons: props?.actionButtons
203
+ }),
204
+ /*#__PURE__*/ _jsxs("div", {
205
+ title: props.statusTitle,
206
+ className: cn('rce-mbox-time', {
207
+ 'rce-mbox-time-block': thatAbsoluteTime
208
+ }, {
209
+ 'non-copiable': !props.copiableDate
210
+ }),
211
+ "data-text": props.copiableDate ? undefined : dateText,
212
+ children: [
213
+ props.copiableDate && dateText,
214
+ props.status && /*#__PURE__*/ _jsxs("span", {
215
+ className: "rce-mbox-status",
216
+ children: [
217
+ props.status === 'waiting' && /*#__PURE__*/ _jsx(ClockIcon, {
218
+ size: 14
219
+ }),
220
+ props.status === 'sent' && /*#__PURE__*/ _jsx(Tick02Icon, {
221
+ size: 14
222
+ }),
223
+ props.status === 'received' && /*#__PURE__*/ _jsx(TickDouble02Icon, {
224
+ size: 14
225
+ }),
226
+ props.status === 'read' && /*#__PURE__*/ _jsx(TickDouble02Icon, {
227
+ color: "#4FC3F7",
228
+ size: 14
229
+ })
230
+ ]
231
+ })
232
+ ]
233
+ })
234
+ ]
235
+ }),
236
+ notch && (props.position === 'right' ? /*#__PURE__*/ _jsx("svg", {
237
+ style: props.notchStyle,
238
+ className: cn('rce-mbox-right-notch', {
239
+ 'message-focus': focus
240
+ }),
241
+ xmlns: "http://www.w3.org/2000/svg",
242
+ viewBox: "0 0 20 20",
243
+ children: /*#__PURE__*/ _jsx("path", {
244
+ d: "M0 0v20L20 0"
245
+ })
246
+ }) : /*#__PURE__*/ _jsx("svg", {
247
+ style: props.notchStyle,
248
+ className: cn('rce-mbox-left-notch', {
249
+ 'message-focus': focus
250
+ }),
251
+ xmlns: "http://www.w3.org/2000/svg",
252
+ viewBox: "0 0 20 20",
253
+ children: /*#__PURE__*/ _jsx("path", {
254
+ d: "M20 0v20L0 0"
255
+ })
256
+ }))
257
+ ]
258
+ })
259
+ ]
260
+ });
261
+ };
262
+
263
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9uaXRyb2c3L0RldmVsb3BtZW50L2dvdGhhbWpzL3NyYy9jb21wb25lbnRzL0NoYXQvTWVzc2FnZUJveC9NZXNzYWdlQm94LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge2NufSBmcm9tICdAbmxhYnMvdXRpbHMnO1xuaW1wb3J0IHtcbiAgQ2xvY2szIGFzIENsb2NrSWNvbixcbiAgVHJhc2gyIGFzIERlbGV0ZTAySWNvbixcbiAgU2hhcmUyIGFzIExpbmtGb3J3YXJkSWNvbixcbiAgUmVwbHkgYXMgTWVzc2FnZU91dGdvaW5nMDFJY29uLFxuICBDaGVjayBhcyBUaWNrMDJJY29uLFxuICBDaGVja0NoZWNrIGFzIFRpY2tEb3VibGUwMkljb24sXG4gIEJhbiBhcyBVbmF2YWlsYWJsZUljb25cbn0gZnJvbSAnbHVjaWRlLXJlYWN0JztcbmltcG9ydCB7dXNlRWZmZWN0LCB1c2VSZWZ9IGZyb20gJ3JlYWN0JztcblxuaW1wb3J0IHtBdWRpb01lc3NhZ2V9IGZyb20gJy4uL0F1ZGlvTWVzc2FnZS9BdWRpb01lc3NhZ2UuanMnO1xuaW1wb3J0IHtBdmF0YXJ9IGZyb20gJy4uL0F2YXRhci9BdmF0YXIuanMnO1xuaW1wb3J0IHtGaWxlTWVzc2FnZX0gZnJvbSAnLi4vRmlsZU1lc3NhZ2UvRmlsZU1lc3NhZ2UuanMnO1xuaW1wb3J0IHtMb2NhdGlvbk1lc3NhZ2V9IGZyb20gJy4uL0xvY2F0aW9uTWVzc2FnZS9Mb2NhdGlvbk1lc3NhZ2UuanMnO1xuaW1wb3J0IHtNZWV0aW5nTGlua30gZnJvbSAnLi4vTWVldGluZ0xpbmsvTWVldGluZ0xpbmsuanMnO1xuaW1wb3J0IHtNZWV0aW5nTWVzc2FnZX0gZnJvbSAnLi4vTWVldGluZ01lc3NhZ2UvTWVldGluZ01lc3NhZ2UuanMnO1xuaW1wb3J0IHtQaG90b01lc3NhZ2V9IGZyb20gJy4uL1Bob3RvTWVzc2FnZS9QaG90b01lc3NhZ2UuanMnO1xuaW1wb3J0IHtSZXBseU1lc3NhZ2V9IGZyb20gJy4uL1JlcGx5TWVzc2FnZS9SZXBseU1lc3NhZ2UuanMnO1xuaW1wb3J0IHtTcG90aWZ5TWVzc2FnZX0gZnJvbSAnLi4vU3BvdGlmeU1lc3NhZ2UvU3BvdGlmeU1lc3NhZ2UuanMnO1xuaW1wb3J0IHtTeXN0ZW1NZXNzYWdlfSBmcm9tICcuLi9TeXN0ZW1NZXNzYWdlL1N5c3RlbU1lc3NhZ2UuanMnO1xuaW1wb3J0IHtyZXNvbHZlRGF0ZVZhbHVlLCB1c2VSZWxhdGl2ZURhdGVUZXh0fSBmcm9tICcuLi91dGlscy9mb3JtYXRSZWxhdGl2ZURhdGUuanMnO1xuaW1wb3J0IHtWaWRlb01lc3NhZ2V9IGZyb20gJy4uL1ZpZGVvTWVzc2FnZS9WaWRlb01lc3NhZ2UuanMnO1xuXG5pbXBvcnQgdHlwZSB7RkN9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB0eXBlIHtNZXNzYWdlQm94VHlwZX0gZnJvbSAnLi4vdHlwZSc7XG5cbmV4cG9ydCBjb25zdCBNZXNzYWdlQm94OiBGQzxNZXNzYWdlQm94VHlwZT4gPSAoe2ZvY3VzID0gZmFsc2UsIG5vdGNoID0gdHJ1ZSwgc3R5bGVzLCAuLi5wcm9wc30pID0+IHtcbiAgY29uc3QgcHJldlByb3BzID0gdXNlUmVmKGZvY3VzKTtcbiAgY29uc3QgbWVzc2FnZVJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbCk7XG5cbiAgY29uc3QgcG9zaXRpb25DbHMgPSBjbigncmNlLW1ib3gnLCB7J3JjZS1tYm94LXJpZ2h0JzogcHJvcHMucG9zaXRpb24gPT09ICdyaWdodCd9KTtcbiAgY29uc3QgdGhhdEFic29sdXRlVGltZSA9XG4gICAgIS8odGV4dHx2aWRlb3xmaWxlfG1lZXRpbmd8YXVkaW8pL2cudGVzdChwcm9wcy50eXBlIHx8ICd0ZXh0JykgJiYgIShwcm9wcy50eXBlID09PSAnbG9jYXRpb24nICYmIHByb3BzLnRleHQpO1xuICBjb25zdCB0aW1lc3RhbXAgPSByZXNvbHZlRGF0ZVZhbHVlKHByb3BzLmFkZGVkLCBwcm9wcy5kYXRlKTtcbiAgY29uc3QgZGF0ZVRleHQgPSB1c2VSZWxhdGl2ZURhdGVUZXh0KHRpbWVzdGFtcCwgcHJvcHMuZGF0ZVN0cmluZyk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZihwcmV2UHJvcHMuY3VycmVudCAhPT0gZm9jdXMgJiYgZm9jdXMgPT09IHRydWUpIHtcbiAgICAgIGlmKG1lc3NhZ2VSZWYpIHtcbiAgICAgICAgbWVzc2FnZVJlZi5jdXJyZW50Py5zY3JvbGxJbnRvVmlldyh7XG4gICAgICAgICAgYmxvY2s6ICdjZW50ZXInLFxuICAgICAgICAgIGJlaGF2aW9yOiAnc21vb3RoJ1xuICAgICAgICB9KTtcblxuICAgICAgICBwcm9wcy5vbk1lc3NhZ2VGb2N1c2VkKHByZXZQcm9wcyk7XG4gICAgICB9XG4gICAgfVxuICAgIHByZXZQcm9wcy5jdXJyZW50ID0gZm9jdXM7XG4gIH0sIFtmb2N1cywgcHJldlByb3BzXSk7XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IHJlZj17bWVzc2FnZVJlZn0gY2xhc3NOYW1lPXtjbigncmNlLWNvbnRhaW5lci1tYm94JywgcHJvcHMuY2xhc3NOYW1lKX0gb25DbGljaz17cHJvcHMub25DbGlja30+XG4gICAgICB7cHJvcHMucmVuZGVyQWRkQ21wIGluc3RhbmNlb2YgRnVuY3Rpb24gPyBwcm9wcy5yZW5kZXJBZGRDbXAoKSA6IHByb3BzLnJlbmRlckFkZENtcH1cbiAgICAgIHtwcm9wcy50eXBlID09PSAnc3lzdGVtJyA/IChcbiAgICAgICAgPFN5c3RlbU1lc3NhZ2Ugey4uLnByb3BzfSBmb2N1cz17Zm9jdXN9IG5vdGNoPXtub3RjaH0gLz5cbiAgICAgICkgOiAoXG4gICAgICAgIDxkaXZcbiAgICAgICAgICBzdHlsZT17c3R5bGVzfVxuICAgICAgICAgIGNsYXNzTmFtZT17Y24oXG4gICAgICAgICAgICBwb3NpdGlvbkNscyxcbiAgICAgICAgICAgIHsncmNlLW1ib3gtLWNsZWFyLXBhZGRpbmcnOiB0aGF0QWJzb2x1dGVUaW1lfSxcbiAgICAgICAgICAgIHsncmNlLW1ib3gtLWNsZWFyLW5vdGNoJzogIW5vdGNofSxcbiAgICAgICAgICAgIHsnbWVzc2FnZS1mb2N1cyc6IGZvY3VzfVxuICAgICAgICAgICl9XG4gICAgICAgID5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT0ncmNlLW1ib3gtYm9keScgb25Db250ZXh0TWVudT17cHJvcHMub25Db250ZXh0TWVudX0+XG4gICAgICAgICAgICB7IXByb3BzLnJldHJhY3RlZCAmJiBwcm9wcy5mb3J3YXJkZWQgPT09IHRydWUgJiYgKFxuICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbihcbiAgICAgICAgICAgICAgICAgICdyY2UtbWJveC1mb3J3YXJkJyxcbiAgICAgICAgICAgICAgICAgIHsncmNlLW1ib3gtZm9yd2FyZC1yaWdodCc6IHByb3BzLnBvc2l0aW9uID09PSAnbGVmdCd9LFxuICAgICAgICAgICAgICAgICAgeydyY2UtbWJveC1mb3J3YXJkLWxlZnQnOiBwcm9wcy5wb3NpdGlvbiA9PT0gJ3JpZ2h0J31cbiAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9e3Byb3BzLm9uRm9yd2FyZENsaWNrfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPExpbmtGb3J3YXJkSWNvbiBzaXplPXsyMH0gIC8+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgKX1cblxuICAgICAgICAgICAgeyFwcm9wcy5yZXRyYWN0ZWQgJiYgcHJvcHMucmVwbHlCdXR0b24gPT09IHRydWUgJiYgKFxuICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtcbiAgICAgICAgICAgICAgICAgIHByb3BzLmZvcndhcmRlZCAhPT0gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICA/IGNuKFxuICAgICAgICAgICAgICAgICAgICAgICdyY2UtbWJveC1mb3J3YXJkJyxcbiAgICAgICAgICAgICAgICAgICAgICB7J3JjZS1tYm94LWZvcndhcmQtcmlnaHQnOiBwcm9wcy5wb3NpdGlvbiA9PT0gJ2xlZnQnfSxcbiAgICAgICAgICAgICAgICAgICAgICB7J3JjZS1tYm94LWZvcndhcmQtbGVmdCc6IHByb3BzLnBvc2l0aW9uID09PSAncmlnaHQnfVxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgIDogY24oXG4gICAgICAgICAgICAgICAgICAgICAgJ3JjZS1tYm94LWZvcndhcmQnLFxuICAgICAgICAgICAgICAgICAgICAgIHsncmNlLW1ib3gtcmVwbHktYnRuLXJpZ2h0JzogcHJvcHMucG9zaXRpb24gPT09ICdsZWZ0J30sXG4gICAgICAgICAgICAgICAgICAgICAgeydyY2UtbWJveC1yZXBseS1idG4tbGVmdCc6IHByb3BzLnBvc2l0aW9uID09PSAncmlnaHQnfVxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9e3Byb3BzLm9uUmVwbHlDbGlja31cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxNZXNzYWdlT3V0Z29pbmcwMUljb24gc2l6ZT17MjB9ICAvPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICl9XG5cbiAgICAgICAgICAgIHshcHJvcHMucmV0cmFjdGVkICYmIHByb3BzLnJlbW92ZUJ1dHRvbiA9PT0gdHJ1ZSAmJiAoXG4gICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9e1xuICAgICAgICAgICAgICAgICAgcHJvcHMuZm9yd2FyZGVkID09PSB0cnVlXG4gICAgICAgICAgICAgICAgICAgID8gY24oXG4gICAgICAgICAgICAgICAgICAgICAgJ3JjZS1tYm94LXJlbW92ZScsXG4gICAgICAgICAgICAgICAgICAgICAgeydyY2UtbWJveC1yZW1vdmUtcmlnaHQnOiBwcm9wcy5wb3NpdGlvbiA9PT0gJ2xlZnQnfSxcbiAgICAgICAgICAgICAgICAgICAgICB7J3JjZS1tYm94LXJlbW92ZS1sZWZ0JzogcHJvcHMucG9zaXRpb24gPT09ICdyaWdodCd9XG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgOiBjbihcbiAgICAgICAgICAgICAgICAgICAgICAncmNlLW1ib3gtZm9yd2FyZCcsXG4gICAgICAgICAgICAgICAgICAgICAgeydyY2UtbWJveC1yZXBseS1idG4tcmlnaHQnOiBwcm9wcy5wb3NpdGlvbiA9PT0gJ2xlZnQnfSxcbiAgICAgICAgICAgICAgICAgICAgICB7J3JjZS1tYm94LXJlcGx5LWJ0bi1sZWZ0JzogcHJvcHMucG9zaXRpb24gPT09ICdyaWdodCd9XG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgb25DbGljaz17cHJvcHMub25SZW1vdmVNZXNzYWdlQ2xpY2t9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8RGVsZXRlMDJJY29uIHNpemU9ezIwfSAgLz5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICApfVxuXG4gICAgICAgICAgICB7KHByb3BzLnRpdGxlIHx8IHByb3BzLmF2YXRhcikgJiYgKFxuICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgc3R5bGU9e3suLi4ocHJvcHMudGl0bGVDb2xvciAmJiB7Y29sb3I6IHByb3BzLnRpdGxlQ29sb3J9KX19XG4gICAgICAgICAgICAgICAgb25DbGljaz17cHJvcHMub25UaXRsZUNsaWNrfVxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Y24oJ3JjZS1tYm94LXRpdGxlJywge1xuICAgICAgICAgICAgICAgICAgJ3JjZS1tYm94LXRpdGxlLS1jbGVhcic6IHByb3BzLnR5cGUgPT09ICd0ZXh0J1xuICAgICAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge3Byb3BzLmF2YXRhciAmJiA8QXZhdGFyIGxldHRlckl0ZW09e3Byb3BzLmxldHRlckl0ZW19IHNyYz17cHJvcHMuYXZhdGFyfSAvPn1cbiAgICAgICAgICAgICAgICB7cHJvcHMudGl0bGUgJiYgPHNwYW4+e3Byb3BzLnRpdGxlfTwvc3Bhbj59XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgKX1cblxuICAgICAgICAgICAge3Byb3BzLmZvcndhcmRlZE1lc3NhZ2VUZXh0ID8gKFxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT0ncmNlLW1ib3gtZm9yd2FyZGVkTWVzc2FnZSc+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9J3JjZS1tYm94LWZvcndhcmRlZC1tZXNzYWdlJz5cbiAgICAgICAgICAgICAgICAgIDxMaW5rRm9yd2FyZEljb24gc2l6ZT17MTh9ICAvPlxuICAgICAgICAgICAgICAgICAgPGkgc3R5bGU9e3ttYXJnaW46ICcwIDNweCAxcHggMCd9fT4ge3Byb3BzLmZvcndhcmRlZE1lc3NhZ2VUZXh0fTwvaT5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICApIDogbnVsbH1cblxuICAgICAgICAgICAgeyFwcm9wcy5mb3J3YXJkZWRNZXNzYWdlVGV4dCAmJiBwcm9wcy5yZXBseSA/IChcbiAgICAgICAgICAgICAgPFJlcGx5TWVzc2FnZSBvbkNsaWNrPXtwcm9wcy5vblJlcGx5TWVzc2FnZUNsaWNrfSB7Li4ucHJvcHMucmVwbHl9IC8+XG4gICAgICAgICAgICApIDogbnVsbH1cblxuICAgICAgICAgICAge3Byb3BzLnR5cGUgPT09ICd0ZXh0JyAmJiAoXG4gICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2NuKCdyY2UtbWJveC10ZXh0Jywge1xuICAgICAgICAgICAgICAgICAgJ3JjZS1tYm94LXRleHQtcmV0cmFjdGVkJzogcHJvcHMucmV0cmFjdGVkLFxuICAgICAgICAgICAgICAgICAgbGVmdDogcHJvcHMucG9zaXRpb24gPT09ICdsZWZ0JyxcbiAgICAgICAgICAgICAgICAgIHJpZ2h0OiBwcm9wcy5wb3NpdGlvbiA9PT0gJ3JpZ2h0J1xuICAgICAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge3Byb3BzLnJldHJhY3RlZCAmJiA8VW5hdmFpbGFibGVJY29uIHNpemU9ezE0fSAgLz59XG4gICAgICAgICAgICAgICAge3Byb3BzLnRleHR9XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgKX1cblxuICAgICAgICAgICAge3Byb3BzLnR5cGUgPT09ICdsb2NhdGlvbicgJiYgPExvY2F0aW9uTWVzc2FnZSBmb2N1cz17Zm9jdXN9IG5vdGNoPXtub3RjaH0gey4uLnByb3BzfSAvPn1cblxuICAgICAgICAgICAge3Byb3BzLnR5cGUgPT09ICdwaG90bycgJiYgPFBob3RvTWVzc2FnZSBmb2N1cz17Zm9jdXN9IG5vdGNoPXtub3RjaH0gey4uLnByb3BzfSAvPn1cblxuICAgICAgICAgICAge3Byb3BzLnR5cGUgPT09ICd2aWRlbycgJiYgPFZpZGVvTWVzc2FnZSBmb2N1cz17Zm9jdXN9IG5vdGNoPXtub3RjaH0gey4uLnByb3BzfSAvPn1cblxuICAgICAgICAgICAge3Byb3BzLnR5cGUgPT09ICdmaWxlJyAmJiA8RmlsZU1lc3NhZ2UgZm9jdXM9e2ZvY3VzfSBub3RjaD17bm90Y2h9IHsuLi5wcm9wc30gLz59XG5cbiAgICAgICAgICAgIHtwcm9wcy50eXBlID09PSAnc3BvdGlmeScgJiYgPFNwb3RpZnlNZXNzYWdlIGZvY3VzPXtmb2N1c30gbm90Y2g9e25vdGNofSB7Li4ucHJvcHN9IC8+fVxuXG4gICAgICAgICAgICB7cHJvcHMudHlwZSA9PT0gJ21lZXRpbmcnICYmIDxNZWV0aW5nTWVzc2FnZSBmb2N1cz17Zm9jdXN9IG5vdGNoPXtub3RjaH0gey4uLnByb3BzfSAvPn1cbiAgICAgICAgICAgIHtwcm9wcy50eXBlID09PSAnYXVkaW8nICYmIDxBdWRpb01lc3NhZ2UgZm9jdXM9e2ZvY3VzfSBub3RjaD17bm90Y2h9IHsuLi5wcm9wc30gLz59XG5cbiAgICAgICAgICAgIHtwcm9wcy50eXBlID09PSAnbWVldGluZ0xpbmsnICYmIChcbiAgICAgICAgICAgICAgPE1lZXRpbmdMaW5rIGZvY3VzPXtmb2N1c30gbm90Y2g9e25vdGNofSB7Li4ucHJvcHN9IGFjdGlvbkJ1dHRvbnM9e3Byb3BzPy5hY3Rpb25CdXR0b25zfSAvPlxuICAgICAgICAgICAgKX1cblxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICB0aXRsZT17cHJvcHMuc3RhdHVzVGl0bGV9XG4gICAgICAgICAgICAgIGNsYXNzTmFtZT17Y24oXG4gICAgICAgICAgICAgICAgJ3JjZS1tYm94LXRpbWUnLFxuICAgICAgICAgICAgICAgIHsncmNlLW1ib3gtdGltZS1ibG9jayc6IHRoYXRBYnNvbHV0ZVRpbWV9LFxuICAgICAgICAgICAgICAgIHsnbm9uLWNvcGlhYmxlJzogIXByb3BzLmNvcGlhYmxlRGF0ZX1cbiAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgZGF0YS10ZXh0PXtwcm9wcy5jb3BpYWJsZURhdGUgPyB1bmRlZmluZWQgOiBkYXRlVGV4dH1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge3Byb3BzLmNvcGlhYmxlRGF0ZSAmJiBkYXRlVGV4dH1cbiAgICAgICAgICAgICAge3Byb3BzLnN0YXR1cyAmJiAoXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPSdyY2UtbWJveC1zdGF0dXMnPlxuICAgICAgICAgICAgICAgICAge3Byb3BzLnN0YXR1cyA9PT0gJ3dhaXRpbmcnICYmIDxDbG9ja0ljb24gc2l6ZT17MTR9ICAvPn1cblxuICAgICAgICAgICAgICAgICAge3Byb3BzLnN0YXR1cyA9PT0gJ3NlbnQnICYmIDxUaWNrMDJJY29uIHNpemU9ezE0fSAgLz59XG5cbiAgICAgICAgICAgICAgICAgIHtwcm9wcy5zdGF0dXMgPT09ICdyZWNlaXZlZCcgJiYgPFRpY2tEb3VibGUwMkljb24gc2l6ZT17MTR9ICAvPn1cblxuICAgICAgICAgICAgICAgICAge3Byb3BzLnN0YXR1cyA9PT0gJ3JlYWQnICYmIDxUaWNrRG91YmxlMDJJY29uIGNvbG9yPScjNEZDM0Y3JyBzaXplPXsxNH0gIC8+fVxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAge25vdGNoICYmXG4gICAgICAgICAgICAocHJvcHMucG9zaXRpb24gPT09ICdyaWdodCcgPyAoXG4gICAgICAgICAgICAgIDxzdmdcbiAgICAgICAgICAgICAgICBzdHlsZT17cHJvcHMubm90Y2hTdHlsZX1cbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2NuKCdyY2UtbWJveC1yaWdodC1ub3RjaCcsIHsnbWVzc2FnZS1mb2N1cyc6IGZvY3VzfSl9XG4gICAgICAgICAgICAgICAgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJ1xuICAgICAgICAgICAgICAgIHZpZXdCb3g9JzAgMCAyMCAyMCdcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxwYXRoIGQ9J00wIDB2MjBMMjAgMCcgLz5cbiAgICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8c3ZnXG4gICAgICAgICAgICAgICAgc3R5bGU9e3Byb3BzLm5vdGNoU3R5bGV9XG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbigncmNlLW1ib3gtbGVmdC1ub3RjaCcsIHsnbWVzc2FnZS1mb2N1cyc6IGZvY3VzfSl9XG4gICAgICAgICAgICAgICAgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJ1xuICAgICAgICAgICAgICAgIHZpZXdCb3g9JzAgMCAyMCAyMCdcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxwYXRoIGQ9J00yMCAwdjIwTDAgMCcgLz5cbiAgICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgICApKX1cbiAgICAgICAgPC9kaXY+XG4gICAgICApfVxuICAgIDwvZGl2PlxuICApO1xufTtcbiJdLCJuYW1lcyI6WyJjbiIsIkNsb2NrMyIsIkNsb2NrSWNvbiIsIlRyYXNoMiIsIkRlbGV0ZTAySWNvbiIsIlNoYXJlMiIsIkxpbmtGb3J3YXJkSWNvbiIsIlJlcGx5IiwiTWVzc2FnZU91dGdvaW5nMDFJY29uIiwiQ2hlY2siLCJUaWNrMDJJY29uIiwiQ2hlY2tDaGVjayIsIlRpY2tEb3VibGUwMkljb24iLCJCYW4iLCJVbmF2YWlsYWJsZUljb24iLCJ1c2VFZmZlY3QiLCJ1c2VSZWYiLCJBdWRpb01lc3NhZ2UiLCJBdmF0YXIiLCJGaWxlTWVzc2FnZSIsIkxvY2F0aW9uTWVzc2FnZSIsIk1lZXRpbmdMaW5rIiwiTWVldGluZ01lc3NhZ2UiLCJQaG90b01lc3NhZ2UiLCJSZXBseU1lc3NhZ2UiLCJTcG90aWZ5TWVzc2FnZSIsIlN5c3RlbU1lc3NhZ2UiLCJyZXNvbHZlRGF0ZVZhbHVlIiwidXNlUmVsYXRpdmVEYXRlVGV4dCIsIlZpZGVvTWVzc2FnZSIsIk1lc3NhZ2VCb3giLCJmb2N1cyIsIm5vdGNoIiwic3R5bGVzIiwicHJvcHMiLCJwcmV2UHJvcHMiLCJtZXNzYWdlUmVmIiwicG9zaXRpb25DbHMiLCJwb3NpdGlvbiIsInRoYXRBYnNvbHV0ZVRpbWUiLCJ0ZXN0IiwidHlwZSIsInRleHQiLCJ0aW1lc3RhbXAiLCJhZGRlZCIsImRhdGUiLCJkYXRlVGV4dCIsImRhdGVTdHJpbmciLCJjdXJyZW50Iiwic2Nyb2xsSW50b1ZpZXciLCJibG9jayIsImJlaGF2aW9yIiwib25NZXNzYWdlRm9jdXNlZCIsImRpdiIsInJlZiIsImNsYXNzTmFtZSIsIm9uQ2xpY2siLCJyZW5kZXJBZGRDbXAiLCJGdW5jdGlvbiIsInN0eWxlIiwib25Db250ZXh0TWVudSIsInJldHJhY3RlZCIsImZvcndhcmRlZCIsIm9uRm9yd2FyZENsaWNrIiwic2l6ZSIsInJlcGx5QnV0dG9uIiwib25SZXBseUNsaWNrIiwicmVtb3ZlQnV0dG9uIiwib25SZW1vdmVNZXNzYWdlQ2xpY2siLCJ0aXRsZSIsImF2YXRhciIsInRpdGxlQ29sb3IiLCJjb2xvciIsIm9uVGl0bGVDbGljayIsImxldHRlckl0ZW0iLCJzcmMiLCJzcGFuIiwiZm9yd2FyZGVkTWVzc2FnZVRleHQiLCJpIiwibWFyZ2luIiwicmVwbHkiLCJvblJlcGx5TWVzc2FnZUNsaWNrIiwibGVmdCIsInJpZ2h0IiwiYWN0aW9uQnV0dG9ucyIsInN0YXR1c1RpdGxlIiwiY29waWFibGVEYXRlIiwiZGF0YS10ZXh0IiwidW5kZWZpbmVkIiwic3RhdHVzIiwic3ZnIiwibm90Y2hTdHlsZSIsInhtbG5zIiwidmlld0JveCIsInBhdGgiLCJkIl0sIm1hcHBpbmdzIjoiO0FBQUEsU0FBUUEsRUFBRSxRQUFPLGVBQWU7QUFDaEMsU0FDRUMsVUFBVUMsU0FBUyxFQUNuQkMsVUFBVUMsWUFBWSxFQUN0QkMsVUFBVUMsZUFBZSxFQUN6QkMsU0FBU0MscUJBQXFCLEVBQzlCQyxTQUFTQyxVQUFVLEVBQ25CQyxjQUFjQyxnQkFBZ0IsRUFDOUJDLE9BQU9DLGVBQWUsUUFDakIsZUFBZTtBQUN0QixTQUFRQyxTQUFTLEVBQUVDLE1BQU0sUUFBTyxRQUFRO0FBRXhDLFNBQVFDLFlBQVksUUFBTyxrQ0FBa0M7QUFDN0QsU0FBUUMsTUFBTSxRQUFPLHNCQUFzQjtBQUMzQyxTQUFRQyxXQUFXLFFBQU8sZ0NBQWdDO0FBQzFELFNBQVFDLGVBQWUsUUFBTyx3Q0FBd0M7QUFDdEUsU0FBUUMsV0FBVyxRQUFPLGdDQUFnQztBQUMxRCxTQUFRQyxjQUFjLFFBQU8sc0NBQXNDO0FBQ25FLFNBQVFDLFlBQVksUUFBTyxrQ0FBa0M7QUFDN0QsU0FBUUMsWUFBWSxRQUFPLGtDQUFrQztBQUM3RCxTQUFRQyxjQUFjLFFBQU8sc0NBQXNDO0FBQ25FLFNBQVFDLGFBQWEsUUFBTyxvQ0FBb0M7QUFDaEUsU0FBUUMsZ0JBQWdC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
@@ -0,0 +1 @@
1
+ .rce-container-mlist{position:relative;display:-webkit-box;display:-ms-flexbox;display:flex}.rce-mlist{display:block;overflow:auto;position:relative;-webkit-box-flex:1;-ms-flex:1 1;flex:1 1}.rce-mlist-down-button{position:absolute;right:10px;bottom:15px;width:40px;height:40px;background:#fff;-webkit-box-shadow:0 1px 1px 0 rgba(0,0,0,.05),0 2px 5px 0 rgba(0,0,0,.1);box-shadow:0 1px 1px 0 rgba(0,0,0,.05),0 2px 5px 0 rgba(0,0,0,.1);border-radius:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;color:#333;cursor:pointer;-webkit-transition:.2s;transition:.2s}.rce-mlist-down-button:hover{opacity:.7}.rce-mlist-down-button--badge{position:absolute;right:-5px;top:-5px;width:20px;height:20px;border-radius:100%;font-size:12px;display:-webkit-box;display:-ms-flexbox;display:flex;text-align:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;color:#fff;font-weight:700}
@@ -0,0 +1,2 @@
1
+ import type { IMessageListProps } from '../type';
2
+ export declare const MessageList: import("react").NamedExoticComponent<IMessageListProps>;