@soul-refiner/design-system 0.1.27 → 0.1.29

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 (725) hide show
  1. package/dist/common/colors.js +135 -0
  2. package/dist/common/date.js +28 -0
  3. package/dist/common/index.js +3 -0
  4. package/dist/common/styles.js +63 -0
  5. package/dist/components/actions/button/button.js +233 -0
  6. package/dist/components/actions/button/button.stories.js +58 -0
  7. package/dist/components/actions/button/index.js +1 -0
  8. package/dist/components/actions/dropdown/dropdown.js +202 -0
  9. package/dist/components/actions/dropdown/dropdown.stories.js +99 -0
  10. package/dist/components/actions/dropdown/index.js +1 -0
  11. package/dist/components/actions/index.js +5 -0
  12. package/dist/components/actions/rate/index.js +1 -0
  13. package/dist/components/actions/rate/rate.js +45 -0
  14. package/dist/components/actions/rate/rate.stories.js +29 -0
  15. package/dist/components/actions/switch/index.js +1 -0
  16. package/dist/components/actions/switch/switch.js +71 -0
  17. package/dist/components/actions/switch/switch.stories.js +25 -0
  18. package/dist/components/actions/toggle/index.js +1 -0
  19. package/dist/components/actions/toggle/toggle.js +56 -0
  20. package/dist/components/actions/toggle/toggle.stories.js +20 -0
  21. package/dist/components/actions/upload/index.js +1 -0
  22. package/dist/components/actions/upload/upload.js +155 -0
  23. package/dist/components/actions/upload/upload.stories.js +58 -0
  24. package/dist/components/atoms/box/box.js +15 -0
  25. package/dist/components/atoms/box/box.stories.js +85 -0
  26. package/dist/components/atoms/box/index.js +1 -0
  27. package/dist/components/atoms/colors/colors.js +34 -0
  28. package/dist/components/atoms/colors/colors.stories.js +75 -0
  29. package/dist/components/atoms/colors/index.js +1 -0
  30. package/dist/components/atoms/index.js +2 -0
  31. package/dist/components/atoms/typography/display.js +9 -0
  32. package/dist/components/atoms/typography/heading.js +33 -0
  33. package/dist/components/atoms/typography/index.js +4 -0
  34. package/dist/components/atoms/typography/paragraph.js +16 -0
  35. package/dist/components/atoms/typography/typography.js +11 -0
  36. package/dist/components/atoms/typography/typography.stories.js +96 -0
  37. package/dist/components/card/action/action.js +51 -0
  38. package/dist/components/card/action/index.js +1 -0
  39. package/dist/components/card/audio/audio.js +100 -0
  40. package/dist/components/card/audio/index.js +1 -0
  41. package/dist/components/card/card.js +22 -0
  42. package/dist/components/card/card.stories.js +284 -0
  43. package/dist/components/card/feature/feature.js +168 -0
  44. package/dist/components/card/feature/index.js +1 -0
  45. package/dist/components/card/index.js +1 -0
  46. package/dist/components/card/person/index.js +1 -0
  47. package/dist/components/card/person/person.js +57 -0
  48. package/dist/components/card/price/index.js +1 -0
  49. package/dist/components/card/price/price.js +45 -0
  50. package/dist/components/card/regular/index.js +1 -0
  51. package/dist/components/card/regular/regular.js +30 -0
  52. package/dist/components/card/video/index.js +1 -0
  53. package/dist/components/card/video/video.js +92 -0
  54. package/dist/components/card/written/index.js +1 -0
  55. package/dist/components/card/written/written.js +101 -0
  56. package/dist/components/editor/constants.js +133 -0
  57. package/dist/components/editor/editor.js +73 -0
  58. package/dist/components/editor/editor.stories.js +16 -0
  59. package/dist/components/editor/index.js +1 -0
  60. package/dist/components/editor/navbar/alignment_dropdown.js +93 -0
  61. package/dist/components/editor/navbar/button_modal.js +55 -0
  62. package/dist/components/editor/navbar/index.js +1 -0
  63. package/dist/components/editor/navbar/navbar.js +205 -0
  64. package/dist/components/editor/navbar/style_dropdown.js +65 -0
  65. package/dist/components/editor/plate.js +27 -0
  66. package/dist/components/editor/plugins/blockquote.js +8 -0
  67. package/dist/components/editor/plugins/buttons.js +81 -0
  68. package/dist/components/editor/plugins/exitBreak.js +31 -0
  69. package/dist/components/editor/plugins/image.js +47 -0
  70. package/dist/components/editor/plugins/index.js +111 -0
  71. package/dist/components/editor/plugins/link.js +74 -0
  72. package/dist/components/editor/plugins/list.js +17 -0
  73. package/dist/components/editor/plugins/resetBlockType.js +22 -0
  74. package/dist/components/editor/plugins/selectOnBackspace.js +6 -0
  75. package/dist/components/editor/plugins/softBreak.js +14 -0
  76. package/dist/components/editor/plugins/text.js +81 -0
  77. package/dist/components/feedback/badge/badge.js +65 -0
  78. package/dist/components/feedback/badge/badge.stories.js +25 -0
  79. package/dist/components/feedback/badge/index.js +1 -0
  80. package/dist/components/feedback/banner/banner.js +76 -0
  81. package/dist/components/feedback/banner/banner.stories.js +33 -0
  82. package/dist/components/feedback/banner/index.js +1 -0
  83. package/dist/components/feedback/chip/chip.js +93 -0
  84. package/dist/components/feedback/chip/chip.stories.js +39 -0
  85. package/dist/components/feedback/chip/index.js +1 -0
  86. package/dist/components/feedback/index.js +7 -0
  87. package/dist/components/feedback/loader/index.js +1 -0
  88. package/dist/components/feedback/loader/loader.js +33 -0
  89. package/dist/components/feedback/loader/loader.stories.js +29 -0
  90. package/dist/components/feedback/notification/index.js +1 -0
  91. package/dist/components/feedback/notification/notification.js +71 -0
  92. package/dist/components/feedback/notification/notificition.stories.js +30 -0
  93. package/dist/components/feedback/progress/index.js +1 -0
  94. package/dist/components/feedback/progress/progress.js +86 -0
  95. package/dist/components/feedback/progress/progress.stories.js +32 -0
  96. package/dist/components/feedback/toast/index.js +1 -0
  97. package/dist/components/feedback/toast/toast.js +70 -0
  98. package/dist/components/feedback/toast/toast.stories.js +26 -0
  99. package/dist/components/feedback/tooltip/index.js +1 -0
  100. package/dist/components/feedback/tooltip/tooltip.js +25 -0
  101. package/dist/components/feedback/tooltip/tooltip.stories.js +43 -0
  102. package/dist/components/iconography/avatar/avatar.js +148 -0
  103. package/dist/components/iconography/avatar/avatar.stories.js +55 -0
  104. package/dist/components/iconography/avatar/icons/approved.js +5 -0
  105. package/dist/components/iconography/avatar/icons/busy.js +5 -0
  106. package/dist/components/iconography/avatar/icons/declined.js +5 -0
  107. package/dist/components/iconography/avatar/icons/default.js +3 -0
  108. package/dist/components/iconography/avatar/icons/focus.js +5 -0
  109. package/dist/components/iconography/avatar/icons/index.js +9 -0
  110. package/dist/components/iconography/avatar/icons/locked.js +5 -0
  111. package/dist/components/iconography/avatar/icons/offline.js +5 -0
  112. package/dist/components/iconography/avatar/icons/online.js +4 -0
  113. package/dist/components/iconography/avatar/icons/subscribed.js +9 -0
  114. package/dist/components/iconography/avatar/index.js +1 -0
  115. package/dist/components/iconography/icon/icon.js +9 -0
  116. package/dist/components/iconography/icon/icon.stories.js +113 -0
  117. package/dist/components/iconography/icon/index.js +1 -0
  118. package/dist/components/iconography/index.js +2 -0
  119. package/dist/components/index.js +9 -0
  120. package/dist/components/input/checkbox/checkbox.js +21 -0
  121. package/dist/components/input/checkbox/checkbox.stories.js +19 -0
  122. package/dist/components/input/checkbox/index.js +1 -0
  123. package/dist/components/input/date/date.js +516 -0
  124. package/dist/components/input/date/date.stories.js +30 -0
  125. package/dist/components/input/date/index.js +1 -0
  126. package/dist/components/input/filter/filter.js +194 -0
  127. package/dist/components/input/filter/filter.stories.js +30 -0
  128. package/dist/components/input/filter/index.js +1 -0
  129. package/dist/components/input/index.js +5 -0
  130. package/dist/components/input/radio/index.js +1 -0
  131. package/dist/components/input/radio/radio.js +77 -0
  132. package/dist/components/input/radio/radio.stories.js +34 -0
  133. package/dist/components/input/search/index.js +1 -0
  134. package/dist/components/input/search/search.js +136 -0
  135. package/dist/components/input/search/search.stories.js +50 -0
  136. package/dist/components/navigation/breadcrumb/breadcrumb.js +105 -0
  137. package/dist/components/navigation/breadcrumb/breadcrumb.stories.js +37 -0
  138. package/dist/components/navigation/breadcrumb/index.js +1 -0
  139. package/dist/components/navigation/index.js +2 -0
  140. package/dist/components/navigation/tabs/index.js +1 -0
  141. package/dist/components/navigation/tabs/tabs.js +144 -0
  142. package/dist/components/navigation/tabs/tabs.stories.js +88 -0
  143. package/dist/components/surfaces/accordion/accordion.js +45 -0
  144. package/dist/components/surfaces/accordion/accordion.stories.js +16 -0
  145. package/dist/components/surfaces/accordion/index.js +1 -0
  146. package/dist/components/surfaces/comment/comment.js +126 -0
  147. package/dist/components/surfaces/comment/comment.stories.js +82 -0
  148. package/dist/components/surfaces/comment/helpers.js +38 -0
  149. package/dist/components/surfaces/comment/index.js +1 -0
  150. package/dist/components/surfaces/drawer/drawer.js +124 -0
  151. package/dist/components/surfaces/drawer/drawer.stories.js +77 -0
  152. package/dist/components/surfaces/drawer/index.js +1 -0
  153. package/dist/components/surfaces/index.js +5 -0
  154. package/dist/components/surfaces/message/index.js +1 -0
  155. package/dist/components/surfaces/message/message.js +43 -0
  156. package/dist/components/surfaces/message/message.stories.js +71 -0
  157. package/dist/components/surfaces/modal/index.js +1 -0
  158. package/dist/components/surfaces/modal/modal.js +100 -0
  159. package/dist/components/surfaces/modal/modal.stories.js +18 -0
  160. package/dist/components/table/index.js +1 -0
  161. package/dist/components/table/table/index.js +1 -0
  162. package/dist/components/table/table/table.js +183 -0
  163. package/dist/components/table/table/table.stories.js +45 -0
  164. package/dist/emoji/emojis.json +17577 -0
  165. package/dist/icons/arrow/arrow_all.js +6 -0
  166. package/dist/icons/arrow/arrow_all_diagonal.js +6 -0
  167. package/dist/icons/arrow/arrow_both_downwards.js +6 -0
  168. package/dist/icons/arrow/arrow_both_upwards.js +6 -0
  169. package/dist/icons/arrow/arrow_circle_left.js +6 -0
  170. package/dist/icons/arrow/arrow_circle_left_double.js +6 -0
  171. package/dist/icons/arrow/arrow_circle_left_double_alert.js +8 -0
  172. package/dist/icons/arrow/arrow_circle_right.js +6 -0
  173. package/dist/icons/arrow/arrow_circle_right_double.js +6 -0
  174. package/dist/icons/arrow/arrow_circle_right_double_alert.js +6 -0
  175. package/dist/icons/arrow/arrow_diagonal_down_left.js +6 -0
  176. package/dist/icons/arrow/arrow_diagonal_down_left_circle.js +6 -0
  177. package/dist/icons/arrow/arrow_diagonal_down_right.js +6 -0
  178. package/dist/icons/arrow/arrow_diagonal_down_right_circle.js +6 -0
  179. package/dist/icons/arrow/arrow_diagonal_up_left.js +6 -0
  180. package/dist/icons/arrow/arrow_diagonal_up_left_circle.js +6 -0
  181. package/dist/icons/arrow/arrow_diagonal_up_right.js +6 -0
  182. package/dist/icons/arrow/arrow_diagonal_up_right_circle.js +6 -0
  183. package/dist/icons/arrow/arrow_down.js +6 -0
  184. package/dist/icons/arrow/arrow_down_bold.js +6 -0
  185. package/dist/icons/arrow/arrow_down_circle.js +6 -0
  186. package/dist/icons/arrow/arrow_left.js +6 -0
  187. package/dist/icons/arrow/arrow_left_bold.js +6 -0
  188. package/dist/icons/arrow/arrow_left_circle.js +6 -0
  189. package/dist/icons/arrow/arrow_left_curved.js +6 -0
  190. package/dist/icons/arrow/arrow_left_curved_circle.js +6 -0
  191. package/dist/icons/arrow/arrow_right.js +6 -0
  192. package/dist/icons/arrow/arrow_right_bold.js +6 -0
  193. package/dist/icons/arrow/arrow_right_circle.js +6 -0
  194. package/dist/icons/arrow/arrow_right_curved.js +6 -0
  195. package/dist/icons/arrow/arrow_right_curved_circle.js +6 -0
  196. package/dist/icons/arrow/arrow_up.js +6 -0
  197. package/dist/icons/arrow/arrow_up_bold.js +6 -0
  198. package/dist/icons/arrow/arrow_up_circle.js +6 -0
  199. package/dist/icons/arrow/chevron_down.js +6 -0
  200. package/dist/icons/arrow/chevron_down_circle.js +6 -0
  201. package/dist/icons/arrow/chevron_down_double.js +6 -0
  202. package/dist/icons/arrow/chevron_down_double_circle.js +6 -0
  203. package/dist/icons/arrow/chevron_left.js +6 -0
  204. package/dist/icons/arrow/chevron_left_circle.js +6 -0
  205. package/dist/icons/arrow/chevron_left_double.js +6 -0
  206. package/dist/icons/arrow/chevron_left_double_circle.js +6 -0
  207. package/dist/icons/arrow/chevron_right.js +6 -0
  208. package/dist/icons/arrow/chevron_right_circle.js +6 -0
  209. package/dist/icons/arrow/chevron_right_double.js +6 -0
  210. package/dist/icons/arrow/chevron_right_double_circle.js +6 -0
  211. package/dist/icons/arrow/chevron_scroll.js +6 -0
  212. package/dist/icons/arrow/chevron_up.js +6 -0
  213. package/dist/icons/arrow/chevron_up_circle.js +6 -0
  214. package/dist/icons/arrow/chevron_up_double.js +6 -0
  215. package/dist/icons/arrow/chevron_up_double_circle.js +6 -0
  216. package/dist/icons/arrow/forward_all.js +6 -0
  217. package/dist/icons/arrow/forward_all_bold.js +6 -0
  218. package/dist/icons/arrow/forward_bold.js +6 -0
  219. package/dist/icons/arrow/index.js +62 -0
  220. package/dist/icons/arrow/redo.js +6 -0
  221. package/dist/icons/arrow/redo_bold.js +6 -0
  222. package/dist/icons/arrow/reply.js +6 -0
  223. package/dist/icons/arrow/reply_all.js +6 -0
  224. package/dist/icons/arrow/reply_all_bold.js +6 -0
  225. package/dist/icons/arrow/reply_bold.js +6 -0
  226. package/dist/icons/arrow/undo.js +6 -0
  227. package/dist/icons/arrow/undo_bold.js +6 -0
  228. package/dist/icons/audio_video/drag_indicator.js +6 -0
  229. package/dist/icons/audio_video/eject.js +6 -0
  230. package/dist/icons/audio_video/equalizer.js +6 -0
  231. package/dist/icons/audio_video/fast_forward.js +6 -0
  232. package/dist/icons/audio_video/fast_forward_30.js +6 -0
  233. package/dist/icons/audio_video/fullscreen.js +6 -0
  234. package/dist/icons/audio_video/headphones.js +6 -0
  235. package/dist/icons/audio_video/index.js +38 -0
  236. package/dist/icons/audio_video/library_add.js +6 -0
  237. package/dist/icons/audio_video/library_delay.js +6 -0
  238. package/dist/icons/audio_video/library_music.js +6 -0
  239. package/dist/icons/audio_video/library_queue.js +6 -0
  240. package/dist/icons/audio_video/microphone.js +6 -0
  241. package/dist/icons/audio_video/musical_note.js +6 -0
  242. package/dist/icons/audio_video/next.js +6 -0
  243. package/dist/icons/audio_video/pause.js +6 -0
  244. package/dist/icons/audio_video/pause_circle.js +6 -0
  245. package/dist/icons/audio_video/play.js +6 -0
  246. package/dist/icons/audio_video/play_circle.js +6 -0
  247. package/dist/icons/audio_video/play_display.js +6 -0
  248. package/dist/icons/audio_video/play_pause.js +6 -0
  249. package/dist/icons/audio_video/play_solid.js +6 -0
  250. package/dist/icons/audio_video/player_list.js +6 -0
  251. package/dist/icons/audio_video/player_list_add.js +6 -0
  252. package/dist/icons/audio_video/player_list_play.js +6 -0
  253. package/dist/icons/audio_video/previous.js +6 -0
  254. package/dist/icons/audio_video/radio.js +6 -0
  255. package/dist/icons/audio_video/record.js +6 -0
  256. package/dist/icons/audio_video/repeat.js +6 -0
  257. package/dist/icons/audio_video/rewind.js +6 -0
  258. package/dist/icons/audio_video/rewind_30.js +6 -0
  259. package/dist/icons/audio_video/shuffle.js +6 -0
  260. package/dist/icons/audio_video/sound_wave.js +6 -0
  261. package/dist/icons/audio_video/stop.js +6 -0
  262. package/dist/icons/audio_video/stop_circle.js +6 -0
  263. package/dist/icons/audio_video/subscriptions.js +6 -0
  264. package/dist/icons/audio_video/tuner.js +6 -0
  265. package/dist/icons/audio_video/volume.js +6 -0
  266. package/dist/icons/audio_video/volume_high.js +6 -0
  267. package/dist/icons/audio_video/volume_low.js +6 -0
  268. package/dist/icons/audio_video/volume_slash.js +6 -0
  269. package/dist/icons/basic/aa_sansserif.js +7 -0
  270. package/dist/icons/basic/aa_serif.js +7 -0
  271. package/dist/icons/basic/anchor.js +8 -0
  272. package/dist/icons/basic/bible.js +6 -0
  273. package/dist/icons/basic/bold.js +6 -0
  274. package/dist/icons/basic/book.js +6 -0
  275. package/dist/icons/basic/book_open.js +6 -0
  276. package/dist/icons/basic/bookmark.js +6 -0
  277. package/dist/icons/basic/bookmark_add.js +6 -0
  278. package/dist/icons/basic/bookmark_slash.js +6 -0
  279. package/dist/icons/basic/bookmarks.js +6 -0
  280. package/dist/icons/basic/books.js +9 -0
  281. package/dist/icons/basic/box.js +6 -0
  282. package/dist/icons/basic/briefcase.js +6 -0
  283. package/dist/icons/basic/browse_activity.js +6 -0
  284. package/dist/icons/basic/browser.js +6 -0
  285. package/dist/icons/basic/browser_slash.js +6 -0
  286. package/dist/icons/basic/calculator.js +6 -0
  287. package/dist/icons/basic/camera.js +6 -0
  288. package/dist/icons/basic/camera_add.js +6 -0
  289. package/dist/icons/basic/camera_slash.js +6 -0
  290. package/dist/icons/basic/checkmark.js +6 -0
  291. package/dist/icons/basic/checkmark_circle.js +8 -0
  292. package/dist/icons/basic/checkmark_filled.js +6 -0
  293. package/dist/icons/basic/checkmarks.js +6 -0
  294. package/dist/icons/basic/circle.js +6 -0
  295. package/dist/icons/basic/circle_slash.js +8 -0
  296. package/dist/icons/basic/clear_text_style.js +6 -0
  297. package/dist/icons/basic/close.js +6 -0
  298. package/dist/icons/basic/close_circle.js +6 -0
  299. package/dist/icons/basic/close_filled.js +6 -0
  300. package/dist/icons/basic/copy.js +6 -0
  301. package/dist/icons/basic/delete.js +6 -0
  302. package/dist/icons/basic/detail.js +6 -0
  303. package/dist/icons/basic/dot.js +6 -0
  304. package/dist/icons/basic/download.js +6 -0
  305. package/dist/icons/basic/download_arrow.js +6 -0
  306. package/dist/icons/basic/droplet.js +8 -0
  307. package/dist/icons/basic/ellipsis_horizontal.js +6 -0
  308. package/dist/icons/basic/ellipsis_horizontal_circle.js +6 -0
  309. package/dist/icons/basic/ellipsis_vertical.js +6 -0
  310. package/dist/icons/basic/ellipsis_vertical_circle.js +6 -0
  311. package/dist/icons/basic/eye.js +6 -0
  312. package/dist/icons/basic/eye_slash.js +6 -0
  313. package/dist/icons/basic/fingerprint.js +6 -0
  314. package/dist/icons/basic/flag.js +6 -0
  315. package/dist/icons/basic/flag_wave.js +6 -0
  316. package/dist/icons/basic/flag_wave_filled.js +6 -0
  317. package/dist/icons/basic/flame.js +6 -0
  318. package/dist/icons/basic/gauge.js +6 -0
  319. package/dist/icons/basic/glasses.js +6 -0
  320. package/dist/icons/basic/graduation_cap.js +6 -0
  321. package/dist/icons/basic/hashmark.js +6 -0
  322. package/dist/icons/basic/heart.js +6 -0
  323. package/dist/icons/basic/heart_slash.js +6 -0
  324. package/dist/icons/basic/highlighter.js +6 -0
  325. package/dist/icons/basic/home.js +6 -0
  326. package/dist/icons/basic/image.js +6 -0
  327. package/dist/icons/basic/inbox.js +6 -0
  328. package/dist/icons/basic/index.js +128 -0
  329. package/dist/icons/basic/italic.js +6 -0
  330. package/dist/icons/basic/layers.js +6 -0
  331. package/dist/icons/basic/lightening.js +6 -0
  332. package/dist/icons/basic/lightening_slash.js +6 -0
  333. package/dist/icons/basic/link.js +6 -0
  334. package/dist/icons/basic/link_slash.js +6 -0
  335. package/dist/icons/basic/loudspeaker.js +6 -0
  336. package/dist/icons/basic/maximize.js +6 -0
  337. package/dist/icons/basic/menu.js +6 -0
  338. package/dist/icons/basic/menu_circle.js +6 -0
  339. package/dist/icons/basic/menu_dots.js +6 -0
  340. package/dist/icons/basic/microphone_slash.js +6 -0
  341. package/dist/icons/basic/minimize.js +6 -0
  342. package/dist/icons/basic/minus.js +6 -0
  343. package/dist/icons/basic/minus_circle.js +6 -0
  344. package/dist/icons/basic/move_item.js +6 -0
  345. package/dist/icons/basic/new.js +6 -0
  346. package/dist/icons/basic/newspaper.js +6 -0
  347. package/dist/icons/basic/note_pad.js +7 -0
  348. package/dist/icons/basic/options.js +6 -0
  349. package/dist/icons/basic/paint_brush.js +6 -0
  350. package/dist/icons/basic/paperclip.js +6 -0
  351. package/dist/icons/basic/paperclip_slash.js +6 -0
  352. package/dist/icons/basic/pencil.js +6 -0
  353. package/dist/icons/basic/pencil_pad.js +6 -0
  354. package/dist/icons/basic/plus.js +6 -0
  355. package/dist/icons/basic/plus_circle.js +6 -0
  356. package/dist/icons/basic/presentation.js +6 -0
  357. package/dist/icons/basic/printer.js +6 -0
  358. package/dist/icons/basic/profile.js +6 -0
  359. package/dist/icons/basic/pulse.js +6 -0
  360. package/dist/icons/basic/qr_code.js +6 -0
  361. package/dist/icons/basic/resize.js +8 -0
  362. package/dist/icons/basic/scan.js +6 -0
  363. package/dist/icons/basic/scissors.js +6 -0
  364. package/dist/icons/basic/screenshot.js +6 -0
  365. package/dist/icons/basic/search.js +6 -0
  366. package/dist/icons/basic/select_item.js +7 -0
  367. package/dist/icons/basic/settings.js +6 -0
  368. package/dist/icons/basic/share.js +6 -0
  369. package/dist/icons/basic/share_external.js +6 -0
  370. package/dist/icons/basic/square.js +6 -0
  371. package/dist/icons/basic/star.js +6 -0
  372. package/dist/icons/basic/star_circle.js +6 -0
  373. package/dist/icons/basic/star_filled.js +6 -0
  374. package/dist/icons/basic/star_filled_half.js +6 -0
  375. package/dist/icons/basic/star_slash.js +6 -0
  376. package/dist/icons/basic/sticker.js +6 -0
  377. package/dist/icons/basic/strikethrough.js +6 -0
  378. package/dist/icons/basic/subtask.js +7 -0
  379. package/dist/icons/basic/tax.js +9 -0
  380. package/dist/icons/basic/text_bg_color.js +6 -0
  381. package/dist/icons/basic/text_color.js +6 -0
  382. package/dist/icons/basic/textbox.js +6 -0
  383. package/dist/icons/basic/thumbs_down.js +6 -0
  384. package/dist/icons/basic/thumbs_up.js +6 -0
  385. package/dist/icons/basic/thumbs_up_filled.js +6 -0
  386. package/dist/icons/basic/toggle_left.js +6 -0
  387. package/dist/icons/basic/toggle_right.js +6 -0
  388. package/dist/icons/basic/translate.js +6 -0
  389. package/dist/icons/basic/trash.js +6 -0
  390. package/dist/icons/basic/trash_slash.js +6 -0
  391. package/dist/icons/basic/underline.js +6 -0
  392. package/dist/icons/basic/upload.js +6 -0
  393. package/dist/icons/basic/video.js +6 -0
  394. package/dist/icons/basic/video_add.js +7 -0
  395. package/dist/icons/basic/video_slash.js +6 -0
  396. package/dist/icons/basic/zoom_in.js +6 -0
  397. package/dist/icons/basic/zoom_out.js +6 -0
  398. package/dist/icons/data/bar_chart.js +6 -0
  399. package/dist/icons/data/bar_chart_downward.js +6 -0
  400. package/dist/icons/data/bar_chart_downward_outline.js +6 -0
  401. package/dist/icons/data/bar_chart_upward.js +6 -0
  402. package/dist/icons/data/bar_chart_upward_outline.js +6 -0
  403. package/dist/icons/data/candlestick_chart.js +6 -0
  404. package/dist/icons/data/four_circles.js +6 -0
  405. package/dist/icons/data/index.js +20 -0
  406. package/dist/icons/data/legend_toggle.js +6 -0
  407. package/dist/icons/data/line_chart.js +6 -0
  408. package/dist/icons/data/line_chart_area.js +6 -0
  409. package/dist/icons/data/line_chart_area_shaded.js +6 -0
  410. package/dist/icons/data/line_chart_double.js +6 -0
  411. package/dist/icons/data/line_chart_downward.js +6 -0
  412. package/dist/icons/data/line_chart_node.js +6 -0
  413. package/dist/icons/data/line_chart_outline.js +6 -0
  414. package/dist/icons/data/line_chart_search.js +6 -0
  415. package/dist/icons/data/line_chart_stars.js +6 -0
  416. package/dist/icons/data/line_chart_upward.js +6 -0
  417. package/dist/icons/data/pie_chart.js +7 -0
  418. package/dist/icons/data/tree.js +6 -0
  419. package/dist/icons/email/index.js +8 -0
  420. package/dist/icons/email/mail.js +6 -0
  421. package/dist/icons/email/mail_check.js +6 -0
  422. package/dist/icons/email/mail_minus.js +6 -0
  423. package/dist/icons/email/mail_send.js +6 -0
  424. package/dist/icons/email/send.js +6 -0
  425. package/dist/icons/email/send_close.js +6 -0
  426. package/dist/icons/email/send_schedule.js +6 -0
  427. package/dist/icons/email/send_text.js +6 -0
  428. package/dist/icons/file/clipboard.js +6 -0
  429. package/dist/icons/file/clipboard_check.js +6 -0
  430. package/dist/icons/file/clipboard_close.js +6 -0
  431. package/dist/icons/file/clipboard_minus.js +6 -0
  432. package/dist/icons/file/clipboard_plus.js +6 -0
  433. package/dist/icons/file/clipboard_text.js +6 -0
  434. package/dist/icons/file/file.js +6 -0
  435. package/dist/icons/file/file_add.js +6 -0
  436. package/dist/icons/file/file_check.js +6 -0
  437. package/dist/icons/file/file_close.js +6 -0
  438. package/dist/icons/file/file_code.js +6 -0
  439. package/dist/icons/file/file_download.js +6 -0
  440. package/dist/icons/file/file_draft.js +6 -0
  441. package/dist/icons/file/file_minus.js +6 -0
  442. package/dist/icons/file/file_plus.js +6 -0
  443. package/dist/icons/file/file_scan.js +6 -0
  444. package/dist/icons/file/file_shred.js +6 -0
  445. package/dist/icons/file/file_text.js +6 -0
  446. package/dist/icons/file/file_upload.js +6 -0
  447. package/dist/icons/file/folder.js +6 -0
  448. package/dist/icons/file/folder_add.js +6 -0
  449. package/dist/icons/file/folder_arrow.js +6 -0
  450. package/dist/icons/file/folder_check.js +6 -0
  451. package/dist/icons/file/folder_close.js +6 -0
  452. package/dist/icons/file/folder_cloud.js +6 -0
  453. package/dist/icons/file/folder_minus.js +6 -0
  454. package/dist/icons/file/folder_music.js +6 -0
  455. package/dist/icons/file/folder_open.js +6 -0
  456. package/dist/icons/file/folder_plus.js +6 -0
  457. package/dist/icons/file/folder_zip.js +6 -0
  458. package/dist/icons/file/index.js +34 -0
  459. package/dist/icons/file/note.js +6 -0
  460. package/dist/icons/file/note_text.js +6 -0
  461. package/dist/icons/file/pdf.js +6 -0
  462. package/dist/icons/file/photo.js +6 -0
  463. package/dist/icons/finance/bitcoin.js +6 -0
  464. package/dist/icons/finance/credit_card.js +6 -0
  465. package/dist/icons/finance/credit_card_add.js +6 -0
  466. package/dist/icons/finance/credit_card_face.js +6 -0
  467. package/dist/icons/finance/credit_card_outcome.js +6 -0
  468. package/dist/icons/finance/credit_card_scan.js +6 -0
  469. package/dist/icons/finance/credit_card_share.js +6 -0
  470. package/dist/icons/finance/credit_card_slash.js +6 -0
  471. package/dist/icons/finance/currency_exchange.js +6 -0
  472. package/dist/icons/finance/dollar.js +6 -0
  473. package/dist/icons/finance/ethereum.js +6 -0
  474. package/dist/icons/finance/index.js +14 -0
  475. package/dist/icons/finance/paypass.js +6 -0
  476. package/dist/icons/finance/strongbox.js +6 -0
  477. package/dist/icons/finance/wallet.js +6 -0
  478. package/dist/icons/index.js +21 -0
  479. package/dist/icons/layout/block_align_bottom.js +6 -0
  480. package/dist/icons/layout/block_align_center.js +6 -0
  481. package/dist/icons/layout/block_align_left.js +6 -0
  482. package/dist/icons/layout/block_align_middle.js +6 -0
  483. package/dist/icons/layout/block_align_right.js +6 -0
  484. package/dist/icons/layout/block_align_top.js +6 -0
  485. package/dist/icons/layout/block_horizontal.js +6 -0
  486. package/dist/icons/layout/block_vertical.js +6 -0
  487. package/dist/icons/layout/edit_shape.js +6 -0
  488. package/dist/icons/layout/elements.js +6 -0
  489. package/dist/icons/layout/elements_add.js +6 -0
  490. package/dist/icons/layout/elements_filled.js +6 -0
  491. package/dist/icons/layout/elements_masonry.js +6 -0
  492. package/dist/icons/layout/frame.js +6 -0
  493. package/dist/icons/layout/frame_stack.js +6 -0
  494. package/dist/icons/layout/grid.js +6 -0
  495. package/dist/icons/layout/grid_column_three.js +6 -0
  496. package/dist/icons/layout/grid_column_two.js +6 -0
  497. package/dist/icons/layout/grid_dynamic.js +6 -0
  498. package/dist/icons/layout/grid_frame.js +6 -0
  499. package/dist/icons/layout/grid_row_three.js +6 -0
  500. package/dist/icons/layout/grid_row_two.js +6 -0
  501. package/dist/icons/layout/grid_six.js +6 -0
  502. package/dist/icons/layout/grid_small.js +6 -0
  503. package/dist/icons/layout/iframe.js +6 -0
  504. package/dist/icons/layout/index.js +44 -0
  505. package/dist/icons/layout/kanban.js +6 -0
  506. package/dist/icons/layout/layout.js +6 -0
  507. package/dist/icons/layout/list.js +6 -0
  508. package/dist/icons/layout/list_filled.js +11 -0
  509. package/dist/icons/layout/padding.js +6 -0
  510. package/dist/icons/layout/page_break.js +6 -0
  511. package/dist/icons/layout/rotate_left.js +6 -0
  512. package/dist/icons/layout/rotate_right.js +6 -0
  513. package/dist/icons/layout/ruler.js +6 -0
  514. package/dist/icons/layout/segment.js +6 -0
  515. package/dist/icons/layout/select_area.js +6 -0
  516. package/dist/icons/layout/select_boundary.js +6 -0
  517. package/dist/icons/layout/sidebar_left.js +6 -0
  518. package/dist/icons/layout/sidebar_right.js +6 -0
  519. package/dist/icons/layout/slides.js +6 -0
  520. package/dist/icons/layout/slides_horizontal.js +6 -0
  521. package/dist/icons/layout/slides_vertical.js +11 -0
  522. package/dist/icons/layout/stack.js +6 -0
  523. package/dist/icons/layout/text.js +6 -0
  524. package/dist/icons/maps/atlas.js +6 -0
  525. package/dist/icons/maps/compass.js +6 -0
  526. package/dist/icons/maps/direction.js +6 -0
  527. package/dist/icons/maps/direction_angled.js +6 -0
  528. package/dist/icons/maps/globe.js +6 -0
  529. package/dist/icons/maps/globe_slash.js +6 -0
  530. package/dist/icons/maps/index.js +22 -0
  531. package/dist/icons/maps/location.js +6 -0
  532. package/dist/icons/maps/location_slash.js +6 -0
  533. package/dist/icons/maps/map.js +6 -0
  534. package/dist/icons/maps/marker.js +6 -0
  535. package/dist/icons/maps/panorama.js +6 -0
  536. package/dist/icons/maps/pin.js +6 -0
  537. package/dist/icons/maps/pin_arrow.js +6 -0
  538. package/dist/icons/maps/pin_location.js +6 -0
  539. package/dist/icons/maps/pin_plus.js +6 -0
  540. package/dist/icons/maps/pin_question.js +6 -0
  541. package/dist/icons/maps/pin_slash.js +6 -0
  542. package/dist/icons/maps/push_pin.js +6 -0
  543. package/dist/icons/maps/push_pin_filled.js +6 -0
  544. package/dist/icons/maps/push_pin_slash.js +6 -0
  545. package/dist/icons/maps/radar.js +6 -0
  546. package/dist/icons/maps/route.js +6 -0
  547. package/dist/icons/message/bubble.js +6 -0
  548. package/dist/icons/message/bubble_question.js +6 -0
  549. package/dist/icons/message/comment.js +6 -0
  550. package/dist/icons/message/comment_add.js +6 -0
  551. package/dist/icons/message/comment_check.js +6 -0
  552. package/dist/icons/message/comment_close.js +6 -0
  553. package/dist/icons/message/comment_minus.js +6 -0
  554. package/dist/icons/message/comment_text.js +6 -0
  555. package/dist/icons/message/index.js +8 -0
  556. package/dist/icons/misc/advertisement.js +6 -0
  557. package/dist/icons/misc/atom.js +6 -0
  558. package/dist/icons/misc/bone.js +6 -0
  559. package/dist/icons/misc/brightness_high.js +6 -0
  560. package/dist/icons/misc/brightness_low.js +6 -0
  561. package/dist/icons/misc/contrast.js +6 -0
  562. package/dist/icons/misc/crosshairs.js +6 -0
  563. package/dist/icons/misc/crown.js +6 -0
  564. package/dist/icons/misc/footprint.js +6 -0
  565. package/dist/icons/misc/form.js +6 -0
  566. package/dist/icons/misc/funnel.js +6 -0
  567. package/dist/icons/misc/index.js +25 -0
  568. package/dist/icons/misc/infinite.js +6 -0
  569. package/dist/icons/misc/insert_button.js +6 -0
  570. package/dist/icons/misc/light_bulb.js +6 -0
  571. package/dist/icons/misc/moon.js +6 -0
  572. package/dist/icons/misc/nut.js +6 -0
  573. package/dist/icons/misc/planet.js +6 -0
  574. package/dist/icons/misc/plus_thick.js +6 -0
  575. package/dist/icons/misc/pocket.js +6 -0
  576. package/dist/icons/misc/rocket.js +6 -0
  577. package/dist/icons/misc/soup.js +10 -0
  578. package/dist/icons/misc/sun.js +6 -0
  579. package/dist/icons/misc/toy_horse.js +6 -0
  580. package/dist/icons/misc/trophy.js +6 -0
  581. package/dist/icons/misc/watercloset.js +6 -0
  582. package/dist/icons/notifications/alert_circle.js +6 -0
  583. package/dist/icons/notifications/alert_octogon.js +6 -0
  584. package/dist/icons/notifications/alert_triangle.js +6 -0
  585. package/dist/icons/notifications/app_notification.js +6 -0
  586. package/dist/icons/notifications/bell.js +6 -0
  587. package/dist/icons/notifications/bell_alert.js +6 -0
  588. package/dist/icons/notifications/bell_checkmark.js +6 -0
  589. package/dist/icons/notifications/bell_minus.js +6 -0
  590. package/dist/icons/notifications/bell_plus.js +6 -0
  591. package/dist/icons/notifications/bell_ring.js +8 -0
  592. package/dist/icons/notifications/bell_slash.js +6 -0
  593. package/dist/icons/notifications/close_octogon.js +6 -0
  594. package/dist/icons/notifications/index.js +14 -0
  595. package/dist/icons/notifications/information.js +6 -0
  596. package/dist/icons/notifications/minus_octogon.js +6 -0
  597. package/dist/icons/notifications/question_circle.js +6 -0
  598. package/dist/icons/people/group.js +6 -0
  599. package/dist/icons/people/group_add.js +6 -0
  600. package/dist/icons/people/group_remove.js +6 -0
  601. package/dist/icons/people/groups.js +6 -0
  602. package/dist/icons/people/index.js +9 -0
  603. package/dist/icons/people/person.js +6 -0
  604. package/dist/icons/people/person_add.js +6 -0
  605. package/dist/icons/people/person_checkmark.js +6 -0
  606. package/dist/icons/people/person_circle.js +8 -0
  607. package/dist/icons/people/person_remove.js +6 -0
  608. package/dist/icons/phone/index.js +14 -0
  609. package/dist/icons/phone/keypad.js +6 -0
  610. package/dist/icons/phone/phone.js +6 -0
  611. package/dist/icons/phone/phone_add.js +6 -0
  612. package/dist/icons/phone/phone_calling.js +6 -0
  613. package/dist/icons/phone/phone_check.js +6 -0
  614. package/dist/icons/phone/phone_close.js +6 -0
  615. package/dist/icons/phone/phone_decline.js +6 -0
  616. package/dist/icons/phone/phone_end.js +6 -0
  617. package/dist/icons/phone/phone_forwarded.js +6 -0
  618. package/dist/icons/phone/phone_hash.js +6 -0
  619. package/dist/icons/phone/phone_incoming.js +6 -0
  620. package/dist/icons/phone/phone_missed.js +6 -0
  621. package/dist/icons/phone/phone_outgoing.js +6 -0
  622. package/dist/icons/phone/phone_pause.js +6 -0
  623. package/dist/icons/phone/phone_slash.js +6 -0
  624. package/dist/icons/phone/voicemail.js +6 -0
  625. package/dist/icons/security/index.js +11 -0
  626. package/dist/icons/security/key.js +6 -0
  627. package/dist/icons/security/key_slash.js +6 -0
  628. package/dist/icons/security/lock.js +6 -0
  629. package/dist/icons/security/lock_circle.js +6 -0
  630. package/dist/icons/security/lock_open.js +6 -0
  631. package/dist/icons/security/lock_slash.js +6 -0
  632. package/dist/icons/security/shield.js +6 -0
  633. package/dist/icons/security/shield_checkmark.js +6 -0
  634. package/dist/icons/security/shield_lock.js +6 -0
  635. package/dist/icons/security/shield_slash.js +6 -0
  636. package/dist/icons/security/verified.js +6 -0
  637. package/dist/icons/shopping/basket.js +6 -0
  638. package/dist/icons/shopping/cart.js +6 -0
  639. package/dist/icons/shopping/coupon.js +6 -0
  640. package/dist/icons/shopping/coupon_cut.js +6 -0
  641. package/dist/icons/shopping/delivery.js +6 -0
  642. package/dist/icons/shopping/discount.js +6 -0
  643. package/dist/icons/shopping/gift.js +6 -0
  644. package/dist/icons/shopping/gift_bag.js +6 -0
  645. package/dist/icons/shopping/index.js +14 -0
  646. package/dist/icons/shopping/inventory.js +6 -0
  647. package/dist/icons/shopping/point_of_sale.js +6 -0
  648. package/dist/icons/shopping/shirt.js +6 -0
  649. package/dist/icons/shopping/tag.js +6 -0
  650. package/dist/icons/shopping/tag_diagonal.js +6 -0
  651. package/dist/icons/shopping/tote.js +6 -0
  652. package/dist/icons/special/index.js +4 -0
  653. package/dist/icons/special/upload_audio.js +11 -0
  654. package/dist/icons/special/upload_file.js +6 -0
  655. package/dist/icons/special/upload_image.js +8 -0
  656. package/dist/icons/special/upload_video.js +9 -0
  657. package/dist/icons/symbols/at.js +6 -0
  658. package/dist/icons/symbols/cc.js +6 -0
  659. package/dist/icons/symbols/cmd.js +6 -0
  660. package/dist/icons/symbols/facebook.js +6 -0
  661. package/dist/icons/symbols/google.js +9 -0
  662. package/dist/icons/symbols/hash.js +6 -0
  663. package/dist/icons/symbols/index.js +9 -0
  664. package/dist/icons/symbols/instagram.js +18 -0
  665. package/dist/icons/symbols/messenger.js +12 -0
  666. package/dist/icons/symbols/twitter.js +6 -0
  667. package/dist/icons/technology/battery.js +6 -0
  668. package/dist/icons/technology/battery_100.js +6 -0
  669. package/dist/icons/technology/battery_20.js +6 -0
  670. package/dist/icons/technology/battery_40.js +6 -0
  671. package/dist/icons/technology/battery_60.js +6 -0
  672. package/dist/icons/technology/battery_80.js +6 -0
  673. package/dist/icons/technology/battery_charging.js +6 -0
  674. package/dist/icons/technology/battery_slash.js +6 -0
  675. package/dist/icons/technology/devices.js +6 -0
  676. package/dist/icons/technology/floppy_disk.js +6 -0
  677. package/dist/icons/technology/index.js +17 -0
  678. package/dist/icons/technology/iphone.js +6 -0
  679. package/dist/icons/technology/laptop.js +6 -0
  680. package/dist/icons/technology/mobile.js +6 -0
  681. package/dist/icons/technology/monitor.js +6 -0
  682. package/dist/icons/technology/server.js +6 -0
  683. package/dist/icons/technology/sim_card.js +6 -0
  684. package/dist/icons/technology/usb_stick.js +6 -0
  685. package/dist/icons/text/align_center.js +6 -0
  686. package/dist/icons/text/align_justified.js +6 -0
  687. package/dist/icons/text/align_left.js +6 -0
  688. package/dist/icons/text/align_right.js +6 -0
  689. package/dist/icons/text/indent_decrease.js +6 -0
  690. package/dist/icons/text/indent_increase.js +6 -0
  691. package/dist/icons/text/index.js +10 -0
  692. package/dist/icons/text/list_ordered.js +6 -0
  693. package/dist/icons/text/list_unordered.js +6 -0
  694. package/dist/icons/text/quote.js +6 -0
  695. package/dist/icons/text/table.js +6 -0
  696. package/dist/icons/time/alarm.js +6 -0
  697. package/dist/icons/time/alarm_checkmark.js +6 -0
  698. package/dist/icons/time/alarm_minus.js +6 -0
  699. package/dist/icons/time/alarm_plus.js +6 -0
  700. package/dist/icons/time/alarm_slash.js +6 -0
  701. package/dist/icons/time/alarm_snooze.js +6 -0
  702. package/dist/icons/time/calendar.js +6 -0
  703. package/dist/icons/time/calendar_add.js +6 -0
  704. package/dist/icons/time/calendar_checkmark.js +6 -0
  705. package/dist/icons/time/calendar_close.js +6 -0
  706. package/dist/icons/time/calendar_dates.js +6 -0
  707. package/dist/icons/time/calendar_minus.js +6 -0
  708. package/dist/icons/time/calendar_plus.js +6 -0
  709. package/dist/icons/time/calendar_scroll.js +8 -0
  710. package/dist/icons/time/clock.js +6 -0
  711. package/dist/icons/time/clock_history.js +6 -0
  712. package/dist/icons/time/index.js +19 -0
  713. package/dist/icons/time/stopwatch.js +6 -0
  714. package/dist/icons/time/timer.js +6 -0
  715. package/dist/icons/time/watch.js +6 -0
  716. package/dist/index.js +3 -0
  717. package/dist/types/attributes.js +1 -0
  718. package/dist/types/index.js +1 -0
  719. package/dist/utils/date.js +98 -0
  720. package/dist/utils/function.js +1 -0
  721. package/dist/utils/index.js +2 -0
  722. package/package.json +5 -4
  723. package/src/components/editor/editor.tsx +4 -0
  724. package/src/components/editor/plugins/text.tsx +16 -7
  725. package/tsconfig.json +1 -1
