@memori.ai/ui 1.0.0-alpha

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 (274) hide show
  1. package/README.md +105 -0
  2. package/dist/components/Alert/Alert.d.ts +18 -0
  3. package/dist/components/Alert/index.d.ts +2 -0
  4. package/dist/components/Button/Button.d.ts +27 -0
  5. package/dist/components/Button/index.d.ts +2 -0
  6. package/dist/components/ButtonBase/ButtonBase.d.ts +28 -0
  7. package/dist/components/ButtonBase/index.d.ts +3 -0
  8. package/dist/components/Card/Card.d.ts +13 -0
  9. package/dist/components/Card/index.d.ts +2 -0
  10. package/dist/components/Checkbox/Checkbox.d.ts +11 -0
  11. package/dist/components/Checkbox/index.d.ts +2 -0
  12. package/dist/components/ConfirmDialog/ConfirmDialog.d.ts +12 -0
  13. package/dist/components/ConfirmDialog/index.d.ts +2 -0
  14. package/dist/components/Drawer/Drawer.d.ts +32 -0
  15. package/dist/components/Drawer/index.d.ts +2 -0
  16. package/dist/components/Dropdown/Dropdown.d.ts +11 -0
  17. package/dist/components/Dropdown/index.d.ts +2 -0
  18. package/dist/components/Expandable/Expandable.d.ts +15 -0
  19. package/dist/components/Expandable/helpers.d.ts +3 -0
  20. package/dist/components/Expandable/index.d.ts +2 -0
  21. package/dist/components/InputBase/InputBase.d.ts +49 -0
  22. package/dist/components/InputBase/index.d.ts +3 -0
  23. package/dist/components/Modal/Modal.d.ts +16 -0
  24. package/dist/components/Modal/index.d.ts +2 -0
  25. package/dist/components/Select/Select.d.ts +16 -0
  26. package/dist/components/Select/index.d.ts +2 -0
  27. package/dist/components/Slider/Slider.d.ts +12 -0
  28. package/dist/components/Slider/index.d.ts +2 -0
  29. package/dist/components/Spin/Spin.d.ts +9 -0
  30. package/dist/components/Spin/index.d.ts +2 -0
  31. package/dist/components/Tooltip/Tooltip.d.ts +11 -0
  32. package/dist/components/Tooltip/index.d.ts +2 -0
  33. package/dist/i18n/I18nWrapper.d.ts +6 -0
  34. package/dist/icons/AI.d.ts +5 -0
  35. package/dist/icons/Alert.d.ts +5 -0
  36. package/dist/icons/ArrowUp.d.ts +5 -0
  37. package/dist/icons/Bug.d.ts +5 -0
  38. package/dist/icons/Chat.d.ts +5 -0
  39. package/dist/icons/ChevronDown.d.ts +5 -0
  40. package/dist/icons/ChevronLeft.d.ts +5 -0
  41. package/dist/icons/ChevronRight.d.ts +5 -0
  42. package/dist/icons/ChevronUp.d.ts +5 -0
  43. package/dist/icons/Clear.d.ts +5 -0
  44. package/dist/icons/Close.d.ts +6 -0
  45. package/dist/icons/Code.d.ts +5 -0
  46. package/dist/icons/Copy.d.ts +5 -0
  47. package/dist/icons/DeepThought.d.ts +5 -0
  48. package/dist/icons/Delete.d.ts +5 -0
  49. package/dist/icons/Document.d.ts +5 -0
  50. package/dist/icons/Download.d.ts +5 -0
  51. package/dist/icons/Edit.d.ts +5 -0
  52. package/dist/icons/Expand.d.ts +5 -0
  53. package/dist/icons/Eye.d.ts +5 -0
  54. package/dist/icons/EyeInvisible.d.ts +5 -0
  55. package/dist/icons/Facebook.d.ts +5 -0
  56. package/dist/icons/Feedback.d.ts +5 -0
  57. package/dist/icons/File.d.ts +5 -0
  58. package/dist/icons/FileExcel.d.ts +5 -0
  59. package/dist/icons/FilePdf.d.ts +5 -0
  60. package/dist/icons/FileWord.d.ts +5 -0
  61. package/dist/icons/Fullscreen.d.ts +5 -0
  62. package/dist/icons/FullscreenExit.d.ts +5 -0
  63. package/dist/icons/Group.d.ts +5 -0
  64. package/dist/icons/History.d.ts +6 -0
  65. package/dist/icons/Image.d.ts +4 -0
  66. package/dist/icons/Info.d.ts +5 -0
  67. package/dist/icons/Link.d.ts +5 -0
  68. package/dist/icons/Linkedin.d.ts +5 -0
  69. package/dist/icons/Loading.d.ts +6 -0
  70. package/dist/icons/Logout.d.ts +5 -0
  71. package/dist/icons/Mail.d.ts +5 -0
  72. package/dist/icons/MapMarker.d.ts +5 -0
  73. package/dist/icons/MenuHorizontal.d.ts +6 -0
  74. package/dist/icons/MenuVertical.d.ts +6 -0
  75. package/dist/icons/Message.d.ts +5 -0
  76. package/dist/icons/Microphone.d.ts +5 -0
  77. package/dist/icons/Minus.d.ts +5 -0
  78. package/dist/icons/MinusCircle.d.ts +5 -0
  79. package/dist/icons/PaperClip.d.ts +5 -0
  80. package/dist/icons/Picture.d.ts +5 -0
  81. package/dist/icons/Plus.d.ts +5 -0
  82. package/dist/icons/Preview.d.ts +4 -0
  83. package/dist/icons/Print.d.ts +6 -0
  84. package/dist/icons/QuestionHelp.d.ts +5 -0
  85. package/dist/icons/Refresh.d.ts +5 -0
  86. package/dist/icons/SelectIcon.d.ts +5 -0
  87. package/dist/icons/Send.d.ts +5 -0
  88. package/dist/icons/Setting.d.ts +5 -0
  89. package/dist/icons/Share.d.ts +5 -0
  90. package/dist/icons/Sound.d.ts +5 -0
  91. package/dist/icons/SoundDeactivated.d.ts +5 -0
  92. package/dist/icons/Telegram.d.ts +5 -0
  93. package/dist/icons/ThumbDown.d.ts +5 -0
  94. package/dist/icons/ThumbUp.d.ts +5 -0
  95. package/dist/icons/Translation.d.ts +5 -0
  96. package/dist/icons/Twitter.d.ts +5 -0
  97. package/dist/icons/Upload.d.ts +4 -0
  98. package/dist/icons/User.d.ts +5 -0
  99. package/dist/icons/Warning.d.ts +5 -0
  100. package/dist/icons/WhatsApp.d.ts +5 -0
  101. package/dist/index.d.ts +13 -0
  102. package/dist/memori-ai-ui.css +2 -0
  103. package/dist/memori-ai-ui.es.js +6400 -0
  104. package/dist/memori-ai-ui.umd.js +23 -0
  105. package/package.json +97 -0
  106. package/src/components/Alert/Alert.css +95 -0
  107. package/src/components/Alert/Alert.stories.tsx +156 -0
  108. package/src/components/Alert/Alert.test.tsx +122 -0
  109. package/src/components/Alert/Alert.tsx +124 -0
  110. package/src/components/Alert/__snapshots__/Alert.test.tsx.snap +67 -0
  111. package/src/components/Alert/index.tsx +2 -0
  112. package/src/components/Button/Button.css +173 -0
  113. package/src/components/Button/Button.stories.tsx +173 -0
  114. package/src/components/Button/Button.test.tsx +80 -0
  115. package/src/components/Button/Button.tsx +104 -0
  116. package/src/components/Button/__snapshots__/Button.test.tsx.snap +204 -0
  117. package/src/components/Button/index.tsx +2 -0
  118. package/src/components/ButtonBase/ButtonBase.stories.tsx +194 -0
  119. package/src/components/ButtonBase/ButtonBase.tsx +84 -0
  120. package/src/components/ButtonBase/index.tsx +3 -0
  121. package/src/components/ButtonBase/styles.module.css +135 -0
  122. package/src/components/Card/Card.css +67 -0
  123. package/src/components/Card/Card.stories.tsx +104 -0
  124. package/src/components/Card/Card.test.tsx +67 -0
  125. package/src/components/Card/Card.tsx +58 -0
  126. package/src/components/Card/__snapshots__/Card.test.tsx.snap +321 -0
  127. package/src/components/Card/index.tsx +2 -0
  128. package/src/components/Checkbox/Checkbox.css +114 -0
  129. package/src/components/Checkbox/Checkbox.stories.tsx +77 -0
  130. package/src/components/Checkbox/Checkbox.test.tsx +50 -0
  131. package/src/components/Checkbox/Checkbox.tsx +61 -0
  132. package/src/components/Checkbox/__snapshots__/Checkbox.test.tsx.snap +131 -0
  133. package/src/components/Checkbox/index.tsx +2 -0
  134. package/src/components/ConfirmDialog/ConfirmDialog.css +44 -0
  135. package/src/components/ConfirmDialog/ConfirmDialog.stories.tsx +235 -0
  136. package/src/components/ConfirmDialog/ConfirmDialog.test.tsx +129 -0
  137. package/src/components/ConfirmDialog/ConfirmDialog.tsx +73 -0
  138. package/src/components/ConfirmDialog/__snapshots__/ConfirmDialog.test.tsx.snap +11 -0
  139. package/src/components/ConfirmDialog/index.tsx +2 -0
  140. package/src/components/Details/Details.css +66 -0
  141. package/src/components/Details/Details.stories.tsx +67 -0
  142. package/src/components/Drawer/Drawer.css +210 -0
  143. package/src/components/Drawer/Drawer.stories.tsx +275 -0
  144. package/src/components/Drawer/Drawer.test.tsx +158 -0
  145. package/src/components/Drawer/Drawer.tsx +242 -0
  146. package/src/components/Drawer/__snapshots__/Drawer.test.tsx.snap +21 -0
  147. package/src/components/Drawer/index.tsx +2 -0
  148. package/src/components/Dropdown/Dropdown.css +177 -0
  149. package/src/components/Dropdown/Dropdown.stories.tsx +73 -0
  150. package/src/components/Dropdown/Dropdown.test.tsx +88 -0
  151. package/src/components/Dropdown/Dropdown.tsx +88 -0
  152. package/src/components/Dropdown/__snapshots__/Dropdown.test.tsx.snap +141 -0
  153. package/src/components/Dropdown/index.tsx +2 -0
  154. package/src/components/Expandable/Expandable.css +15 -0
  155. package/src/components/Expandable/Expandable.stories.tsx +196 -0
  156. package/src/components/Expandable/Expandable.test.tsx +143 -0
  157. package/src/components/Expandable/Expandable.tsx +122 -0
  158. package/src/components/Expandable/__snapshots__/Expandable.test.tsx.snap +199 -0
  159. package/src/components/Expandable/helpers.ts +16 -0
  160. package/src/components/Expandable/index.tsx +2 -0
  161. package/src/components/InputBase/InputBase.stories.tsx +237 -0
  162. package/src/components/InputBase/InputBase.tsx +105 -0
  163. package/src/components/InputBase/index.tsx +3 -0
  164. package/src/components/InputBase/styles.module.css +96 -0
  165. package/src/components/Modal/Modal.css +95 -0
  166. package/src/components/Modal/Modal.stories.tsx +184 -0
  167. package/src/components/Modal/Modal.test.tsx +129 -0
  168. package/src/components/Modal/Modal.tsx +124 -0
  169. package/src/components/Modal/__snapshots__/Modal.test.tsx.snap +17 -0
  170. package/src/components/Modal/index.tsx +2 -0
  171. package/src/components/Select/Select.css +134 -0
  172. package/src/components/Select/Select.stories.tsx +85 -0
  173. package/src/components/Select/Select.test.tsx +85 -0
  174. package/src/components/Select/Select.tsx +84 -0
  175. package/src/components/Select/__snapshots__/Select.test.tsx.snap +261 -0
  176. package/src/components/Select/index.tsx +2 -0
  177. package/src/components/Slider/Slider.css +194 -0
  178. package/src/components/Slider/Slider.stories.tsx +85 -0
  179. package/src/components/Slider/Slider.test.tsx +55 -0
  180. package/src/components/Slider/Slider.tsx +157 -0
  181. package/src/components/Slider/__snapshots__/Slider.test.tsx.snap +419 -0
  182. package/src/components/Slider/index.tsx +2 -0
  183. package/src/components/Spin/Spin.css +31 -0
  184. package/src/components/Spin/Spin.stories.tsx +65 -0
  185. package/src/components/Spin/Spin.test.tsx +47 -0
  186. package/src/components/Spin/Spin.tsx +34 -0
  187. package/src/components/Spin/__snapshots__/Spin.test.tsx.snap +193 -0
  188. package/src/components/Spin/index.tsx +2 -0
  189. package/src/components/Table/Table.css +130 -0
  190. package/src/components/Table/Table.stories.tsx +274 -0
  191. package/src/components/Tooltip/Tooltip.css +160 -0
  192. package/src/components/Tooltip/Tooltip.stories.tsx +136 -0
  193. package/src/components/Tooltip/Tooltip.test.tsx +110 -0
  194. package/src/components/Tooltip/Tooltip.tsx +46 -0
  195. package/src/components/Tooltip/__snapshots__/Tooltip.test.tsx.snap +163 -0
  196. package/src/components/Tooltip/index.tsx +2 -0
  197. package/src/components/definitions.stories.tsx +150 -0
  198. package/src/i18n/I18nWrapper.tsx +13 -0
  199. package/src/i18n/i18n.ts +34 -0
  200. package/src/icons/AI.tsx +38 -0
  201. package/src/icons/Alert.tsx +31 -0
  202. package/src/icons/ArrowUp.tsx +28 -0
  203. package/src/icons/Bug.tsx +81 -0
  204. package/src/icons/Chat.tsx +30 -0
  205. package/src/icons/ChevronDown.tsx +26 -0
  206. package/src/icons/ChevronLeft.tsx +28 -0
  207. package/src/icons/ChevronRight.tsx +28 -0
  208. package/src/icons/ChevronUp.tsx +24 -0
  209. package/src/icons/Clear.tsx +23 -0
  210. package/src/icons/Close.tsx +30 -0
  211. package/src/icons/Code.tsx +30 -0
  212. package/src/icons/Copy.tsx +30 -0
  213. package/src/icons/DeepThought.tsx +38 -0
  214. package/src/icons/Delete.tsx +23 -0
  215. package/src/icons/Document.tsx +52 -0
  216. package/src/icons/Download.tsx +23 -0
  217. package/src/icons/Edit.tsx +17 -0
  218. package/src/icons/Expand.tsx +23 -0
  219. package/src/icons/Eye.tsx +17 -0
  220. package/src/icons/EyeInvisible.tsx +24 -0
  221. package/src/icons/Facebook.tsx +23 -0
  222. package/src/icons/Feedback.tsx +27 -0
  223. package/src/icons/File.tsx +17 -0
  224. package/src/icons/FileExcel.tsx +23 -0
  225. package/src/icons/FilePdf.tsx +23 -0
  226. package/src/icons/FileWord.tsx +23 -0
  227. package/src/icons/Fullscreen.tsx +23 -0
  228. package/src/icons/FullscreenExit.tsx +23 -0
  229. package/src/icons/Group.tsx +30 -0
  230. package/src/icons/History.tsx +33 -0
  231. package/src/icons/Image.tsx +37 -0
  232. package/src/icons/Info.tsx +37 -0
  233. package/src/icons/Link.tsx +17 -0
  234. package/src/icons/Linkedin.tsx +23 -0
  235. package/src/icons/Loading.tsx +28 -0
  236. package/src/icons/Logout.tsx +33 -0
  237. package/src/icons/Mail.tsx +17 -0
  238. package/src/icons/MapMarker.tsx +26 -0
  239. package/src/icons/MenuHorizontal.tsx +29 -0
  240. package/src/icons/MenuVertical.tsx +29 -0
  241. package/src/icons/Message.tsx +23 -0
  242. package/src/icons/Microphone.tsx +23 -0
  243. package/src/icons/Minus.tsx +23 -0
  244. package/src/icons/MinusCircle.tsx +24 -0
  245. package/src/icons/PaperClip.tsx +23 -0
  246. package/src/icons/Picture.tsx +23 -0
  247. package/src/icons/Plus.tsx +18 -0
  248. package/src/icons/Preview.tsx +31 -0
  249. package/src/icons/Print.tsx +37 -0
  250. package/src/icons/QuestionHelp.tsx +34 -0
  251. package/src/icons/Refresh.tsx +30 -0
  252. package/src/icons/SelectIcon.tsx +28 -0
  253. package/src/icons/Send.tsx +17 -0
  254. package/src/icons/Setting.tsx +23 -0
  255. package/src/icons/Share.tsx +23 -0
  256. package/src/icons/Sound.tsx +23 -0
  257. package/src/icons/SoundDeactivated.tsx +27 -0
  258. package/src/icons/Telegram.tsx +26 -0
  259. package/src/icons/ThumbDown.tsx +29 -0
  260. package/src/icons/ThumbUp.tsx +29 -0
  261. package/src/icons/Translation.tsx +24 -0
  262. package/src/icons/Twitter.tsx +23 -0
  263. package/src/icons/Upload.tsx +34 -0
  264. package/src/icons/User.tsx +17 -0
  265. package/src/icons/Warning.tsx +27 -0
  266. package/src/icons/WhatsApp.tsx +24 -0
  267. package/src/icons/icons.stories.css +5 -0
  268. package/src/icons/icons.stories.tsx +110 -0
  269. package/src/icons/loading.css +14 -0
  270. package/src/index.ts +15 -0
  271. package/src/styles/utils.css +17 -0
  272. package/src/styles.css +4 -0
  273. package/src/theme/variables.css +110 -0
  274. package/src/vite-env.d.ts +6 -0
