@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 @@
1
+ .rce-container-citem{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;display:block;overflow:hidden;min-width:240px}.rce-citem,.rce-container-citem.rce-citem-status-encircle{position:relative}.rce-citem{background:#fff;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;height:72px;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;max-width:100%;overflow:hidden;min-width:240px}.rce-citem:hover{background:#f9f9f9}.rce-citem-avatar{position:relative;padding:0 15px 0 13px;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.rce-citem-avatar,.rce-citem-status{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.rce-citem-status{width:20px;height:20px;bottom:10px;right:10px;position:absolute;border-radius:100%;background:#ccc}.rce-citem-avatar.rce-citem-status-encircle .rce-citem-status{left:0;right:0;top:0;bottom:0;width:100%;height:100%;background:transparent;margin:auto;border-radius:100%}.rce-citem-avatar img{width:50px;height:50px;border:none!important;background:#ccc;border-radius:100%;overflow:hidden;font-size:10px;text-align:center;line-height:50px;text-overflow:ellipsis;white-space:nowrap}.rce-citem-body{-webkit-box-flex:1;-ms-flex:1 1;flex:1 1;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;padding-right:15px;border-bottom:1px solid rgba(0,0,0,.05);overflow:hidden}.rce-citem-body,.rce-citem-body--bottom,.rce-citem-body--top{display:-webkit-box;display:-ms-flexbox;display:flex}.rce-citem-body--bottom{margin-top:4px}.rce-citem-body--bottom-title,.rce-citem-body--top-title{-webkit-box-flex:1;-ms-flex:1 1;flex:1 1;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.rce-citem-body--top-title{font-size:16px}.rce-citem-body--bottom-title{color:#555;font-size:15px}.rce-citem-body--top-time{font-size:12px;color:rgba(0,0,0,.4)}.rce-citem-body--bottom-status{margin-left:3px}.rce-citem-body--bottom-status span{font-size:12px;color:#fff;font-weight:700;text-align:center;border-radius:100%;background:red}.rce-citem-body--bottom-status span,.rce-citem-body--bottom-status-icon{width:18px;height:18px;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;display:-webkit-box;display:-ms-flexbox;display:flex}.rce-citem-body--bottom-status-icon{position:relative;margin-left:3px}.rce-citem-body--bottom-tools{-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;display:-webkit-box;display:-ms-flexbox;display:flex;height:0;opacity:0;position:absolute;left:-999px;-webkit-transition:height .5s ease,opacity 1s ease;transition:height .5s ease,opacity 1s ease}.rce-citem:hover .rce-citem-body--bottom-tools{height:100%;opacity:1;position:relative;left:0}.rce-citem-body--bottom-tools-item-hidden-hover{height:100%;opacity:.3;-webkit-transition:.5s ease;transition:.5s ease}.rce-citem:hover .rce-citem-body--bottom-tools-item-hidden-hover{height:0;opacity:0;position:absolute;left:-999px;-webkit-transition:.5s ease;transition:.5s ease}.rce-citem-body--bottom-tools-item,.rce-citem-body--bottom-tools-item svg{width:18px;height:18px}.rce-container-citem.subitem .rce-citem{height:40px;padding-left:30px}.rce-container-citem.subitem .rce-citem-body--top .rce-citem-body--top-title{font-size:12px!important}.rce-container-citem.subitem .rce-citem-body--top .rce-citem-body--top-time{font-size:10px!important}.rce-container-citem.subitem .rce-citem-body--bottom *{font-size:12px!important}.rce-container-citem.subitem .rce-citem-body--bottom-status span{width:14px;height:14px;font-size:10px!important;color:#fff;font-weight:700;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;display:-webkit-box;display:-ms-flexbox;display:flex;border-radius:100%;background:red}.rce-container-citem.subitem .rce-citem-body--bottom{margin-top:unset}.rce-citem-expand-button{background:transparent;border:none;cursor:pointer;padding:2px 15px;color:teal}.rce-citem-expand-button:hover{background-color:#eee}.rce-sublist-container{position:relative}
@@ -0,0 +1,3 @@
1
+ import { IChatItemProps } from '../type';
2
+ import type { FC } from 'react';
3
+ export declare const ChatItem: FC<IChatItemProps>;
@@ -0,0 +1,183 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import { cn } from '@nlabs/utils';
3
+ import { ChevronDown as ArrowDown01Icon, ChevronUp as ArrowUp01Icon, Video as Video01Icon, Volume2 as VolumeHighIcon, VolumeX as VolumeOffIcon } from 'lucide-react';
4
+ import { useEffect, useState } from 'react';
5
+ import { Avatar } from '../Avatar/Avatar.js';
6
+ import { resolveDateValue, useRelativeDateText } from '../utils/formatRelativeDate.js';
7
+ export const ChatItem = ({ avatarFlexible = false, unread = 0, statusColorType = 'badge', lazyLoadingImage = undefined, onAvatarError = ()=>void 0, ...props })=>{
8
+ const [onHoverTool, setOnHoverTool] = useState(false);
9
+ const [onDrag, setOnDrag] = useState(false);
10
+ const timestamp = resolveDateValue(props.added, props.date);
11
+ const dateText = useRelativeDateText(timestamp, props.dateString);
12
+ useEffect(()=>{
13
+ props.setDragStates?.(setOnDrag);
14
+ }, []);
15
+ const handleOnMouseEnter = ()=>{
16
+ setOnHoverTool(true);
17
+ };
18
+ const handleOnMouseLeave = ()=>{
19
+ setOnHoverTool(false);
20
+ };
21
+ const handleOnClick = (e)=>{
22
+ e.preventDefault();
23
+ if (onHoverTool === true) {
24
+ return;
25
+ }
26
+ props.onClick?.(e);
27
+ };
28
+ const onDragOver = (e)=>{
29
+ e.preventDefault();
30
+ if (props.onDragOver instanceof Function) {
31
+ props.onDragOver(e, props.id);
32
+ }
33
+ };
34
+ const onDragEnter = (e)=>{
35
+ e.preventDefault();
36
+ if (props.onDragEnter instanceof Function) {
37
+ props.onDragEnter(e, props.id);
38
+ }
39
+ if (!onDrag) {
40
+ setOnDrag(true);
41
+ }
42
+ };
43
+ const onDragLeave = (e)=>{
44
+ e.preventDefault();
45
+ if (props.onDragLeave instanceof Function) {
46
+ props.onDragLeave(e, props.id);
47
+ }
48
+ if (onDrag) {
49
+ setOnDrag(false);
50
+ }
51
+ };
52
+ const onDrop = (e)=>{
53
+ e.preventDefault();
54
+ if (props.onDrop instanceof Function) {
55
+ props.onDrop(e, props.id);
56
+ }
57
+ if (onDrag) {
58
+ setOnDrag(false);
59
+ }
60
+ };
61
+ const onExpandItem = (e, id)=>{
62
+ e.preventDefault();
63
+ e.stopPropagation();
64
+ if (props.onExpandItem instanceof Function) {
65
+ props.onExpandItem(id);
66
+ }
67
+ };
68
+ return /*#__PURE__*/ _jsx(_Fragment, {
69
+ children: /*#__PURE__*/ _jsx("div", {
70
+ className: cn('rce-container-citem', props.className),
71
+ onClick: handleOnClick,
72
+ onContextMenu: props.onContextMenu,
73
+ children: /*#__PURE__*/ _jsxs("div", {
74
+ className: "rce-citem",
75
+ onDragOver: onDragOver,
76
+ onDragEnter: onDragEnter,
77
+ onDragLeave: onDragLeave,
78
+ onDrop: onDrop,
79
+ children: [
80
+ !!props.onDragComponent && onDrag && props.onDragComponent(props.id),
81
+ (onDrag && !props.onDragComponent || !onDrag) && [
82
+ /*#__PURE__*/ _jsxs("div", {
83
+ className: cn('rce-citem-avatar', {
84
+ 'rce-citem-status-encircle': statusColorType === 'encircle'
85
+ }),
86
+ children: [
87
+ /*#__PURE__*/ _jsx(Avatar, {
88
+ src: props.avatar,
89
+ alt: props.alt,
90
+ className: statusColorType === 'encircle' ? 'rce-citem-avatar-encircle-status' : '',
91
+ size: props.avatarSize || 'large',
92
+ letterItem: props.letterItem,
93
+ sideElement: props.statusColor ? /*#__PURE__*/ _jsx("span", {
94
+ className: "rce-citem-status",
95
+ style: statusColorType === 'encircle' ? {
96
+ border: `solid 2px ${props.statusColor}`
97
+ } : {
98
+ backgroundColor: props.statusColor
99
+ },
100
+ children: props.statusText
101
+ }) : /*#__PURE__*/ _jsx(_Fragment, {}),
102
+ onError: onAvatarError,
103
+ lazyLoadingImage: lazyLoadingImage,
104
+ type: cn('circle', {
105
+ flexible: avatarFlexible
106
+ })
107
+ }),
108
+ props.subList && props.subList.length > 0 && /*#__PURE__*/ _jsx("button", {
109
+ className: "rce-citem-expand-button",
110
+ onClick: (e)=>onExpandItem(e, props.id),
111
+ children: props.expanded ? /*#__PURE__*/ _jsx(ArrowUp01Icon, {}) : /*#__PURE__*/ _jsx(ArrowDown01Icon, {})
112
+ })
113
+ ]
114
+ }, 'avatar'),
115
+ /*#__PURE__*/ _jsxs("div", {
116
+ className: "rce-citem-body",
117
+ children: [
118
+ /*#__PURE__*/ _jsxs("div", {
119
+ className: "rce-citem-body--top",
120
+ children: [
121
+ /*#__PURE__*/ _jsx("div", {
122
+ className: "rce-citem-body--top-title",
123
+ children: props.title
124
+ }),
125
+ /*#__PURE__*/ _jsx("div", {
126
+ className: "rce-citem-body--top-time",
127
+ children: dateText
128
+ })
129
+ ]
130
+ }),
131
+ /*#__PURE__*/ _jsxs("div", {
132
+ className: "rce-citem-body--bottom",
133
+ children: [
134
+ /*#__PURE__*/ _jsx("div", {
135
+ className: "rce-citem-body--bottom-title",
136
+ children: props.subtitle
137
+ }),
138
+ /*#__PURE__*/ _jsxs("div", {
139
+ className: "rce-citem-body--bottom-tools",
140
+ onMouseEnter: handleOnMouseEnter,
141
+ onMouseLeave: handleOnMouseLeave,
142
+ children: [
143
+ props.showMute && /*#__PURE__*/ _jsxs("div", {
144
+ className: "rce-citem-body--bottom-tools-item",
145
+ onClick: props.onClickMute,
146
+ children: [
147
+ props.muted === true && /*#__PURE__*/ _jsx(VolumeOffIcon, {}),
148
+ props.muted === false && /*#__PURE__*/ _jsx(VolumeHighIcon, {})
149
+ ]
150
+ }),
151
+ props.showVideoCall && /*#__PURE__*/ _jsx("div", {
152
+ className: "rce-citem-body--bottom-tools-item",
153
+ onClick: props.onClickVideoCall,
154
+ children: /*#__PURE__*/ _jsx(Video01Icon, {})
155
+ })
156
+ ]
157
+ }),
158
+ /*#__PURE__*/ _jsx("div", {
159
+ className: "rce-citem-body--bottom-tools-item-hidden-hover",
160
+ children: props.showMute && props.muted && /*#__PURE__*/ _jsx("div", {
161
+ className: "rce-citem-body--bottom-tools-item",
162
+ children: /*#__PURE__*/ _jsx(VolumeOffIcon, {})
163
+ })
164
+ }),
165
+ /*#__PURE__*/ _jsx("div", {
166
+ className: "rce-citem-body--bottom-status",
167
+ children: unread && unread > 0 ? /*#__PURE__*/ _jsx("span", {
168
+ children: unread
169
+ }) : null
170
+ }),
171
+ props.customStatusComponents !== undefined ? props.customStatusComponents.map((Item)=>/*#__PURE__*/ _jsx(Item, {})) : null
172
+ ]
173
+ })
174
+ ]
175
+ }, 'rce-citem-body')
176
+ ]
177
+ ]
178
+ })
179
+ }, props.id)
180
+ });
181
+ };
182
+
183
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9uaXRyb2c3L0RldmVsb3BtZW50L2dvdGhhbWpzL3NyYy9jb21wb25lbnRzL0NoYXQvQ2hhdEl0ZW0vQ2hhdEl0ZW0udHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Y259IGZyb20gJ0BubGFicy91dGlscyc7XG5pbXBvcnQge1xuICBDaGV2cm9uRG93biBhcyBBcnJvd0Rvd24wMUljb24sXG4gIENoZXZyb25VcCBhcyBBcnJvd1VwMDFJY29uLFxuICBWaWRlbyBhcyBWaWRlbzAxSWNvbixcbiAgVm9sdW1lMiBhcyBWb2x1bWVIaWdoSWNvbixcbiAgVm9sdW1lWCBhcyBWb2x1bWVPZmZJY29uXG59IGZyb20gJ2x1Y2lkZS1yZWFjdCc7XG5pbXBvcnQge3VzZUVmZmVjdCwgdXNlU3RhdGV9IGZyb20gJ3JlYWN0JztcblxuaW1wb3J0IHtBdmF0YXJ9IGZyb20gJy4uL0F2YXRhci9BdmF0YXIuanMnO1xuaW1wb3J0IHtJQ2hhdEl0ZW1Qcm9wc30gZnJvbSAnLi4vdHlwZSc7XG5pbXBvcnQge3Jlc29sdmVEYXRlVmFsdWUsIHVzZVJlbGF0aXZlRGF0ZVRleHR9IGZyb20gJy4uL3V0aWxzL2Zvcm1hdFJlbGF0aXZlRGF0ZS5qcyc7XG5cbmltcG9ydCB0eXBlIHtGQywgS2V5fSBmcm9tICdyZWFjdCc7XG5cbmV4cG9ydCBjb25zdCBDaGF0SXRlbTogRkM8SUNoYXRJdGVtUHJvcHM+ID0gKHtcbiAgYXZhdGFyRmxleGlibGUgPSBmYWxzZSxcbiAgdW5yZWFkID0gMCxcbiAgc3RhdHVzQ29sb3JUeXBlID0gJ2JhZGdlJyxcbiAgbGF6eUxvYWRpbmdJbWFnZSA9IHVuZGVmaW5lZCxcbiAgb25BdmF0YXJFcnJvciA9ICgpID0+IHZvaWQgMCxcbiAgLi4ucHJvcHNcbn0pID0+IHtcbiAgY29uc3QgW29uSG92ZXJUb29sLCBzZXRPbkhvdmVyVG9vbF0gPSB1c2VTdGF0ZShmYWxzZSk7XG4gIGNvbnN0IFtvbkRyYWcsIHNldE9uRHJhZ10gPSB1c2VTdGF0ZShmYWxzZSk7XG4gIGNvbnN0IHRpbWVzdGFtcCA9IHJlc29sdmVEYXRlVmFsdWUocHJvcHMuYWRkZWQsIHByb3BzLmRhdGUpO1xuICBjb25zdCBkYXRlVGV4dCA9IHVzZVJlbGF0aXZlRGF0ZVRleHQodGltZXN0YW1wLCBwcm9wcy5kYXRlU3RyaW5nKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIHByb3BzLnNldERyYWdTdGF0ZXM/LihzZXRPbkRyYWcpO1xuICB9LCBbXSk7XG5cbiAgY29uc3QgaGFuZGxlT25Nb3VzZUVudGVyID0gKCkgPT4ge1xuICAgIHNldE9uSG92ZXJUb29sKHRydWUpO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZU9uTW91c2VMZWF2ZSA9ICgpID0+IHtcbiAgICBzZXRPbkhvdmVyVG9vbChmYWxzZSk7XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlT25DbGljayA9IChlOiBSZWFjdC5Nb3VzZUV2ZW50KSA9PiB7XG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgaWYob25Ib3ZlclRvb2wgPT09IHRydWUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBwcm9wcy5vbkNsaWNrPy4oZSk7XG4gIH07XG5cbiAgY29uc3Qgb25EcmFnT3ZlciA9IChlOiBSZWFjdC5Nb3VzZUV2ZW50KSA9PiB7XG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGlmKHByb3BzLm9uRHJhZ092ZXIgaW5zdGFuY2VvZiBGdW5jdGlvbikge1xuICAgICAgcHJvcHMub25EcmFnT3ZlcihlLCBwcm9wcy5pZCk7XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IG9uRHJhZ0VudGVyID0gKGU6IFJlYWN0Lk1vdXNlRXZlbnQpID0+IHtcbiAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgaWYocHJvcHMub25EcmFnRW50ZXIgaW5zdGFuY2VvZiBGdW5jdGlvbikge1xuICAgICAgcHJvcHMub25EcmFnRW50ZXIoZSwgcHJvcHMuaWQpO1xuICAgIH1cbiAgICBpZighb25EcmFnKSB7XG4gICAgICBzZXRPbkRyYWcodHJ1ZSk7XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IG9uRHJhZ0xlYXZlID0gKGU6IFJlYWN0Lk1vdXNlRXZlbnQpID0+IHtcbiAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgaWYocHJvcHMub25EcmFnTGVhdmUgaW5zdGFuY2VvZiBGdW5jdGlvbikge1xuICAgICAgcHJvcHMub25EcmFnTGVhdmUoZSwgcHJvcHMuaWQpO1xuICAgIH1cbiAgICBpZihvbkRyYWcpIHtcbiAgICAgIHNldE9uRHJhZyhmYWxzZSk7XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IG9uRHJvcCA9IChlOiBSZWFjdC5Nb3VzZUV2ZW50KSA9PiB7XG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGlmKHByb3BzLm9uRHJvcCBpbnN0YW5jZW9mIEZ1bmN0aW9uKSB7XG4gICAgICBwcm9wcy5vbkRyb3AoZSwgcHJvcHMuaWQpO1xuICAgIH1cbiAgICBpZihvbkRyYWcpIHtcbiAgICAgIHNldE9uRHJhZyhmYWxzZSk7XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IG9uRXhwYW5kSXRlbSA9IChlOiBSZWFjdC5Nb3VzZUV2ZW50LCBpZDogc3RyaW5nIHwgbnVtYmVyKSA9PiB7XG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgaWYocHJvcHMub25FeHBhbmRJdGVtIGluc3RhbmNlb2YgRnVuY3Rpb24pIHtcbiAgICAgIHByb3BzLm9uRXhwYW5kSXRlbShpZCk7XG4gICAgfVxuICB9O1xuXG4gIHJldHVybiAoXG4gICAgPD5cbiAgICAgIDxkaXZcbiAgICAgICAga2V5PXtwcm9wcy5pZCBhcyBLZXl9XG4gICAgICAgIGNsYXNzTmFtZT17Y24oJ3JjZS1jb250YWluZXItY2l0ZW0nLCBwcm9wcy5jbGFzc05hbWUpfVxuICAgICAgICBvbkNsaWNrPXtoYW5kbGVPbkNsaWNrfVxuICAgICAgICBvbkNvbnRleHRNZW51PXtwcm9wcy5vbkNvbnRleHRNZW51fVxuICAgICAgPlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT0ncmNlLWNpdGVtJyBvbkRyYWdPdmVyPXtvbkRyYWdPdmVyfSBvbkRyYWdFbnRlcj17b25EcmFnRW50ZXJ9IG9uRHJhZ0xlYXZlPXtvbkRyYWdMZWF2ZX0gb25Ecm9wPXtvbkRyb3B9PlxuICAgICAgICAgIHshIXByb3BzLm9uRHJhZ0NvbXBvbmVudCAmJiBvbkRyYWcgJiYgcHJvcHMub25EcmFnQ29tcG9uZW50KHByb3BzLmlkKX1cbiAgICAgICAgICB7KChvbkRyYWcgJiYgIXByb3BzLm9uRHJhZ0NvbXBvbmVudCkgfHwgIW9uRHJhZykgJiYgW1xuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICBrZXk9eydhdmF0YXInfVxuICAgICAgICAgICAgICBjbGFzc05hbWU9e2NuKCdyY2UtY2l0ZW0tYXZhdGFyJywgeydyY2UtY2l0ZW0tc3RhdHVzLWVuY2lyY2xlJzogc3RhdHVzQ29sb3JUeXBlID09PSAnZW5jaXJjbGUnfSl9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxBdmF0YXJcbiAgICAgICAgICAgICAgICBzcmM9e3Byb3BzLmF2YXRhcn1cbiAgICAgICAgICAgICAgICBhbHQ9e3Byb3BzLmFsdH1cbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9e3N0YXR1c0NvbG9yVHlwZSA9PT0gJ2VuY2lyY2xlJyA/ICdyY2UtY2l0ZW0tYXZhdGFyLWVuY2lyY2xlLXN0YXR1cycgOiAnJ31cbiAgICAgICAgICAgICAgICBzaXplPXtwcm9wcy5hdmF0YXJTaXplIHx8ICdsYXJnZSd9XG4gICAgICAgICAgICAgICAgbGV0dGVySXRlbT17cHJvcHMubGV0dGVySXRlbX1cbiAgICAgICAgICAgICAgICBzaWRlRWxlbWVudD17XG4gICAgICAgICAgICAgICAgICBwcm9wcy5zdGF0dXNDb2xvciA/IChcbiAgICAgICAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9J3JjZS1jaXRlbS1zdGF0dXMnXG4gICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzQ29sb3JUeXBlID09PSAnZW5jaXJjbGUnXG4gICAgICAgICAgICAgICAgICAgICAgICAgID8ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlcjogYHNvbGlkIDJweCAke3Byb3BzLnN0YXR1c0NvbG9yfWBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICA6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IHByb3BzLnN0YXR1c0NvbG9yXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICB7cHJvcHMuc3RhdHVzVGV4dH1cbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICAgICAgPD48Lz5cbiAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgb25FcnJvcj17b25BdmF0YXJFcnJvcn1cbiAgICAgICAgICAgICAgICBsYXp5TG9hZGluZ0ltYWdlPXtsYXp5TG9hZGluZ0ltYWdlfVxuICAgICAgICAgICAgICAgIHR5cGU9e2NuKCdjaXJjbGUnLCB7ZmxleGlibGU6IGF2YXRhckZsZXhpYmxlfSl9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIHtwcm9wcy5zdWJMaXN0ICYmIHByb3BzLnN1Ykxpc3QubGVuZ3RoID4gMCAmJiAoXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzc05hbWU9J3JjZS1jaXRlbS1leHBhbmQtYnV0dG9uJyBvbkNsaWNrPXsoZSkgPT4gb25FeHBhbmRJdGVtKGUsIHByb3BzLmlkKX0+XG4gICAgICAgICAgICAgICAgICB7cHJvcHMuZXhwYW5kZWQgPyA8QXJyb3dVcDAxSWNvbiAgLz4gOiA8QXJyb3dEb3duMDFJY29uICAvPn1cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDwvZGl2PixcbiAgICAgICAgICAgIDxkaXYga2V5PXsncmNlLWNpdGVtLWJvZHknfSBjbGFzc05hbWU9J3JjZS1jaXRlbS1ib2R5Jz5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9J3JjZS1jaXRlbS1ib2R5LS10b3AnPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPSdyY2UtY2l0ZW0tYm9keS0tdG9wLXRpdGxlJz57cHJvcHMudGl0bGV9PC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9J3JjZS1jaXRlbS1ib2R5LS10b3AtdGltZSc+e2RhdGVUZXh0fTwvZGl2PlxuICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT0ncmNlLWNpdGVtLWJvZHktLWJvdHRvbSc+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9J3JjZS1jaXRlbS1ib2R5LS1ib3R0b20tdGl0bGUnPntwcm9wcy5zdWJ0aXRsZX08L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT0ncmNlLWNpdGVtLWJvZHktLWJvdHRvbS10b29scycgb25Nb3VzZUVudGVyPXtoYW5kbGVPbk1vdXNlRW50ZXJ9IG9uTW91c2VMZWF2ZT17aGFuZGxlT25Nb3VzZUxlYXZlfT5cbiAgICAgICAgICAgICAgICAgIHtwcm9wcy5zaG93TXV0ZSAmJiAoXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPSdyY2UtY2l0ZW0tYm9keS0tYm90dG9tLXRvb2xzLWl0ZW0nIG9uQ2xpY2s9e3Byb3BzLm9uQ2xpY2tNdXRlfT5cbiAgICAgICAgICAgICAgICAgICAgICB7cHJvcHMubXV0ZWQgPT09IHRydWUgJiYgPFZvbHVtZU9mZkljb24gIC8+fVxuICAgICAgICAgICAgICAgICAgICAgIHtwcm9wcy5tdXRlZCA9PT0gZmFsc2UgJiYgPFZvbHVtZUhpZ2hJY29uICAvPn1cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAge3Byb3BzLnNob3dWaWRlb0NhbGwgJiYgKFxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT0ncmNlLWNpdGVtLWJvZHktLWJvdHRvbS10b29scy1pdGVtJyBvbkNsaWNrPXtwcm9wcy5vbkNsaWNrVmlkZW9DYWxsfT5cbiAgICAgICAgICAgICAgICAgICAgICA8VmlkZW8wMUljb24gIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT0ncmNlLWNpdGVtLWJvZHktLWJvdHRvbS10b29scy1pdGVtLWhpZGRlbi1ob3Zlcic+XG4gICAgICAgICAgICAgICAgICB7cHJvcHMuc2hvd011dGUgJiYgcHJvcHMubXV0ZWQgJiYgKFxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT0ncmNlLWNpdGVtLWJvZHktLWJvdHRvbS10b29scy1pdGVtJz5cbiAgICAgICAgICAgICAgICAgICAgICA8Vm9sdW1lT2ZmSWNvbiAgLz5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPSdyY2UtY2l0ZW0tYm9keS0tYm90dG9tLXN0YXR1cyc+e3VucmVhZCAmJiB1bnJlYWQgPiAwID8gPHNwYW4+e3VucmVhZH08L3NwYW4+IDogbnVsbH08L2Rpdj5cbiAgICAgICAgICAgICAgICB7cHJvcHMuY3VzdG9tU3RhdHVzQ29tcG9uZW50cyAhPT0gdW5kZWZpbmVkID8gcHJvcHMuY3VzdG9tU3RhdHVzQ29tcG9uZW50cy5tYXAoKEl0ZW0pID0+IDxJdGVtIC8+KSA6IG51bGx9XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgXX1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8Lz5cbiAgKTtcbn07XG4iXSwibmFtZXMiOlsiY24iLCJDaGV2cm9uRG93biIsIkFycm93RG93bjAxSWNvbiIsIkNoZXZyb25VcCIsIkFycm93VXAwMUljb24iLCJWaWRlbyIsIlZpZGVvMDFJY29uIiwiVm9sdW1lMiIsIlZvbHVtZUhpZ2hJY29uIiwiVm9sdW1lWCIsIlZvbHVtZU9mZkljb24iLCJ1c2VFZmZlY3QiLCJ1c2VTdGF0ZSIsIkF2YXRhciIsInJlc29sdmVEYXRlVmFsdWUiLCJ1c2VSZWxhdGl2ZURhdGVUZXh0IiwiQ2hhdEl0ZW0iLCJhdmF0YXJGbGV4aWJsZSIsInVucmVhZCIsInN0YXR1c0NvbG9yVHlwZSIsImxhenlMb2FkaW5nSW1hZ2UiLCJ1bmRlZmluZWQiLCJvbkF2YXRhckVycm9yIiwicHJvcHMiLCJvbkhvdmVyVG9vbCIsInNldE9uSG92ZXJUb29sIiwib25EcmFnIiwic2V0T25EcmFnIiwidGltZXN0YW1wIiwiYWRkZWQiLCJkYXRlIiwiZGF0ZVRleHQiLCJkYXRlU3RyaW5nIiwic2V0RHJhZ1N0YXRlcyIsImhhbmRsZU9uTW91c2VFbnRlciIsImhhbmRsZU9uTW91c2VMZWF2ZSIsImhhbmRsZU9uQ2xpY2siLCJlIiwicHJldmVudERlZmF1bHQiLCJvbkNsaWNrIiwib25EcmFnT3ZlciIsIkZ1bmN0aW9uIiwiaWQiLCJvbkRyYWdFbnRlciIsIm9uRHJhZ0xlYXZlIiwib25Ecm9wIiwib25FeHBhbmRJdGVtIiwic3RvcFByb3BhZ2F0aW9uIiwiZGl2IiwiY2xhc3NOYW1lIiwib25Db250ZXh0TWVudSIsIm9uRHJhZ0NvbXBvbmVudCIsInNyYyIsImF2YXRhciIsImFsdCIsInNpemUiLCJhdmF0YXJTaXplIiwibGV0dGVySXRlbSIsInNpZGVFbGVtZW50Iiwic3RhdHVzQ29sb3IiLCJzcGFuIiwic3R5bGUiLCJib3JkZXIiLCJiYWNrZ3JvdW5kQ29sb3IiLCJzdGF0dXNUZXh0Iiwib25FcnJvciIsInR5cGUiLCJmbGV4aWJsZSIsInN1Ykxpc3QiLCJsZW5ndGgiLCJidXR0b24iLCJleHBhbmRlZCIsInRpdGxlIiwic3VidGl0bGUiLCJvbk1vdXNlRW50ZXIiLCJvbk1vdXNlTGVhdmUiLCJzaG93TXV0ZSIsIm9uQ2xpY2tNdXRlIiwibXV0ZWQiLCJzaG93VmlkZW9DYWxsIiwib25DbGlja1ZpZGVvQ2FsbCIsImN1c3RvbVN0YXR1c0NvbXBvbmVudHMiLCJtYXAiLCJJdGVtIl0sIm1hcHBpbmdzIjoiO0FBQUEsU0FBUUEsRUFBRSxRQUFPLGVBQWU7QUFDaEMsU0FDRUMsZUFBZUMsZUFBZSxFQUM5QkMsYUFBYUMsYUFBYSxFQUMxQkMsU0FBU0MsV0FBVyxFQUNwQkMsV0FBV0MsY0FBYyxFQUN6QkMsV0FBV0MsYUFBYSxRQUNuQixlQUFlO0FBQ3RCLFNBQVFDLFNBQVMsRUFBRUMsUUFBUSxRQUFPLFFBQVE7QUFFMUMsU0FBUUMsTUFBTSxRQUFPLHNCQUFzQjtBQUUzQyxTQUFRQyxnQkFBZ0IsRUFBRUMsbUJBQW1CLFFBQU8saUNBQWlDO0FBSXJGLE9BQU8sTUFBTUMsV0FBK0IsQ0FBQyxFQUMzQ0MsaUJBQWlCLEtBQUssRUFDdEJDLFNBQVMsQ0FBQyxFQUNWQyxrQkFBa0IsT0FBTyxFQUN6QkMsbUJBQW1CQyxTQUFTLEVBQzVCQyxnQkFBZ0IsSUFBTSxLQUFLLENBQUMsRUFDNUIsR0FBR0MsT0FDSjtJQUNDLE1BQU0sQ0FBQ0MsYUFBYUMsZUFBZSxHQUFHYixTQUFTO0lBQy9DLE1BQU0sQ0FBQ2MsUUFBUUMsVUFBVSxHQUFHZixTQUFTO0lBQ3JDLE1BQU1nQixZQUFZZCxpQkFBaUJTLE1BQU1NLEtBQUssRUFBRU4sTUFBTU8sSUFBSTtJQUMxRCxN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
@@ -0,0 +1 @@
1
+ .rce-container-clist{display:block;overflow:auto}
@@ -0,0 +1,3 @@
1
+ import type { FC } from 'react';
2
+ import type { IChatListProps } from '../type';
3
+ export declare const ChatList: FC<IChatListProps>;
@@ -0,0 +1,84 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import { createElement as _createElement } from "react";
3
+ import { cn } from '@nlabs/utils';
4
+ import { ChatItem } from '../ChatItem/ChatItem.js';
5
+ const list = [];
6
+ export const ChatList = (props)=>{
7
+ const onClick = (item, index, event)=>{
8
+ if (props.onClick instanceof Function) {
9
+ props.onClick(item, index, event);
10
+ }
11
+ };
12
+ const onContextMenu = (item, index, event)=>{
13
+ event.preventDefault();
14
+ if (props.onContextMenu instanceof Function) {
15
+ props.onContextMenu(item, index, event);
16
+ }
17
+ };
18
+ const onAvatarError = (item, index, event)=>{
19
+ if (props.onAvatarError instanceof Function) {
20
+ props.onAvatarError(item, index, event);
21
+ }
22
+ };
23
+ const setDragStates = (state)=>{
24
+ list.push(state);
25
+ };
26
+ const onDragLeaveMW = (e, id)=>{
27
+ if (list.length > 0) {
28
+ list.forEach((item)=>item(false));
29
+ }
30
+ props.onDragLeave?.(e, id);
31
+ };
32
+ const onExpand = (item, index, event)=>{
33
+ if (props.onExpand instanceof Function) {
34
+ props.onExpand(item, index, event);
35
+ }
36
+ };
37
+ return /*#__PURE__*/ _jsx("div", {
38
+ className: cn('rce-container-clist', props.className),
39
+ children: props.dataSource.map((x, i)=>/*#__PURE__*/ _jsxs(_Fragment, {
40
+ children: [
41
+ /*#__PURE__*/ _createElement(ChatItem, {
42
+ ...x,
43
+ key: i,
44
+ lazyLoadingImage: props.lazyLoadingImage,
45
+ onAvatarError: (e)=>onAvatarError(x, i, e),
46
+ onContextMenu: (e)=>onContextMenu(x, i, e),
47
+ onClick: (e)=>onClick(x, i, e),
48
+ onClickMute: (e)=>props.onClickMute?.(x, i, e),
49
+ onClickVideoCall: (e)=>props.onClickVideoCall?.(x, i, e),
50
+ onDragOver: props?.onDragOver,
51
+ onDragEnter: props?.onDragEnter,
52
+ onDrop: props.onDrop,
53
+ onDragLeave: onDragLeaveMW,
54
+ onDragComponent: props.onDragComponent,
55
+ setDragStates: setDragStates,
56
+ onExpandItem: (e)=>onExpand(x, i, e),
57
+ expanded: x.expanded
58
+ }),
59
+ x.subList && x.subList.length > 0 && /*#__PURE__*/ _jsx(_Fragment, {
60
+ children: x.expanded && x.subList.map((sub, j)=>/*#__PURE__*/ _createElement(ChatItem, {
61
+ ...sub,
62
+ className: "subitem",
63
+ avatarSize: "xsmall",
64
+ key: `${i}-${j}`,
65
+ lazyLoadingImage: props.lazyLoadingImage,
66
+ onAvatarError: (e)=>onAvatarError(sub, j, e),
67
+ onContextMenu: (e)=>onContextMenu(sub, j, e),
68
+ onClick: (e)=>onClick(sub, j, e),
69
+ onClickMute: (e)=>props.onClickMute?.(sub, j, e),
70
+ onClickVideoCall: (e)=>props.onClickVideoCall?.(sub, j, e),
71
+ onDragOver: props?.onDragOver,
72
+ onDragEnter: props?.onDragEnter,
73
+ onDrop: props.onDrop,
74
+ onDragLeave: onDragLeaveMW,
75
+ onDragComponent: props.onDragComponent,
76
+ setDragStates: setDragStates
77
+ }))
78
+ })
79
+ ]
80
+ }))
81
+ });
82
+ };
83
+
84
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9uaXRyb2c3L0RldmVsb3BtZW50L2dvdGhhbWpzL3NyYy9jb21wb25lbnRzL0NoYXQvQ2hhdExpc3QvQ2hhdExpc3QudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Y259IGZyb20gJ0BubGFicy91dGlscyc7XG5cbmltcG9ydCB7Q2hhdEl0ZW19IGZyb20gJy4uL0NoYXRJdGVtL0NoYXRJdGVtLmpzJztcblxuaW1wb3J0IHR5cGUge0Rpc3BhdGNoLCBGQywgS2V5LCBTZXRTdGF0ZUFjdGlvbn0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHR5cGUge0NoYXRMaXN0RXZlbnQsIElDaGF0TGlzdFByb3BzfSBmcm9tICcuLi90eXBlJztcblxuY29uc3QgbGlzdDogRGlzcGF0Y2g8U2V0U3RhdGVBY3Rpb248YW55Pj5bXSA9IFtdO1xuXG5leHBvcnQgY29uc3QgQ2hhdExpc3Q6IEZDPElDaGF0TGlzdFByb3BzPiA9IChwcm9wcykgPT4ge1xuICBjb25zdCBvbkNsaWNrOiBDaGF0TGlzdEV2ZW50ID0gKGl0ZW0sIGluZGV4LCBldmVudCkgPT4ge1xuICAgIGlmKHByb3BzLm9uQ2xpY2sgaW5zdGFuY2VvZiBGdW5jdGlvbikge1xuICAgICAgcHJvcHMub25DbGljayhpdGVtLCBpbmRleCwgZXZlbnQpO1xuICAgIH1cbiAgfTtcblxuICBjb25zdCBvbkNvbnRleHRNZW51OiBDaGF0TGlzdEV2ZW50ID0gKGl0ZW0sIGluZGV4LCBldmVudCkgPT4ge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgaWYocHJvcHMub25Db250ZXh0TWVudSBpbnN0YW5jZW9mIEZ1bmN0aW9uKSB7XG4gICAgICBwcm9wcy5vbkNvbnRleHRNZW51KGl0ZW0sIGluZGV4LCBldmVudCk7XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IG9uQXZhdGFyRXJyb3I6IENoYXRMaXN0RXZlbnQgPSAoaXRlbSwgaW5kZXgsIGV2ZW50KSA9PiB7XG4gICAgaWYocHJvcHMub25BdmF0YXJFcnJvciBpbnN0YW5jZW9mIEZ1bmN0aW9uKSB7XG4gICAgICBwcm9wcy5vbkF2YXRhckVycm9yKGl0ZW0sIGluZGV4LCBldmVudCk7XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IHNldERyYWdTdGF0ZXMgPSA8Uyw+KHN0YXRlOiBEaXNwYXRjaDxTZXRTdGF0ZUFjdGlvbjxTPj4pID0+IHtcbiAgICBsaXN0LnB1c2goc3RhdGUpO1xuICB9O1xuXG4gIGNvbnN0IG9uRHJhZ0xlYXZlTVcgPSAoZTogUmVhY3QuTW91c2VFdmVudDxIVE1MRWxlbWVudD4sIGlkOiBudW1iZXIgfCBzdHJpbmcpID0+IHtcbiAgICBpZihsaXN0Lmxlbmd0aCA+IDApIHtcbiAgICAgIGxpc3QuZm9yRWFjaCgoaXRlbSkgPT4gaXRlbShmYWxzZSkpO1xuICAgIH1cbiAgICBwcm9wcy5vbkRyYWdMZWF2ZT8uKGUsIGlkKTtcbiAgfTtcblxuICBjb25zdCBvbkV4cGFuZDogQ2hhdExpc3RFdmVudCA9IChpdGVtLCBpbmRleCwgZXZlbnQpID0+IHtcbiAgICBpZihwcm9wcy5vbkV4cGFuZCBpbnN0YW5jZW9mIEZ1bmN0aW9uKSB7XG4gICAgICBwcm9wcy5vbkV4cGFuZChpdGVtLCBpbmRleCwgZXZlbnQpO1xuICAgIH1cbiAgfTtcblxuICByZXR1cm4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPXtjbigncmNlLWNvbnRhaW5lci1jbGlzdCcsIHByb3BzLmNsYXNzTmFtZSl9PlxuICAgICAge3Byb3BzLmRhdGFTb3VyY2UubWFwKCh4LCBpOiBudW1iZXIpID0+IChcbiAgICAgICAgPD5cbiAgICAgICAgICA8Q2hhdEl0ZW1cbiAgICAgICAgICAgIHsuLi54fVxuICAgICAgICAgICAga2V5PXtpIGFzIEtleX1cbiAgICAgICAgICAgIGxhenlMb2FkaW5nSW1hZ2U9e3Byb3BzLmxhenlMb2FkaW5nSW1hZ2V9XG4gICAgICAgICAgICBvbkF2YXRhckVycm9yPXsoZTogUmVhY3QuTW91c2VFdmVudDxIVE1MRWxlbWVudD4pID0+IG9uQXZhdGFyRXJyb3IoeCwgaSwgZSl9XG4gICAgICAgICAgICBvbkNvbnRleHRNZW51PXsoZTogUmVhY3QuTW91c2VFdmVudDxIVE1MRWxlbWVudD4pID0+IG9uQ29udGV4dE1lbnUoeCwgaSwgZSl9XG4gICAgICAgICAgICBvbkNsaWNrPXsoZTogUmVhY3QuTW91c2VFdmVudDxIVE1MRWxlbWVudD4pID0+IG9uQ2xpY2soeCwgaSwgZSl9XG4gICAgICAgICAgICBvbkNsaWNrTXV0ZT17KGU6IFJlYWN0Lk1vdXNlRXZlbnQ8SFRNTEVsZW1lbnQ+KSA9PiBwcm9wcy5vbkNsaWNrTXV0ZT8uKHgsIGksIGUpfVxuICAgICAgICAgICAgb25DbGlja1ZpZGVvQ2FsbD17KGU6IFJlYWN0Lk1vdXNlRXZlbnQ8SFRNTEVsZW1lbnQ+KSA9PiBwcm9wcy5vbkNsaWNrVmlkZW9DYWxsPy4oeCwgaSwgZSl9XG4gICAgICAgICAgICBvbkRyYWdPdmVyPXtwcm9wcz8ub25EcmFnT3Zlcn1cbiAgICAgICAgICAgIG9uRHJhZ0VudGVyPXtwcm9wcz8ub25EcmFnRW50ZXJ9XG4gICAgICAgICAgICBvbkRyb3A9e3Byb3BzLm9uRHJvcH1cbiAgICAgICAgICAgIG9uRHJhZ0xlYXZlPXtvbkRyYWdMZWF2ZU1XfVxuICAgICAgICAgICAgb25EcmFnQ29tcG9uZW50PXtwcm9wcy5vbkRyYWdDb21wb25lbnR9XG4gICAgICAgICAgICBzZXREcmFnU3RhdGVzPXtzZXREcmFnU3RhdGVzfVxuICAgICAgICAgICAgb25FeHBhbmRJdGVtPXsoZTogUmVhY3QuTW91c2VFdmVudDxIVE1MRWxlbWVudD4pID0+IG9uRXhwYW5kKHgsIGksIGUpfVxuICAgICAgICAgICAgZXhwYW5kZWQ9e3guZXhwYW5kZWR9XG4gICAgICAgICAgLz5cbiAgICAgICAgICB7eC5zdWJMaXN0ICYmIHguc3ViTGlzdC5sZW5ndGggPiAwICYmIChcbiAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgIHt4LmV4cGFuZGVkICYmIHguc3ViTGlzdC5tYXAoKHN1YiwgaikgPT4gKFxuICAgICAgICAgICAgICAgIDxDaGF0SXRlbVxuICAgICAgICAgICAgICAgICAgey4uLnN1Yn1cbiAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT0nc3ViaXRlbSdcbiAgICAgICAgICAgICAgICAgIGF2YXRhclNpemU9J3hzbWFsbCdcbiAgICAgICAgICAgICAgICAgIGtleT17YCR7aX0tJHtqfWB9XG4gICAgICAgICAgICAgICAgICBsYXp5TG9hZGluZ0ltYWdlPXtwcm9wcy5sYXp5TG9hZGluZ0ltYWdlfVxuICAgICAgICAgICAgICAgICAgb25BdmF0YXJFcnJvcj17KGU6IFJlYWN0Lk1vdXNlRXZlbnQ8SFRNTEVsZW1lbnQ+KSA9PiBvbkF2YXRhckVycm9yKHN1YiwgaiwgZSl9XG4gICAgICAgICAgICAgICAgICBvbkNvbnRleHRNZW51PXsoZTogUmVhY3QuTW91c2VFdmVudDxIVE1MRWxlbWVudD4pID0+IG9uQ29udGV4dE1lbnUoc3ViLCBqLCBlKX1cbiAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eyhlOiBSZWFjdC5Nb3VzZUV2ZW50PEhUTUxFbGVtZW50PikgPT4gb25DbGljayhzdWIsIGosIGUpfVxuICAgICAgICAgICAgICAgICAgb25DbGlja011dGU9eyhlOiBSZWFjdC5Nb3VzZUV2ZW50PEhUTUxFbGVtZW50PikgPT4gcHJvcHMub25DbGlja011dGU/LihzdWIsIGosIGUpfVxuICAgICAgICAgICAgICAgICAgb25DbGlja1ZpZGVvQ2FsbD17KGU6IFJlYWN0Lk1vdXNlRXZlbnQ8SFRNTEVsZW1lbnQ+KSA9PiBwcm9wcy5vbkNsaWNrVmlkZW9DYWxsPy4oc3ViLCBqLCBlKX1cbiAgICAgICAgICAgICAgICAgIG9uRHJhZ092ZXI9e3Byb3BzPy5vbkRyYWdPdmVyfVxuICAgICAgICAgICAgICAgICAgb25EcmFnRW50ZXI9e3Byb3BzPy5vbkRyYWdFbnRlcn1cbiAgICAgICAgICAgICAgICAgIG9uRHJvcD17cHJvcHMub25Ecm9wfVxuICAgICAgICAgICAgICAgICAgb25EcmFnTGVhdmU9e29uRHJhZ0xlYXZlTVd9XG4gICAgICAgICAgICAgICAgICBvbkRyYWdDb21wb25lbnQ9e3Byb3BzLm9uRHJhZ0NvbXBvbmVudH1cbiAgICAgICAgICAgICAgICAgIHNldERyYWdTdGF0ZXM9e3NldERyYWdTdGF0ZXN9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICA8Lz5cbiAgICAgICAgICApfVxuICAgICAgICA8Lz5cbiAgICAgICkpfVxuICAgIDwvZGl2PlxuICApO1xufTtcbiJdLCJuYW1lcyI6WyJjbiIsIkNoYXRJdGVtIiwibGlzdCIsIkNoYXRMaXN0IiwicHJvcHMiLCJvbkNsaWNrIiwiaXRlbSIsImluZGV4IiwiZXZlbnQiLCJGdW5jdGlvbiIsIm9uQ29udGV4dE1lbnUiLCJwcmV2ZW50RGVmYXVsdCIsIm9uQXZhdGFyRXJyb3IiLCJzZXREcmFnU3RhdGVzIiwic3RhdGUiLCJwdXNoIiwib25EcmFnTGVhdmVNVyIsImUiLCJpZCIsImxlbmd0aCIsImZvckVhY2giLCJvbkRyYWdMZWF2ZSIsIm9uRXhwYW5kIiwiZGl2IiwiY2xhc3NOYW1lIiwiZGF0YVNvdXJjZSIsIm1hcCIsIngiLCJpIiwia2V5IiwibGF6eUxvYWRpbmdJbWFnZSIsIm9uQ2xpY2tNdXRlIiwib25DbGlja1ZpZGVvQ2FsbCIsIm9uRHJhZ092ZXIiLCJvbkRyYWdFbnRlciIsIm9uRHJvcCIsIm9uRHJhZ0NvbXBvbmVudCIsIm9uRXhwYW5kSXRlbSIsImV4cGFuZGVkIiwic3ViTGlzdCIsInN1YiIsImoiLCJhdmF0YXJTaXplIl0sIm1hcHBpbmdzIjoiOztBQUFBLFNBQVFBLEVBQUUsUUFBTyxlQUFlO0FBRWhDLFNBQVFDLFFBQVEsUUFBTywwQkFBMEI7QUFLakQsTUFBTUMsT0FBd0MsRUFBRTtBQUVoRCxPQUFPLE1BQU1DLFdBQStCLENBQUNDO0lBQzNDLE1BQU1DLFVBQXlCLENBQUNDLE1BQU1DLE9BQU9DO1FBQzNDLElBQUdKLE1BQU1DLE9BQU8sWUFB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
@@ -0,0 +1,3 @@
1
+ import type { FC } from 'react';
2
+ import type { ICircleProps } from '../type';
3
+ export declare const ProgressCircle: FC<ICircleProps>;
@@ -0,0 +1,27 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { Circle } from 'progressbar.js';
3
+ import { useCallback, useEffect, useMemo } from 'react';
4
+ let wrapper;
5
+ export const ProgressCircle = ({ animate, progressOptions, className })=>{
6
+ const bar = useMemo(()=>{
7
+ wrapper = document.createElement('div');
8
+ return new Circle(wrapper, progressOptions);
9
+ }, []);
10
+ const node = useCallback((node)=>{
11
+ if (node) {
12
+ node.appendChild(wrapper);
13
+ }
14
+ }, []);
15
+ useEffect(()=>{
16
+ bar.animate(animate);
17
+ }, [
18
+ animate,
19
+ bar
20
+ ]);
21
+ return /*#__PURE__*/ _jsx("div", {
22
+ className: className,
23
+ ref: node
24
+ });
25
+ };
26
+
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9uaXRyb2c3L0RldmVsb3BtZW50L2dvdGhhbWpzL3NyYy9jb21wb25lbnRzL0NoYXQvQ2lyY2xlL0NpcmNsZS50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDaXJjbGV9IGZyb20gJ3Byb2dyZXNzYmFyLmpzJztcbmltcG9ydCB7dXNlQ2FsbGJhY2ssIHVzZUVmZmVjdCwgdXNlTWVtb30gZnJvbSAncmVhY3QnO1xuXG5pbXBvcnQgdHlwZSB7RkN9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB0eXBlIHtJQ2lyY2xlUHJvcHN9IGZyb20gJy4uL3R5cGUnO1xuXG5sZXQgd3JhcHBlcjogSFRNTERpdkVsZW1lbnQ7XG5cbmV4cG9ydCBjb25zdCBQcm9ncmVzc0NpcmNsZTogRkM8SUNpcmNsZVByb3BzPiA9ICh7YW5pbWF0ZSwgcHJvZ3Jlc3NPcHRpb25zLCBjbGFzc05hbWV9KSA9PiB7XG4gIGNvbnN0IGJhciA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIHdyYXBwZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICByZXR1cm4gbmV3IENpcmNsZSh3cmFwcGVyLCBwcm9ncmVzc09wdGlvbnMpO1xuICB9LCBbXSk7XG5cbiAgY29uc3Qgbm9kZSA9IHVzZUNhbGxiYWNrKChub2RlOiBhbnkpID0+IHtcbiAgICBpZihub2RlKSB7XG4gICAgICBub2RlLmFwcGVuZENoaWxkKHdyYXBwZXIpO1xuICAgIH1cbiAgfSwgW10pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgYmFyLmFuaW1hdGUoYW5pbWF0ZSk7XG4gIH0sIFthbmltYXRlLCBiYXJdKTtcblxuICByZXR1cm4gPGRpdiBjbGFzc05hbWU9e2NsYXNzTmFtZX0gcmVmPXtub2RlfSAvPjtcbn07XG4iXSwibmFtZXMiOlsiQ2lyY2xlIiwidXNlQ2FsbGJhY2siLCJ1c2VFZmZlY3QiLCJ1c2VNZW1vIiwid3JhcHBlciIsIlByb2dyZXNzQ2lyY2xlIiwiYW5pbWF0ZSIsInByb2dyZXNzT3B0aW9ucyIsImNsYXNzTmFtZSIsImJhciIsImRvY3VtZW50IiwiY3JlYXRlRWxlbWVudCIsIm5vZGUiLCJhcHBlbmRDaGlsZCIsImRpdiIsInJlZiJdLCJtYXBwaW5ncyI6IjtBQUFBLFNBQVFBLE1BQU0sUUFBTyxpQkFBaUI7QUFDdEMsU0FBUUMsV0FBVyxFQUFFQyxTQUFTLEVBQUVDLE9BQU8sUUFBTyxRQUFRO0FBS3RELElBQUlDO0FBRUosT0FBTyxNQUFNQyxpQkFBbUMsQ0FBQyxFQUFDQyxPQUFPLEVBQUVDLGVBQWUsRUFBRUMsU0FBUyxFQUFDO0lBQ3BGLE1BQU1DLE1BQU1OLFFBQVE7UUFDbEJDLFVBQVVNLFNBQVNDLGFBQWEsQ0FBQztRQUNqQyxPQUFPLElBQUlYLE9BQU9JLFNBQVNHO0lBQzdCLEdBQUcsRUFBRTtJQUVMLE1BQU1LLE9BQU9YLFlBQVksQ0FBQ1c7UUFDeEIsSUFBR0EsTUFBTTtZQUNQQSxLQUFLQyxXQUFXLENBQUNUO1FBQ25CO0lBQ0YsR0FBRyxFQUFFO0lBRUxGLFVBQVU7UUFDUk8sSUFBSUgsT0FBTyxDQUFDQTtJQUNkLEdBQUc7UUFBQ0E7UUFBU0c7S0FBSTtJQUVqQixxQkFBTyxLQUFDSztRQUFJTixXQUFXQTtRQUFXTyxLQUFLSDs7QUFDekMsRUFBRSJ9
@@ -0,0 +1 @@
1
+ .rce-dropdown-container{position:relative}.rce-dropdown{min-width:100%;-webkit-box-sizing:border-box;box-sizing:border-box;padding:8px 15px;background:#fff;border-radius:5px;display:none;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-transform:scale(0);-ms-transform:scale(0);transform:scale(0);position:absolute;-webkit-box-shadow:0 0 5px 0 #a3a3a3;box-shadow:0 0 5px 0 #a3a3a3;-webkit-transform-origin:left top;-ms-transform-origin:left top;transform-origin:left top;z-index:99999}.rce-dropdown-title{font-size:14px;color:"#000";font-weight:500}.rce-dropdown.dropdown-show{-webkit-animation:dropdown-scaling .2s ease forwards;animation:dropdown-scaling .2s ease forwards;display:-webkit-box;display:-ms-flexbox;display:flex}@-webkit-keyframes dropdown-scaling{0%{opacity:0}50%{opacity:.5;-webkit-transform:scale(1.1);transform:scale(1.1)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes dropdown-scaling{0%{opacity:0}50%{opacity:.5;-webkit-transform:scale(1.1);transform:scale(1.1)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}.rce-dropdown.dropdown-hide{-webkit-animation:dropdown-reverse-scaling .2s ease forwards;animation:dropdown-reverse-scaling .2s ease forwards;display:-webkit-box;display:-ms-flexbox;display:flex}@-webkit-keyframes dropdown-reverse-scaling{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}50%{opacity:.5;-webkit-transform:scale(1.1);transform:scale(1.1)}to{opacity:0;-webkit-transform:scale(0);transform:scale(0)}}@keyframes dropdown-reverse-scaling{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}50%{opacity:.5;-webkit-transform:scale(1.1);transform:scale(1.1)}to{opacity:0;-webkit-transform:scale(0);transform:scale(0)}}.rce-dropdown-open__nortwest{-webkit-transform-origin:left top;-ms-transform-origin:left top;transform-origin:left top;left:0;top:100%;margin-top:5px}.rce-dropdown-open__norteast{-webkit-transform-origin:right top;-ms-transform-origin:right top;transform-origin:right top;right:0;top:100%;margin-top:5px}.rce-dropdown-open__southwest{-webkit-transform-origin:left bottom;-ms-transform-origin:left bottom;transform-origin:left bottom;left:0;bottom:100%;margin-bottom:5px}.rce-dropdown-open__southeast{-webkit-transform-origin:right bottom;-ms-transform-origin:right bottom;transform-origin:right bottom;right:0;bottom:100%;margin-bottom:5px}.rce-dropdown ul{list-style:none;margin:0;padding:0;width:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.rce-dropdown ul li{white-space:nowrap;color:#767676;padding:8px;cursor:pointer;font-size:16px;width:100%;border-bottom:1px solid #e9e9e9;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.rce-dropdown ul li:last-child{border:none}.rce-dropdown ul li:hover a{color:#3a6d8c}.rce-dropdown.fade{opacity:0;-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1);-webkit-animation:dropdown-fade .5s ease forwards;animation:dropdown-fade .5s ease forwards}@-webkit-keyframes dropdown-fade{0%{opacity:0}to{opacity:1}}@keyframes dropdown-fade{0%{opacity:0}to{opacity:1}}
@@ -0,0 +1,3 @@
1
+ import type { FC } from 'react';
2
+ import type { IDropdownProps } from '../type';
3
+ export declare const Dropdown: FC<IDropdownProps>;
@@ -0,0 +1,66 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { cn } from '@nlabs/utils';
3
+ import { useState } from 'react';
4
+ import { Button } from '../Button/Button.js';
5
+ export const Dropdown = ({ animationPosition = 'nortwest', animationType = 'default', ...props })=>{
6
+ const [show, setShow] = useState(undefined);
7
+ const onBlur = ()=>{
8
+ if (show === true) {
9
+ setShow(false);
10
+ }
11
+ };
12
+ return /*#__PURE__*/ _jsxs("div", {
13
+ className: cn('rce-dropdown-container', props.className),
14
+ onBlur: onBlur,
15
+ children: [
16
+ /*#__PURE__*/ _jsx(Button, {
17
+ ...props.buttonProps,
18
+ onClick: ()=>setShow(!show)
19
+ }),
20
+ /*#__PURE__*/ _jsx("div", {
21
+ className: cn('rce-dropdown', animationType, `rce-dropdown-open__${animationPosition}`, {
22
+ 'dropdown-hide': show === false
23
+ }, {
24
+ 'dropdown-show': show === true
25
+ }),
26
+ children: /*#__PURE__*/ _jsxs("ul", {
27
+ children: [
28
+ props.title && /*#__PURE__*/ _jsx("span", {
29
+ className: "rce-dropdown-title",
30
+ children: props.title
31
+ }),
32
+ props.items?.map((x, i)=>/*#__PURE__*/ _jsx("li", {
33
+ onMouseDown: (e)=>props.onSelect(i),
34
+ children: x instanceof Object ? x.icon ? /*#__PURE__*/ _jsxs("span", {
35
+ className: "rce-button-icon--container",
36
+ children: [
37
+ (x.icon.float === 'right' || !x.icon.float) && /*#__PURE__*/ _jsx("a", {
38
+ children: x.text
39
+ }),
40
+ /*#__PURE__*/ _jsx("span", {
41
+ style: {
42
+ float: x.icon.float,
43
+ color: x.icon.color,
44
+ fontSize: x.icon.size || 12
45
+ },
46
+ className: cn('rce-button-icon', x.icon.className),
47
+ children: x.icon.component
48
+ }),
49
+ x.icon.float === 'left' && /*#__PURE__*/ _jsx("a", {
50
+ children: x.text
51
+ })
52
+ ]
53
+ }) : /*#__PURE__*/ _jsx("a", {
54
+ children: x.text
55
+ }) : /*#__PURE__*/ _jsx("a", {
56
+ children: x
57
+ })
58
+ }, i))
59
+ ]
60
+ })
61
+ })
62
+ ]
63
+ });
64
+ };
65
+
66
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9uaXRyb2c3L0RldmVsb3BtZW50L2dvdGhhbWpzL3NyYy9jb21wb25lbnRzL0NoYXQvRHJvcGRvd24vRHJvcGRvd24udHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Y259IGZyb20gJ0BubGFicy91dGlscyc7XG5pbXBvcnQge3VzZVN0YXRlfSBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCB7QnV0dG9ufSBmcm9tICcuLi9CdXR0b24vQnV0dG9uLmpzJztcblxuaW1wb3J0IHR5cGUge0ZDfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgdHlwZSB7SURyb3Bkb3duSXRlbVR5cGUsIElEcm9wZG93blByb3BzfSBmcm9tICcuLi90eXBlJztcblxuZXhwb3J0IGNvbnN0IERyb3Bkb3duOiBGQzxJRHJvcGRvd25Qcm9wcz4gPSAoe2FuaW1hdGlvblBvc2l0aW9uID0gJ25vcnR3ZXN0JywgYW5pbWF0aW9uVHlwZSA9ICdkZWZhdWx0JywgLi4ucHJvcHN9KSA9PiB7XG4gIGNvbnN0IFtzaG93LCBzZXRTaG93XSA9IHVzZVN0YXRlPGJvb2xlYW4gfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG5cbiAgY29uc3Qgb25CbHVyID0gKCkgPT4ge1xuICAgIGlmKHNob3cgPT09IHRydWUpIHtcbiAgICAgIHNldFNob3coZmFsc2UpO1xuICAgIH1cbiAgfTtcblxuICByZXR1cm4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPXtjbigncmNlLWRyb3Bkb3duLWNvbnRhaW5lcicsIHByb3BzLmNsYXNzTmFtZSl9IG9uQmx1cj17b25CbHVyfT5cbiAgICAgIHs8QnV0dG9uIHsuLi5wcm9wcy5idXR0b25Qcm9wc30gb25DbGljaz17KCkgPT4gc2V0U2hvdyghc2hvdyl9IC8+fVxuICAgICAgPGRpdlxuICAgICAgICBjbGFzc05hbWU9e2NuKFxuICAgICAgICAgICdyY2UtZHJvcGRvd24nLFxuICAgICAgICAgIGFuaW1hdGlvblR5cGUsXG4gICAgICAgICAgYHJjZS1kcm9wZG93bi1vcGVuX18ke2FuaW1hdGlvblBvc2l0aW9ufWAsXG4gICAgICAgICAgeydkcm9wZG93bi1oaWRlJzogc2hvdyA9PT0gZmFsc2V9LFxuICAgICAgICAgIHsnZHJvcGRvd24tc2hvdyc6IHNob3cgPT09IHRydWV9XG4gICAgICAgICl9XG4gICAgICA+XG4gICAgICAgIDx1bD5cbiAgICAgICAgICB7cHJvcHMudGl0bGUgJiYgPHNwYW4gY2xhc3NOYW1lPSdyY2UtZHJvcGRvd24tdGl0bGUnPntwcm9wcy50aXRsZX08L3NwYW4+fVxuICAgICAgICAgIHtwcm9wcy5pdGVtcz8ubWFwKCh4OiBJRHJvcGRvd25JdGVtVHlwZSwgaTogbnVtYmVyKSA9PiAoXG4gICAgICAgICAgICA8bGkga2V5PXtpfSBvbk1vdXNlRG93bj17KGUpID0+IHByb3BzLm9uU2VsZWN0KGkpfT5cbiAgICAgICAgICAgICAge3ggaW5zdGFuY2VvZiBPYmplY3QgPyAoXG4gICAgICAgICAgICAgICAgeC5pY29uID8gKFxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPSdyY2UtYnV0dG9uLWljb24tLWNvbnRhaW5lcic+XG4gICAgICAgICAgICAgICAgICAgIHsoeC5pY29uLmZsb2F0ID09PSAncmlnaHQnIHx8ICF4Lmljb24uZmxvYXQpICYmIDxhPnt4LnRleHR9PC9hPn1cblxuICAgICAgICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7ZmxvYXQ6IHguaWNvbi5mbG9hdCwgY29sb3I6IHguaWNvbi5jb2xvciwgZm9udFNpemU6IHguaWNvbi5zaXplIHx8IDEyfX1cbiAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2NuKCdyY2UtYnV0dG9uLWljb24nLCB4Lmljb24uY2xhc3NOYW1lKX1cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIHt4Lmljb24uY29tcG9uZW50fVxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG5cbiAgICAgICAgICAgICAgICAgICAge3guaWNvbi5mbG9hdCA9PT0gJ2xlZnQnICYmIDxhPnt4LnRleHR9PC9hPn1cbiAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICAgICAgPGE+e3gudGV4dH08L2E+XG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICAgIDxhPnt4fTwvYT5cbiAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgKSl9XG4gICAgICAgIDwvdWw+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG4iXSwibmFtZXMiOlsiY24iLCJ1c2VTdGF0ZSIsIkJ1dHRvbiIsIkRyb3Bkb3duIiwiYW5pbWF0aW9uUG9zaXRpb24iLCJhbmltYXRpb25UeXBlIiwicHJvcHMiLCJzaG93Iiwic2V0U2hvdyIsInVuZGVmaW5lZCIsIm9uQmx1ciIsImRpdiIsImNsYXNzTmFtZSIsImJ1dHRvblByb3BzIiwib25DbGljayIsInVsIiwidGl0bGUiLCJzcGFuIiwiaXRlbXMiLCJtYXAiLCJ4IiwiaSIsImxpIiwib25Nb3VzZURvd24iLCJlIiwib25TZWxlY3QiLCJPYmplY3QiLCJpY29uIiwiZmxvYXQiLCJhIiwidGV4dCIsInN0eWxlIiwiY29sb3IiLCJmb250U2l6ZSIsInNpemUiLCJjb21wb25lbnQiXSwibWFwcGluZ3MiOiI7QUFBQSxTQUFRQSxFQUFFLFFBQU8sZUFBZTtBQUNoQyxTQUFRQyxRQUFRLFFBQU8sUUFBUTtBQUUvQixTQUFRQyxNQUFNLFFBQU8sc0JBQXNCO0FBSzNDLE9BQU8sTUFBTUMsV0FBK0IsQ0FBQyxFQUFDQyxvQkFBb0IsVUFBVSxFQUFFQyxnQkFBZ0IsU0FBUyxFQUFFLEdBQUdDLE9BQU07SUFDaEgsTUFBTSxDQUFDQyxNQUFNQyxRQUFRLEdBQUdQLFNBQThCUTtJQUV0RCxNQUFNQyxTQUFTO1FBQ2IsSUFBR0gsU0FBUyxNQUFNO1lBQ2hCQyxRQUFRO1FBQ1Y7SUFDRjtJQUVBLHFCQUNFLE1BQUNHO1FBQUlDLFdBQVdaLEdBQUcsMEJBQTBCTSxNQUFNTSxTQUFTO1FBQUdGLFFBQVFBOzswQkFDcEUsS0FBQ1I7Z0JBQVEsR0FBR0ksTUFBTU8sV0FBVztnQkFBRUMsU0FBUyxJQUFNTixRQUFRLENBQUNEOzswQkFDeEQsS0FBQ0k7Z0JBQ0NDLFdBQVdaLEdBQ1QsZ0JBQ0FLLGVBQ0EsQ0FBQyxtQkFBbUIsRUFBRUQsbUJBQW1CLEVBQ3pDO29CQUFDLGlCQUFpQkcsU0FBUztnQkFBSyxHQUNoQztvQkFBQyxpQkFBaUJBLFNBQVM7Z0JBQUk7MEJBR2pDLGNBQUEsTUFBQ1E7O3dCQUNFVCxNQUFNVSxLQUFLLGtCQUFJLEtBQUNDOzRCQUFLTCxXQUFVO3NDQUFzQk4sTUFBTVUsS0FBSzs7d0JBQ2hFVixNQUFNWSxLQUFLLEVBQUVDLElBQUksQ0FBQ0MsR0FBc0JDLGtCQUN2QyxLQUFDQztnQ0FBV0MsYUFBYSxDQUFDQyxJQUFNbEIsTUFBTW1CLFFBQVEsQ0FBQ0o7MENBQzVDRCxhQUFhTSxTQUNaTixFQUFFTyxJQUFJLGlCQUNKLE1BQUNWO29DQUFLTCxXQUFVOzt3Q0FDWlEsQ0FBQUEsRUFBRU8sSUFBSSxDQUFDQyxLQUFLLEtBQUssV0FBVyxDQUFDUixFQUFFTyxJQUFJLENBQUNDLEtBQUssQUFBRCxtQkFBTSxLQUFDQztzREFBR1QsRUFBRVUsSUFBSTs7c0RBRTFELEtBQUNiOzRDQUNDYyxPQUFPO2dEQUFDSCxPQUFPUixFQUFFTyxJQUFJLENBQUNDLEtBQUs7Z0RBQUVJLE9BQU9aLEVBQUVPLElBQUksQ0FBQ0ssS0FBSztnREFBRUMsVUFBVWIsRUFBRU8sSUFBSSxDQUFDTyxJQUFJLElBQUk7NENBQUU7NENBQzdFdEIsV0FBV1osR0FBRyxtQkFBbUJvQixFQUFFTyxJQUFJLENBQUNmLFNBQVM7c0RBRWhEUSxFQUFFTyxJQUFJLENBQUNRLFNBQVM7O3dDQUdsQmYsRUFBRU8sSUFBSSxDQUFDQyxLQUFLLEtBQUssd0JBQVUsS0FBQ0M7c0RBQUdULEVBQUVVLElBQUk7OzttREFHeEMsS0FBQ0Q7OENBQUdULEVBQUVVLElBQUk7bURBR1osS0FBQ0Q7OENBQUdUOzsrQkFuQkNDOzs7Ozs7QUEyQnJCLEVBQUUifQ==
@@ -0,0 +1 @@
1
+ .rce-mbox-file{padding-bottom:13px}.rce-mbox-file>button{background:#e9e9e9;display:-webkit-box;display:-ms-flexbox;display:flex;border-radius:5px;margin-top:-3px;margin-right:-6px;margin-left:-6px;-webkit-box-align:center;-ms-flex-align:center;align-items:center;min-height:52px;max-width:500px;padding:5px 0;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;outline:none;border:none}.rce-mbox-file>button>*{padding:0 10px}.rce-mbox-file--icon{font-size:30px;-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.rce-mbox-file--size{font-size:10px;margin-top:3px;max-width:52px}.rce-mbox-file--size,.rce-mbox-file--text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rce-mbox-file--text{font-size:13.6px}.rce-mbox-file--buttons{font-size:30px;-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex}.rce-mbox-file--buttons .rce-error-button{display:inherit}.rce-mbox-file--loading{font-size:15px;width:40px;height:40px}
@@ -0,0 +1,3 @@
1
+ import type { FC } from 'react';
2
+ import type { IFileMessageProps } from '../type';
3
+ export declare const FileMessage: FC<IFileMessageProps>;
@@ -0,0 +1,77 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { CircleAlert as Alert02Icon, CloudDownload as CloudDownloadIcon, File as File01Icon } from 'lucide-react';
3
+ import { ProgressCircle } from '../Circle/Circle.js';
4
+ export const FileMessage = (props)=>{
5
+ const progressOptions = {
6
+ strokeWidth: 5,
7
+ color: '#333',
8
+ trailColor: '#aaa',
9
+ trailWidth: 5,
10
+ step: (state, circle)=>{
11
+ circle.path.setAttribute('trail', state.color);
12
+ circle.path.setAttribute('trailwidth-width', state.width);
13
+ const value = Math.round(circle.value() * 100);
14
+ if (value === 0) {
15
+ circle.setText('');
16
+ } else {
17
+ circle.setText(value);
18
+ }
19
+ }
20
+ };
21
+ const error = props?.data?.status && props?.data?.status.error === true;
22
+ const onClick = (e)=>{
23
+ if (!props?.data?.status) {
24
+ return;
25
+ }
26
+ if (!props?.data?.status.download && props.onDownload instanceof Function) {
27
+ props.onDownload(e);
28
+ } else if (props?.data?.status.download && props.onOpen instanceof Function) {
29
+ props.onOpen(e);
30
+ }
31
+ };
32
+ return /*#__PURE__*/ _jsx("div", {
33
+ className: "rce-mbox-file",
34
+ children: /*#__PURE__*/ _jsxs("button", {
35
+ onClick: onClick,
36
+ children: [
37
+ /*#__PURE__*/ _jsxs("div", {
38
+ className: "rce-mbox-file--icon",
39
+ children: [
40
+ /*#__PURE__*/ _jsx(File01Icon, {
41
+ color: "#aaa"
42
+ }),
43
+ /*#__PURE__*/ _jsx("div", {
44
+ className: "rce-mbox-file--size",
45
+ children: props?.data.size
46
+ })
47
+ ]
48
+ }),
49
+ /*#__PURE__*/ _jsx("div", {
50
+ className: "rce-mbox-file--text",
51
+ children: props.text
52
+ }),
53
+ /*#__PURE__*/ _jsxs("div", {
54
+ className: "rce-mbox-file--buttons",
55
+ children: [
56
+ error && /*#__PURE__*/ _jsx("span", {
57
+ className: "rce-error-button",
58
+ children: /*#__PURE__*/ _jsx(Alert02Icon, {
59
+ color: "#ff3d3d"
60
+ })
61
+ }),
62
+ !error && props?.data?.status && !props?.data?.status.download && !props?.data?.status.click && /*#__PURE__*/ _jsx(CloudDownloadIcon, {
63
+ color: "#aaa"
64
+ }),
65
+ !error && props?.data?.status && typeof props?.data?.status.loading === 'number' && props?.data?.status.loading !== 0 && /*#__PURE__*/ _jsx(ProgressCircle, {
66
+ animate: props?.data?.status.loading,
67
+ className: "rce-mbox-file--loading",
68
+ progressOptions: progressOptions
69
+ })
70
+ ]
71
+ })
72
+ ]
73
+ })
74
+ });
75
+ };
76
+
77
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9uaXRyb2c3L0RldmVsb3BtZW50L2dvdGhhbWpzL3NyYy9jb21wb25lbnRzL0NoYXQvRmlsZU1lc3NhZ2UvRmlsZU1lc3NhZ2UudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENpcmNsZUFsZXJ0IGFzIEFsZXJ0MDJJY29uLFxuICBDbG91ZERvd25sb2FkIGFzIENsb3VkRG93bmxvYWRJY29uLFxuICBGaWxlIGFzIEZpbGUwMUljb25cbn0gZnJvbSAnbHVjaWRlLXJlYWN0JztcblxuaW1wb3J0IHtQcm9ncmVzc0NpcmNsZX0gZnJvbSAnLi4vQ2lyY2xlL0NpcmNsZS5qcyc7XG5cbmltcG9ydCB0eXBlIHtGQ30gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHR5cGUge0lGaWxlTWVzc2FnZVByb3BzfSBmcm9tICcuLi90eXBlJztcblxuZXhwb3J0IGNvbnN0IEZpbGVNZXNzYWdlOiBGQzxJRmlsZU1lc3NhZ2VQcm9wcz4gPSAocHJvcHMpID0+IHtcbiAgY29uc3QgcHJvZ3Jlc3NPcHRpb25zID0ge1xuICAgIHN0cm9rZVdpZHRoOiA1LFxuICAgIGNvbG9yOiAnIzMzMycsXG4gICAgdHJhaWxDb2xvcjogJyNhYWEnLFxuICAgIHRyYWlsV2lkdGg6IDUsXG4gICAgc3RlcDogKFxuICAgICAgc3RhdGU6IHsgY29sb3I6IHN0cmluZzsgd2lkdGg6IHN0cmluZyB9LFxuICAgICAgY2lyY2xlOiB7XG4gICAgICAgIHBhdGg6IHsgc2V0QXR0cmlidXRlOiAoYXJnMDogc3RyaW5nLCBhcmcxOiBzdHJpbmcpID0+IHZvaWQgfTtcbiAgICAgICAgdmFsdWU6ICgpID0+IG51bWJlcjtcbiAgICAgICAgc2V0VGV4dDogKGFyZzA6IHN0cmluZyB8IG51bWJlcikgPT4gdm9pZDtcbiAgICAgIH1cbiAgICApID0+IHtcbiAgICAgIGNpcmNsZS5wYXRoLnNldEF0dHJpYnV0ZSgndHJhaWwnLCBzdGF0ZS5jb2xvcik7XG4gICAgICBjaXJjbGUucGF0aC5zZXRBdHRyaWJ1dGUoJ3RyYWlsd2lkdGgtd2lkdGgnLCBzdGF0ZS53aWR0aCk7XG5cbiAgICAgIGNvbnN0IHZhbHVlID0gTWF0aC5yb3VuZChjaXJjbGUudmFsdWUoKSAqIDEwMCk7XG4gICAgICBpZih2YWx1ZSA9PT0gMCkge1xuICAgICAgICBjaXJjbGUuc2V0VGV4dCgnJyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjaXJjbGUuc2V0VGV4dCh2YWx1ZSk7XG4gICAgICB9XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IGVycm9yID0gcHJvcHM/LmRhdGE/LnN0YXR1cyAmJiBwcm9wcz8uZGF0YT8uc3RhdHVzLmVycm9yID09PSB0cnVlO1xuXG4gIGNvbnN0IG9uQ2xpY2sgPSAoZTogUmVhY3QuTW91c2VFdmVudCkgPT4ge1xuICAgIGlmKCFwcm9wcz8uZGF0YT8uc3RhdHVzKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYoIXByb3BzPy5kYXRhPy5zdGF0dXMuZG93bmxvYWQgJiYgcHJvcHMub25Eb3dubG9hZCBpbnN0YW5jZW9mIEZ1bmN0aW9uKSB7XG4gICAgICBwcm9wcy5vbkRvd25sb2FkKGUpO1xuICAgIH0gZWxzZSBpZihwcm9wcz8uZGF0YT8uc3RhdHVzLmRvd25sb2FkICYmIHByb3BzLm9uT3BlbiBpbnN0YW5jZW9mIEZ1bmN0aW9uKSB7XG4gICAgICBwcm9wcy5vbk9wZW4oZSk7XG4gICAgfVxuICB9O1xuXG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9J3JjZS1tYm94LWZpbGUnPlxuICAgICAgPGJ1dHRvbiBvbkNsaWNrPXtvbkNsaWNrfT5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9J3JjZS1tYm94LWZpbGUtLWljb24nPlxuICAgICAgICAgIDxGaWxlMDFJY29uIGNvbG9yPScjYWFhJyAgLz5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT0ncmNlLW1ib3gtZmlsZS0tc2l6ZSc+e3Byb3BzPy5kYXRhLnNpemV9PC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT0ncmNlLW1ib3gtZmlsZS0tdGV4dCc+e3Byb3BzLnRleHR9PC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPSdyY2UtbWJveC1maWxlLS1idXR0b25zJz5cbiAgICAgICAgICB7ZXJyb3IgJiYgKFxuICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPSdyY2UtZXJyb3ItYnV0dG9uJz5cbiAgICAgICAgICAgICAgPEFsZXJ0MDJJY29uIGNvbG9yPScjZmYzZDNkJyAgLz5cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICApfVxuICAgICAgICAgIHshZXJyb3IgJiYgcHJvcHM/LmRhdGE/LnN0YXR1cyAmJiAhcHJvcHM/LmRhdGE/LnN0YXR1cy5kb3dubG9hZCAmJiAhcHJvcHM/LmRhdGE/LnN0YXR1cy5jbGljayAmJiAoXG4gICAgICAgICAgICA8Q2xvdWREb3dubG9hZEljb24gY29sb3I9JyNhYWEnICAvPlxuICAgICAgICAgICl9XG4gICAgICAgICAgeyFlcnJvciAmJlxuICAgICAgICAgICAgcHJvcHM/LmRhdGE/LnN0YXR1cyAmJlxuICAgICAgICAgICAgdHlwZW9mIHByb3BzPy5kYXRhPy5zdGF0dXMubG9hZGluZyA9PT0gJ251bWJlcicgJiZcbiAgICAgICAgICAgIHByb3BzPy5kYXRhPy5zdGF0dXMubG9hZGluZyAhPT0gMCAmJiAoXG4gICAgICAgICAgICA8UHJvZ3Jlc3NDaXJjbGVcbiAgICAgICAgICAgICAgYW5pbWF0ZT17cHJvcHM/LmRhdGE/LnN0YXR1cy5sb2FkaW5nfVxuICAgICAgICAgICAgICBjbGFzc05hbWU9J3JjZS1tYm94LWZpbGUtLWxvYWRpbmcnXG4gICAgICAgICAgICAgIHByb2dyZXNzT3B0aW9ucz17cHJvZ3Jlc3NPcHRpb25zfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICApO1xufTtcbiJdLCJuYW1lcyI6WyJDaXJjbGVBbGVydCIsIkFsZXJ0MDJJY29uIiwiQ2xvdWREb3dubG9hZCIsIkNsb3VkRG93bmxvYWRJY29uIiwiRmlsZSIsIkZpbGUwMUljb24iLCJQcm9ncmVzc0NpcmNsZSIsIkZpbGVNZXNzYWdlIiwicHJvcHMiLCJwcm9ncmVzc09wdGlvbnMiLCJzdHJva2VXaWR0aCIsImNvbG9yIiwidHJhaWxDb2xvciIsInRyYWlsV2lkdGgiLCJzdGVwIiwic3RhdGUiLCJjaXJjbGUiLCJwYXRoIiwic2V0QXR0cmlidXRlIiwid2lkdGgiLCJ2YWx1ZSIsIk1hdGgiLCJyb3VuZCIsInNldFRleHQiLCJlcnJvciIsImRhdGEiLCJzdGF0dXMiLCJvbkNsaWNrIiwiZSIsImRvd25sb2FkIiwib25Eb3dubG9hZCIsIkZ1bmN0aW9uIiwib25PcGVuIiwiZGl2IiwiY2xhc3NOYW1lIiwiYnV0dG9uIiwic2l6ZSIsInRleHQiLCJzcGFuIiwiY2xpY2siLCJsb2FkaW5nIiwiYW5pbWF0ZSJdLCJtYXBwaW5ncyI6IjtBQUFBLFNBQ0VBLGVBQWVDLFdBQVcsRUFDMUJDLGlCQUFpQkMsaUJBQWlCLEVBQ2xDQyxRQUFRQyxVQUFVLFFBQ2IsZUFBZTtBQUV0QixTQUFRQyxjQUFjLFFBQU8sc0JBQXNCO0FBS25ELE9BQU8sTUFBTUMsY0FBcUMsQ0FBQ0M7SUFDakQsTUFBTUMsa0JBQWtCO1FBQ3RCQyxhQUFhO1FBQ2JDLE9BQU87UUFDUEMsWUFBWTtRQUNaQyxZQUFZO1FBQ1pDLE1BQU0sQ0FDSkMsT0FDQUM7WUFNQUEsT0FBT0MsSUFBSSxDQUFDQyxZQUFZLENBQUMsU0FBU0gsTUFBTUosS0FBSztZQUM3Q0ssT0FBT0MsSUFBSSxDQUFDQyxZQUFZLENBQUMsb0JBQW9CSCxNQUFNSSxLQUFLO1lBRXhELE1BQU1DLFFBQVFDLEtBQUtDLEtBQUssQ0FBQ04sT0FBT0ksS0FBSyxLQUFLO1lBQzFDLElBQUdBLFVBQVUsR0FBRztnQkFDZEosT0FBT08sT0FBTyxDQUFDO1lBQ2pCLE9BQU87Z0JBQ0xQLE9BQU9PLE9BQU8sQ0FBQ0g7WUFDakI7UUFDRjtJQUNGO0lBRUEsTUFBTUksUUFBUWhCLE9BQU9pQixNQUFNQyxVQUFVbEIsT0FBT2lCLE1BQU1DLE9BQU9GLFVBQVU7SUFFbkUsTUFBTUcsVUFBVSxDQUFDQztRQUNmLElBQUcsQ0FBQ3BCLE9BQU9pQixNQUFNQyxRQUFRO1lBQ3ZCO1FBQ0Y7UUFFQSxJQUFHLENBQUNsQixPQUFPaUIsTUFBTUMsT0FBT0csWUFBWXJCLE1BQU1zQixVQUFVLFlBQVlDLFVBQVU7WUFDeEV2QixNQUFNc0IsVUFBVSxDQUFDRjtRQUNuQixPQUFPLElBQUdwQixPQUFPaUIsTUFBTUMsT0FBT0csWUFBWXJCLE1BQU13QixNQUFNLFlBQVlELFVBQVU7WUFDMUV2QixNQUFNd0IsTUFBTSxDQUFDSjtRQUNmO0lBQ0Y7SUFFQSxxQkFDRSxLQUFDSztRQUFJQyxXQUFVO2tCQUNiLGNBQUEsTUFBQ0M7WUFBT1IsU0FBU0E7OzhCQUNmLE1BQUNNO29CQUFJQyxXQUFVOztzQ0FDYixLQUFDN0I7NEJBQVdNLE9BQU07O3NDQUNsQixLQUFDc0I7NEJBQUlDLFdBQVU7c0NBQXVCMUIsT0FBT2lCLEtBQUtXOzs7OzhCQUVwRCxLQUFDSDtvQkFBSUMsV0FBVTs4QkFBdUIxQixNQUFNNkIsSUFBSTs7OEJBQ2hELE1BQUNKO29CQUFJQyxXQUFVOzt3QkFDWlYsdUJBQ0MsS0FBQ2M7NEJBQUtKLFdBQVU7c0NBQ2QsY0FBQSxLQUFDakM7Z0NBQVlVLE9BQU07Ozt3QkFHdEIsQ0FBQ2EsU0FBU2hCLE9BQU9pQixNQUFNQyxVQUFVLENBQUNsQixPQUFPaUIsTUFBTUMsT0FBT0csWUFBWSxDQUFDckIsT0FBT2lCLE1BQU1DLE9BQU9hLHVCQUN0RixLQUFDcEM7NEJBQWtCUSxPQUFNOzt3QkFFMUIsQ0FBQ2EsU0FDQWhCLE9BQU9pQixNQUFNQyxVQUNiLE9BQU9sQixPQUFPaUIsTUFBTUMsT0FBT2MsWUFBWSxZQUN2Q2hDLE9BQU9pQixNQUFNQyxPQUFPYyxZQUFZLG1CQUNoQyxLQUFDbEM7NEJBQ0NtQyxTQUFTakMsT0FBT2lCLE1BQU1DLE9BQU9jOzRCQUM3Qk4sV0FBVTs0QkFDVnpCLGlCQUFpQkE7Ozs7Ozs7QUFPL0IsRUFBRSJ9
@@ -0,0 +1 @@
1
+ .rce-container-input{display:-webkit-box;display:-ms-flexbox;display:flex;min-width:100%;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;background:#fff;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.rce-container-input,.rce-input{-webkit-box-sizing:border-box;box-sizing:border-box}.rce-input{-webkit-box-flex:1;-ms-flex:1 1;flex:1 1;height:40px;padding:0 5px;border:none;border-radius:5px;color:#333;font-size:14px;outline:none}.rce-input-textarea{height:37px;padding:10px 5px;resize:none}.rce-input-buttons{margin:5px}.rce-input-buttons,.rce-input-buttons>*{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.rce-input-buttons .rce-button:nth-child(2n){margin-left:5px;margin-right:5px}.rce-input-buttons .rce-button:last-child{margin-right:0}.rce-left-padding{padding-left:10px;padding-right:0!important}.rce-right-padding{padding-right:10px;padding-left:0!important}.rce-input::-webkit-input-placeholder{color:#afafaf}.rce-input::-moz-placeholder{color:#afafaf}.rce-input:-ms-input-placeholder{color:#afafaf}.rce-input::-ms-input-placeholder{color:#afafaf}.rce-input::placeholder{color:#afafaf}
@@ -0,0 +1,3 @@
1
+ import type { FC } from 'react';
2
+ import type { IInputProps } from '../type.js';
3
+ export declare const Input: FC<IInputProps>;