@@ -0,0 +1,202 @@
1
+ import React from 'react';
2
+ import styled from 'styled-components';
3
+ import { Box, Checkbox, P } from 'components';
4
+ const Dropdown = ({ checkbox, children, closeOnChange = true, closeOnBlur = true, defaultValue = '', disabled = false, hasArrow, maintainState = true, multiple, offset = [0, 16], onChange, open: openDirection = 'right', options, sx, trigger, ...rest }) => {
5
+ const id = React.useId();
6
+ const wrapperRef = React.useRef(null);
7
+ const optionsRef = React.useRef(null);
8
+ const [open, setOpen] = React.useState(false);
9
+ const [selected, setSelected] = React.useState(() => defaultValue ? defaultValue : multiple ? [] : '');
10
+ React.useEffect(() => {
11
+ if (disabled) {
12
+ setOpen(false);
13
+ }
14
+ }, [disabled]);
15
+ const handleOpen = () => {
16
+ if (disabled) {
17
+ return;
18
+ }
19
+ setOpen((prev) => !prev);
20
+ };
21
+ const handleBlur = (event) => {
22
+ if (closeOnBlur &&
23
+ wrapperRef?.current &&
24
+ !wrapperRef?.current?.contains(event.relatedTarget)) {
25
+ setOpen(false);
26
+ }
27
+ };
28
+ const handleChangeSingle = (event) => {
29
+ event.stopPropagation();
30
+ const value = event.target.getAttribute('data-value') ?? '';
31
+ if (selected !== value) {
32
+ setSelected(value);
33
+ }
34
+ else {
35
+ setSelected('');
36
+ }
37
+ if (closeOnChange) {
38
+ setOpen(false);
39
+ }
40
+ if (onChange)
41
+ onChange(event);
42
+ };
43
+ const handleChangeMultiple = (event) => {
44
+ event.stopPropagation();
45
+ const value = event.target.getAttribute('data-value') ?? '';
46
+ if (Array.isArray(selected) && selected.includes(value)) {
47
+ setSelected((prev) => prev.filter((item) => item !== value));
48
+ }
49
+ else {
50
+ setSelected((prev) => [value, ...prev]);
51
+ }
52
+ if (closeOnChange) {
53
+ setOpen(false);
54
+ }
55
+ if (onChange)
56
+ onChange(event);
57
+ };
58
+ const handleChange = multiple ? handleChangeMultiple : handleChangeSingle;
59
+ const isSelected = (value) => maintainState && (multiple ? selected.includes(value) : value === selected);
60
+ /**
61
+ * allow for the API to accept children as options
62
+ * or options prop
63
+ */
64
+ let dropdownOptions = null;
65
+ if (children) {
66
+ dropdownOptions = React.Children.map(children, (child) => {
67
+ let props;
68
+ if (React.isValidElement(child)) {
69
+ // eslint ignore is okay bc deconstruction removes field
70
+ // eslint-disable-next-line
71
+ const { onClick, ...possibleProps } = child.props;
72
+ props = possibleProps;
73
+ return (React.createElement(Option, { key: props.value, checkbox: !!checkbox, onClick: handleChange, selected: isSelected(props.value), ...props }));
74
+ }
75
+ else {
76
+ return null;
77
+ }
78
+ });
79
+ }
80
+ if (options) {
81
+ dropdownOptions = options.map((option, index) => {
82
+ if (typeof option === 'string' && option === 'break')
83
+ return React.createElement(Spacer, { key: `${id}-spacer-${index}` });
84
+ return (React.createElement(Option, { key: option.value, checkbox: !!checkbox, onClick: handleChange, selected: isSelected(option.value), ...option }));
85
+ });
86
+ }
87
+ return (React.createElement(Wrapper, { "$sx": sx, tabIndex: 0, ref: wrapperRef, onBlurCapture: handleBlur, ...rest },
88
+ React.cloneElement(trigger, typeof trigger.type === 'string' ||
89
+ trigger.type?.displayName !== 'Button'
90
+ ? { onClick: handleOpen }
91
+ : { isDropdownOpen: open, onClick: handleOpen }),
92
+ open && (React.createElement(Container, { "$hasArrow": hasArrow, "$offset": offset, "$openDirection": openDirection, ref: optionsRef }, dropdownOptions))));
93
+ };
94
+ const Wrapper = styled.div `
95
+ position: relative;
96
+ display: block;
97
+ outline: none;
98
+ ${({ $sx }) => ($sx ? $sx : '')}
99
+ `;
100
+ const Container = styled.div `
101
+ z-index: 1;
102
+ background-color: var(--color-white);
103
+ position: absolute;
104
+ width: max-content;
105
+ z-index: 100;
106
+ outline: none;
107
+ cursor: pointer;
108
+ box-shadow: var(--elevation-2);
109
+ border-radius: 8px;
110
+
111
+ & > div:first-of-type {
112
+ border-radius: 8px 8px 0px 0px;
113
+ }
114
+
115
+ & > div:last-of-type {
116
+ border-radius: 0px 0px 8px 8px;
117
+ }
118
+
119
+ ${({ $openDirection }) => ($openDirection === 'left' ? 'right: 100%;' : '')}
120
+
121
+ ${({ $hasArrow, $offset }) => $hasArrow
122
+ ? `
123
+ &:before {
124
+ content: '';
125
+ position: absolute;
126
+ width: 15px;
127
+ height: 15px;
128
+ transform: rotate(45deg) translate(${($offset?.[0] || 0) + 8}px, ${($offset?.[1] || 0) - 32}px);
129
+ background-color: var(--color-white);
130
+ }
131
+ `
132
+ : ''}
133
+ ${({ $offset }) => $offset ? `transform: translate(${$offset[0]}px, ${$offset[1]}px);` : ''}
134
+ `;
135
+ const Option = ({ checkbox, disabled, icon, label, onClick, selected, sublabel, sx, value, }) => {
136
+ return (React.createElement(OptionWrapper, { "data-value": value, onClick: !disabled ? onClick : undefined, "$disabled": disabled, "$hasCheckbox": !!checkbox, "$hasSublabel": !!sublabel, "$selected": selected, "$sx": sx },
137
+ checkbox ? React.createElement(Checkbox, { selected: selected }) : icon,
138
+ React.createElement(Box, { "$dir": "column", "$display": "flex" },
139
+ label && (React.createElement(P, { "$color": "grey-4", "$fontSize": 14, "$lineHeight": 20, "$mediumBold": true, "$textClampLines": 1 }, label)),
140
+ sublabel && (React.createElement(P, { "$color": "grey-4", "$fontSize": 12, "$lineHeight": 16, "$textClampLines": 1 }, sublabel)))));
141
+ };
142
+ Option.displayName = 'Dropdown.Option';
143
+ Dropdown.Option = Option;
144
+ const OptionWrapper = styled.div `
145
+ position: relative;
146
+ z-index: 1;
147
+ padding: ${({ $hasSublabel }) => ($hasSublabel ? 10 : 12)}px 16px;
148
+ user-select: none;
149
+ display: flex;
150
+ align-items: center;
151
+ gap: 8px;
152
+
153
+ & > * {
154
+ pointer-events: none;
155
+ }
156
+
157
+ ${({ $disabled, $selected, $hasCheckbox }) => {
158
+ if ($disabled) {
159
+ return `cursor: initial;
160
+ color: var(--color-grey-7);
161
+ background-color: var(--color-grey-10);`;
162
+ }
163
+ if ($hasCheckbox) {
164
+ return `&:hover {
165
+ background-color: var(--color-grey-10);
166
+ }`;
167
+ }
168
+ if ($selected) {
169
+ return `
170
+ background-color: var(--color-grey-9);
171
+ &:active {
172
+ background-color: var(--color-grey-8);
173
+ }`;
174
+ }
175
+ return `
176
+ &:hover {
177
+ background-color: var(--color-grey-10);
178
+ }
179
+
180
+ &:active {
181
+ background-color: var(--color-grey-8);
182
+ }
183
+ `;
184
+ }}
185
+ ${({ $sx }) => ($sx ? $sx : '')}
186
+ `;
187
+ const Spacer = ({ sx }) => {
188
+ return React.createElement(SpacerWrapper, { "$sx": sx });
189
+ };
190
+ Spacer.displayName = 'Dropdown.Spacer';
191
+ Dropdown.Spacer = Spacer;
192
+ const SpacerWrapper = styled.div `
193
+ width: 100%;
194
+ height: 1px;
195
+ background-color: var(--color-grey-8);
196
+
197
+ &:hover {
198
+ appearance: none;
199
+ }
200
+ ${({ $sx }) => ($sx ? $sx : '')}
201
+ `;
202
+ export { Dropdown };
@@ -0,0 +1,99 @@
1
+ import React from 'react';
2
+ import { Avatar, Button } from 'components';
3
+ import { Eye } from 'icons';
4
+ import { Dropdown } from './dropdown';
5
+ const meta = {
6
+ title: 'Actions/Dropdown',
7
+ args: {
8
+ checkbox: true,
9
+ closeOnBlur: true,
10
+ closeOnChange: true,
11
+ defaultValue: '',
12
+ hasArrow: true,
13
+ multiple: true,
14
+ maintainState: true,
15
+ open: 'right',
16
+ },
17
+ argTypes: {
18
+ checkbox: {
19
+ type: 'boolean',
20
+ },
21
+ closeOnBlur: {
22
+ type: 'boolean',
23
+ },
24
+ closeOnChange: {
25
+ type: 'boolean',
26
+ },
27
+ defaultValue: {
28
+ type: 'string',
29
+ },
30
+ hasArrow: {
31
+ type: 'boolean',
32
+ },
33
+ maintainState: {
34
+ type: 'boolean',
35
+ },
36
+ multiple: {
37
+ type: 'boolean',
38
+ },
39
+ open: {
40
+ options: ['left', 'right'],
41
+ control: {
42
+ type: 'radio',
43
+ },
44
+ },
45
+ trigger: {
46
+ control: false,
47
+ },
48
+ },
49
+ parameters: {
50
+ backgrounds: {
51
+ default: 'dark',
52
+ },
53
+ layout: 'centered',
54
+ },
55
+ };
56
+ export const Default = (args) => (React.createElement(Dropdown, { ...args, options: [
57
+ {
58
+ label: 'Dropdown Option 1',
59
+ sublabel: 'option sublabel',
60
+ value: 'option1',
61
+ },
62
+ {
63
+ label: 'Dropdown 2',
64
+ sublabel: 'option sublabel',
65
+ value: 'option2',
66
+ },
67
+ {
68
+ label: 'Dropdown 3',
69
+ value: 'option3',
70
+ },
71
+ {
72
+ label: 'Dropdown 4',
73
+ value: 'option4',
74
+ },
75
+ {
76
+ label: 'Dropdown 5',
77
+ sublabel: 'option sublabel',
78
+ value: 'option5',
79
+ },
80
+ {
81
+ icon: React.createElement(Eye, null),
82
+ label: 'Dropdown 6',
83
+ sublabel: 'option sublabel',
84
+ value: 'option6',
85
+ },
86
+ {
87
+ icon: (React.createElement(Avatar, { image: "https://f005.backblazeb2.com/file/sr-platform/avatar.jpg", size: 16 })),
88
+ label: 'Dropdown 7',
89
+ value: 'option7',
90
+ },
91
+ 'break',
92
+ {
93
+ disabled: true,
94
+ label: 'Disabled Option',
95
+ sublabel: 'option sublabel',
96
+ value: 'option8',
97
+ },
98
+ ], trigger: React.createElement(Button, null, "Trigger") }));
99
+ export default meta;
@@ -0,0 +1 @@
1
+ export { Dropdown } from './dropdown';
@@ -0,0 +1,5 @@
1
+ export { Button } from './button';
2
+ export { Dropdown } from './dropdown';
3
+ export { Rate } from './rate';
4
+ export { Switch } from './switch';
5
+ export { Upload } from './upload';
@@ -0,0 +1 @@
1
+ export { Rate } from './rate';
@@ -0,0 +1,45 @@
1
+ import React from 'react';
2
+ import styled from 'styled-components';
3
+ const SM_WIDTH = 98;
4
+ const LG_WIDTH = 147;
5
+ const SM_HEIGHT = 16;
6
+ const LG_HEIGHT = 24;
7
+ export const Rate = ({ isRateable = true, onRate, percent, size, userRating, }) => {
8
+ const ref = React.useRef(null);
9
+ const [hoveredRating, setHoveredRating] = React.useState();
10
+ const width = size === 'small' ? SM_WIDTH : LG_WIDTH;
11
+ const height = size === 'small' ? SM_HEIGHT : LG_HEIGHT;
12
+ const displayPercent = hoveredRating
13
+ ? hoveredRating * 20
14
+ : userRating
15
+ ? userRating * 20
16
+ : percent;
17
+ const handleMouseOver = (event) => {
18
+ if (isRateable && ref?.current) {
19
+ const elementWidth = size === 'small' ? SM_WIDTH : LG_WIDTH;
20
+ const position = event.clientX - ref.current.offsetLeft;
21
+ const star = Math.floor((5 * position) / elementWidth) + 1;
22
+ setHoveredRating(star);
23
+ }
24
+ };
25
+ const handleMouseOut = () => {
26
+ setHoveredRating(undefined);
27
+ };
28
+ const handleClick = () => {
29
+ if (isRateable && onRate && hoveredRating !== undefined) {
30
+ onRate(hoveredRating);
31
+ }
32
+ };
33
+ return (React.createElement("div", { ref: ref },
34
+ React.createElement(SVG, { width: width, height: height, onMouseOver: handleMouseOver, onMouseOut: handleMouseOut, onClick: handleClick, viewBox: "0 0 98 16", xmlns: "http://www.w3.org/2000/svg" },
35
+ React.createElement("path", { d: "M13.1437 16L8.61569 13.5529C8.55281 13.5529 8.48992 13.4902 8.42703 13.4902C8.36414 13.4902 8.30125 13.5529 8.23837 13.5529L3.64752 15.9373C3.58463 16 3.52174 16 3.39597 16C3.33308 16 3.27019 16 3.2073 15.9373C3.14441 15.8745 3.08153 15.8118 3.08153 15.749C3.08153 15.6863 3.01864 15.6235 3.08153 15.5608L3.96196 10.4784C3.96196 10.4157 3.96196 10.3529 3.89907 10.2902C3.89907 10.2275 3.83619 10.1647 3.83619 10.102L0.125777 6.52549C0.0628883 6.46275 0 6.4 0 6.33726C0 6.21177 0 6.14902 0 6.08628C0.0628883 6.02353 0.0628883 5.96079 0.125777 5.89804C0.188665 5.83529 0.251553 5.83529 0.37733 5.83529L5.47128 5.08235C5.53417 5.08235 5.59706 5.01961 5.65995 5.01961C5.65995 4.95686 5.72283 4.89412 5.78572 4.83137L8.0497 0.25098C8.11259 0.188235 8.11259 0.12549 8.17548 0.0627451C8.23837 0.0627451 8.36414 0 8.42703 0C8.48992 0 8.55281 0.0627451 8.61569 0.0627451C8.67858 0.12549 8.74147 0.188235 8.80436 0.25098L11.0683 4.89412C11.0683 4.89412 11.1312 4.95686 11.1941 5.01961C11.257 5.01961 11.3199 5.08235 11.3828 5.08235L16.4767 5.83529C16.5396 5.83529 16.6025 5.89804 16.6654 5.89804C16.7283 5.96079 16.7912 6.02353 16.7912 6.08628C16.8541 6.14902 16.8541 6.27451 16.7912 6.33726C16.7912 6.4 16.7283 6.46275 16.7283 6.52549L13.0179 10.102C12.955 10.1647 12.8921 10.2275 12.8921 10.2902C12.8921 10.3529 12.8921 10.4157 12.8921 10.4784L13.7725 15.5608C13.7725 15.6235 13.7725 15.6863 13.7096 15.749C13.7096 15.8118 13.6468 15.8745 13.5839 15.9373C13.521 16 13.4581 16 13.3952 16C13.3323 16 13.2065 16 13.1437 16Z M33.711 16L29.1201 13.5529C29.0572 13.5529 28.9943 13.4902 28.9315 13.4902C28.8686 13.4902 28.8057 13.5529 28.7428 13.5529L24.2148 15.9373C24.1519 16 24.0262 16 23.9633 16C23.9004 16 23.8375 15.9373 23.7746 15.9373C23.7117 15.8745 23.6488 15.8118 23.6488 15.749C23.5859 15.6863 23.5859 15.6235 23.5859 15.498L24.4664 10.4157C24.4664 10.3529 24.4664 10.2902 24.4664 10.2275C24.4664 10.1647 24.4035 10.102 24.3406 10.102L20.6931 6.46275C20.6302 6.4 20.5673 6.33725 20.5673 6.27451C20.5673 6.21176 20.5673 6.14902 20.5673 6.08628C20.5673 6.02353 20.6302 5.96079 20.6931 5.89804C20.756 5.83529 20.8189 5.83529 20.8818 5.77255L26.0386 5.08235C26.1015 5.01961 26.1644 5.01961 26.1644 4.95686C26.2273 4.95686 26.2901 4.89412 26.2901 4.83137L28.617 0.25098C28.617 0.12549 28.6799 0.12549 28.7428 0.0627451C28.8057 -7.45058e-09 28.8686 0 28.9315 0C29.0572 0 29.1201 -7.45058e-09 29.183 0.0627451C29.2459 0.12549 29.3088 0.12549 29.3088 0.25098L31.6356 4.83137C31.6356 4.89412 31.6985 4.95686 31.7614 5.01961C31.7614 5.01961 31.8243 5.08235 31.8872 5.08235L37.044 5.83529C37.1069 5.83529 37.1698 5.83529 37.2327 5.89804C37.2956 5.96079 37.2956 6.02353 37.3585 6.08628C37.3585 6.14902 37.3585 6.21176 37.3585 6.27451C37.3585 6.4 37.2956 6.46275 37.2327 6.52549L33.5223 10.102C33.5223 10.1647 33.4594 10.1647 33.4594 10.2275C33.3965 10.2902 33.3965 10.3529 33.4594 10.4784L34.277 15.5608C34.3398 15.6235 34.277 15.6863 34.277 15.749C34.277 15.8118 34.2141 15.8745 34.1512 15.9373C34.0883 16 34.0254 16 33.9625 16C33.8367 16 33.7738 16 33.711 16Z M53.5187 16L48.9279 13.5529C48.865 13.5529 48.8021 13.4902 48.7392 13.4902C48.6763 13.4902 48.6134 13.5529 48.5505 13.5529L44.0226 15.9373C43.9597 16 43.8968 16 43.8339 16C43.7081 16 43.6452 16 43.5824 15.9373C43.5195 15.8745 43.5195 15.8118 43.4566 15.749C43.4566 15.6863 43.4566 15.6235 43.4566 15.5608L44.337 10.4784C44.337 10.4157 44.337 10.3529 44.2741 10.2902C44.2741 10.2275 44.2741 10.1647 44.2112 10.102L40.5008 6.52549C40.4379 6.46275 40.4379 6.4 40.375 6.33726C40.375 6.21177 40.375 6.14902 40.375 6.08628C40.4379 6.02353 40.4379 5.96079 40.5008 5.89804C40.5637 5.83529 40.6266 5.83529 40.7524 5.83529L45.8463 5.08235C45.9092 5.08235 45.9721 5.01961 46.035 5.01961C46.0979 4.95686 46.0979 4.89412 46.1608 4.83137L48.4248 0.25098C48.4876 0.188235 48.4876 0.12549 48.5505 0.0627451C48.6134 0.0627451 48.7392 0 48.8021 0C48.865 0 48.9279 0.0627451 48.9907 0.0627451C49.0536 0.12549 49.1165 0.188235 49.1794 0.25098L51.4434 4.89412C51.4434 4.89412 51.5063 4.95686 51.5692 5.01961C51.6321 5.01961 51.6949 5.08235 51.7578 5.08235L56.8518 5.83529C56.9147 5.83529 56.9776 5.89804 57.0404 5.89804C57.1033 5.96079 57.1662 6.02353 57.1662 6.08628C57.1662 6.14902 57.2291 6.27451 57.1662 6.33726C57.1662 6.4 57.1033 6.46275 57.1033 6.52549L53.3929 10.102C53.33 10.1647 53.2671 10.2275 53.2671 10.2902C53.2671 10.3529 53.2671 10.4157 53.2671 10.4784L54.0847 15.5608C54.0847 15.6235 54.0847 15.6863 54.0847 15.749C54.0218 15.8118 53.9589 15.8745 53.896 15.9373C53.896 15.9373 53.7703 16 53.7074 16C53.6445 16 53.5816 16 53.5187 16Z M74.0858 16L69.4949 13.5529C69.4321 13.5529 69.3692 13.4902 69.3063 13.4902C69.2434 13.4902 69.1805 13.5529 69.1176 13.5529L64.5268 15.9373C64.4639 16 64.401 16 64.3381 16C64.2752 16 64.1494 15.9373 64.0865 15.9373C64.0865 15.8745 64.0237 15.8118 63.9608 15.749C63.9608 15.6863 63.9608 15.6235 63.9608 15.498L64.8412 10.4157C64.8412 10.3529 64.8412 10.2902 64.8412 10.2275C64.7783 10.1647 64.7783 10.102 64.7154 10.102L61.005 6.52549C60.9421 6.46275 60.9421 6.4 60.8792 6.33726C60.8792 6.21177 60.8792 6.14902 60.8792 6.08628C60.9421 6.02353 60.9421 5.96079 61.005 5.89804C61.0679 5.83529 61.1308 5.83529 61.2566 5.83529L66.3505 5.08235C66.4134 5.08235 66.4763 5.01961 66.5392 5.01961C66.6021 4.95686 66.6021 4.89412 66.665 4.83137L68.9289 0.25098C68.9918 0.188235 68.9918 0.12549 69.0547 0.0627451C69.1176 0.0627451 69.2434 0 69.3063 0C69.3692 0 69.4321 0.0627451 69.4949 0.0627451C69.5578 0.12549 69.6207 0.188235 69.6836 0.25098L71.9476 4.89412C71.9476 4.89412 72.0105 4.95686 72.0734 5.01961C72.1362 5.01961 72.1991 5.08235 72.262 5.08235L77.356 5.83529C77.4189 5.83529 77.4818 5.89804 77.5446 5.89804C77.6075 5.96079 77.6704 6.02353 77.6704 6.08628C77.7333 6.14902 77.7333 6.27451 77.6704 6.33726C77.6704 6.4 77.6075 6.46275 77.6075 6.52549L73.8971 10.102C73.8342 10.1647 73.7713 10.2275 73.7713 10.2902C73.7713 10.3529 73.7713 10.4157 73.7713 10.4784L74.6518 15.5608C74.6518 15.6235 74.6518 15.6863 74.5889 15.749C74.5889 15.8118 74.526 15.8745 74.4631 15.9373C74.4002 15.9373 74.3373 16 74.2744 16C74.2116 16 74.1487 16 74.0858 16Z M94.0831 16L89.5551 13.5529C89.4922 13.5529 89.4294 13.4902 89.3665 13.4902C89.3036 13.4902 89.2407 13.5529 89.1778 13.5529L84.587 15.9373C84.5241 16 84.4612 16 84.3983 16C84.2725 16 84.2096 15.9373 84.1468 15.9373C84.0839 15.8745 84.0839 15.8118 84.021 15.749C84.021 15.6863 84.021 15.6235 84.021 15.498L84.9014 10.4157C84.9014 10.3529 84.9014 10.2902 84.8385 10.2275C84.8385 10.1647 84.8385 10.102 84.7756 10.102L81.0652 6.46275C81.0023 6.4 81.0023 6.33725 80.9395 6.27451C80.9395 6.21176 80.9395 6.14902 80.9395 6.08628C81.0023 6.02353 81.0023 5.96079 81.0652 5.89804C81.1281 5.83529 81.191 5.83529 81.3168 5.77255L86.4107 5.08235C86.4736 5.01961 86.5365 5.01961 86.5994 4.95686C86.6623 4.95686 86.6623 4.89412 86.7252 4.83137L88.9892 0.25098C89.052 0.12549 89.1149 0.12549 89.1778 0.0627451C89.2407 -7.45058e-09 89.3036 0 89.3665 0C89.4294 0 89.4922 -7.45058e-09 89.5551 0.0627451C89.618 0.12549 89.6809 0.12549 89.7438 0.25098L92.0078 4.83137C92.0078 4.89412 92.0707 4.95686 92.1336 5.01961C92.1965 5.01961 92.2593 5.08235 92.3222 5.08235L97.4162 5.83529C97.4791 5.83529 97.542 5.83529 97.6048 5.89804C97.6677 5.96079 97.7306 6.02353 97.7306 6.08628C97.7935 6.14902 97.7935 6.21176 97.7306 6.27451C97.7306 6.4 97.6677 6.46275 97.6677 6.52549L93.9573 10.102C93.8944 10.1647 93.8315 10.1647 93.8315 10.2275C93.8315 10.2902 93.8315 10.3529 93.8315 10.4784L94.712 15.5608C94.712 15.6235 94.712 15.6863 94.6491 15.749C94.6491 15.8118 94.5862 15.8745 94.5233 15.9373C94.4604 16 94.3975 16 94.3346 16C94.2718 16 94.146 16 94.0831 16Z", stroke: "#D0D2D6", strokeWidth: "0.42154" }),
36
+ React.createElement("defs", null,
37
+ React.createElement("linearGradient", { id: "MyGradient" },
38
+ React.createElement("stop", { offset: "0%", stopColor: "#FFB51F" }),
39
+ React.createElement("stop", { offset: `${displayPercent}%`, stopColor: "#FF870A" }),
40
+ React.createElement("stop", { offset: `${displayPercent}%`, stopColor: "#FFFFFF" }))))));
41
+ };
42
+ const SVG = styled.svg `
43
+ fill: url(#MyGradient);
44
+ cursor: ${({ $isRateable }) => ($isRateable ? 'pointer' : 'initial')};
45
+ `;
@@ -0,0 +1,29 @@
1
+ import React from 'react';
2
+ import { Rate } from './rate';
3
+ const meta = {
4
+ title: 'Actions/Rate',
5
+ parameters: {
6
+ layout: 'centered',
7
+ },
8
+ };
9
+ const Story = (args) => {
10
+ const [userRating, setUserRating] = React.useState();
11
+ const handleRate = (rating) => setUserRating(rating);
12
+ return React.createElement(Rate, { onRate: handleRate, userRating: userRating, ...args });
13
+ };
14
+ export const Default = Story.bind({});
15
+ Default.argTypes = {
16
+ percent: {
17
+ type: 'number',
18
+ control: 'range',
19
+ },
20
+ size: {
21
+ options: ['small', 'large'],
22
+ control: 'select',
23
+ },
24
+ };
25
+ Default.args = {
26
+ percent: 100,
27
+ size: 'large',
28
+ };
29
+ export default meta;
@@ -0,0 +1 @@
1
+ export { Switch } from './switch';
@@ -0,0 +1,71 @@
1
+ import React from 'react';
2
+ import styled from 'styled-components';
3
+ export const Switch = ({ children, disabled, onChange, value, }) => {
4
+ return (React.createElement(Wrapper, null, React.Children.map(children, (child) => {
5
+ if (!React.isValidElement(child))
6
+ return;
7
+ return React.cloneElement(child, {
8
+ ...child.props,
9
+ disabled: disabled,
10
+ active: value === child.props?.value,
11
+ key: child.key,
12
+ onClick: onChange,
13
+ });
14
+ })));
15
+ };
16
+ const Wrapper = styled.div `
17
+ display: flex;
18
+ flex-flow: row nowrap;
19
+ padding: 6px;
20
+ border-radius: 8px;
21
+ border: 1px solid var(--color-grey-8);
22
+ background-color: var(--color-grey-10);
23
+ `;
24
+ const SwitchItem = ({ active, children, disabled, icon, onClick, value, }) => {
25
+ return (React.createElement(Item, { "$active": !!active, disabled: disabled, onClick: onClick, value: value },
26
+ icon && React.cloneElement(icon, { size: 24, color: 'grey-6' }),
27
+ children));
28
+ };
29
+ const Item = styled.button `
30
+ width: 154px;
31
+ height: 36px;
32
+ display: flex;
33
+ justify-content: center;
34
+ align-items: center;
35
+ gap: 8px;
36
+ font-family: Inter;
37
+ font-weight: 500;
38
+ font-size: 16px;
39
+ line-height: 24px;
40
+ border: none;
41
+ cursor: pointer;
42
+ letter-spacing: -0.176px;
43
+
44
+ svg {
45
+ pointer-events: none;
46
+ }
47
+
48
+ ${({ $active }) => $active
49
+ ? `
50
+ color: var(--color-primary-blue-2);
51
+ background-color: var(--color-white);
52
+ border-radius: 4px;
53
+ box-shadow: var(--elevation-1);
54
+
55
+ &:disabled {
56
+ color: var(--color-grey-7);
57
+ background-color: var(--color-grey-10);
58
+ border: 1px solid var(--color-grey-8);
59
+ box-shadow: none;
60
+ }`
61
+ : `
62
+ color: var(--color-grey-6);`}
63
+
64
+ &:disabled {
65
+ color: var(--color-grey-7);
66
+ cursor: initial;
67
+ background-color: var(--color-grey-10);
68
+ }
69
+ `;
70
+ Switch.Item = SwitchItem;
71
+ SwitchItem.displayName = 'Switch.Item';
@@ -0,0 +1,25 @@
1
+ import React from 'react';
2
+ import { Switch } from './switch';
3
+ import { Moon, Sun, Folder } from 'icons';
4
+ const meta = {
5
+ title: 'Actions/Switch',
6
+ parameters: {
7
+ layout: 'centered',
8
+ },
9
+ };
10
+ const Story = (args) => {
11
+ const [value, setValue] = React.useState('value1');
12
+ const handleChange = (event) => {
13
+ setValue(event.target.value);
14
+ };
15
+ return (React.createElement(Switch, { ...args, onChange: handleChange, value: value },
16
+ React.createElement(Switch.Item, { icon: React.createElement(Moon, null), value: "value1" }, "Upload"),
17
+ React.createElement(Switch.Item, { icon: React.createElement(Sun, null), value: "value2" }, "Default"),
18
+ React.createElement(Switch.Item, { icon: React.createElement(Folder, null), value: "value3" }, "Another")));
19
+ };
20
+ export const Default = Story.bind({});
21
+ Default.argTypes = {};
22
+ Default.args = {
23
+ disabled: false,
24
+ };
25
+ export default meta;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,56 @@
1
+ import React from 'react';
2
+ import styled from 'styled-components';
3
+ import { Box, P } from 'components';
4
+ export const Toggle = ({ checked, label, onChange }) => {
5
+ const status = checked === undefined ? 'indeterminate' : checked ? 'checked' : 'unchecked';
6
+ return (React.createElement(Box, { "$align": "center", "$gap": 8 },
7
+ React.createElement(Wrapper, { as: "label", onClick: onChange },
8
+ React.createElement(Input, { checked: !!checked, onChange: onChange, type: "checkbox" }),
9
+ React.createElement(Slider, { "$status": status })),
10
+ label && React.createElement(P, { "$fontSize": 14 }, label)));
11
+ };
12
+ const Wrapper = styled.label `
13
+ width: 28px;
14
+ height: 16px;
15
+ position: relative;
16
+ display: inline-block;
17
+ `;
18
+ const Input = styled.input `
19
+ opacity: 0;
20
+ width: 0;
21
+ height: 0;
22
+ `;
23
+ const Slider = styled.span `
24
+ position: absolute;
25
+ cursor: pointer;
26
+ top: 0px;
27
+ bottom: 0px;
28
+ right: 0px;
29
+ left: 0px;
30
+ border-radius: 18px;
31
+ ${({ $status }) => $status === 'checked'
32
+ ? `
33
+ background-color: var(--color-primary-blue-2);
34
+ &:before {
35
+ transform: translateX(12px);
36
+ }`
37
+ : $status === 'unchecked'
38
+ ? 'background-color: var(--color-grey-8);'
39
+ : `
40
+ background-color: var(--color-yellow-5);
41
+ &:before {
42
+ transform: translateX(6px);
43
+ }
44
+ `}
45
+
46
+ &:before {
47
+ position: absolute;
48
+ content: '';
49
+ height: 12px;
50
+ width: 12px;
51
+ left: 2px;
52
+ bottom: 2px;
53
+ background-color: var(--color-white);
54
+ border-radius: 50%;
55
+ }
56
+ `;
@@ -0,0 +1,20 @@
1
+ import React from 'react';
2
+ import { Toggle } from './toggle';
3
+ const meta = {
4
+ title: 'Actions/Toggle',
5
+ parameters: {
6
+ layout: 'centered',
7
+ },
8
+ };
9
+ // eslint-disable-next-line
10
+ const Story = ({ checked: _, ...args }) => {
11
+ const [checked, setChecked] = React.useState();
12
+ const handleCheck = () => setChecked((prev) => (prev === undefined ? true : !prev));
13
+ return (React.createElement(React.Fragment, null,
14
+ React.createElement(Toggle, { checked: checked, onChange: handleCheck, ...args })));
15
+ };
16
+ export const Default = Story.bind({});
17
+ Default.args = {
18
+ label: 'Toggle Label',
19
+ };
20
+ export default meta;
@@ -0,0 +1 @@
1
+ export { Upload } from './upload';