@@ -0,0 +1,23 @@
1
+ import React from 'react'
2
+
3
+ const Share = ({
4
+ className,
5
+ title,
6
+ }: {
7
+ className?: string
8
+ title?: string
9
+ }) => (
10
+ <svg
11
+ {...(!title ? { 'aria-hidden': 'true' } : {})}
12
+ focusable="false"
13
+ role="img"
14
+ xmlns="http://www.w3.org/2000/svg"
15
+ viewBox="0 0 1024 1024"
16
+ className={className}
17
+ aria-label={title}
18
+ >
19
+ <path d="M752 664c-28.5 0-54.8 10-75.4 26.7L469.4 540.8a160.68 160.68 0 0 0 0-57.6l207.2-149.9C697.2 350 723.5 360 752 360c66.2 0 120-53.8 120-120s-53.8-120-120-120-120 53.8-120 120c0 11.6 1.6 22.7 4.7 33.3L439.9 415.8C410.7 377.1 364.3 352 312 352c-88.4 0-160 71.6-160 160s71.6 160 160 160c52.3 0 98.7-25.1 127.9-63.8l196.8 142.5c-3.1 10.6-4.7 21.8-4.7 33.3 0 66.2 53.8 120 120 120s120-53.8 120-120-53.8-120-120-120zm0-476c28.7 0 52 23.3 52 52s-23.3 52-52 52-52-23.3-52-52 23.3-52 52-52zM312 600c-48.5 0-88-39.5-88-88s39.5-88 88-88 88 39.5 88 88-39.5 88-88 88zm440 236c-28.7 0-52-23.3-52-52s23.3-52 52-52 52 23.3 52 52-23.3 52-52 52z" />
20
+ </svg>
21
+ )
22
+
23
+ export default Share
@@ -0,0 +1,23 @@
1
+ import React from 'react'
2
+
3
+ const Sound = ({
4
+ className,
5
+ title,
6
+ }: {
7
+ className?: string
8
+ title?: string
9
+ }) => (
10
+ <svg
11
+ {...(!title ? { 'aria-hidden': 'true' } : {})}
12
+ focusable="false"
13
+ role="img"
14
+ xmlns="http://www.w3.org/2000/svg"
15
+ viewBox="0 0 1024 1024"
16
+ className={className}
17
+ aria-label={title}
18
+ >
19
+ <path d="M625.9 115c-5.9 0-11.9 1.6-17.4 5.3L254 352H90c-8.8 0-16 7.2-16 16v288c0 8.8 7.2 16 16 16h164l354.5 231.7c5.5 3.6 11.6 5.3 17.4 5.3 16.7 0 32.1-13.3 32.1-32.1V147.1c0-18.8-15.4-32.1-32.1-32.1zM586 803L293.4 611.7l-18-11.7H146V424h129.4l17.9-11.7L586 221v582zm348-327H806c-8.8 0-16 7.2-16 16v40c0 8.8 7.2 16 16 16h128c8.8 0 16-7.2 16-16v-40c0-8.8-7.2-16-16-16zm-41.9 261.8l-110.3-63.7a15.9 15.9 0 00-21.7 5.9l-19.9 34.5c-4.4 7.6-1.8 17.4 5.8 21.8L856.3 800a15.9 15.9 0 0021.7-5.9l19.9-34.5c4.4-7.6 1.7-17.4-5.8-21.8zM760 344a15.9 15.9 0 0021.7 5.9L892 286.2c7.6-4.4 10.2-14.2 5.8-21.8L878 230a15.9 15.9 0 00-21.7-5.9L746 287.8a15.99 15.99 0 00-5.8 21.8L760 344z"></path>
20
+ </svg>
21
+ )
22
+
23
+ export default Sound
@@ -0,0 +1,27 @@
1
+ import React from 'react'
2
+
3
+ const SoundDeactivated = ({
4
+ className,
5
+ title,
6
+ }: {
7
+ className?: string
8
+ title?: string
9
+ }) => (
10
+ <svg
11
+ {...(!title ? { 'aria-hidden': 'true' } : {})}
12
+ focusable="false"
13
+ role="img"
14
+ viewBox="0 0 40 36"
15
+ fill="none"
16
+ xmlns="http://www.w3.org/2000/svg"
17
+ className={className}
18
+ aria-label={title}
19
+ >
20
+ <path
21
+ d="M25.085.277c-.264 0-.531.071-.777.236L8.482 10.857H1.161a.716.716 0 00-.715.714V24.43c0 .392.322.714.715.714h7.321l15.826 10.344c.246.16.518.236.777.236.745 0 1.433-.593 1.433-1.433V1.71c0-.84-.688-1.433-1.433-1.433zM23.304 30.99l-13.063-8.54-.803-.522H3.66V14.07h5.777l.799-.522 13.067-8.54V30.99zM39.534 15.148L36.967 18l2.567 2.852a1.09 1.09 0 010 1.427l-1.283 1.426a.845.845 0 01-1.284 0L34.4 20.852l-2.567 2.852a.845.845 0 01-1.283 0l-1.284-1.426a1.09 1.09 0 010-1.426L31.833 18l-2.567-2.852a1.09 1.09 0 010-1.426l1.283-1.427a.845.845 0 011.284 0l2.567 2.853 2.567-2.853a.845.845 0 011.284 0l1.283 1.427a1.09 1.09 0 010 1.426z"
22
+ fill="currentColor"
23
+ />
24
+ </svg>
25
+ )
26
+
27
+ export default SoundDeactivated
@@ -0,0 +1,26 @@
1
+ import React from 'react'
2
+
3
+ const Telegram = ({
4
+ className,
5
+ title,
6
+ }: {
7
+ className?: string
8
+ title?: string
9
+ }) => (
10
+ <svg
11
+ {...(!title ? { 'aria-hidden': 'true' } : {})}
12
+ focusable="false"
13
+ role="img"
14
+ xmlns="http://www.w3.org/2000/svg"
15
+ viewBox="0 0 496 512"
16
+ className={className}
17
+ aria-label={title}
18
+ >
19
+ <path
20
+ fill="currentColor"
21
+ d="M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm121.8 169.9l-40.7 191.8c-3 13.6-11.1 16.9-22.4 10.5l-62-45.7-29.9 28.8c-3.3 3.3-6.1 6.1-12.5 6.1l4.4-63.1 114.9-103.8c5-4.4-1.1-6.9-7.7-2.5l-142 89.4-61.2-19.1c-13.3-4.2-13.6-13.3 2.8-19.7l239.1-92.2c11.1-4 20.8 2.7 17.2 19.5z"
22
+ ></path>
23
+ </svg>
24
+ )
25
+
26
+ export default Telegram
@@ -0,0 +1,29 @@
1
+ import React from 'react'
2
+
3
+ const ThumbDown = ({
4
+ className,
5
+ title,
6
+ }: {
7
+ className?: string
8
+ title?: string
9
+ }) => (
10
+ <svg
11
+ {...(!title ? { 'aria-hidden': 'true' } : {})}
12
+ focusable="false"
13
+ role="img"
14
+ xmlns="http://www.w3.org/2000/svg"
15
+ viewBox="0 0 24 24"
16
+ fill="none"
17
+ stroke="currentColor"
18
+ strokeLinecap="round"
19
+ strokeLinejoin="round"
20
+ strokeWidth="2"
21
+ tabIndex={-1}
22
+ className={className}
23
+ aria-label={title}
24
+ >
25
+ <path d="M10 15v4a3 3 0 003 3l4-9V2H5.72a2 2 0 00-2 1.7l-1.38 9a2 2 0 002 2.3zm7-13h2.67A2.31 2.31 0 0122 4v7a2.31 2.31 0 01-2.33 2H17"></path>
26
+ </svg>
27
+ )
28
+
29
+ export default ThumbDown
@@ -0,0 +1,29 @@
1
+ import React from 'react'
2
+
3
+ const ThumbUp = ({
4
+ className,
5
+ title,
6
+ }: {
7
+ className?: string
8
+ title?: string
9
+ }) => (
10
+ <svg
11
+ {...(!title ? { 'aria-hidden': 'true' } : {})}
12
+ focusable="false"
13
+ role="img"
14
+ xmlns="http://www.w3.org/2000/svg"
15
+ viewBox="0 0 24 24"
16
+ fill="none"
17
+ stroke="currentColor"
18
+ strokeLinecap="round"
19
+ strokeLinejoin="round"
20
+ strokeWidth="2"
21
+ tabIndex={-1}
22
+ className={className}
23
+ aria-label={title}
24
+ >
25
+ <path d="M14 9V5a3 3 0 00-3-3l-4 9v11h11.28a2 2 0 002-1.7l1.38-9a2 2 0 00-2-2.3zM7 22H4a2 2 0 01-2-2v-7a2 2 0 012-2h3"></path>
26
+ </svg>
27
+ )
28
+
29
+ export default ThumbUp
@@ -0,0 +1,24 @@
1
+ import React from 'react'
2
+
3
+ const Translation = ({
4
+ className,
5
+ title,
6
+ }: {
7
+ className?: string
8
+ title?: string
9
+ }) => (
10
+ <svg
11
+ {...(!title ? { 'aria-hidden': 'true' } : {})}
12
+ focusable="false"
13
+ role="img"
14
+ xmlns="http://www.w3.org/2000/svg"
15
+ viewBox="0 0 1024 1024"
16
+ className={className}
17
+ aria-label={title}
18
+ >
19
+ <path d="M140 188h584v164h76V144c0-17.7-14.3-32-32-32H96c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h544v-76H140V188z"></path>
20
+ <path d="M414.3 256h-60.6c-3.4 0-6.4 2.2-7.6 5.4L219 629.4c-.3.8-.4 1.7-.4 2.6 0 4.4 3.6 8 8 8h55.1c3.4 0 6.4-2.2 7.6-5.4L322 540h196.2L422 261.4c-1.3-3.2-4.3-5.4-7.7-5.4zm12.4 228h-85.5L384 360.2 426.7 484zM936 528H800v-93c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v93H592c-13.3 0-24 10.7-24 24v176c0 13.3 10.7 24 24 24h136v152c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V752h136c13.3 0 24-10.7 24-24V552c0-13.3-10.7-24-24-24zM728 680h-88v-80h88v80zm160 0h-88v-80h88v80z"></path>
21
+ </svg>
22
+ )
23
+
24
+ export default Translation
@@ -0,0 +1,23 @@
1
+ import React from 'react'
2
+
3
+ const Twitter = ({
4
+ className,
5
+ title,
6
+ }: {
7
+ className?: string
8
+ title?: string
9
+ }) => (
10
+ <svg
11
+ {...(!title ? { 'aria-hidden': 'true' } : {})}
12
+ focusable="false"
13
+ role="img"
14
+ xmlns="http://www.w3.org/2000/svg"
15
+ viewBox="0 0 1024 1024"
16
+ className={className}
17
+ aria-label={title}
18
+ >
19
+ <path d="M928 254.3c-30.6 13.2-63.9 22.7-98.2 26.4a170.1 170.1 0 0 0 75-94 336.64 336.64 0 0 1-108.2 41.2A170.1 170.1 0 0 0 672 174c-94.5 0-170.5 76.6-170.5 170.6 0 13.2 1.6 26.4 4.2 39.1-141.5-7.4-267.7-75-351.6-178.5a169.32 169.32 0 0 0-23.2 86.1c0 59.2 30.1 111.4 76 142.1a172 172 0 0 1-77.1-21.7v2.1c0 82.9 58.6 151.6 136.7 167.4a180.6 180.6 0 0 1-44.9 5.8c-11.1 0-21.6-1.1-32.2-2.6C211 652 273.9 701.1 348.8 702.7c-58.6 45.9-132 72.9-211.7 72.9-14.3 0-27.5-.5-41.2-2.1C171.5 822 261.2 850 357.8 850 671.4 850 843 590.2 843 364.7c0-7.4 0-14.8-.5-22.2 33.2-24.3 62.3-54.4 85.5-88.2z" />
20
+ </svg>
21
+ )
22
+
23
+ export default Twitter
@@ -0,0 +1,34 @@
1
+ import React from 'react'
2
+
3
+ export const UploadIcon: React.FC<{ className?: string }> = ({ className }) => {
4
+ return (
5
+ <svg
6
+ className={className}
7
+ viewBox="0 0 24 24"
8
+ fill="none"
9
+ xmlns="http://www.w3.org/2000/svg"
10
+ >
11
+ <path
12
+ d="M21 15V19C21 19.5304 20.7893 20.0391 20.4142 20.4142C20.0391 20.7893 19.5304 21 19 21H5C4.46957 21 3.96086 20.7893 3.58579 20.4142C3.21071 20.0391 3 19.5304 3 19V15"
13
+ stroke="currentColor"
14
+ strokeWidth="1.5"
15
+ strokeLinecap="round"
16
+ strokeLinejoin="round"
17
+ />
18
+ <path
19
+ d="M17 8L12 3L7 8"
20
+ stroke="currentColor"
21
+ strokeWidth="1.5"
22
+ strokeLinecap="round"
23
+ strokeLinejoin="round"
24
+ />
25
+ <path
26
+ d="M12 3V15"
27
+ stroke="currentColor"
28
+ strokeWidth="1.5"
29
+ strokeLinecap="round"
30
+ strokeLinejoin="round"
31
+ />
32
+ </svg>
33
+ )
34
+ }
@@ -0,0 +1,17 @@
1
+ import React from 'react'
2
+
3
+ const User = ({ className, title }: { className?: string; title?: string }) => (
4
+ <svg
5
+ {...(!title ? { 'aria-hidden': 'true' } : {})}
6
+ focusable="false"
7
+ role="img"
8
+ xmlns="http://www.w3.org/2000/svg"
9
+ viewBox="0 0 1024 1024"
10
+ className={className}
11
+ aria-label={title}
12
+ >
13
+ <path d="M858.5 763.6a374 374 0 0 0-80.6-119.5 375.63 375.63 0 0 0-119.5-80.6c-.4-.2-.8-.3-1.2-.5C719.5 518 760 444.7 760 362c0-137-111-248-248-248S264 225 264 362c0 82.7 40.5 156 102.8 201.1-.4.2-.8.3-1.2.5-44.8 18.9-85 46-119.5 80.6a375.63 375.63 0 0 0-80.6 119.5A371.7 371.7 0 0 0 136 901.8a8 8 0 0 0 8 8.2h60c4.4 0 7.9-3.5 8-7.8 2-77.2 33-149.5 87.8-204.3 56.7-56.7 132-87.9 212.2-87.9s155.5 31.2 212.2 87.9C779 752.7 810 825 812 902.2c.1 4.4 3.6 7.8 8 7.8h60a8 8 0 0 0 8-8.2c-1-47.8-10.9-94.3-29.5-138.2zM512 534c-45.9 0-89.1-17.9-121.6-50.4S340 407.9 340 362c0-45.9 17.9-89.1 50.4-121.6S466.1 190 512 190s89.1 17.9 121.6 50.4S684 316.1 684 362c0 45.9-17.9 89.1-50.4 121.6S557.9 534 512 534z" />
14
+ </svg>
15
+ )
16
+
17
+ export default User
@@ -0,0 +1,27 @@
1
+ import React from 'react'
2
+
3
+ const Warning = ({
4
+ className,
5
+ title,
6
+ }: {
7
+ className?: string
8
+ title?: string
9
+ }) => (
10
+ <svg
11
+ {...(!title ? { 'aria-hidden': 'true' } : {})}
12
+ focusable="false"
13
+ role="img"
14
+ xmlns="http://www.w3.org/2000/svg"
15
+ viewBox="0 0 1024 1024"
16
+ className={className}
17
+ aria-label={title}
18
+ color="currentColor"
19
+ >
20
+ <path
21
+ fill="currentColor"
22
+ d="M464 720a48 48 0 1096 0 48 48 0 10-96 0zm16-304v184c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V416c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8zm475.7 440l-416-720c-6.2-10.7-16.9-16-27.7-16s-21.6 5.3-27.7 16l-416 720C56 877.4 71.4 904 96 904h832c24.6 0 40-26.6 27.7-48zm-783.5-27.9L512 239.9l339.8 588.2H172.2z"
23
+ ></path>
24
+ </svg>
25
+ )
26
+
27
+ export default Warning
@@ -0,0 +1,24 @@
1
+ import React from 'react'
2
+
3
+ const WhatsApp = ({
4
+ className,
5
+ title,
6
+ }: {
7
+ className?: string
8
+ title?: string
9
+ }) => (
10
+ <svg
11
+ {...(!title ? { 'aria-hidden': 'true' } : {})}
12
+ focusable="false"
13
+ role="img"
14
+ xmlns="http://www.w3.org/2000/svg"
15
+ viewBox="0 0 1024 1024"
16
+ className={className}
17
+ aria-label={title}
18
+ >
19
+ <path d="M713.5 599.9c-10.9-5.6-65.2-32.2-75.3-35.8-10.1-3.8-17.5-5.6-24.8 5.6-7.4 11.1-28.4 35.8-35 43.3-6.4 7.4-12.9 8.3-23.8 2.8-64.8-32.4-107.3-57.8-150-131.1-11.3-19.5 11.3-18.1 32.4-60.2 3.6-7.4 1.8-13.7-1-19.3-2.8-5.6-24.8-59.8-34-81.9-8.9-21.5-18.1-18.5-24.8-18.9-6.4-.4-13.7-.4-21.1-.4-7.4 0-19.3 2.8-29.4 13.7-10.1 11.1-38.6 37.8-38.6 92s39.5 106.7 44.9 114.1c5.6 7.4 77.7 118.6 188.4 166.5 70 30.2 97.4 32.8 132.4 27.6 21.3-3.2 65.2-26.6 74.3-52.5 9.1-25.8 9.1-47.9 6.4-52.5-2.7-4.9-10.1-7.7-21-13z"></path>
20
+ <path d="M925.2 338.4c-22.6-53.7-55-101.9-96.3-143.3-41.3-41.3-89.5-73.8-143.3-96.3C630.6 75.7 572.2 64 512 64h-2c-60.6.3-119.3 12.3-174.5 35.9-53.3 22.8-101.1 55.2-142 96.5-40.9 41.3-73 89.3-95.2 142.8-23 55.4-34.6 114.3-34.3 174.9.3 69.4 16.9 138.3 48 199.9v152c0 25.4 20.6 46 46 46h152.1c61.6 31.1 130.5 47.7 199.9 48h2.1c59.9 0 118-11.6 172.7-34.3 53.5-22.3 101.6-54.3 142.8-95.2 41.3-40.9 73.8-88.7 96.5-142 23.6-55.2 35.6-113.9 35.9-174.5.3-60.9-11.5-120-34.8-175.6zm-151.1 438C704 845.8 611 884 512 884h-1.7c-60.3-.3-120.2-15.3-173.1-43.5l-8.4-4.5H188V695.2l-4.5-8.4C155.3 633.9 140.3 574 140 513.7c-.4-99.7 37.7-193.3 107.6-263.8 69.8-70.5 163.1-109.5 262.8-109.9h1.7c50 0 98.5 9.7 144.2 28.9 44.6 18.7 84.6 45.6 119 80 34.3 34.3 61.3 74.4 80 119 19.4 46.2 29.1 95.2 28.9 145.8-.6 99.6-39.7 192.9-110.1 262.7z"></path>
21
+ </svg>
22
+ )
23
+
24
+ export default WhatsApp
@@ -0,0 +1,5 @@
1
+ .showcase-icon {
2
+ width: 3rem;
3
+ height: 3rem;
4
+ font-size: 3rem;
5
+ }
@@ -0,0 +1,110 @@
1
+ import React from 'react'
2
+ import type { Meta, StoryObj } from '@storybook/react'
3
+
4
+ import './loading.css'
5
+ import './icons.stories.css'
6
+
7
+ interface Props {
8
+ iconName: string
9
+ }
10
+
11
+ interface IconProps {
12
+ className?: string
13
+ title?: string
14
+ }
15
+
16
+ // Import all icons at module level
17
+ const iconContext = (require as any).context('./', false, /\.tsx$/)
18
+ const iconModules: { [key: string]: React.ComponentType<any> } = {}
19
+
20
+ iconContext.keys().forEach((key: string) => {
21
+ const iconName = key.replace('./', '').replace('.tsx', '')
22
+ if (!iconName.includes('stories')) {
23
+ iconModules[iconName] = iconContext(key).default
24
+ }
25
+ })
26
+
27
+ const IconShowcaseItem = ({ iconName, ...iconProps }: Props & IconProps) => {
28
+ const Icon = iconModules[iconName]
29
+ if (!Icon) return null
30
+ return (
31
+ <Icon
32
+ {...iconProps}
33
+ className="showcase-icon"
34
+ />
35
+ )
36
+ }
37
+
38
+ const IconsShowcase = (iconProps: IconProps) => {
39
+ const iconNames = Object.keys(iconModules)
40
+ return (
41
+ <div
42
+ style={{
43
+ display: 'grid',
44
+ gridTemplateColumns: 'repeat(7, 1fr)',
45
+ gridGap: '2rem',
46
+ }}
47
+ >
48
+ <h1>Icons</h1>
49
+ <h2>Internal svg icons</h2>
50
+ {iconNames.map(iconName => (
51
+ <div
52
+ key={iconName}
53
+ style={{
54
+ textAlign: 'center',
55
+ }}
56
+ >
57
+ <IconShowcaseItem
58
+ iconName={iconName}
59
+ {...iconProps}
60
+ />
61
+ <p>{iconName}</p>
62
+ </div>
63
+ ))}
64
+ <h2>External icons</h2>
65
+ <p>
66
+ We use{' '}
67
+ <a
68
+ href="https://lucide.dev/"
69
+ target="_blank"
70
+ rel="noopener noreferrer"
71
+ >
72
+ Lucide
73
+ </a>{' '}
74
+ for additional icons.
75
+ </p>
76
+ <p>
77
+ Refer to{' '}
78
+ <a
79
+ href="https://lucide.dev/guide/packages/lucide-react"
80
+ target="_blank"
81
+ rel="noopener noreferrer"
82
+ >
83
+ Lucide React
84
+ </a>{' '}
85
+ guide for more information on how to use them.
86
+ </p>
87
+ </div>
88
+ )
89
+ }
90
+
91
+ const meta = {
92
+ title: 'Definitions/Icons',
93
+ component: IconsShowcase,
94
+ argTypes: {},
95
+ parameters: {
96
+ controls: { expanded: true },
97
+ },
98
+ render: args => <IconsShowcase {...args} />,
99
+ } satisfies Meta<typeof IconsShowcase>
100
+
101
+ export default meta
102
+
103
+ type Story = StoryObj<typeof meta>
104
+
105
+ export const Default: Story = {
106
+ args: {
107
+ className: 'showcase-icon',
108
+ title: 'Icon',
109
+ },
110
+ }
@@ -0,0 +1,14 @@
1
+ .memori-loading-icon {
2
+ display: inline-block;
3
+ animation: memori-loading 1s infinite linear;
4
+ }
5
+
6
+ @keyframes memori-loading {
7
+ 0% {
8
+ transform: rotate(0deg);
9
+ }
10
+
11
+ 100% {
12
+ transform: rotate(360deg);
13
+ }
14
+ }
package/src/index.ts ADDED
@@ -0,0 +1,15 @@
1
+ import './styles.css'
2
+
3
+ export { Alert } from './components/Alert'
4
+ export { Button } from './components/Button'
5
+ export { ButtonBase } from './components/ButtonBase'
6
+ export { Card } from './components/Card'
7
+ export { Checkbox } from './components/Checkbox'
8
+ export { ConfirmDialog } from './components/ConfirmDialog'
9
+ export { Dropdown } from './components/Dropdown'
10
+ export { Expandable } from './components/Expandable'
11
+ export { Modal } from './components/Modal'
12
+ export { Select } from './components/Select'
13
+ export { Slider } from './components/Slider'
14
+ export { Spin } from './components/Spin'
15
+ export { Tooltip } from './components/Tooltip'
@@ -0,0 +1,17 @@
1
+ @media (width <= 768px) {
2
+ .mobile-hidden {
3
+ display: none;
4
+ }
5
+ }
6
+
7
+ .sr-only {
8
+ position: absolute;
9
+ overflow: hidden;
10
+ width: 1px;
11
+ height: 1px;
12
+ padding: 0;
13
+ border-width: 0;
14
+ margin: -1px;
15
+ clip: rect(0, 0, 0, 0);
16
+ white-space: nowrap;
17
+ }
package/src/styles.css ADDED
@@ -0,0 +1,4 @@
1
+ @import url('./theme/variables.css');
2
+ @import url('./styles/utils.css');
3
+ @import url('./components/Table/Table.css');
4
+ @import url('./components/Details/Details.css');
@@ -0,0 +1,110 @@
1
+ /**
2
+ * Design Tokens - CSS Variables
3
+ *
4
+ * This file contains all design tokens mapped to CSS custom properties.
5
+ * These variables should be used throughout the component library instead
6
+ * of hardcoded values.
7
+ */
8
+
9
+ :root {
10
+ /* ============================================
11
+ COLOR TOKENS
12
+ ============================================ */
13
+
14
+ /* Primary Colors */
15
+ --color-primary-100: #f2eafd;
16
+ --color-primary-200: #d9c3f3;
17
+ --color-primary-300: #bf9de9;
18
+ --color-primary-400: #a677df;
19
+ --color-primary-500: #8246af; /* Base Brand Color */
20
+ --color-primary-600: #68388c;
21
+ --color-primary-700: #4e2a69;
22
+ --color-primary-800: #341c46;
23
+ --color-primary-900: #1a0e23;
24
+
25
+ /* Secondary Colors */
26
+ --color-secondary-100: #e0f5f9;
27
+ --color-secondary-200: #c1ebf4;
28
+ --color-secondary-300: #a3e2ee;
29
+ --color-secondary-400: #84d8e9;
30
+ --color-secondary-500: #66cee0; /* Base Secondary Color */
31
+ --color-secondary-600: #52a5b3;
32
+ --color-secondary-700: #3d7c86;
33
+ --color-secondary-800: #29525a;
34
+ --color-secondary-900: #14292d;
35
+
36
+ /* Semantic Colors - Success */
37
+ --color-semantic-success-base: #52c41a;
38
+ --color-semantic-success-light: #d9f7be; /* Backgrounds */
39
+ --color-semantic-success-dark: #389e0d; /* Text/Icons */
40
+
41
+ /* Semantic Colors - Error */
42
+ --color-semantic-error-base: #d9363e;
43
+ --color-semantic-error-light: #fff1f0; /* Backgrounds */
44
+ --color-semantic-error-dark: #a8071a; /* Text/Icons */
45
+
46
+ /* Semantic Colors - Warning */
47
+ --color-semantic-warning-base: #faad14;
48
+ --color-semantic-warning-light: #fffbe6; /* Backgrounds */
49
+ --color-semantic-warning-dark: #d48806; /* Text/Icons */
50
+
51
+ /* Neutral Colors */
52
+ --color-neutral-white: #fff;
53
+ --color-neutral-100: #fafafa; /* Page Background */
54
+ --color-neutral-200: #f5f5f5; /* Component Background */
55
+ --color-neutral-300: #f0f0f0; /* Hover States */
56
+ --color-neutral-400: #d9d9d9; /* Borders */
57
+ --color-neutral-500: #bfbfbf; /* Disabled Text */
58
+ --color-neutral-600: #8c8c8c; /* Secondary Text */
59
+ --color-neutral-700: #595959; /* Primary Text */
60
+ --color-neutral-800: #262626; /* Headings */
61
+ --color-neutral-900: #141414;
62
+
63
+ /* ============================================
64
+ TYPOGRAPHY TOKENS
65
+ ============================================ */
66
+
67
+ /* Font Family */
68
+ --typography-font-family-base: 'Lexend Deca Variable', 'Lexend Deca', sans-serif;
69
+
70
+ /* Font Sizes */
71
+ --typography-font-size-xs: 12px;
72
+ --typography-font-size-sm: 14px;
73
+ --typography-font-size-base: 16px;
74
+ --typography-font-size-lg: 20px;
75
+ --typography-font-size-xl: 24px;
76
+ --typography-font-size-2xl: 32px;
77
+ --typography-font-size-3xl: 48px;
78
+
79
+ /* Line Heights */
80
+ --typography-line-height-tight: 1.2;
81
+ --typography-line-height-normal: 1.5;
82
+ --typography-line-height-relaxed: 1.75;
83
+
84
+ /* Font Weights */
85
+ --typography-font-weight-regular: 400;
86
+ --typography-font-weight-medium: 500;
87
+ --typography-font-weight-semibold: 600;
88
+ --typography-font-weight-bold: 700;
89
+
90
+ /* ============================================
91
+ SPACING TOKENS
92
+ ============================================ */
93
+
94
+ --spacing-xs: 4px;
95
+ --spacing-sm: 8px;
96
+ --spacing-md: 16px;
97
+ --spacing-lg: 24px;
98
+ --spacing-xl: 32px;
99
+ --spacing-2xl: 48px;
100
+ --spacing-3xl: 64px;
101
+
102
+ /* ============================================
103
+ BORDER RADIUS TOKENS
104
+ ============================================ */
105
+
106
+ --border-radius-sm: 4px; /* Inputs, Checkboxes */
107
+ --border-radius-md: 8px; /* Cards, Buttons */
108
+ --border-radius-lg: 16px; /* Modals, Containers */
109
+ --border-radius-full: 999px; /* Pills, Avatars */
110
+ }
@@ -0,0 +1,6 @@
1
+ /// <reference types="vite/client" />
2
+
3
+ declare module '*.module.css' {
4
+ const classes: { readonly [key: string]: string }
5
+ export default classes
6
+ }